Mengambil Data Website Sekolah Seluruh Indonesia Dengan PHP CURL

mengambil data dari web lain

Pendahuluan

PHP mendukung libcurl, yaitu sebuah library yang di buat oleh Daniel Stenberg, dengan PHP CURL ini dapat memungkinkan anda untuk terhubung dengan berbagai jenis server dan berbagai jenis protokol atau juga dapat di sebut mengambil data dari website lain. Libcurl saat ini mendukung berbagai protokol dari HTTP, HTTPS, FTP, GOPHER, TELNET, DICt, FILE, dan IDAP. Libcurl juga mendukung HTTPS, HTTP POS, HTTP PUT, Uploat FTP (hal iini bisa dilakukan dengan Extensi ftp PHP), form upload berbasis HTTP, Proxy, Cookies, dan otentifikasi User + Password.

Persyaratan

Untuk anda jika ingin menggunakan fungsi cURL PHP anda perlu menginstal paket libcurl. Versi libcurl yang terbaru saat ini adalah versi 7.10.5.

apabila anda tidak ingin menginstal libcurl tersebut anda juga dapat menginstal paket XAMPP yang bisa di dawnload di web "https://www.apachefriends.org/index.html" dawnload XAMPP tersebut dan instal.

Mengambil data dengan cURL

Langkah pertama yang harus di lakukan yaitu mencari website atau alamat web yang akan kita ambil datanya dengan cURL ini. disini saya mengambil alamat web kementrian pendidikan dan kebudayaan.

http://referensi.data.kemdikbud.go.id/tabs.php?npsn=60725022
mengambil data dari web pemerintahan


Tampilan laman web tersebut kita inspek elemen dengan menekan CTRL + Shift + i pada Google Crome dan Klik kanan > Inspek Elemen pada Mozila Firefox setelah itu cari kode dimana data tersebut akan kita ambil. perhatikan gambar dibawah.
Inspek Elemen Web

Dari gambar dapat di analisa bahwa data yang akan di ambil berada pada "<div id="tabs-1".....>"

oke data yang akan kita ambil sudah dapat. Selanjutnya mari kita ngoding.
Buat sebuah file index.php lalu copy dan pastekan kode berikut.
<!DOCTYPE html>
<html>
<head>
 <title>Data Sekolahku</title>
</head>
<body>
 <div style="margin-bottom:15px;" align="left">
 <form action="" method="post">
 <input type="number" name="kode" placeholder="Cari kode npsn Sekolah" class="css-input" style="width:250px;" />
 <input type="submit" name="cari" value="Cari" class="btn" style="padding:3px;" margin="6px;" width="50px;" />
 </form>
 </div>
</body>
</html>

Kode diatas digunakan untuk membuat sebuah kotak pencarian dengan 1 input type number dan 1 button submit.

Langkah selanjutnya tambahkan kode php berikut pada index.php


