NIM : 1815025029
Tugas Praktikum A2 Mata Kuliah Basis Data
Ada ketentuan yang harus diperhatikan ketika field yang menjadi primary key yakni :
a. Data tidak boleh sama atau ganda (unik)
b. Data tidak boleh bernilai null
Contoh sederhana penerapan primary key adalah seperti contoh diatas adalah id.
Sedagkan Foreign key yaitu satu atribute (atau satu set atribute) yang melengkapi satu
relationship (hubungan) yang menunjukkan ke induknya. Foreign key berguna untuk
mendefinisikan kolom-kolom pada suatu tabel yang nilainya mengacu ke tabel lain,jadi
kolom foreign key nilainya harus diambil dari nilai kolom pada tabel lain.
Dari namanya kita bisa mengira bahwa foreign (tamu) key, merupakan suatu atribut
untuk melengkapi hubungan yang menunjukan ke induknya, itu artinya field pada tabel
merupakan kunci tamu dari tabel lain. Dan biasanya penggunaan foreign key akan sangat
dibutuhkan ketikan kita menemukan banyak tabel dan ingin menghubungkan satu tabel
dengan tabel lainnya.
2. Jelaskan apa yang dimaksud dengan “Relasi” yang ada didalam basis data?
Jawab :
Secara umum. relasi adalah hubungan antara tabel yang mempresentasikan hubungan
antar objek di dunia nyata. Relasi merupakan hubungan yang terjadi pada suatu tabel
dengan lainnya yang mempresentasikan hubungan antar objek di dunia nyata dan
berfungsi untuk mengatur mengatur operasi suatu database.
Jadi relasi merupakan penghubung antar tabel satu dengan tabel lainnya yang mana tabel
tersebut memiliki data yang berhubungan di dunia nyata untuk mengatur operasi suatu
database. Pada sebuah database, relasi dihubungkan dengan cara memberikan satu kolom
dengan value yang sama dengan tabel yang berhubungan, ini disebut foreign key. Foreign
key sendiri merupakan sebuah kolom yang hanya bisa menyimpan data yang sama
dengan primary key yang berhubungan dengan tabel tersebut. Artinya foreign key hanya
bisa diisi dengan data yang sudah ada pada primary key.
Pada gambar diatas adalah contoh relasi one to one. Dimana relasi tersebut terdapat pada
tabel pengguna dan tabel login_pengguna. Dimana pengguna hanya memiliki satu akun
login_pengguna. Dan satu akun login hanya untuk satu pengguna saja. Pada relasi
tersebut, terdapat primary key id_pengguna pada tabel pengguna yang berelasi dengan
id_pengguna.
Pada tabel login_pengguna, id_pengguna adalah primary key sekaligus foreign key dari
tabel pengguna. Hal itu karena primary key merupakan kolom spesial dimana tiap baris
memiliki isi dari primary key yang berbeda - beda. Sedangkan foreign key merupakan
penghubung antara tabel satu dan tabel dua. Dan foreign key harus sama isinya dengan
primary key dari tabel pengguna. Dengan kata lain, id_pengguna dari tabel login
pengguna harus sama isinya dengan id_pengguna dari tabel pengguna dan id_pengguna
pada login_pengguna tidak bisa menyimpan data yang sama lebih dari satu kali.
Untuk kasus one to one sendiri, sebenarnya kita hanya perlu menentukan tabel lemah.
Dimana tabel lemah tersebut tidak berpengaruh pada tabel kuat. Sementara tabel lemah
sangat berpengaruh pada tabel kuat. Seperti contoh dari relasi diatas. tabel pengguna
adalah tabel kuat. Karena untuk mengisi tabel login_pengguna harus menjadi pengguna
terlebih dahulu. Sementara tabel login pengguna adalah tabel lemah, karena jika data
yang berelasi dari tabel tersebut dihapus atau tidak ada, namun di tabel pengguna ada.
Maka artinya dia adalah pengguna yang belum memiliki akun untuk login saja.
Dalam kasus lain, kita sebut saja karyawan dan rekening. Setiap karyawan pasti memiliki
rekening satu dan satu rekening hanya dimiliki karyawan. Jika dia bukan karyawan, maka
dia tidak punya rekening. Namun jika dia karyawan dan tidak ada rekening, artinya dia
termasuk karyawan yang belum mempunyai rekening. Tentu saja kasus ini terlepas dari
semua orang bisa menjadi rekening tanpa menjadi karyawan.
Pada kasus one to many ini. Kita perlu untuk memberikan akses pada satu tabel kuat
dimata satu tabel tersebut haruslah terisi terlebih dahulu agar data pada tabel kedua bisa
menyesuaikan data dari tabel pertama. Contohnya relasi tabel diatas. Jika tidak ada
dosen, maka tidak ada matkul yang diampu. Sedangkan jika matkul tidak ada, dosen bisa
mengampu mata kuliah yang lain.
Dalam kasus lain, Mahasiswa dan kelas. Setiap satu kelas bisa diisi oleh banyak
mahasiswa, namun setiap mahasiswa hanya memiliki satu kelas. Disini bisa kita ambil
kesimpulan jika mahasiswa tidak ada, maka dia tidak ada di kelas itu dan mahasiswa lain
yang terdapat pada kelas tersebut. namun jika kelas tidak ada, maka mahasiswa tidak ada
yang berada di kelas tersebut karena kelas tersebut tidak ada.
Relasi many to many adalah keadaan dimana satu baris dari tabel satu dapat berhubungan
dengan tabel kedua. Dan satu baris dari tabel kedua dapat berhubungan dengan banyak
baris dari tabel pertama. Artinya kedua tabel masing - masing dapat mengakses banyak
data dari tiap tabel yang lain. Dalam hal ini, kita membutuhkan tabel ketiga sebagai
perantara tabel satu dan tabel dua sebagai tempat untuk menyimpan foreign key dari
masing - masing tabel. Disini saya memberikan contoh barang dan penjualan. Tentu saja
setiap satu jenis barang bisa dijual berkali - kali. Dan satu penjualan bisa mencangkup
banyak barang.
Contoh relasi many to many
Pada gambar diatas, terdapat tiga tabel. Yaitu tabel penjualan, barang, dan
detail_penjualan. Barang dan penjualan adalah dua tabel yang berelasi many to many.
Akhirnya menghasilkan satu tabel yaitu tabel detail_penjualan. Pada tabel
detail_penjualan, terdapat foreign key dari tabel penjualan dan tabel barang namu tidak
terdapat primary key karena pada tabel ini tidak dibutuhkan primary key. Sehingga data
yang terdapat pada tabel detail_penjualan ini sangat bergantung pada tabel barang dan
penjualan.
Untuk kasus many to many, kita membutuhkan tabel ketiga sebagai tempat penyimpanan
foreign key karena foreign key tersebut bisa menyimpan data yang sama berkali - kali.
Artinya pada tabel detail penjualan dapat menyimpan id_penjualan yang sama berkali -
kali dan id_barang yang sama berkali - kali juga. Dengan begitu kedua relasi tersebut bisa
berhubungan berkali - kali tanpa perlu repot - repot.
Pada kasus lain, yaitu perpustakaan. Terdapat pengunjung yang dapat meminjam banyak
jenis buku. Sedangkan buku dapat dipinjam oleh banyak pengunjung. Artinya harus ada
satu tabel baru yaitu tabel peminjaman yang mana tabel tersebut menyimpan data buku
dan pengunjung yang saling behubungan.
Dari kasus diatas dapat diambil kesimpulan bahwa relasi many to many dapat terjadi
ketika data yang berhubungan adalah data subjek dan objek. Dimana subjeknya adalah
manusia, objeknya adalah barang atau tempat atau benda mati lainnya dengan syarat
objek tersebut tersedia lebih dari satu buah. Jika kita belajar bahasa indonesia, ketika ada
subjek dan objek, untuk menggabungkan keduanya membutuhkan predikat.