Aplikasi Perpustakaan dengan PHP Framework CodeIgniter dan Bootstrap

Aplikasi Perpustakaan sederhana dengan PHP Framework CodeIgniter dan Bootstrap

Sebelum membuat aplikasi terlebih dahulu kita harus membuat template dengan Bootstrap, dan template yang digunakan adalah SB Admin 2.0 yang sudah dimodifikasi dan sekaligus digabungkan dengan folder CodeIgninter versi 3.o

Download Template

Template untuk Aplikasi Perpustakaan Sederhana dengan PHP Framework CodeIgniter dan Bootstrap sudah dibuat, diedit dari SB Admin 2.0 dan langsung dipadukan dengan CodeIgniter versi 3.0

Untuk template jadi bisa di download di link ini berikut :

http://trisnowlaharwetan.net/wp-content/uploads/2018/11/dmlbootstrap.zip

Setelah di download, kemudian ekstrak file dmlbootstrap.zip dan ubah folder jadi perpus, kemudian copykan ke folder htdocs yang ada di localhost

Persiapan Database

Buat database di localhost/phpmyadmin dengan nama perpus dan kemudian import file perpus.sql yang bisa di download di link berikut :

http://trisnowlaharwetan.net/wp-content/uploads/2018/11/perpus.zip

Ekstrak file perpus.sql dan import ke database perpus yang ada di localhost/phpmyadmin

Koneksi Database

Buka file database.php yang berada di folder application/config dan edit di bagian username, password dan database seperti di bawah :

     'username' => '',
	'password' => '',
	'database' => '',

menjadi seperti di bawah :

     'username' => 'root',
	'password' => '',
	'database' => 'perpus',

Menampilkan Data

Buat file M_Global.php di folder application/models dan buat kode seperti di bawah :

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class M_Global extends CI_Model{

  public function __construct()
  {
    parent::__construct();
    $this->load->database();     //Panggil Koneksi database
  }

}

Buat fungi tampilkan_data di file M_Global.php denga kode sebagai berikut :

}
  public function tampilkan_data($table){
		return $this->db->get($table)->result();
	}

Full code dari M_Global.php setelah ditambahkan fungsi tampilkan_data adalah sebagai berikut :

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class M_Global extends CI_Model{

  public function __construct()
  {
    parent::__construct();
    $this->load->database();
    //Codeigniter : Write Less Do More
  }
  public function tampilkan_data($table){
		return $this->db->get($table)->result();
	}

}

1. Menampilkan Data Buku

Controller
Buka file Admin.php di folder application/controller dan edit function __construct dan tambahkan kode berikut ke fungsi tersebut :

$this->load->model('m_global'); //panggil model m_global

full code dari fungsi __construcks menjadi sebagai berikut :

public function __construct()
  {
    parent::__construct();
    $this->load->helper('url');
    $this->load->model('m_global');
    //Codeigniter : Write Less Do More
  }

Edit fungsi buku dan tambahkan kode sebagai berikut :

$data['buku']= $this->m_global->tampilkan_data('buku');

Full code dari fungsi buku menjadi sebagai berikut :

function buku()
  {
    $data['buku']= $this->m_global->tampilkan_data('buku');
    $this->load->view('header');
    $this->load->view('v_buku',$data);
    $this->load->view('footer');

  }

Full code dari file Admin.php menjadi sebagai berikut :

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Admin extends CI_Controller{

  public function __construct()
  {
    parent::__construct();
    $this->load->helper('url');
    $this->load->model('m_global');
    //Codeigniter : Write Less Do More
  }

  function index()
  {
    $this->load->view('header');
    $this->load->view('v_admin');
    $this->load->view('footer');
  }
  function buku()
  {
    $data['buku']= $this->m_global->tampilkan_data('buku');
    $this->load->view('header');
    $this->load->view('v_buku',$data);
    $this->load->view('footer');

  }
  function anggota()
  {
    $this->load->view('header');
    $this->load->view('v_anggota');
    $this->load->view('footer');

  }
  function peminjaman()
  {
    $this->load->view('header');
    $this->load->view('peminjaman');
    $this->load->view('footer');

  }
  function tampilkan_buku()
  {

  }

}

Views
Buka file v_buku.php yang berada di folder application/views dan edit kodenya di bawah tag tbody menjadi seperti di bawah :

<?php $no=0; foreach ($buku as $b) {
                  $no++;
                 ?>
                  <tr>
                  <th scope="row"><?php echo $no; ?></th>
                  <td><?php echo $b->judul_buku; ?></td>
                  <td><?php echo $b->pengarang; ?></td>
                  <td><?php echo $b->penerbit; ?></td>
                  <td align="center">
                      <button type="button" class="btn btn-info btn-xs"><i class="fa fa-edit"></i>Edit</button>
                      <button type="button" class="btn btn-danger btn-xs"><i class="glyphicon glyphicon-trash"></i>Hapus</button>
                  </td>
                </tr>
              <?php } ?>

Full code v_buku.php setelah edit menjadi seperti di bawah :

<div class="container-fluid">
    <div class="row">
        <div class="col-lg-12">
            <h1 class="page-header">Dasboard <small>Buku</small></h1>
            <ol class="breadcrumb">
              <li><a href="#"><iclas="icon-dashboard">Buku</i></a></li>
              <li class="active"><i class="icon-file-alt">Data Buku</i></li>

            </ol>
        </div>

        <!-- /.col-lg-12 -->
    </div>
    <!-- buat tabel buku -->
    <div class="row">
      <div class="col-lg-12">
        <a href="#"> <button type="button" class="btn btn-success btn-xs"><i class='glyphicon glyphicon-plus'></i>Tambah</button></a>
        <table class="table-responsive">
          <table class="table table-striped">
              <thead>
                <tr>
                  <th scope="col">#</th>
                  <th scope="col">Judul Buku</th>
                  <th scope="col">Pengarang</th>
                  <th scope="col">Penerbit</th>
                  <th scope="col">Opsi</th>
                </tr>
              </thead>
              <tbody>
                <?php $no=0; foreach ($buku as $b) {
                  $no++;
                 ?>
                  <tr>
                  <th scope="row"><?php echo $no; ?></th>
                  <td><?php echo $b->judul_buku; ?></td>
                  <td><?php echo $b->pengarang; ?></td>
                  <td><?php echo $b->penerbit; ?></td>
                  <td align="center">
                      <button type="button" class="btn btn-info btn-xs"><i class="fa fa-edit"></i>Edit</button>
                      <button type="button" class="btn btn-danger btn-xs"><i class="glyphicon glyphicon-trash"></i>Hapus</button>
                  </td>
                </tr>
              <?php } ?>


              </tbody>
              </table>
            </table>
      </div>

    </div>
    <!-- akhir tabel buku -->

</div>

2. Menampilkan Data Anggota

Controller
Buka file Admin.php di folder application/controller dan edit fungsi anggota() sehingga kodenya sebagai berikut :

function anggota()
  {
    $data['anggota']= $this->m_global->tampilkan_data('anggota');
    $this->load->view('header');
    $this->load->view('v_anggota',$data);
    $this->load->view('footer');

  }

Full code dari file Admin.php sesudah edit fungsi anggota adalah sebagai berikut :

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Admin extends CI_Controller{

  public function __construct()
  {
    parent::__construct();
    $this->load->helper('url');
    $this->load->model('m_global');
    //Codeigniter : Write Less Do More
  }

  function index()
  {
    $this->load->view('header');
    $this->load->view('v_admin');
    $this->load->view('footer');
  }
  function buku()
  {
    $data['buku']= $this->m_global->tampilkan_data('buku');
    $this->load->view('header');
    $this->load->view('v_buku',$data);
    $this->load->view('footer');

  }
  function anggota()
  {
    $data['anggota']= $this->m_global->tampilkan_data('anggota');
    $this->load->view('header');
    $this->load->view('v_anggota',$data);
    $this->load->view('footer');

  }
  function peminjaman()
  {
    $this->load->view('header');
    $this->load->view('peminjaman');
    $this->load->view('footer');

  }
}

Views
Buka file v_anggota.php dalam folder application/views dan edit antara tag tbody, sehingga kodenya sebagai berikut :

<?php
                $no=0;
                foreach ($anggota as $a):
                $no++;
                ?>
                <tr>
                  <th scope="row"><?php echo $no; ?></th>
                  <td><?php echo $a->nama_anggota; ?></td>
                  <td><?php echo $a->alamat; ?></td>
                  <td><?php echo $a->no_telp; ?></td>
                  <td align="center">
                      <button type="button" class="btn btn-info btn-xs"><i class="fa fa-edit"></i>Edit</button>
                      <button type="button" class="btn btn-danger btn-xs"><i class="glyphicon glyphicon-trash"></i>Hapus</button>
                  </td>
                </tr>
              <?php endforeach; ?>

Full code dari file v_anggota.php sesudah diedit menjadi sebagai berikut :

<div class="container-fluid">
    <div class="row">
        <div class="col-lg-12">
            <h1 class="page-header">Dasboard <small>Anggota</small></h1>
            <ol class="breadcrumb">
              <li><a href="#"><iclas="icon-dashboard">Anggota</i></a></li>
              <li class="active"><i class="icon-file-alt">Data Anggota</i></li>

            </ol>
        </div>

        <!-- /.col-lg-12 -->
    </div>
    <!-- buat tabel buku -->
    <div class="row">
      <div class="col-lg-12">
        <a href="#"> <button type="button" class="btn btn-success btn-xs"><i class='glyphicon glyphicon-plus'></i>Tambah</button></a>
        <table class="table-responsive">
          <table class="table table-striped">
              <thead>
                <tr>
                  <th scope="col">#</th>
                  <th scope="col">Nama Anggota</th>
                  <th scope="col">Alamat</th>
                  <th scope="col">No Telpun</th>
                  <th scope="col">Opsi</th>
                </tr>
              </thead>
              <tbody>
                <?php
                $no=0;
                foreach ($anggota as $a):
                $no++;
                ?>
                <tr>
                  <th scope="row"><?php echo $no; ?></th>
                  <td><?php echo $a->nama_anggota; ?></td>
                  <td><?php echo $a->alamat; ?></td>
                  <td><?php echo $a->no_telp; ?></td>
                  <td align="center">
                      <button type="button" class="btn btn-info btn-xs"><i class="fa fa-edit"></i>Edit</button>
                      <button type="button" class="btn btn-danger btn-xs"><i class="glyphicon glyphicon-trash"></i>Hapus</button>
                  </td>
                </tr>
              <?php endforeach; ?>
              </tbody>
              </table>
            </table>
      </div>

    </div>
    <!-- akhir tabel buku -->

</div>

4. Menampilkan Data Transaksi Peminjaman

Controller
Buka file Admin.php di folder application/controller dan edit fungsi peminjaman() tambahkan kode sebagai berikut :

$data['peminjaman'] = $this->db->query("SELECT * FROM transaksi T, buku B, anggota A WHERE T.id_buku=B.id_buku and T.id_anggota=A.id_anggota")->result();

Fungsi peminjaman sesudah ditambahkan kode diatas menjadi sebagai berikut :

function peminjaman()
  {
    $data['peminjaman'] = $this->db->query("SELECT * FROM transaksi T, buku B, anggota A WHERE T.id_buku=B.id_buku and T.id_anggota=A.id_anggota")->result();
    $this->load->view('header');
    $this->load->view('peminjaman',$data);
    $this->load->view('footer');

  }

views
Buka file peminjaman.php di folder application/views dan edit diantara tag tbody menjadi sebagai berikut :

<?php
                $no=0;
                foreach ($peminjaman as $p):
                $no++;
                ?>
                <tr>
                  <th scope="row"><?=$no;?></th>
                  <td><?=$p->nama_anggota;?></td>
                  <td><?=$p->judul_buku;?></td>
                  <td><?php echo date('d/m/Y',strtotime($p->tgl_pinjam)); ?></td>
                  <td><?php echo date('d/m/Y',strtotime($p->tgl_kembali)); ?></td>
                  <td><?php echo "Rp. ".number_format($p->denda); ?></td>
                  <td>
                    <?php
          					if($p->tgl_pengembalian =="0000-00-00"){
          						echo "-";
          					}else{
          						echo date('d/m/Y',strtotime($p->tgl_pengembalian));
          					}
          					?>
                  </td>
                  <td><?php echo "Rp. ". number_format($p->total_denda)." ,-";	?></td>
                  <td>
                    <?php
            					if($p->status_pengembalian == "1"){
            						echo "Kembali";
            					}else{
            						echo "Belum Kembali";
            					}
          					?>
                  </td>
                  <td align="center">
                    <?php if($p->status_peminjaman == "1"){
                        echo "Selsesi";}
                        else{
                       ?>
                      <button type="button" class="btn btn-info btn-xs"><i class="fa fa-edit"></i>Transkasi Selesai</button>
                      <button type="button" class="btn btn-danger btn-xs"><i class="glyphicon glyphicon-trash"></i>Batalkan Transkasi</button>
                    <?php } ?>

