Saturday, June 20, 2020

[Praktikum Sistem Basis Data (Database)] Modul I Perancangan Diagram dan Normalisasi


MODUL  I
PERANCANGAN DIAGRAM DAN NORMALISASI

1.1    Tujuan
1.  Mahasiswa memahami permasalahan dan dapat menentukan entitas - entitas dari permasalahan tersebut.
2.      Mahasiswa dapat menentukan atribut atribut dari suatu entitas.
3.      Mahasiswa dapat menentukan relasi antara masing-masing entitas.
4.  Mahasiswa memahami dan dapat merancang suatu  permasalahan yang diberikan berdasarkan teori yang telah dipelajari.
5.     Mahasiswa dapat melakukan proses normalisasi.

1.2     Kompetensi
        Mampu memecahkan permasalahan dengan menggunakan ERD dan Normalisasi.

1.3     Substansi Kajian
1.        Memecahkan masalah dengan menentukan entitas yang terlibat
2.        Membuat ERD beserta atributnya
3.        Membuat Normalisasi

1.4     Dasar Teori
1.4.1.      Elemen - elemen diagram ER
1.      Entitas (Entity)
Entitas adalah suatu yang dapat di identifikasi dalam lingkungan kerja user, sesuatu yang ingin user telusuri. Entitas yang terdiri dari satu jenis tertentu disebut kelas entitan (entity classes).[2]
Entitas merupakan objek dalam dunia nyata yang bisa dibedakan dari objek lain. Entitas menunjukkan obyek-obyek dasar yang terkait di dalam system. Obyek dasar dapat berupa orang, benda atau hal yang keterangannya perlu disimpan di dalam basis data. Untuk menggambarkan entitas dilakukan dengan mengikuti aturan sebagai berikut[3] :
a.    Entitas dinyatakan dengan simbol persegi panjang.
b.    Nama entitas dituliskan di dalam simbol persegi panjang.
c.    Nama entitas berupa kata benda dan tunggal.
d.   Nama entitas sedapat mungkin menggunakan nama yang mudah dipahami dan dapat menyatakan maknanya dengan jelas.     
     
2.      Atribut (Atribute)
Atribut adalah gambaran  karakteristik dari suatu entitas.[2] Secara umum atribut adalah karakteristik dari entitas atau relasi yang menyediakan penjelasan detail tentang entitas atau relasi tersebut. Atribut sering pula disebut sebagai properti (property), merupakan keterangan-keterangan yang terkait pada sebuah entitas yang perlu disimpan sebagai basis data. Atribut berfungsi sebagai entitas penjelas.
Untuk menggambarkan atribut dilakukan dengan mengikuti aturan sebagai berikut:
a.    Atribut dinyatakan dengan simbol ellips.
b.    Nama atribut dituliskan di dalam simbol ellips.
c.    Nama atribut berupa kata benda dan tunggal.
d.   Nama atribut sedapat mungkin menggunakan nama yang mudah dipahami dan dapat menyatakan maknanya dengan jelas.
e.    Atribut dihubungkan dengan entitas yang bersesuaian dengan menggunakan sebuah garis (seyogyanya menggunakan garis lurus, namun dalam kondisi yang tidak memungkinkan boleh tidak menggunakan garis lurus).

Terdapat beberapa atribut yang digunakan untuk menggambarkan model ER Diagram, yaitu : [1]
-     Atribut Key
Atribut yang dipilih untuk identifikasi secara unik dalam suatu relasi.[1]  
Contohnya nik, nim.
-     Atribut Simple
Atribut yang terdiri atas satu komponen tunggal. Contohnya nama, harga.
-     Atribut Multivalue
Atribut yang memiliki sekelompok nilai yang banyak. Contohnya gelar, hobi.
-     Atribut Composite
Atribut yang terdiri atas beberapa komponen  dimana masing-masing komponen memiliki keberadaan yang idependen. Contohnya alamat, waktu.
-     Atribut Derivatif
Atribut yang dihasilkan dari beberapa atribut lain. Contoh: umur dari tanggal lahir.
 
3.      Relasi (Relationship)
Relasi antar entitas mendefinisikan hubungan antar dua buah entitas. Nama relasi didefinisikan oleh himpunan pasangan atribut dan nama domain.[1] Relasi adalah kejadian atau transaksi yang terjadi di antara dua buah entitas yang terjadi di antara dua buah entitas yang perlu disimpan di dalam basis data. Aturan penggambaran relasi antar entitas adalah sebagai berikut:
a.    Relasi dinyatakan dengan simbol belah ketupat.
b.    Nama relasi dituliskan di dalam simbol belah ketupat.
c.    Relasi menghubungkan dua entitas.
d.   Nama relasi berupa kata kerja aktif dan tunggal.
e.    Nama relasi sedapat mungkin menggunakan nama yang mudah dipahami dan dapat menyatakan maknanya dengan jelas.
Kerelasian antar entitas dapat dikelompokkan dalam 3 jenis, yaitu[3]:
-     One-to-One (1-1)
Mempunyai  pengertian  "Setiap  baris  data  pada  tabel  pertama  dihubungkan  hanya  ke satu baris data pada tabel ke dua". Contohnya relasi antara tabel mahasiswa dan tabel orang tua. Satu baris mahasiswa hanya berhubungan dengan satu baris orang tua begitu juga sebaliknya.
-     One-to-Many (1-N)
Mempunyai pengertian "Setiap baris data dari tabel pertama dapat dihubungkan ke satu baris atau lebih data pada tabel ke dua". Contohnya relasi perwalian antara tabel dosen dan tabel mahasiswa. Satu baris dosen atau satu dosen bisa berhubungan dengan satu baris atau lebih mahasiswa. Relasi jenis ini terjadi jika kejadian atau transaksi di antara dua entitas yang berhubungan hanya memungkinkan terjadi satu kali dalam entitas pertama dan dapat terjadi lebih dari satu kali kejadian atau transaksi pada entitas kedua.
-     Many-to-Many (N-M)
Mempunyai pengertian "Satu baris atau lebih data pada tabel pertama bisa dihubungkan ke satu atau lebih baris data pada tabel ke dua". Artinya ada banyak baris di tabel satu dan tabel dua yang saling berhubungan satu sama lain. Contohnya relasi antar tabel mahasiswa  dan  tabel  mata  kuliah.  Satu  baris  mahasiswa  bisa  berhubungan  dengan banyak baris mata kuliah begitu juga sebaliknya.
1.4.2.      Proses perancangan diagram ER
Pada tahap yang pertama langkah-langkah teknis yang dapat dilakukan untuk menghasilkan Diagram ER awal dalam mewujudkan perancangan basis data, maka urutan penggambarannya adalah sebagai berikut :
a.    Mengidentifikasi dan menetapkan seluruh himpunan entitas yang akan terlibat.
b.   Menentukan atribut-atribut key dari masing-masing himpunan entitas.
c.    Mengidentifikasi dan menetapkan seluruh himpunan relasi di antara himpunan entitas-himpunan entitas yang ada beserta foreign key-nya.
d.   Menentukan derajat atau kardinalitas relasi untuk setiap himpunan relasi.
e.    Melengkapi himpunan entitas dan himpunan relasi dengan atribut-atribut deskriptif (non key).

1.4.3.      Normalisasi
Normalisasi merupakan teknik analisis data yang mengorganisasikan atribut-atribut data dengan cara mengelompokkan sehingga terbentuk entitas yang non-redundant, stabil, dan fleksibel. Pada dasarnya normalisasi dilakukan untuk memperbaiki desain tabel yang kurang baik sehingga penyimpanan data menjadi lebih efisien dan bebas anomali data.[1]
Level normalisasi atau sering disebut sebagai bentuk normal suatu relasi dijelaskan berdasarkan kriteria tertentu pada bentuk normal. Bentuk normal yang dikenal hingga saat ini meliputi bentuk 1NF, 2NF, 3NF, BCNF, 4NF, 5NF, DKNF, RUNF. Level normalisasi yang sering digunakan pada perancangan basis data, yaitu[1] :
a.    Relasi bentuk normal pertama (1NF)
Merupakan sebuah relasi dimana setiap baris dan kolom berisikan hanya satu nilai.
Proses normalisasi 1NF yaitu :
-     Tentukan satu atau kumpulan atribut sebagai kunci untuk tabel yang belum normal.
-     Identifikasi grup yang berulang dalam tabel yang tidak normal.
-     Hapus grup yang berulang tersebut.
b.    Bentuk normal kedua (2NF)
Merupakan sebuah relasi yang sudah dalam bentuk 1NF dan setiap atribut non primary key bersifat berhubungan penuh dengan primary key.
Proses normalisasi 2NF yaitu :
-     Identifikasi primary key untuk relasi 1NF
-     Identifikasi functional dependencies dalam relasi.
-     Jika terdapat partial dependency terhadap primary key maka hapus dengan menempatkan dalam relasi yang baru.
c.    Bentuk normal ketiga (3NF)
Merupakan sebuah relasi dalam 1NF dan 2NF dan dimana tidak terdapat atribut non primary key yang bersifat trasnsitif pada primary key.
Proses normalisasi 3NF yaitu :
-     Identifikasi primary key ke dalam 2NF.
-     Identifikasi FD dalam relasi.
-     Jika terdapat transitif terhadap primary key maka hapus dengan menempatkan dalam relasi yang baru.
1.4.4.      Keuntungan normalisasi dari permasalahan yang ada di dunia nyata
Dari permasalahan yang ada di dunia nyata terdapat keuntungan normalisasi di antaranya sebagai berikut :
a.    Meminimalkan ukuran penyimpanan yang diperlukan untuk penyimpanan data.
b.    Meminimalkan resiko kandungan inkonsistensi data pada basis data.
c.    Meminimalkan kemungkinan anomali pembaruan.
d.   Memaksimalkan stabilitas struktur data.
e.    Kinerja penelusuran yang lebih cepat.
f.     Meningkatkan integritas data.

1.5    Kasus Kelompok
Ketika mahasiswa  ingin mengikuti kegiatan kkn, mahasiswa harus mendaftarkan id_kkn, nama, nim, fakultas dan sks ke Lembaga Pengabdian Masyarakat. Pada LPM terdapat hubungan dengan dosen pembimbing. Dimana dosen memiliki id_dosen pembimbing, nama, dan fakultas dosen. Mahasiswa juga harus mencari Desa tempat mereka melakukan kkn dimana terdapat id_desa, nama_desa, alamat. 1 desa hanya bisa dimasuki oleh 1 kelompok kkn. Namun mahasiswa tidak memiliki hubungan langsung dengan kelurahan melainkan dengan desa. Kelurahan yang akan memberikan data-data tentang desa. Menjelang berakhirnya kkn, LPM akan memantau ke desa untuk mengambil nilai mahasiswa di desa.
1.6    Kasus Modul
1.    Melakukan perancangan ERD serta menentukan kamus data yang dimiliki diagram tersebut. Buat ERD sebelum dinormalisasi, jadi ERD yang dibuat masih belum baik.
2.    Melakukan normalisasi 1NF, 2NF, 3NF terhadap diagram yang telah dirancang sebelumnya.Buat ERD setelah dinormalisasi, jadi ERD nomor 1 dilakukan normalisasi dari 1NF sampai 3NF dan bahkan penjelasan atau alasan tiap dilakukannya normalisasi.
  
1.7     Analisa Kasus
1.7.1.      ER Diagram Sebelum Normalisasi



Gambar 1.8. Diagram ER sebelum normalisasi.
1.7.2.      Kamus Data Sebelum Normalisasi
Kelompok_kkn   = {id_kkn, nama_kelompok, fakultas}
LPM                    = {kd_dosen, nama_dosen, fakultas}
Kelurahan           = {id_kelurahan, nama}
Desa                    ={id_desa, nama_desa, alamat}
Nilai                    = {id_kkn, id_desa, id_dosen, nilai}
1.7.3.      Tabel Sebelum Normalisasi

Tabel 1.1. Tabel kelompok_kkn.
Id_kkn
Nama_kelompok
fakultas




Tabel kelompok_kkn merupakan daftar kelompok yang akan mengikuti  kkn. Di dalam tabel kelompok kkn terdapat atribut kunci yaitu id_kkn yang menjadi pembeda yang unik dari atribut lainnya pada masing-masing entitas. Kemudian terdapat atribut nama_kelompok dan fakultas yang merupakan atribut penjelas dari entitas kelompok_kkn. Atribut nama_kelompok dan fakultas bergantung kepada atribut id_kkn.
Tabel 1.2. Tabel LPM.
Id_dosen
Nama_dosen
fakultas




Tabel 1.2. merupakan tabel LPM yang memiliki hubungan dengan dosen pembimbing setiap kelompok kkn. Dosen pembimbing memiliki atribut kunci yaitu id_dosen dan juga memiliki beberapa atribut lain yaitu atribut nama_dosen dan fakultas sebagai atribut penjelas. Dimana atribut penjelas seperti nama_dosen dan fakultas bergantung sepenuhnya kepada id_dosen.
Tabel 1.3. Tabel kelurahan.
Id_kelurahan
Nama_kelurahan



Tabel kelurahan ini menjadi informasi tambahan untuk sebuah desa. Di dalam sebuah kelurahan terdapat banyak desa dengan id yang berbeda untuk setiap desanya. Begitu juga dengan kelurahan yang memiliki atribut kunci berupa id_kelurahan dan atribut penjelas berupa nama_kelurahan yang memberikan penjelasan tentang suatu kelurahan.

