Perancangan Basis Data Relasional (ERD) bag.1 Pertemuan 6 Perancangan Basis Data Relasional (ERD) bag.1 Renni Angreni, M.Kom.
Pokok Bahasan / GBPP (SILABUS) : Definisi Komponen Entitas Atribut Relasi Versi Penggambaran Peter Chen James Martin Kardinalitas Kardinalitas Simbol Derajat Minimum dan Maksimum Information Engineering
Entity Relationship Diagram (ERD) ERD adalah suatu diagram yang menggambarkan hubungan antar entitas/ entity di dalam suatu database. Skema tentang diagram pertama kali diresmikan oleh Charles Bachman pada tahun 1960-an, yang menggunakan kotak segi empat untuk menunjukkan tipe-tipe record dan tanda panah dari satu record ke record lain untuk menunjukkan hubungan one-to-many.
Ada beberapa model ERD yang dikemukakan oleh beberapa ahli, dan yang akan dibahas adalah model ERD menurut versi Peter Chen dan James Martin. Perbedaan kedua model perancangan ERD tersebut terletak pada relation/ hubungannya, tetapi yang lebih umum digunakan adalah ERD versi Chen.
Versi ERD
Komponen ERD Entitas / Entity Atribut / Field Relasi / Relationship
HEADLINE Komponen ERD Entity Strong Entity Weak Entity Super type Entity Sub type Entity Attribute Pembagian Menurut Fungsionalitasnya Atribut Key Atribut Deskriptif Pembagian Menurut Komposisinya Atribut Sederhana Atribut Komposit Pembagian Menurut Jenis Nilainya Atribut Bernilai Tunggal Atribut Bernilai Banyak Pembagian Menurut Nilainya Atribut Harus Bernilai Atribut Tak Bernilai Atribut Turunan Relationship
1. Entitas (Entity) Entitas menunjukkan objek-objek dasar yang terkait di dalam suatu sistem. Entitas merupakan individu yang mewakili sesuatu yang nyata dan dapat dibedakan dari sesuatu yang lain. Entitas dapat berupa orang, benda, atau hal yang keterangannya perlu disimpan di dalam suatu basis data.
Aturan penggambaran Entitas dalam ERD : Entitas dinyatakan dengan simbol persegi panjang. Nama entitas dituliskan di dalam simbol persegi panjang. Nama entitas berupa kata benda, tunggal. Nama entitas sedapat mungkin menggunakan nama yang mudah dipahami dan menyatakan maknanya dengan jelas. Penulisan entitas lebih dari 1 kata menggunakan tanda garis bawah ( _ ). Sekalipun tidak dianjurkan, dapat juga menggunakan singkatan. …
Hal-hal yang terdapat dalam Entitas : Isian Entitas : menyatakan sebuah kemungkinan pada entitas. Cth : mahasiswa dengan NPM 2005130001, mahasiswa bernama Rita, dosen bernama Agus, dll. Himpunan Entitas : menyatakan sekumpulan entitas dengan struktur/ sifat yang sama. Cth: sejumlah mahasiswa S1, sejumlah mata kuliah wajib, semua mata kuliah.
Varian Entitas Entitas Kuat (Strong Entity) adalah himpunan entitas yang keberadaannya tidak bergantung pada entitas yang lain. Contoh : Mahasiswa, Mata_Kuliah, Karyawan, dll. Penggambarannya menggunakan simbol persegi panjang.
Entitas Lemah (Weak Entity) adalah himpunan entitas yang keberadaannya bergantung pada entitas yang lain. Contoh : Mahasiswa_Jenjang_Sarjana, bergantung pada entitas Mahasiswa. Mata_Kuliah_Wajib, bergantung pada entitas Mata_Kuliah. Karyawan_Tetap, bergantung pada entitas Karyawan. Penggambarannya menggunakan simbol dua persegi panjang (double).
Karyawan_Tidak_Tetap Entitas Super Type adalah entitas yang mempunyai tingkatan lebih tinggi. Entitas Sub Type adalah entitas yang lebih rendah atau yang menjadi bagian dari entitas lain. Karyawan Karyawan_Tetap Karyawan_Tidak_Tetap
Atribut (Attribute / Field) Atribut disebut juga properties. Merupakan keterangan yang terkait pada sebuah entitas yang perlu disimpan sebagai basis data yang berfungsi sebagai penjelas sebuah entitas. Atribut identik dengan istilah “Kolom Tabel”. Atribut disebut juga “Field”. Istilah Atribut lebih umum digunakan pada perancangan basis data karena menunjukkan fungsinya sebagai pembentuk karakteristik yang melekat pada sebuah tabel.
Aturan menggambar suatu Atribut sbb : Atribut dinyatakan dengan simbol ellips. Nama atribut dituliskan di dalam simbol ellips. Nama berupa kata benda, dan tunggal. Nama mudah dipahami dan menyatakan maknanya dengan jelas. Atribut dihubungkan dengan entitas yang bersesuaian dengan menggunakan garis.
Contoh : Mahasiswa Kode_Angkatan Nama_Mahasiswa Kode_Program_Studi Tanggal_Lahir Mahasiswa Kode_Jenjang_Studi Alamat_Lokal Kode_Jurusan Kode_Agama Nomor Status
Contoh : Tabel Mahasiswa memiliki 4 atribut, yaitu : nim, nama_mhs, alamat_mhs, dan tgl_lahir Tabel Kuliah memiliki 4 atribut : kode_kul, nama_kul, sks dan semester Masing-masing tabel memiliki field/ atribut sebagai key, dan lainnya sebagai atribut deskriptif. Ada pula atribut yang tergolong atribut sederhana atau komposit dan lainnya.
Variasi/ Jenis-jenis Atribut : Selain penamaan yang unik berdasarkan fungsinya di tiap tabel, atribut juga dapat dibedakan berdasarkan sejumlah pengelompokkan sbb : Atribut Key dan Atribut Deskriptif. Atribut Sederhana dan Atribut Komposit. Atribut Bernilai Tunggal dan Atribut Bernilai Banyak. Atribut Harus Bernilai dan Nilai Null. Atribut Turunan.
1). Atribut Key dan Atribut Deskriptif Atribut Key adalah satu atau kumpulan atribut yang dapat membedakan semua baris data (row) dalam tabel secara unik. Tiga macam key yang diterapkan pada suatu tabel : Superkey himpunan satu atribut atau lebih yang memungkinkan identifikasi secara unik record pada himpunan entitas tersebut. Cth pada tabel mahasiswa, yang dapat menjadi superkey: NPM, nama_mhs (jika tidak ada nilai yang sama), alamat_mhs, tgl_lahir.
b. Candidate Key Kumpulan atribut superkey minimal yang dapat membedakan setiap baris data dalam sebuah tabel secara unik. Atribut ini nantinya dapat digunakan sebagai calon kunci utama/ primary key. Sebuah candidate key tidak boleh berisi atribut yang telah menjadi superkey yang lain. Candidate key pada tabel mahasiswa : NPM, nama_mhs (bila tidak ada nilai yang sama)
c. Primary Key Salah satu dari candidate key dapat dijadikan primary key. Pemilihan primary key dari sejumlah candidate key didasari oleh : Key tersebut lebih sering (lebih natural) untuk dijadikan sebagai acuan. Key tersebut lebih ringkas. Jaminan keunikan key tersebut lebih baik. Pada tabel Mahasiswa, primary key yang lebih cocok adalah NPM.
Contoh : No_KTP No_SIM Nama Alamat Super Key : Candidate Key : Primary Key : No_KTP atau No_SIM tergantung kebutuhan
Atribut Deskriptif adalah atribut-atribut yang tidak menjadi atau yang bukan merupakan anggota dari Key Primer. Jadi, atribut-atribut : nama_mhs, alamat_mhs, dan tgl_lahir digolongkan sebagai Atribut Deskriptif.
2). Atribut Sederhana dan Atribut Komposit Atribut Sederhana (Simple Attribute) adalah atribut yang tidak dapat dibagi lagi menjadi atribut yang lebih mendasar. Contoh : atribut harga dari entitas barang. harga BARANG
Atribut Komposit (Composite Attribute) adalah atribut yang masih dapat dipecah menjadi sub-sub atribut lain yang masing-masing memiliki arti tersendiri. Contoh : entitas mahasiswa mempunyai atribut alamat. Alamat disini dapat dipecah menjadi sub atribut seperti Jalan, Kode Pos, Kota. MAHASISWA NPM NAMA ALAMAT JALAN KODE POS KOTA
Contoh : nim Nama_mhs Alamat_mhs Tgl_lahir 001 Ali Akbar Jl. Jakarta No. 10 Jakarta 40121 … 002 Budi Haryanto Jl. Gajah Mada No.2, Jakarta 45123 ... alamat kota Kode_pos Jl. Jakarta No.10 Jakarta 40121… Jl. Gajah Mada No.2 45123… … ...
3). Atribut Bernilai Tunggal dan Atribut Bernilai Banyak Atribut bernilai tunggal (Single Valued Attribute) adalah atribut-atribut yang memiliki paling banyak satu nilai untuk setiap baris data. Contoh : Pada entitas mahasiswa, suatu record untuk data mahasiswa untuk field NPM, nama_mahasiswa hanya dapat diisi dengan sebuah nilai saja. Tidak dimungkinkan seorang mahasiswa dapat memiliki dua nilai untuk NPM dan nama_mahasiswa.
Atribut Bernilai Banyak adalah atribut yang boleh memiliki lebih dari satu nilai untuk setiap barisnya. Contoh : Entitas MAHASISWA mempunyai atribut HOBBY isi data dari atribut ini boleh lebih dari 1 data. Mahasiswa Roshita memiliki NPM 13402021 beralamat di Jalan Garuda 32 Yogyakarta memiliki Hobby (Olah Raga, Nyanyi, Masak dan Nonton TV) MAHASISWA NPM NAMA HOBBY
Atribut bernilai banyak Merupakan atribut bernilai tunggal nim Nama_mhs Alamat_mhs Tgl_lahir hobi 980001 Ali Akbar Jl. Jakarta No. 10 Jakarta 40121 … Sepakbola Melukis Berenang 980002 Budi Haryanto Jl. Gajah Mada No.2, Jakarta 45123 Membaca 980003 ... 980004 Musik, menari
4). Atribut Harus Bernilai dan Atribut Nilai Null Atribut harus bernilai (Mandatory Attribute) adalah atribut yang harus berisi data dan nilainya tidak boleh kosong. Contoh : nim dan nama_mhs harus ada nilainya dalam tabel mahasiswa. Atribut Nilai Null (Non-Mandatory Attribute) adalah atribut yang nilainya boleh dikosongkan. Dapat digunakan untuk menyatakan/ mengisi atribut-atribut yang nilainya memang belum siap atau tidak ada. Nilai null tidak sama dengan spasi!
5). Atribut Turunan Atribut Turunan (Derrived Attribute) adalah atribut-atribut yang nilai-nilainya diperoleh dari pengolahan atau dapat diturunkan dari atribut lain pada tabel yang berhubungan. Dapat ditiadakan dari sebuah tabel, karena nilainya bergantung pada nilai yang ada di atribut lain. Atribut Turunan nim Nama_mhs Alamat_mhs Tgl_lahir Usia 980001 Ali Akbar … 15-02-1992 20 980002 Budi Haryanto 20-03-1991 21 990001 ... 22 990002 19
Atribut Turunan digambarkan dengan garis putus-putus. KARYAWAN Lama_Bekerja NIK Nama Mulai_Bekerja
nama_atribut nama_entity nama_atribut bernilai ganda nama_atribut_kunci nama_atribut_komposit nama_atribut bernilai ganda nama_atribut nama_atribut_derivatif nama_entity
3. Relasi (Relationship) Menunjukkan hubungan yang terjadi di antara sejumlah entitas yang berasal dari himpunan entitas yang berbeda. Kerelasian adalah kejadian atau transaksi yang terjadi di antara dua buah entitas yang keterangannya perlu disimpan dalam basis data. Contoh : Entitas mahasiswa mempunyai relasi dengan entitas mata kuliah. Relasi yang terjadi dapat mengandung arti bahwa mahasiswa tersebut mengambil mata kuliah tersebut.
Aturan penggambaran relasi antar entitas : Relasi dinyatakan dengan simbol belah ketupat. Nama relasi ditulis dalam simbol. Relasi menghubungkan dua entitas. Nama relasi berupa kata kerja aktif, dan tunggal. Nama relasi menggunakan nama yang mudah dipahami dan sesuai maknanya.
Kardinalitas (Cardinality) / Derajat Relasi Kardinalitas atau derajat relasi menunjukkan jumlah maksimum entitas yang dapat berelasi dengan entitas pada himpunan entitas yang lain. Kardinalitas yang terjadi dapat berupa : One to one (satu ke satu). One to many (satu ke banyak) atau sebaliknya. Many to many (banyak ke banyak).
Satu ke satu Satu ke Banyak Banyak ke satu Banyak ke Banyak
1 1 Satu record pada entitas A hanya berhubungan terhadap satu record pada entitas B. A B 1 N Satu record pada entitas A berhubungan terhadap lebih dari satu record pada entitas B A B N M Lebih dari satu record pada entitas A berhubungan terhadap lebih dari satu record pada entitas B. B A
One To One (Satu ke Satu) One To Many (Satu ke banyak) Nama_dos Alamat_dos Nama_dos Kode_jur Kode_jur Nama_jur 1 1 Mengepalai Jurusan Dosen Nama_dos Alamat_dos Nama_dos Kode_kul Kode_kul Nama_kul 1 N mengajar kuliah Dosen Waktu Tempat sks semester
Many to Many (Banyak ke banyak) npm Nama_mhs npm Kode_kul Kode_kul Nama_kul M N mempelajari kuliah Mahasiswa Alamat_mhs Indeks_nilai sks semester Tgl_lahir
Tahapan Pembuatan ERD Mengidentifikasi dan menetapkan seluruh himpunan entitas yang akan terlibat. Menentukan atribut-atribut key dari masing-masing himpunan entitas. Mengidentifikasi dan menetapkan seluruh himpunan relasi di antara himpunan-himpunan entitas yang ada beserta foreign key nya. Menentukan derajat/ kardinalitas relasi untuk setiap himpunan relasi. Melengkapi himpunan entitas dan himpunan relasi dengan atribut-atribut deskriptif (non key).
ERD VERSI JAMES MARTIN Pada ERD Martin, relationship digambarkan dengan garis, dengan menambahkan connectivity-nya (0,1,*). Hubungan antar entity digambarkan dengan simbol , , dan Simbol : Entitas Atribut
Gambar simbol-simbol relationship pada ERD Martin : Exactly one Zero or one More than one Zero, one or more One or more
Kardinalitas James Martin : Notasi Derajat Relasi Min-Max (0,N) (1,M) (0,1) (1,1)
Contoh 1: Satu record pada entitas A hanya berhubungan pada satu record pada entitas B. A B
REKTOR UNIVERSITAS NO- NAMA ALAMAT KD- INDUK UNI UNIV. 018987 Hamid UNI UNIV. 018987 Hamid Jl. Joko 12 S012 Guna Nusa Jl. Rinai 9 019779 Umar Jl. Nanas 8 S110 Budi Darma Jl. Kebun 8 012345 Sofyan Jl. Bulak 3 U345 Bina Luhur Jl. Getuk 12
Contoh 2: Satu record pada entitas A berhubungan terhadap satu atau lebih dari satu record pada entitas B atau dapat tidak Berhubungan. B A
Contoh 3 : Satu record pada entitas A pasti berhubungan terhadap satu atau lebih dari satu record pada entitas B. A B
Contoh 4 : Satu record pada entitas A berhubungan terhadap satu record pada entitas B atau dapat tidak berhubungan. A B
Contoh lainnya : Seorang mahasiswa dapat mempelajari banyak mata kuliah sekaligus, tapi boleh juga tidak(belum) mempelajari mata kuliah satupun. Setiap mata kuliah dapat diikuti oleh banyak mahasiswa, tapi bisa saja ada mata kuliah yang tidak(belum pernah diikuti oleh satupun mahasiswa. Seorang dosen boleh mengajar banyak mata kuliah sekaligus, tetapi bisa saja terjadi ada dosen yang tidak (belum diperbolehkan) mengajar satu mata kuliah pun. Setiap mata kuliah hanya boleh diajarkan oleh seorang dosen dan tidak boleh ada mata kuliah yg belum ditentukan siapa dosennya.
Renni Angreni, M.Kom.