Membuat CRUD dengan DataGrid jQuery EasyUI PHP dan MySQL

Membuat CRUD dengan DataGrid jQuery EasyUI PHP dan MySQL tidaklah rumit dan cukup terbilang mudah. Kamu hanya perlu mengikuti langkah sederhana dalam artikel ini agar dapat menggunakan DatGrid jQuery EasyUI.


Membuat CRUD dengan DataGrid jQuery EasyUI PHP dan MySQL - Tutorial kita kali ini adalah sebuah library jQuery yang fokus pada UI atau User Interface. Kamu bisa melihat informasi detailnya di situs resminya di sini. JQuery EasyUI biasa disingkat menjadi jEasyUI atau EasyUI. Saya akan menggunakan EasyUI saja untuk mempersingkatnya. Yang menarik perhatian saya adalah dokumentasi dan tutorial dari EasyUI ini yang terdapat dalam Bahasa China. Jarang-jarang lho tutorial programming dalam Bahasa China. :D

Untuk memudahkan implementasi, studi kasus dalam tutorial ini adalah pengolahan data siswa sederhana. Yang harus kamu persiapkan:
  1. Web Server: wamp, xampp, dan lain-lain. Saya sendiri menggunakan wamp. Terserah kawan-kawan mau pakai yang mana karena pada intinya sama saja.
  2. Database: MySQL tentunya. Saya di sini menggunakan Navicat sebagai aplikasi manajemen basis datanya. Kamu bisa menggunakan phpmyadmin juga, tenang saja.
  3. Editor: Sublime 3.0, Notepad++, PhpStorm, dan lain-lain. Saya sendiri menggunakan Sublime 3.0.
  4. Library EasyUI. Kamu bisa unduh library tersebut di sini: tautan

Membuat Database Sekolah

Langkah pertama yang harus dilakukan adalah membuat database terlebih dahulu. Beri nama database kita kali ini dengan nama sekolah

Membuat Tabel Siswa

Setelah database sekolah dibuat, langkah selanjutnya adalah membuat tabel siswa. Berikut strukturnya:
Struktur tabel siswa
Gambar 1 - Struktur tabel siswa
Atau kamu bisa unduh file sql beserta data dummy-nya di sini: tautan

Membuat File Index atau Halaman Depan

Setelah database sekolah dan tabel siswa dibuat, langkah selanjutnya adalah membuat file index atau halaman depan. Karena EasyUI ini biasanya single page application atau aplikasi satu halaman saja, maka tidak perlu membuat banyak halaman. Namun sebelum membuat file index tersebut, ekstrak berkas EasyUI yang sudah diunduh tadi ke dalam folder proyek kita kali ini.

Setelah mengekstrak dan meletakkan berkas-berkas EasyUI tersebut di folder proyek kita, selanjutnya adalah membuat file index. Berikut skrip untuk halaman depan dengan nama file index.html:

[<!DOCTYPE html>
<html>
 <head>
     <title>DataGrid - EasyUI</title>

     <link rel="stylesheet" type="text/css" href="themes/default/easyui.css">
     <link rel="stylesheet" type="text/css" href="themes/icon.css">
     <link rel="stylesheet" type="text/css" href="demo/demo.css">
 </head>
 <body>
     <table id="tabelSiswa" class="easyui-datagrid" title="Data Siswa" style="width:700px;height:250px"
             data-options="singleSelect:true,collapsible:true,url:'data/datasiswa.php',method:'get'">
         <thead>
             <tr>
                 <th data-options="field:'no',width:40,align:'center'">No</th>
                 <th data-options="field:'nisn',width:100">NISN</th>
                 <th data-options="field:'nama_siswa',width:200">Nama Siswa</th>
                 <th data-options="field:'tanggal_lahir',width:150">Tanggal Lahir</th>
                 <th data-options="field:'jenis_kelamin',width:40,align:'center'">JK</th>
             </tr>
         </thead>
     </table>

     <script type="text/javascript" src="jquery.min.js"></script>
     <script type="text/javascript" src="jquery.easyui.min.js"></script>
 </body>
</html>]

