Sunday, 11 March 2012

Laporan Matakuliah Pengolahan Basis Data [Bagian I]


 Nama : Farisan hernanda suherman
 Nim     : 23100266


      A.     LANDASAN TEORI
Key dalam Bahasa Indonesia berarti kunci, maka semakna dengan itu fungsi dari key-key yang berada pada sebuah database. Artinya setiap pintu pasti mempunyai kunci khusus untuk membukanya, begitu pula tabel dalam database. Key-key inilah yang membantu dalam pengolahan data pada sebuah tabel (insert, update, delete). Jika data yang akan dimasukkan atau diubah tidak sesuai dengan kunci pada tabel tersebut, maka data itu akan tertolak.
Secara global key-key dapat dibagi sebagai berikut 

Primary Key
:
Key yang mengindentifikasikan bahwa setiap record pasti unique. Dalam sebuah tabel hanya diperbolehkan satu primary key, tidak lebih. Misalnya adalah tabel MURID, tidak ada murid yang memiliki NIS (Nomor Induk Siswa) yang sama dalam keadaan real, kemudian diimplementasikan dalam bentuk tabel dengan diberikan primary key pada kolom NIS.
Foreign Key
:
Key yang dihasilkan dari primary key dari tabel lain sebagai bentuk referensi dari tabel lain tersebut. Misalnya adalah tabel BELAJAR, dalam proses pembelajaran dibutuhkan kelas, guru dan apa yang dipelajari alias mata pelajaran, maka diimplementasikan dalam sebuah tabel bahwa dalam tabel BELAJAR terdapat foreign key (key asing) dari tabel KELAS, GURU dan MATA_PELAJARAN. Dari definisi key ini kita dapat mengetahui istilah MASTER-DETAIL.
Alternate Key (Unique Key)
:
Key ini sebenarnya hampir sama dengan fungsi primary key yaitu berjenis unique key. Maksudnya adalah mungkin saja primary key yang kita buat pada suatu tabel adalah merupakan autonumber (angka yang bertambah terus-menerus ketika proses insert data, sehingga tidak dimungkinkan terdapat nilai yang sama), dikarenakan tidak diperbolehkan ada dua primary key maka dapat dibantu oleh alternate key ini sebagai penanda unique-nya sebuah record dengan record lain. Dalam sebuah tabel diperbolehkan lebih dari satu alternate key.
Non Unique Key
:
Key yang bisa lebih dari satu dalam sebuah tabel dan tidak mendefinisikan unique antar record di dalam table tersabut. Key ini biasa digunakan untuk membantu proses pencarian (select) data pada sebuah kolom yang sering digunakan untuk proses tersebut.

Yang harus diperhatikan dalam pemberian key pada kolom-kolom dalam sebuah tabel :
  1. Pastikan sebuah tabel mempunyai primary key.
  2. Pastikan primary key tersebut mewakili unique-nya sebuah record.
  3. Ada baiknya menjadikan satu kolom saja untuk sebuah primary key sebagai autonumber/autoincrement  mewakili beberapa kolom yang merupakan unique-nya record. Ini akan mempermudah jika ada tabel yang mengambil primary key pada tabel Barang sebagai foreign key tabel tersebut.
  4. Jangan terlalu banyak dalam pembuatan alternate key, karena key ini akan memperlambat proses insert dan update pada tabel tersebut. Secara logika alternate key akan mengecek ke-unique-kan seluruh record dari setiap record baru yang di-insert atau perubahan data pada record. Bayangkan jika datanya cukup besar… dan banyak alternate key… !!
  5. Pilihlah dengan baik alternate key karena alternate key akan mempermudah dan mempercepat proses select jika digunakan. Maksudnyanya adalah KOLOM-KOLOM dalam alternate key tersebut yang digunakan.
  6. Gunakan Non-unique key untuk kolom yang sering digunakan dalam proses selec

   B.      PERMASALAHAN
Dalam praktikum yang telah di bahas kemarin , didapatkan suatu permsalahan yaitu pada 11 buah table yang kita miliki: 






yang harus di berikan relasi nya pada database mysql. Agar pada proses penginputan data akan berjalan sesuai dengan yg smestinya.

Pada database ini , saat belum di berikan relasi antar masing-masing table, terjadi sebagai berikut :

Pada saat table barang di isikan sebuah data
Kodebarang
barcode
namabarang
hargajual
hargabeli
discount
kodejenis
B001
112256
Topi
10000
8000
-
J001








Maka data tersebut akan masuk kedalam table barang, hal ini merupakan sebuah KESALAHAN ! .
Seharusnya data tersebut tidak akan di terima oleh database . karena  pada field “kodejenis” data yang dimasukan tersebut belum ada pada table jenis barang itu sendiri.





   C.      PEMBAHASAN MASALAH
         Dari permasalahan diatas solusi yang diberikan adalah dengan memberikan kunci index atau foreign key , kemasing –masing kunci penghubung  antar table. Dari Contoh di atas field “Kodejenis” merupakan penghubung table barang ke table jenisbarang.
Dengan memberikan syntax sbg berikut:

Alter table barang add foreign key (kodejenis) REFERENCE jenisbarang (kodejenis);

Catatan : Untuk pembuatan relasi antar table pada database, hanya bisa dilakukan jika  storage engine database yang kita miliki berupa INNODB


 Atau dalam phpmyadmin bisa dilakukan Dengan memberikan kunci index , dalam contoh ini kodejenis pada table barang:



 Setelah itu pada table Barang diberikan relasi ke table jenisbarang, karna isi dari field barang.kodejenis  ada pada jenisbarang.kodejenis , caranya sebagai berikut :








                         
 Dengan melakukan cara diatas, maka table barang dan table jenisbarang kini telah saling berlerasi dan pada proses penginputan data akan berjalan sesuai dengan semestinya, Kemudian lakukan cara-cara tersebut kepada table yang saling berlerasi

Jadi jika dilakukan pengisian data field kodejenis pada table barang , tetapi pada table jenisbarang belum ada, maka proses penginputan akan tidak berjalan.

Leave a Reply