Sortable Datagrid dengan Paginating Data

dokumen-dokumen yang mirip
Membuat Editable Datagrid menggunakan Javascript

Insert Data Menggunakan Database MySQL, PostgreSQL, Oracle

Bermain Dynamic Tabel Row dengan menggunakan Javascript

Membuat Paging Ala Google

Lisensi Dokumen: Uraian Kasus :

BAB V IMPLEMENTASI DAN PENGUJIAN. lingkungan perangkat lunak, implementasi database beserta struktur program dan

Pengenalan Script. Definisi HTML

Pemrograman Web Lanjut 2017

TUTORIAL PHP MYSQL Langkah Tepat menjadi Web Developer Handal, menguasai PHP dan MySQL, jalan terbaik membuat website dan aplikasi berbasis web

Membangun koneksi dari PHP ke MySQL adalah dengan fungsi mysql_connect();

BAB X AKSES DAN MANIPULASI DATA

Pemrograman Web PRAKTIKUM 6. Query Data 2. TUJUAN BELAJAR Mahasiswa dapat menggunakan PHP dan MySQL untuk mengupdate data

Langkah 1. Asep Tatang S.

Pertemuan Ke-13 (PHP & MYSQL) Adi Widodo,S.Kom.,MMSI 1

Script PHP dan MySQL J A M K E E M P A T

MODUL PEMOGRAMAN WEB II STMIK IM BANDUNG MODUL PEMOGRAMAN WEB II. Oleh: CHALIFA CHAZAR. Chalifa Chazar edu.script.id

Guide untuk Sistem Informasi Akademik Universitas Mercubuana

Basis Data I. Pertemuan Ke-12 (Aplikasi Basisdata berbasis web) Noor Ifada.

Membuat Toko Buku dengan PHP - MySQL

Conditional PRAKTIKUM PHP Conditional, Array & Perulangan di PHP

E-trik Ajax. Database MySQL. Dedi Alnas

MODUL PEMOGRAMAN WEB II STMIK IM BANDUNG MODUL PEMOGRAMAN WEB II. Oleh: CHALIFA CHAZAR. Chalifa Chazar edu.script.id

Pemrograman Web Lanjut 2017

BAB 7 APLIKASI KOMENTAR DAN VALIDASINYA

Cara Mudah Koneksi Php Dan Mysql Dengan Database

Simak baik-baik komentar-komentar dalam setiap skrip. Komentar diawali dengan tanda #, //, atau /* dan */

Konsep Basis Data di Web

TIB18 - PEMROGRAMAN WEB. Pemrograman Web Pertemuan & 21-22

b) Membuat database tiket. Siapkan databasenya dengan membuat database tiket Sampai langkah ini database tiket sudah siap digunakan

DAFTAR PUSTAKA. Andi, Menguasai Pemerograman Web Dengan Java Script. Wahana Komputer 2010

Praktikum 3 Cookie, Session, dan Database MySQL

Dengan asumsi bahwa aplikasi masih menggunakan cookie, maka query untuk membuka profil adalah seperti berikut:

BAB IV IMPLEMENTASI DAN PENGUJIAN

Materi 10: Create Read Update Delete

Advantages. Keunggulan :

E-trik Ajax. Ajax dan MySQL. Dedi Alnas

BAB IV IMPLEMENTASI DAN PEMBAHASAN SISTEM. Program dalam judul Sistem Informasi Geografis Obyek

Menangani Input dari User

TUTORIAL CODEIGNITER Langkah Tepat menjadi Web Developer Handal, menguasai CodeIgniter, jalan membuat aplikasi berbasis website lebih mudah

PEMANFAATAN SMS GATEWAY PADA SYSTEM PENDAFTARAN ONLINE (STUDI KASUS UNIVERSITAS MUHAMMADIYAH RIAU) HARUN MUKHTAR

Modul Pemrograman Web Teori + Praktik PHP, XML, Jquery, Ajax, Yii

Pemrograman Web Week 2. Team Teaching

MATERI WEB. Pembuatan Login Aplikasi, Dasboard Admin & Menu Keluar menggunakan PHP & Mysql. Bas-Dev : Ahmad Bastiar

LAMPIRAN. 1. Listing Program pada website sekolah. index.php

Lampiran Kode Program