Tampilan dari skrip di atas adalah sebagai berikut:
Tampilan datagrid siswa pada halaman depan
Gambar 2 - Tampilan datagrid siswa pada halaman depan
Mengapa datanya masih kosong? Karena belum dihubungkan ke database. Lanjut ke langkah berikutnya!

Membuat File PHP Data Siswa

Setelah membuat tampilan datagrid siswa, langkah selanjutnya adalah membuat file PHP data siswa. Agar folder lebih terstruktur, silakan buat folder baru di folder proyek kita kali ini dengan nama data. Kemudian buatlah sebuah file dengan nama datasiswa.php dengan skrip sebagai berikut:

[<?php
 $dbHost  = 'localhost';
 $dbUser  = 'root';
 $dbPass  = '';
 $dbName  = 'sekolah';

 $Koneksi = mysqli_connect($dbHost, $dbUser, $dbPass, $dbName);
 
 $retArr = array();
 $no = 1;

 $qry = mysqli_query($Koneksi, "SELECT * FROM siswa");
 while ($item = mysqli_fetch_array($qry)){
  $id = $no - 1;

  $retArr[$id] = $item;
  $retArr[$id]['no'] = $no;

  $no++;
 }

 echo json_encode($retArr);
?>]

Silakan sesuaikan untuk setelan basis datanya dengan setelan komputer kawan-kawan.

Setelah membuat file data/datasiswa.php dan menyimpan skrip tersebut, silakan muat ulang halaman proyek kita tadi. Berikut tampilannya:
Tampilan datagrid siswa di halaman depan yang sudah terhubung ke database
Gambar 3 - Tampilan datagrid siswa di halaman depan yang sudah terhubung ke database
Sekarang data siswa sudah muncul. Langkah selanjutnya adalah operasi CRUD. Mohon bersabar, ya. :)

Membuat Toolbar DataGrid

Setelah data siswa berhasil muncul, langkah selanjutnya adalah membuat toolbar untuk keperluan CRUD nanti. Tambahkan skrip berikut pada baris ke-24 pada file index.html yang telah kita buat sebelumnya:

[       <div id="toolbar">
            <a href="#" class="easyui-linkbutton" iconCls="icon-add" plain="true" onclick="siswaFormDialog()">Tambah</a>
            <a href="#" class="easyui-linkbutton" iconCls="icon-edit" plain="true" onclick="siswaUbah()">Ubah</a>
            <a href="#" class="easyui-linkbutton" iconCls="icon-remove" plain="true" onclick="siswaHapus()">Hapus</a>
        </div>]

Kemudian ubah skrip pada baris ke-13 menjadi:

[           <table class="easyui-datagrid" title="Data Siswa" style="width:700px;height:250px"
             data-options="singleSelect:true,collapsible:true,url:'data/datasiswa.php',method:'get',toolbar:'#toolbar'">]

Yang saya bold pada skrip di atas menandakan skrip tambahan. Skrip tersebut berarti akan membuat toolbar pada element id toolbar yang sebelumnya sudah kita tambahkan skrip elemen toolbar tersebut.

Berikut tampilannya:
Gambar 4 - Tampilan datagrid siswa pada halaman depan dengan toolbar untuk proses CRUD

Membuat Event jQuery untuk CRUD

Tombol-tombol pada toolbar tersebut belum berfungsi karena belum diberikan event. Tiga tombol tersebut berarti memiliki event-event yang berbeda.[lock]

Event Tambah

Jika tombol tambah diklik, maka akan muncul sebuah kotak dialog yang berisi formulir data siswa. Oleh karena itu, kita perlu menambahkan skrip formulir tersebut ke dalam file. Tambahkan skrip berikut pada baris ke-30:

[       <div id="siswaFormDialog" class="easyui-dialog" style="width: 500px; height: 300px; padding: 10px;" closed="true" buttons="#siswaFormDialog-buttons" data-options="modal:true">
            <form id="formSiswa" method="post" style="width: 450px;">
                <div style="margin-bottom: 10px;">
                    <input class="easyui-textbox" type="text" required="true" name="nisn" style="width: 100%;" data-options="label:'NISN'"></input>
                </div>

                <div style="margin-bottom: 10px;">
                    <input class="easyui-textbox" type="text" name="nama_siswa" style="width: 100%;" data-options="label:'Nama Siswa'"></input>
                </div>

                <div style="margin-bottom: 10px;">
                    <input class="easyui-datebox" name="tanggal_lahir" data-options="label: 'Tanggal Lahir'" style="width: 100%;"></input>
                </div>

                <div style="margin-bottom: 10px;">
                    <select class="easyui-combobox" id="jenis_kelamin" name="jenis_kelamin" data-options="label: 'Jenis Kelamin',editable: false" style="width:100%;">
                        <option value="L">L</option>
                        <option value="P">P</option>
                    </select>
                </div>
            </form>

            <div id="siswaFormDialog-buttons">
                <a href="javascript:void(0)" class="easyui-linkbutton c6" iconCls="icon-ok" onclick="siswaSimpan()" style="width:90px">Save</a>
                <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#siswaFormDialog').dialog('close')" style="width:90px">Cancel</a>
            </div>
        </div>]

Setelah skrip di atas ditambahkan, langkah selanjutnya adalah memberikan event saat tombol tambah pada toolbar diklik. Tambahkan skrip berikut pada baris ke-60:

[     <script type="text/javascript">
                function siswaFormDialog(){
                    $('#siswaFormDialog').dialog('open').dialog('setTitle', 'Tambah Data Siswa Baru');
                    $('#formSiswa').form('clear');
                    url = 'data/datasiswa_simpan.php';
                }
     </script>]

Coba sekarang tombol tambah pada toolbar! Berikut tampilannya jika berhasil:
Tampilan kotak dialog formulir tambah data siswa baru
Gambar 5 - Tampilan kotak dialog formulir tambah data siswa baru
Setelah kotak dialog formulir tambah data siswa berhasil muncul, langkah selanjutnya adalah membuat event saat tombol save diklik atau dengan kata lain proses penyimpanan data baru ke database.

Tambahkanlah skrip berikut pada baris ke-67 pada file index.html:

[           function siswaSimpan(){
               $('#formSiswa').form('submit',{
                    url: url,
                    onSubmit: function(){
                        return $(this).form('validate');
                    },
                    success: function(result){
                        if(result == "\"sukses\""){
                            $.messager.show({
                                title: 'Informasi',
                                msg: 'Berhasil mengeksekusi data siswa!'
                            });
                        } else {
                            $.messager.show({
                                title: 'Error',
                                msg: result
                            });
                        }

                        $('#siswaFormDialog').dialog('close');
                        $('#tabelSiswa').datagrid('reload');
                    }
                });
            }]

Kemudian buatlah sebuah file baru di folder data dengan nama datasiswa_simpan.php! Berikut skripnya:

[<?php
 $dbHost  = 'localhost';
 $dbUser  = 'root';
 $dbPass  = '';
 $dbName  = 'sekolah';

 $Koneksi = mysqli_connect($dbHost, $dbUser, $dbPass, $dbName);

 $nisn = $_POST['nisn'];
 $nama_siswa = $_POST['nama_siswa']; 
 $jenis_kelamin = $_POST['jenis_kelamin']; 

 $tanggal_lahir = $_POST['tanggal_lahir'];
 $tahun   = substr($tanggal_lahir, 6, 4);
 $bulan   = substr($tanggal_lahir, 0, 2);
 $tanggal  = substr($tanggal_lahir, 3, 2);
 $tanggal_lahir = $tahun . "-" . $bulan . "-" . $tanggal;

 $qry = mysqli_query($Koneksi, "INSERT INTO siswa VALUES(NULL, '$nisn','$nama_siswa','$tanggal_lahir','$jenis_kelamin')");

 if($qry){
  $data = "sukses";
 } else {
  $data = $qry;
 }

 echo json_encode($data);
?>]

Sekarang cobalah untuk menambahkan data siswa baru!

Event Ubah

Setelah event tambah berhasil ditambahkan, selanjutnya adalah memberikan event saat tombol ubah pada toolbar diklik. Silakan tambahkan skrip berikut pada baris ke-92 pada file index.html:

[           function siswaUbah(){
                var row = $('#tabelSiswa').datagrid('getSelected');

                if(row){
                    $('#siswaFormDialog').dialog('open').dialog('setTitle', 'Ubah Data Siswa');
                    $('#formSiswa').form('load', row);
                    url = 'data/datasiswa_ubah.php?id_siswa=' + row.id_siswa;
                } else {
                    $.messager.show({
                        title: 'Error',
                        msg: 'Silakan pilih satu baris!'
                    });
                }
            }]

Kemudian buatlah sebuah file baru di folder data dengan nama datasiswa_ubah.php! Berikut skripnya:

[<?php
 $dbHost  = 'localhost';
 $dbUser  = 'root';
 $dbPass  = '';
 $dbName  = 'sekolah';

 $Koneksi = mysqli_connect($dbHost, $dbUser, $dbPass, $dbName);
 
 $id_siswa = $_GET['id_siswa'];
 $nisn = $_POST['nisn']; 
 $nama_siswa = $_POST['nama_siswa']; 
 $jenis_kelamin = $_POST['jenis_kelamin']; 

 $tanggal_lahir = $_POST['tanggal_lahir'];
 $tahun   = substr($tanggal_lahir, 6, 4);
 $bulan   = substr($tanggal_lahir, 0, 2);
 $tanggal  = substr($tanggal_lahir, 3, 2);
 $tanggal_lahir = $tahun . "-" . $bulan . "-" . $tanggal;

 $qry = mysqli_query($Koneksi, "UPDATE siswa SET nisn = '". $nisn. "', nama_siswa = '". $nama_siswa. "', tanggal_lahir = '". $tanggal_lahir. "', jenis_kelamin = '". $jenis_kelamin. "' WHERE id_siswa='". $id_siswa ."'");

 if($qry){
  $data = "sukses";
 } else {
  $data = $qry;
 }

 echo json_encode($data);
?>]

Cobalah untuk mengubah data siswa dalam datagrid untuk mengetahui hasilnya!

Event Hapus

Setelah event ubah berhasil ditambahkan, selanjutnya adalah memberikan event saat tombol hapus pada toolbar diklik. Silakan tambahkan skrip berikut pada baris ke-107 pada file index.html:

[           function siswaHapus(){
                var row = $('#tabelSiswa').datagrid('getSelected');

                if(row){
                    $.messager.confirm('Konfirmasi', 'Apakah Anda yakin ingin menghapus data tersebut?', function(action){
                        if(action){
                            $.post('data/datasiswa_hapus.php', {id:row.id_siswa}, function(result){
                                if(result.success){
                                    $('#tabelSiswa').datagrid('reload');

                                    $.messager.show({
                                        title: 'Informasi', 
                                        msg: 'Berhasil menghapus data tersebut!'
                                    });
                                } else {
                                    $.messager.show({
                                        title: 'Error', 
                                        msg: result.errorMsg
                                    });
                                }
                            }, 'json');
                        }
                    });
                } else {
                    $.messager.show({
                        title: 'Error', 
                        msg: 'Silakan pilih salah satu baris!'
                    });
                }
            }]

Kemudian buatlah sebuah file baru di folder data dengan nama datasiswa_hapus.php! Berikut skripnya:

[<?php
 $dbHost  = 'localhost';
 $dbUser  = 'root';
 $dbPass  = '';
 $dbName  = 'sekolah';

 $Koneksi = mysqli_connect($dbHost, $dbUser, $dbPass, $dbName);
 
 $id_siswa = intval($_REQUEST['id']);

 $qrySiswa = mysqli_query($Koneksi, "DELETE FROM siswa WHERE id_siswa = '$id_siswa'");
 if($qrySiswa){
  $data = array('success' => true);
 } else {
  $data = array('errorMsg' => $qrySiswa);
 }

 echo json_encode($data);
?>]

Cobalah untuk menghapus salah satu data siswa dalam datagrid untuk melihat hasilnya!

Unduh

Unduh proyek pada artikel ini di sini:

Penutup

Itulah tutorial dari saya mengenai bagaimana cara Membuat CRUD dengan DataGrid jQuery EasyUI PHP dan MySQL. Kamu bisa menyederhanakan skrip di atas sesuai dengan standar yang kalian miliki. Saya menyukai tampilan EasyUI karena tampak seperti aplikasi desktop dan single page application. Jadi kita tidak perlu memuat ulang halaman peramban (browser) kita setiap melakukan aksi.

