Tutorial CRUD Codeigniter – Create, Read, Update, Delete Data di dalam Database

Untuk tutorial kali ini kita akan mempelajari hal dasar pada Aplikasi Web Based yaitu Konsep CRUD  (Cread, Read, Update dan Delete)  hal ini berguna untuk melakukan operasi database atau pengelolaan data yang ada di database, seperti menginput data ke dalam database, menampilkan data yang berada di database, update data yang berada di database dan menghapus data yang ada di database.

Nah, di dalam Framework Codeigniter ini terdapat class Query Builder. Query Builder berguna untuk menjalankan fungsi DDL (Data Definition Language) dan DML (Data Modelling Language), jadi kita tidak perlu menuliskan sintaks yang terlalu panjang dan ini sangat berhubungan erat dengan konsep CRUD.

Untuk tahap awal, pastikan sobat sudah menginstall Framework Codeigniter di dalam server lokal / localhost milik sobat, untuk panduan instalasinya bisa sobat lihat disini https://tondanoweb.com/pengertian-apa-itu-framework-codeigniter-dan-cara-menginstall-framework-codeigniter/ dalam panduan tersebut terdapat penjelasan singkat mengenai apa itu Framework Codeigniter serta panduan untuk instalasinya.

 

Konfigurasi Dasar

Oke langsung saja, pertama-tama kita masuk dalam konfigurasi dasar pada codeigniter. Sobat buka folder application kemudian buka file config.php, autoload.php, dan database.php

 

File config.php

Di dalam file config.php ini kita hanya menambahkan base_url, sobat cari baris sintaks ini $config[‘base_url’] = ”; kemudian tambahkan parameter sesuai url direktori tempat menaruh/menginstall framework ini, misalnya ditaruh di dalam folder codeigniter $config[‘base_url’] = ‘http://localhost/codeigniter/’;

 

File autoload.php

Didalam file autoload.php ini tempat dimana jika kita ingin mengaktifkan library atau helper yang tersedia di Framework Codeigniter ini, karena kita akan melakukan operasi terhadap database jadi kita aktifkan library database, sobat cari baris sintaks ini $autoload[‘libraries’] = array(); kemudian tambahkan parameter database, seperti ini $autoload[‘libraries’] = array(‘database’);

Kemudian cari baris sintaks ini $autoload[‘helper’] = array(); kemudian tambahkan parameter url seperti ini $autoload[‘helper’] = array(‘url’);

 

File database.php

Nah, di dalam file database.php ini gunanya untuk kebutuhan konfigurasi database, menghubungkan database dengan Framework Codeigniter ini, jadi sesuaikan konfigurasi di dalam file ini menyesuaikan dengan konfigurasi database di server sobat, dalam tutorial ini cukup menggunakan database MySQL. Sekali lagi, username, password, database dan hostname menyesuaikan dengan konfigurasi database yang ada di server lokal milik sobat.

Contohnya seperti ini :

$db['default'] = array(
	'dsn'	=> '',
	'hostname' => 'localhost',
	'username' => 'root',
	'password' => 'root',
	'database' => 'codeigniter',
	'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
);

 

Struktur Database

Langkah selanjutnya kita buat struktur databasenya, contoh sederhananya seperti dibawah ini. Silahkan sobat import sintaks dibawah ini ke dalam database.

-- phpMyAdmin SQL Dump
-- version 4.5.4.1deb2ubuntu2
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Feb 21, 2018 at 09:18 PM
-- Server version: 5.7.21-0ubuntu0.16.04.1
-- PHP Version: 7.0.22-0ubuntu0.16.04.1

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `codeigniter`
--

-- --------------------------------------------------------

--
-- Table structure for table `kendaraan`
--

CREATE TABLE `kendaraan` (
  `id` int(11) NOT NULL,
  `merek_kendaraan` varchar(100) NOT NULL,
  `nopol` varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `kendaraan`
--

INSERT INTO `kendaraan` (`id`, `merek_kendaraan`, `nopol`) VALUES
(1, 'Avanza', 'DB 12345'),
(2, 'Rush', 'Db 333'),
(3, 'Terios', 'DB 987'),
(4, 'Inova', 'DB 989'),
(5, 'Swift', 'DB 444'),
(6, 'Jazz', 'DB 222'),
(7, 'Ayla', 'DB 23232'),
(8, 'Fortuner', 'A 123'),
(9, 'Fortuner', 'DB 1'),
(10, 'Fortuner', 'B 123');

--
-- Indexes for dumped tables
--

--
-- Indexes for table `kendaraan`
--
ALTER TABLE `kendaraan`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `kendaraan`
--
ALTER TABLE `kendaraan`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=11;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

 

CRUD (Read / Menampilkan Data)

Saat ini kita akan mencoba menampilkan data yang telah di import tadi. Tapi sebelumnya buat 3 file kemudian berinama Model_crud.php, Crud.php dan crud_input.php. Untuk Model_crud.php disimpan di dalam folder Model. Crud.php disimpan di dalam folder Controller dan crud_input.php disimpan didalam folder View.

Selanjutnya kita masuk ke langkah pertama, kita akan mencoba belajar menampilkan data terlebih dahulu, berdasarkan data yang ada di dalam tabel database diatas. Buka file Model_crud.php kemudian salinlah potongan script dibawah ini.

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

class Model_crud extends CI_Model
{
	public function tampil()
	{
		$query = $this->db->get('kendaraan');
		return $query;
	}
}

Sintaks ini berfungsi untuk mengambil seluruh data yang berada di dalam table kendaraan. Kemudian sintaks ini “return $query” digunakan untuk mengembalikan hasil operasi $query menjadi sebuah array.

$query = $this->db->get('kendaraan');
return $query;

 

Selanjutnya sobat buka file Crud.php yang berada di dalam folder Controller dan salinlah potongan script dibawah ini.

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

class Crud extends CI_Controller
{
	function __construct(){
		parent:: __construct();
		$this->load->model('Model_crud');
	}

	public function tampil()
	{
		$data['query'] = $this->Model_crud->tampil();
		$this->load->view('crud_tampil', $data);
	}
}

Untuk fungsi dari potongan script ini, gunanya untuk meload file Model_crud.php setiap kali class Crud ini dijalankan.

function __construct(){
	parent:: __construct();
	$this->load->model('Model_crud');
}

 

Script ini berfungsi sebagai penghubung untuk melakukan proses pengambilan data dari Model_crud.php tadi kemudian datanya di kirim ke View crud_tampil.php.

public function tampil()
{
	$data['query'] = $this->Model_crud->tampil();
	$this->load->view('crud_tampil', $data);
}

 

Dan untuk menampilkan datanya, buat file baru di dalam folder View dan beri nama crud_tampil.php dan salin script dibawah ini.

<!DOCTYPE html>
<html>
<body>

	<h2>Data Kendaraan</h2>
	<a href="<?php echo base_url('index.php/crud/input'); ?>">Input Data</a>
	<br>
	<br>
	<table border="1">
		<tr>
			<th>No.</th>
			<th>Merek Kendaraan</th>
			<th>Nomor Polisi</th>
			<th colspan="2">Opsi</th>
		</tr>
		<?php 

			$no = 1;
			foreach ($query->result() as $baris) {
				echo "<tr>";
				echo "<td>".$no."</td>";
				echo "<td>".$baris->merek_kendaraan."</td>";
				echo "<td>".$baris->nopol."</td>";
				echo "<td><a href=".base_url('index.php/crud/edit/').$baris->id.">Edit</a></td>";
				echo "<td><a href=".base_url('index.php/crud/hapus/').$baris->id.">Hapus</a></td>";
				echo "</tr>";
			$no++; } 


		?>
	</table> 

</body>
</html>

Script diatas untuk menampilkan data dengan menggunakan fungsi foreach().

Dan untuk potongan script dibawah ini berfungsi untuk membuat anchor/link yang nantinya akan digunakan untuk mengeksekusi Edit data dan Hapus data, berdasarkan id dari masing-masing baris data.

echo "<td><a href=".base_url('index.php/crud/edit/').$baris->id.">Edit</a></td>";
echo "<td><a href=".base_url('index.php/crud/hapus/').$baris->id.">Hapus</a></td>";

Selanjutnya coba sobat tampilkan data dengan memanggil url http://localhost/codeigniter/index.php/crud/tampil.

CRUD (Create / Input Data)

Setelah kita berhasil menampilkan data, selanjutnya kita masuk ke proses selanjutnya yaitu Create/Input data ke dalam database, buka file crud_input.php, dan di dalam file ini kita akan membuat form yang nantinya akan dijadikan tempat untuk menginput data. Silahkan salin script dibawah ini :

<!DOCTYPE html>
<html>
<body>

<form action="<?php echo base_url('index.php/crud/simpan'); ?>" method="POST">

	<h3>Input Data Kendaraan</h3>

	Merek Kendaraan :<br>
	<input type="text" name="merek_kendaraan">

	<br>
	<br>
	Nomor Polisi<br>
	<input type="text" name="nopol">

	<br><br>

	<input type="submit" value="Simpan">

</form> 
</body>
</html>

Untuk Url tujuan kita mengarahkannya ke halaman controller Crud.php function Simpan, dengan metode POST

<form action="<?php echo base_url('index.php/crud/simpan'); ?>" method="POST">

 

Selanjutnya buka file Crud.php yang berada di folder Controller, kemudian tambahkan  potongan script dibawah ini  :

public function input()
{
	$this->load->view('crud_input');
}
public function simpan()
{
	$data = array('merek_kendaraan' => $this->input->post('merek_kendaraan'), 'nopol' => $this->input->post('nopol'));
	$proses = $this->Model_crud->simpan($data);
	if (!$proses) {
		header('Location: tampil');
	} else {
		echo "Data Gagal Disimpan";
		echo "<br>";
		echo "<a href='".base_url('index.php/crud/input/')."'>Kembali ke form</a>";
	}
	
}

 

Untuk fungsi dari potongan script ini, gunanya untuk mengarahkan ke halaman form crud_input.php ketika function input yang berada di class Crud tadi dieksekusi.

public function input()
{
	$this->load->view('crud_input');
}

 

Dan untuk script dibawah ini adalah, menangkap semua value yang dikirim dari file crud_form.php kemudian menyimpannya di dalam variable $data. Kemudian data yang sudah didapatkan tadi ($data) dikirim ke file Model_crud.php function simpan untuk di proses dan disimpan ke dalam database.

Setelah itu dilakukan pengecekan pada variable $proses, apakah data yang dikirimkan ke file Model_crud tadi berhasil diproses atau gagal diproses, Jika berhasil diproses redirect kehalaman tampil data dan jika gagal melakukan insert data tampilkan pesan gagal.

public function simpan()
{
	$data = array('merek_kendaraan' => $this->input->post('merek_kendaraan'), 'nopol' => $this->input->post('nopol'));
	$proses = $this->Model_crud->simpan($data);
	if (!$proses) {
		header('Location: tampil');
	} else {
		echo "Data Gagal Disimpan";
		echo "<br>";
		echo "<a href='".base_url('index.php/crud/input/')."'>Kembali ke form</a>";
	}
	
}

 

Selanjutnyta, buka file Model_crud.php yang berada di folder Model, kemudian tambahkan script dibawah ini, berfungsi untuk melakukan query SQL dalam proses insert data ke dalam database berdasarkan data yang dikirimkan dari file Crud.php function simpan tadi melalui variabel $data.

public function simpan($data)
{
	$this->db->insert('kendaraan', $data);
}

 

Nah, coba sobat jalankan dengan memanggil url http://localhost/index.php/crud/input untuk form input data, jika berjalan normal tanpa error seperti gambar dibawah ini berarti untuk sementara sukses menampilkan data dan menginput data.

CRUD (Update / Edit dan Update Data)

Setelah kita berhasil menampilkan data dan melakukan insert data ke dalam database, selanjutnya kita akan belajar bagaimana caranya mengedit dan mengupdate data yang ada di database.

Oke,langsung saja buka file Model_crud.php dan tambahkan potongan script ini.

public function edit($id)
{
	$query = $this->db->get_where('kendaraan', array('id' => $id));
	return $query;
}

Script diatas berfungi untuk mengambil baris data yang ada di database berdasarkan id, yang nantinya id tersebut ada dikirimkan dari file Crud.php.

 

Kemudian buka file Crud.php dan tambahkan potongan script ini. Script dibawah ini berfungsi ketika link url edit dieksekusi maka dia mengambil segment ketiga dari url.

Misalnya untuk urlnya seperti ini http://localhost/codeigniter/index.php/crud/edit/3, didalam URL tersebut kita sudah memiliki 3 segment yaitu crud, edit, dan 3 secara sederhana URI segment codeigniter,  terbagi menjadi 3 segment, Segment 1 adalah nama class atau controller (contoh : crud). segment ke 2 adalah nama method atau function dari class/controller (contoh : edit),  dan segment 3 berupa data berbentuk id dan sebagainya (contoh : 3). Dan untuk segment dimulai dari index.php/

Dan uri segement tersebut disimpan dalam variable $id, kemudian dikirim ke Model_crud.php function edit dan untuk return hasil dari query tersebut diambil dan dikirim lagi ke halaman form crud_edit.php.

public function edit()
{
	$id = $this->uri->segment(3);
	$data['query'] = $this->Model_crud->edit($id);
	$this->load->view('crud_edit', $data);
}

 

Langkah selanjutnya sobat buka folder View dan buat satu file beri nama crud_edit.php, kemudian pastekan script dibawah ini.

<!DOCTYPE html>
<html>
<body>

<form action="<?php echo base_url('index.php/crud/update'); ?>" method="POST">

<?php foreach ($query->result() as $baris) { ?>

	<h3>Edit Data Kendaraan</h3>

	<input type="hidden" name="id" value="<?php echo $baris->id; ?>">


	Merek Kendaraan :<br>
	<input type="text" name="merek_kendaraan" value="<?php echo $baris->merek_kendaraan; ?>">

	<br>
	<br>
	Nomor Polisi<br>
	<input type="text" name="nopol" value="<?php echo $baris->nopol; ?>">

	<br><br>

	<input type="submit" value="Update">
<?php } ?>
</form> 
</body>
</html>

Perhatikan script diatas, untuk form action kita mengarahkannya ke fungsi update yang berada di dalam class Crud, dengan tetap menggunakan metode POST.

<input type="hidden" name="id" value="<?php echo $baris->id; ?>">

kemudian tambahkan satu inputan dengan type hidden, gunanya untuk menangkap id dari baris data yang diedit tadi, untuk lain-lainya seperti form biasa dengan tambahan menampilkan baris data ke dalam inputan dengan menggunakan fungsi foreach().

 

Selanjutnya, buka kembali file Crud.php dan tambahkan script ini.

public function update()
{
	$id = $this->input->post('id');
	$data = array('merek_kendaraan' => $this->input->post('merek_kendaraan'), 'nopol' => $this->input->post('nopol'));
	
	$proses = $this->Model_crud->update($id, $data);
	if (!$proses) {
		header('Location: tampil');
	} else {
		echo "Data Gagal Diupdate";
		echo "<br>";
		echo "<a href='".base_url('index.php/crud/tampil/')."'>Tampil data</a>";
	}
}

Pada script diatas terdapat 2 variable data yaitu $id dan $data, untuk $id digunakan untuk menampung id yang dikirim dari form edit tadi dan untuk $data digunakan untuk menampung data yang juga dikirim dari form edit tadi

$proses = $this->Model_crud->update($id, $data);

Kemudian lakukan proses operasi database untuk melakukan update data melalui Model_crud.php function update dengan menyertakan variabel $id dan $data. Hasil dari update data jika tidak error seperti gambar dibawah ini :

CRUD (Delete / Hapus Data)

Dan untuk mengakhiri tutorial ini kita akan belajar mengpaus data yang ada di database. Kembali buka file Crud.php dan tambahkan potongan script dibawah ini.

public function hapus()
{
	$id = $this->uri->segment(3);
	$proses = $this->Model_crud->hapus($id);
	if (!$proses) {
		redirect(base_url('index.php/crud/tampil/'));
	} else {
		echo "Data Gagal dihapus";
		echo "<br>";
		echo "<a href='".base_url('index.php/crud/tampil/')."'>Tampil data</a>";
	}
}

 

Untuk menghapus data hampir mirip dengan edit dan update data, kita tetap akan menggunakan uri segment, jadi data yang akan di hapus nanti berdasarkan id yang didapat dari URI Segment tadi. Kemudian dikirim ke Model_crud.php function hapus, dan maka akan dilakukan proses penghapusan data.

 

Sobat buka lagi Model_crud.php tadi dan tambahkan potongan script seperti dibawah ini. Fungsi script dibawah ini untuk melakukan query pada database untuk melakukan penghapusan data berdasarkan id yang dikirim dari file Crud.php function hapus.

public function hapus($id)
{
	$this->db->where('id', $id);
	$query = $this->db->delete('kendaraan');
}

 

Jika tidak terjadi error, maka tampilannya akan seperti gambar dibawah ini.

Selamat mencoba…

Jika ingin sobat mendownload full script tutorial CRUD ini silahkan mendownloadnya disini https://tondanoweb.com/arsip/codeigniter.zip

Referensi full dan lengkap di https://www.codeigniter.com/user_guide/

Demikian Untuk tutorial kali ini, jika sobat punya komentar, kritik, saran maupun masukkan, silahkan menuliskannya di dalam kolom komentar dibawah ini atau menghubungi kami melalui halaman kontak yang sudah tersedia.

Add a Comment

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