Lampiran 1. Flowchart perancangan sistem

LAMPIRAN Source Code Untuk Menampilkan Halaman Home

Mengakses database MySQL melalui PHP

Pemrograman Web. Koneksi dan Manipulasi Basis Data. 7 Adam Hendra Brata

PRAKTIKUM 4 MENGURUTKAN DAN MENYARING DATA 24 Hasilnya akan sama dengan : SELECT KodeBuku, Judul FROM Buku ORDER BY Judul; Karena secara default data

Tutorial PHP Metode Searching - Multiple Keyword

Pemrograman Basis Data Berbasis Web

Menampilkan user online seperti di obrolan step by step

Pertemuan Ke-5 Client Side Scripting (JavaScript) S1 Teknik Informatika - Unijoyo 1

Pemrograman Web. Koneksi dan Manipulasi Basis Data. 7 Adam Hendra Brata

PHP & MYSQL. Ingat, PC anda tidak memerlukan tambahan khusus atau apapun untuk melihat hasil eksekusi kode PHP anda. Mengapa?

BAB IV HASIL DAN PEMBAHASAN. Sistem Informasi Penjualan dan Pembelian Barang Pada Toko Touring

Tutorial Membuat Program Web menggunakan PHP, MySQL, dan PHP

Multiple Upload dengan Jumlah Dinamis Menggunakan Javascript dalam Framework CodeIgniter

Upload File dengan Metode AJAX

BAB IV IMPLEMENTASI DAN PENGUJIAN

Mencetak Data Ke Word atau Excell

BAB IV IMPLEMENTASI DAN PENGUJIAN Implementasi Aplikasi Manajemen Arsip Berbasis Web

Membuat Login Dengan PHP dan MYSQL

Membuat Sistem Pertemanan Sederhana

Web Programming. Elfan Nofiari. IF-ITB/EN/Mar-05 IF3292 Web Programming. Page 1

Membuat Database mysql dengan PhpMyAdmin

Trik Mudah Membuat CMS Website dari Nol

Tutorial CakePHP Dasar Part III - Sorting, Pagination

Pemrograman Basis Data Berbasis Web

2. inputkk.php. 3. tampilkk.php

PHP + MySQL M. RUDYANTO ARIEF, MT

Membuat Form Dinamis dengan HTML & Javascript.

HTML (HyperText Markup Language)

TUTORIAL PHP MYSQL Langkah Tepat menjadi Web Developer Handal, menguasai PHP dan MySQL, jalan terbaik membuat website dan aplikasi berbasis web

BAB III IMPLEMENTASI. Program penghubung database tersebut disimpan dengan nama. konek.php. Berikut merupakan kode program penghubung Database :

BAB IV IMPLEMENTASI SISTEM

MySQL. Pemrograman Web/MI/D3 sks 1

Langkah Cara Membuat Form Login Menggunakan PHP dan MySQL Langkah 1: Membuat Tabel MySQL User/Pengguna

MEMBUAT MASTER BERITA Teknik Informatika Sopingi, M.Kom

Menampilkan Markers Google Maps API dengan PHP dan MySQL

Pemrograman Web. Koneksi dan Manipulasi Basis Data. Adam Hendra Brata

Levenshtein Distance.php

MODUL 11 MEMBUAT LOGIN USER

MODUL VI INTERAKSI DATABASE

MODUL PRAKTIKUM SISTEM TERDISTRIBUSI

9. Membuat Halaman Transaksi Penjualan

TUTORIAL PHP MYSQL Langkah Tepat menjadi Web Developer Handal, menguasai PHP dan MySQL, jalan terbaik membuat website dan aplikasi berbasis web

Pemrograman Basis Data Berbasis Web

Nofriza Nindiyasari

DAFTAR PUSTAKA. A.S, R., & Shalahuddin, M. (2013). Rekayasa Perangkat Lunak. Bandung: Informatika.

MySQL J A M K E T I G A

Pemrograman Basis Data Berbasis Web

echo zine, issue // Pengamanan URL dengan MAC

108

INTRO PHP FORM PHPMYADMIN input update delete TEMPLATE SEDERHANA

AJAX Tutorial. Contoh AJAX Database 1

Pemrograman Basis Data Berbasis Web

Transkripsi:

Sortable Datagrid dengan Paginating Data Sebelumnya saya mohon maaf, sudah absen beberapa lama tidak ada artikel yang dibuat. Pada kesempatan kali ini akan kita coba membahas tentang Datagrid yang ditambah dengan kemampuan sortable field untuk setiap field yang ditampilkan baik itu ascending ataupun descending, selain itu juga ditambah dengan kemampuan paginating data, sehingga jika kita ingin menampilkan data dengan jumlah yang mencapai banyak sekali, kita tidak perlu ada proses scrolling dimana proses tersebut diganti dengan proses paginating dengan membagi data menjadi beberapa halaman. Yang pertama harus dilakukan adalah buat tabel yang berisi data yang akan ditampilkan, sebagai contoh; kita gunakan tabel 'tbl_siswa' dengan database mysql. Kemudian persiapkan sebuah file php untuk menampilan datagrid tersebut, kita beri nama 'sortable.php' kemudian mulai diisi kode template html table sebagai berikut: <html> <head> <title>editable Data Grid</title> <script type="text/javascript" language="javascript"> <!-- Diisi dengan kode javascript --> </script> </head> <body> <form id="myform" name="myform" method="post"> <div class="area"> <br> <table width="80%" cellpadding="0" cellspacing="0" border="0"> <td align="right"> //Diisi kode untuk paginating </td> <td align="right"> </td> <table width="80%" cellpadding="0" cellspacing="0" border="1" > <th width="0%"> </th> <th width="24%" onclick="<!--function sort-->">nomor Induk</th> <th width="24%" onclick="<!--function sort-->">nama Siswa</th> <th width="50%" onclick="<!--function sort-->">alamat Lengkap</th> //Diisi kode looping data <td> </td> <td> //Diisi kode php echo </td> <td> //Diisi kode php echo </td> <td> //Diisi kode php echo </td> //Diisi kode looping data </div> </form> </body> </html> Sortable Datagrid dengan Paginating Data Page 1 of 7

Setelah kode template, maka kode berikutnya yang harus ditulis adalah kode php untuk query data tabel 'tbl_siswa' terhadap database, dengan terlebih dahulu menuliskan inisialisasi variabel variabel yang akan diperlukan dalam proses panggil data beserta sorting dan paginating data, berikut kode php yang dituliskan dengan posisi penulisan diletakkan di atas kode template yang sudah terlebih dahulu dituliskan diatas: $fieldid = 1; if (isset($_request['fieldid'])) {$fieldid = $_REQUEST['fieldId']; $lastsort = 'asc'; if (isset($_request['sort'])) {$lastsort = $_REQUEST['sort']; $link = mysql_connect('localhost', 'root', 'admin'); if (!$link) {die('could not connect: '. mysql_error()); $link1 = mysql_select_db('latih'); if (!$link1) {die('could not select database'); if ($fieldid == '1') { else if ($fieldid == '2') { $field = 'nama'; else if ($fieldid == '3') { $field = 'alamat'; else { $query0 = 'SELECT id, no_induk, nama, alamat FROM tbl_siswa ORDER BY '.$field.' '.$lastsort; $resultrow = mysql_query($query0); $num_rows = mysql_num_rows($resultrow); $first_pages = 1; $data_content = 5; $last_pages = ceil($num_rows / $data_content); $increment = $first_pages; if (isset($_request['increvalue'])){$increment = $_REQUEST['increValue']; //jika paging menggunakan teknik limit offset mysql $query1 = 'SELECT id, no_induk, nama, alamat FROM tbl_siswa ORDER BY '.$field.' '.$lastsort.' LIMIT '.$data_content.' OFFSET '.$increment; $result = mysql_query($query0); if (!$result) {die('query failed: '. mysql_error()); //jika paging menggunakan teknik array sebagai penyimpanan data sementara, kemudian dipecah array tersebut berdasarkan batas atas dan bawah $idx = 0; while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { $showdata[$idx]['no_induk'] = $line['no_induk']; $showdata[$idx]['nama'] = $line['nama']; $showdata[$idx]['alamat'] = $line['alamat']; $idx++; $firstedge = ($data_content * $increment) - $data_content; $lastedge = ($data_content * $increment) - 1; Sortable Datagrid dengan Paginating Data Page 2 of 7

Setelah kode pembuka connection beserta cara query data dilakukan, jangan lupa untuk menutup kembali connection menggunakan script PHP juga yang diletakkan di bawah kode template tersebut: mysql_free_result($result); mysql_close($link); Jangan lupa untuk menuliskan kode javascript untuk mengaktifkan trigger sorting dan trigger paging, kemudian tempelkan nama function function javascript tersebut ke kode template yang sudah ke setiap onclick yang sudah ditandai dengan warna merah seperti yang telah di tulis diatas, maka jika kode template html, javascript dan php digabung maka kode akan seperti berikut: $fieldid = 1; if (isset($_request['fieldid'])) {$fieldid = $_REQUEST['fieldId']; $lastsort = 'asc'; if (isset($_request['sort'])) {$lastsort = $_REQUEST['sort']; $link = mysql_connect('localhost', 'root', 'admin'); if (!$link) {die('could not connect: '. mysql_error()); $link1 = mysql_select_db('latih'); if (!$link1) {die('could not select database'); if ($fieldid == '1') { else if ($fieldid == '2') { $field = 'nama'; else if ($fieldid == '3') { $field = 'alamat'; else { $query0 = 'SELECT id, no_induk, nama, alamat FROM tbl_siswa ORDER BY '.$field.' '.$lastsort; $resultrow = mysql_query($query0); $num_rows = mysql_num_rows($resultrow); $first_pages = 1; $data_content = 5; $last_pages = ceil($num_rows / $data_content); $increment = $first_pages; if (isset($_request['increvalue'])) {$increment = $_REQUEST['increValue']; //awal jika paging menggunakan teknik limit offset mysql $query1 = 'SELECT id, no_induk, nama, alamat FROM tbl_siswa ORDER BY '.$field.' '.$lastsort.' LIMIT '.$data_content.' OFFSET '.$increment; $result = mysql_query($query1); if (!$result) {die('query failed: '. mysql_error()); //akhir jika paging menggunakan teknik limit offset mysql Sortable Datagrid dengan Paginating Data Page 3 of 7

//awal jika paging menggunakan teknik array sebagai penyimpanan data sementara, //kemudian dipecah array tersebut berdasarkan batas atas dan bawah $result = mysql_query($query0); if (!$result) {die('query failed: '. mysql_error()); $idx = 0; while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { $showdata[$idx]['no_induk'] = $line['no_induk']; $showdata[$idx]['nama'] = $line['nama']; $showdata[$idx]['alamat'] = $line['alamat']; $idx++; $firstedge = ($data_content * $increment) - $data_content; $lastedge = ($data_content * $increment) - 1; //akhir jika paging menggunakan teknik array sebagai penyimpanan data sementara, //kemudian dipecah array tersebut berdasarkan batas atas dan bawah <html> <head> <title>editable Data Grid</title> <script type="text/javascript" language="javascript"> function sortablefield(par1,par2,par3) { if (par2 == "asc") { var lastsort = "desc"; else if (par2 == "desc") { var lastsort = "asc"; else { var lastsort = "asc"; document.myform.action = "sortable.php?fieldid="+par1+ "&sort="+lastsort+"&increvalue="+par3; document.myform.submit(); function prev(par1,par2,par3) { if (parseint(par3)!= 1) { par3 = par3-1; document.myform.action = "sortable.php?fieldid="+par1+ "&sort="+par2+"&increvalue="+par3; document.myform.submit(); function next(par1,par2,par3) { var lastpage = parseint(' echo $last_pages; '); if (parseint(par3)!= lastpage) { par3 = par3 + 1; document.myform.action = "sortable.php?fieldid="+par1+ "&sort="+par2+"&increvalue="+par3; document.myform.submit(); </script> </head> <body> <form id="myform" name="myform" method="post"> <div class="area"><br> <table width="80%" cellpadding="0" cellspacing="0" border="0"> <td align="right"> if ($increment == $first_pages) { Sortable Datagrid dengan Paginating Data Page 4 of 7

echo ' prev '; else { <a href="#" onclick="prev( echo $fieldid;, ' echo $lastsort; ', echo $increment; );">prev</a> echo $increment." of ".$last_pages; if ($increment == $last_pages) { echo ' next '; else { <a href="#" onclick="next( echo $fieldid;, ' echo $lastsort; ', echo $increment; );">next</a> </td> <td align="right"> </td> <table width="80%" cellpadding="0" cellspacing="0" border="1" > <th width="0%"> </th> <th width="24%" onclick="sortablefield(1,' echo $lastsort; ', echo $increment; );">Nomor Induk</th> <th width="24%" onclick="sortablefield(2,' echo $lastsort; ', echo $increment; );">Nama Siswa</th> <th width="50%" onclick="sortablefield(3,' echo $lastsort; ', echo $increment; );">Alamat Lengkap</th> <!-- Jika menggunakan teknik limit offset mysql --> while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { <td> </td> <td> echo $line['no_induk']; </td> <td> echo $line['nama']; </td> <td> echo $line['alamat']; </td> <!-- Jika menggunakan teknik array dan pemecahan batas atas dan batas bawah --> for ($i = 0; $i < count($showdata); $i++) { if ($i >= $firstedge && $i <= $lastedge) { <td> </td> <td> echo $showdata[$i]['no_induk']; </td> <td> echo $showdata[$i]['nama']; </td> <td> echo $showdata[$i]['alamat']; </td> </div> </form> </body> </html> mysql_free_result($result); mysql_close($link); Sortable Datagrid dengan Paginating Data Page 5 of 7

Dari contoh kode diatas sengaja dituliskan dua macam teknik paginating, masing masing dari teknik diatas mempunyai kelebihan dan kekurangan, jika kita menggunakan teknik limit offset keuntungan yang akan kita dapatkan adalah kecepatan loading data, karena algoritma paging sudah diserahkan ke server database, tetapi mempunyai kelemahan data paging yang ditampilkan akan selalu mempunyai limit yang sama dari awal page sampai akhir page, jika data misalkan mempunyai data 23 record dengan limit 10, menurut algoritma paging maka akan menghasilkan tiga halaman dengan masing masing halaman menampilkan 10 record kecuali halaman terakhir akan menampilkan tiga record, tetapi hal ini tidak akan berlaku jika kita menggunakan teknik limit offset mysql, data terakhir akan menampilkan 10 record, untuk memenuhi syarat limit 10 dengan mengambil sebagian data yang sudah ditampilkan di halaman kedua ditampilkan kembali dihalaman tiga. Hal ini memberikan kesan program tersebut error (mungkin benar benar error kali ya..? ^ ^ ). Sedangkan jika kita menggunakan teknik array batas atas dan batas bawah, hasil yang ditampilkan akan sesuai dengan algoritma yang kita tentukan, tetapi dengan pengorbanan waktu loading yang akan berat jika data sudah mencapai ribuan, ratusan ribu bahkan jutaan. Dikarenakan data yang ambil dari tabel tersebut lebih dulu diambil seluruh datanya, kemudian difilter disisi aplikasi PHP yang kita buat. Dari kedua teknik ini keputusan diserahkan kepada developer akan menggunakan teknik yang mana. Berikut tampilan yang akan dihasilkan dari browser dengan source code diatas: Dari gambar diatas trigger paginate dapat dilakukan dengan klik link prev atau next, jika halaman sedang berada diposisi pertama maka link prev akan tidak berfungsi, jika halaman sedang berada diposisi terakhir maka link next tidak akan berfungsi. Sedangkan untuk trigger ascending dan descending dari masing masing field, cukup dengan klik header tabel dari Sortable Datagrid dengan Paginating Data Page 6 of 7

masing masing field tersebut maka field otomatis akan terurut secara otomatis. Tidak diperlukan properties asc atau desc untuk sorting karena properties tersebut sudah di setting otomatis tiap klik header maka akan bergantian asc dan desc. Sebagai catatan nama kedua teknik diatas itu karangan saya, saya belum searching di mbah google apakah nama teknik seperti itu ada atau tidak (^ ^V peace). Okeh dech selamat mencoba! Mungkin saat ini hanya sekian ilmu yang bisa dibagi dengan pembaca semoga bermanfaat, jika ada kekurangan atau masukan yang dapat meningkatkan kemampuan jangan sungkan untuk memberikan komentar, berikut source code lengkap dari proses diatas dalam satu file berupa file pdf yang dapat diambil di Source Code. Sortable Datagrid dengan Paginating Data Page 7 of 7