Istifadah KBM 20 Pesantren Siber Bandung

1/04/2020

Selasa,  17 September 2019

                Kegiatan Belajar Mengajar (KBM) di Pesantren Siber Bandung seperti biasanya dimulai sekitar pukul sembilan pagi. Pada pertemuan hari ini KBM diisi oleh Kang Basyir melanjutkan pembahasan mengenai basis data -artinya materi hari ini berhubungan erat dengan MySQL dan semisalnya-. Pada pertemuan sebelumnya kami telah mempelajari basis data mengenai materi DML (Data Manipulation Language) yang terdiri dari INSERT, UPDATE, DELETE, SELECT. Adapun pada pertemuan kali ini Kang Basyir melanjutkan pembahasan materi terkait relasi pada database.
                Pertama-tama Kang Basyir membahas mengenai Primary Key dan Foreign Key. Primary key merupakan kunci unik yang terdapat pada hampir setiap tabel, sedangkan foreign key adalah kunci unik yang dititipkan suatu table ke table lainnya dan menjadikannya sebagai penghubung antar table. Istilah primary key dan foreign key ini tergantung dari sudut mana kita melihatnya karena terkadang suatu kode unik adalah primary key pada tabel A tetapi kode tersebut juga menjadi foreign key pada tabel B. Ketika kita ingin mendesign suatu database maka primar key harus digaris bawahi -salah satu fungsinya untuk membedakannya dengan foreign key-.Lalu Kang Basyir menjelaskan jenis relasi pada database yang terbagi menjadi tiga yaitu : One to One, One to Many, dan Many to Many. Pada umumnya, relasi ‘One to One’ menggunakan primary key ke primary key. Sedangkan relasi ‘One to Many’ menggunakan primary key ke foreign key. Adapun ‘Many to Many’ relasi umumnya menggunakan foreign key ke foreign key.
                Selanjutnya Kang Basyir memberi kami tugas untuk mempelajari terlebih dahulu materi mengenai normalisasi pada relasi basis data hingga waktu dzuhur tiba. Berikut adalah hasil apa yang saya pelajari :
  • §  Normalisasi adalah proses pembentukan relasi basis data kedalam bentuk normal (maksud dari bentuk normal adalah aturan-aturan yang harus dipenuhi oleh relasi-relasi pada basis data) sehingga nantinya proses pengerjaan yang berkaitan basis data bisa berjalan dengan baik & efektif.
  • §  Pada umumnya ketika kita membuat suatu tabel, tabel tersebut akan berbentuk tabel universal dimana semua informasi dimasukkan kedalam satu tabel. Tabel seperti ini sangat tidak efektif dalam basis data sehingga perlu dipecahkan/ didekomposisi ke bentuk normal (NF/Normal Form). Proses normalisasi ini dimulai dari tahap 1NF hingga maksimal tahap 5NF, tapi biasanya sampai tahap 3NF karena sudah cukup memadai.
  • §  Sifat & Aturan pada bentuk normal tahap satu (1NF) adalah tabel tidak memiliki atribut bernilai banyak (multivalued attribute) -misalnya hobby karena biasanya seseorang akan mencatumkan lebih dari satu hobby pada data dirinya-, tabel tidak memiliki atribut composite dimana dalam satu atribut memiliki beberapa informasi yang digabung menjadi satu -misalnya : jadwal yang berisi hari & jam-, tabel bernilai atomic / tidak dapat dibagi-bagi lagi. Pada perubahan ke bentuk ini yang harus diperhatikan adalah apakah ada informasi/atribut yang masih bergabung/bernilai banyak.
  • §  Sifat & Aturan pada bentuk normal tahap dua (2NF) adalah aturan 1NF sudah terpenuhi, tidak ada atribut yang ketergantungannya hanya tergantung pada sebagian dari primary key (functional dependency) -misalnya : ketergantungan antara mata kuliah dengan kode mk, mahasiswa dengan name-, jika ada atribut yang tidak memiliki ketergantungan pada primary key maka dapat dipindah/dihilangkan. Pada perubahan ke bentuk ini yang harus diperhatikan adalah keterkaitan/ketergantungan antar data.
  • §  Sifat & Aturan pada bentuk normal tahap tiga (3NF) adalah aturan 2NF sudah terpenuhi, tidak ada atribut non primary key yang memiliki ketergantungan pada non primary key lainnya –misalnya : ketergantungan kode pos dengan jalan, kota, provinsi-

Pada KBM setelah istirahat siang, Kang Basyir menjelaskan tugas yang sudah diberikan kepada kita untuk dipelajari yaitu mengenai normalisasi pada database -penjelasan versi beliau sedikit berbeda dengan apa yang saya pelajari sebelumnya-, beliau juga memberikan contohnya. Singkatnya, pada perubahan dari bentuk tidak normal ke bentuk 1NF yang perlu kita lakukan adalah menghilangkan perulangan/penggabungan group sehingga tidak ada data yang tergabung. Berikut ini adalah contoh bentuk awal sebuah tabel :

Tabel Makanan
Kd Makanan
Nama Makanan
Kd Jenis
Jenis Makanan
Kota Pembuatan
Stok
Bahan Makanan
Stok bahan
M-01
Nasi
J01
Berat
Bandung
30
Beras
30
M-02
Bakso
J01
Berat
Bandung
50
Daging Sapi
15






Kaldu Sapi
21






Tepung
30
M03
Tempe
J01
Berat
Cimahi
10
Kedelai
10






