Showing posts with label Basis Data. Show all posts
Showing posts with label Basis Data. Show all posts

Pengenalan SQL Server | Basis Data

Pengenalan SQL Server | Basis Data

recudo.com - Hay guys.. Jumpa lagi nih denga recudo. Gimana nih kabar kalian?. Semoga baik-baik aja yah. Disini admin akan memberikan materi Basis Data tentang "Pengenalan SQL Server".


Apakah SQL itu?

SQL singkatan dari Structured Query Language yang merupakan bahasa komputer standar ANSI (American National Standards Institute). Dengan SQL kita dapat :
  • Membuat basis data dan struktur tabel
  • Input, update, dan delete data dari tabel
  • Membuat query sederhana dan kompleks SQL 


SQL tersedia dalam banyak versi Ms.Access,  DB2,  MS SQL server, Oracle, MySQL, Sybase,dll. 

SQL Data Definition Language

Berfungsi untuk membuat atau menghapus database dan mendefinisikan objek-objek (table, index, view, stored procedure, trigger) yang ada di dalam database.

1. Create

Digunakan untuk membuat database dan objek-objek di dalam database.

Membuat Database
Create Database Namadatabase

Contoh

Create Database Kepegawaian

Mengaktifkan Database Yang Telah Dibuat
Use Namadatabase

Contoh

Use Kepegawaian

Membuat Tabel
Create Table NamaTable (Nama_field/kolom typedata (size), …)

Contoh

Create Table pegawai (NIP char (8) not null primary key, Nama varchar (25), Alamat varchar (50),telf varchar (15))


2. Drop

Digunakan untuk menghapus database dan objek-objek di dalam database.

Menghapus Database
Drop Database Namadatabase

Contoh

Drop Database Kepegawaian
varchar (15))

Menghapus Tabel
Drop Table Namatable

Contoh

Drop Table pegawai

3. Alter

Berfungsi untuk memodifikasi tabel

  • Menambah kolom/field
  • Menghapus kolom/field
  • Membuat primary key atau foreign key

Menambah Kolom/Field
Alter Table NamaTable add Namafield typedata (size)

Contoh

Alter Table Pegawai add status varchar (5)

Merubah Kolom/Field
Alter Table NamaTable Alter Column Namafield typedata (size)

Contoh

Alter Table Pegawai Alter Column status varchar (10)

Menghapus Kolom/Field
Alter Table NamaTable drop Namafield

Contoh

Alter Table Pegawai drop statusn status varchar (10)

Menambah Primary Key
Alter Table NamaTable add primary key (namafield)

Contoh

Alter Table departement add primary key (kd_depart)

SQL Data Manipulation Language

Berfungsi untuk memanipulasi data (menampilkan, menambahkan, dan menghapus data).

1. Insert

Digunakan untuk Menambah Data dalam satu record

Insert Into NamaTable (namafield1,namafield2,…)

Values (‘nilaifield1’,’nilaifield2’,…)

Contoh

Insert Into pegawai (nip,nama) values (’01’,’andika’)
Atau bisa juga bila kita mengingat seluruh bentuk field dalam tabel
Insert Into namatable values (‘nilaifield1’,’nilaifield2’,…)

2. Select

Berfungsi untuk Menampilkan record data yang ada dalam table

Select * from namatabel

Contoh

Select * from pegawai
(menampilkan data di semua field yang ada dalam table pegawai)

Simbol * bermaksud ‘all’ atau ‘semua’, dan digunakan untuk mewakili semua atribut dalam satu tabel

Menampilkan Sebagian Field beserta Recordnya Yang Ada Pada Tabel
Select namafield,namafield from namatabel

Contoh

Select nip,alamat from pegawai

Menampilkan Baris Record Tertentu Berdasarkan Pilihan Field Yang Diberikan
Select * from namatabel where namafield=‘nilaifield’

Contoh

Select * from pegawai where alamat=‘medan’

Menampilkan Satu Field Beserta Recordnya Yang Tidak Akan Berulang
Select distinct namafield from namatabel

Contoh

Select distinct alamat from pegawai

Baris-baris berulang (duplicate) tidak akan dipaparkan.
Sekiranya kita memilih lebih dari satu atribut ketika menggunakan
DISTINCT, hasilnya adalah gabungan atribut-atribut yang unik

