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:

Crud JSON php read Hasil crud json

Penjelasan:

  • file_get_contents() berfungsi untuk membaca JSON menjadi string.

  • json_decode berfungsi untuk men-decode anggota.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 .