BAB III MODEL E-R (ENTITY-RELATIONSHIP) Pemodelan data adalah langkah kedua dalam membangun sistem basisdata. Salah satu model data seperti yang tersebut pada bab I dan bab II adalah model EntityRelationship (E-R). Disebut model Entity-Relationship karena model ini digunakan untuk menggambarkan hubungan (relationship) antara beberapa entitas (entity) dalam suatu basis data. Model E-R merupakan model data konseptual yang populer dan sampai saat ini masih digunakan dalam tahapan perancangan aplikasi basis data. E-R tidak menggambarkan bagaimana suatu data disimpan dalam komputer atau bagaimana implementasinya, sehingga diharapkan lebih memudahkan pengguna dalam memahami permasalahan. Dasar penyusunan model E-R adalah dengan menggunakan
business rule. Model E-R diperkenalkan oleh Chen pada 1976 dan terus berkembang sampai sekarang. Menurut Hoffer (2002), sampai 1995 ada 10 model E-R yang bisa digunakan. Jadi tidak ada satu model yang dijadikan standar. Untuk permasalahan yang semakin berkembang saat ini, muncullah Extended Entity-Relationship (EER). Bab ini membahas model E-R sesuai dengan yang dikemukakan oleh Chen. Untuk model lainnya bisa dipelajari sendiri dengan dasar yang diberikan.
3.1 Entitas dan Atribut Obyek dasar yang direpresentasikan oleh model E-R adalah entitas (entity), yaitu "sesuatu" di dunia nyata yang ada dan bebas, serta dapat dibedakan dari obyek yang lain. Sebuah entitas bisa ada secara fisik (misal: orang, mobil, rumah) ataupun secara abstrak (misal: pekerjaan, matakuliah, bahkan suatu kejadian atau konsep). Setiap entitas mempunyai sekumpulan atribut yang sebagai karakteristik atau yang menerangkan entitas tersebut, masing-masing atribut mempunyai nilai (value) tersendiri. Gambar 3.1 menunjukkan contoh sebuah entitas e1 dengan enam buah atribut (Kode MK, Nama MK, SKS, Js, Semester, Prasyarat) dan nilainya masing-masing.
Gambar 3.1 Contoh suatu entitas.
Basis Data – Darmawan Satyananda
23
3.1.1 Jenis-jenis Atribut Kita bisa menggolongkan atribut berdasar sifatnya. Semua atribut pada Gambar 3.1 dinamakan atribut atomik (atomic) atau sederhana (simple) karena tidak dapat dibagi menjadi beberapa atribut yang lebih kecil. Kebalikannya adalah atribut komposit (composite) karena tersusun dari sejumlah atribut lain, misalnya atribut Alamat yang dapat dibagi menjadi atribut Jalan, Kota, KodePos, dan Propinsi. Atribut komposit berguna bila perlu dilakukan pengacuan kepada suatu atribut sebagai satu kesatuan ataupun kepada komponen atribut komposit tersebut. Sebuah atribut disebut bernilai tunggal (single-valued) bila atribut tersebut hanya mempunyai satu nilai. Contohnya adalah atribut Umur yang hanya mempunyai sebuah nilai (tidak mungkin seseorang mempunyai dua buah umur). Sebaliknya atribut yang mungkin mempunyai beberapa nilai disebut bernilai jamak (multi-valued). Contohnya untuk atribut Pendidikan, seseorang mungkin hanya mempunyai ijazah S-1, atau ijazah S-1 dan S-2, atau tidak sama sekali. Dalam beberapa kasus, dua atau lebih atribut bisa saling terhubung, misalnya antara atribut Umur dan TanggalLahir. Nilai atribut Umur dapat ditentukan dari selisih antara tanggal sekarang dengan nilai atribut TanggalLahir. Atribut seperti Umur dikatakan sebagai atribut turunan (derived attribute). Atribut lain yang nilainya harus disimpan dan tidak bisa ditentukan dari atribut lain disebut sebagai stored attribute.
3.1.2 Nilai Null Suatu entitas mungkin mempunyai nilai atribut yang tidak sesuai. Sebagai contoh adalah atribut JumlahAnak yang hanya sesuai bagi orang yang sudah berkeluarga. Bagi yang belum berkeluarga atau tidak mempunyai anak, maka atributnya tidak memiliki nilai. Bila sebuah entitas tidak mempunyai nilai yang sesuai, maka kepada atributnya diberikan nilai khusus yang disebut nilai null. Nilai null menyatakan: ·
Tidak ada nilai yang sesuai untuk atribut tersebut (not applicable), misalnya atribut JumlahAnak yang berisi null karena seseorang yang tidak mempunyai anak.
·
Nilai untuk atribut tidak diketahui, dalam bentuk: o Nilainya tidak ada (nilainya seharusnya ada, tetapi informasi tersebut tidak diketahui). Sebagai contoh, null terpaksa diberikan kepada atribut Nama karena nama seseorang tidak diketahui (setiap orang pasti mempunyai nama, tetapi informasinya saat ini tidak diketahui) o Tidak ada informasi apakah nilainya ada atau tidak. Contohnya, atribut Status diberi nilai null karena status perkawinan sesorang yang tidak diketahui.
Basis Data – Darmawan Satyananda
24
3.1.3 Tipe Entitas (Entity Type) dan Himpunan Entitas (Entity Set) Sebuah basis data terdiri dari sekelompok entitas dengan atribut yang sama. Bila entitas-entitas dengan atribut yang sama dikelompokkan, maka bisa dikatakan entitasentitas tersebut mempunyai tipe entitas (entity type) yang sama. Tipe entitas mencatat daftar atribut entitas-entitas yang sekelompok dan tipe entitas ini diberi nama tertentu. Gambar 3.2 menunjukkan tipe entitas MATAKULIAH dan daftar atribut yang dipunyai. Tipe entitas menjadi skema atau intension bagi entitas yang mempunyai struktur yang sama. Sekumpulan entitas dengan tipe entitas yang sama disebut sebagai himpunan entitas (entity set). Perhatikan bahwa himpunan entitas mengelompokkan data, sedangkan tipe entitas mencatat strukturnya. Himpunan entitas biasanya bernama sama dengan tipe entitas. Himpunan entitas juga sebagai extension dari tipe entitas. Entitas tunggalnya sendiri dinamakan dengan instance. Pada Gambar 3.2. terdapat lima
instance. Untuk setiap himpunan entitas, tidak dimungkinkan ada entitas yang sama. Pengertian sama adalah semua atributnya bernilai sama. SKEMA (INTENSION)
INSTANCE (EXTENSION)
MATAKULIAH Kode_MK, Nama_MK, SKS, JS, Semester, Prasyarat MAU 401
Kalkulus I
3
4
1
MAU 402
Kalkulus II
3
4
2
MAU 485
Fisika Dasar I
3
4
1
MAU 487
Kimia Dasar I
2
4
1
MAU 423
Metode Numerik
3
4
5
MAU 401
MAU 402
Gambar 3.2 Sebuah himpunan entitas dan beberapa entitas anggotanya. Sebuah basis data mempunyai sejumlah himpunan entitas yang berbeda. Masingmasing hanya berisi maksud yang sejenis saja. Sebagai contoh, basis data mengenai data akademik pada sebuah universitas. Pada basis data itu bisa dipunyai himpunan entitas DOSEN, MAHASISWA, MATAKULIAH, RUANG_KULIAH, NILAI, dan sebagainya. Entitas dalam sebuah himpunan entitas bisa juga ada pada himpunan entitas lain dengan makna yang berbeda. Misalnya entitas seorang mahasiswa bisa jadi sebagai anggota dari himpunan entitas NASABAH pada sebuah bank.
3.1.4 Kunci Suatu Entitas Untuk dapat mengidentifikasi secara unik sebuah entitas dalam himpunan entitas, maka diperlukan sebuah atribut yang nilainya berbeda untuk setiap entitas individualnya. Atribut demikian disebut pengenal (identifier) atau atribut kunci (key attribute). Untuk himpunan entitas MATAKULIAH pada contoh di atas, atribut yang bisa menjadi kunci Basis Data – Darmawan Satyananda
25
adalah Kode_MK, karena tidak ada mata kuliah yang mempunyai kode mata kuliah yang sama. Bila sebuah atribut saja tidak dapat menjadi pembeda, maka dapat digunakan kombinasi beberapa atribut, selama kombinasi tersebut memberikan nilai yang berbeda untuk setiap entitas. Kunci super (superkey) adalah himpunan satu atau lebih atribut yang apabila digunakan secara bersama memungkinkan untuk mengenali sebuah entitas dalam himpunan entitas. Kode_MK pada himpunan entitas MATAKULIAH adalah kunci super. Kombinasi Kode_MK dengan SKS juga merupakan kunci super, tetapi SKS sendiri bukan kunci super karena ada nilai SKS yang sama dalam sebuah himpunan entitas. Dengan demikian bila K adalah kunci super, maka semua superset K adalah kunci super. Kunci super yang tidak mempunyai subset berupa kunci super disebut dengan kunci kandidat (candidate key). Singkatnya, kunci kandidat adalah satu atau sekumpulan atribut yang berpeluang menjadi pengenal. Sebuah himpunan entitas mungkin mempunyai beberapa kunci kandidat, misalnya pada data mobil bisa dipunyai kunci kandidat NomorPolisi, NomorMesin, NomorRangka. Ketiganya berpeluang menjadi pengenal karena masing-masing memiliki nilai yang unik. Kunci kandidat yang terpilih menjadi pengenal disebut dengan kunci primer (primary key). Nilai kunci yang dipilih menjadi kunci super sebaiknya adalah nilai yang tidak mungkin berubah, karena perubahan yang terjadi dapat menghasilkan atribut yang bernilai sama, sehingga atribut tersebut tidak dapat lagi menjadi kunci. Himpunan entitas juga dimungkinkan untuk mempunyai lebih dari satu atribut kunci, atau tidak mempunyai kunci sama sekali. Himpunan entitas yang tidak mempunyai kunci disebut dengan weak entity set (dibahas pada sub bab 3.5).
3.1.5 Domain Suatu Atribut Domain (himpunan nilai/value set) adalah suatu nilai yang mungkin bagi suatu atribut. Sebagai contoh, domain dari atribut Nama adalah sekumpulan karakter alfabet yang dipisahkan oleh spasi dan tidak mengandung angka; domain dari atribut IPK untuk entitas mahasiswa adalah bilangan pecahan positif 0.00 sampai 4.00.
3.2 Keterhubungan (Relationship) Untuk ilustrasi dari beberapa hal yang akan dijelaskan pada sub bab 3.2 dan 3.3, akan digunakan permasalahan yang terjadi pada lingkup universitas. Dalam sebuah jurusan (yang dikepalai oleh seorang ketua jurusan) terdapat sejumlah dosen dan mahasiswa. Setiap mahasiswa memiliki dosen wali (penasihat akademik) dan seorang dosen bisa menjadi dosen wali bagi sejumlah mahasiswa. Dosen tersebut masing-masing menempati ruangan kerja tertentu, sedangkan satu ruang hanya bisa diisi seorang dosen. Dalam hal pengajaran, seorang dosen bisa mengajar sejumlah matakuliah, Basis Data – Darmawan Satyananda
26
masing-masing pada ruangan kelas tertentu. Satu matakuliah hanya bisa diajar oleh seorang dosen. Mahasiswa bisa mengambil sejumlah matakuliah yang disediakan dan mendapat nilai atas kuliah yang diikutinya. Dari permasalahan tersebut himpunan entitas yang ada adalah: ·
MAHASISWA: NIM, Nama, DosenWali
·
DOSEN: NIP, NamaDosen, RuangKerja
·
MATAKULIAH: KodeMK, NamaMK, SKS, JS, Dosen, RuangKuliah
·
RUANG_KULIAH: KodeRuangKuliah, Kapasitas
·
RUANG_KERJA: KodeRuangKerja, NoTelepon
Bagaimana cara menyusun himpunan entitas dan atribut, akan dibahas lebih lanjut pada sub bab 3.4. Di dalam suatu basis data, antar himpunan entitas dimungkinkan terjadi keterhubungan atau relasi (relationship) untuk mencerminkan kondisi yang terjadi di dunia nyata. Misal pada basis data tentang sistem akademik universitas di atas. Bila dinyatakan bahwa setiap mahasiswa pasti mempunyai seorang dosen wali (dosen penasihat akademik), maka kita bisa merelasikan kedua himpunan entitas itu. Relasi terjadi antar entitas mahasiswa dengan entitas dosen.
3.2.1 Himpunan Relasi Himpunan relasi (Relationship Set) adalah semua relasi dengan jenis (type) yang sama, atau bisa dikatakan sebagai semua relasi yang terjadi pada himpunanhimpunan entitas yang saling berelasi. Sebuah relasi yang terjadi pada satu waktu dinamakan dengan relationship instance. Setiap entitas yang saling terhubung tersebut dikatakan "berpartisipasi" dalam relasi.
Gambar 3.3
Himpunan relasi MEMILIKI antara MAHASISWA dan DOSEN.
Untuk memperjelas, himpunan relasi diberi nama tertentu. Gambar 3.3 menunjukkan himpunan relasi yang terjadi antara MAHASISWA dan DOSEN (relasinya diberi nama MEMILIKI). Penamaan relasi dapat menggunakan kata kerja (seperti
Basis Data – Darmawan Satyananda
27
BEKERJA_DI) ataupun kata benda (seperti NASABAH), tergantung makna dari entitas yang berelasi.
3.2.2 Derajat Himpunan Relasi Derajat dari suatu himpunan relasi adalah banyaknya himpunan entitas yang berpartisipasi. Pada dasarnya himpunan entitas yang berpartisipasi bisa berapapun, tetapi yang umum adalah berderajat satu (uner), berderajat dua (biner), dan tiga (terner). Semakin besar derajatnya, semakin sulit pemahaman dan implementasinya. Himpunan relasi MEMILIKI antara MAHASISWA dan DOSEN pada Gambar 3.3 berderajat dua. Secara umum, himpunan relasi terner memberikan informasi yang lebih banyak daripada relasi biner. Contoh dari relasi terner dapat dilihat pada Gambar 3.4. Pada contoh tersebut dapat dilihat himpunan relasi MENGAJAR pada tiga himpunan entitas (DOSEN, MATAKULIAH, RUANG_KULIAH), yang menerangkan dosen yang mengajar matakuliah tertentu pada ruangan tertentu.
Gambar 3.4 Relasi terner MENGAJAR
3.2.3 Nama Peran dan Relasi Rekursif Setiap himpunan entitas yang berpartisipasi di dalam sebuah himpunan relasi disebut memainkan peran (role) dalam suatu relasi. Nama peran (role name) menyatakan peran yang dilakukan oleh entitas dalam suatu relasi. Pada himpunan relasi MEMILIKI (Gambar 3.3), entitas dosen berperan sebagai dosen wali dan entitas mahasiswa berperan sebagai yang memiliki dosen wali.
Basis Data – Darmawan Satyananda
28
Nama peran tidak diperlukan apabila dalam suatu relasi semua entitas yang berpartisipasi
adalah
jelas/nyata.
Apabila
suatu himpunan
entitas
yang
sama
berpartisipasi lebih dari sekali dalam suatu himpunan relasi dengan peran yang berbeda, barulah nama ini menjadi penting untuk membedakan makna dari setiap partisipasinya (sebagai klarifikasi atas arti dari relasi tersebut). Relasi yang melibatkan sebuah himpunan entitas yang masing-masing mempunyai peran yang berbeda disebut dengan relasi rekursif. Contohnya adalah himpunan relasi MENGAWASI yang menghubungkan ketua jurusan dengan dosen di mana keduanya adalah anggota dari himpunan entitas DOSEN. Himpunan entitas DOSEN berpartisipasi dua kali dalam relasi ini, sebagai pengawas dan sebagai yang diawasi. Angka "1" pada Gambar 3.5 menunjukkan peran sebagai pengawas dan angka "2" sebagai yang diawasi.
Gambar 3.5 Relasi rekursif MENGAWASI.
3.2.4 Aturan Dalam Himpunan Relasi Himpunan relasi mempunyai aturan (constraint) yang membatasi kombinasi yang mungkin antara entitas yang berpartisipasi dalam suatu himpunan relasi. Contohnya bila dinyatakan bahwa suatu fakultas hanya dapat dipimpin oleh satu orang, maka hanya ada satu relasi yang menghubungkan salah satu entitas di DOSEN dengan salah satu entitas di FAKULTAS, dan tidak dimungkinkan ada relasi lain yang melanggar ketentuan tersebut. Ada dua jenis utama aturan untuk relasi, yaitu rasio kardinalitas (cardinality
ratio) dan partisipasi (participation). Keduanya secara bersamaan dinamakan aturan struktural (structural constraints).
3.2.4.1 Rasio Kardinalitas Rasio kardinalitas1 disebut juga sebagai kardinalitas pemetaan (mapping
cardinalities). Aturan ini menyatakan banyaknya entitas yang dapat diasosiasikan 1
Peter Rob (2004) menyebutnya sebagai connectivity.
Basis Data – Darmawan Satyananda
29
(dihubungkan) dengan entitas lain melalui suatu himpunan relasi, atau dengan kata lain adalah banyaknya asosiasi yang bisa dimiliki oleh sebuah entitas. Untuk himpunan relasi biner R antara himpunan entitas A dan B, rasio kardinalitas yang mungkin adalah: 1:1, 1:N, N:1, M:N. Penentuan kardinalitasnya bergantung kepada situasi yang dimodelkan oleh model E-R. Dalam relasi 1:1 (one to one) sebuah entitas di A diasosiasikan dengan paling banyak sebuah entitas di B, dan sebuah entitas di B diasosiasikan dengan paling banyak sebuah entitas di A. Pengertian “paling banyak” bisa juga menyatakan “tidak ada asosiasi”. Contohnya bila dinyatakan bahwa seorang dosen bisa menempati ruang kerja tertentu dan ruang kerja itu hanya untuk satu orang dosen saja, maka himpunan relasi yang terjadi bisa dilihat pada Gambar 3.6. Himpunan relasi MENEMPATI terjadi antara himpunan entitas DOSEN dengan himpunan entitas RUANG_KERJA.
Gambar 3.6
Relasi MENEMPATI 1:1 antara DOSEN dengan RUANG_KERJA.
Pada relasi 1:N (one to many), sebuah entitas di A diasosiasikan dengan sembarang (nol atau lebih) entitas di B, sedangkan sebuah entitas di B hanya dapat diasosiasikan dengan paling banyak sebuah entitas di A. Contohnya adalah himpunan relasi rekursif MENGAWASI (Gambar 3.5), seorang dosen (sebagai ketua jurusan) bisa mengawasi beberapa dosen sekaligus dan seorang dosen hanya mempunyai seorang dosen sebagai pengawas. Relasi N:1 (many to one) merupakan kebalikan dari relasi 1:N, sebuah entitas di A diasosiasikan dengan paling banyak sebuah entitas di B, sedangkan sebuah entitas di B dapat diasosiasikan dengan sembarang (nol atau lebih) entitas di A. Contohnya adalah himpunan relasi MEMILIKI yang menghubungkan himpunan entitas MAHASISWA dan DOSEN (Gambar 3.3). Seorang mahasiswa hanya memiliki satu dosen wali, sedangkan seorang dosen wali menjadi wali bagi beberapa mahasiswa. Antara 1:N dan N:1 sebenarnya sama saja, tergantung dari sisi mana kita melihat permasalahannya. Pada relasi M:N (many to many), sebuah entitas di A dapat diasosiasikan dengan sembarang (nol atau lebih) entitas di B, demikian juga sebuah entitas di B dapat Basis Data – Darmawan Satyananda
30
diasosiasikan dengan sembarang (nol atau lebih) entitas di A. Contohnya adalah himpunan relasi MENGAMBIL antara MAHASISWA dan MATAKULIAH (Gambar 3.7). Seorang mahasiswa bisa mengambil beberapa matakuliah sekaligus, demikian juga sebuah matakuliah bisa diikuti lebih dari satu mahasiswa.
Gambar 3.7 Relasi M:N antara MAHASISWA dengan MATAKULIAH.
3.2.4.2 Aturan Partisipasi Aturan partisipasi menyatakan apakah keberadaan suatu entitas dalam suatu himpunan relasi tergantung pada entitas lain. Ada dua macam aturan partisipasi yaitu partisipasi total dan partisipasi sebagian (partial). Sebagai contoh adalah relasi antara entitas mahasiswa dan dosen yang menyatakan bahwa setiap mahasiswa harus mempunyai dosen wali, tetapi mungkin saja seorang dosen tidak menjadi dosen wali. Dengan demikian entitas mahasiswa harus berpartisipasi dalam relasi MEMILIKI, artinya bahwa tidak mungkin seorang mahasiswa tidak mempunyai dosen wali (Gambar 3.3). Partisipasi dari MAHASISWA dalam relasi MEMILIKI dikatakan total. Partisipasi total
disebut
juga
ketergantungan
(existence
dependency).
Bila
keberadaan
(eksistensi) entitas x tergantung kepada keberadaan entitas y, maka x dikatakan tergantung kepada y. Entitas y disebut sebagai entitas dominan (dominant entity) dan entitas x disebut entitas subordinat (subordinate entity). Partisipasi DOSEN dalam relasi MEMILIKI dikatakan sebagai partisipasi parsial. Artinya bahwa tidak semua dosen menjadi dosen wali, hanya sebagian saja.
3.2.5 Atribut Himpunan Relasi Perhatikan himpunan relasi MENGAMBIL pada Gambar 3.7, seorang mahasiswa bisa mengambil lebih dari satu matakuliah dan satu matakuliah diikuti oleh lebih dari satu mahasiswa. Sifat relasi adalah bila sebuah entitas sudah berpartisipasi dalam relasi dengan sebuah entitas lain, maka keduanya tidak akan bisa berelasi lagi. Misal entitas mahasiswa Ali sudah berelasi dengan entitas Kalkulus I, maka kedua entitas ini tidak bisa
Basis Data – Darmawan Satyananda
31
berelasi lagi. Bagaimana menyatakan bahwa mungkin saja seorang mahasiswa mengambil matakuliah yang sama lebih dari sekali? Untuk mengatasi masalah itu, pada setiap relasi ditambahkan atribut relasi. Aribut relasi berfungsi sebagai atribut pembeda, digunakan untuk membedakan sebuah relasi dari relasi lain dalam himpunan relasi. Pembedaan ini diperlukan bila entitas yang berpartisipasi dalam beberapa relasi adalah sama. Kembali pada fakta mahasiswa yang bisa mengambil matakuliah yang sama lebih dari sekali, untuk membedakan relasi yang terjadi bisa ditambahkan atribut TahunAmbil pada himpunan relasi MENGAMBIL. Misalkan Ali sudah mengambil Kalkulus I pada tahun 2004, dia bisa mengambil lagi pada tahun 2005. Dengan demikian dipunyai dua relasi untuk entitas yang sama dan dibedakan dari tahun pengambilan. Kegunaan lain atribut relasi adalah sebagai informasi tambahan terhadap sebuah relasi. Untuk kegunaan ini, atribut relasi disebut dengan atribut penjelas (descriptive
attribute). Kembali pada himpunan relasi MENGAMBIL, bagaimana caranya mencatat nilai matakuliah yang diambil? Untuk ini diperlukan sebuah atribut lagi yaitu Nilai. Permasalahannya, diletakkan di mana atribut Nilai ini? Penentuan letak suatu atribut baru didasarkan pada kardinalitasnya. Untuk relasi dengan kardinalitas 1:1, atribut relasi dapat diletakkan pada salah satu entitas yang berpartisipasi. Untuk relasi 1:1, contohnya adalah relasi MENEMPATI antara himpunan entitas DOSEN dan RUANG_KERJA. Kita bisa menambahkan atribut TglMulai yang menyatakan tanggal mulai seorang dosen menempati ruang kerjanya. Atribut tersebut dapat diletakkan pada himpunan entitas DOSEN atau RUANG_KERJA karena relasinya adalah 1:1 sehingga hanya sebuah entitas yang tepat berpartisipasi dengan sebuah entitas lainnya. Tidak ada bedanya diletakkan di sisi mana, karena bila sudah berpartisipasi kedua entitas tersebut tidak akan membentuk relasi yang lain. Untuk relasi 1:N dan N:1, atribut dapat diletakkan pada sisi N dari relasi. Contoh relasinya adalah pada relasi BEKERJA_DI antara himpunan entitas DOSEN dan JURUSAN. Sebuah jurusan mempunyai sejumlah dosen, dan sebaliknya satu dosen hanya bekerja di satu jurusan. Bila ingin mencatat kapan seorang dosen mulai bekerja di jurusan tertentu, kita bisa memasukkan atribut TglMulai pada himpunan entitas DOSEN. Hal ini dikarenakan setiap entitas DOSEN berpartisipasi hanya dengan sebuah entitas pada JURUSAN. TglMulai tidak mungkin dimasukkan ke JURUSAN karena hanya ada satu entitas jurusan yang berelasi dengan sejumlah entitas dosen. Pada relationship M:N atribut tersebut harus dinyatakan sebagai atribut relasi. Contohnya adalah untuk himpunan relasi MENGAMBIL dapat dimasukkan atribut Nilai sebagai atribut relasi, karena Nilai baru bisa diisikan setelah seorang mahasiswa mengambil matakuliah tertentu. Atribut Nilai tidak bisa diletakkan di entitas mahasiswa
Basis Data – Darmawan Satyananda
32
karena mahasiswa pasti punya lebih dari satu nilai, dan tidak juga di entitas matakuliah karena satu matakuliah akan diambil banyak mahasiswa.
3.3 Himpunan Entitas Lemah (Weak entity set) Kebanyakan himpunan entitas keberadaannya tidak saling tergantung dengan himpunan entitas lain, misalnya antara MAHASISWA dengan DOSEN pada himpunan relasi MEMILIKI. Walaupun dinyatakan seorang mahasiswa memiliki dosen wali (ada keterhubungan di antara keduanya), tetapi keberadaan entitas dari kedua himpunan entitas tersebut tidak saling tergantung. Tidak semua dosen menjadi dosen wali dan sebaliknya, kita bisa menyimpan informasi mahasiswa yang belum mempunyai dosen wali, kalau memang mahasiswa itu baru diterima. Himpunan entitas yang keberadaannya tidak saling tergantung ini dinamakan himpunan entitas kuat (strong entity set). Sebaliknya, himpunan entitas lemah (weak entity set) adalah himpunan entitas yang keberadaannya tergantung kepada himpunan entitas lain. Contoh kasusnya: adalah penelitian yang dilakukan oleh paling banyak dua orang dosen. Untuk kasus ini, terdapat himpunan entitas PENELITIAN dengan atribut: JudulPenelitian, Waktu, Dana, Dosen1, Dosen2. Kita bisa membentuk himpunan relasi MELAKUKAN antara himpunan entitas DOSEN dan PENELITIAN. Perhatikan bahwa setiap entitas di PENELITIAN pasti dan selalu tergantung dengan entitas di DOSEN karena tidak mungkin ada penelitian tanpa ada dosen peneliti. Himpunan entitas yang keberadaannya tergantung ini (misalnya PENELITIAN) dinamakan himpunan entitas lemah (weak entity set). Tanpa ada entitas yang menjadi tempat bergantung, entitas di himpunan entitas lemah tidak mempunyai arti. Himpunan entitas yang menjadi tempat bergantung disebut pemilik pengenal (identifying owner) dan keterhubungan yang menghubungkan keduanya disebut keterhubungan pengenal (identifying relationship). Himpunan entitas lemah selalu mempunyai partisipasi total karena tidak mungkin kita mengidentifikasi entitas lemah tanpa entitas pemilik, tapi tidak selalu setiap existence dependency adalah himpunan entitas lemah. Selain dari makna yang terkandung, ciri lain adalah dari atribut kuncinya. Himpunan entitas kuat selalu mempunyai atribut kunci untuk membedakan entitasentitas di dalamnya, sedangkan himpunan entitas lemah tidak mempunyai atribut kunci. Yang dipunyai himpunan entitas lemah adalah kunci parsial (partial key), dan kunci parsial ini belum bisa digunakan sebagai pengenal unik bila tidak dikombinasikan dengan kunci entitas pemiliknya. Jadi pada contoh di atas, kunci parsial himpunan entitas PENELITIAN adalah JudulPenelitian dan kombinasi dengan kunci himpunan entitas DOSEN yaitu NIP baru bisa digunakan sebagai pengenal di dalam himpunan entitas
Basis Data – Darmawan Satyananda
33
MEMPUNYAI.
3.4 Penggunaan Model E-R Tahapan pengembangan sistem basis data diawali dengan pengamatan dan identifikasi permasalahan, untuk kemudian menghasilkan sebuah business rule. Seperti yang disebutkan pada bab II, identifikasi dilakukan dengan melihat proses yang berjalan (baik secara manual maupun dari sistem yang lama), data apa yang digunakan, dokumen yang digunakan, siapa yang terlibat, dan hal-hal lain yang terkait. Selanjutnya dilakukan pencarian data baru yang mendukung kebutuhan sistem.
3.4.1 Business Rule Business rule adalah pernyataan yang menentukan atau membatasi beberapa aspek bisnis (Hoffer, 2002), atau deskripsi yang jelas dan tidak ambigu mengenai kebijakan atau prosedur dalam suatu lingkungan organisasi (Rob, 2004). Bentuknya adalah narasi yang mudah dipahami pengembang dan pengguna sistem, sehingga menghindari kesalahpahaman. Contoh sebuah business rule untuk sistem informasi akademik: ·
Seorang mahasiswa bisa mengambil sebuah matakuliah bila dia sudah lulus pada matakuliah prasyarat
·
Setiap matakuliah terdiri dari beberapa kelas paralel (offering) dan mahasiswa hanya diperkenankan mengambil satu kelas tertentu untuk matakuliah yang dipilihnya.
·
Dosen bisa mengajar pada lebih dari satu kelas paralel untuk matakuliah yang sama, atau mengajar pada kelas paralel untuk matakuliah lain. Untuk memperjelas, bisa juga dibuat definisi data. Contohnya sebagai berikut:
·
Kelas paralel (offering) adalah kelas yang diadakan untuk matakuliah tertentu. Setiap matakuliah minimal mempunyai satu kelas paralel. Untuk pertimbangan tertentu, kelas-kelas ini mungkin digabung menjadi satu. Sumber business rule dalam suatu organisasi adalah pemimpin atau manajer
yang mengeluarkan kebijakan, dokumen tertulis, dan adalah orang yang ada dalam suatu organisasi maupun yang terlibat dalam sistem. Berdasarkan business rule inilah database
dewsigner selanjutnya merancang sistem basis data. Perancangannya didasarkan pada model data tertentu, misalkan model Entity-Relationship. Perancangan dilakukan dengan membuat
diagram
E-R
yang
menggambarkan
himpunan
entitas,
atributnya,
keterhubungannya, dan kardinalitasnya.
3.4.2 Contoh Kasus: Sistem Basis Data PERUSAHAAN Yang akan digunakan sebagai studi kasus adalah basis data PERUSAHAAN yang menyimpan informasi mengenai karyawan yang bekerja pada sebuah perusahaan,
Basis Data – Darmawan Satyananda
34
departemen tempat bekerja dan proyek yang ditanganinya. Business rule yang bisa disusun dari tahapan identifikasi adalah: 1. Perusahaan ini terbagi atas beberapa departemen. Setiap departemen mempunyai nama, kode departemen, dan seorang karyawan sebagai manajer yang memimpin departemen. Terdapat catatan mengenai tanggal awal seorang karyawan memimpin departemen ini. Sebuah departemen mempunyai beberapa lokasi pekerjaan. 2. Sebuah departemen mengontrol beberapa proyek, setiap proyek mempunyai nama proyek, kode proyek, dan lokasi proyek berada. 3. Untuk setiap karyawan dicatat nama karyawan, nomor induk, alamat, gaji, jenis kelamin, dan tanggal lahir. Seorang karyawan hanya tercatat pada departemen tertentu tetapi dapat bekerja pada beberapa proyek sekaligus. Proyek ini dapat dikontrol oleh beberapa departemen. Selain itu juga dicatat jumlah jam kerja per minggu untuk setiap proyek yang diikutinya. 4. Untuk keperluan asuransi dan tunjangan, untuk setiap karyawan dicatat nama anggota keluarga, jenis kelamin, tanggal lahir, dan hubungan keluarganya. Langkah pertama pemodelan dengan E-R adalah menentukan himpunan entitasnya. Sebagai panduan, ciri dari entitas adalah biasanya menggunakan kata benda. Tetapi yang paling pokok adalah apakah kata benda itu mempunyai sesuatu data yang harus disimpan. Kalau memang ada, besar kemungkinan itu adalah entitas. Data yang disimpan dinyatakan sebagai atribut. Dengan demikian dari permasalahan di atas dapat ditentukan entitasnya sebagai berikut: 1. Himpunan entitas DEPARTEMEN dengan atribut NamaDepartemen, KodeDepartemen, Lokasi, Manajer, TglMulaiManajer. Lokasi adalah atribut yang bernilai jamak. NamaDepartemen dan KodeDepartemen adalah atribut kunci karena tidak ada departemen yang bernama sama. 2. Himpunan entitas PROYEK dengan atribut NamaProyek, KodeProyek, Lokasi, DeptPengontrol. Seperti halnya pada Departemen, NamaProyek dan KodeProyek adalah atribut kunci. 3. Himpunan entitas KARYAWAN dengan atribut NamaKaryawan, NIP, JenisKlm, Alamat, Gaji, Departemen, dan Pengawas. Alamat dapat berupa atribut komposit. 4. Himpunan entitas TANGGUNGAN dengan atribut Karyawan, NamaTanggungan, JenisKlm, TglLahir, dan Hubungan. Alternatifnya, himpunan entitas yang ditemukan bisa dituliskan dalam bentuk lain untuk menyatakan atribut komposit atau atribut jamak, sebagai berikut: ·
DEPARTEMEN:
NamaDepartemen,
KodeDepartemen,
{Lokasi},
Manajer,
TglMulaiManajer ·
PROYEK: NamaProyek, KodeProyek, Lokasi, DeptPengontrol
Basis Data – Darmawan Satyananda
35
·
KARYAWAN: NamaKaryawan, NIP, JenisKlm, Alamat, Gaji, Departemen, Pengawas, {BekerjaDi(Proyek, JamKerja)}
·
TANGGUNGAN: Karyawan, NamaTanggungan, JenisKlm, TglLahir, Hubungan Untuk karyawan yang bekerja pada beberapa proyek, dapat digunakan atribut
komposit BekerjaDi dengan komponen simpel (Proyek, JamKerja). Tanda kurung ‘{‘ dan ‘}’ menyatakan bahwa atribut tersebut adalah bernilai jamak. Dari himpunan entitas yang ditemukan, lihat kembali business rule-nya untuk mencari keterhubungan atau relasi yang mungkin. Tentukan juga kardinalitasnya. Himpunan relasi yang bisa ditemukan dari business rule di atas adalah sebagai berikut: 1. MEMIMPIN, himpunan relasi 1:1 antara KARYAWAN dan DEPARTEMEN. Partisipasi KARYAWAN adalah parsial, sedangkan DEPARTEMEN partisipasinya belum jelas. Bila seorang karyawan hanya bisa memimpin 1 departemen, maka partisipasinya adalah total. Sebuah atribut TglMulaiManajer ditambahkan dalam relasi ini. 2. MEMPUNYAI, adalah himpunan relasi 1:N antara DEPARTEMEN dan KARYAWAN. Partisipasi keduanya adalah total. 3. MENGENDALIKAN, himpunan relasi 1:N antara DEPARTEMEN dan PROYEK. Partisipasi PROYEK adalah total, sedangkan DEPARTEMEN adalah parsial. 4. MENGAWASI, suatu himpunan relasi 1:N antara KARYAWAN (dengan peran sebagai pengawas) dan KARYAWAN (yang diawasi). Partisipasi keduanya adalah parsial karena tidak semua karyawan adalah manajer dan tidak semua karyawan mempunyai seorang pengawas. 5. BEKERJA_DI, adalah relasi M:N antara KARYAWAN dengan PROYEK, dengan atribut relasinya adalah JamKerja yang menyatakan jumlah jam kerja seorang karyawan bekerja pada suatu proyek. Partisipasi keduanya adalah total. 6. MENANGGUNG adalah relasi 1:N antara KARYAWAN dan TANGGUNGAN, yang juga sebagai relasi pengenal untuk himpunan entitas lemah TANGGUNGAN. Partisipasi dari KARYAWAN adalah parsial, sedangkan untuk TANGGUNGAN adalah total. Penemuan relasi ini berakibat hilangnya beberapa atribut yang redundan, yang bisa
diwakili
oleh
TglMulaiManajer
dari
relasi.
Atribut
DEPARTEMEN,
yang
dihilangkan
DeptPengontrol
antara dari
lain
PROYEK,
Manajer
dan
Departemen,
Pengawas, dan BekerjaDi untuk KARYAWAN, dan Karyawan dari TANGGUNGAN. Setelah menemukan atribut dan relasinya, maka langkah selanjutnya adalah menentukan salah satu atrinbut sebagai pengenal. Carilah atribut yang mempunyai nilai yang tidak mungkin ganda atau berubah menjadi ganda. Atribut kunci atau pengenal yang ditemukan untuk setiap himpunan relasi adalah sebagai berikut: ·
DEPARTEMEN:
KodeDepartemen
(Walaupun
KodeDepartemen
dan
NamaDepartemen sama-sama mempunyai nilai unik, KodeDepartemen dipilih karena Basis Data – Darmawan Satyananda
36
peluang untuk mempunyai nilai ganda lebih kecil) ·
PROYEK: KodeProyek (Kunci kandidatnya adalah KodeProyek dan NamaProyek, alasan terpilihnya KodeProyek sama dengan alasan untuk DEPARTEMEN)
·
KARYAWAN: NIP (Karena mungkin ada NamaKaryawan yang ganda)
·
TANGGUNGAN: NamaTanggungan (NamaTanggungan dipilih karena inilah atribut yang paling mungkin bernilai unik, selanjutnya dikombinasikan dengan pengenal KARYAWAN, yaitu NoInduk).
3.5 Diagram E-R Keseluruhan struktur logis suatu basis data dalam model Entity-Relationship dapat disajikan secara grafis dengan diagram E-R. Komponen yang ada dalam diagram ER dapat dilihat pada Gambar 3.8. = Entitas
= Entitas lemah
= Relationship
= Relasi pengenal
= Atribut
= Atribut kunci
= Atribut bernilai jamak
= Atribut turunan
= Atribut komposit
E1
E1
R
1
R
R
N
E2
= Partisipasi total E2 di R
E2
= Rasio kardinalitas 1:N dari E1:E2 di R.
E
= Aturan struktural (min, max) pada partisipasi E di R
(min, max)
Gambar 3.8 Notasi diagram E-R. Gambar 3.9 menunjukkan diagram E-R secara keseluruhan untuk contoh basis data PERUSAHAAN. Himpunan entitas ditunjukkan dengan bentuk persegi panjang dan himpunan relasi ditunjukkan dengan bentuk belah ketupat yang terhubung dengan himpunan entitas yang berpartisipasi dalam relasi tersebut. Atribut ditunjukkan dalam
Basis Data – Darmawan Satyananda
37
bentuk lonjong yang terhubung dengan himpunan entitas atau himpunan relasi. Komponen atribut komposit dihubungkan dengan atribut kompositnya. Atribut bernilai jamak ditunjukkan dalam bentuk lonjong bergaris ganda dan atribut turunan ditunjukkan dalam bentuk lonjong bergaris putus-putus. Atribut kunci ditulis dengan garis bawah. Himpunan entitas lemah dibedakan dari himpunan entitas lainnya dengan bentuk persegi panjang bergaris ganda, dan relasi pengenalnya bergaris ganda juga. Kunci parsial dari himpunan entitas lemah ditulis bergaris bawah putus-putus. KodeDepartemen
NamaDepartemen NamaKaryawan Gaji
N
JenisKlm
NIP
MEMPUNYAI
JumKaryawan
1
Lokasi
DEPARTEMEN
TglLahir TglMulaiManajer
KARYAWAN Alamat
yg diawasi
1
MEMIMPIN 1
1
MENGONTROL
pengawas 1
MENGAWASI
JamKerja
N
M
N
BEKERJA_DI
PROYEK
N
1 MENANGGUNG
NamaProyek
LokasiProyek
KodeProyek N
TANGGUNGAN
NamaTanggungan JenisKlm
TglLahir Hubungan
Gambar 3.9 Diagram E-R untuk basis data PERUSAHAAN.
3.5.1 Notasi Alternatif Aturan struktural Sebagai alternatif dari kedua aturan struktural yang telah disebutkan (sub bab 3.2.4), dapat juga ditambahkan notasi (min, max) pada diagram E-R untuk menyatakan relasi minimum dan maksimum yang mungkin terjadi antara dua himpunan entitas. Contohnya relasi MEMPUNYAI antara DEPARTEMEN dengan KARYAWAN dengan rasio kardinalitas 1:M. Pada sisi KARYAWAN dapat dituliskan (1,1) yang menyatakan bahwa karyawan minimal bekerja pada 1 departemen, dan maksimal bekerja pada 1 departemen. Pada sisi DEPARTEMEN, dapat dituliskan (2,n), artinya bahwa seorang
Basis Data – Darmawan Satyananda
38
departemen tersebut minimal mempunyai 2 karyawan, dan maksimal mempunyai n karyawan. Contoh penggambarannya dapat dilihat pada Gambar 3.10. Hati-hati, penulisan notasi ini berkebalikan dengan penulisan rasio kardinalitas. Hoffer (2002) menyebut notasi ini sebagai cardinality constraints dan Peter Rob (2004) menyebutnya sebagai cardinality. Karena ada banyak macam notasi diagram ER, perlu juga diperhatikan bahwa ada diagram yang menggambarkannya dalam posisi yang terbalik. Jadi (2,n) ditulis pada sisi KARYAWAN dan (1,1) pada sisi DEPARTEMEN.
KARYAWAN
(1,1)
MEMPUNYAI
(2,n)
DEPARTEMEN
Gambar 3.10 Contoh penggambaran notasi alternatif aturan struktural.
3.5.2 Penyempurnaan Diagram E-R Diagram yang dihasilkan belum tentu sempurna, masih ada hal-hal yang bisa diubah. Ingatlah bahwa proses perancangan adalah iteratif, seorang perancang bisa kembali ke tahapan sebelumnya sampai didapatkan hasil yang dianggap sempurna. Perbaikan yang bisa dilakukan terhadap diagram yang sudah dibentuk adalah: 1. Sebuah konsep pada awalnya bisa dimodelkan sebagai atribut, tetapi pada saat penggambarannya bisa dimodelkan menjadi relationship karena atribut itu mengacu pada atribut di himpunan entitas lain. Konsekuensinya, atribut yang mengacu (atribut yang redundan) tadi bisa dihilangkan. Hal ini sudah dibahas pada sub bab 3.4.2. 2. Atribut yang muncul pada beberapa himpunan entitas bisa dijadikan sebagai entitas tersendiri. Kembali pada contoh tentang sistem akademik, seandainya pada awalnya himpunan entitas DOSEN, MAHASISWA, MATAKULIAH sama-sama mempunyai atribut Jurusan, kita bisa membentuk himpunan entitas JURUSAN, dan ketiga entitas tadi mengacu kepada JURUSAN. 3. Seandainya ada satu himpunan entitas dengan satu atribut (misalnya JURUSAN dengan atribut NamaJurusan) dan hanya berelasi dengan satu tipe entitas lain (misalnya MAHASISWA), maka entitas satu atribut bisa dimasukkan sebagai atribut tipe entitas lain (NamaJurusan menjadi atribut MAHASISWA). 4. Bergantung kepada kompleksitasnya, dua himpunan entitas dengan kardinalitas 1:1 bisa saja digabungkan menjadi sebuah himpunan entitas saja.
Basis Data – Darmawan Satyananda
39
3.5.3 Associative Entity Set Sebuah relationship bisa saja menghubungkan lebih dari satu himpunan entitas. Tetapi semakin banyak yang berpartisipasi, maka semakin rumit pula implementasinya. Untuk menyederhanakan, relationship bisa dikonversikan menjadi himpunan entitas. Sebagai contoh adalah relationship terner MEMASOK yang menghubungkan himpunan entitas PEMASOK, BARANG, dan PROYEK (terdapat pemasok yang memasok barang ke proyek tertentu). (A)
Nama_Pemasok
PEMASOK
Nama_Proyek
Jumlah
M
N
MEMASOK M
PROYEK
Kode_Barang
BARANG
(B)
Nama_Pemasok
PEMASOK
Jumlah 1
MEMASOK
(C)
PEMASOKAN N
Kode_Barang
BARANG
N
1
N
MENGAMBIL
Nama_Proyek
MEMBERI
Nama_Pemasok
PEMASOK
1
PROYEK
Nama_Proyek
M
N
MEMASOK
M
PROYEK N
Kode_Barang
MENYEDIAKAN
N
BARANG
M
MEMAKAI
Gambar 3.11 Himpunan relasi terner. (A) Himpunan relasi terner MEMASOK, (B) Relasi terner yang diubah menjadi relasi biner, (C) Tiga buah relasi biner untuk himpunan relasi MEMASOK. Pada Gambar 3.11 A, MEMASOK menghubungkan tiga himpunan entitas. Alternatifnya, MEMASOK bisa diubah menjadi himpunan entitas baru PEMASOKAN yang Basis Data – Darmawan Satyananda
40
tetap
terhubung
dengan
ketiga
himpunan
entitas
yang
ada.
Konsekuensinya,
kardinalitasnya juga berubah menjadi 1:N (lihat Gambar 3.11 B). Himpunan entitas baru ini dinamakan dengan associative entity set (himpunan entitas asosiatif). Gambar 3.11 C menunjukkan 3 buah relationship biner yang mirip dengan MEMASOK pada Gambar 3.11 A, tetapi tidak ekivalen karena secara arti berbeda. Pada Gambar 3.11 A, MEMASOK melibatkan tiga himpunan entitas sehingga bisa langsung diketahui misalnya pemasok S memasok barang apa saja ke proyek P atau proyek P menerima barang B dari pemasok yang mana. Pada Gambar 3.11 C, memang bisa diketahui pemasok P memasok barang apa, pemasok P memasok ke proyek yang mana, barang B dipasok ke proyek mana saja, tetapi belum tentu semuanya adalah satu kesatuan data. Jadi ada potensi kehilangan dan ketidaksesuaian data. Hati-hati dalam merancang diagram, pastikan bahwa semua data sudah mewakili permasalahan yang dimodelkan. Himpunan entitas asosoatif juga bisa digunakan untuk mengkonversikan
relationship biner M:N menjadi dua buah relationship 1:N. Misalnya pada relasi BEKERJA_DI yang menghubungkan KARYAWAN dan PROYEK. BEKERJA_DI bisa diubah menjadi himpunan entitas BEKERJA_DI dengan satu atribut yaitu JamKerja. Selanjutnya himpunan entitas KARYAWAN dihubungkan dengan BEKERJA_DI dengan kardinalitas 1:N; 1 pada sisi KARYAWAN dan N pada sisi BEKERJA_DI. Hal yang sama berlaku untuk PROYEK yang dihubungkan dengan BEKERJA_DI. Kardinalitasnya 1:N; 1 di sisi PROYEK dan N di sisi BEKERJA_DI. Seorang perancang basis data harus dapat memutuskan apakah suatu relasi disajikan dalam bentuk himpunan relasi berderajat n ataukah memecahnya menjadi derajat yang lebih kecil tanpa menghilangkan makna sebenarnya.
3.6 Kelebihan dan Kelemahan Model E-R Model E-R telah lama digunakan (bahkan sampai sekarang). Selain model ini, masih banyak model-model lain yang digunakan. Menurut Peter Rob (2004), keleibihan model E-R adalah (i) sederhana, (ii) menyajikan visualisasi melalui ERD, (iii) alat komunikasi yang efektif, dan (iv) terpadu dengan model relasional. ERD memvisualkan konsep tentang data dan keterkaitannya secara sederhana sehingga menjadi alat komunikasi yang efektif dan mudah difahami oleh perancang, pemrogram, dan pengguna. Model ini dengan mudah ditransformasi menjadi model relasional. Sedangkan kelemahan model ini adalah: 1. Kurang dapat menyatakan batasan Aturan struktural (sub bab 3.5.1) bisa digunakan untuk menyatakan batasan berapa banyak suatu entitas bisa terlibat dalam relationship. Tetapi model ini tidak bisa menyatakan batasan seperti “IPK mahasiswa ada dalam rentangan 0,0 sampai 4,0”.
Basis Data – Darmawan Satyananda
41
Batasan ini hanya bisa diterapkan pada tingkatan aplikasi melalui kode program. 2. Terbatas dalam penyajian relationship
Relationship hanya bisa digunakan antar entitas, tidak bisa antar atribut dalam suatu entitas, misalkan menyatakan keterhubungan antara “IPK” dengan “prestasi” (contohnya IPK 3,50 setara dengan prestasi ‘sangat memuaskan’). 3. Tidak memiliki DML DML baru bisa dijumpai pada model Relasional, sehingga rancangan dalam model E-R harus dibawa ke model Relasional lebih dulu. 4. Potensi kehilangan informasi ERD akan tampak “padat” bila suatu entitas memiliki banyak atribut dan banyak entitas yang terlibat dalam diagram serta bila kurang teliti dalam menentukan
relationship.
3.7 Rangkuman Bab III membahas mengenai salah satu model dalam basis data yaitu model E-R (Entity Relationship). Model ini menggambarkan relasi (relationship) di antara entitasentitas. Entitas (entity) adalah sebuah obyek yang ada dan bisa dibedakan dari obyek yang lain. Kumpulan semua entitas dengan tipe yang sama disebut sebagai Himpunan Entitas, sedangkan relasi dengan tipe yang sama disebut sebagai Himpunan Relasi. Model E-R disusun pada tahapan pemodelan data secara lojik pada pengembangan sistem basis data. Suatu entitas mempunyai beberapa atribut,setiap atribut mempunyai nilai tertentu, dan setiap nilai mempunyai domain tertentu. Null adalah nilai yang diberikan kepada suatu atribut bila kita menganggap atribut tersebut tidak mempunyai nilai atau tidak ada nilai yang sesuai. Beberapa jenis atribut: ·
dilihat dari jumlahnya: simpel/atomik dan komposit
·
dilihat dari nilainya: bernilai tunggal dan bernilai jamak
·
dilihat dari cara mendapatkan nilainya: stored attribut dan derived attribute
Atribut kunci atau pengenal (identifier) adalah atribut yang digunakan sebagai pengenal suatu entitas dalam himpunan entitas. Atribut kunci biasanya merupakan atribut dengan nilai tunggal, serta bisa berupa atribut simpel atau komposit. Himpunan entitas lemah adalah suatu himpunan entitas yang tidak mempunyai atribut yang cukup untuk membentuk kunci primer. Lawan dari himpunan entitas lemah adalah himpunan entitas kuat.
Relationship adalah asosiasi di antara beberapa entitas. Entitas yang saling terhubung dikatakan berpartisipasi dalam relasi. Derajat himpunan relasi adalah jumlah himpunan entitas yang berpartisipasi, umumnya berupa biner atau terner. Selain
Basis Data – Darmawan Satyananda
42
terhubung dengan himpunan entitas lain, suatu himpunan entitas juga bisa terhubung dengan dirinya sendiri, hal seperti ini disebut dengan relasi rekursif. Dalam relasi rekursif diperlukan nama peran untuk menjelaskan peran yang diambil oleh setiap relasi. Suatu himpunan relasi mempunyai aturan struktural sebagai berikut: ·
rasio kardinalitas (jumlah entitas yang bisa terhubung dengan entitas lain dalam suatu himpunan relasi): 1:1, 1:N, M:N.
·
aturan partisipasi (kebergantungan suatu himpunan relasi terhadap himpunan relasi yang lain): total, parsial. Pada bagian akhir, disajikan bagaimana cara menyusun dan memperbaiki
diagram E-R, serta juga disajikan apa kelebihan dan kekurangan model E-R.
3.8 Soal Latihan 1. Berikan suatu contoh relasi dengan rasio kardinalitas 1:1, 1:N, M:N, yang berbeda dengan yang sudah diberikan 2. Apa yang dimaksud dengan relasi rekursif? 3. Sebutkan perbedaan antara himpunan entitas lemah dan himpunan entitas kuat. 4. Sebuah klinik melayani pemeriksaan pasien yang datanya sudah dicatat sebelumnya. Data yang dicatat antara lain nama pasien, umur, alamat, pekerjaan dan nomor identitas pasien. Pada saat setiap pasien berobat ke klinik, pasien tersebut ditangani oleh seorang dokter spesialis tertentu. Tetapi mungkin saja pada waktu berobat yang lain dia ditangani dokter yang berbeda. Seorang dokter bisa melayani banyak pasien. Ada catatan tersendiri mengenai data dokter dan spesialisasinya. Untuk setiap kali berobat, dia mendapatkan diagnosa dari dokter, resep yang harus dibeli (jenis obat dan jumlahnya), serta menggunakan jasa tertentu (misalnya periksa darah, periksa jantung). Setiap obat dan jasa yang digunakan mempunyai harga tersendiri. Catatan lain untuk setiap pemeriksaan adalah tanggal berobat dan biaya yang harus dibayarkan. Tugas anda adalah menyusun diagram E-R dari deskripsi tersebut. Tentukan atribut yang mungkin dan tambahkan bila dirasa ada hal lain yang perlu dicatat untuk memperjelas permasalahan. 5. Perpustakaan “PUSTAKA JAYA” mempunyai sejumlah cabang yang saling terhubung. Anggota yang terdaftar bisa meminjam pada berbagai cabang (tidak terikat pada cabang tertentu). Informasi yang dicatat dari anggota antara lain nomor anggota, nama anggota, alamat, telepon, dan nomor KTP/SIM. Untuk setiap buku, informasi yang dicatat adalah kode buku, judul buku, penerbit, dan pengarang. Ada kemungkinan sebuah buku dikarang oleh beberapa orang sekaligus. Catatan tentang buku yang dipunyai perpustakaan ditangani secara terpusat, sehingga kode yang
Basis Data – Darmawan Satyananda
43
dibuat berlaku untuk semua cabang. Kemudian informasi yang dicatat tentang cabang perpustakaan adalah kode cabang, nama cabang, dan alamatnya. Setiap buku mungkin terdiri dari beberapa copy, untuk setiap copy ada catatan tersendiri mengenai kode copy, dan kode cabang perpustakaan di mana buku itu berada. Pada saat seorang anggota meminjam buku, ada catatan tersendiri mengenai peminjaman ini. Yang dicatat adalah kode copy buku, kode anggota, dan tanggal pinjam. Pada saat pengembalian, juga dicatat mengenai tanggal kembali dan denda yang dibayarkan bila terlambat mengembalikan. Buatlah skema dan diagram E-R yang sesuai dengan masalah tersebut, tentukan juga aturan strukturalnya.
Basis Data – Darmawan Satyananda
44