Jamur
20
M04
Jus Sayur
J02
Minuman
Surabaya
15
Brokoli
5






Wortel
2






Kangkung
15

Lalu berikut ini contoh perubahan ke bentuk 1NF :

1NF
Kd Makanan
Nama Makanan
Kd Jenis
Jenis Makanan
Kota Pembuatan
Stok
Bahan Makanan
Stok bahan
M-01
Nasi
J01
Berat
Bandung
30
Beras
30
M-02
Bakso
J01
Berat
Bandung
50
Daging Sapi
15
M-02
Bakso
J01
Berat
Bandung
50
Kaldu Sapi
21
M-02
Bakso
J01
Berat
Bandung
50
Tepung
30
M03
Tempe
J01
Berat
Cimahi
10
Kedelai
10
M03
Tempe
J01
Berat
Cimahi
10
Jamur
20
M04
Jus Sayur
J02
Minuman
Surabaya
15
Brokoli
5
M04
Jus Sayur
J02
Minuman
Surabaya
15
Wortel
2
M04
Jus Sayur
J02
Minuman
Surabaya
15
Kangkung
15

 Pada perubahan dari 1NF ke bentuk 2NF adalah dengan memisahkan antara data yang saling bergantungan. Berikut adalah contohnya dimana tabel dipecah menjadi beberapa tabel :



2NF
Kd Makanan
Nama Makanan
Kd Jenis
Jenis Makanan
Kota Pembuatan
Stok
Bahan Makanan
Stok bahan
M-01
Nasi
J01
Berat
Bandung
30
Beras
30
M-02
Bakso
J01
Berat
Bandung
50
Daging Sapi
15
M-02
Bakso
J01
Berat
Bandung
50
Kaldu Sapi
21
M-02
Bakso
J01
Berat
Bandung
50
Tepung
30
M03
Tempe
J01
Berat
Cimahi
10
Kedelai
10
M03
Tempe
J01
Berat
Cimahi
10
Jamur
20
M04
Jus Sayur
J02
Minuman
Surabaya
15
Brokoli
5
M04
Jus Sayur
J02
Minuman
Surabaya
15
Wortel
2
M04
Jus Sayur
J02
Minuman
Surabaya
15
Kangkung
15




Tbl Jenis Makanan
Kota Pembuatan
Bahan Makanan
Kd Jenis
Jenis Makanan
Kota Pembuatan
Bahan Makanan
Stok bahan
J01
Berat
Bandung
Beras
30
J01
Berat
Bandung
Daging Sapi
15
J01
Berat
Bandung
Kaldu Sapi
21
J01
Berat
Bandung
Tepung
30
J01
Berat
Cimahi
Kedelai
10
J01
Berat
Cimahi
Jamur
20
J02
Minuman
Surabaya
Brokoli
5
J02
Minuman
Surabaya
Wortel
2
J02
Minuman
Surabaya
Kangkung
15

 Untuk perubahan dari 2NF ke bentuk 3NF adalah dengan menghilangkan anomali-anomali –dan anomali yang paling jelas adalah redudansi (perulangan)-. Pada contoh sebelumnya terdapat redudansi pada tabel jenis makanan & kota pembuatan, redudansi tersebut dihilangkan menjadi seperti berikut :
Tbl Jenis Makanan
Kota Pembuatan
Kd Jenis
Jenis Makanan
Kota Pembuatan
J01
Berat
Bandung
J02
Minuman
Cimahi
Surabaya

 Adapun perubahan dari 3NF ke bentuk 4NF adalah dengan menambahkan id untuk tabel yang tidak memilikinya, lalu membuat relasi dengan foreign key & tabel relasi -jika dibutuhkan-. Berikut contohnya dimana ada tambahan tabel relasi sehingga jumlah tabel yang sebelumnya empat menjadi lima tabel :

4NF

Tabel Makanan

Tbl Jenis Makanan
Kota Pembuatan

Kd Makanan
Nama Makanan

Kd Jenis
kd Kota
Stok
Kd Jenis
Jenis Makanan
Id Kota
Kota Pembuatan
M-01
Nasi

J01
KT01
30

J01
Berat
KT01
Bandung
M-02
Bakso

J01
KT01
50

J02
Minuman
KT02
Cimahi
M03
Tempe

J01
KT02
10

KT03
Surabaya
M04
Jus Sayur

J02
KT03
15



Tbl Relasi
Tbl Makanan Bahan
Bahan Makanan
Kd Makanan
Kd Bahan
Id Bahan
Bahan Makanan
Stok bahan
M-01
BHN01
BHN01
Beras
30
M-02
BHN02
BHN02
Daging Sapi
15
M-02
BHN03
BHN03
Kaldu Sapi
21
M-02
BHN04
BHN04
Tepung
30
M03
BHN05
BHN05
Kedelai
10
M03
BHN06
BHN06
Jamur
20
M04
BHN07
BHN07
Brokoli
5
M04
BHN08
BHN08
Wortel
2
M04
BHN09
BHN09
Kangkung
15

                Kang Basyir lalu menyuruh kami untuk mengimplementasikan tabel-tabel tersebut kedalam MySQL. Beliau juga sedikit mengenalkan tentang alter table, add constraint, foreign key, references, cascade melalui aplikasi DBeaver. Itulah beberapa hal yang saya pelajari hari ini, semoga Allah senantiasa menjadikan kita hambanya yang beriman kapanpun dan dimanapun kita berada...Aamiin

Share this

Related Posts

Previous
Next Post »