Codeigniter merupakan framework(kerangka kerja) PHP open source yang digunakan untuk
membantu mempermudah membuat sebuah system aplikasi berbasis web dengan konsep
MVC. MVC merupakan sebuah metode untuk membuat sebuah aplikasi dengan memisahkan
data (Model) dari tampilan (View) dan cara bagaimana memprosesnya (Controller).
Framework Codeigniter memiliki beberapa kelebihan seperti:
1. Ringan
Codeigniter memiliki ukuran yang kecil hanya 2MB saat kita mendownload.
2. Konfigurasi yang mudah
Codeigniter tidak membutuhkan konfigurasi yang rumit.
3. Kompitabilitas dengan berbagai Hosting
4. Dokumentasi yang lengkap
Memiliki dokumentasi yang lengkap serta dukungan komunitas yang baik sehingga mudah
dipelajari untuk pemula.
Instalasi Codeigniter 3
Anda dapat mendowload melalui situs codeigniter https://codeigniter.com/download.
Buat sebuah folder bernama aplikasi_ci pada folder xampp/htdocs.
Ekstrak hasil download kemudian copykan semua file kedalam folder aplikasi_ci.
Struktur folder dan file pada direktori xampp/htdocs/aplikasi_ci seperti dibawah ini.
Buat Database
Buat database dengan nama akademik, kemudian buat tabel bernama siswa dengan struktur
tabel seperti dibawah ini.
CREATE DATABASE
`akademik`;
USE `akademik`;
Konfigurasi Codeigniter
Silahkan buka config/database.php, isikan seperti dibawah ini:
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'akademik',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
Buka config/config.php, Cari kode $config['base_url'] = ''; ubah kode menjadi seperti ini
$config['base_url'] = 'http://localhost:/aplikasi_ci/';
$config['base_url'] = 'http://localhost:/aplikasi_ci/';
$config['index_page'] = '';
Keterangan
Load library Database untuk menyediakan fungsi-fungsi operasi database.
Session untuk menyediakan fungsi-fungsi session dan menampilkan flash message.
Form validation untuk menyediakan fungsi-fungsi validasi kolom inputan.
Helper url digunakan untuk bekerja dengan URL.
Helper form digunakan untuk bekerja dengan Form.
Buka config/routes.php.
Ubah default controler menjadi seperti ini:
$route['default_controller'] = 'mahasiswa';
Kode diatas digunakan untuk mengatur controller pertama kali saat aplikasi dijalankan. Nanti
kita akan membuat sebuah file controller baru dengan nama Mahasiswa.php dalam folder
controllers.
Setting .htaccess
htaccess disini digunakan untuk menghilangkan index.php pada url sehingga url akan lebih
rapi.
buat file baru pada folder aplikasi_ci, kopikan script dibawah ini kemudian simpan dengan
nama .htaccess
RewriteEngine On
<?php
defined('BASEPATH') or exit('No direct script access allowed');
class Mahasiswa_model extends CI_Model
{
private $table = 'mahasiswa';
//validasi form, method ini akan mengembailkan data berupa rules
validasi form
public function rules()
{
return [
[
'field' => 'Nama', //samakan dengan atribute name pada
tags input
'label' => 'Nama', // label yang kan ditampilkan pada
pesan error
'rules' => 'trim|required' //rules validasi
],
[
'field' => 'JenisKelamin',
'label' => 'Jenis Kelamin',
'rules' => 'trim|required'
],
[
'field' => 'Alamat',
'label' => 'Alamat',
'rules' => 'trim|required'
],
[
'field' => 'Agama',
'label' => 'Agama',
'rules' => 'trim|required'
],
[
'field' => 'NoHp',
'label' => 'No Hp',
'rules' =>
'trim|required|numeric|min_length[9]|max_length[15]'
],
[
'field' => 'Email',
'label' => 'Email',
'rules' => 'trim|required'
]
];
}
//menampilkan data mahasiswa berdasarkan id mahasiswa
public function getById($id)
{
return $this->db->get_where($this->table, ["IdMhsw" => $id])-
>row();
//query diatas seperti halnya query pada mysql
//select * from mahasiswa where IdMhsw='$id'
}
//menampilkan semua data mahasiswa
public function getAll()
{
$this->db->from($this->table);
$this->db->order_by("IdMhsw", "desc");
$query = $this->db->get();
return $query->result();
//fungsi diatas seperti halnya query
//select * from mahasiswa order by IdMhsw desc
}
//menyimpan data mahasiswa
public function save()
{
$data = array(
"Nama" => $this->input->post('Nama'),
"JenisKelamin" => $this->input->post('JenisKelamin'),
"Alamat" => $this->input->post('Alamat'),
"Agama" => $this->input->post('Agama'),
"NoHp" => $this->input->post('NoHp'),
"Email" => $this->input->post('Email')
);
return $this->db->insert($this->table, $data);
}
Buat Controller
Controller digunakan untuk menghubungkan antara model dengan view. Buat file
Mahasiswa.php pada folder controllers. Nama file diawali dengan huruf kapital.
<?php
defined('BASEPATH') or exit('No direct script access allowed');
$Mahasiswa = $this->Mahasiswa_model;
$validation = $this->form_validation;
$validation->set_rules($Mahasiswa->rules());
if ($validation->run()) {
$Mahasiswa->update();
$this->session->set_flashdata('message', '<div class="alert
alert-success alert-dismissible fade show" role="alert">
Data Mahasiswa berhasil disimpan.
<button type="button" class="close" data-dismiss="alert" aria-
label="Close">
<span aria-hidden="true">×</span>
</button></div>');
redirect("mahasiswa");
}
$data["title"] = "Edit Data Mahasiswa";
$data["data_mahasiswa"] = $Mahasiswa->getById($id);
if (!$data["data_mahasiswa"]) show_404();
$this->load->view('templates/header', $data);
$this->load->view('templates/menu');
$this->load->view('mahasiswa/edit', $data);
$this->load->view('templates/footer');
}
Buat View
Setelah controller Mahasiswa dibuat selanjutkan kita akan membuat view untuk
menampilkan data mahasiswa. Disini saya membagi view menjadi beberapa bagian. Pada
folder views/template, kita akan menyimpan file view header, menu dan footer. Kemudian
pada folder views/mahasiswa berisi view untuk menampikan semua data, view form add dan
view form edit.
Views/templates
buat file header.php, kemudian isikan kode seperti berikut ini:
<!DOCTYPE html>
<html lang="en">
<head>
<title><?= $title ?></title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Bootstrap 4.5.2-->
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css
">
<!-- Fontawesome 5.15.3-->
<link rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-
awesome/5.15.3/css/all.min.css" integrity="sha512-
iBBXm8fW90+nuLcSKlbmrPcLa0OT92xO1BIsZ+ywDWZCvqsWgccV3gFoRBv0z+8dLJgyAHIhR35
VZc2oM/gI1w==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<!-- Datatables -->
<link rel="stylesheet"
href="https://cdn.datatables.net/1.10.24/css/dataTables.bootstrap4.min.css"
>
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></sc
ript>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min
.js"></script>
<script
src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"><
/script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/font-
awesome/5.15.3/js/all.min.js" integrity="sha512-
RXf+QSDCUQs5uwRKaDoXt55jygZZm2V++WUZduaU/Ui/9EGp3f/2KZVahFZBKGH0s774sd3Hmrh
Uy+SgOFQLVQ==" crossorigin="anonymous" referrerpolicy="no-
referrer"></script>
<script
src="https://cdn.datatables.net/1.10.24/js/jquery.dataTables.min.js"></scri
pt>
<script
src="https://cdn.datatables.net/1.10.24/js/dataTables.bootstrap4.min.js"></
script>
</head>
<body>
buat file menu.php pada folder views/templates kemudian isikan kode berikut ini:
</html>
Selanjutkan kita akan membuat view untuk konten mahasiswa, buat file index.php pada
folder views/mahasiswa.
<div class="card">
<div class="card-body">
<div class="table-responsive">
<table class="table table-striped table-bordered
table-hover" id="tableMahasiswa">
<thead>
<tr class="table-success">
<th></th>
<th>NAMA</th>
<th>JENIS KELAMIN</th>
<th>ALAMAT</th>
<th>AGAMA</th>
<th>NO HP</th>
<th>EMAIL</th>
</tr>
</thead>
<tbody>
<?php foreach ($data_mahasiswa as $row) :
?>
<tr>
<td>
<a href="<?=
site_url('mahasiswa/edit/' . $row->IdMhsw) ?>" class="btn btn-success btn-
sm"><i class="fa fa-edit"></i> </a>
<a href="javascript:void(0);"
data="<?= $row->IdMhsw ?>" class="btn btn-danger btn-sm item-delete"><i
class="fa fa-trash"></i> </a>
</td>
<td><?= $row->Nama ?></td>
<td><?= $row->JenisKelamin ?></td>
<td><?= $row->Alamat ?></td>
<td><?= $row->Agama ?></td>
<td><?= $row->NoHp ?></td>
<td><?= $row->Email ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
//menampilkan data ketabel dengan plugin datatables
$('#tableMahasiswa').DataTable();
Membuat view untuk tambah data mahasiswa, buat file add.php pada folder
views/mahasiswa.
<fieldset class="form-group">
<div class="row">
<legend class="col-form-label col-sm-2 pt-
0">Jenis Kelamin</legend>
<div class="col-sm-10">
<div class="form-check form-check-inline">
<input class="form-check-input"
type="radio" id="JenisKelamin" name="JenisKelamin" value="Laki-laki" <?php
if (set_value('JenisKelamin') == "Laki-laki") : echo "checked";
endif; ?>>
<label class="form-check-label"
for="JenisKelamin">
Laki-laki
</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input"
type="radio" id="JenisKelamin2" name="JenisKelamin" value="Perempuan" <?php
if (set_value('JenisKelamin') == "Perempuan") : echo "checked";
endif; ?>>
<label class="form-check-label"
for="JenisKelamin2">
Perempuan
</label>
</div>
<small class="text-danger">
<?php echo form_error('JenisKelamin')
?>
</small>
</div>
</div>
</fieldset>
Membuat view untuk edit data mahasiswa, buat file edit.php pada folder views/mahasiswa.
<fieldset class="form-group">
<div class="row">
<legend class="col-form-label col-sm-2 pt-
0">Jenis Kelamin</legend>
<div class="col-sm-10">
<div class="form-check form-check-inline">
<input class="form-check-input"
type="radio" id="JenisKelamin" name="JenisKelamin" value="Laki-laki" <?php
if ($data_mahasiswa->JenisKelamin == "Laki-laki") : echo "checked";
endif; ?>>
<label class="form-check-label"
for="JenisKelamin">
Laki-laki
</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input"
type="radio" id="JenisKelamin2" name="JenisKelamin" value="Perempuan" <?php
if ($data_mahasiswa->JenisKelamin == "Perempuan") : echo "checked";
endif; ?>>
<label class="form-check-label"
for="JenisKelamin2">
Perempuan
</label>
</div>
<small class="text-danger">
<?php echo form_error('JenisKelamin')
?>
</small>
</div>
</div>
</fieldset>