Dalam kasus ini misalkan terdapat tabel induk bernama MHS yang di dalamnya terdapat field N M, N!M!MHS. "abel induk yang lain adalah M# untuk menyimpan data matakuliah dengan field$fieldnya #%D&M#, N!M!M#. Dalam hal ini field N M dan #%D&M# masing$masing adalah primary key pada tabel MHS dan M#. Selan'utnya ada tabel lain bernama !M( )M# dengan field N M, #%D&M#, N )! yang digunakan untuk menyimpan data pengambilan matakuliah mahasiswa. Nah* dalam hal ini, field N M dan #%D&M# keduanya adalah bertindak sebagai +%,& -N #&.. Selan'utnya dalam MS. !ccess terdapat pula fasilitas untuk mengimplementasikan referensial integrity. Misalkan, kita ubah data salah satu kode N M mahasiswa dalam tabel induk MHS. Nah* secara otomatis proses update ini 'uga ter'adi di tabel !M( )M# yaitu pada data yang terkait N M tersebut. (egitu pula pada proses penghapusan. Sebagai contoh misalkan kita hapus salah satu kode matakuliah di tabel M#, maka secara otomatis data yang terkait dengan kode matakuliah tersebut pada tabel !M( )M# akan terhapus. Nah.. bagaimana dengan MyS/)0 #ira$kira bisa tidak diterapkan kedua hal di atas seperti halnya MS. !ccess0 Saya 'awab TENTU SAJA BISA. .ang men'adi pertanyaan adalah, 1(agaimana cara melakukannya02. .a* untuk menerapkan konsep +%,& -N #&. dan ,&+&,&N" !) N"&-, ". ini, kita harus mensetting MyS/) nya bisa support untuk tabel bertipe NN%D(. (iasanya ketika proses instalasi MyS/) akan ditanyakan apakah databasenya support dengan NN%D(0 3ntuk hal ini, !nda harus 'awab .!. Namun.. bila proses instalasi !nda terlan'ur tidak memilih support NN%D(, maka cara mengaktifkan NN%D( adalah buka file 1my.ini2 lalu cari baris perintah 1skip$innodb2. Hapuslah perintah ini, lalu hentikan MyS/) dan hidupkan kembali MyS/) 4restart MyS/)5. %#* sekarang kita coba untuk studi kasus. #ita akan membuat database untuk keperluan pengambilan matakuliah mahasiswa seperti pada kasus di atas. (erikut ini, adalah perintah S/) untuk membuat tabel$tabelnya. 6erintah S/) untuk membuat tabel MHS view sourceprint?
1.CREATE TABLE mhs 2.( 3.nim varchar(8), 4.namaMhs varchar(20), 5.PRIMAR !E (nim) ".) T PE # I$$%&B'
6erintah S/) untuk membuat tabel M# view sourceprint?
1.CREATE TABLE m( 2.( 3.()*+M! varchar(3), 4.namaM! varchar(20), 5.PRIMAR !E (()*+M!) ".) T PE # I$$%&B'
6erhatikan kedua perintah S/) di atas. #arena kita akan membuat tabel bertipe NN%D(, maka masing$masing perintah S/) diberikan perintah ".6& 7 NN%D(8 Sekarang, kita lan'utkan untuk membuat tabel untuk ambilM#. view sourceprint?
01.CREATE TABLE am,i-M! 02.( 03.nim varchar(8), 04.()*+M! varchar(3), 05.ni-ai .-)a/(3,2), 0".PRIMAR !E (nim, ()*+M!), 00.1%REI2$ !E (nim) RE1ERE$CE3 mhs (nim) %$ &ELETE CA3CA&E %$ 4P&ATECA3CA&E, 08.1%REI2$ !E (()*+M!) RE1ERE$CE3 m( (()*+M!) %$ &ELETE CA3CA&E %$ 4P&ATECA3CA&E 05.) T PE # I$$%&B'
"abel di atas terdapat dua primary key yaitu N M dan #%D&M#. Sedangkan field N M ini 'uga merupakan foreign key yang direferensikan dari field N M yang ada dalam tabel MHS. %leh karena itu tambahkan perintah 1+%,& -N #&. 4nim5 ,&+&,&N9&S mhs 4nim52. Selan'utnya apa maksud dari 1%N D&)&"& 9!S9!D&20 6erintah ini maksudnya bila ada data N M yang dihapus pada tabel MHS, maka secara otomatis data N M yang ada dalam tabel !M( )M# ini 'uga akan terhapus. Sedangkan 1%N 36D!"& 9!S9!D&2 digunakan untuk proses update otomatis pada N M dalam tabel !M( )M#, apabila N M yang ada di tabel MHS ini diupdate. Hal yang sama 'uga kita terapkan untuk tabel !M( )M#. Dalam hal ini, #%D&M# adalah sebagai foreign key yang direfensikan dari #%D&M# yang ada dalam tabel M#. Sekarang coba !nda masukkan data$data berikut ini pada tabel MHS view sourceprint?
$AMAM63 R)sihan Ari 7ana &8i Ama-ia 1i/riani 1a9a 1a79an $a*a 6asanah M7h. Ahsani Ta:8im $AMAM! &a/a,as+ %%P
Nah* untuk mengecek referensial integrity, sekarang kita coba masukkan data pada tabel !M( )M#. view sourceprint?
1.$IM 2.M0150001
!%&EM! M01
$ILAI 3.0
Nah* perintah di atas akan menghasilkan error. Hal ini disebabkan N M M:;<=::> tidak ada dalam tabel MHS. Sekarang kita coba melakukan proses update. #ita akan mengupdate N M M:;<=::; men'adi M:;<=:;: yang ada dalam tabel MHS. view sourceprint?
$AMAM63 R)sihan Ari 7ana &8i Ama-ia 1i/riani 1a9a 1a79an $a*a 6asanah M7h. Ahsani Ta:8im !%&EM! M01 $ILAI 3.0
Sekarang !nda coba lihat isi tabel !M( )M#. 6astilah isinya men'adi berikut ini view sourceprint?
Selan'utnya kita coba update untuk #%D&M# yang ada dalam tabel M#. Misalnya akan diubah kode mk M:; men'adi M:<. view sourceprint?
1.!%&EM!
$AMAM!
2.M05 3.M02
Nah* bila kita lihat data di tabel !M( )M#, pastilah isinya men'adi view sourceprint?
1.$IM 2.M0150010
(agaimana dengan proses penghapusan0 #ita cek a'a* sekarang kita coba hapus data mahasiswa berN M M:;<=:;: dalam tabel MHS. view sourceprint?
$ILAI 3.0
Sekarang bila kita lihat isi tabel !M( )M#, pastilah men'adi kosong karena data pengambilan matakuliah terkait dengan mahasiswa N M M:;<=:;: ini ikut terhapus. %#* begitulah pen'elasan ini saya tulis. Moga$moga bermanfaat bagi mahasiswaku semua* terus semangat bela'ar dan pantang menyerah. ndonesia sangat membutuhkanmu
$AMAM63 &8i Ama-ia 1i/riani 1a9a 1a79an $a*a 6asanah M7h. Ahsani Ta:8im