Normalisasi Database by TirtaNugraha1

VIEWS: 392 PAGES: 9

									Penerapan Bentul Normalisasi : Bentuk Normal Kesatu
Dengan bentuk Normal Kesatu ini telah dapat dibuat satu file dengan 20 field yaitu : no_pendaftaran, tanggal,
petugas, jenis_ijazah, nama_pelamar, tanggal_lahir, alamat, kelurahan, kecamatan, kota, kode_pos,
status_kawin, nama_sekolah, alamat_sekolah, kota_sekolah, tanggal_lulus, nama_perusahaan, jabatan,
alamat_perusahaan, lama_menjabat.
Namun, bentuk normal kesatu ini mempunyai beberapa kelemahan yaitu :
      Penghapusan data
       Jika salah satu Record dihapus, maka semua data yang ada disitu akan ikut terhapus
      Penyisipan data
       Data riwayat pendidikan pelamar dan riwayat pekerjaan pelamar lebih dari satu. Jika ingin
       menambahkan data pada record tersebut otomatis harus mengisi data yang lain (nama_pelamar,
       jenis_ijazah, dst). Hal ini juga menyebabkan redundansi data.
      Redundansi data


Pembentukan Normal Kedua :
Mencari field kunci yang dapat dipakai sebagai patokan dalam pencarian dan yang mempunyai sifat yang unik.
Melihat kondisi dari permasalahan form lamaran pekerjaan di atas dapat diambil kunci kandidat sbb :
      no_pendaftaran
      no_ktp (Field tambahan untuk kunci primer)
Maka didapatkan tabel sebagai berikut.
Pengujian database :
Setelah bentuk normal dua sudah selesai, database akan di uji. Pengujian di sini untuk memastikan kebenaran isi
tabel dan hubungan antara tabel tersebut. Ujian bahwa setiap tabel haruslah punya hubungan dengan tabel yang
lainnya. Bila tidak ada penghubungan antar tabel maka dapat dikatakan perancangan untuk membuat satu basis
data adalah gagal.


Proses export dari Database model (Mysql Workbench) ke PhpMyadmin :




Pilih menu Database >> Forward engineer. Atau langsung tekan Ctrl + G. Setelah itu akan muncul tampilan
sebagai berikut.
Ikuti langkah tersebut sampai database yang akan di forward tercipta. Untuk saat ini nama database yang akan
dibuat adalah lamaran. Berikut tampilan jika database sudah dibuat :
Dalam database lamaran Terdapat 4 tabel yaitu : lamaran, data_pelamar, riwayat_pendidikan_pelamar, dan
riwayat_pekerjaan.
Pada tabel lamaran terdapat 3 record. Field no_pendaftaran sebagai primary key.




Pada tabel data_pelamar terdapat 3 record yang dimana field lamaran_no_pendaftaran adalah candidate key dari
field no_pendaftaran yang ada pada tabel lamaran. Field lamaran_no_pendaftaran otomatis tercipta ketika kita
membuat relasi antara tabel lamaran dan tabel data_pelamar pada MySql Workbench. Ketika kita mengklik
salah satu data yang ada pada field lamaran_no_lamaran (misal 333), maka kita akan terhubung pada tabel
lamaran yang menampilkan 'hanya' record yang bernilai 333 pada field no_pendaftaran (SELECT * FROM
'lamaran ', 'lamaran ' WHERE 'no_pendaftaran' = '333') karena field tersebut bertindak sebagai primary key.
Pada tabel riwayat_pendidikan_pelamar yang menjadi candidate key adalah field data_pelamar_no_ktp yang
bergantung kepada field no_ktp pada tabel data_pelamar. Dengan asumsi bahwa satu orang pelamar
memerlukan lebih dari satu record, maka setiap kita mengklik data (misal 123456) pada field
data_pelamar_no_ktp akan membawa kita kepada tabel data_pelamar yang menunjukan record yang
mempunyai primary key bernilai 123456, yaitu no_ktp milik Aziz.




Sama hal nya dengan tabel riwayat_pekerjaan. Tabel tersebut bergantung kepada tabel data_pelamar yang
mempunyai    primary   key   no_ktp.   Kedua   tabel   ini   (tabel   riwayat_pendidikan_pelamar   &   tabel
riwayat_pekerjaan) mempunyai field candidate key yang sama yaitu data_pelamar_no_ktp. Berikut isi tabel
riwayat_pekerjaan :
Representasi Database Lamaran :
Setelah database telah terisi dengan record-record pada tiap tabelnya, sekarang kita akan mencoba
merepresentasikan atau mengolah isi data tersebut menjadi informasi. Berikut adalah cara penulisan kode PHP
yang akan menampilkan isi dari database lamaran. Langkah pertama adalah membuat halaman search pada
browser yang nanti akan mencari record yang ada di dalam database lamaran sesuai dengan nomor pendaftaran
lamaran yang dimasukan oleh user :




Kode kantor.php :
Kode untuk menampilkan isi database adalah :

<?php
            $no_daftar = htmlspecialchars($_GET['no_pendaftaran']);
            $koneksi = mysql_connect("localhost", "root", "tirta");
            mysql_select_db("lamaran", $koneksi);

            $perintah_query = "select * from lamaran where no_pendaftaran = '$no_daftar'";
            $isi = mysql_query($perintah_query);

            $row = mysql_fetch_array($isi);
?>

Kode diatas adalah untuk membuat koneksi ke database yang berjalan di server local (localhost), dan menunjuk
kepada database lamaran ( mysql_select_db("lamaran", $koneksi); ). Kemudian berikan perintah database
apa yang akan di buka Field apa saja yang akan di tunjuk dlm bentuk query ($perintah_query = "select * from
lamaran where no_pendaftaran = '$no_daftar'"; ).

<?php
            echo "No. Lamaran : " . $no_daftar . "<br/>";
            echo "tanggal : " . $row['tanggal'] . "<br/>";
            echo "Petugas : " . $row['petugas'] . "<br/>";
            echo "Jenis Ijazah Pelamar : " . $row['jenis_ijazah'] . "<br/><br/>";
?>

Kemudain kode diatas adalah untuk menampilkan isi data pada database ke browser. Data yang di tampilkan
adalah no_pendaftaran, tanggal, petugas, jenis_ijazah yang ada pada tabel lamaran. Kemudian perintah query
kita rubah karena data yang akan di tampilkan tidak lagi berada pada tabel lamaran, tetapi ada pada tabel
data_pelamar. Berikut kode nya. Perbedaan akan terlihat pada text yang di cetak tebal.

<?php
            $perintah_query = "select * from data_pelamar where lamaran_no_pendaftaran = '$no_daftar'";
            $isi = mysql_query($perintah_query);
            $row = mysql_fetch_array($isi);
?>

Setelah perintah query diganti, sekarang tinggal menampilkan isi record ke dalam browser. Berikut kodenya :

<?php
            echo $row['nama_pelamar'];
            echo $row['no_ktp'];
            echo $row['tanggal_lahir'];
            echo $row['alamat'];
            echo $row['kelurahan'];
            echo $row['kecamatan'];
           echo $row['kota'];
           echo $row['kode_pos];
?>

Langkah selanjutnya rubah lagi perintah Query untuk mengambil data dari tabel riwayat_pendidikan pelamar,
kemudian tampilkan isi data ke browser. Ulangi langkah ini sampai semua data yang hendak ditampilkan telah
tampak pada browser. Berikut tampilan pada file output.php

								
To top