Sunday, July 8, 2012

Tutorial Select Multi Table Pada MySQL (Studi Kasus Perpustakaan)

Mungkin kita sudah bisa membuat sintaks query untuk memanipulasi data dari satu table database. Namun sering sekali kita (saya sendiri juga sering) mengalami masalah ketika kita harus mengambil data dari beberapa table database yang berbeda. Nah disini kita misalkan kita memiliki database “perpustakaan” yang memiliki 3 buah table. Keempat tabeli itu adalah table anggota, buku, dan pinjam. Adapaun table-tabel ini memiliki struktur dan data seperti dibawah ini :

Tabel Anggota :


  1.  
  2. CREATE TABLE IF NOT EXISTS `anggota` (
  3. `id_anggota` int(11) NOT NULL AUTO_INCREMENT,
  4. `nama_anggota` varchar(25) NOT NULL,
  5. `alamat_anggota` varchar(100) NOT NULL,
  6. PRIMARY KEY (`id_anggota`)
  7. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
  8.  
  9. --
  10. -- Dumping data for table `anggota`
  11. --
  12.  
  13. INSERT INTO `anggota` (`id_anggota`, `nama_anggota`, `alamat_anggota`) VALUES
  14. (1, 'Daud Edison Tarigan', 'Padang Bulan, Medan'),
  15. (2, 'Andi Tarigan', 'Kabupaten Karo, Sumatera Utara');
  16.  


Tabel Buku:

  1.  
  2. CREATE TABLE IF NOT EXISTS `buku` (
  3. `id_buku` int(10) NOT NULL AUTO_INCREMENT,
  4. `judul_buku` varchar(60) NOT NULL,
  5. `penulis_buku` varchar(50) NOT NULL,
  6. `penerbit_buku` varchar(40) NOT NULL,
  7. PRIMARY KEY (`id_buku`)
  8. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
  9.  
  10. --
  11. -- Dumping data for table `buku`
  12. --
  13.  
  14. INSERT INTO `buku` (`id_buku`, `judul_buku`, `penulis_buku`, `penerbit_buku`) VALUES
  15. (1, 'Membangun SMS Gateway Berbasis Web dengan CodeIgniter', 'Daud Edison Tarigan', 'Lokomedia'),
  16. (2, 'Membangun Aplikasi Perpustakaan Berbasis Web dengan CodeIgni', 'Daud Edison Tarigan', 'Lokomedia');
  17.  



Tabel Pinjam

  1.  
  2. CREATE TABLE IF NOT EXISTS `pinjam` (
  3. `id_pinjam` int(10) NOT NULL AUTO_INCREMENT,
  4. `id_anggota` int(10) NOT NULL,
  5. `id_buku` int(10) NOT NULL,
  6. `tgl_pinjam` date NOT NULL,
  7. PRIMARY KEY (`id_pinjam`)
  8. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
  9.  
  10. --
  11. -- Dumping data for table `pinjam`
  12. --
  13.  
  14. INSERT INTO `pinjam` (`id_pinjam`, `id_anggota`, `id_buku`, `tgl_pinjam`) VALUES
  15. (1, 1, 1, '2012-03-14'),
  16. (2, 2, 2, '2012-03-15');
  17.  


Nah dari tabeli diatas semua dapat kita lihat bahwa ada relasi antara table “pinjam” dengan table “anggota” dimana keduanya dihubungkan oleh forigen key yaitu “id_anggota”. Demikian juga antara table “pinjam” dengan table “buku” dihubungkan oleh forigen key yaitu “id_buku”. Nah relasi antar table inilah yang akan kita gunakan sebagai kunci kita dalam memanipulasi data dari ketiga table itu.


Misalkan kita ingin mengambil data peminjamam buku lengkap dengan nama peminjam dan buku yang di pinjam, kita dapat menggunakan query berikut ini :
  1.  
  2. SELECT
  3. t1.`id_pinjam`,
  4. t2.`nama_anggota`,
  5. t2.`alamat_anggota`,
  6. t3.`judul_buku`,
  7. t3.`penulis_buku`,
  8. t3.`penerbit_buku`
  9. FROM
  10. `pinjam` t1,
  11. `anggota` t2,
  12. `buku` t3
  13. WHERE
  14. t1.`id_anggota`=t2.`id_anggota`
  15. and t1.`id_buku`= t3.`id_buku`
  16.  



Dengan sintaks query diatas anda akan menghasilkan data seperti gambar di bawah ini :

aplikasi View pada MySQL


Mudah bukan?? Sampai disini dulu tutorial kali ini, semoga membantu rekan-rekan semua…. Dan jika anda tidak keberatan, silahkan di share artikel ini ke teman-teman Facebook atan Twitter anda, mana tau ada teman lain yang memerlukan artikel ini. Untuk men-share-kan artikel ini cukup mudah, anda cukup komentari artikel ini dengan ID Facebook anda atau tekan Tombol Like atau SHARE facebook di bawah ini.

Sumber : http://aplikasiphp.com


Anda ingin mencari refrensi dan contoh program lengkap ? Kami ada. Sekarang Anda bisa mencari Source Code PHP MySQL di situs ini : http://www.bunafitkomputer.com. Koleksi program lengkap di sana, proyek PHP dan MySQL, juga jQuery dan Framework. Bukunya juga ada.

No comments:

Post a Comment