Tabel 1.4. Tabel desa.
Id_desa
Nama_desa
alamat




Tabel desa ini merupakan tempat yang akan dikunjungi oleh kelompok_kkn. Tabel Desa memiliki atribut kunci yaitu id_desa sebagai pembeda karena pada suatu kelurahan terdapat banyak desa sehingga setiap desa harus memiliki id yang berbeda. Disamping itu juga hanya satu desa yang boleh dimasuki oleh kelompok_kkn sehingga perlu adanya id_desa agar memudahkan dalam mencari desanya. Terdapat juga beberapa atribut penjelas yaitu nama_desa dan alamat_desa.

Tabel 1.5. Tabel nilai.
Id_kkn
Id_desa
Id_dosen
nilai





Tabel nilai dibuat karna kardinalitas atau derajat relasi banyak ke banyak dari relasi yang menghubungkan antara entitas LPM dan entitas Kelurahan. Dimana tabel ini memiliki foreign key id_kkn, id_desa dan id_dosen yang merupakan atibut kunci yang dititipkan dari entitas kelompok_kkn, desa dan LPM. Atribut nilai bergantung kepada ketiga foreign key tersebut.
1.7.4.      Tabel Normalisasi
1.    Tabel normalisasi 1 NF

                  Gambar 1.9. Tabel normalisasi 1NF.
Gambar 1.9. merupakan gabungan dari beberapa tabel yang sudah di normalisasi menjadi bentuk 1NF. Syarat sebuah tabel dapat dikatakan memenuhi bentuk 1NF apabila semua atributnya bernilai tunggal dan tidak terdapat pengulangan atribut. Pada tabel ini sudah jelas memenuhi 1NF karna semua atributnya bernilai tunggal dan juga tidak terdapat pengulangan atribut di dalamnya. 
2.    Tabel normalisasi 2 NF

                Tabel 1.6. Tabel kelompok_kkn.
Id_kkn
Nama_kelompok
fakultas




Pada tabel 1.6 terdapat atribut kunci yaitu id_kkn dan terdapat atribut nama_kelompok dan fakultas yang merupakan atribut penjelas dari entitas kelompok_kkn. Tabel kelompok_kkn ini berisi daftar kelompok-kelompok kkn yang akan melakukan kkn disuatu desa. Pada tabel kelompok_kkn ini sudah memenuhi bentuk tabel normal baik dari 1NF, 2NF dan 3NF. Tabel tersebut memenuhi 1NF karna pada tabel tersebut semua atributnya tunggal dan tidak terdapat pengulangan atribut. Memenuhi 2NF karna tidak terdapat data yang parsial, semua bergantung sepenuhnya kepada atribut kunci dan juga memenuhi 3NF karna tidak terdapat data yang transitif, semua bergantung kepada atribut kunci dan tidak kepada atribut yang bukan kunci.

                               Gambar 1.10. Tabel KKN.
Gambar 1.10. merupakan tabel dari kegiatan kkn. Dimana terdapat id_kkn yang mempengaruhi id_dosen, id_kelurahan serta id_desa. Pada tabel ini juga dilengkapi dengan atribut penjelas dari id_dosen yaitu nama_dosen, atribut penjelas dari id_kelurahan berupa nama_kelurahan, dan atribut penjelas dari id_desa yaitu nama_desa dan alamat.

3.    Tabel normalisasi 3 NF
             Tabel 1.7. Tabel kelompok_kkn.
Id_kkn
Nama_kelompok
fakultas



Di dalam tabel kelompok kkn terdapat atribut kunci yaitu id_kkn dan terdapat atribut nama_kelompok dan fakultas yang merupakan atribut penjelas dari entitas kelompok_kkn. Tabel ini sudah memenuhi 1NF dimana semua atributnya bernilai tunggal, memenuhi 2NF dimana tidak terdapat data yang parsial dan juga memenuhi 3NF karna semua atribut bukan kunci bergantung sepenuhnya kepada atribut kunci bukan ke sesama atribut yang bukan merupakan atribut kunci.
                  Tabel 1.8. Tabel LPM.
Id_dosen
Nama_dosen
fakultas




