Anda di halaman 1dari 11

I Pendahuluan

1.1 Jenis – jenis kunci dalam basis data

Dalam sitem basis kumpulan dari satu atau lebih kolom yang nilai-nilai
gabungan unik di antara semua kejadian dalam tabel tertentu. Tedapat dua jenis kunci yang
umum digunakan dalam membangun basis data yaitu Primary Key (Kunci Utama) dan
Foreign Key (Kunci tamu).

1.1.1 Primary Key

Primary Key (kunci utama) suatu nilai dalam basis data yang digunakan untuk
mengidentifikasi suatu baris dalam tabel. Primary key, salah satu atrribut dari candidat key
dapat dipilih menjadi primary key dengan 3 kriteria sbb : Key tersebut lebih natural untuk
dijadikan acuan Key tersebut lebih sederhana Key tersebut cukup unik. Primary key
berfungsi sebagai identitas untuk membedakan antar record pada tabel.

1.1.2 Foreign Key

Secara sederhana, foreign key dapat diartikan sebagai kunci asing. Definisi tersebut
juga berlaku dalam pengolahan relasional database. Kunci asing (Foreign Key) adalah
sebuah atribut atau gabungan atribut yang terdapat dalam suatu tabel yang digunakan untuk
menciptakan hubungan (relasi) antara dua tabel. Dalam relasional database, penggunaan
foreign key merujuk pada suatu kunci primer yang terdapat pada tabel pertama atau dikenal
juga dengan tabel master.

Pada dasarnya, foreign key digunakan untuk menandakan hubungan tabel yang satu
dengan yang lainnya. Atau dapat dikenal dengan istilah parent dan child. Tabel pertama
berperan sebagai parent yang terdapat primary key di dalamnya, tabel kedua disebut
sebagai child yang berisi kunci asing (foreign key).

Suatu tabel dapat dikatakan child apabila dalam tabel tersebut terdapat kolom yang
merupakan rujukan (reference) terhadap tabel pertama atau parent. Selain itu, terdapat
beberapa fungsi yang dimiliki oleh foreign key. Berikut akan dijelaskan mengenai beberapa
fungsinya :

a. Dengan menentukan kunci asing, maka otomatis database akan konsisten


dalam mempertahankan integritas referensial. Dengan begitu, database dapat
memonitor setiap data yang dimasukkan. Misalkan pada contoh gambar
diatas, ketika Anda mencoba memasukkan record baru dalam tabel Karyawan
(“2010004”, “Andi”, “Pria”, “10/03/1990”, “PEN”). Maka secara otomatis,
database akan menolak memasukkan record tersebut dan menampilkan pesan
kesalahan. Sebab, dalam kolom Department_Id di tabel Department tidak
mengenal “PEN”.
b. Ketika Anda telah menetapkan kunci primer di tabel utama dan kunci asing
di tabel kedua, maka itu memudahkan Anda untuk melihat rancangan fisik
database dengan komponen yang saling terkait. Dengan begitu, Anda tidak
perlu membuat rancangan database secara manual. Pada XAMPP, Anda
dapat melihat rancangan fisik database yang telah dirancang dengan klik
menu More -> Designer.
c. Dengan membuat kolom yang digunakan sebagai foreign key, maka dapat
memudahkan Anda untuk melakukan operasi pengolahan setiap data yang
tersimpan dalam database. Sebab, data yang tersimpan sudah saling terkait
satu dengan yang lainnya.

1.2 Entity Relational Diagram (ERD)

ERD adalah model atau rancangan untuk membuat database, agar lebih mudah dalam
menggambarkan data yang memiliki hubungan atau relasi dalam bentuk sebuah desain.
Dengan adanya ER diagram, maka sistem database yang terbentuk dapat digambarkan
dengan lebih terstruktur dan terlihat rapi.

1.2.1 Komponen penyusun ERD

a. Entitas

Kumpulan objek yang dapat diidentifikasikan secara unik atau saling berbeda.
Biasanya, simbol dari entitas adalah persegi panjang. Selain itu, ada juga “Entitas Lemah”
yang dilambangkan dengan gambar persegi panjang kecil di dalam persegi panjang yang
lebih besar. Disebut entitas lemah karena harus berhubungan langsung dengan entitas lain
sebab dia tidak dapat teridentifikasi secara unik.

Gambar 1 Simbol Entitas.