Full Code file peminjaman.php sesudah diedit sabagai berikut :

<div class="container-fluid">
    <div class="row">
        <div class="col-lg-12">
            <h1 class="page-header">Dasboard <small>Peminjaman</small></h1>
            <ol class="breadcrumb">
              <li><a href="#"><iclas="icon-dashboard">Peminjaman</i></a></li>
              <li class="active"><i class="icon-file-alt">Data Peminjaman</i></li>

            </ol>
        </div>

        <!-- /.col-lg-12 -->
    </div>
    <!-- buat tabel buku -->
    <div class="row">
      <div class="col-lg-12">
        <a href="#"> <button type="button" class="btn btn-success btn-xs"><i class='glyphicon glyphicon-plus'></i>Tambah</button></a>
        <table class="table-responsive">
          <table class="table table-striped">
              <thead>
                <tr>
                  <th scope="col">#</th>
                  <th scope="col">Nama Anggota</th>
                  <th scope="col">Judul Buku</th>
                  <th scope="col">Tanggal Pinjam</th>
                  <th scope="col">Tanggal Wajib Kembali</th>
                  <th scope="col">Denda PerHari</th>
                  <th scope="col">Tanggal Dikembalikan</th>
                  <th scope="col">Total Denda</th>
                  <th scope="col">Status</th>

                  <th scope="col">Status Pinjam</th>
                </tr>
              </thead>
              <tbody>
                <?php
                $no=0;
                foreach ($peminjaman as $p):
                $no++;
                ?>
                <tr>
                  <th scope="row"><?=$no;?></th>
                  <td><?=$p->nama_anggota;?></td>
                  <td><?=$p->judul_buku;?></td>
                  <td><?php echo date('d/m/Y',strtotime($p->tgl_pinjam)); ?></td>
                  <td><?php echo date('d/m/Y',strtotime($p->tgl_kembali)); ?></td>
                  <td><?php echo "Rp. ".number_format($p->denda); ?></td>
                  <td>
                    <?php
          					if($p->tgl_pengembalian =="0000-00-00"){
          						echo "-";
          					}else{
          						echo date('d/m/Y',strtotime($p->tgl_pengembalian));
          					}
          					?>
                  </td>
                  <td><?php echo "Rp. ". number_format($p->total_denda)." ,-";	?></td>
                  <td>
                    <?php
            					if($p->status_pengembalian == "1"){
            						echo "Kembali";
            					}else{
            						echo "Belum Kembali";
            					}
          					?>
                  </td>
                  <td align="center">
                    <?php if($p->status_peminjaman == "1"){
                        echo "Selsesi";}
                        else{
                       ?>
                      <button type="button" class="btn btn-info btn-xs"><i class="fa fa-edit"></i>Transkasi Selesai</button>
                      <button type="button" class="btn btn-danger btn-xs"><i class="glyphicon glyphicon-trash"></i>Batalkan Transkasi</button>
                    <?php } ?>
                  </td>
                </tr>
                <?php endforeach; ?>

              </tbody>
              </table>
            </table>
      </div>

    </div>
    <!-- akhir tabel buku -->

</div>

Menghapus Data

Model
Buat fungsi hapus_data() dengan paramater $where dan $table dengan cara menambahkannya di file M_Global.php yang terletak di folder application/models dengan kode seperti di bawah :

function hapus_data($where,$table){
		$this->db->where($where);
		$this->db->delete($table);
	}

Full code dari file M_Global.php setelah ditambahkan fungsi hapus_data menjadi sebagai berikut :

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class M_Global extends CI_Model{

  public function __construct()
  {
    parent::__construct();
    $this->load->database();
    //Codeigniter : Write Less Do More
  }
  public function tampilkan_data($table){
		return $this->db->get($table)->result();
	}
  function hapus_data($where,$table){
		$this->db->where($where);
		$this->db->delete($table);
	}

}

