Datatables
Oke guys kali ini gua akan sharing tutorial untuk membuat crud sederhana dengan
menggunakan konsep ajax dengan framework codeigniter. keuntungan menggunakan ajax
yaitu kita tidak perlu merefresh halaman web page saat sedang memproses data, pada tahap
kali ini minimal lu udah tau apa konsep crud secara PHP native, klo lu belon tau, ada kala
baiknya belajar crud php secara native dulu, oke langsung saja hal yang harus lu persiapkan
adalah lu harus sudah mempunyai beberapa library seperti
1. Codeigniter
2. Bootstrap,Jquery,Datatables,Swal Js
untuk point library nomor 2 gua menggunakan CDN secara online(menurut gua lebih
simple), kalo lu pada mau download secara manual it’s okay,
sebelumnya kita akan membuat sebuah database yaitu database ‘tutorial_ajaxci’ dengan nama
table mahasiswa, gua harap kalian sudah bisa membuat database dan table sendiri, oke gua
akan kasih fieldnya dengan
id (int autoincrement)
nama_mahasiswa (varchar 50)
alamat (varchar 50)
cukup sederhana field databasenya nah disini gua hanya akan sharing hal yang basic saja jadi
nanti jika kalian sudah paham ini nanti tinggal kalian kembangkan saja sesuka kalian
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$active_group = 'default';
$query_builder = TRUE;
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'tutorial_ajaxci',
'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
);
$autoload['model'] = array('datamahasiswa_model');
$autoload['libraries'] = array('database');
$autoload['helper'] = array('url');
Menampilkan Data
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Home extends CI_Controller {
public function index()
{
$this->load->view('tampildata');
$this->load->view('ajaxcrud');
}
}
/* End of file Home.php */
na itu adalah beberapa library yang gua gunain, klo mau download manual yang silakan aja
bro, lalu lu buat 1 file lagi untuk ajaxcrud.php disini intinya adalah kita akan menggunakan
konsep ajax pada codeigniter
<script>
$(document).ready(function () {
var datamahasiswa = $('#datamahasiswa').DataTable({})
});
</script>
nah klo uda jadi lu coba da tu, klo gua jalanin dengan cara nulis url kaya gini
http://localhost/tutorial/tutorialajax/index.php/home
Kedua file itu untuk part 1 adalah tempalte (tampilan) untuk membuat aplikasi crud tersebut
selanjutnya di part 2 gua akan sharing bagaimana cara menginsert data dengan menggunakan
ajax yang manisin (anjayyy di manisin ) oleh sweet alert.
Menampilkan data mahasiswa serta insert data dari form
setelah kalian setting kedua file tersebut buatlah file pada models/Datamahasiswa_model.php
yaitu dimana untuk memanipulasi database
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Datamahasiswa_model extends CI_Model {
// untuk menampilkan datamahasiswa
public function getdatamahasiswa()
{
$this->db->select('*');
$this->db->from('mahasiswa');
$query = $this->db->get();
return $query->result_array();
}
// untuk insert datamahasiswa
public function insertmahasiswa($data)
{
return $this->db->insert('mahasiswa', $data);
}
}
/* End of file Datamahasiswa_model.php */
ini adalah 2 fungsi untuk menampilkan data mahasiswa dan untuk menginsert data
mahasiswa. oke setelah itu kita tambahkan beberapa function di application/Home.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Home extends CI_Controller {
public function index()
{
$this->load->view('tampildata');
$this->load->view('ajaxcrud');
}
public function datamahasiswa()
{
$datamahasiswa = $this->datamahasiswa_model->getdatamahasiswa();
$no =1;
foreach ($datamahasiswa as $value) {
$tbody = array();
$tbody[] = $no++;
$tbody[] = $value['nama_mahasiswa'];
$tbody[] = $value['alamat'];
$aksi= "<button class='btn btn-success ubah-mahasiswa' data-
toggle='modal' data-id=".$value['id'].">Ubah</button>".' '."<button class='btn btn-
danger hapus-mahasiswa' id='id' data-toggle='modal' data-
id=".$value['id'].">Hapus</button>";
$tbody[] = $aksi;
$data[] = $tbody;
}
if ($datamahasiswa) {
echo json_encode(array('data'=> $data));
}else{
echo json_encode(array('data'=>0));
}
}
public function tambahmhs()
{
// didapat dari ajax yang dimana data{nama:nama,alamat:alamat}
$nama = $this->input->post('nama');
$alamat = $this->input->post('alamat');
$tambahmhs = array (
'nama_mahasiswa'=>$nama,
'alamat' => $alamat
);
$data = $this->datamahasiswa_model->insertmahasiswa($tambahmhs);
echo json_encode($data);
}
}
/* End of file Home.php */
oke setelah melalui tahap sebelumnya selanjutnya untuk menjalakan ajaxnya elu harus
menambahkan script pada ajaxcrud.php
$(document).ready(function () {
// ini adalah fungsi untuk mengambil data mahasiswa dan di incluce ke dalam
datatable
var datamahasiswa = $('#datamahasiswa').DataTable({
"processing": true,
"ajax": "<?=base_url("index.php/home/datamahasiswa")?>",
stateSave: true,
"order": []
})
$.ajax({
type: "post",
url: "<?=base_url('index.php/home/tambahmhs')?>",
beforeSend :function () {
swal({
title: 'Menunggu',
html: 'Memproses data',
onOpen: () => {
swal.showLoading()
}
})
},
data: {nama:nama,alamat:alamat}, // ambil datanya dari form yang ada di
variabel
dataType: "JSON",
success: function (data) {
datamahasiswa.ajax.reload(null,false);
swal({
type: 'success',
title: 'Tambah Mahasiswa',
text: 'Anda Berhasil Menambah Mahasiswa'
})
// bersihkan form pada modal
$('#tambahmahasiswa').modal('hide');
// tutup modal
$('#nama').val('');
$('#alamat').val('');
}
})
return false;
});
});
setelah lu menulis kode ini maka tahap untuk tambah data dan tampil data sudah bisa kalian
jalankan
oke gua rasa itu adalah cara untuk menampilkan data dan menampilkan data mahasiswa
menggunakan konsep ajax jika kalian coba maka pada saat proses menambahkan data, maka
website tidak akan load (merefresh).
pertama hal yang harus hal yang elu buat adalah elu harus membuat form secara dinamis
untuk menampilkan data yang akan diubah
tambahkan form modal pada file ajaxcrud.php seperti menambahkan form modal tambah data
pada part2 sebelumnnya
</div>
</div>
</div>
</div>
setelah membuat form modal tersebut mari script ajax untuk mendapat data mahasiswa yang
ingin kita edit, masih dalam ajaxcrud.php
$('#datamahasiswa').on('click','.ubah-mahasiswa', function () {
// ambil element id pada saat klik ubah
var id = $(this).data('id');
$.ajax({
type: "post",
url: "<?=base_url('index.php/home/formedit')?>",
beforeSend :function () {
swal({
title: 'Menunggu',
html: 'Memproses data',
onOpen: () => {
swal.showLoading()
}
})
},
data: {id:id},
success: function (data) {
swal.close();
$('#editmahasiswa').modal('show');
$('#formdatamahasiswa').html(data);
}
});
});
nah pada script tersebut, yaitu pada saat klik ubah dalam table dengan id #datamahasiswa dan
class .ubah-mahasiswa maka akan terjadi proses pemanggilan data form modal dengan
menggunakan ajax yang mengarah pada controller home dengan function formedit kemudian
tambahkan script pada Home.php dengan function formedit
$data['datapermahasiswa'] = $this->datamahasiswa_model-
>datamahasiswaedit($id);
$this->load->view('formeditmhs',$data);
}
pada function formedit untuk pemangilan data mahasiswa yang akan di edit menggunakan
parameter id yang telah diambil dari script ajaxcrud.php yang ada diatas, lalu kemuadian
panggil data yang akan segera diubah dengan menggunakan model dari
datamahasiswa_model dengan function datamahasiswaedit. tambahkan function pada
Datamahasiswa_model.php dengan script seperti ini
jika berhasil maka akan muncul form data seperti gambar diatas, klo masih belum bisa berati
ada yang salah nah coba elu cek lagi da tu hahahaha. setelah itu masih ada 1 step lagi yaitu
membuat fungsi untuk mengubah data tersebut sampai tersimpan didalam database
tambahkan script pada ajaxcrud.php pada lanjutan ajax #datamahasiswa dan class .ubah-
mahasiswa seperti ini
$('#datamahasiswa').on('click','.ubah-mahasiswa', function () {
// ambil element id pada saat klik ubah
var id = $(this).data('id');
$.ajax({
type: "post",
url: "<?=base_url('index.php/home/formedit')?>",
beforeSend :function () {
swal({
title: 'Menunggu',
html: 'Memproses data',
onOpen: () => {
swal.showLoading()
}
})
},
data: {id:id},
success: function (data) {
swal.close();
$('#editmahasiswa').modal('show');
$('#formdatamahasiswa').html(data);
lalu kita buat model untuk proses query update pada Datamahasiswa_model.php seperti ini
setelah membuat model tersebut gua akan membuat fungsi untuk mengubah data pada
Home.php dengan menambahkan function ubahmahasiswa seperti ini
public function ubahmahasiswa()
{
$objdata = array(
'nama_mahasiswa'=>$this->input->post('editnama'),
'alamat'=>$this->input->post('editalamat')
);
$id = $this->input->post('id');
$data = $this->datamahasiswa_model->ubahmahasiswa($objdata,$id);
echo json_encode($data);
}
jika sudah seperti ini maka kita sudah selesai untuk membuat fungsi ubah data mahasiswa
dengan menggunakan ajax dan variasi sweet alert maka hasilnya akan seperti ini
Menghapus Data
delete dimana logic itu kita hanya membutuhkan 1 parameter data yaitu id dan dimana id itu
akan menjadi acuan untuk menghapus salah 1 data yang akan dihapus oke langsung saja
tambahkan pada file ajaxcrud.php dengan script seperti ini
pada script yang diatas yaitu fungsi event ketika melakukan klik hapus pada table data
mahasiswa kemudian akan memunculkan konfirmasi penghapusan data
fungsi konfirmasi
jika kita pilih button hapus maka akan terjadilah proses penghapusan data nah untuk
controllernya buat tambahkan pada file Home.php tambah function hapusmahasiswa() seperti
ini
$data = $this->datamahasiswa_model->hapusdatamahasiswa($id);
echo json_encode($data);
}
untuk fungsi model penghapusan data sangat simpel sekali kita tambahkan pada file
Datamahasiswa_model.php seperti ini
nah itu untuk fungsi hapusnya jika berhasil maka akan tampil seperti ini guys
berhasil menghapus data
nah itu lah tutorial untuk membuat aplikasi CRUD sederhana menggunakan konsep ajax
gimana cukup simple kah? tenang broo ni gua ada source code secara lengkapnya di sini
mungkin nanti akan kalian bisa kembangkan nah mungkin itu aja yang gua share, semoga
bermanfaat thanks guys