Membangun Sebuah Entity-Relationship Modeling atau ERD

Photo by Kevin Ku from Pexels

Membangun sebuah sistem kelihatannya mudah, tetapi semua itu hanyalah yang terlihat di depan mata. Ibaratnya seperti sebuah hotel, dari luar kelihatan bagus dan mudah dibangun. tetapi di bagian dalam hotel tersebut di mana kita tidak bisa melihat terdapat sebuah struktur bangunan yang terencana dengan baik.

Membangun aplikasi juga sama, ada sebuah database yang dibangun dan mendukung sebuah aplikasi agar berjalan dengan baik. Hari ini kita akan belajar yang namanya Entity-Relationship Modeling atau yang saya sebuat sebuah blueprint untuk membangun database. ER modelling berasal dari pendekatan top-down dan dimulai dari mengidentifikasi data yang disebut entity dan relasi antar data yang harus ditampilkan dalam model.

Tujuan dari Entity Relationship Diagram(ERD) adalah menangkap maksud dari data dan hubunganya sebanyak mungkin. Sehingga kita akan memperoleh hasil akhir yang mudah untuk dijaga dan diatur.

Entity

Entity secara umum merepresentasikan orang, object, tempat, kejadian atau konsep yang ada dalam lingkungan kerja user di mana perusahaan tempat user bekerja tersebut ingin memperoleh/mengolah data.

Biasanya entity akan digambarkan dengan simbol kotak dengan nama entity di dalam kotak tersebut

 
 Kemudian istilah yang mungkin muncul adalah Entity Type.  Entity type adalah sekumpulan entity yang mempunya karakteristik atau properti yang sama. Contohnya adalah data pelanggan, setiap data pelanggan yang disimpan memiliki properti yang sama yakni Nama, Alamat dan No KTP. Serta Entity type ini juga merepresentasikan sebuah grup "objek" pada "dunia nyata".


Relationship Degree dan Relationship Cardinality/types

Relationship di sini adalah hubungan antar data. Ada beberapa macam hubungan antar data dan ada beberapa tingkatan.

Relationship Type atau tipe relasi adalah sebuah hubungan antar tipe entity, maksudnya adalah setiap data bisa memiliki hubungan dengan data lain. Misalkan Data customer dengan data barang, hubungannya adalah Customer bisa berbelanja barang-barang yang kita miliki. Tipe dari relasi ini disebut juga dengan Cardinality yang digunakan untuk mendeskripsikan jumlah relasi antar data.

Ada 3 macam relasi dalam data yang bisa terjadi 

  • One-to-one(1:1)
  • One-to-Many(1:*)
  • Many-to-Many(*:*) 
Kemudian ada yang namanya Mandatory, maksudnya minimal ada 1 data yang terhubung. Sedangkan bila tidak harus ada data maka disebut optional.
Setiap relasi digambarkan dengan simbol yang merepresentasikan relasi tersebut contohnya seperti berikut beserta istilahnya

Misalkan mandatory yang berupa relasi one-to-one, maksudnya sebuah data akan berhubungan dengan minimal 1 data lain dan maksimal 1 data saja. Sedangkan mandatory many adalah relasi one-to-many yang memiliki arti bahwa sebuah data memiliki hubungan minimal dengan 1 data lain dan maksimalnya bisa banyak
 

Membuat Relasi antar tabel di ERD

Tahap 1 Conceptual Data Model

Pertama kita lihat dari sisi barang terhadap transaksi. Misalkan sebuah barang, bisa tidak terjual(tidak ada transaksi) namun bisa terjual banyak(terjadi banyak transaksi) dalam supermarket maka relasi  barang tersebut menjadi optional many dan digambarkan dengan bentuk seperti gambar berikut.

Kemudian kita melihat sisi sebaliknya yakni transaksi terhadap barang. Apakah dalam 1 transaksi pasti ada 1 barang? jika iya maka minimal 1. Kemudian dalam sebuah transaksi bisa memiliki banyak barang maka bentuknya menjadi minimal 1 dan maksimal many. Maka gambar tersebut akan menjadi.

 
 Sampai tahap ini kita telah membangun relasi antar data secara konsep dan tahap ini sering disebut Conceptual Data Model atau CDM. Untuk ERD memerlukan sebuah simbol yang lebih banyak lagi untuk membantu dalam mengidentifikasi dan memenuhi kebutuhan.
 
Lakukan Conceptual Data Model ini dengan client dan pastikan benar-benar sesuai dengan kebutuhan dan kejadian yang sesungguhnya di dalam perusahaan. Setelah itu coba masuk ke dalam ERD.

Simbol Dalam Entity Relationship Diagram 

Identifier

Pertama identifier, Digunakan untuk memberitahu data mana yang digunakan sebagai pembeda sebuah data dengan data yang lain.

Misal NoKTP, no ktp adalah sebuah no identifikasi unik yang bisa membedakan 1 data dengan data yang lain. Tetapi identifier ini hanya untuk membedakan agar komputer tidak bingung dan agar kita bisa membedakan 1 data dengan yang lain. 

Untuk Indetifier, pilihlah sebuah nilai yang tidak akan berubah, dan pasti ada. Di setiap entity biasanya akan ada sebuah identifier. Identifier ini juga disebut sebagai candidate key.

 Attribute

Attribute, adalah sebuah properti yang ingin disimpan dalam data. Seperti yang ada dalam sebelumnya identifier adalah sebuah atribut yang bersifat unik seperti NoKTP. Atribut biasa tidak bersifat unik dan bisa digunakan/disimpan berulang-kali. Misal Nama, Alamat dan tanggal lahir. Bisa jadi seseorang memiliki alamat yang sama dikarenakan mereka bersaudara. Sehingga alamat tidak bisa digunakan sebagai identifier.

Sehingga bentuk dari sebuah entity akan menjadi seperti gambar berikut

Cara membacanya masih sama seperti sebelumnya, yakni 1 penduduk bisa tidak memiliki 0 kendaraan dan bisa memiliki banyak kendaraan. Kemudian bila dibaca sebaliknya berarti 1 kendaraan minimal dimiliki oleh 1 penduduk dan maksimal hanya 1 saja. Karna seperti yang kita tahu bahwa kepemilikan sebuah kendaraan hanya bisa 1 orang saja. Kemudian akan ada sebuah gambar yang ditambahkan di tengah-tengah relationship yang ada di antara penduduk dan kendaraan. Simbol tersebut digunakan untuk memperlihatkan tingkatan relasi antar entity. Karena setiap entity tidak hanya terhubung dengan entity lain, tetapi bisa juga berrelasi dengan dirinya sendiri atau dengan 2 entity lain

 

Tingkatan Relasi dalam Entity Relationship Diagram

Ada 3 macam tingkata relasi dalam ERD :

  • Unary
  • Binary
  • Ternary

Tingkat Relasi Unary 

Unary adalah sebuah entity yang memiliki relasi dengan dirinya sendiri, gambar relasinya seperti di bawah ini

Contoh Relasi Unary 

 Contohnya seperti apa? Misalkan yang disimpan adalah data pegawai, seorang pegawai akan mempunya atasan yang datanya juga disimpan sebagai data pegawai. Karena itu akan muncul sebuah relasi seperti unary di mana sebuah entiy berelasi dengan dirinya sendiri.

Tingkat Relasi Binary

Kemudian binary adalah sebuah tingkat relasi yang umum dan sering kita lihat di mana sebuah entity terhubung dengan entity lain.

Contoh Relasi Binary

Relasi binary digunakan untuk menguhubungkan antar tabel seperti penduduk bisa memiliki kendaraan akan tetapi dari sisi kendaraan pasti dimiliki oleh seorang penduduk. Terakhir masih ada 1 lagi tingkatan relasi yang ada, yakni Ternary.

Tingkat Relasi Ternary

Tingkat relasi ternary berarti ada lebih dari 2 entity yang saling berhubungan. 

Contoh Relasi Ternary
 
 
Apakah ada penyimpanan data menggunakan tingkatan ternary ini, ada dan akan sangat sering digunakan. Misalkan data transaksi dalam sebuah supermarket. Relasi yang terjadi adalah Seorang customer akan membeli sebuah barang, ini adalah relasi pertama. Kemudian pembelian tersebut dibantu oleh seorang kasir, ini lah relasi kedua. Karena tidak mungkin seorang customer melakukan pembelanjaan dalam supermarket dan tidak dibantu oleh kasir

Sehingga bentuk nya akan menjadi seperti ini

Perlu diingat bahwa jenis relasi perlu dimasukan(One-To-One, One-To-Many, Many-To-Many). Saya tidak memasukan dalam penjelasan mengenai teingkatan relasi agar mudah dibaca dan dimengerti. 

Kemudian di dalam tanda relasi akan ada sebuah kata kerja sehingga relasi tersebut lebih mudah dibaca dan dimengerti artinya. Perhatikan simbol  

Tuliskan relasi yang terjadi antar entity di tengah-tengah simbol relationship. Misalkan penduduk dan kendaraan, relasi yang terjadi adalah milik. Maksudnya apa? Seorang penduduk memiliki kendaraan dan sebuah kendaraan dimiliki penduduk. 

Sehingga hasil akhir dari sebuah ERD yang benar seharusnya akan muncul seperti gambar berikut


Lengkap dengan atribut-atributnya. Dari mana kita tahu atribut-atributnya? tentu saja dari client atau dari hasil fact finding yang dilakukan di tempat client. Membangun sebuah ERD memang perlu dibiasakan. 

Multi Value Attribute

Kemudian akan ada simbol yang jarang digunakan seperti  multi value attributem dengan simbol lingkaran.

Multi value attribut digunakan untuk menyimpan data yang memiliki beberapa nilai, seperti jabatan atau gelar seseorang. Seperti gelar "S.SI, M.Kom" hal ini akan disimpan dalam 1 penyimpanan saja untuk kemudahan dan simbolnya adalah multi value attribute.

Tetapi praktik ini jauh dari aturan Boyce Codd Normal Form dan akan masuk ke dalam 1NF. Untuk contoh bentuk penyimpanan 1 NF dapat dlihat dalam artikel berikut "Contoh dan normalisasi tabel".

 Note :

Untuk mudahnya bangunlah Conceptual Data Model bersama dengan clientmu terlebih dahulu dan pastikan relasi antar entity tergambar dengan benar sesuai kondisi perusahaan. Setelah itu kamu bawa pulang hasil fact finding dan gambarakan dengan lebih detil bersama-sama dengan anggota timmu.




Komentar