MODUL 1 SEPUTAR PERACAGA DATABASE TUJUA PRAKTIKUM 1. Praktikan mampu menggambarkan ERD dengan baik dan benar dengan ER Modeling. 2. Praktikan dapat memahami konsep Basis Data Relasional. 3. Praktikan mampu menyelesaikan permasalahan basis data yang diberikan. 4. Praktikan mampu merancang database sederhana. PERLEGKAPA 1. Modul Praktikum Basis Data 2. Microsoft Excel LADASA TEORI 1.1 Entity-Relationship Model (ER Model) dan Entity Relationship Diagram (ERD) Entity-Relationship Model adalah model untuk mendeskripsikan isi suatu basis data dalam bentuk entitas, atribut, dan relationship antar entitas. ER Model ini diperkenalkan pada tahun 1976 oleh P.P. Chen. ER Model terdiri objek-objek dasar berupa entitas yang dapat merepresentasikan data yang ada. Dimana entitas tersebut memiliki suatu atribut dan dapat berhubungan dengan entitas lain melalui relationship. Fungsi dari model ini sendiri yaitu untuk menjembatani objek-objek nyata dengan basis data. Apabila kumpulan entitas dalam ER Model telah dihubungkan secara lengkap dengan atribut dan relasinya, maka akan didapatkan Entity Relationship Diagram (ERD). Dimana ERD itu sendiri adalah diagram yang menggambarkan strutkur entitas dan hubungan antar entitas tersebut, untuk menggambarkannya digunakan beberapa notasi dan simbol. Berikut ini adalah notasinotasi yang terdapat dalam Entity Relationship Diagram (ERD). o Simbol/otasi Arti 1 Entity Type (Strong Entity)
2 Weak Entity The 3 Relationship The 4 Identifying Relationship The 5 Attribute (Simple) 6 Key Attribute 7 Multivalued Attribute 8 Composite Attribute 9 Derived Attribute 10 Total Participation 11 12 Cardinality ratio 1: for E1:E2 in R Structural Constraint (min, max) on Participation of E in R Berikut ini adalah penjelasan dari notasi-notasi yang digunakan di ERD. 1. Entitas (Entity) adalah objek atau hal spesifik yang dapat diidentifikasi dalam lingkungan pemakai yang kemudian direpresentasikan dalam database. Simbol dari entitas ini biasanya digambarkan dengan bentuk persegi panjang. Ada dua jenis entitas yakni: 1) Strong entity (entitas kuat) merupakan entitas yang mandiri, yang keberadaannya tidak bergantung pada keberadaan entitas yang lainnya. Entitas kuat selalu memiliki karakteristik yang unik disebut identifier (sebuah atribut tunggal atau gabungan atribut-atribut yang secara unik dapat digunakan untuk membedakannya dari entitas kuat yang lain). 2) Weak entity (entitas lemah) merupakan entitas yang keberadaannya sangat bergantung pada keberadaan entitas yang lainnya. Entitas lemah tidak memiliki
identifier sendiri. Entitas lemah tidak memiliki arti apa-apa tanpa kehadiran entitas di mana mereka bergantung. Entitas yang di mana entitas lemah bergantung dinamakan identifying owner. Secara umum, dalam diagram ER entitas lemah memiliki atribut yang berperan sebagai partial identifier (identifier yang berfungsi secara sebagian). 2. Atribut (Attribute) adalah sifat atau karakteristik yang digunakan untuk mendeskripsikan sebuah entitas. Contoh: Entitas mahasiswa mempunyai atribut IM, nama, jenis kelamin, tanggal lahir, dan sejenisnya yang mencirikan bahwa dia mahasiswa. Isi data dari atribut ini hanya boleh diisi dengan 1 data. Setiap mahasiswa hanya memiliki 1 PM, 1 ama, 1 Alamat. Simbol dari atribut ini biasanya digambarkan dengan bentuk oval. Ada beberapa jenis atribut yakni: 1) Simple Attribute (Atribut biasa) merupakan atribut yang memiliki nilai pasti dan tidak ganda. Misalnya: bagi setiap mahasiswa yang di kuliah di satu kampus, mereka hanya memiliki satu atribut IM, jenis kelamin, dan sebagainya yang tidak bernilai ganda. 2) Composite Attribute (Atribut gabungan) merupakan atribut yang memiliki nilai gabungan dari beberapa atribut lainnya. Misalnya: nama bisa terdiri dari nama depan, nama tengah dan nama belakang atau alamat yang bisa terdiri dari jalan, nomor, kecamatan, kota. 3) Multi-valued Attribute (Atribut bernilai ganda) merupakan atribut yang memiliki nilai bisa lebih dari satu. Misalnya: no handphone yang dimiliki entitas mahasiswa, bisa saja satu mahasiswa memiliki lebih dari satu no hanphone. 4) Derived Attribute merupakan atribut yang nilainya dapat diperoleh dari nilai atribut lain. Misalnya: umur bisa menjadi atribut untuk seorang manusia, tetapi umur tersebut hanya dapat diperoleh, jika terdapat atribut tanggal lahir. Maka, umur adalah derived attribute yang nilainya bisa didapatkan dari kalkulasi tanggal lahir. 5) Key Attribute merupakan atribut yang memiliki nilai unik. Di mana nilai tersebut tidak berubah-ubah, seperti IM, ID pegawai, dan sejenisnya. Key attribute juga tidak bisa bernilai ULL. Untuk atribut jenis ini, masih ada kemungkinan untuk menjadi composite attribute. Kemudian, untuk setiap entitas bisa saja memiliki lebih dari satu Key attribute. Contohnya, taksi yang memiliki nomor taksi dan plat mobil yang unik. 3. Relasi (Relationship) merupakan hubungan yang terjadi antar satu atau lebih entitas. Relasi digambarkan dengan notasi belah ketupat. Ada jenis relasi rekursif dimana relasa ini menghubungkan satu entitas ke entitas itu sendiri.
4. Derajat Relasi atau Kardinalitas merupakan derajat yang menunjukkan jumlah maksimum entitas yang dapat berelasi dengan entitas pada himpunan entitas yang lain. Macammacam kardinalitas, misalkan hubungan antara entitas A dan B: 1) Satu ke satu (one to one), maksudnya adalah setiap anggota entitas A hanya boleh berhubungan dengan satu anggota entitas B, begitu pula sebaliknya. Contoh : Rektor dengan (dan) Universitas dengan relasi memimpin, mahasiswa dengan IM dengan relasi memiliki, dll 2) Satu ke banyak (one to many), maksudnya adalah setiap anggota entitas A dapat berhubungan dengan lebih dari satu anggota entitas B tetapi tidak sebaliknya. Contoh : Pembeli dengam Mobil dengan relasi membeli, Dosen dengan Mahasiswa dengan relasi Perwalian, dll 3) Banyak ke banyak (many to many), maksudnya adalah Setiap anggota entitas A dapat berhubungan dengan banyak anggota entitas B dan sebaliknya. Contoh : Pegawai dengan Proyek dengan relasi Bekerja pada, Pegawai dengan Bagian dengan relasi Ditugaskan ke, dll. Contoh gambar Entity Relationship Diagram bisa dilihat di bawah ini.
1.2 Model Relasional Model relasional merupakan tabel 2 dimensi yang mempunyai karakteristik seperti di bawah ini yaitu : Baris berisi data tentang entitas. Kolom berisi data tentang atribut dari entitas. Cell pada tabel memeang sebuah nilai single. Semua masukan pada kolom harus jenis yang sama. Setiap kolom mempunyai nama yang unik. Susunan kolom tidak penting. Susunan baris juga tidak penting. Tidak boleh ada dua baris yang serupa. 1.3 Pemetaan Entity Relationship Diagram ke Model Relasional 1. Untuk Entitas kuat : Buat satu relasi, masukkan semua atribut sederhana dari ERD menjadi atribut pada model relasional (MR) Primary key (PK) pada ERD menjadi PK pada Model Relasional (MR). 2. Untuk Entitas lemah : Buat satu relasi, masukkan semua atribut sederhana ERD menjadi atribut pada MR. Masukkan PK dari entitas kuat pemilik entitas lemah ini, sehingga menjadi Foreign key (FK) di sini. PK relasi ini adalah partial key-nya + FK. 3. Untuk relationship 1 to 1 : Masukkan PK dari entitas yang berpartisipasi tidak penuh (partial participation) -- yang digambarkan dengan garis tunggal -- ke relasi yang berpartisipasi penuh (total participation) --yang digambarkan dengan garis ganda -- menjadi FK pada relasi ini. Jika terdapat atribut pada relationship, masukkan ke relasi yang berpartisipasi penuh. PK pada relasi ini adalah sama dengan PK pada ERD. 4. Untuk relationship 1 to Many (1 to ) : Masukkan PK dari entitas sisi 1 ke relasi sisi, sehingga menjadi FK pada relasi baru ini. Jika terdapat atribut pada relationship, masukkan ke relasi yang berada pada sisi. PK relasi ini adalah sama dengan PK pada ERD.
5. Untuk relationship many to many ( to ) : Buat satu relasi tersendiri, yang atributnya terdiri atas PK-PK dari masing-masing entitas yang berpartisipasi. PK-PK tersebut menjadi FK pada relasi baru ini. Gabungan FK-FK tersebut adalah PK baru pada relasi ini. Jika terdapat atribut pada relationship-nya, masukkan juga sebagai atribut anggota. 6. Untuk multivalued attribute (atribut bernilai banyak) : Buat satu relasi tersendiri, yang atributnya terdiri atas atribut bernilai banyak tersebut ditambah dengan PK dari entitas pemilik atribut bernilai banyak tersebut. PK relasi ini adalah gabungan atribut-atribut tersebut di atas. 7. Untuk relationship n-ary (keterhubungan yang lebih dari dua) : Buat satu relasi tersendiri, yang atribut-atributnya terdiri atas PK-PK dari setiap entitas yang berpartisipasi. PK-PK tersebut menjadi FK pada relasi baru ini. Gabungan FK-FK tersebut adalah PK baru pada relasi ini. Jika terdapat atribut pada relationship-nya, masukkan juga sebagai atribut anggota. 1.4 ormalisasi ormalisasi merupakan teknik analisis data yang mengorganisasikan atribut-atrbut data dengan cara mengelompokkan sehingga terbentuk entitas yang non redundant, stabil, dan fleksible. ormalisasi dilakukan sebagai uji coba pada suatu relasi secara berkelanjutan untuk menentukan apakah relasi itu sudah baik, yaitu dapat dilakukan proses insert, update, delete, dan modifikasi pada satu atau beberapa atribut tanpa mempengaruhi integritas data dalam relasi tersebut. Sebuah tabel yang merangkum semua kelompok data yang saling berhubungan, bukan merupakan tabel yang baik disebut Tabel Universal atau Unnormalized Table. Biasanya didapat dari form data dari user bisnis (diusahakan mendapat form yang sudah terisi data). Ada 3 bentuk ormalisasi yaitu : 1) Bentuk ormal ke Satu (1F) Syarat : Tidak ada set atribut yang berulang atau bernilai banyak (multivalued attribute), atribut composite atau kombinasi antara keduanya.
Tiap atribut hanya memiliki satu pengertian. Setiap atribut dalam tabel tersebut harus bernilai atomic (satu cell hanya menampung satu nilai) 2) Bentuk ormal ke Dua (2F) Syarat : Bentuk normal 2F terpenuhi dalam sebuah tabel jika telah memenuhi bentuk 1F, dan semua atribut selain primary key secara utuh memiliki Functional Dependency pada primary key. Sebuah tabel tidak memenuhi 2F jika ada atribut yang ketergantungannya (Functional Dependency) hanya bersifat parsial saja (hanya tergantung pada sebagian dari primary key) Jika terdapat atribut yang tidak memiliki ketergantungan terhadap primary key, maka atribut tersebut harus dipindah atau dihilangkan. 3) Bentuk ormal ke Tiga (3F) Syarat : Bentuk data telah memenuhi kriteria bentuk normal ke dua. Tidak ada atribut non primary key yang memiliki ketergantungan terhadap atribut non primary key yang lainnya (tidak terdapat ketergantungan transitif). Seluruh atribut bukan kunci pada suatu relasi hanya memiliki ketergantungan fungsional terhadap primary key di relasi itu saja. 1.5. Ketergantungan pada ormalisasi a) Functional Dependency (Ketergantungan Fungsional) otasi: A B A dan B adalah atribut dari sebuah tabel. Berarti secara fungsional B tergantung pada A. Jika ada 2 baris data dengan nilai A yang sama, maka nilai B juga sama. Contoh tabel ilai : Functional Dependency dari tabel ilai :
rp namamhs Karena untuk setiap nilai nrp yang sama, maka nilai namamhs juga sama. {amakul, nrp} ihuruf Karena attribut ihuruf tergantung pada amakul dan nrp secara bersama-sama. Dalam arti lain untuk amakul dan nrp yang sama, maka ihuruf juga sama, karena amakul dan nrp merupakan key (bersifat unik). b) Transitive Dependency (Ketergantungan Transitif) Definisi bentuk dependensi transitif adalah sebagai berikut : Atribut Z mempunyai dependensi transitif terhadap X, bila : 1)Y memiliki dependensi fungsional terhadap X. (X Y) 2)Z memiliki dependensi fungsional terhadap Y. (Y Z) Sehingga : X Y Z
1.6 Contoh Kasus ERD Di sebuah universitas, ketika masa registrasi mulai berdatangan, mahasiswa pasti melakukan registrasi mata kuliah. Mahasiswa wajib mengambil minimal 1 mata kuliah di setiap semesternya agar mereka dapat menyelesaikan perkuliahan mereka sesuai dengan SKS yang ada. Di setiap mata kuliah tentunya ada beberapa orang dosen yang akan mengajar mata kuliah tersebut. Setiap mata kuliah pasti ada 1 koordinator mata kuliah yang berasal dari kalangan dosen. Ketika seorang mahasiswa sudah mencapai tingkat akhir, mahasiswa tersebut pasti mengambil tugas akhir. Ketika menjalani tugas akhir tersebut, mahasiswa pasti dibimbing oleh 1 dosen pembimbing. Buatlah ERD sederhana dengan atribut-atribut penting (2 saja) untuk setiap entitasnya, kemudian gambarkan juga model relasionalnya. Setelah itu, buatlah tabel database serta lakukan normalisasinya. Jawaban : 1. Entity Relationship Diagram IM AMAMHS KODE AMA_MATKUL MAHASISWA MEGAMBIL MATA KULIAH MEMBIMBIG 1 DOSE MEGAJAR IP ama
2. Model Relasional IP IM AMAMHS IM KODE KODE AMA_MATKUL MAHASISWA MEGAMBIL MATA KULIAH MEMBIMBIG 1 DOSE MEGAJAR IP ama KODE IP IM AMAMHS IP Tabel Mahasiswa Tabel IP ama Dosen Tabel Mata Kuliah KODE AMA_MATKUL Tabel Mengambil
IM KODE Tabel Mengajar IP KODE
1.7 Contoh Kasus ormalisasi Diberikan sebuah tabel universal di bawah ini dan lakukan normalisasi sampai bentuk ketiga. Bentuk ormal ke 1 (1F) Tabel Perkuliahan belum memenuhi syarat 1F karena kolom Telepon bersifat multivalue. Solusi agar tabel Perkuliahan memenuhi syarat 1F adalah dengan melakukan pemecahan tabel atau dekomposisi tabel. amun perlu diingat, dekomposisi tabel harus dilakukan dengan cermat agar data tetap konsisten (perubahan hanya terjadi pada struktur tabel tetapi tidak ada perubahan pada data). Perhatikan bahwa (IM) (Telepon). Dengan demikian, kita dapat memecah tabel Perkuliahan menjadi tabel DataPerkuliahan dan DataomorTelepon seperti berikut ini.
Tabel DataPerkuliahan dan DataomorTelepon tidak memiliki atribut yang bersifat multivalue. Tabel DataPerkuliahan dan DataomorTelepon juga tidak memiliki lebih dari satu atribut dengan domain yang sama. Dengan demikian dapat disimpulkan bahwa tabel DataPerkuliahan dan DataomorTelepon telah memenuhi syarat 1F dan siap untuk diperiksa apakah memenuhi syarat bentuk normal level berikutnya (2 F). Bentuk ormal ke 2 (2F) Untuk mengonversi tabel ke bentuk nomal kedua, kita memisahkan tabel DataPerkuliahan menjadi beberapa tabel. Untuk lebih jelasnya perhatikan tabel DataPerkuliahan hasil tahap sebelumnya: Perhatikan bahwa: 1. (nim, kode_mk) adalah candidate key. 2. FD1: (nim) (nama_mhs, kd_jur, nama_jur) 3. FD2: (kode_mk) (nama_mk, sks) 4. FD3: (nim,kode_mk) nilai Berarti Terjadi Partial Functional dependency:
1. FD 1: (nim,kode_mk) (nama_mhs,kd_jur,nama_jur) secara parsial. 2. FD 2: (nim,kode_mk) (nama_mk,sks) secara parsial. Walaupun tabel DataPerkuliahan telah memenuhi syarat 1F namun karena terjadi partial functional dependency maka tabel T-1 DataPerkuliahan belum memenuhi syarat 2F. Solusinya adalah dengan melakukan dekomposisi terhadap tabel DataPerkuliahan dengan tetap menjaga agar datanya tetap konsisten. Hal ini dapat dilakukan dengan melakukan dekomposisi tabel sesuai FD1, FD2 dan FD3 yang telah kita analisis sebelumnya. Adapun hasil dekomposisi dari tabel DataPerkuliahan adalah 3 tabel berikut ini :
Ketiga tabel hasil dekomposisi tersebut sudah tidak mengalami partial functional dependency. Dengan demikian ketiga tabel tersebut telah memenuhi syarat 2F dan siap untuk diperiksa apakah memenuhi syarat bentuk normal level berikutnya (3F). Adapun Tabel DataomorTelepon (hasil dekomposisi pada tahap 1F) juga tidak mengalami partial functional dependency sehingga sudah memenuhi 2F, tidak perlu didekomposisi lagi dan dapat langsung diperiksa apakah memenuhi 3F bersama-sama dengan tabel DataJurusan, T-1-2 Matakuliah dan ilai. Bentuk ormal ke 3 (3F) Umumnya jika sebuah tabel telah memenuhi syarat bentuk normal ke tiga (3F) maka tabel tersebut sudah dianggap cukup normal. Bentuk normal ke 3 adalah bentuk normal yang biasanya menjadi syarat minimum bagi sebuah desan tabel. Untuk lebih jelasnya perhatikan tabel DataJurusan dari tahap sebelumnya: Perhatikan bahwa: FD1: (nim) (nama_mhs, kd_jur, nama_jur) FD2: (kd_jur) (nama_jur) Berarti Terjadi Transitive FD: (nim) (nama_jur) secara transitif melalui (kd_jur)
Walaupun tabel DataJurusan telah memenuhi syarat 2F namun karena terjadi transitive functional dependency maka tabel DataPerkuliahan belum memenuhi syarat 3F. Solusinya adalah dengan melakukan dekomposisi terhadap tabel DataJurusan dengan tetap menjaga agar datanya tetap konsisten sesuai FD1dan FD2. Adapun hasil dekomposisi dari tabel DataJurusan adalah 2 tabel berikut ini: