Tutorial No-SQL : Penggunaan Memcached dalam DataTable dan Mysql-PDO di PHP 8 pada Windows 10
![]() |
Implementasi Memcached di PHP 8 Pada Windows 10 Dengan Mudah |
Sebelumnya kita telah mengenal dan mempelajari apa itu Memcached juga menginstalnya pada PHP 8 yang dapat anda temui pada halaman Instal Memcached di PHP 8 pada Windows 10 dengan Mudah. Dan juga contoh basic dalam menggunakan Memcached di halaman Penggunaan Memcached di PHP 8 pada Windows 10.
Pada tutorial kali ini kita akan mempelajari bagaimana mengimplementasikan Memcached dalam sebuah DataTable yang datanya berasal dari sebuah data dinamis yakni database Mysql. Untuk yang belum mengetahui apa itu DataTable, DataTable adalah sebuah plug-in jQuery untuk menampilkan data dalam bentuk tabel HTML. DataTable memungkinkan kita melakukan membuat tabel dengan fitur pencarian, membuat pagination, menampilkan data sebanyak yang kita mau, mengambil data dari ajax, dsb (https://datatables.net/).
Sebelum memperlajari lebih lanjut, sebaiknya anda harus memahami teknik looping data dengan menggunakan foreach. Mengenai hal ini anda dapat membaca dokumentasinya di https://www.php.net/manual/en/control-structures.foreach.php.
Oke, tanpa perlu banyak basa-basi langsung saja kita action untuk memulai coding.
1. Buat folder memcache2
Pada artikel sebelumnya, kita telah membuat folder dengan nama memcached, agar tidak tumpang tindih mari kita buat folder dengan nama memcache2 di dalam directory htdocs.2. Buat database dan tabel
Karena data yang akan kita simulasikan berasal dari database, mari kita buat database dengan nama universitas dan juga tabel dengan nama mhs. Setelah itu jangan lupa juga untuk mengisikan beberapa data dummy.CREATE DATABASE universitas;
CREATE TABLE mhs (
id int NOT NULL AUTO_INCREMENT,
nim varchar(255) NOT NULL,
nama varchar(255),
PRIMARY KEY (id)
);
3. file post.php
Langkah berikutnya kita buat file dengan nama post.php. Pada file ini berisikan script koneksi ke database universitas dan juga koneksi ke Memcached. Pada baris berikutnya kita tulis juga query untuk pengambilan datanya.<?php
$dbh = new PDO('mysql:host=localhost;dbname=universitas', "root", "artmedia123");
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$mem = new Memcached();
$mem->addServer('127.0.0.1',11211) or die ("Could not connect");
$key = md5("12075255");
$cache_result = array();
$cache_result = $mem->get($key);
if($cache_result) {
$c_result = $cache_result;
}
else {
try {
$stmt = $dbh->query("SELECT * FROM mhs");
$stmt->execute();
$c_result = $stmt->fetchAll(PDO::FETCH_ASSOC);
$mem->set($key, $c_result, 1200);
echo "data berhasil di simpan di memchaced";
} catch(PDOException $e) {
echo $e->getMessage();
}
}
?>
4. file get.php
Selanjutnya kita buat file get.php. File ini berguna untuk menampilkan data yang tersimpan pada MemoryCache.<?php
//koneksi ke memcahce
$mem = new Memcached();
$mem->addServer('127.0.0.1',11211) or die ("Could not connect");
//panggil key yang tersimpan di cache
$key = md5("12075255");
//Ambil dari cache
$data = $mem->get($key);
echo "Data dari cache : <br>";
?>
<?php
echo "<table border='1'>";
if(is_array($data)){
foreach ($data as $dt){
echo "<tr>";
foreach ($dt as $dtx){
echo "<td>" . $dtx . "</td>";
}
echo "</tr>";
}
echo "</table>";
}
?>
Pada langkah ini kita hanya menampilkan data dalam sebuah kotak/grid table.
5. file get_datatable.php
Pada tahap ini kita akan mengimplementasikan data yang ditampilkan (pada langkah 4) ke dalam DataTable. Silahkan anda unduh terlebih dahulu file library DataTable yang terdiri dari :- jquery.dataTables.min.css
- jquery-3.5.1.js
- jquery.dataTables.min.js
Setelah ketiga file tersebut kita unduh, simpan file tersebut ke dalam folder DataTables dengan susunan folder/file seperti pada gambar berikut
Dalam membuat script get_datatable.php, saya mengambil contoh dari dokumentasi resmi DataTable kemudian dimodifikasi pada bagian <tbody> sehingga script keseluruhannya menjadi seperti berikut
<link rel="stylesheet" type="text/css" href="DataTables/jquery.dataTables.min.css"/>
<script type="text/javascript" language="javascript" src="DataTables/jquery-3.5.1.js"></script>
<script type="text/javascript" language="javascript" src="DataTables/jquery-3.5.1.js"></script>
<script type="text/javascript" language="javascript" src="DataTables/jquery.dataTables.min.js"></script>
<?php
//koneksi ke memcahce
$mem = new Memcached();
$mem->addServer('127.0.0.1',11211) or die ("Could not connect");
//panggil key yang tersimpan di cache
$key = md5("12075255");
//Ambil dari cache
$data = $mem->get($key);
?>
<script type="text/javascript">
$(document).ready(function () {
$('#example').DataTable();
});
</script>
<table id="example" class="display" style="width:100%">
<thead>
<tr>
<th>No</th>
<th>Nik</th>
<th>Name</th>
</tr>
</thead>
<tbody>
<?php
if(is_array($data)){
foreach ($data as $dt){
echo "<tr>";
foreach ($dt as $dtx){
echo "<td>" . $dtx . "</td>";
}
echo "</tr>";
}
?>
</tbody>
<tfoot>
<tr>
<th>No</th>
<th>Nik</th>
<th>Name</th>
</tr>
</tfoot>
</table>
<?php
}
?>
Pada tahap ini kita telah selesai membuat perintah migrasi data dari mysql ke dalam memcached. Jalankan memcached.exe menggunakan command prompt dengan akses sebagai administrator. Kemudian jalankan script post.php. Apabila script berjalan dengan baik maka akan ada notifikasi "data berhasil di simpan di memchaced". Setelah itu, jalankan script get.php.
Dan nyatanya kita telah berhasil menampilkan data di dalam DataTable. Kalau tidak percaya data ini berasal dari MemoryCache? Sekarang coba matikan fungsi mysql langsung dari Services Administrative Tools.

Penggunaan Memcached ini sangat bermanfaat untuk menghandle/menampilkan data yang cukup banyak dan jarang ada request perubahan data di dalam mysql, maka dari itu data disimpan di dalam cache sehingga tidak membebani kinerja mysql. Perlu diketahui bahwa script di atas tidak berlaku untuk pengguna yang masih menggunakan PHP 7.