Skip to content Skip to sidebar Skip to footer

Widget Atas Posting

Menampilkan Data multi Table di Codeigniter 4 dengan Join



Pada pembuatan sebuah aplikasi pastinya kita tidak lepas yang namanya database dan tabel. Tapi terkadang kita di tuntut untuk menampilkan sebuah data dari tabel satu bergabung dengan tabel dua atau lainnya bisa juga disebut dengan relasi antar tabel.

Pada kesempatan kali ini admin akan membahas sebuah tutorial bagaimana cara menampilkan beberapa data ditabel yang berbeda dengan join di codeigniter 4. Jika kita membuat join data, maka dalam structure tabel satu dengan tabel yang lain mempunyai data primary key yang terhubung dengan foreign key yang nantinya akan membentuk sebuah relasi tabel.

Membuat Database

Untuk membuat database di mysql maka ketikan perintah berikut ini :

create database multi_table;

Jika kalian belum mengerti tentang pembuatan database mysql silahkan baca : Belajar Membuat Database Mysql

Setelah database dibuat saatnya kita membuat beberapa tabel beserta isi datanya seperti berikut ini:


Tabel Jurusan



Tabel Kelas


Tabel Siswa


Instalasi Codeighniter 4

Hal pertama yang dilakukan untuk memulai aplikasi yaitu installasi aplikasinya terlebih dahulu, Jika belum paham tentang cara instalasi Codeigniter 4 bisa baca artikel Cara Installasi Codeigniter 4

Membuat Koneksi Database

Membuat Konfigurasi database di codeigniter 4 ada dua cara yaitu cara pertama dengan menggunakan file env (rename menjadi .env) yang ada di folder root project atau dengan file Database.php yang ada di folder app/config dan kali ini admin menggunakan file env untuk koneksi database nya .

 database.default.hostname = localhost
 database.default.database = ci4_multiTable
 database.default.username = root
 database.default.password =
 database.default.DBDriver = MySQLi

Temukan kode seperti diatas kemudian edit hilangkan tanda pagarnya lalu sesuaikan dengan host,username,password dan nama database kalian kemudian save as dengan nama .env jangan lupa juga ubah juga CI_ENVIRONMENT = development 

Membuat Model

Buatlah file baru dengan nama Models_siswa.php simpan di folder app/Models kemudian ketikan kode berikut ini :

<?php namespace App\Models;
use CodeIgniter\Model;
 
class Models_siswa extends Model
{
     
    public function getSiswa()
    {
         return $this->db->table('siswa')
         ->join('kelas','kelas.IDKelas=siswa.IDKelas')
         ->join('jurusan', 'jurusan.IDJurusan=siswa.IDJurusan')
         ->get()->getResultArray();  
    }
 }

Dari kode diatas kita membuat join tiga tabel dengan konsep relasi. yang nantinya akan dipanggil oleh file controller untuk diteruskan ke file view.
Jika belum paham tentang join bisa baca artikel Mengenal Fungsi Join di Tabel MySQL

Membuat Controller

Kita buat file baru dengan nama Siswa.php kemudian simpan di folder app/Controllers lalu masukan kode berikut ini :

<?php namespace App\Controllers;
 
use CodeIgniter\Controller;
use App\Models\Models_siswa;
 
class Siswa extends BaseController
{
    public function index()
    {
        $model = new Models_siswa();
        $data['siswa'] = $model->getSiswa();
        echo view('view_siswa',$data);
    }
}

Dari kode diatas terdapat beberapa kode yang berfungsi untuk memanggil function use (App\Models\Models_siswa; | $model = new Models_siswa(); | $data['siswa'] = $model->getSiswa();) yang ada di model kemudian akan diteruskan ke file views (echo view('view_siswa',$data);).

Membuat View

Buat file baru dengan nama view_siswa.php simpan di folder app/Views kemudian masukan beberapa kode dibawah ini :

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Menampilkan Data Multi Join Tabel</title>
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha/css/bootstrap.css" rel="stylesheet"> 
</head>
<body style="width: 70%; margin: 0 auto; padding-top: 30px;">
<div class="row">
        <div class="col-lg-12 margin-tb">
            <div class="pull-left">
                <h2>Menampilkan Data Multi Tabel </h2>
            </div>
        </div>
    </div>
    <hr>
    <div class="row">
        <div class="col-lg-12 margin-tb">
<table class="table table-bordered">
        <tr>
            <th>No</th>
            <th>Nama Siswa</th>
            <th>Kelas</th>
            <th>Jurusan</th>
        </tr>
        <?php foreach($siswa as $row):?>
        <tr>
        <td><?=$row['IDSiswa'];?></td>
            <td><?=$row['NamaSiswa'];?></td>
            <td><?=$row['NamaKelas'];?></td>
            <td><?=$row['NamaJurusan'];?></td>
        </tr>
        <?php endforeach;?>
    </table>
</div>
</div>
</body>
</html>

Kemudian kita jalankan projectnya dengan cara mengetikan perintah php spark serve di terminal kemudian ketikan alamat http://localhost:8080/siswa di web browser kalian maka tampilannya akan seperti berikut ini :

Kesimpulan

Dari pembahasan diatas kita sudah bisa menampilkan beberapa tabel yang terelasi dengan menggunakan framework codeigniter 4, Tutorial diatas hanya menggunakan relasi tiga tabel jika kita ingin membuat relasi lebih dari tiga maupun kurang dari tiga tabel kita bisa menyesuaikannya, 

Sedikit tutorial cara menampilkan data multi tabel dengan codeighniter 4 semoga bermanfaat.

18 comments for "Menampilkan Data multi Table di Codeigniter 4 dengan Join"

  1. muncul ini Call to a member function table() on null

    ReplyDelete
    Replies
    1. bisa di lihat lagi untuk fungsi kelas tablenya om di cek lagi skripnya . Apakah pemanggilan file modelnya sudah berhasil belum . .

      Delete
  2. Ingin mengambil data yang memiliki id siswa 12 gitu gimana?

    ReplyDelete
    Replies
    1. Maksudnya gimana mas ?
      kalao jumlah ID siswanya 12 tinggal type data dalam tabel jumlahnya di ambah mas

      Delete
  3. Maaf mau nanya,koq sy cb msh eror ya?errornya $namajurusan di view

    ReplyDelete
    Replies
    1. Di cek lagi mas apakah field yg ada di database dengan yg di ketik di view sudah sama ?

      Delete
  4. Bang Kalo tutorial crud multi table ada?

    ReplyDelete
  5. Halo bang kalau untuk insert data multi table kira-kira seperti apa bang?

    ReplyDelete
  6. cara nambahi where deleted_at IS NULL gmn ya?
    ->where('siswa.deleted_at IS NULL', NULL);

    gitu kah?

    ReplyDelete
  7. Skripsine di kerjakan jangan lupa waktu bimbingan siap kan metal buat revisi.

    ReplyDelete
  8. kalo mau select beberapa kolom aja gimana ya?
    terus kalo table1 ada kolom "jumlah" terus tble 2 juga kolom "jumlah", itu gimana cara select datanya, jadi nya ambigu, CI nya bingung mau select kolom "jumlah" yg mana?
    mohon bantuan nya terimakasih

    ReplyDelete
    Replies
    1. select tabel1.jumlah, tabel2.jumlah from tabel1, tabel2

      Delete
  9. kalo pake serverside multiple join table gimana bos?

    ReplyDelete
  10. join table dengan pagination gimana?

    ReplyDelete
  11. Makasih untuk scriptnya.. salam dari timor Leste

    ReplyDelete
  12. Pak boleh tidak artikel ini di modifikasi menggunakan paginate ya, saya di CI 4 mentok untuk paging jika menggunakan lebih dari 1 tabel. kalau 1 tabel tidak masalah. di CI 3 juga oke cuma di CI 4 ini mentok saya, mohon berkenan bantu ya. terima kasih

    ReplyDelete
  13. show blank result mas, pas di buka index kosong

    ReplyDelete