PHP: Mendapatkan Data Siswa Berdasarkan NISN secara realtime

Rabu, 4 Januari 2012 | 1:32

Dalam tutorial kali ini kita akan mencoba mendapatkan data pokok dari seorang siswa yang telah memiliki NISN (Nomor Induk Siswa Nasional) yang dikelola oleh Dapondik, Kemendikbud. Tutorial ini akan bertumpu pada penggunaan library cURL dan manipulasi array-string sederhana.

Prinsip Kerja

Pada dasarnya, data pokok yang akan kita ambil berasal dari hasil pencarian pada situs Dapondik Kemendikbud (http://nisn.dapondik.org/). URL yang dituju adalah http://nisn.dapondik.org/siswa.php. Dengan library cURL, kita akan posting variabel $_GET berupa nisn dengan value nomor NISN seorang siswa. Hasil eksekusi cURL tersebut akan kita olah dengan teknik parsing dan replacing data.

Source Code

Berikut adalah source code dari fungsi untuk mengambil data pokok Siswa berdasarkan NISN dengan PHP:

//definisikan URL dapodik yang dituju, dipakai server dapodik kota semarang (boleh kota lain, hasil tetap sama)
define('NISN_URL',"http://semarangkota.dapodik.org/siswa.php");
 
if ( !function_exists( 'get_nisndata' ) )
{
	function get_nisndata($nisn)
	{
		$nisn_val     = urlencode($nisn); //encode NISN ke format URL
		$str = "?nisn=".$nisn_val; //string $_GET yang akan dikirim
 
		// inisialisasi CURL
		$data = curl_init();
		// setting CURL
		curl_setopt($data, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt($data, CURLOPT_URL, NISN_URL.$str);
		// menjalankan CURL untuk membaca isi file
		$hasil = curl_exec($data);
		curl_close($data);
 
		$split0 = extract_unit($hasil,'Info Siswa','Info Sekolah'); //mengambil teks diantara kata Info Siswa dan Info Sekolah
		$split0 = strip_tags($split0); //hilangkan tag HTML dari hasil pengambilan tadi
 
        $nama = extract_unit($split0,'Nama',' Jenis Kelamin'); //ambil nama
        $nisn = extract_unit($split0,'NISN',' Nama'); //ambil NISN
        $jenis_kelamin = extract_unit($split0,'Jenis Kelamin',' Tingkat'); //ambil jenis kelamin siswa
        $tingkat = extract_unit($split0,'Tingkat','  '); //ambil tingkat
 
        $split1 = extract_unit($hasil,'Info Sekolah','Tentang Data Siswa'); //ambil teks diantara kata Info Sekolah dan Tentang Data Siswa
        $split1 = strip_tags($split1); //hilangkan tag HTML
 
        $npsn = extract_unit($split1,'NPSN',' Nama');
        $nama_sekolah = extract_unit($split1,'Nama',' Jenjang');
        $jenjang = extract_unit($split1,'Jenjang',' Status');
        $status = extract_unit($split1,'Status',' ');
 
        //bangun array hasil
        $hasil = array('nama'			=> $nama,
					   'nisn'			=> $nisn,
					   'jenis_kelamin'	=> $jenis_kelamin,
					   'tingkat'		=> $tingkat,
					   'npsn'			=> $npsn,
					   'nama_sekolah'	=> $nama_sekolah,
					   'jenjang'		=> $jenjang,
					   'status'			=> $status
						);
		return $hasil;
 
	}
}

© 2014 Badan Pengembangan Teknologi Informasi dan Komunikasi. All rights reserved.
Masuk log