Langsung ke konten utama

[BAB 6] Basis Data 2 - Multiple Relations



1.       Judul Materi

Multiple Relations

2.       Kemampuan Akhir Tahap Pembelajaran

Mahasiswa mampu memaksimalkan penggunaan query untuk multiple relations.

3.       Alat dan Bahan

Alat dan bahan yang diperlukan adalah: PC/Laptop, XAMPP, PHPMyAdmin, CommandPrompt atau Terminal.

4.       Teori

Pada pertemuan sebelumnya, mahasiswa belajar untuk memaksimalkan penggunaan query dengan set operations. Pada pertemuan ini mahasiswa diajarkan untuk memaksimalkan query untuk kasus multiple relations. Pada bab multiple relations, terdiri atas DDL untuk multiple relations, DML untuk multiple relations dan SELECT dengan klausa WHERE.

5.       Materi

Pada pertemuan sebelumnya, telah dibangun dan diisi tabel barang dan tabel barang_toko. Pada pertemuan kali ini, kedua tabel tersebut akan dihapus terlebih dahulu karena kedua tabel tersebut tidak dibangun atas dasar database relasional:
Kemudian kita akan rancang database relasional sederhana untuk kasus
perpustakaan, seperti yang digambarkan pada ERD berikut:
Gambar 6.1 ERD untuk database penjualansepatusendal

6.1          DDL untuk Multiple Relations

Perhatikan pada Gambar 6.1, entitas barang dan entitas barang_toko memiliki atribut foreign key (FK) di dalamnya. Sedangkan entitas lainnya, penerbit dan karyawan tidak memiliki FK. Anda bisa membuat tabel pemiliktoko dan karyawan terlebih dahulu.
Gambar 6.2 Pembangunan tabel pemiliktoko kasus multiple relations




Gambar 6.3 Pembangunan tabel karyawan kasus multiple relations

Selanjutnya dibangunlah tabel-tabel yang terdapat foreign key di dalamnya. Pertama akan dibangun tabel barang. Di dalam tabel tersebut terdapat foreign key id_pemiliktoko yang mana referensinya adalah id_pemiliktoko pada tabel pemiliktoko. Berikut query yang digunakan:
Gambar 6.4 Pembangunan tabel barang kasus multiple relation

CONSTRAINT berarti menambahkan batasan berupa Foreign Key yang pada Gambar 6.4 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 CONSTRAINT 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 barang_toko. Kode pada barang_toko direncanakan merupakan gabungan dari id_barang dan id_karyawan. Misalkan untuk hubungan barang dengan id_barang = 5, dan karyawan dengan id_karyawan = 15, maka id pada barang_toko adalah BP_5_15. Berarti tipe data dari id adalah char (atau varchar) dengan length sebesar 12 (dengan asumsi panjang karakter maksimal id_barang adalah 8 atau sebanyak 9999 barang dan panjang karakter maksimal id_karyawan adalah 8 atau sebanyak 9999 karyawan).
Gambar 6.5 Pembangunan tabel barang_toko kasus multiple relation

6.2          DML untuk Multiple Relation

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 pemiliktoko masih kosong. Sekarang kita akan

mengisikan tabel barang dimana terdapat FK id_pemiliktoko. Kita akan isikan
id_pemiliktoko dengan nilai 1:
Gambar 6.6 Peringatan kesalahan diberikan karena batasan FK

Seperti terlihat pada gambar di atas, akan keluar pesan kesalahan akibat nilai id_pemiliktoko yang dimasukkan pada tabel barang tidak ada pada tabel pemiliktoko (tabel master).
Lain halnya jika Anda menginputkan nilai NULL untuk id_pemiliktoko, walaupun pada tabel pemiliktoko belum memiliki data, tidak menjadi masalah.
Gambar 6.7 Penginputan dengan FK bernilai NULL

Langkah yang tepat adalah dengan mengisikan terlebih dahulu tabel masternya. Di sini akan dinputkan data-data untuk tabel pemiliktoko:
Gambar 6.8 Penginputan tabel pemiliktoko

Pada Gambar 6.7 nilai id_ pemiliktoko adalah NULL. Nilai tersebut dapat diubah dengan nilai referensi (Primary Key) pada tabel pemiliktoko.

Gambar 6.9 Mengupdate nilai FK pada tabel barang

Selanjutnya kita selesaikan penginputan untuk tabel-tabel lainnya.
Gambar 6.10 Penginputan tabel karyawan

Gambar 6.11 Penginputan tabel barang

Gambar 6.12 Penginputan tabel barang_toko

6.3          SELECT dengan Klausa Where

Jika melihat tampilan tabel barang dan tabel barang_toko seperti pada Gambar 6.11 dan Gambar 6.12, cukup tidak user friendly karena pengguna hanya mendapatkan informasi nomor ID untuk pemiliktoko dan karyawan barang. Hal itu terjadi karena untuk menampilkan data pada tabel barang dan barang_toko menggunakan bahasa SQL standar. Agar dapat menampilkan nama penerbit di setiap daftar barang, kita bisa menghubungkan antara id_pemiliktoko pada tabel barang (sebagai FK) dengan id_pemiliktoko pada tabel pemiliktoko (sebagai PK). Tapi sebelumnya harus ditentukan terlebih dahulu atribut apa saja yang ingin ditampilkan. Misalkan kita ingin menampilkan atribut id_barang, nama_barang, pemiliktoko, harga_barang dan jumlah, maka query yang dapat digunakan adalah sebagai berikut:
Gambar 6.13 Menampilkan data barang dan pemiliktoko

Perhatikan pada Gambar 6.13 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 id_pemiliktoko pada tabel barang dan id_pemiliktoko pada tabel pemiliktoko. 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 barang dan karyawan barang.
Query yang digunakan adalah sebagai berikut:
Gambar 6.14 Menampilkan nama_barang dan nama-nama karyawan



Komentar

Postingan populer dari blog ini

Graf (Graph) dan Pohon (Tree) - Algoritma Pemrograman 2

Graf ( Graph ) dan Pohon (Tree) pada C++ 1). Definisi Graph Graf adalah kumpulan noktah (simpul) di dalam bidang dua dimensi yang dihubungkan dengan sekumpulan garis (sisi). Graph dapat digunakan untuk merepresentasikan objek-objek diskrit dan hubungan antara objek-objek tersebut. Representasi visual dari graph adalah dengan menyatakan objek sebagai noktah, bulatan atau titik ( Vertex ), sedangkan hubungan antara objek dinyatakan dengan garis ( Edge ). G = (V, E) Dimana : G = Graph V = Simpul atau Vertex , atau Node, atau Titik E = Busur atau Edge , atau arc Graf merupakan suatu cabang ilmu yang memiliki banyak terapan. Banyak sekali struktur yang bisa direpresentasikan dengan graf, dan banyak masalah yang bisa diselesaikan dengan bantuan graf. Seringkali graf digunakan untuk merepresentasikan suaru jaringan. Misalkan jaringan jalan raya dimodelkan graf dengan kota sebagai simpul ( vertex/node ) dan jalan yang menghubungkan setiap kotanya sebagai sisi ( edge ) y...

Akses File - Algoritma Pemrograman

AKSES FILE PADA C++ KATA PENGANTAR Puji dan syukur penulis panjatkan kehadirat Allah SWT. Karena dengan Rahmat dan Karunia-Nya, penulis dapat menyelesaikan pembuatan artikel dengan judul Akses File hingga selesai . Dengan diberikannya tugas pembuatan artikel di sebuah blog, mahasiswa diharapkan mampu mempelajari lebih banyak lagi materi mengenai Akses File dan mampu menyelesaikan tugas mata kuliah algoritma pemrograman yang diberikan oleh dosen . Semoga dengan pembuatan artikel ini dapat bermanfaat khususnya bagi penulis selaku mahasiswa dan umumnya bagi kita semua. Selanjutnya penulis, merasa bahwa artikel Akses File ini jauh dari kesempurnaan. Oleh sebab itu, penulis mohon maaf sebesar-besarnya apabila dalam penyusunan artikel ini terdapat banyak kesalahan, baik dalam segi penulisan, pembahasan, dan penyusunannya yang kurang rapi. Maka dari itu besar harapan penulis semoga artikel ini dapat bermanfaat bagi penulis dan orang lain. 8 Desember 2018 BAB...

RELASI - MATEMATIKA DISKRIT

TI Politala Matdis 1B KATA PENGANTAR Puji dan syukur penulis panjatkan kehadirat Allah SWT. Karena dengan Rahmat dan Karunia-Nya, penulis dapat menyelesaikan pembuatan artikel dengan judul “Relasi” hingga selesai . Dengan diberikannya tugas pembuatan artikel di sebuah blog, mahasiswa diharapkan mampu mempelajari lebih banyak lagi materi mengenai relasi, dan mampu menyelesaikan tugas mata kuliah matematika diskrit yang diberikan oleh dosen . Semoga dengan pembuatan artikel ini dapat bermanfaat khususnya bagi penulis selaku mahasiswa dan umumnya bagi kita semua. Selanjutnya penulis, merasa bahwa artikel relasi ini jauh dari kesempurnaan. Oleh sebab itu, penulis mohon maaf sebesar-besarnya apabila dalam penyusunan artikel ini terdapat banyak kesalahan, baik dalam segi penulisan, pembahasan, dan penyusunannya yang kurang rapi. Maka dari itu besar harapan penulis semoga artikel ini dapat bermanfaat bagi penulis dan orang lain. 13 Oktober 2018     ...