Selamat datang kembali di blog Mari belajar koding. Tutorial kali ini kita akan belajar bagaimana cara membuat file JSON mulitlevel atau JSON bertingkat dengan PHP dan Mysql.
Membuat File Json Multilevel dengan PHP dan Mysql
Berikut format data JSON yang akan kita buat:
[
{
"nim":"1234",
"nama":"Agung Saputra",
"alamat":"Semarang",
"jurusan":"Teknik Informatika",
"MK":[
{
"mk_kode":"101",
"nama_mk":"SISTEM BASIS DATA"
},
{
"mk_kode":"102",
"nama_mk":"ALJABAR LINIER"
},
{
"mk_kode":"103",
"nama_mk":"ANALISA ALGORITMA"
},
{
"mk_kode":"104",
"nama_mk":"KECERDASAN BUATAN"
},
{
"mk_kode":"105",
"nama_mk":"JARINGAN KOMPUTER"
}
]
},
{
"nim":"1236",
"nama":"Mirani Rahmawati",
"alamat":"Pemalang",
"jurusan":"Sistem Informasi",
"MK":[
{
"mk_kode":"301",
"nama_mk":"ANALISA PROSES BISNIS"
},
{
"mk_kode":"302",
"nama_mk":"DATABASE TERDISTRIBUSI"
},
{
"mk_kode":"303",
"nama_mk":"ETIKA PROFESI"
},
{
"mk_kode":"304",
"nama_mk":"REKAYASA WEB"
},
{
"mk_kode":"305",
"nama_mk":"AUDIT SISTEM INFORMASI"
}
]
}
]
Keterangan format JSON diatas yaitu array Mahsiswa memiliki satu level lagi dibawahnya yaitu array MK (Mata Kuliah). Langsung saja kita buat file json bertingkat dengan php dan mysql.
1. Buat database bernama akademik dan tiga tabel bernama mahasiswa, mk dan krs.
-- Buat database akademik
CREATE DATABASE `akademik`;
USE `akademik`;
-- buat tabel krs
CREATE TABLE `krs` (
`KrsID` int(11) NOT NULL AUTO_INCREMENT,
`nim` char(25),
`mk_kode` char(25),
PRIMARY KEY (`KrsID`)
);
-- buat tabel mahasiswa
CREATE TABLE `mahasiswa` (
`nim` varchar(15),
`nama` varchar(40),
`alamat` text,
`jurusan` varchar(255),
PRIMARY KEY (`nim`)
);
-- buat tabel mk
CREATE TABLE `mk` (
`id_mk` int(11) NOT NULL AUTO_INCREMENT,
`mk_kode` char(25),
`nama_mk` varchar(250),
PRIMARY KEY (`id_mk`),
UNIQUE KEY `mk_kode` (`mk_kode`)
);
Tabel mahasiswa
Tabel mk
Tabel krs
2. Input data kedalam tabel yang telah kita buat.
INSERT INTO `krs` (`KrsID`, `nim`, `mk_kode`) VALUES
(1, '1234', '101'),
(2, '1234', '102'),
(3, '1234', '103'),
(4, '1234', '104'),
(5, '1234', '105'),
(6, '1236', '301'),
(7, '1236', '302'),
(8, '1236', '303'),
(9, '1236', '304'),
(10, '1236', '305'),
(11, '1237', '201'),
(12, '1237', '202'),
(13, '1237', '203'),
(14, '1237', '204'),
(15, '1237', '205'),
(16, '1235', '101'),
(17, '1235', '102'),
(18, '1235', '103'),
(19, '1235', '104'),
(20, '1235', '105');
INSERT INTO `mahasiswa` (`nim`, `nama`, `alamat`, `jurusan`) VALUES
('1234', 'Agung Saputra', 'Semarang', 'Teknik Informatika'),
('1235', 'Dian Syaputra', 'Kendal', 'Teknik Informatika'),
('1236', 'Mirani Rahmawati', 'Pemalang', 'Sistem Informasi'),
('1237', 'Novita Sari', 'Pati', 'Manajemen Informatika');
INSERT INTO `mk` (`id_mk`, `mk_kode`, `nama_mk`) VALUES
(1, '101', 'SISTEM BASIS DATA'),
(2, '102', 'ALJABAR LINIER'),
(3, '103', 'ANALISA ALGORITMA'),
(4, '104', 'KECERDASAN BUATAN'),
(5, '105', 'JARINGAN KOMPUTER'),
(6, '201', 'PERANCANGAN WEB'),
(7, '202', 'KEAMANAN KOMPUTER'),
(8, '203', 'PENGANTAR MANAJEMEN'),
(9, '204', 'RANCANG BANGUN ANTARMUKA'),
(10, '205', 'MULTIMEDIA'),
(11, '301', 'ANALISA PROSES BISNIS'),
(12, '302', 'DATABASE TERDISTRIBUSI'),
(13, '303', 'ETIKA PROFESI'),
(14, '304', 'REKAYASA WEB'),
(15, '305', 'AUDIT SISTEM INFORMASI');
3. Buat file koneksi.php di directory htdocs untuk menghubungkan file php dengan database. xampp/htdocs/json.
<?php
mysql_connect("localhost","root","");
mysql_select_db("akademik");
?>
4. buat file json.php untuk mengonversi data dari database mysql menjadi data json.
<?php
header('Content-Type: application/json; charset=utf8');
//panggil koneksi.php
include("koneksi.php");
//query tabel Mahasiswa
$SqlMhasiswa="SELECT * FROM mahasiswa";
$queryMahasiswa=mysql_query($SqlMhasiswa) or die(mysql_error());
//buat data mahasiswa menjadi array
$DataMahasiswa=array();
//looping data dari queryMahasiswa
while ($dataMhs=mysql_fetch_array($queryMahasiswa)) {
$x['nim']=$dataMhs['nim'];
$x['nama']=$dataMhs['nama'];
$x['alamat']=$dataMhs['alamat'];
$x['jurusan']=$dataMhs['jurusan'];
$x['MK']=array();
//query untuk merelasikan tabel mahasiswa, tabel mk, dan tabel krs
$SqlMK="SELECT mahasiswa.nim, mk.mk_kode, mk.nama_mk FROM mahasiswa JOIN krs ON krs.nim = mahasiswa.nim JOIN mk ON mk.mk_kode = krs.mk_kode AND mahasiswa.nim='".$dataMhs['nim']."'";
$queryMK=mysql_query($SqlMK) or die(mysql_error());
//looping data dari queryMK
while ($dataMK=mysql_fetch_array($queryMK)) {
$y['mk_kode']=$dataMK['mk_kode'];
$y['nama_mk']=$dataMK['nama_mk'];
// menambahkan array mk kedalam $x['MK']
array_push($x['MK'], $y);
}
// untuk menambah array setelah array yang terakhir
array_push($DataMahasiswa, $x);
}
//mengubah data array menjadi data json
echo json_encode($DataMahasiswa);
?>
Sekian tutorial membuat file JSON mulitlevel dengan PHP dan Mysql. Semoga bermanfaat.
Related Search:
- Membuat json multilevel dengan PHP dan Mysql
- Membuat json dengan PHP dan Mysql