Tampilan
Pertemuan 7: Implementasi Relasi ke Tabel
Tujuan pembelajaran
Setelah pertemuan ini, Anda mampu:
- mengubah relasi one to one menjadi tabel;
- mengubah relasi one to many atau many to one menjadi tabel;
- mengubah relasi many to many menjadi tabel relasi;
- memilih cara implementasi yang tepat dengan tabel keputusan.
Peta materi
1. Menambah entity Dompet (relasi one to one)
Sebelum masuk implementasi, kita tambahkan satu entity ke toko online: Dompet. Aturannya, satu pembeli hanya memiliki satu dompet, dan satu dompet hanya dimiliki satu pembeli. Dompet punya key Email dan atribut Saldo.
2. Implementasi One to One
Ada dua cara.
| Cara | Kapan dipakai | Hasil |
|---|---|---|
| Key yang sama | Kedua entity dipastikan memakai attribute key bernilai sama | Email pembeli dan Email dompet dipakai saling mengacu |
| Foreign key unik | Key kedua entity bisa berbeda | Tambah foreign key di entity yang lebih lemah, dan foreign key itu harus unique |
Contoh cara pertama:
| pembeli.email PK | nama |
|---|---|
| budi@mail.com | Budi |
| dompet.email PK FK | saldo |
|---|---|
| budi@mail.com | 150000 |
Contoh cara kedua: tabel dompet punya key sendiri kode_dompet, ditambah kolom email_pembeli yang diberi aturan unique agar tidak ada dua dompet milik satu pembeli.
3. Implementasi One to Many atau Many to One
Bergantung pada ada tidaknya atribut deskriptif.
Tanpa atribut deskriptif. Tidak perlu tabel baru. Cukup tambahkan foreign key di tabel sisi Many.
Contoh relasi Menjual (satu penjual, banyak barang):
| sku PK | nama | harga | berat | email_penjual FK |
|---|---|---|---|---|
| BRG001 | Sepatu Lari | 350000 | 800 | toko@galeri.com |
| BRG002 | Kaos Olahraga | 90000 | 200 | toko@galeri.com |
| BRG003 | Botol Minum | 45000 | 350 | toko@botol.com |
Barang adalah sisi Many (banyak barang bagi satu penjual), jadi kolom email_penjual diletakkan di tabel barang.
Dengan atribut deskriptif. Buat tabel baru untuk relationship itu, sama seperti many to many.
4. Implementasi Many to Many
Relasi many to many selalu menjadi tabel relasi yang berisi foreign key dari semua entity yang berhubungan, ditambah atribut deskriptif jika ada.
Contoh relasi Membeli:
| email_pembeli FK | sku_barang FK | jumlah |
|---|---|---|
| budi@mail.com | BRG001 | 1 |
| budi@mail.com | BRG002 | 3 |
| sari@mail.com | BRG001 | 2 |
Mengapa tidak cukup satu kolom?
Jika "barang yang dibeli" ditaruh sebagai satu kolom di tabel pembeli, kolom itu harus memuat banyak nilai sekaligus (misalnya BRG001, BRG002). Itu melanggar prinsip rapi basis data dan akan dibahas lagi pada normalisasi. Tabel relasi menyelesaikannya dengan satu baris untuk setiap pasangan.
5. Tabel keputusan
| Kardinalitas | Implementasi |
|---|---|
| 1-1 | Key sama di kedua tabel, atau foreign key unik di entity yang lebih lemah |
| 1-N / N-1 tanpa atribut | Foreign key di tabel sisi Many |
| 1-N / N-1 dengan atribut | Tabel relasi baru |
| N-N | Tabel relasi baru berisi semua foreign key |
6. Hasil akhir tabel Toko Online
Lima tabel: pembeli, dompet, penjual, barang, dan membeli.
Latihan
Implementasikan kasus Warung Kopi dari Pertemuan 6 menjadi daftar tabel lengkap. Beri tanda primary key dan foreign key pada setiap kolom.
Contoh jawaban
pelanggan(no_hp PK, nama, alamat)menu(kode_menu PK, nama, harga, kategori)karyawan(id_karyawan PK, nama, jabatan)memesan(no_hp_pelanggan FK, kode_menu FK, jumlah, waktu_pesan): tabel relasi karena many to many- Relasi melayani (one to many tanpa atribut): tambahkan
id_karyawanFK di tabel sisi Many, misalnya tabelpelangganatau tabel pesanan, sesuai aturan yang Anda tetapkan.
Kuis cepat
1. Relasi many to many diimplementasikan dengan...
2. Relasi one to many tanpa atribut deskriptif cukup diimplementasikan dengan...
3. Pada relasi one to one dengan foreign key, foreign key tersebut harus...
4. Foreign key pada relasi one to one diletakkan di...
Terjawab 0 dari 4 soal
Rangkuman
Yang harus diingat
- 1-1: pakai key yang sama, atau foreign key unik di entity yang lebih lemah.
- 1-N: cukup foreign key di sisi Many, kecuali ada atribut deskriptif (maka tabel baru).
- N-N: wajib tabel relasi dengan foreign key dari semua entity.
| Istilah | Arti |
|---|---|
| Tabel relasi | Tabel khusus untuk menyimpan sebuah relationship |
| Unique | Aturan agar nilai kolom tidak boleh kembar |
| Entity lemah | Entity yang bergantung pada entity lain |
Tugas mandiri
Ambil ERD Warung Kopi final Anda, lalu buat tabelnya lengkap dengan 3 baris data contoh pada setiap tabel, termasuk tabel relasinya. Persiapkan diri untuk UTS.
Progres tersimpan di browser Anda dan tampil di halaman beranda.