Menampilkan Beberapa Field Beserta Recordnya Yang Sama Tidak Akan Berulang
Select distinct namafield1,namafield2 from namatabel

Contoh

Select distinct alamat,status from pegawai

NIP NAMA ALAMAT STATUS
01 Budi Medan Nikah
02 Andi Jakarta Single
03 Yoga Bandung Single
04 Indah Bandung Single

ALAMAT STATUS
Medan Nikah
Jakarta Single
Bandung Single










Satu baris nip [03] tidak dipaparkan kerana berulang

Menggunakan Ungkapan Aritmatik dalam Pernyataan +, -, /, *
Select namafield ungkapan aritmatik from namatabel

Contoh

Select nama,gaji*2 from pegawai

NIP NAMA ALAMAT STATUS Gaji
01 Budi Medan Nikah 100000
02 Andi Jakarta Single 75000
03 Yoga Bandung Single 65000
04 Indah Bandung Single 125000


NAMAGAJI
Budi200000
Andi150000
Yoga130000
Putri250000













  • Kita boleh menamakan semula suatu atribut (walaupun telah mempunyai nama) dengan menggunakan AS

SELECT nama, gaji*2 AS GajiDuaKali FROM pegawai

NAMAGajiDuaKali
Budi200000
Andi150000
Yoga130000
Putri250000













  • Kita dapat membuat dan mengubah judul field yang akan di tampilkan

Select namafield As namafieldbaru from namatabel

Contoh

Select nama As namalengkap from pegawai
Menampilkan nama dari tabel pegawai dimana field nama pada hasil SQL di ubah menjadi namalengkap

Menggunakan Simbol perbandingan <, >, = untuk membuat pemilihan
Select namafield from namatabel where simbol perbandingan

Contoh

Select nama,gaji from pegawai where gaji > 100000

Select nama,gaji from pegawai where gaji < 75000


Select nama,gaji from pegawai where gaji = 65000

Menggunakan operator Boolean Seperti And OR dan Not 
Select namafield1,namafield2 from namatabel where namafield1 operatorboolean namafield2

Contoh

Select alamat,gaji from pegawai where alamat=‘Medan’ and gaji > 100000

Select alamat,gaji from pegawai where alamat=‘Jakarta’ Or gaji > 75000

Select * from pegawai where alamat=‘Bandung’ Or alamat=‘Jakarta’

Select * from pegawai where Not alamat=‘Bandung’


Operator  Logika Boolean
  • Apabila AND digunakan, disemua syarat sebelum dan setelah AND harus benar untuk suatu tuple dipilih
  • Apabila OR digunakan, hanya salah satu syarat sebelum atau sesudah OR harus benar ataupun keduanya benar untuk suatu tuple dipilih
  • Apabila NOT digunakan, yang bukan syarat yang akan di tampilkan



Jarak Nilai Sebagai Kriteria

Kita boleh mengunakan pernyataan BETWEEN

Select namafield from namatabel where namafield between nilai and nilai

Contoh

Select nama,gaji from pegawai where gaji between 850000 and 1000000

Operator In

Pencocokan data kondisi pencarian dengan salah satu data yang ada pada suatu daftar nilai.

Select namafield from namatabel where namafield In (nilaifield1,nilaifield2)

Contoh

Select * from pegawai where alamat In (‘medan’,’jakarta’)

Select nama,alamat from pegawai where alamat In (‘medan’,’jakarta’)

Operator Like

  • Untuk pencarian data
  • Bekerja pada type data char, varchar dan text

Select namafield from namatabel where namafield Like ‘%ekspresi%’

Contoh

Select * from pegawai where alamat Like ‘%andi%’

(menampilkan semua klolom dari tabel pegawai yang namanya mengandung kata andi)

Fungsi Agregat


Fungsi yang mengambil suatu kumpulan nilai-nilai sebagai input dan mengembalikan satu nilai sebagai output

Select fungsi agregat SUM/AVG/MIN/MAX/COUNT (namafield) As namafieldbaru from nama table