Tabel LPM memiliki hubungan dengan dosen pembimbing sehingga didalamnya terdapat atribut kunci yaitu id_dosen. Dosen juga memiliki beberapa atribut deskriptif yaitu atribut nama_dosen dan fakultas sebagai atribut penjelas. Tabel ini telah memenuhi syarat suatu tabel dikatakan normal yaitu dengan memenuhi bentuk normalisasi 1NF, 2NF dan 3NF.

                    Tabel 1.9. Tabel Kelurahan.
Id_kelurahan
Nama_kelurahan



Tabel 1.9. digunakan untuk memberikan informasi tentang kelurahan dari suatu desa. Entitas kelurahan memiliki atribut kunci yaitu id_kelurahan dan atribut penjelasnya berupa nama_kelurahan. Pada tabel ini juga sudah memenuhi bentuk normalisasi 1NF dengan semua atributnya tunggal, memenuhi 2NF karna atribut bukan kunci bergantung kepada atribut kunci dan juga memenuhi 3NF dimana tidak ada data yang transitif didalamnya, semua atribut bergantung sepenuhnya kepada atribut kunci.
              Tabel 1.10. Tabel Desa.
Id_desa
Nama_desa
alamat
Id_kelurahan





Tabel Desa ini merupakan tempat yang akan dikunjungi oleh kelompok_kkn. Tabel Desa memiliki atribut kunci yaitu id_desa sebagai pembeda karena pada suatu kelurahan terdapat banyak desa sehingga setiap desa memiliki id yang berbeda. Pada tabel ini terdapat foreign key yaitu id_kelurahan dan juga beberapa atribut penjelas yaitu nama_desa dan alamat. Tabel ini sudah memenuhi bentuk 3NF. 

                 Tabel 1.11. Tabel nilai.
Id_kkn
Id_desa
Id_dosen
nilai





Tabel ini dibuat karna kardinalitas atau derajat relasi banyak ke banyak dari relasi yang menghubungkan antara entitas LPM dan entitas kelurahan. Dimana tabel ini memiliki atribut id_kkn, id_desa dan id_dosen yang bersifat foreign key, dan terdapat atribut nilai yang bergantung pada ketiga atribut foreign key tersebut. Tabel ini sudah memenuhi 3NF dimana tidak adanya atribut bukan kunci yang bergantung kepada atribut bukan kunci lainnya.

1.8    Kesimpulan
1. Entitas merupakan obyek dalam dunia nyata yang bisa dibedakan dari objek lain. Entitas menunjukkan obyek-obyek dasar yang terkait di dalam system. Obyek dasar dapat berupa orang, benda atau hal lain yang keterangannya perlu disimpan di dalam basis data.
2.    Secara umum atribut adalah karakteristik dari entitas atau relasi yang menyediakan penjelasan detail tentang entitas atau relasi tersebut. Atribut terdiri dari beberapa jenis yaitu atribut key, atribut simple, atribut multivalue, atribut composite dan atribut derivatif.
3.    Relasi antar entitas mendefinisikan hubungan antar dua buah entitas. Relasi adalah kejadian atau transaksi yang terjadi di antara dua buah entitas yang perlu disimpan di dalam basis data. Kerelasian antar entitas dapat dikelompokkan dalam 3 jenis, yaitu satu ke satu (one to one), banyak ke satu (many to one) dan banyak ke banyak (many to many).
4.    Perancangan ERD diawali dengan menentukan entitas-entitas yang dibutuhkan. Setelah itu menentukan atribut key dari masing-masing entitas tersebut. Selanjutnya menghubungkan entitas dengan relasi yang dilengkapi dengan kardinalitas atau derajat relasinya. Terakhir menentukan semua atribut penjelas yang dibutuhkan pada setiap himpunan entitas.
5.    Normalisasi merupakan sebuah teknik mengelompokkan atribut dari suatu relasi sehingga membentuk struktur relasi yang baik tanpa adanya redundansi data. Keuntungan dari normalisasi ini dapat meminimalisasi redundansi atau pengulangan data, meminimalisasi ukuran penyimpanan data dan mencegah terjadinya anomali pembaruan.
  
DAFTAR PUSTAKA
[1]    Indrajani. 2014. Database Systems. Jakarta : Gramedia.
[2] Kroenke, Dapid M. Database Processing Dasar-dasar, Desain, dan Implementasi. Jakarta : Erlangga.
[3]  Yunus, Muh. 2016. Modul Praktikum Sistem Basis Data. Mataram : STMIK Bumigora.










Blogueni
Blogueni

This is a short biography of the post author. Maecenas nec odio et ante tincidunt tempus donec vitae sapien ut libero venenatis faucibus nullam quis ante maecenas nec odio et ante tincidunt tempus donec.