Anda di halaman 1dari 43

PURWOTO

13
J S O N
 Sebuah format data yang digunakan untuk pertukaran dan penyimpanan data.
 Merupakan bagian (subset) dari Javascript. JSON bisa dibaca dengan berbagai
macam bahasa pemrograman seperti C, C++, C#, Java, Javascript Perl, Python, dan
banyak lagi.
 Representasi data terstruktur berbasis teks tanpa skema yang didasarkan pada
key-value pair dan daftar terurut.
 Dipopulerkan oleh Douglas Crockford.
 Menggunakan ekstensi .json saat ia berdiri sendiri. Saat didefinisikan di dalam
format file lain (seperti di dalam .html), ia dapat tampil didalam tanda petik
sebagai JSON string, atau ia dapat dimasukkan kedalam sebuah variabel. Format
ini sangat mudah untuk ditransfer antar server web dengan klien atau browser.
 Karena sangat mudah dibaca dan ringan, JSON memberikan alternatif lebih baik
dari XML dan membutuhkan formating yang tidak banyak.
 Hal ini membuat JSON menjadi bahasa yang ideal untuk perturakan data antar
aplikasi.
J S O N
 Kalau dibandingkan dengan XML, JSON lebih sederhana dan mudah dibaca.
 Pertamakali dipopulerkan oleh Douglas Crockford. Seorang software
engineer yang juga terlibat dalam pengembangan bahasa pemrograman
Javascript.
 JSON tidak ditemukan oleh satu orang saja. Dulu namanya belum JSON. Artinya
kata “JSON” belum ada. Orang-orang hanya mengenal Objek Javascript yang
dikirim melalui jaringan.
 Sejak meledaknya teknologi AJAX pada tahun 2000. JSON mulai diperkenalkan dan
pada tahun 2001, domain json.org mulai mengudara.
 Hingga saat ini JSON banyak digunakan di mana-mana.
 JSON biasanya digunakan sebagai format standar untuk bertukar data antar
aplikasi.

 Tapi sebenarnya tidak hanya itu saja, masih ada fungsi lain dari JSON.
Berikut ini beberapa penerapan JSON yang bisa kita temui :

 JSON sebagai format untuk bertukar data client dan server atau antar aplikasi.
Contoh: RESTful API;
 JSON sebagai tempat menyimpan data, contoh : Database Mongodb;
 JSON digunakan untuk menyimpan konfigurasi project, contoh : file composer.json
pada project PHP dan package.json pada Nodejs;
 JSON digunakan untuk menyimpan konfigurasi dan penyimpanan data pada Hugo;
 JSON digunakan untuk menyimpan konfigurasi project pada Nodejs;
 JSON digunakan untuk menyimpan data menifest;
 dan masih banyak lagi.
Ini adalah struktur paling sederhana.
 JSON terbuat dari dua struktur:
 Objek : didefinisikan dengan tanda kurung kurawal ({})
 Array : didefinisikan dengan tanda kurung siku ([])
 JSON selalu dimulai dengan tanda kurung kurawal “{“ dan ditutup dengan kurung
“}”.
 Lalu di dalam kurung kurawal, berisi data yang format key dan value. Jika terdapat
lebih dari satu data, maka dipisah dengan tanda koma “,” dan di data terakhir tidak
diberikan koma.
 Lalu key dan value dipisah dengan titik dua.
 Untuk value Kita bisa memberikan tipe data apa pun. Bahkan juga bisa kita isi
dengan array dan objek.
 Berikut ini tipe data yang didukung oleh JSON.
 String adalah kumpulan dari nol atau
lebih karakter Unicode, yang dibungkus
dengan tanda kutip ganda. Di dalam
string dapat digunakan backslash
escapes "\" untuk membentuk karakter
khusus. Sebuah karakter mewakili
karakter tunggal pada string. String
sangat mirip dengan string C atau Java.
 Number (Angka) adalah sangat mirip
dengan angka di C atau Java, kecuali
format oktal dan heksadesimal tidak
digunakan.
 Spasi kosong (whitespace) dapat
