Anda di halaman 1dari 17

MODUL 11

NORMALISASI DATA

Tujuan :
Mampu membangun desain logika basis data relasional untuk
menghasilkan struktur tabel yang normal.

PrePraktikum
1. Apakah yang anda ketahui tentang normalisasi?
2. Mengapa suatu tabel perlu dinormalisasikan?
3. Aturan-aturan normalisasi dinyatakan dalam istilah bentuk normal.
4. Apa yang disebut dengan bentuk normal?
5. Sebutkan dan jelaskan macam-macam dari bentuk normal agar dapat
dimanfaatkan untuk memperoleh tabel dan basis data yang lebih baik?

1. Dasar Teori
Normalisasi
Normalisasi merupakan cara pendekatan dalam membangun desain
logika basis data relasional yang tidak secara langsung berkaitan dengan
model data, tetapi dengan menerapkan sejumlah aturan dan kriteria standar
untuk meghasilkan struktur tabel yang normal. Pada dasarnya desain logika
basis data relasional dapat menggunakan prinsip normalisasi maupun
transformasi dari model ER ke bentuk fisik.
Pada pembahasan tentang normalisasi data, digunakan istilah baru
yang disebut dengan functinal dependencies atau ketergantungan fungsional.

Ketergantungan Fungsional (Functional Dependencies)


Functional Dependency menggambarkan hubungan attributes dalam
sebuah relasi. Suatu atribut dikatakan functionally dependant pada yang lain
jika kita menggunakan harga atribut tersebut untuk menentukan harga atribut
yang lain. Simbol yang digunakan adalah  untuk mewakili functional
dependency ( dibaca secara fungsional menentukan).

6
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. Diberikan 2 baris
r1 dan r2 dalam tabel T dimana AB
Jika r1(A)=r2(A), maka r1(B) = r2(B)
Dimisalkan relasi nilai_mhs memiliki empat buah atribut/field yaitu
nama_kul, nim, nama_mhs dan nilai. Maka ketergantungan fungsional
pada relasi tersebut adalah:
a. nim  nama_mhs
yang artinya bahwa atribut nama_mhs hanya tergantung pada atribut nim.
Hal ini dibuktikan dari fakta: untuk setiap nilai nim yang sama, maka pasti
nilai nama_mhs nya juga sama.
b. nama_kul, nim  nilai
yang berarti bahwa atribut nilai tergantung pada atribut nama_kull dan
nim secara bersama-sama. Untuk ketergantungan fungsional seperti ini
sesuai dengan pengertian bahwa setiap nilai diperuntukkan pada
mahasiswa tertentu untuk matakuliah tertentu yang diambil. Dalam arti
lain untuk nama_kul dan nim yang sama, maka nilai juga sama, karena
nama_kul dan nim merupakan key (bersifat unik).

Notasi: A non B atau A x B


Adalah kebalikan dari notasi sebelumnya, dengan hanya melihat fakta
yang ada, yaitu:
a. nama_kul non  nim
yang artinya atribut nim tidak tergantung pada atribut nama_kul.
b. nim non nilai
yang artinya atribut nilai tidak hanya tergantung pada atribut nim,
karena tergantung pula pada atribut nama_kul yaitu nama kuliah yang
diambil oleh nim.

Bentuk-Bentuk Normalisasi
Bentuk-bentuk normal dapat dimanfaatkan untuk memperoleh tabel
dan basis data yang lebih baik.

Bentuk Normal Pertama (1NF)


Suatu tabel dikatakan dalam bentuk normal pertama hanya kalau
setiap kolom bernilai tunggal untuk setiap baris. Sehingga tidak diperboleh
adanya :
Atribut yang bernilai banyak (Multivalued attribut).
Attribut komposit atau kombinasi dari keduanya.

7
Berikut ini akan dicontohkan normalisasi dari tabel kuliah yang memiliki
atribut:
Kode_kul Nama_kul Sks Smstr Waktu Ruang Nama_d
C1234 Matematika 1 2 1 1 RKB-3 Devie
C1243 Riset Operasi 2 5 1 RKB-1 Rosa
C1342 ADSI 2 3 2 RKB-3 Anamis
Tabel kuliah tersebut tidak memenuhi normalisasi pertama, karena terdapat
atribut waktu yang tergolong ke dalam atribut bernilai banyak. Agar tabel
tersebut dapat memenuhi 1NF, maka solusinya adalah mendekomposisi tabel
kuliah menjadi:

1. Tabel Kuliah
Kode_kul Nama_kul Sks Smstr Nama_dosen
C1234 Matematika 1 2 1 Devie
C1243 Riset Operasi 2 5 Rosa
C1342 ADSI 2 3 Anamisa

2. Tabel Jadwal
Kode_kul Waktu Ruang
C1234 1 RKB-3
C1243 1 RKB-1
C1342 2 RKB-3

Bentuk Normal Kedua (2NF)


Suatu tabel disebut dalam bentuk normal kedua, jika :
1. Tabel berada dalam bentuk normal pertama
2. Semua kolom yang bukan primary key tergantung sepenuhnya terhadap
primary key
3. Disebut tergantung sepenuhnya terhadap primary key jika suatu kolom
selalu bernilai sama untuk nilai primary key yang sama.
Sebuah tabel dikatakan tidak memenuhi 2NF, jika ketrgantungan
hanya bersifat parsial (hanya tergantung pada sebagian dari primary key).
Bentuk normal kedua akan dicontohkan pada tabel nilai berikut ini:
Kode_kul Nim Nilai
C1234 7402030007 A
C1243 7402030008 B+
C1342 7402030009 B

Jika pada tabel nilai, misalnya kita tambahkan sebuah atribut yang bersifat
8
redudan yaitu nama_mhs, maka tabel nilai ini dianggap melanggar 2NF.
Primary key pada tabel nilai adalah [kode_kul, nim]. Penambahan atribut baru
(nama_mhs) akan menyebabkan adanya ketergantungan fungsional yang baru
yaitu nimnama_mhs. Karena atribut nama_mhs ini hanya memiliki
ketergantungan parsial pada primary key secara utuh (hanya tergantung pada
nim, padahal nim hanya bagian dari primary key). Bentuk normal kedua ini
dianggap belum memadai karena meninjau sifat ketergantungan atribut
terhadap primary key saja.

Bentuk Normal Ketiga (3NF)


Suatu tabel dikatakan dalam bentuk normal ketiga, jika :
1. Berada dalam bentuk normal kedua
2. Setiap kolom bukan primary key tidak memiliki ketergantung transitif
terhadap primary key
Suatu kolom Z memiliki ketergantungan transitif terhadap kolom X, jika :
1. Y memiliki ketergantungan fungsional terhadap X, dan
2. Z memiliki ketergantungan fungsional terhadap Y
Misalkan pada tabel Mahasiswa, atribut alamat_mhs dipecah ke dalam
alamat_jalan, alamat_kota dan kode_pos. Bentuk ini tidak memenuhi 3NF
karena terdapat ketergantungan fungsional baru yang muncul pada tabel
tersebut yaitu:
alamat_jalan nama_kota  kode_pos
Dalam hal ini (alamat_jalan, nama_kota) bukan superkey sementara kode_pos
juga bukan bagian dari primary key pada tabel mahasiswa. Jika tabel
mahasiswa didekomposisi menjadi tabel mahasiswa dan tabel alamat, maka
telah memenuhi 3NF. Hal ini dapat dibuktikan dengan memeriksa dua
ketergantungan fungsional pada tabel alamat tersebut, yaitu:
alamat_jalan nama_kota  kode_pos
kode_pos  nama_kota

Bentuk Normal Tahap Keempat dan Kelima


Penerapan aturan normalisasi sampai bentuk normal ketiga sudah
memadai untuk menghasilkan tabel berkualitas baik. Namun demikian,
terdapat pula bentuk normal keempat (4NF) dan kelima (5NF). Bentuk Normal
Keempat berkaitan dengan sifat ketergantungan banyak nilai (multivalued
dependency) pada suatu tabel merupakan pengembangan dari ketergantungan
fungsional. Sedangkan bentuk normal tahap kelima merupakan nama lain dari
Project Join Normal Form (PJNF).

Boyce Codd Normal Form (BCNF)

9
Bentuk normal ketiga 3NF dapat dikatakan BCNF karena sudah cukup
memadai untuk menghasilkan tabel-tabel yang berkualitas baik. 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-Code Normal Form (BCNF).
Jika kriteria ketiga (BCNF) tidak dapat terpenuhi, maka paling tidak tabel
tersebut tidak melanggar Bentuk Normal tahap ketiga (3rd Normal Form /
3NF).
Relasi R dengan ketergantungan fungsional F termasuk dalam bentuk
BCNF jika untuk semua X  A yang ada dalam F. Dengan kata lain, R berada
dalam BCNF jika ketergantungan fungsional non-trivial pada R memiliki key
constraint.

2. Kegiatan Praktikum
1. Terdapat suatu bentuk tabel informasi seperti berikut ini :
Tabel 9.1. Informasi Buku
ISBN Judul Halaman Topik
979-533- Basisdata 60 Data Definition Language Data
791-2 Manipulation Language
Data Control Language

978-532- Matematika 90 Probabilitas


792-3 Permutasi dan Kombinasi
977-534- PHP 90 Pemrograman
793-4 Internet
Bagaimana bentuk tabel-tabel yang menyimpan data pada
informasi tersebut dengan menggunakan normalisasi untuk
verifikasi tabel?

2. Terdapat suatu bentuk tabel informasi seperti beikut ini:


10
Tabel 9.2. Informasi mahasiswa
no_mhs nama matakuliah nip dosen Nilai
11879 Ali Basis data 32000011 Devie A
Fisika I 32000012 Rosa A
11897 Siti Basis data 32000011 Devie A
Fisika I 32000012 Rosa B
Pascal 16785 Anamisa A
11898 Edi Fisika I 32000011 Devie A
Bagaimana bentuk tabel-tabel yang menyimpan data pada informasi
tersebut dengan menggunakan normalisasi untuk verifikasi tabel?
1. Tugas tambahan (ditentukan oleh dosen)!
3. Tugas
Dari kasus ke-I dan ke-II pada kegiatan praktikum maka bagaimana solusi
pemecahan tabel yang didapatkan?
Kasus I: T=
Permasalahan :
Solusi pemecahan tabel :
I. Tabel
II. Tabel
III. Tabel
Kasus II: T=
Permasalahan :
Solusi pemecahan tabel :
IV. Tabel
V. Tabel
Tabel

11
MODUL III
STRUCTURED QUERY ANGUAGE (SQL)

Tujuan :
1. Memahami tentang sistem database
2. Memahami instalasi MySQL di lingkungan Windows
3. Memahami dasar-dasar MySQL.

Tugas Pendahuluan
1. Apa yang anda ketahui tentang mysql, jelaskan
2. Apa perbedaan instalasi mysql dilingkungan windows dengan
linux
3. sebutkan operator dan fungsi dalam mysql !

1. Dasar Teori

Basis data adalah sekumpalan informasi yang diatur agar mudah dicari.
Dalam arti umum basis data adalah sekumpulan data yang diproses dengan bantuan
komputer yang memungkinkan data dapat diakses dengan mudah dan tepat, yang
dapat digambarkan sebagai aktifitas dari satu atau lebih organisasi yang berelasi.
Pengertian MYSQL
Database MYSQL merupakan sistem manajemen basis data SQL yang
sangat terkenal dan bersifat Open Source. MySQL dibangun, didistribusikan dan
didukung oleh MYSQL AB. MYSQL AB merupakan perusahaan komersial yang
dibiayai oleh pengembang MYSQL
Tipe Data
Data yang terdapat dalam sebuah tabel berupa field-field yang berisi nilai
dari data tersebut. Nilai data dalam field memiliki tipe sendiri-sendiri. MYSQL
mengenal beberapa tipe data field yaitu :
 Tipe data numerik

1
 Tipe data numerik dibedakan dalam dua macam kelompok, yaitu integer dan
floating point. Integer digunakan untuk data bilangan bulat sedangkan floating
point digunakan untuk bilangan desimal.
 Tipe data string
String adalah rangkaian karakter. Tipe-tipe data yang termasuk dalam tipe data
string dapat dilihat pada tabel 8.1.2.b berikut:

Tabel 8.1.2.b Tipe Data String


Tipe Data Kisaran Nilai
CHAR 1-255 karakter
VARCHAR 1-255 karakter
TINYTEXT 1-255 karakter
TEXT 1-65535 karakter
MEDIUMTEXT 1-16777215 karakter
LONGTEXT 1-424967295 karakter

 Tipe data char() dan varchar()


Tipe data char() dan varchar() pada prinsipnya sama, perbedaannya hanya
terletak pada jumlah memori yang dibutuhkan untuk penyimpanannya.
Memori yang dibutuhkan untuk tipe data char() bersifat statis, besarnya
bergantung pada berapa jumlah karakter yang ditetapkan pada saat field
tersebut dideklarasikan. Pada tipe data varchar() besarnya memori
penyimpanan tergantung pada jumlah karakter ditambah 1 byte, dapat dilihat
pada tabel 8.1.2.c berikut ini:
Tabel 8.1.2.c Letak Perbedaan Jumlah Memori
Nilai Char(4) Memori Varchar Memori
Penyimpanan (4) Penyimpanan
’’ ’’ 4 bytes ’’ 1 byte
’ab’ ’ab’ 4 bytes ’ab’ 3 bytes
’abcd’ ’abcd’ 4 bytes ’abcd’ 5 bytes
’abcdefgh’ ’abcd’ 4 bytes ’abcd’ 5 bytes

 Tipe data tanggal


Untuk tanggal dan jam, tersedia tipe-tipe data field berupa DATETIME,
DATE, TIMESTAMP, TIME dan YEAR. Masing-masing tipe mempunyai
kisaran nilai tertentu. MYSQL akan memberikan peringatan kesalahan (error)
apabila tanggal atau waktu yang dimasukkan salah. Kisaran nilai dan besar
memori penyimpanan yang diperlukan untuk masing-masing tipe dapat dilihat
pada tabel 8.1.2.d berikut ini:

2
Tabel 8.1.2.d Tipe Data Tanggal
Tipe Data Kisaran Nilai Memori
Penyimpanan
DATETIME 1000-01-01 00:00 sampai 9999-12-31 3 byte
23:59:59
DATE 1000-01-01 sampai 9999-12-31 8 byte
TIMESTAMP 1970-01-01 00:00:00 sampai 2037 4 byte
TIME -839:59:59 sampai 838:59:59 3 byte
YEAR 1901 sampai 2155 1 byte

Operator MYSQL
MYSQL mendukung penggunaan operator-operator dan fungsi-fungsi
diantaranya:
 Operator Aritmetika
Suatu ekspresi yang melibatkan tipe data bilangan (NUMERIK) dan tanggal
(DATE) menggunakan ekspresi aritmatika. Dapat dilihat pada tabel 8.1.3.a
berikut ini:
Tabel 8.1.3.a Operator aritmatika MYSQL
Operator Keterangan
+ Tambah
- Kurang
* Kali
/ Bagi
Mod () Modulus
 Operator Pembandingan
Suatu ekspresi yang dapat digunakan pada klausa WHERE dan mempunyai
sintax sebagai berikut: WHERE expr operator value. Tabel 8.1.3.b
menunjukan operator pembanding pada MYSQL berikut ini:
Tabel 8.1.3.b Operator Pembanding MYSQL
Operator Keterangan
= Sama Dengan
> Lebih Besar
< Lebih Kecil
>= Lebih Besar atau Sama Dengan
<= Lebih Kecil atau Sama Dengan
<> Tidak Sama Dengan
 Operator Logika
Operator ini digunakan untuk membandingkan dua nilai variabel yang bertipe
boolean.

3
 Operator Karakter
Operator untuk membentuk pencarian string yang sesuai dengan nilai yang
mencantumkan pada kondisi. Kondisi pencarian dapat berisi karakter , ada 3
symbol khusus berikut ini dapat dilihat pada tabel 8.1.3.d berikut ini:
Tabel 8.1.3.d Tabel Operator Karakter
Operator Keterangan
% Sembarang karakter berapapun jumlahnya
_ Sembarang satu karakter
[] Sembarang karakter yang terletak dalam kurung
siku

 Operator Lain-lain
Operator yang digunakan untuk menguji nilai-nilai yang ada dalam list (tanda
kurung) dan dapat juga untuk menampilkan baris berdasarkan suatu jangkauan
(range) nilai. Ada 2 symbol tersebut dapat dilihat pada tabel 8.1.3.e berikut ini:
Tabel 8.1.3.e Operator lain-lain
Operator Keterangan
IN Dalam
BETWEEN Diantara

2. Kegiatan Praktikum :
Instalasi MySQL-5.0.22-WIN32 :
1. Jalankan file setup mysql, yaitu mysql-5.0.22-win32.exe, maka akan muncul
dialog instalasi sebagai berikut :

2. Pilih tombol Next, kemudian muncul dialog tipe instalasi sebagai berikut :
4
3. Pilih Custom, kemudian pilih tombol Next. Kemudian tampil dialog fitur
program sebagai berikut :

4. Klik tanda silang pada Developer Components, kemudian pilih This feature
will be installed on local hard drive seperti gambar berikut :

5
5. Kemudian pilih tombol Change..., pada folder name ubah menjadi sesuai
dengan gambar berikut ini :

6. Pilih OK, kemudian pilih tombol Next, dan pilih tombol Install, maka proses
instalasi dimulai.

6
7. Berikutnya muncul dialog account, pilih Skip Sign-Up dan klik tombol Next,
maka akan muncul dialog sebagai berikut :

8. Klik tombol Finish dan tombol Next, maka akan muncul dialog sebagai
berikut :

7
9. Pilih Standard Configuration dan klik tombol Next, lalu muncul gambar
berikut :

8
10. Pilih tombol Next. Kemudian muncul gambar berikut ini. Masukkan password
yang diinginkan pada kota isian New root password dan Confirm berikut ini
untuk sekuritas, misalnya 123456. Klik tombol Next.

11. Klik tombol Execute sebagai tahap akhir.

12. Klik Finish.

9
Melakukan Koneksi ke MySQL :
Cara 1 :
1. Melalui DOS Prompt, masuk ke direktori utama MySQL dengan cara sebagai
berikut (yang diketik hanya yang digaris bawah) :
C:\>cd \mysql\bin
2. Setelah itu ketikkan perintah berikut (yang diketik hanya yang digaris bawah) :
C:\>mysql\bin\mysql –u root –p
maka akan diminta untuk memasukkan passoword, isikan password yang
digunakan pada saat instalasi, yaitu 123456.
3. Selanjutnya akan ada respon dari server seperti gambar berikut :

Tampilan tersebut di atas menandakan bahwa telah berhasil melakukan


koneksi ke server.
Cara 2 :
1. Dari menu Start > All Programs > MySQL > MySQL Server 5.0 > MySQL
Command Line Client, maka akan muncul tampilan seperti berikut ini :

10
2. Masukkan password yang telah ditentukan pada saat instalasi, yaitu : 123456
kemudian tekan enter.

Menuliskan perintah pada mysql

Bentuk prompt “mysql>” adalah tempat menuliskan perintah-perintah MySQL.


Setiap perintah SQL harus diakhiri dengan tanda titik-koma “;” .

Cara untuk membuat sebuah database baru adalah dengan perintah:


create database namadatabase;

Misalkan anda ketikkan :


create database modul1;

Untuk membuka sebuah database dapat menggunakan perintah berikut ini:


use namadatabase;
Contoh:
use modul1;

Perintah untuk membuat tabel baru adalah:


create table namatabel
(
struktur
);

Constraint
Constraint adalah batasan atau aturan yang ada pada table.
MySQL menyediakan beberapa tipe constraint berikut :
• NOT NULL
Suatu kolom yang didefinisikan dengan constraint NOT NULL tidak boleh
berisi
nilai NULL. Kolom yang befungsi sebagai kunci primer (primary key)
otomatis tidak boleh NULL.
• UNIQUE
Mendefinisikan suatu kolom menjadi bersifat unik, artinya antara satu data
dengan data lainnya namanya tidak boleh sama, misal alamat email.
11

Anda mungkin juga menyukai