b. Atribut

Komponen kedua dari ERD adalah atribut. Setiap entitas pasti mempunyai elemen
yang disebut atribut yang berfungsi untuk mendeskripsikan karakteristik dari entitas
tersebut. Atribut kunci merupakan hal pembeda atribut dengan entitas. Gambar atribut
diwakili oleh simbol elips dan terbagi menjadi beberapa jenis:

a. Atribut kunci (key): atribut yang digunakan untuk menentukan entitas secara
unik. Contoh: NPWP, NIM (Nomor Induk Mahasiswa).
b. Atribut simpel: atribut bernilai tunggal yang tidak dapat dipecah lagi
(atomic). Contoh: Alamat, tahun terbit buku, nama penerbit.
c. Atribut multinilai (multivalue): atribut yang memiliki sekelompok nilai untuk
setiap entitas instan. Contoh: nama beberapa pengarang dari sebuah buku
pelajaran.
d. Atribut gabungan (composite): atribut yang terdiri dari beberapa atribut yang
lebih kecil dengan arti tertentu. Contoh: nama lengkap yang terbagi menjadi
nama depan, tengah, dan belakang.
e. Atribut derivatif: atribut yang dihasilkan dari atribut lain dan tidak wajib
ditulis dalam diagram ER. Contoh: usia, kelas, selisih harga.

Gambar 2 Simbol Atribut.

c. Relasi

Hubungan antara sejumlah entitas yang berasal dari himpunan entitas yang berbeda.
Gambar relasi diwakili oleh simbol belah ketupat. Relasi juga terbagi menjadi beberapa
jenis:

a. One to one: setiap entitas hanya bisa mempunyai relasi dengan satu entitas lain.
Contoh: siswa dengan nomor induk siswa
b. One to many: hubungan antara satu entitas dengan beberapa entitas dan sebaliknya.
Contoh: guru dengan murid dan sebaliknya.
c. Many to many: setiap entitas bisa mempunyai relasi dengan entitas lain, dan
sebaliknya. Contoh: siswa dan ekstrakurikuler.
Gambar 3 Contoh Relasi.
II Materi Praktikum (Multiple Relations)

2.1 Pembuatan Database Pepustakaan

Gambar 4 ERD sederhana untuk database pepustakaan.

Perhatikan pada Gambar 4, entitas buku dan entitas buku_pengarang memiliki


atribut foreign key (FK) di dalamnya. Sedangkan entitas lainnya, penerbit dan pengarang
tidak memiliki FK. Anda bisa membuat tabel penerbit dan pengarang terlebih dahulu.

Gambar 5 Pembuatan table penerbit pada kasus multiple relations.


Gambar 6 Pembuatan tabel pada kasus multiple relations.

Selanjutnya dibangunlah tabel-tabel yang terdapat foreign key di dalamnya. Pertama


akan dibangun tabel buku. Di dalam tabel tersebut terdapat foreign key idpenerbit yang
mana referensinya adalah idpenerbit pada tabel penerbit. Berikut query yang digunakan:

Gambar 7 pembuatan tabel buku.

CONSTRAINT berarti menambahkan batasan berupa Foreign Key yang pada


Gambar 7 diberikan nama foreign key nya. Nama foreign key haruslah unique, sehingga
jika ada pemakaian dua foreign key atau lebih, maka berikanlah nama yang berbeda.
Setelah ONSTRAINT diberikan kemudian diikuti dengan FOREIGN KEY yang
menunjukkan atribut mana pada tabel tersebut yang menjadi FK. REFERENCES adalah
merujuk pada Primary Key atau atribut yang menjadi referensi dari FK yang dibuat,
dengan format REFERENCES nama_tabel(nama_atribut_referensi). ON UPDATE
CASCADE berarti jika nilai atribut referensi berubah (diupdate), maka perubahan tersebut
terjadi pula pada semua atribut FK nya. ON DELETE CASCADE berarti jika data dengan
nilai atribut referensi dihapus, maka demikian pula dengan data yang memiliki atribut FK
nya. Selain CASCADE, dapat juga menggunakan RESTRICT dan SET NULL. Tentunya
dengan kasus dan kepentingan yang berbeda.

Selanjutnya dengan cara yang sama kita dapat membuat tabel buku_pengarang.
Kode pada buku_pengarang direncanakan merupakan gabungan dari idbuku dan
idpengarang. Misalkan untuk hubungan buku dengan idbuku = 5, dan pengarang dengan
idpengarang = 15, maka id pada buku_pengarang adalah BP_5_15. Berarti tipe data dari
id adalah char (atau varchar) dengan length sebesar 12 (dengan asumsi panjang karakter
maksimal idbuku adalah 4 atau sebanyak 9999 buku dan panjang karakter maksimal
idpengarang adalah 4 atau sebanyak 9999 pengarang).

Gambar 8 Pembutan tabel buku-pengaran.

2.2 DML untuk Multiple Relations

Untuk menginputkan data pada tabel yang memiliki atribut Foreign Key, harus
dipastikan terlebih dahulu apakah pada tabel masternya sudah terisi atau belum. Dipastikan
juga apakah nilai FK yang akan dimasukkan sudah ada pada tabel master atau belum. Misal,
tabel penerbit masih kosong. Sekarang kita akan mengisikan tabel buku dimana terdapat
FK idpenerbit. Kita akan isikan idpenerbit dengan nilai 1:

Gambar 9 peringatan kesalahan diberikan karena Batasan FK.

Seperti terlihat pada gambar di atas, akan keluar pesan kesalahan akibat nilai
idpenerbit yang dimasukkan pada tabel buku tidak ada pada tabel penerbit (tabel master).

Lain halnya jika Anda menginputkan nilai NULL untuk idpenerbit, walaupun pada
tabel penerbit belum memiliki data, tidak menjadi masalah.
Gambar 10 penginputan dengan FK bernilai Null.

Langkah yang tepat adalah dengan mengisikan terlebih dahulu tabel masternya.
Di sini akan dinputkan data-data untuk tabel penerbit:

Gambar 11 Penginputan tabel penerbit

Pada Gambar 11 nilai idpenerbit adalah NULL. Nilai tersebut dapat diubah dengan
nilai referensi (Primary Key) pada tabel penerbit.

Gambar 12 Meng-Upadate nilai FK pada tabel buku.


Selanjutnya kita selesaikan penginputan untuk tabel-tabel lainnya.

Gambar 13 Penginputan tabel pengarang.

Gambar 14 Penginputan tabel buku pengarang

6.3 SELECT dengan Klausa Where

Jika melihat tampilan tabel buku dan tabel buku_pengarang cukup tidak user
friendly karena pengguna hanya mendapatkan informasi nomor ID untuk penerbit dan
pengarang buku. Hal itu terjadi karena untuk menampilkan data pada tabel buku dan
buku_pengarang menggunakan bahasa SQL standar. Agar dapat menampilkan nama
penerbit di setiap daftar buku, kita bisa menghubungkan antara idpenerbit pada tabel buku
(sebagai FK) dengan idpenerbit pada tabel penerbit (sebagai PK). Tapi sebelumnya harus
ditentukan terlebih dahulu atribut apa saja yang ingin ditampilkan. Misalkan kita ingin
menampilkan atribut idbuku, judul, penerbit, tahun dan stok, maka query yang dapat
digunakan adalah sebagai berikut:
Gambar 15 Menampilkan data buku dan penerbit buku.

Perhatikan pada Gambar 15 tersebut, FROM diikuti oleh dua tabel. Hal ini dikarenakan
yang ingin ditampilkan kepada pengguna adalah atribut-atribut yang berasal dari dua tabel
tersebut. Sementara WHERE diikuti dengan menyamakan atribut FK dan PK, yaitu
idpenerbit pada tabel buku dan idpenerbit pada tabel penerbit. Nama tabel disebutkan agar
tidak terjadi ambiguitas dari sistem, karena kedua atribut yang disamakan nilainya memiliki
nama yang sama.

Anda juga dapat menampilkan hubungan antara buku dan pengarang buku. Query yang
digunakan adalah sebagai berikut:

Gambar 16 Menampilkan judul buku dan nama-nama pengarangnya.


III Refleksi
Berdasarkan kegiatan praktikum yang dilakukan pada bagian II, maka buatlah refleksi
berupa :

1. Laporan praktikum.
2. Lakuakan analisis mandiri mengenai Primary key dan Foreign Key yang meliputi :
fungsi dan kegunaan serta cara kerja dari kedua kunci tersebut.

Anda mungkin juga menyukai