Belajar PHP: Mendapatkan Data Siswa Berdasarkan Nomor NISN Secara Realtime

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:

define('NISN_URL',"http://semarangkota.dapodik.org/siswa.php");

if ( !function_exists( 'get_nisndata' ) )
{
	function get_nisndata($nisn)
	{
		$nisn_val     = urlencode($nisn); 
		$str = "?nisn=".$nisn_val; 

		
		$data = curl_init();
		
		curl_setopt($data, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt($data, CURLOPT_URL, NISN_URL.$str);
		
		$hasil = curl_exec($data);
		curl_close($data);

		$split0 = extract_unit($hasil,'Info Siswa','Info Sekolah'); 
		$split0 = strip_tags($split0); 

        $nama = extract_unit($split0,'Nama',' Jenis Kelamin'); 
        $nisn = extract_unit($split0,'NISN',' Nama'); 
        $jenis_kelamin = extract_unit($split0,'Jenis Kelamin',' Tingkat'); 
        $tingkat = extract_unit($split0,'Tingkat','  '); 

        $split1 = extract_unit($hasil,'Info Sekolah','Tentang Data Siswa'); 
        $split1 = strip_tags($split1); 

        $npsn = extract_unit($split1,'NPSN',' Nama');
        $nama_sekolah = extract_unit($split1,'Nama',' Jenjang');
        $jenjang = extract_unit($split1,'Jenjang',' Status');
        $status = extract_unit($split1,'Status',' ');

        
        $hasil = array('nama'			=> $nama,
					   'nisn'			=> $nisn,
					   'jenis_kelamin'	=> $jenis_kelamin,
					   'tingkat'		=> $tingkat,
					   'npsn'			=> $npsn,
					   'nama_sekolah'	=> $nama_sekolah,
					   'jenjang'		=> $jenjang,
					   'status'			=> $status
						);
		return $hasil;

	}
}

Untuk melengkapi source tersebut anda perlu menuliskan pula fungsi extract_unit dengan source code berikut:

if ( !function_exists( 'extract_unit' ) )
{
	function extract_unit($string, $start, $end)
	{
		$pos = stripos($string, $start);
		$str = substr($string, $pos);
		$str_two = substr($str, strlen($start));
		$second_pos = stripos($str_two, $end);
		$str_three = substr($str_two, 0, $second_pos);
		$unit = trim($str_three); 
		return $unit;
	}
}

Penggunaan

Untuk menggunakan source tersebut, contoh:

$data_nisn = get_nisndata('0041411454'); 
echo '<pre>';
print_r($data_nisn);
echo '</pre>';

Screenshoot:

Screenshot Demo Mengambil Data NISN dengan PHP

Screenshot Demo Mengambil Data NISN dengan PHP

Screenshoot data asli: klik disini

Demo:

https://emka.web.iddemo/datanisn/

Download Source:

Wagiman Wiryosukiro

Petani Sistem Informasi, tukang las plugin & themes Wordpress. Co-Founder SistemInformasi.biz. Saat ini aktif sebagai Developer & kontributor di OpenMandriva Linux.

You may also like...

5 Responses

  1. shiro says:

    re upload dong gan

    • Ifhtul Emka says:

      wah udah ga tau dimana sourcenya gan. itu aja di artikel di copy, masih bisa jalan kalau URL asli ngga berubah

  2. Mas Nur says:

    linknya mati gan

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: