Skip to content Skip to sidebar Skip to footer

Optimasi Entity Relationship Diagram

Optimasi adalah mengupayakan sesuatu yang sudah kita rancang yang kemudian nantinya dapat menjadi lebih baik. Pada prinsipnya Optimasi adalah untuk meminimalisir adanya penambahan kolom dan tabel pada sebuah sistem. Optimasi memiliki dua tujuan :

1. Efisien

Adalah sesuatu yang dapat kita lakukan agar sebuah data base kita menjadi lebih efisien. Dalam hal ini penyimpanan akan lebih sederhana, lebih kecil, sehingga performa ketika kita melakukan penarikan data menjadi lebih baik. Apa yang dapat kita lakukan agar data base kita menjadi efisien :

a. Menambahkan Entitas Lemah (Weak Entity)

b. Menambahkan Kode (Kunci Alternatif)

Contoh Kasus : 

Entitas Mahasiswa : NIM, Nama, Alamat, Asal Sekolah, Alamat Sekolah, JK, Agama

Tabel Mahasiswa

NIM Nama ... Asal Sekolah Alamat Sekolah
111 Putu ... SMKN 1 Denpasar Jl. Cokroaminoto No.84
112 Kadek ... SMKN1Denpasar Jl. Cokroaminoto No.84
... ... ... ... ...
199 Ketut ... SMKN1Denpasar Jl. Cokroaminoto No.84

Dengan ditemukannya baris data berulang-ulang pada tabel mahasiswa, yaitu data dari atribut Asal Sekolah dan Alamat Sekolah perlu dilakukan penambahan entitas lemah dengan nama entitas sekolah.

Entitas  Sekolah : Nama Sekolah, Alamat Sekolah

Untuk dapat berelasi dengan entitas mahasiswa maka perlu menambahkan atribut primary key pada entitas sekolah, atribut tersebut adalah Kode Sekolah sehingga menjadi :

Entitas  Sekolah : Kode Sekolah, Nama Sekolah, Alamat Sekolah

Sehingga relasi yang terjadi adalah Mahasiswa memiliki Sekolah, dengan derajat kardinalitas banyak (Many) ke satu (One) :

a. Satu mahasiswa memiliki satu sekolah
b. Satu sekolah dimiliki banyak mahasiswa

Hasil akhir :
Mahasiswa : NIM, Nama, Alamat, JK, Agama
memiliki
Entitas  Sekolah : Nama Sekolah, Alamat Sekolah

Data yang ditemukan berulang-ulang tidak lagi ditulis, sehingga cukup menuliskan/menginputkan sekali saja pada tabel sekolah tersebut.

2. Fleksibilitas

Ketika kita membuat sebuah sistem, terkadang kita tidak bisa membuat hal tersebut betul-betul sesuai dengan apa yang dibutuhkan pada masa yang akan datang. Sebagai contoh pada sebuah sistem yang saat ini setiap kebutuhannya terpenuhi, kemudian ketika adanya sebuah kebijakan maka kebutuhan tersebut tidak dapat terpenuhi kembali. Hal tersebut mengakibat perlunya penambahan tabel dan sebagainya. Dalam hal ini perlu kita memikirkan sistem tersebut dapat berkembang dan beradaptasi dengan adanya kebijakan-kebijakan tersebut. Berikut ini yang dapat dlakukan ketika terdapat perubahan kebijakan sehingga data base masih dapat berfungsi dengan baik :
a. Penambahan atribut
Contoh :
Entitas KRS : NIM, Kode Matkul, Nilai
NIM Kode Matkul Nilai
111 MKU-17502 A
112 MKP-17502 B
Jika sebuah entitas disimpan dengan atribut seperti tabel diatas maka yang terjadi adalah penyimpanan berlaku untuk satu semester saja. Sehingga perlu penambahan atribut tahun dan semester untuk dapat menentukan tahun dan semester dari masing-masing record data tersebut.
Entitas KRS : Tahun, Semester, Kode Matkul, Nilai
Tahun Semester NIM Kode Matkul Nilai
2022 I 111 MKU-17502 A
2022 I 112 MKP-17502 B

b. Pemilihan domain atribut yang lebih luas
Contoh :
Jaman dahulu programer membuat sistem dengan dua digit huruf tahun, yaitu 97,98,99 dengan maksud menulis tahun, 1997, 1998, 1999. Kemudian masalah yang muncul adalah ketika tahun 2000. Sistem akan membaca tahun tersebut menjadi 00 yang kemudian berlanjut menjadi minus, sehingga kebanyakan sistem pada saat itu tidak bisa jalan. Masalah ini dahulu disebut dengan Year 2 kilo (Y2K) atau Millenium Bug . Dengan masalah tersebut menjadi perhatian semua programer saat untuk menyimpan domain atribut tahun menjadi lebih luas, sehingga dapat menyimpan data menjadi lebih lama.
Contoh lain adalah pemilihan tipe atribut dalam suatu sistem penjumlahan, antara tipe data integer (bersifat bulat) dan numerik. Lebih baik memilih numerik sehingga data yang disimpan dapat menghasil koma dan tidak bilangan bulat saja.

c. Melakukan generalisasi
Contoh :
Pada sistem perpustakaan, terdapat beberapa entity dengan relasi masing-masing dengan privilege berbeda-beda. Buku dipinjam oleh mahasiswa ataupun buku dipinjam oleh dosen. Bagaimana jika suatu saat ada sebuah kebijakan yang tidak hanya membatasi peminjaman terhadap buku kepada mahasiswa dan dosen saja? peminjaman dikembangkan kepada masyarakat umum, siswa, dan guru. Sehingga sistem perlu dikembangkan terus dan dibongkar ulang lagi untuk penambahan entitas tersebut. Disitulah yang disebut dengan sistem tidak end user computing bergantung pada programer yang mengembangkan.
Untuk mengantisipasi hal tersebut perlu dilakukan generalisasi (dibuat umum) terhadap entitas mahasiswa, dosen, masyarakat umum, siswa, dan guru menjadi entitas Anggota, sehingga relasi yang terjadi adalah buku dipinjam oleh anggota. Selanjutnya muncul pertanyaan bagaimana kita membedakan privilege yang terjadi pada setiap anggota? Maka perlu penambahan entitas lagi dengan nama Jenis, relasi yang terjadi adalah anggota memiliki jenis. Untuk atribut dari entitas jenis tersebut adalah privilege yang membedakan setiap jenis anggota, misalnya : kode jenis, nama jenis, lama meminjam, denda, maksimal meminjam.

d. Perubahan struktur entitas dari yang berbasis kolom ke yang berbasis baris
Contoh :
Pada sistem perpustakaan, terdapat entitas sirkulasi yang berisi atribut ID sirkulasi, tanggal pinjam, ID Anggota, ID Buku 1, ID Buku 2, dan ID Buku 3 seperti pada tabel dibawah ini :
ID SirkulasiTanggal PinjamID AnggotaID Buku 1ID Buku 2ID Buku 3
11 Pebruari 2022111B1B2B3
Pada tabel diatas, bahwasanya untuk setiap anggota hanya boleh miminjam buku maksimal 3 buah buku saja, bagaimana jika muncul perubahan kebijakan jika setiap anggota boleh meminjam lebih dari 3 buku? Sehingga sistem dengan tabel entitas diatas tidak akan bisa dipakai lagi. Untuk bisa dipakai lagi tabel harus ditambah kolom dan program akan mengalami perubahan kembali.
Bagaimana solusi ketika ada perubahan kebijakan seperti itu tidak harus melakukan perubahan terhadap tabelnya? Maka perlu dibuat dua buah tabel. Yang pertama adalah tabel sirkulasi seperti pada gambar dibawah ini :
ID SirkulasiTanggal PinjamID Anggota
11 Pebruari 2022111
Kemudian tabel detail sirkulasi adalah menjelaskan dari data buku yang telah dipinjam oleh anggota. Pada tabel ini struktur entitas data telah dirubah dari kolom menjadi baris. Dengan solusi seperti ini tidak akan mempengaruhi perubahan kebijakan yang terjadi terhadap struktur tabel yang sudah ada.
ID SirkulasiID AnggotaID Buku
1111B1
1111B2
1111B3

Post a Comment for "Optimasi Entity Relationship Diagram"