Membuat dan memanipulasi JSON dengan PHP

Seiring dengan semakin populernya API (Application Programming Interface), kita dituntut untuk dapat membuat dan memanipulasi JSON menggunakan PHP.
Saat ini hampir semua API modern menggunakan standar arsitektur REST dan mereka memberikan respons sebagai JSON. Oleh karena itu pengetahuan tentang JSON sangat penting bagi programmer maupun developer.
JSON merupakan singkatan dari JavaScript Object Notation, yaitu suatu format yang merepresentasikan struktur data sederhana dan larik asosiatif (objek) dan sering digunakan untuk pertukaran data.
Karena itulah kali ini kita akan belajar bagaimana membuat dan memanipulasi (create, read, update, delete) JSON menggunakan PHP.
Persiapan
Buatlah sebuah folder project baru dan beri nama, misalnya latihan. Kemudian buat file baru bernama create.php. Pada tahap berikutnya kita akan meng-generate sebuah JSON menggunakan script PHP.
Membuat file JSON
Buka file create.php yang sudah kita buat tadi lalu isi dengan kode di bawah ini dan simpan.
<?php
// Data 1
$data [] = array(
'no' => 1,
'nama' => 'Rudi',
'alamat' => 'Nganjuk'
);
// Data 2
$data [] = array(
'no' => 2,
'nama' => 'Dian',
'alamat' => 'Madiun'
);
// Meng-encode data menjadi json
$jsonfile = json_encode($data, JSON_PRETTY_PRINT);
// Menyimpan data ke dalam anggota.json
file_put_contents('anggota.json', $jsonfile);
Buka browser dan ketikan:
http://localhost/latihan/create.php
Jika pada browser tidak muncul error dan dalam folder latihan muncul file baru bernama anggota.json, maka kita telah berhasil membuat sebuah JSON menggunakan PHP.
Berikut merupakan JSON yang berhasil kita buat:
[
{
"no": 1,
"nama": "Rudi",
"alamat": "Nganjuk"
},
{
"no": 2,
"nama": "Dian",
"alamat": "Madiun"
}
]
Pada tahap berikutnya kita akan menampilkan data dari JSON yang baru kita buat tadi yaitu anggota.json. Namun sebelum itu mari kita bahas beberapa bagian dari kode di atas yang menurut saya cukup penting.
Penjelasan:
json_encode()berfungsi untuk meng-encode data berupa array menjadi JSON.JSON_PRETTY_PRINTberfungsi untuk membuat tampilan data JSON hasil encode menjadi rapi dan lebih mudah untuk dibaca.file_put_contents()berfungsi untuk membuat file baru (jika belum ada) dan menyimpan data.anggota.jsonadalah nama file yang akan digunakan untuk menyimpan data JSON. Nama ini bisa kita ganti sesuka hati.
Menampilkan data dari JSON
Setelah file anggota.json berhasil dibuat, kita akan menampilkan isinya. Untuk menampilkan data dari JSON, kita akan menggunakan foreach().
Buat file baru bernama read.php lalu isi dengan kode berikut dan simpan.
<?php
// File json yang akan dibaca (full path file)
$file = "anggota.json";
// Mendapatkan file json
$anggota = file_get_contents($file);
// Men-decode anggota.json
$data = json_decode($anggota, true);
// Membaca data array menggunakan foreach
foreach ($data as $d) {
echo $d['no']. "<br>";
echo $d['nama']. "<br>";
echo $d['alamat']. "<br>";
}
Kemudian buka browser dan ketikan:
http://localhost/latihan/read.php
Jika berhasil akan tampil seperti ini:
Penjelasan:
file_get_contents()berfungsi untuk membaca JSON menjadi string.json_decodeberfungsi untuk men-decodeanggota.jsonmenjadi array.
Menambahkan data ke JSON
Setelah berhasil menampilkan data dari file JSON, kita lanjutkan dengan menyisipkan data anggota baru ke anggota.json.
Buat file bernama insert.php lalu Isi dengan kode di bawah ini dan simpan.
<?php
// File json yang akan dibaca
$file = "anggota.json";
// Mendapatkan file json
$anggota = file_get_contents($file);
// Men-decode anggota.json
$data = json_decode($anggota, true);
// Data array baru
$data [] = array(
'no' => 3,
'nama' => 'Bayu',
'alamat' => 'Kediri'
);
// Meng-encode data menjadi json
$jsonfile = json_encode($data, JSON_PRETTY_PRINT);
// Menyimpan data ke dalam anggota.json
$anggota = file_put_contents($file, $jsonfile);
Buka browser dan ketikan:
http://localhost/latihan/insert.php
File anggota.json akan menjadi seperti ini:
[
{
"no": 1,
"nama": "Rudi",
"alamat": "Nganjuk"
},
{
"no": 2,
"nama": "Dian",
"alamat": "Madiun"
},
{
"no": 3,
"nama": "Bayu",
"alamat": "Kediri"
}
]
Memperbarui data JSON
Sekarang kita akan memperbarui salah satu data pada anggota.json. Kita pilih nomor 2 yaitu Dian. Kita akan mengganti alamatnya dari Madiun menjadi Surabaya.
Buat file baru bernama update.php dan isi dengan kode di bawah ini lalu simpan.
<?php
// File json yang akan dibaca
$file = "anggota.json";
// Mendapatkan file json
$anggota = file_get_contents($file);
// Men-decode anggota.json
$data = json_decode($anggota, true);
// Membaca data array menggunakan foreach
foreach ($data as $key => $d) {
// Perbarui data kedua
if ($d['no'] === 2) {
$data[$key]['alamat'] = 'Surabaya';
}
}
// Meng-encode data menjadi json
$jsonfile = json_encode($data, JSON_PRETTY_PRINT);
// Menyimpan data ke dalam anggota.json
$anggota = file_put_contents($file, $jsonfile);
Buka browser dan ketikkan:
http://localhost/latihan/update.php
Sekarang alamat anggota bernama Dian berubah menjadi Surabaya.
[
{
"no": 1,
"nama": "Rudi",
"alamat": "Nganjuk"
},
{
"no": 2,
"nama": "Dian",
"alamat": "Surabaya"
},
{
"no": 3,
"nama": "Bayu",
"alamat": "Kediri"
}
]
Penjelasan:
- Angka
2menunjukkan data nomor berapa yang akan kita perbarui. $keypada kode$data[$key]['alamat'] = 'Surabaya';merupakan index array data yang akan kita perbarui.
Menghapus data dari JSON
Terakhir kita akan menghapus data pada anggota.json. Kita pilih data ke 2 yaitu Dian.
Buat lagi file bernama delete.php dan isi dengan kode di bawah ini lalu simpan.
<?php
// File json yang akan dibaca
$file = "anggota.json";
// Mendapatkan file json
$anggota = file_get_contents($file);
// Men-decode anggota.json
$data = json_decode($anggota, true);
// Membaca data array menggunakan foreach
foreach ($data as $key => $d) {
// Hapus data kedua
if ($d['no'] === 2) {
// Menghapus data array sesuai dengan index
// Menggantinya dengan elemen baru
array_splice($data, $key, 1);
}
}
// Meng-encode data menjadi json
$jsonfile = json_encode($data, JSON_PRETTY_PRINT);
// Menyimpan data ke dalam anggota.json
$anggota = file_put_contents($file, $jsonfile);
Buka browser lalu ketikkan:
http://localhost/latihan/delete.php
Sekarang data nomor 2 sudah tidak ada lagi.
[
{
"no": 1,
"nama": "Rudi",
"alamat": "Nganjuk"
},
{
"no": 3,
"nama": "Bayu",
"alamat": "Kediri"
}
]
Penjelasan:
array_splice()berfungsi untuk menghapus array yang terpilih dan menggantinya dengan elemen baru.$keymenunjukkan posisi index array data yang akan dihapus.
Cukup mudah bukan?
Tutorial di atas dapat dikembangkan menjadi lebih kompleks sesuai dengan kebutuhan.
Source code dari tutorial ini bisa didapatkan di sini.