Home » Codeigniter 4 » Cara Membuat Join di Codeigniter 4

Cara Membuat Join di Codeigniter 4

Published by Ade Kurniawan on

join codeigniter 4

Tutorial ini membahas cara membuat join di codeigniter 4. Untuk membuat join ini, hal – hal yang harus disediakan terlebih dahulu adalah menyiapkan dan konfigurasi database, membuat file model, controller dan view.

Menyiapkan database

Contoh join ini menggunakan database yang telah kita buat pada join codeigniter 3. Teman-teman bisa menggunakan kembali tabel di database tersebut. Tabel yang akan dijoinkan disini adalah tabel anggota, simpanan dan unit.

Konfigurasi database

Untuk konfigurasi database kita lakukan dengan menuliskan script di bawah ini pada file .env

#--------------------------------------------------------------------
# DATABASE
#--------------------------------------------------------------------

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

Script di atas adalah untuk koneksi ke database yang telah kita miliki, disini kita memiliki nama database indonetsource.

Langkah selanjutnya adalah menyelesaikan join, silahkan ikuti langkah di bawah ini:

Membuat Join 2 Tabel di Codeiniter 4

Gambar di bawah ini adalah bentuk output dari join yang akan kita buat. data yang dijoinkan adalah data tabel anggota dan tabel simpanan.

join 2 tabel codeigniter 4
join 2 tabel codeigniter 4

Teman-teman dapat mengisi terlebih dahulu data di tabel anggota dan tabel simpanan agar bisa menampilkan data join seperti gambar di atas.

Selanjutnya Untuk membuat join 2 tabel silahkan buat file di awah ini pada project ci 4 teman-teman.

1. Model

Siapkan file model seperti di bawah ini

SimpnanModel.php

<?php
namespace App\Models; 
use CodeIgniter\Model;

class SimpananModel extends Model
{    
    public function getSimpanan()
    {             
        $query =  $this->db->table('simpanan')
         ->join('anggota', 'simpanan.id_anggota = anggota.id_anggota')
         ->get();  
        return $query;
    }
}

2. Controller

Simpanan.php

<?php
namespace App\Controllers;
use App\Models\SimpananModel;

class Simpanan extends BaseController
{
   protected $modelsimpanan;
   public function __construct()
	{		
      $this->modelsimpanan = new SimpananModel();	
      
	}

	public function index()
	{	
      $data_simpanan =  $this->modelsimpanan->getSimpanan()->getResult();
      $data = array(
          'title' => 'Data Simpanan',
          'content' => $data_simpanan         
         );      
      echo view('view_simpanan',$data);
	}

}

3. View

Untuk view kita menambahkan template. Silahkan teman-teman buat folder template terlebih dahulu di Views.

Buat file template.php di dalam folder template. Script yang digunakan untuk membuat template.php adalah sebagai berikut:

<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
    <title>Sistem Informasi Indonetsource</title>
  </head>
  <body>
    <nav class="navbar navbar-expand-lg navbar-light bg-light">
    <a class="navbar-brand" href="#">Indonetsource</a>
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbarSupportedContent">
        <ul class="navbar-nav mr-auto">
        <li class="nav-item active">
            <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>        
        </li>                 
        </ul>
        <form class="form-inline my-2 my-lg-0">
        <input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
        <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
        </form>
    </div>
    </nav>
    <?= $this->renderSection('isi')?>
    <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script>
  </body>
</html>

lanjutkan dengan membuat file view_simpanan.php di folder Views.

view_simpanan.php

<?php $this->extend('template/template');?>
<?php $this->section('isi');?>
<div class="container">
    <div class="card mt-3">  
        <div class="card-header">
            <b><?= $title ?></b>
        </div>
        <div class="card-body">
            <table class="table table-bordered table-sm col-md-6">
                <thead class="thead-light">
                <tr>
                    <th>Id</th>
                    <th>Nama</th>
                    <th>Jumlah Simpanan</th>
                    <th>Jenis Simpanan</th>
                    <th>Tanggal</th>            
                </tr>
                </thead>
                  <?php foreach ($content as $key): ?>
                <tr>
                    <td><?php echo $key->id_anggota ?></td>
                    <td><?php echo $key->nama ?></td>
                    <td><?php echo $key->jenis_simpanan ?></td>
                    <td><?php echo $key->jumlah_simpanan ?></td>
                    <td><?php echo $key->tgl_simp ?></td>
                                
                </tr>
                <?php endforeach; ?>
            </table>
    </div>
    </div>
</div>
<?php $this->endSection();?>

Sampai tahap ini kita telah berhasil membuat join 2 tabel. Untuk mengakses hasil dari join yang telah dibuat silahkan buka url http://localhost/ciempat/public/simpanan.

Membuat Join 3 Tabel

Gambar di bawah ini adalah bentuk output join 3 tabel yang akan kita buat. Tabel yang akan dijoinkan adalah tabel anggota, simpanan dan unit

join 3 tabel codeigniter 4
join 3 tabel codeigniter 4

Kita masih menggunakan tabel yang sama dengan join 2 tabel, untuk tabel unit silahkan isikan terlebih dahulu data ke tabel unit.

Selanjutnya untuk membuat join 3 tabel ini kita juga masih menggunakan model, controller dan view yang telah dibuat pada join 2 tabel.

Beberapa penambahan script akan kita lakukan terhadap file model, controller dan view seperti di bawah ini

1. Model

Buka kembali file SimpananModel.php dan tambahkan function di bawah ini

public function getSimpanan1()
    {             
        $query =  $this->db->table('simpanan')
         ->join('anggota', 'simpanan.id_anggota = anggota.id_anggota')
         ->join('unit', 'anggota.id_unit = unit.id_unit')
         ->get();  
        return $query;
    }

2. Controller

Untuk controller Simpanan.php lakukan penambahan script join 3 tabel seperti dibawah ini

public function index()
	{	
      $data_simpanan =  $this->modelsimpanan->getSimpanan()->getResult();
      $data_join3 =  $this->modelsimpanan->getSimpanan1()->getResult(); //script join 3 tabel
      $data = array(
          'title' => 'Data Simpanan',
          'content' => $data_simpanan,         
          'join3' => $data_join3    //script join 3 tabel         
         );      
      echo view('view_simpanan',$data);
	}  

3. Views

Tambahkan script tabel untuk menampilkan data join 3 tabel di view_simpanan.php

  <h4>Join 3 Tabel</h4>
              <table class="table table-bordered table-sm col-md-6">
                <thead class="thead-light">
                <tr>
                    <th>Id</th>
                    <th>Nama</th>                    
                    <th>Jumlah Simpanan</th>
                    <th>Tanggal</th>            
                    <th>Unit</th>                    
                </tr>
                </thead>
                  <?php foreach ($join3 as $key): ?>
                <tr>
                    <td><?php echo $key->id_anggota ?></td>
                    <td><?php echo $key->nama ?></td>
                    <td><?php echo $key->jumlah_simpanan ?></td>                    
                    <td><?php echo $key->tgl_simp ?></td>
                    <td><?php echo $key->nama_unit ?></td>
                                
                </tr>
                <?php endforeach; ?>
            </table>

Dengan penambahan di atas kita telah berhasil membuat join 3 tabel di codeigniter 4. Silahkan akses kembali url http://localhost/ciempat/public/simpanan untuk melihat hasil join yan telah kita buat.


0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *