CRUD Mahasiswa
CRUD Mahasiswa - SIMITS CodeIgniter
(Sistem Informasi Mahasiswa ITS)
Disini saya akan menjelaskan bagaimana membuat sistem informasi mahasiswa dengan menggunakan framework CodeIgniter. CodeIgniter adalah sebuah framework php yang bersifat open source dan menggunakan metode MVC (Model, View, Controller). CodeIgniter bersifat free alias tidak berbayar jika ingin menggunakannya. Framework CodeIgniter dibuat dengan tujuan untuk memudahkan developer atau programmer dalam membangun sebuah aplikasi berbasis web tanpa harus membuat nya dari awal.
Langkah-langkahnya sebagai berikut.
- Persiapan Development
Dalam pembuatan SIMITS ini yang perlu disiapkan diawal yaitu :
- PHP
- MySQL
- Webserver
- CodeIgniter v3 dimana posisi sudah didalam XAMP (hasil extract instalasi CodeIgniter v3 ke dalam folder xampp/htdocs dengan nama folder simits)
- Membuat Database
Sekarang buka phpMyAdmin dan buat database dengan nama simits. Selanjutnya buat tabel dengan nama tabel_mahasiswa. Untuk membuat tabel, pilih SQL dan jalankan perintah berikut.
Ketika query dijalankan maka akan terbuat tabel_mahasiswa dengan struktur sebagai berikut.
- Konfigurasi Database dan Base URL
Untuk selanjutnya yaitu melakukan konfigurasi base_url dari aplikasi web yang dibangun. Langkah-langkahnya sebagai berikut.
- Buka text editor, pilih file config.php pada direktori simits/application/config lalu edit bagian base_url dan diarahkan ke alamat website nantinya (http://localhost/simits) lalu save file
$config['base_url'] = 'http://localhost/simits';- Lalu atur konfigurasi database dengan buka file database.php pada direktori simits/application/config dan edit file seperti gambar dibawah lalu save file
$active_group = 'default';$query_builder = TRUE;$db['default'] = array('dsn' => '','hostname' => 'localhost','username' => 'root','password' => '','database' => 'simits','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);- Selanjutnya menghubungkan database yang sudah terkonfigurasi dengan mengaktifkan library database di file autoload.php pada direktori simits/application/config dan mengisi array dengan database lalu save file
$autoload['libraries'] = array('database'); - Read Data Mahasiswa
Untuk tahapan selanjutnya sudah masuk kedalam konsep MVC untuk menampilkan data mahasiswa dimana akan membuat dan edit beberapa file berikut.
- File Model dengan nama Mahasiswa_model.php pada direktori simits/application/models
<?phpdefined('BASEPATH') or exit('No direct script access allowed');class Mahasiswa_model extends CI_Model{function get(){//SELECT * FROM tabel_mahasiswareturn $this->db->get('tabel_mahasiswa');}}- File Views dengan nama mahasiswa/index.php pada direktori simits/application/views dengan membuat direktori baru bernama mahasiswa
<?php defined('BASEPATH') or exit('No direct script access allowed'); ?><!DOCTYPE html><html><head><title>SIMITS</title></head><body><H3>Data Mahasiswa</H3><table border=1 width=100% cellpadding=2 cellspacing=0><tr bgcolor=silver align=center><td>NRP</td><td>Nama</td><td>Alamat</td><td>Telp</td><td>Angkatan</td><td>Departemen</td><td>Fakultas</td><td colspan=2>AKSI</td></tr><?phpif ($jumlah_data > 0) {foreach ($mahasiswa as $row) { ?><tr align=center><td><?php echo $row['nrp']; ?></td><td><?php echo $row['nama']; ?></td><td><?php echo $row['alamat']; ?></td><td><?php echo $row['telp']; ?></td><td><?php echo $row['angkatan']; ?></td><td><?php echo $row['departemen']; ?></td><td><?php echo $row['fakultas']; ?></td><td><a href="<?php echo base_url(); ?>index.php/mahasiswa/edit/<?php echo $row['nrp']; ?>">Edit</a></td><td><a href="<?php echo base_url(); ?>index.php/mahasiswa/hapus/<?php echo $row['nrp']; ?>" onclick="return confirm('Apakah anda yakin ingin menghapus data ini?');">Delete</a></td></tr><?php}} else { ?><tr align='center'><td colspan=8>Data Mahasiswa kosong</td></tr><?php } ?></table><p>Jumlah data : <?php echo $jumlah_data; ?> [<a href="<?php echo base_url(); ?>index.php/mahasiswa/create">Tambah Data</a>] </p></body></html>- File Controller dengan nama Mahasiswa.php pada direktori simits/application/controllers
<?phpdefined('BASEPATH') or exit('No direct script access allowed');class Mahasiswa extends CI_Controller{function __construct(){parent::__construct();//load helper$this->load->helper('url');$this->load->helper('form');//load library$this->load->library('form_validation');//load model$this->load->model('mahasiswa_model');}public function index(){//ambil data dari database$getData = $this->mahasiswa_model->get();$data = ['mahasiswa' => $getData->result_array(),'jumlah_data' => $getData->num_rows()];//menampilkan view$this->load->view('mahasiswa/index', $data);}} - Create Data Mahasiswa
Fitur selanjutnya untuk menambahkan data mahasiswa kedalam tabel didalam database. Dimana dalam hal ini ada beberapa tahapan sebagai berikut.
- Menambahkan method untuk insert data didalam file Mahasiswa_model.php
function insert($data){//insert data ke dalam tabel$this->db->insert('tabel_mahasiswa', $data);}- Membuat 2 file baru dengan nama add.php dan notifikasi.php dalam direktori simits/application/views/mahasiswa lalu edit file kemudian save file
- file add.php
<?php defined('BASEPATH') or exit('No direct script access allowed'); ?><!DOCTYPE html><html><head><title>Tambah Data SIMITS</title></head><body><?php echo form_open('mahasiswa/create'); ?><table border=0 width="100%" cellpadding="5" cellspacing="0"><tr bgcolor="silver"><td Colspan="3" align="center"><H3>DATA MAHASISWA</H3></td></tr><tr><td>NRP</td><td>:</td><td><input type="text" name="nrp" value="<?php echo set_value('nrp'); ?>" size="50"><?php echo form_error('nrp'); ?></td></tr><tr><td>Nama</td><td>:</td><td><input type="text" name="nama" value="<?php echo set_value('nama'); ?>" size="50"><?php echo form_error('nama'); ?></td></tr><tr><td>Alamat</td><td>:</td><td><textarea name="alamat" rows="2" value="<?php echo set_value('alamat'); ?>" cols="52"></textarea><?php echo form_error('alamat'); ?></td></tr><tr><td>Telp</td><td>:</td><td><input type="text" name="telp" value="<?php echo set_value('telp'); ?>" size="50"><?php echo form_error('telp'); ?></td></tr><tr><td>Angkatan</td><td>:</td><td><input type="text" name="angkatan" value="<?php echo set_value('angkatan'); ?>" size="50"><?php echo form_error('angkatan'); ?></td></tr><tr><td>Departemen</td><td>:</td><td><input type="text" name="departemen" value="<?php echo set_value('departemen'); ?>" size="50"><?php echo form_error('departemen'); ?></td></tr><tr><td>Fakultas</td><td>:</td><td><input type="text" name="fakultas" value="<?php echo set_value('fakultas'); ?>" size="50"><?php echo form_error('fakultas'); ?></td></tr><tr align="center"><td colspan="3"><input type="submit" value="TAMBAH"><input type="reset" value="BATAL">[<a href="<?php echo base_url(); ?>index.php/mahasiswa">Lihat Data Mahasiswa</a>]</td></tr></table><?php echo form_close(); ?></body></html>- file notifikasi.php
<?php defined('BASEPATH') or exit('No direct script access allowed'); ?><!doctype html><html><head><title>DATA MAHASISWA</title></head><body><p><?php echo $msg; ?></p><p><?php echo anchor('mahasiswa', 'Kembali'); ?></p></body></html>- Menambahkan method untuk menampilkan form insert data didalam file controller Mahasiswa.php
public function create(){//rule validasi$validation_rules = [['field' => 'nrp','label' => 'NRP','rules' => 'required'],['field' => 'nama','label' => 'Nama','rules' => 'required'],['field' => 'alamat','label' => 'Alamat','rules' => 'required'],['field' => 'telp','label' => 'Telp','rules' => 'required'],['field' => 'angkatan','label' => 'Angkatan','rules' => 'required'],['field' => 'departemen','label' => 'Departemen','rules' => 'required'],['field' => 'fakultas','label' => 'Fakultas','rules' => 'required']];//set rule validasi$this->form_validation->set_rules($validation_rules);if ($this->form_validation->run() === FALSE) {$this->load->view('mahasiswa/add');} else {//data mahasiswa$mahasiswa = ['nrp' => $this->input->post('nrp'),'nama' => $this->input->post('nama'),'alamat' => $this->input->post('alamat'),'telp' => $this->input->post('telp'),'angkatan' => $this->input->post('angkatan'),'departemen' => $this->input->post('departemen'),'fakultas' => $this->input->post('fakultas')];$this->mahasiswa_model->insert($mahasiswa);$data['msg'] = 'Data berhasil disimpan';$this->load->view('mahasiswa/notifikasi', $data);}} - Update Data Mahasiswa
Fitur selanjutnya untuk memperbarui data mahasiswa dimana tahapan ini sebagai berikut.
- Menambahkan method didalam model Mahasiswa_model.php dengan method get_by_nrp() untuk mengambil data mahasiswa berdasarkan nrp dan method update() untuk memperbarui data mahasiswa
function get_by_nrp($nrp){//SELECT * FROM tabel_mahasiswa WHERE nrp=$nrp$this->db->where('nrp', $nrp);$this->db->from('tabel_mahasiswa');return $this->db->get();}function update($data, $where){$this->db->where($where);$this->db->update('tabel_mahasiswa', $data);}- Membuat file view baru dengan nama edit.php didalam direktori simits/application/views/mahasiswa
<?php defined('BASEPATH') or exit('No direct script access allowed'); ?><!DOCTYPE html><html><head><title>Edit Data Mahasiswa</title></head><body><?php echo form_open('mahasiswa/update'); ?><table border=0 width="100%" cellpadding="5" cellspacing="0"><tr bgcolor="silver"><td Colspan="3" align="center"><H3>DATA MAHASISWA</H3></td></tr><tr><td>NRP</td><td>:</td><td><input type="text" name="nrp" value="<?php echo set_value('nrp'); ?>" size="50"><?php echo form_error('nrp'); ?></td></tr><tr><td>Nama</td><td>:</td><td><input type="text" name="nama" value="<?php echo set_value('nama'); ?>" size="50"><?php echo form_error('nama'); ?></td></tr><tr><td>Alamat</td><td>:</td><td><textarea name="alamat" rows="2" value="<?php echo set_value('alamat'); ?>" cols="52"></textarea><?php echo form_error('alamat'); ?></td></tr><tr><td>Telp</td><td>:</td><td><input type="text" name="telp" value="<?php echo set_value('telp'); ?>" size="50"><?php echo form_error('telp'); ?></td></tr><tr><td>Angkatan</td><td>:</td><td><input type="text" name="angkatan" value="<?php echo set_value('angkatan'); ?>" size="50"><?php echo form_error('angkatan'); ?></td></tr><tr><td>Departemen</td><td>:</td><td><input type="text" name="departemen" value="<?php echo set_value('departemen'); ?>" size="50"><?php echo form_error('departemen'); ?></td></tr><tr><td>Fakultas</td><td>:</td><td><input type="text" name="fakultas" value="<?php echo set_value('fakultas'); ?>" size="50"><?php echo form_error('fakultas'); ?></td></tr><tr align="center"><td colspan="3"><button type="submit" value="update" name="update">Update</button><button type="reset">Reset</button>[<a href="<?php echo base_url(); ?>index.php/mahasiswa">Lihat Data Mahasiswa</a>]</td></tr></table><?php echo form_close(); ?></body></html>- Menambahkan method didalam controller Mahasiswa.php
public function edit($nrp = ''){//Cek apakah ada parameter $nrpif ('' == $nrp) {//jika tidak ada, maka alihkan ke halaman daftar mahasiswaredirect('mahasiswa');}//ambil data mahasisa berdasarkan nrp$data['mahasiswa'] = $this->mahasiswa_model->get_by_nrp($nrp)->row_array();//load form edit$this->load->view('mahasiswa/edit', $data);}public function update(){//cek apakah tombol update ditekanif ($this->input->post('update')) {$nrp = $this->input->post('nrp');//rule validasi$validation_rules = [['field' => 'nrp','label' => 'NRP','rules' => 'required'],['field' => 'nama','label' => 'Nama','rules' => 'required'],['field' => 'alamat','label' => 'Alamat','rules' => 'required'],['field' => 'telp','label' => 'Telp','rules' => 'required'],['field' => 'angkatan','label' => 'Angkatan','rules' => 'required'],['field' => 'departemen','label' => 'Departemen','rules' => 'required'],['field' => 'fakultas','label' => 'Fakultas','rules' => 'required']];//set rule validasi$this->form_validation->set_rules($validation_rules);if ($this->form_validation->run() === false) {redirect('mahasiswa/edit/' . $nrp);}$where['nrp'] = $nrp;//data mahasiswa$mahasiswa = ['nrp' => $this->input->post('nrp'),'nama' => $this->input->post('nama'),'alamat' => $this->input->post('alamat'),'telp' => $this->input->post('telp'),'angkatan' => $this->input->post('angkatan'),'departemen' => $this->input->post('departemen'),'fakultas' => $this->input->post('fakultas')];//update data$this->mahasiswa_model->update($mahasiswa, $where);$data['msg'] = 'Data berhasil diperbaharui';$this->load->view('mahasiswa/notifikasi', $data);} else {echo "<h3 style='color:red;'>Forbidden access</h3>";}} - Delete Data Mahasiswa
Berikut adalah fitur terakhir yaitu untuk menghapus data mahasiswa. Tahapannya sebagai berikut.
- Menambahkan method delete() didalam model Mahasiswa_model.php
function delete($nrp){//delete data berdasarkan nrp$this->db->where('nrp', $nrp);$this->db->delete('tabel_mahasiswa');}- Menambahkan method hapus didalam controller Mahasiswa.php
public function hapus($nrp = ''){//cek apakah parameter nrp adaif ('' == $nrp) {//jika tidak, tampilkan errorreturn show_404();}//hapus data$this->mahasiswa_model->delete($nrp);$data['msg'] = 'Data berhasil dihapus';$this->load->view('mahasiswa/notifikasi', $data);} - Uji Coba Project
Dalam tahap ini project yang sudah dirancang akan dijalankan perintah (http://localhost/simits/index.php/mahasiswa) dan jika berhasil maka akan terlihat sebagai berikut.
Karena belum ada data mahasiswa maka kita akan coba menambahkan data mahasiswa
Coba klik "TAMBAH" posisi tidak ada data yang dimasukkan untuk menguji form validation program, maka akan muncul pesan error seperti berikut.
Selanjutnya coba isi data mahasiswa dalam form, jika sudah selesai mengisi klik "TAMBAH" maka akan muncul pemberitahuan data berhasil disimpan dan tabel mahasiswa akan bertambah
Untuk memperbarui data mahasiswa, klik "EDIT" pada data yang ingin diperbarui kemudian akan muncul form pembaruan data lalu isikan data yang benar dan klik "UPDATE" maka akan dapat pemberitahuan data berhasil diperbarui
Lakukan penambahan data hingga jumlah mahasiswa yang diinginkan sudah masuk ke dalam tabel mahasiswa
Karena data sudah dimasukkan, maka data dummy bisa dihapus dengan klik "DELETE" kemudian akan muncul pemberitahuan data berhasil dihapus dan akan terlihat di tabel mahasiswa data dummy sudah tidak ada