Menghapus Data Buku

Controller
Buat fungsi hapus_buku() dengan parameter $id di file Admin.php dengan kode sebagai berikut :

function hapus_buku($id)
  {
    $where = array('id_buku' => $id);
    $this->m_global->hapus_data($where,'buku');
    redirect(base_url('index.php/admin/buku/'));
  }

Full code dari file Admin.php sesudah ditambahkan fungsi hapus_buku adalah sebagai berikut :

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Admin extends CI_Controller{

  public function __construct()
  {
    parent::__construct();
    $this->load->helper('url');
    $this->load->model('m_global');
    //Codeigniter : Write Less Do More
  }
  //Tampilkan Data
  function index()
  {
    $this->load->view('header');
    $this->load->view('v_admin');
    $this->load->view('footer');
  }
  function buku()
  {
    $data['buku']= $this->m_global->tampilkan_data('buku');
    $this->load->view('header');
    $this->load->view('v_buku',$data);
    $this->load->view('footer');

  }
  function anggota()
  {
    $data['anggota']= $this->m_global->tampilkan_data('anggota');
    $this->load->view('header');
    $this->load->view('v_anggota',$data);
    $this->load->view('footer');

  }
  function peminjaman()
  {
    $data['peminjaman'] = $this->db->query("SELECT * FROM transaksi T, buku B, anggota A WHERE T.id_buku=B.id_buku and T.id_anggota=A.id_anggota")->result();
    $this->load->view('header');
    $this->load->view('peminjaman',$data);
    $this->load->view('footer');

  }
  //END TAMPILKAN DATA
  //Hapus Data
  function hapus_buku($id)
  {
    $where = array('id_buku' => $id);
    $this->m_global->hapus_data($where,'buku');
    redirect(base_url('index.php/admin/buku/'));
  }
  //End Hapus Data

}

Views
Buka file v_buku.php di folder application/views dan edit bagian button hapus menjadi seperti di bawah ini :

<a href="<?php echo base_url('index.php/admin/hapus_buku/').$b->id_buku ?>"> <button type="button" class="btn btn-danger btn-xs"><i class="glyphicon glyphicon-trash"></i>Hapus</button></a>

Full code dari file v_buku.php sesudah diedit menjadi seperti di bawah :

<div class="container-fluid">
    <div class="row">
        <div class="col-lg-12">
            <h1 class="page-header">Dasboard <small>Buku</small></h1>
            <ol class="breadcrumb">
              <li><a href="#"><iclas="icon-dashboard">Buku</i></a></li>
              <li class="active"><i class="icon-file-alt">Data Buku</i></li>

            </ol>
        </div>

        <!-- /.col-lg-12 -->
    </div>
    <!-- buat tabel buku -->
    <div class="row">
      <div class="col-lg-12">
        <a href="#"> <button type="button" class="btn btn-success btn-xs"><i class='glyphicon glyphicon-plus'></i>Tambah</button></a>
        <table class="table-responsive">
          <table class="table table-striped">
              <thead>
                <tr>
                  <th scope="col">#</th>
                  <th scope="col">Judul Buku</th>
                  <th scope="col">Pengarang</th>
                  <th scope="col">Penerbit</th>
                  <th scope="col">Opsi</th>
                </tr>
              </thead>
              <tbody>
                <?php $no=0; foreach ($buku as $b) {
                  $no++;
                 ?>
                  <tr>
                  <th scope="row"><?php echo $no; ?></th>
                  <td><?php echo $b->judul_buku; ?></td>
                  <td><?php echo $b->pengarang; ?></td>
                  <td><?php echo $b->penerbit; ?></td>
                  <td align="center">
                      <button type="button" class="btn btn-info btn-xs"><i class="fa fa-edit"></i>Edit</button>
                      <a href="<?php echo base_url('index.php/admin/hapus_buku/').$b->id_buku ?>"> <button type="button" class="btn btn-danger btn-xs"><i class="glyphicon glyphicon-trash"></i>Hapus</button></a>
                  </td>
                </tr>
              <?php } ?>


              </tbody>
              </table>
            </table>
      </div>

    </div>
    <!-- akhir tabel buku -->

</div>

 

Leave a Reply