disisipkan di antara pasangan
tanda-tanda tersebut, kecuali
beberapa detil encoding yang
secara lengkap dipaparkan oleh
bahasa pemprograman yang
bersangkutan.
 Untuk array, dibuat dengan tanda kurung siku [...].

 Contohnya :

{
"name“:“Purwoto Sutan Mangkuto",
"hobbies": ["Coding", "Blogging", "Drawing“,”Sport”,”Reading”]
}
 Untuk objek, Contohnya sebagai berikut :
{
"name": “wismakoding",
"url": "https://www.wismakoding.com",
"rank": 1,
"socialmedia": {
"facebook": "wismakoding",
"twitter": "wismakoding",
"instagram": "wismakoding",
"youtube": "wismakoding",
"github": "wismakoding"
}
}
 Perhatikan pada key socialmedia di sana kita memberikan nilainya dengan objek.
Pada bahasa pemrograman PHP, kita bisa menggunakan fungsi :
 json_encode() untuk menghasilkan JSON dari Array asosiatif dan fungsi.
 json_decode() untuk mengubah JSON menjadi Array.
 Contohnya :
<?php

// data dengan array assosiatif


$person = [
"name" => “Hafidh Purwo Adiyaatma",
"age" => 20
];

// membuat JSON dari array


echo json_encode($person);

// maka akan menghasilkan:


// {"name":“Hafidh Purwo Adiyatma","age":20}
?>
 Lebih cepat
Sintaks JSON sangat mudah digunakan. Pemrogram hanya perlu menggunakan ->
sebagai sintaks sehingga parsing dan eksekusi data tidak lagi rumit. Tentu,
kesederhanaan format ini juga membuatnya menjadi ringan sehingga bisa
mengeksekusi respons lebih cepat.
 Sesuai dengan berbagai browser
JSON didukung oleh banyak jenis browser di berbagai sistem operasi yang berbeda-
beda. Jika kita menyusun kode JSON, tidak sulit untuk membuatnya dapat dioperasikan
di semua jenis browser.
 Parsing server
Parsing adalah proses analisis string atau simbol dalam bahasa pemrograman. Proses
ini adalah hal yang sangat penting dan bisa jadi lebih cepat menggunakan JSON.
 Pembagian data
JSON adalah sarana yang paling tepat untuk berbagi data dalam beragam ukuran dan
format. JSON menyimpan data di dalam array sehingga transfer lebih sederhana.
 Tidak ada skema : Di satu sisi, kita memiliki fleksibilitas total untuk merepresentasikan
data dengan cara apa pun yang kita inginkan. Di sisi lain, ini berarti kita dapat dengan
mudah membuat data yang cacat secara tidak sengaja.
 Hanya satu jenis nomor : Format titik-mengambang presisi ganda IEEE-754 dan meski
ini cukup banyak, tetapi itu berarti Anda tidak dapat memanfaatkan jenis angka yang
beragam dan bernuansa yang tersedia dalam banyak bahasa pemrograman.
 Tidak ada tipe tanggal : Kelalaian ini berarti pengembang harus menggunakan
representasi string dari tanggal, yang menyebabkan perbedaan format, atau harus
mewakili tanggal dalam bentuk milidetik sejak periode (1 Januari 1970).
 Tidak ada komentar : Hal ini tidak memungkinkan untuk membuat anotasi bidang
secara sebaris, yang membutuhkan dokumentasi tambahan dan meningkatkan
kemungkinan kesalahpahaman.
 Verbositas : Meskipun JSON lebih pendek daripada XML, JSON bukanlah format
pertukaran data yang paling ringkas. Untuk layanan volume tinggi atau tujuan khusus,
Anda sebaiknya menggunakan format data yang lebih efisien untuk pekerjaan Anda.
 JSON adalah format yang sering dibandingkan dengan XML (eXtensible Markup
Langsuage).
 Keduanya merupakan cara untuk menyimpan structured data.
 Apakah JSON lebih modern dan bagus daripada XML? Ternyata tidak juga.
 Keduanya sama-sama masih digunakan sampai hari ini oleh para pemrogram di
seluruh dunia.
 Hanya saja, memang, XML butuh lebih banyak teks dan terlihat lebih panjang
daripada JSON sehingga lebih sulit dibaca oleh manusia.
 Meski begitu, XML juga masih dibutuhkan, tergantung proyek yang dikerjakan dan
struktur data apa yang akan digunakan.
 Selain itu, walaupun XML sedikit terlihat lebih rumit, ia mendukung lebih banyak
tipe data, seperti teks, angka, gambar, grafik, bagan, dan lain-lain.
Secara kasat mata jika kita perhatikan struktur data JSON, kita akan dapati bahwa:
 Sangat mirip dengan struktur array asosiatif pada PHP jika datanya dalam bentuk
objek (yaitu dengan tanda kurung kurawal)
 Dan sangat mirip dengan struktur array terindeks pada PHP jika datanya dalam
bentuk array (yaitu dengan tanda kurung siku)

Jika kita memiliki suatu data JSON dalam bentuk string, lalu kita akan membacanya
dalam PHP, bagaimana caranya?
 Caranya adalah : menggunakan fungsi bawaan PHP bernama json_decode.

 Parsing (parse) adalah proses penguraian (mengurai) data.


Kita harus perhatikan :
 Jika objek JSON yang akan kita parsing ternyata dalam bentuk array : maka hasil
konversinya akan berupa array juga.
 Sedangkan jika data JSON yang akan kita parsing ternyata dalam bentuk objek,
maka hasil konversinya (secara asal) adalah dalam bentuk objek (instan dari
kelas stdClass/objek kosong bawaan PHP).

Perhatikan contoh berikut : Hasilnya :


<?php
$dataJson = "[5, 3, 4, 2, 1]";
$data = json_decode($dataJson);
echo implode(" - ", $data);
?>
Kita coba masuk ke contoh yang kedua :
 Jika ternyata objek JSON yang akan kita parsing datanya dalam bentuk objek.
Maka PHP (secara asal) akan mengkonversi data tersebut ke dalam objek juga.
Lebih tepatnya ke dalam instan dari stdClass.

Perhatikan contoh berikut :


<?php
$json = '{
"namapendek": "Hafidh",
"namalengkap": "Hafidh Purwo Adiyatma",
"domisili": "Pitara Pancoran Mas Depok",
"usia": 20,
"wni": true,
"hobi": ["Berenang", "Berlari", "Bertamasya", "Taekwondo", "Kuliner"]
}';
$mahasiswa = json_decode($json);
echo "Nama Panggilan : {$mahasiswa->namapendek} <br>";
echo "Nama Lengkap : {$mahasiswa->namalengkap} <br>";
echo "Domisili : {$mahasiswa->domisili} <br>";
echo "Hobi : " .implode(", ", $mahasiswa->hobi);
?>
Hasilnya sebagai berikut :
Jika kita ingin membuat data dalam bentuk JSON, kita bisa menggunakan fungsi
bawaan PHP bernama json_encode. Fungsi tersebut adalah kebalikan dari fungsi
json_encode : yaitu ia akan mengubah data objek atau array dalam PHP menjadi data
dalam bentuk JSON.

Perhatikan contoh berikut : Hasilnya sebagai berikut :

<?php
$mahasiswa = [
'nama' => 'Hafidh Purwo Adiyatma',
'domisili' => 'Pancoran Mas Depok'
];
echo json_encode($mahasiswa);
?>
Contoh untuk Array terindeks :
<?php
$nilaiUjian = [70, 80, 50, 90];
echo json_encode($nilaiUjian);
?>

Hasilnya :
Misalkan kita memiliki string JSON sebagai berikut :
<?php
$listMahasiswaJSON = '[
{ "nama": "Hafidh Purwo Adiyatma" },
{ "nama": "Rakha Purwo Arkhananta" },
{ "nama": "Khalisha Hibatillah Purwoto" },
{ "nama": "Novi Akhrianti" }
]';
?>

Lalu kita ingin menampilkan nama dari setiap data di atas. Caranya sangat sederhana
sekali :
 Kita parsing dulu JSON tersebut ke dalam array PHP.
 Lalu lakukan perulangan dengan foreach atau metode perulangan yang lainnya.
Perhatikan contoh berikut : Hasilnya :
<?php
$listMahasiswaJSON = '[
{ "nama": "Hafidh Purwo Adiyatma" },
{ "nama": "Rakha Purwo Arkhananta" },
{ "nama": "Khalisha Hibatillah Purwoto" },
{ "nama": "Novi Akhrianti" }
]';

$listMahasiswa = json_decode($listMahasiswaJSON);
foreach ($listMahasiswa as $key => $mahasiswa) {
echo "{$key}. Nama: {$mahasiswa->nama} <br>";
}
?>
Buat file dengan nama peserta.json, dengan sourcecode sebagai berikut :
[ {"nama":"Khalisha Hibatillah Purwoto",
{"nama":"Hafidh Purwo Adiyatma", "alamat":"Jalan Raya Sawangan Depok",
"alamat":"Jalan Pitara Raya Depok", "kecamatan":"Sawangan",
"kecamatan":"Pancoran Mas", "tgl_daftar":"Juni 29,2021"
"tgl_daftar":"Juni 22,2021" },
}, {"nama":"Novi Arkhrianti",
{"nama":"Rakha Purwo Arkhananta", "alamat":"Jalan Raya Margonda Depok",
"alamat":"Jalan Raya Nusantara Depok", "kecamatan":"Beji",
"kecamatan":"Pancoran Mas", "tgl_daftar":"Mei 15,2021"
"tgl_daftar":"Mei 26,2021" }
}, ]
Membuat Parsing PHP dengan Sourcode Berikut :
<?php // Membaca data array menggunakan foreach
// File json yang akan dibaca (full path file) foreach($data as $peserta) {
$file = "peserta.json"; echo 'Nama :'.$peserta['nama'].'<br>';
echo 'Alamat :'.$peserta['alamat'].'<br>';
// Mendapatkan file json echo 'Kecamatan :'.$peserta['kecamatan'].'<br>';
$getdata = file_get_contents($file); echo 'Tgl. Daftar :'.$peserta['tgl_daftar'].'<br>';
echo '<hr>';
//mengubah data json menjadi data array }
$data = json_decode($getdata, true); ?>
CREATE
Membuat File JSON, Sourcode Berikut (createjson.php):
<?php // Mengencode data menjadi json
// Data 1 $jsonfile = json_encode($data, JSON_PRETTY_PRINT);
$data [] = array(
'kobar' => 'KB-001', // Menyimpan data ke dalam barang.json
'nabar' => 'Pencil 2B', file_put_contents('barang.json', $jsonfile);
'harga' => 4500, ?>
'stok' => 45,
'satuan' => 'Pcs'
); Jika pada saat kita running browser tidak muncul error maka
// Data 2 dalam folder aplikasi kita muncul file baru bernama
$data [] = array( barang.json, maka kita telah berhasil membuat sebuah JSON
'kobar' => 'KB-002', menggunakan PHP.
'nabar' => 'Penghapus',
'harga' => 2500,
'stok' => 15,
'satuan' => 'Pcs'
);
CREATE
CREATE
Penjelasan :

 json_encode() berfungsi untuk mengencode 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.
 barang.json adalah nama file yang akan digunakan untuk menyimpan data JSON.
Nama ini bisa kita ganti sesuka hati.
READ
Menampilkan File JSON, Sourcode Berikut (readjson.php):
<?php // Membaca data array menggunakan foreach
// File json yang akan dibaca (full path file) foreach ($data as $brg) {
$file = "barang.json"; echo 'Kode Barang :'.$brg['kobar'].'<br>';
echo 'Nama Barang :'.$brg['nabar'].'<br>';
// Mendapatkan file json echo 'Harga :'.$brg['harga'].'<br>';
$barang = file_get_contents($file); echo 'Stok :'.$brg['stok'].'<br>';
echo 'Satuan :'.$brg['satuan'].'<br>';
// Mendecode barang.json echo '<hr>';
$data = json_decode($barang, true); }
?>

Setelah kita running coding di atas maka akan menghasilkan


tampilan di halaman berikut …..
READ
READ
Penjelasan :

 file_get_contents() berfungsi untuk membaca JSON menjadi string.


 json_decode berfungsi untuk mendecode barang.json menjadi array.
INSERT
Menambah data ke File JSON, Sourcode Berikut (insertjson.php):
<?php // Mengencode data menjadi json
// File json yang akan dibaca $jsonfile = json_encode($data, JSON_PRETTY_PRINT);
$file = "barang.json";
// Menyimpan data ke dalam barang.json
// Mendapatkan file json $barang = file_put_contents($file, $jsonfile);
$barang = file_get_contents($file); ?>

// Mendecode barang.json
$data = json_decode($barang, true);

// Data array baru


$data [] = array( Jika pada saat kita running, browser tidak muncul
'kobar' => 'KB-003', error maka dalam file barang.json, akan bertambah 1
'nabar' => 'Buku Tulis',
'harga' => 5500, buah data dengan kode barang KB-003.
'stok' => 50,
'satuan' => 'Pcs'
);
INSERT
 Sebelah kiri, jika dibuka dengan notepad.
 Sebelah kanan, jika dijalankan aplikasi readjson.php.
UPDATE
Mengupdate data ke File JSON, Sourcode Berikut (updatejson.php):
<?php // Mengencode data menjadi json
// File json yang akan dibaca $jsonfile = json_encode($data, JSON_PRETTY_PRINT);
$file = "barang.json";
// Menyimpan data ke dalam barang.json
// Mendapatkan file json $barang = file_put_contents($file, $jsonfile);
$barang = file_get_contents($file); ?>

// Mendecode barang.json
$data = json_decode($barang, true);

// Membaca data array menggunakan foreach


foreach ($data as $key => $d) { Jika pada saat kita running browser tidak muncul error
// Perbarui data kedua maka dalam file barang.json, kode barang KB-002,
if ($d['kobar'] === 'KB-002') {
nama barangnya akan berubah menjadi Tip-Ex.
$data[$key]['nabar'] = 'Tip-Ex';
}
}
UPDATE
 Sebelah kiri, jika dibuka dengan notepad.
 Sebelah kanan, jika dijalankan aplikasi readjson.php.
UPDATE
Penjelasan :

 Kode Barang KB-002 menunjukkan data kode berapa yang akan kita perbarui
 $key pada kode $data[$key][‘nabar'] = ‘Tip-Ex'; merupakan index array data yang
akan kita perbarui.
DELETE
Menghapus data di File JSON, Sourcode Berikut (deletejson.php):
<?php // Mengencode data menjadi json
// File json yang akan dibaca $jsonfile = json_encode($data, JSON_PRETTY_PRINT);
$file = "barang.json";
// Menyimpan data ke dalam anggota.json
// Mendapatkan file json $barang = file_put_contents($file, $jsonfile);
$barang = file_get_contents($file); ?>

// Mendecode anggota.json
$data = json_decode($barang, true);

// Membaca data array menggunakan foreach


foreach ($data as $key => $d) {
// Hapus data kedua
if ($d['kobar'] === 'KB-002') { Jika pada saat kita running browser tidak muncul
// Menghapus data array sesuai dengan index error maka dalam file barang.json, kode barang
// Menggantinya dengan elemen baru
array_splice($data, $key, 1); KB-002, akan terhapus.
}
}
DELETE
 Sebelah kiri, jika dibuka dengan notepad.
 Sebelah kanan bawah, jika dijalankan aplikasi
readjson.php.
END
Sampai sini dulu ya..

Anda mungkin juga menyukai