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.
1. 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.
2. 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_PRINT
berfungsi 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.json
adalah nama file yang akan digunakan untuk menyimpan data JSON. Nama ini bisa kita ganti sesuka hati.
3. 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_decode
berfungsi untuk men-decodeanggota.json
menjadi array.
4. Menambahkan data ke JSON
Setelah berhasil menampilkan data dari 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"
}
]
5. 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
2
menunjukkan data nomor berapa yang akan kita perbarui$key
pada kode$data[$key]['alamat'] = 'Surabaya';
merupakan index array data yang akan kita perbarui
6. 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$key
menunjukkan 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 .