SQL menyediakan 5 fungsi

  1. AVG  : Rata-rata
  2. MIN   : Minimum
  3. MAX : Maksimum
  4. SUM : Penjumlahan isi record
  5. COUNT : Menjumlahkan data



  • Operasi MIN, MAX dan COUNT dapat dilakukan dalam atribut yang mempunyai jenis data rentetan (string) seperti Char, Text, dan Varchar
  • Operasi AVG dan SUM hanya boleh dilakukan keatas atribut-atribut yang mempunyai jenis data numerik yang berjenis int, bigint, decimal, bit, numeric, real, smallint, tinyint.


1. AVG : menghitung nilai rata-rata dalam satu kolom

Select Avg (gaji) As Rata_Gaji from pegawai

NIP TUNJANGAN GAJI
01 10000 120000
02 20000 90000
03 10000 150000
04 20000 85000

Rata_Gaji
111259






2. MIN : mencari atau menampilkan nilai terendah

Select min (gaji) As Gaji_min from pegawai

(Menampilkan gaji terendah dari tabel pegawai)

Select min (gaji) As Gaji_min from pegawai where status=‘nikah’

(Menampilkan gaji terendah dari tabel pegawai yang statusnya telah menikah)

3. MAX : mencari atau menampilkan nilai tertinggi

Select max (gaji) As Gaji_max from pegawai

(Menampilkan gaji tertinggi dari tabel pegawai)

Select max (gaji) As Gaji_max from pegawai where status=‘nikah’

(Menampilkan gaji tertinggi dari tabel pegawai yang statusnya telah menikah)

4. SUM : penjumlahan dalam satu kolom

Select sum (tunjangan) As jlh_tunj from pegawai

NIPTUNJANGANGAJI
0110000120000
022000090000
0310000150000
042000085000

Jlh_Tunjangan
60000







Menampilakn jumlah keseluruhan dari tunjangan yang di berikan.

5. COUNT : menghitung jumlah record yang sesuai kondisi

Select count (nip) As jlh_peg from pegawai

(Menampilkan jumlah seluruh pegawai dari tabel pegawai)

Select count (nip) As jlh_peg from pegawai where status=‘nikah’

(Menampilkan jumlah seluruh pegawai dari tabel pegawai yang statusnya telah menikah)

Pengeompokka Record (Group By)

Pada kondisi tertentu, sekumpulan record dapat dikelompokkan berdasarkan satu atau lebih field yang terdapat pada sebuah tabel atau query.

Select namafield1,namafield2 from namatabel Group by field pengacu

Contoh

Select  jeniskelamin,count (*) as jumlah from mahasiswa group by jeniskelamin

Hasil nya :

Jenis Kelamin Jumlah
Laki-Laki 5
Perempuan 4









Pengurutan (Order By)

Hasil dari query dapat di urutkan berdasarkan pada satu atau lebih kolom.

Select namafield1 from namatabel where kriteria
order by namafield

Select nim,nama where jeniskelamin=’perempuan’ 
order by nama

Select nim,nama where jeniskelamin=’perempuan’ 
order by nama asc

Select nim,nama where jeniskelamin=’perempuan’ 
order by nama desc

Hasil nya :


NimNama
2008Andi
2009Diana
2010Putri
2011Zakkir












Pernyataan Having

  • Menampilkan kelompok-kelompok data tertentu
  • Having berbeda dengan where, pernyataan where digunakan untuk memberikan criteria sebelum pengelompokan dan melakukan penyaringan baris. Sedangkan having digunakan untuk memberikan criteria setelah pengelompokan dilakukan, menyaring kelompok, dan menentukan kondisi bagi Group By

Select namafield1,… from namatabel Group by field pengacu
Having kondisi

Contoh

Select  barang, count (jumlah) As totalfaktur from Torder Group by idbarang having idbarang=‘A009’


3. Update

Berfungsi untuk mengubah satu atau lebih data yang terdapat pada satu atau lebih kolom tabel

Update namatabel set namafield=nilai where kondisi

Contoh

Update pegawai set alamat=‘medan’ where nip=’01’

Menukar Record Dalam Tabel
Update namatabel set namafield=nilai

Contoh

Update pegawai set gaji=gaji+12000

Pernyataan diatas akan menambah ‘gaji’ yang awal dengan +12000 dalam tabel pegawai.

4. Delete

Berfungsi untuk menghapus satu atau beberapa record dalam suatu tabel.

Delete from namatabel where kondisi

Contoh

Delete from pegawai where nip=’01’


Terima kasih untuk kalian yang telah mengunjungi artikel ini, semoga dapat bermanfaat.
Dan tetap nantikana artikel menarik dari recudo yah. ^_^

Normalisasi Data | Basis Data

Normalisasi Data | Basis Data

recudo.com - Hay guys.. Jumpa lagi nih denga recudo. Gimana nih kabar kalian. Semoga baik-baik saja yah. Disini admin akan memberikan materi Basis Data tentang "Normalisasi Data". Langsung aja nih.

1. Normalisasi

Normalisasi merupakan sebuah teknik dalam logical desain sebuah basis data yang mengelompokkan atribut dari suatu relasi sehingga membentuk struktur relasi yang baik (tanpa redudansi). Normalisasi adalah proses pembentukan struktur basis data sehingga sebagian besar ambiguity bisa dihilangkan.

2. Tujuan Normalisasi
  • Untuk menghilang kerangkapan data
  • Untuk mengurangi kompleksitas
  • Untuk mempermudah pemodifikasian data

3. Proses Normalisasi
  • Data diuraikan dalam bentuk tabel, selanjutnya dianalisis berdasarkan persyaratan tertentu ke beberapa tingkat.
  • Apabila tabel yang diuji belum memenuhi persyaratan tertentu, maka tabel tersebut perlu dipecah menjadi beberapa tabel yang lebih sederhana sampai memenuhi bentuk yang optimal.

4. Tahapan Normalisasi
  • Tahap Normalisasi dimulai dari tahap paling ringan (1NF) hingga paling ketat (5NF) 
  • Biasanya hanya sampai pada tingkat 3NF atau BCNF karena sudah cukup memadai untuk menghasilkan tabel-tabel yang berkualitas baik.
  • Urutan: 1NF, 2NF, 3NF, BCNF, 4NF, 5NF



Normalisasi

Sebuah tabel dikatakan baik (efisien) atau normal jika memenuhi 3 kriteria sbb:
  1. Jika ada dekomposisi (penguraian) tabel, maka dekomposisinya  harus dijamin aman (Lossless-Join Decomposition). Artinya, setelah tabel tersebut diuraikan / didekomposisi menjadi tabel-tabel baru, tabel-tabel baru tersebut bisa menghasilkan tabel semula dengan sama persis.
  2. Terpeliharanya ketergantungan fungsional pada saat perubahan data (Dependency Preservation).
  3. Tidak melanggar Boyce-Codd Normal Form (BCNF) (-akan dijelaskan kemudian-)
Jika kriteria ketiga (BCNF) tidak dapat terpenuhi, maka paling tidak tabel tersebut tidak melanggar Bentuk Normal  tahap ketiga (3rd Normal Form / 3NF).

Contoh 1 :

Relasi Tidak Normal (Tabel Personil)

ID_Personil Tanggal Lahir Karakteristik
A201 10 Mei 1974 Tinggi 168
Berat 65
Rambut Hitam
A202 24 Mei 1998 Tinngi 169
Berat 56
Rambut Hitam

Relasi Normal (Tabel Personil)

ID_Personil  Tanggal Lahir  Tinggi  Berat Warna Rambut 
A201 10 Mei 1974 168 65 Hitam
A202 24 Mei 1998 169 56 Hitam

Tabel Universal


Tabel Universal (Universal / Star Table) adalah sebuah tabel yang merangkum semua kelompok data yang saling berhubungan, bukan merupakan tabel yang baik. 

Misalnya :

Contoh 2 :

Tabel Universal

No-Mhs Nm-Mhs Jurusan Kd-Mk Nama-Mk Kd-Dosen Nm-Dosen Nilai
2011 Budi TI TI291
TI332
Basis Data
Kalkulus 
B01
B21
Lutfi
Dwi
B
C
2015 Andi SI SI554
SI121
SI126
Web Design
Kalkulus
PTM
B45
B21
B75
Andi
Buan
Rita
A
A
B

Functional Dependency


Notasi: A ➡ B
A dan B adalah atribut dari sebuah tabel. Berarti secara fungsional A menentukan B atau B tergantung pada A, jika dan hanya jika ada 2 baris data dengan nilai A yang sama, maka nilai B juga sama

Notasi: A ↛ B atau  A x➡ B
Adalah kebalikan dari notasi sebelumnya.

Contoh 3 : Tabel Nilai

NamaKul Nrp namaMhs NiHuruf
Basis Data 161221 Nawan A
Basis Data 161220 Azmi B
Basis Data 161232 Budi C
Basis Data 161201 Satrio A
Kalkulus 2 161207 Putri A
Kalkulus 2 161221 Nawan C
Jarkom 161203 Yoga A
Jarkom 161207 Putri B
English 161209 Andi D

Functional Dependency dari tabel nilai
  • Nrp ➡ namaMhs, Karena untuk setiap nilai nrp yang sama, maka nilai namaMhs juga sama.
  • {Namakul,  nrp} ➡ NiHuruf, Karena attribut Nihuruf tergantung pada Namakul dan nrp secara bersama-sama. Dalam arti lain untuk Namakul dan nrp yang sama, maka NiHuruf juga sama, karena Namakul dan nrp merupakan key (bersifat unik).
  • NamaKul ↛  nrp
  • Nrp ↛  NiHuruf
Contoh 4 : Andaikan ada tabel: NILAI (NIM, Nm-mk, Semester, Nilai). Atribut kunci: NIM, Nm-mk, Semester. Maka Functional Dependency: NIM, Nm-mk, Semester -> Nilai

Bentuk-Betuk Normal

  • Bentuk Normal Tahap Pertama (1st Normal Form / 1NF)
  • Bentuk Normal Tahap Kedua (2nd Normal Form / 2NF)
  • Bentuk Normal Tahap (3rd Normal Form / 3NF)
  • Boyce-Code Normal Form (BCNF)
  • Bentuk Normal Tahap (4th Normal Form / 4NF)
  • Bentuk Normal Tahap (5th Normal Form / 5NF)

Normal Pertama
  • Aturan : 
    • Tidak adanya atribut multi-value, atribut komposit atau kombinasinya.
    • Mendefinisikan atribut kunci.
    • Setiap atribut dalam tabel tersebut harus bernilai atomic (tidak dapat dibagi-bagi lagi)

Contoh 5 (Attribut Multi-Value)

Misal Data Mahasiswa sbb:

Nrp Nama Hobi
1612000001 Satrio Futsal, Berenang, Basket
1612000021 Nawan Futsal, Sepak Bola
1612000028 Putri Memasak

Di dekomposisikan menjadi :

Tabel Mahasiswa :

Nrp Nama
1612000001 Satrio
1612000021 Nawan
1612000028 Putri

Tabel Hobi :

Nrp Hobi
1612000001 Futsal
1612000001 Berenang
1612000001 Basket
1612000021 Futsal
1612000021 Sepak Bola
1612000021 Memasak

Contoh 6 (Composite) :

Jadwal Kuliah :

KodeKul NamaKul Dosen Kelas Jadwal

Dimana nilai pada atribut jadwal berisi gabungan antara Hari dan Jam. Jika asumsi hari dan jam memegang peranan penting dalam sistem basis data, maka atribut Jadwal perlu dipisah sehingga menjadi JadwalHari dan JadwalJam sbb:

Jadwal Kuliah :

KodeKul NamaKul Dosen Kelas Jadwal Hari Jadwal Jam

Normalisasi Kedua (2nd Normal Form)

  • Aturan : 
    • Sudah memenuhi dalam bentuk normal kesatu (1NF)
    • Semua atribut bukan kunci hanya boleh tergantung (functional dependency) pada atribut kunci
    • Jika ada ketergantungan  parsial maka atribut tersebut harus dipisah pada tabel yang lain
    • Perlu ada tabel penghubung ataupun kehadiran foreign key bagi atribut-atribut yang telah dipisah tadi

Contoh 7 :

Tabel berikut memenuhi 1NF tapi tidak tidak termasuk 2NF

Mhs_nrpmhs_namamhs_alamatmk_kodemk_namamk_sksnihuruf

Tidak memenuhi 2NF, karena {Mhs_nrp, mk_kode} yang dianggap sebagai primary key sedangkan:

  • {Mhs_nrp, mk_kode}  ↛ mhs_nama
  • {Mhs_nrp, mk_kode}  ↛ mhs_alamat
  • {Mhs_nrp, mk_kode}  ↛ mk_nama
  • {Mhs_nrp, mk_kode}  ↛ mk_sks
  • {Mhs_nrp, mk_kode}  ➡ nihuruf
Tabel di atas perlu didekomposisi menjadi beberapa tabel yang memenuhi syarat 2NF 

Functional dependencynya sbb:
  • {Mhs_nrp, mk_kode} ➡  nihuruf  (fd1)
  • Mhs_nrp  ➡ {mhs_nama, mhs_alamat} (fd2)
  • Mk_kode  ➡ {mk_nama, mk_sks} (fd3)

  • fd1 (mhs_nrp, mk_kode, nihuruf)  ➡ Tabel Nilai
  • fd2 (Mhs_nrp, mhs_nama, mhs_alamat)  ➡ Tabel Mahasiswa
  • fd3 (mk_kode, mk_nama, mk_sks) ➡ Tabel MataKuliah

Normalisasi Ketiga (3rd Normal Form)
  • Aturan : 
    • Sudah berada dalam bentuk normal kedua (2NF)
    • Tidak ada ketergantungan transitif (dimana atribut bukan kunci tergantung pada atribut bukan kunci lainnya).

Contoh 8 :

Tabel di atas memenuhi 2NF, tapi tidak memenuhi 3NF :

Mahasiswa

NrpNamaAlm_JalanAlm_KotaAlm_ProvinsiAlm_Kodepos

  • Karena masih terdapat atribut non primary key (yakni alm_kota dan alm_Provinsi) yang memiliki ketergantungan terhadap atribut non primary key yang lain (yakni alm_kodepos):
    • alm_kodepos ➡ {alm_Provinsi, alm_kota}
  • Sehingga tabel perlu didekomposisi menjadi :
    • Mahasiswa (Nrp, nama, alm_jalan, alm_kodepos)
    • Kodepos (alm_kodepos, alm_provinsi, alm_kota)

Boyce-Codd Normal Form (BCNF)
  • Bentuk BCNF terpenuhi dalam sebuah tabel, jika untuk setiap functional dependency terhadap setiap atribut atau gabungan atribut dalam bentuk: X ➡ Y maka X adalah super key 
  • Tabel tersebut harus di-dekomposisi berdasarkan functional dependency yang ada, sehingga X menjadi super key dari tabel-tabel hasil dekomposisi 
  • Setiap tabel dalam BCNF merupakan 3NF. Akan tetapi setiap 3NF belum tentu termasuk BCNF . Perbedaannya, untuk functional dependency X ➡ A, BCNF tidak membolehkan A sebagai bagian dari primary key.

Normalisasi Keempat (4th Normal Form)
  • Bentuk normal 4NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk BCNF, dan tabel tersebut tidak boleh memiliki lebih dari sebuah multivalued atribute 
  • Untuk setiap multivalued dependencies (MVD) juga harus merupakan functional dependencies 

Contoh 9 :

Misal, tabel berikut tidak memenuhi 4NF :

EmployeeProjectSkill
Jim11Program
Mary5Design
MarynullAnalysis
Setiap employee dapat bekerja di lebih dari project dan dapat memiliki lebih dari satu skill. Untuk kasus seperti ini tabel tersebut harus di-dekomposisi menjadi:
  • (Employee, Project)
  • (Employee, Skill)

Normalisasi Kelima (5th Normal Form)
  • Bentuk normal 5NF terpenuhi jika tidak dapat memiliki sebuah lossless decomposition menjadi tabel-tabel yg lebih kecil.
  • Jika 4 bentuk normal sebelumnya dibentuk berdasarkan functional dependency, 5NF dibentuk berdasarkan konsep join dependence. Yakni apabila sebuah tabel telah di-dekomposisi menjadi tabel-tabel lebih kecil, harus bisa digabungkan lagi (join) untuk membentuk tabel semula 

Terima kasih kalian yang telah mengunjungi artikel ini, semoga dapat bermanfaat dan semoga membantu kalian menyelesaikan tugas seperti ini.
Dan tetap nantikan artikel menarik dari recudo yah. ^_^

Entity Relationship Diagram (ERD) | Basis Data

Entity Relationship Diagram (ERD) | Basis Data

recudo.com - Hay guys.. Jumpa lagi nih dengan recudo. Gimana nih kabar kalian?. Semoga baik-baik saja yah. Disini admin akan memberikan materi Basis Data tentang "Entity Relationship Diagrram (ERD). Langsung aja nih.

1. Entity Relationship Diagram (ERD)

ERD adalah suatu diagram yang menggambarkan hubungan antar entity di dalam 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 di kemukakan oleh beberapa ahli, dan yang akan dibahas adalah model ERD menurut versi Peter Chen dan James Martin. Perbedaannya terletak pada relation / hubungannya. Tetapi yang lebih umum digunakan adalah ERD versi Chen.

ERD berisi 3 Komponen Objek :

a. Entity 
Entity adalah objek data yang utama dimana informasi dikumpulkan. Biasanya menunjukkan orang, tempat, benda, atau kejadian yang bersifat informasional.
Cth: pegawai, departemen, divisi, proyek, lokasi, keahlian, dll.

b. Relationships
Menggambarkan hubungan antara satu atau lebih entity, yang digambarkan dalam bentuk diamond. Biasanya menunjukkan hubungan: one-to-one, one-to-many, dan many-to-many 

c. Attributes
Attributes Adalah karakteristik yang ada di dalam entity, yang menghasilkan deskripsi detil mengenai entity. Bagian dari sebuah atribut yang ada di dalam sebuah entity atau relationship disebut nilai atribut.
Cth: di dalam entity karyawan terdapat id-kary, nama-kary, alamat-kary, dll

  • Ada 2 tipe atribut:
    • Sebagai Identifiers : digunakan untuk menetapkan bagian yang unik dari sebuah entity. Disebut juga Key.
    • Sebagai Descriptor : untuk menspesifikasikan karakteristik yang non-unik dari bagian entity


Gambar simbol komponen di dalam ERD


Ada dua versi ERD :

a. ERD versi Chen

Pada dasarnya ERD versi Chen sama seperti gambar komponen-komponen yang telah disebutkan.
  • Relationship digambarkan dgn diamond
  • Kotak menggambarkan entity
  • Oval menggambarkan atribut
  • Jenis relation ditulis pada garis dengan menambahkan tulisan yang menggambarkan connectivity (M,N) dan cardinality (0,3)

Perbedaan antara ERD versi Chen dan ERD versi Martin terletak pada hubungan antar entity atau Relationship-nya. Hubungan yang terdapat pada ERD Chen:
  • One-to-one
  • One-to-many
  • Many-to-many

Gambar Simbol-simbol ERD Chen

Contoh 1 :


Keterangan : Gambar di atas menunjukkan bahwa satu record pada entitas A hanya berhubungan terhadap satu record pada entitas B.

Contoh 2 :


Keterangan : Gambar diatas menunjukkan bahwa satu record pada entitas A berhubungan terhadap lebih dari satu record pada entitas B

Contoh 3 :


Keterangan : Gambar diatas menunjukkan bahwa lebih dari satu record pada entitas A berhubungan terhadap lebih dari satu record pada entitas B

b. ERD Versi Marthin

Pada ERD Martin :
  • Relationship digambarkan dengan garis, dengan menambahkan connectivity-nya (0,1,*)
  • Hubungan antar entity digambarkan dengan   ,    , dan |  <   0
  • Simbol :
     Entitas
    -Attribut 



Gambar Simbol-simbol ERD Martin


Contoh 1 :


Keterangan : Satu record pada entitas A hanya berhubungan pada satu record pada entitas B


Contoh 2 :


Keterangan : Satu record pada entitas A berhubungan terhadap satu atau lebih dari satu record pada entitas B atau dapat Tidak Berhubungan


Contoh 3 :


Keterangan : Satu record pada entitas A pasti berhubungan terhadap satu atau lebih dari satu record pada entitas B


Contoh 4 :


Keterangan : Satu record pada entitas A berhubungan terhadap satu record pada entitas B atau Tidak Berhubungan


Terima kasih telah mengunjungi artikel ini, semoga dapat bermanfaat dan semogga membantu kalian dalam menyelesaikan tugas seperti ini.
Dan tetap nantikan artikel menarik dari recudo yah. ^_^