Anda di halaman 1dari 5

MODUL 4

INTEGRITAS REFERENSIAL
A. Tujuan
1. Siswa dapat memahami antara primary key dan foreign key
2. Siswa mengetahui tentang integritas referensial
3. Siswa dapat mengaplikasikan penggunaan integritas referensial

B. Petunjuk
1. Awali setiap aktivitas dengan doa, semoga berkah dan mendapat kemudahan
2. Pahami tujuan, dasar teori, dan latihan-latihan praktikum dengan baik dan benar
3. Kerjakan tugas-tugas praktikum dengan baik, sabar, dan jujur
4. Tanyakan kepada guru apabila ada hal-hal yang kurang jelas

C. Dasar Teori
Integritas referensial adalah aturan aturan yang mengatur hubungan antara kunci primer
(primary key) dengan kunci tamu (foreign key) milik tabel tabel yang berada dalam suatu
basis data relasional untuk menjaga konsistensi data.
Tujuan integritas referensial adalah untuk menjamin agar elemen dalam suatu tabel
yang menunjuk dalam suatu pengenal unik pada suatu baris pada tabel lain benar benar
menunjuk ke suatu nilai yang memang ada. Sebagai contoh, didefinisikan suatu aturan
yang tidak memeperkenankan data pelanggan dihapus atau data pelanggan tersebut dipakai
pada tabel lain. contoh lain seorang mahasiswa dilarang mendaftar mata kuliah yang tidak
ditawarkan pada semester ini ( integritas referensial penyisispan).
Macam macam integritas referensial :
1. penambahan (insert)
2. penghapusan (delete)
3. peremajaan (update)
Pembagian ini berdasarkan oleh operasi yang akan dilakukan.
Integritas referensial pada update memungkinkan perubahan suatu kunci pada suatu tabel,
menyebabkan semua nilai pada tabel lain yang tergantung pada tabel tersebut juga akan
diubah.

Kekangan Foreign Key


Kekangan Foreign Key berguna untuk mendukung integritas referensial. Ilustrasi dari
hubungan antartabel adalah
nasabah
kota
PK id_nasabah
PK kode_kota
nama
nama_kota
FK kode_kota
Tabel Induk
Tabel yang mereferensi

1
Tindakan Terpicu Integritas Referensial
MySQL menyediakan fitur yang memungkinkan penggunanya untuk megubah atau
menghapus suatu baris pada table induk yang dijadikan referensi oleh Foreign Key.
Penentuan tindakan tersebut berbentuk:
[ON UPDATE {RESTRICT|CASCADE|SET NULL|NO ACTION}]
[ON DELETE {RESTRICT|CASCADE|SET NULL|NO ACTION}]
Yang berada di dalam tanda [] bersifat opsional, yang berada pada tanda {} harus dipilih
salah satu diantara pilihan yang dipisahkan oleh tanda |. Penjelasan:
 UPDATE menyatakan tindakan kalau pada table induk terjadi perubahan nilai.
 DELETE menyatakan tindakan kalau pada table induk terjadi penghapusan baris.
Adapun tindakan yang dapat didefinisikan pada ON UPDATE maupun ON DELETE
beserta penjelasannya dapat dilihat di bawah ini:
 RESTRICT
Menyatakan bahwa pengubahan atau penghapusan ditolak
 CASCADE
Pada UPDATE, jika nilai Primary Key pada table induk berubah maka Foreign
Key pada table yang mereferensi akan disesuaikan dengan nilai pada Primary
Key pada table induk.
Pada DELETE, semua baris yang Foreign Key-nya cocok dengan Primary Key
pada table induk milik baris yang dihapus akan ikut dihapus
 SET NULL
Menyatakan Foreign Key akan diisi dengan NULL kalau kunci primer pada table
induk yang nilainya sama dengan nilai pada kunci asing diubah atau dihapus
 NO ACTION
Identik dengan RESTRICT
D. Latihan
1. Latihan 1 (Pemahamam kekangan Foreign Key)
a. Buat database dengan nama bank
b. Buat 2 buah table, yakni table kota, dan table nasabah
c. Pertama-tama buat table kota dengan syntax query

d. Masukkan data seperti berikut pada table kota

e. Selanjutnya buatlah table nasabah yang mereferensi ke table kota

2
Perhatikan bahwa kode_kota berkedudukan sebagai foreign key yang mereferensi
ke table kota.
f. Setelah membuat table nasabah tersebut, lakukan input data pada table , semisal

Akan mengahasilkan:

g. Namun hasilnya akan berbeda ketika kode_kota yang dimasukkan adalah 8888.
Silahkan di parktikkan.
h. Sistem akan menolak karena kode_kota 8888 tidak ada di daftar atau tidak
terdapat di table kota.
2. Latihan 2 (Efek ON UPDATE CASCADE dan ON DELETE RESTRICT)
a. Untuk melihat efek ON UPDATE CASCADE dan ON DELETE RESTRICT,
lakukan penghapusan terhadap table nasabah sebelumnya
b. Kemudian buat table nasabah kembali menggunakan syntax sql

c. Setelah itu masukkan data berikut di table nasabah

d. Pastikan kembali isi table kota adalah, karena table kota menjadi acuan (table
induk)

3
e. Cobalah mengubah kode_kota 0001 menjadi 9992 pada table kota dengan syntax

f. Lihatlah data pada table nasabah dan table kota

g. Lihatlah,pengubahan yang dilakukan pada kode_kota pada table kota


berpengaruh terhadap table nasabah.
h. Begitulah efek ON UPDATE CASCADE  Begitu table induk (yang dijadikan
REFERENCES) diubah, maka table yang mereferensi akan ikut diubah.
i. Selanjutnya ON DELETE CASCADE, Jika table induk dihapus dan sedang
dirujuk oleh table anak, maka penghapusan akan ditolak.
j. Cobalah hapus kode_kota 0002 pada table kota. Apa yang terjadi?

Kegagalan. Karena kode_kota 0002 pada table kota dirujuk oleh table nasabah.
k. Bagaimana jika yang dihapus adalah kode_kota 0004 dari table kota? Berhasil.
Karena kode_kota tersebut tidak dirujuk oleh table nasabah.

E. Tugas Praktikum
1. Tugas Praktikum 1
Buatlah database sekolah dengan 2 table, yakni table mapel, dan table siswa
Table maple

Table siswa

4
2. Tugas Praktikum 2
a. Lakukan update untuk siswa yang bernama wahyu haris agar mengambil mapel
Bahasa Indonesia;
b. Lakukan update untuk siswa yang bernama alif naili agar mengambil mapel
Matematika
c. Lakukan update data kode_mapel menjadi 999 untuk siswa Ika Wahyuni. Apa yang
terjadi? Jelaskan!
d. Lakukan hapus data kode mapel 115 dari table mapel. Apa yang terjadi? Jelaskan!
e. Lakukan hapus data siswa Junaidi dari table siswa! Apa yang terjadi? Jelaskan!

F. Tugas Rumah
1. Tugas Rumah 1
a. Buatlah penerapan dari RESTRICT, SET NULL, dan NO ACTION menggunakan
table yang sama seperti pada latihan
b. Jelaskan apa yang dimaksud dengan Primary Key dana Foreign Key! Gambarkan
contohnya!
c. Apa yang dimaksud dengan table bertipe MyISAM dan InnoDB? Bandingkan
antara keduanya!
d. Berapa nilai laporan modul 4 yang anda inginkan?

Anda mungkin juga menyukai