<?php

 function bacaHTML($url){

 // inisialisasi CURL
 $data = curl_init();

 // setting CURL
 curl_setopt($data, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($data, CURLOPT_URL, $url);

 // menjalankan CURL untuk membaca isi file
 $hasil = curl_exec($data);
 curl_close($data);
 return $hasil;
 }

 $kode = @$_POST['kode'];
 $cari = @$_POST['cari'];

 if($cari) {
       if($kode != "") {
            $kodeHTML = bacaHTML('http://referensi.data.kemdikbud.go.id/tabs.php?npsn='.$kode); //sumber content
            $pecah = explode('id="tabs-1">', $kodeHTML);
            $pecah2 = explode('id="tabs-2">', $kodeHTML);
            $pecah3 = explode('id="tabs-3">', $kodeHTML);
            $pecah6 = explode('id="tabs-6">', $kodeHTML);

           $pecahgambar = explode('class="galleryWrap cf">', $kodeHTML);

           $pecahLagi2 = explode('</div>', $pecahgambar[1]);
           $pecahLagiisi1 = explode('</table>', $pecah[1]);
           $pecahLagiisi2 = explode('</table>', $pecah2[1]);
           $pecahLagiisi3 = explode('</table>', $pecah3[1]);
           $pecahLagiisi4 = explode('</table>', $pecah6[1]);

          //css table sesuaikan dengan format css web anda
           echo $pecahLagi2[0], $pecahLagiisi1[0], $pecahLagiisi2[1], $pecahLagiisi3[0], $pecahLagiisi4[0]; }
 }
?>

Penjelasan dari function di bawah ini digunakan untuk membaca sebuah html yang nantinya akan di buat ke web kita.

<?php

 function bacaHTML($url){

 // inisialisasi CURL
 $data = curl_init();

 // setting CURL
 curl_setopt($data, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($data, CURLOPT_URL, $url);

 // menjalankan CURL untuk membaca isi file
 $hasil = curl_exec($data);
 curl_close($data);
 return $hasil;
 }


Karena pada tutorial ini membuat kotak pencarian dengan methot POST maka kita ambil data dari post tersebut.

 <form action="" method="post">
 <input type="number" name="kode" placeholder="Cari kode npsn Sekolah" class="css-input" style="width:250px;" />
 <input type="submit" name="cari" value="Cari" class="btn" style="padding:3px;" margin="6px;" width="50px;" />
 </form>

 $kode = @$_POST['kode'];
 $cari = @$_POST['cari'];

Menggabungkan antara kode yang di input di pencarian dan kita jadikan 1 variabel

$kodeHTML = bacaHTML('http://referensi.data.kemdikbud.go.id/tabs.php?npsn='.$kode); //sumber content

lalu parse data yang kita ambil dan tampilkan sehingga kode lengkapnya seperti ini

<!DOCTYPE html>
<html>
<head>
 <title>Data Sekolahku</title>
</head>
<body>
 <div style="margin-bottom:15px;" align="left">
 <form action="" method="post">
 <input type="number" name="kode" placeholder="Cari kode npsn Sekolah" class="css-input" style="width:250px;" />
 <input type="submit" name="cari" value="Cari" class="btn" style="padding:3px;" margin="6px;" width="50px;" />
 </form>
 </div>
</body>
</html>

 <?php
    function bacaHTML($url){
   
       // inisialisasi CURL
       $data = curl_init();

      // setting CURL
      curl_setopt($data, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($data, CURLOPT_URL, $url);

       // menjalankan CURL untuk membaca isi file
       $hasil = curl_exec($data); curl_close($data); return $hasil;
 }

 $kode = @$_POST['kode'];
 $cari = @$_POST['cari'];

 if($cari) {
     if($kode != "") {
          $kodeHTML = bacaHTML('http://referensi.data.kemdikbud.go.id/tabs.php?npsn='.$kode); //sumber content
       
         //Parse Awal Data
         $pecah = explode('id="tabs-1">', $kodeHTML);
         $pecah2 = explode('id="tabs-2">', $kodeHTML);
         $pecah3 = explode('id="tabs-3">', $kodeHTML);
        $pecah6 = explode('id="tabs-6">', $kodeHTML);
        $pecahgambar = explode('class="galleryWrap cf">', $kodeHTML);
     
        //Parse ujung data
        $pecahLagi2 = explode('</div>', $pecahgambar[1]);
        $pecahLagiisi1 = explode('</table>', $pecah[1]);
        $pecahLagiisi2 = explode('</table>', $pecah2[1]);
        $pecahLagiisi3 = explode('</table>', $pecah3[1]);
        $pecahLagiisi4 = explode('</table>', $pecah6[1]);

       //Menggabungkan data pecahan dan menampilkanya
       echo $pecahLagi2[0], $pecahLagiisi1[0], $pecahLagiisi2[1], $pecahLagiisi3[0], $pecahLagiisi4[0];
     }
 }
 ?>
Dan hasilnya akan seperti iniHasil Mengambil Data Website Sekolah Seluruh Indonesia Dengan PHP CURL


Anda juga dapan men download code melalui Link Dibawah ini




Ndezzo Halo

2 komentar untuk "Mengambil Data Website Sekolah Seluruh Indonesia Dengan PHP CURL"

  1. kenapa saya nggak nampil ya mas
    padahal udah sesuai prosedur

    Notice: Undefined offset: 1 in D:\xampp\htdocs\grab\tiki.php on line 42

    mau ambil grab data tiki.id/resi

    BalasHapus