Semoga bisa membantu kawan-kawan. Terima kasih. :)

COMMENTS

BLOGGER: 1
Loading...
Name

2016,2,Action,1,Adventure,1,Agama Kristen,1,Agama Yahudi,1,Ahok,2,Ajax,2,Android,1,Aplikasi,1,Art of War,1,Bahasa,1,Balai Bahasa,1,Beasiswa,4,Belanda,1,Biografi,1,Blindness,1,Blog,3,Brothers,1,Cards View,1,Catatan Hidup,1,Change.org,1,China,1,Comedy,1,Cover,1,CSS,2,Curhat,1,DataGrid,1,Demo Bela Islam I,1,Disaster,1,Disqus,1,Dokumentasi,8,Download,3,Drama,1,Drama Korea,3,Duolingo,1,EasyUI,1,Framework CSS,1,Game,3,GIT,1,Google AdSense,1,Groningen,1,Groningen University,1,HTML,2,Islam,2,jQuery,5,K-Film,3,K-Movie,4,Kata Mutiara,1,Kisah Hidup,1,Konfusius,1,Korean,4,KPOP,1,Kriptografi,1,Kuliah,1,Kungfu,1,Kungfu Style,1,Kustomisasi,1,Kutipan,1,LKS Jawa Barat 2011,1,LPDP,26,LPDP Batch 4 2016,11,LPDP Pinned,2,Material Design,2,Materialize,1,Motivasi,1,Movie,4,Mozilla Firefox,1,Muslim Cyber Army,1,MySQLi,1,NetBeans,1,Niagahoster,1,Object Oriented Programming,1,Opini,7,Paspor,1,Pendidikan,1,Pengalaman,26,Pengayaan Bahasa,4,Perang,1,Perbandingan Agama,3,Petisi Online,1,PHP,6,PowerDesigner,3,QR Code,1,Review,3,Sejarah,1,Simulation,1,Software,1,Source Code,1,Strategy,2,Studi Agama-agama,1,Sun Tzu,1,Suspense-Thriller,1,Themes24x7,1,Tips dan Trik,13,TOEFL,4,TOEFL ITP,4,Train,1,Troubleshooting,2,Tutorial,23,UPI Bandung,1,Video,2,Virus,1,W2UI,1,Walkband,1,Web Design,7,Web Programming,3,Yesus Kristus,2,Zakir Naik,1,Zhang Ziyi,1,Zombie,1,
ltr
item
Anan Bahrul Khoir: Membuat CRUD dengan DataGrid jQuery EasyUI PHP dan MySQL
Membuat CRUD dengan DataGrid jQuery EasyUI PHP dan MySQL
Membuat CRUD dengan DataGrid jQuery EasyUI PHP dan MySQL tidaklah rumit dan cukup terbilang mudah. Kamu hanya perlu mengikuti langkah sederhana dalam artikel ini agar dapat menggunakan DatGrid jQuery EasyUI.
https://3.bp.blogspot.com/-2Hwwl3e4m1U/WUQLYu7498I/AAAAAAAAA6g/udzaiw8uFAILwx1DX1PGd0kbtI9-XzFegCEwYBhgL/s320/screenshot-latihan-2017-06-16-23-46-09.png
https://3.bp.blogspot.com/-2Hwwl3e4m1U/WUQLYu7498I/AAAAAAAAA6g/udzaiw8uFAILwx1DX1PGd0kbtI9-XzFegCEwYBhgL/s72-c/screenshot-latihan-2017-06-16-23-46-09.png
Anan Bahrul Khoir
http://ananbahrulkhoir.blogspot.com/2017/06/membuat-crud-dengan-datagrid-jquery.html
http://ananbahrulkhoir.blogspot.com/
http://ananbahrulkhoir.blogspot.com/
http://ananbahrulkhoir.blogspot.com/2017/06/membuat-crud-dengan-datagrid-jquery.html
true
1987288760696967984
UTF-8
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS CONTENT IS PREMIUM Please share to unlock Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy