Membangun Web Service PDDIKTI Sederhana (Lanjutan) Insert Nilai Excel2Feeder

Pada tutorial kali ini, penulis mencoba memberikan sedikit coretan bagaimana memasukkan nilai mahasiswa dari excel ke feeder.
Melanjutkan dari materi pembuatan tutorial WS Sederhana yang lalu, berarti komponen-komponen yang perlu ditambahkan pada susunan folder dari tutorial yang terdahulu adalah template excel untuk nilai, dimana template excel ini berupa file excel dengan ekstensi .xls. (excel 97-2003).
Sebelum membuat koding ini, berarti sebelumnya sudah dilakukan pembuatan kurikulum, matakuliah kurikulum, kelas perkuliahan (KRS).

Langkah-langkahnya adalah sebagai berikut :

  • Download template excel nilai disini, dan letakkan pada folder temp_excell
  • Buka file depan.php, dan update seperti kode berikut :

depan.php

<?php
include "session.php";
//echo "Id Perguruan Tinggi : <strong>".$id_sp."</strong><br />";
echo "Nama Perguruan Tinggi : <strong>".$nm_lemb."</strong><br />";

?>
<fieldset>
  <legend>Form excell</legend>
  <p>Untuk <strong><font color="#990000">insert mahasiswa dari file excell</font></strong> silahkan download template excel <a href="temp_excell/inst_mhs.xls">disini</a></p>
<form method="post" enctype="multipart/form-data" action="insert_mhs.php">
Pilih File Excel :
<input name="fileexcel" type="file"> <input name="upload" type="submit" value="Import">
</form>
</fieldset>
<br />
<fieldset>
  <legend>Form MySql2Feeder</legend>
<p>Untuk <strong><font color="#990000">insert mahasiswa</font></strong> dari database : <font color="#000066" size="+2">MySql to Feeder</font></p>
<form method="post" enctype="multipart/form-data" action="mhs_mysql2feeder.php">
<input name="mhs" type="submit" value="MySql2Feeder">
</form>
</fieldset>
<br />
<fieldset>
  <legend>Form excell</legend>
  <p>Untuk <strong><font color="#990000">insert nilai dari file excell</font></strong> silahkan download template excel <a href="temp_excell/nilai_mhs.xls">disini</a></p>
<form method="post" enctype="multipart/form-data" action="insert_nilai_mhs.php">
Pilih File Excel :
<input name="fileexcel" type="file"> <input name="upload" type="submit" value="Import">
</form>
</fieldset>
<br />

<br />
<a href="logout.php">Logout</a>

  • Buat file insert_nilai_mhs.php seperti kode dibawah ini :

insert_nilai_mhs.php

<?php
include 'session.php';
include "excel_reader2.php";
@$data = new Spreadsheet_Excel_Reader($_FILES['fileexcel']['tmp_name']);
@$hasildata = $data->rowcount($sheet_index=0);
//echo $hasildata;
$sukses = 0;
$gagal = 0;
for ($i=2; $i<=$hasildata; $i++)
{
  $npm=$data->val($i,2);
  $nipd="nipd LIKE '%$npm%'";
  //echo "<br>".$nipd."<br>";
  $result=$proxy->GetRecord($gettoken,'mahasiswa_pt',$nipd);
  $id_reg_pd=$result['result']['id_reg_pd'];
  //echo "id_reg_pd ='".$id_reg_pd."<br>";
  $kd_mk=$data->val($i,4);
  $smt=$data->val($i,6);
  $kelas=$data->val($i,7);
  $filt="p.id_smt='".$smt."' AND nm_kls='".$kelas."' AND kode_mk='".$kd_mk."'";
  //echo $filt."<br>";
  $result=$proxy->GetRecord($gettoken,'kelas_kuliah',$filt);
  $id_kls=$result['result']['id_kls'];
  //echo "id kelas : ".$id_kls. "<br>";
  
 $record['id_kls'] = $id_kls; 
 $record['id_reg_pd'] = $id_reg_pd;
   $nilai= $data->val($i,8);
   $indeks=$data->val($i,9);
   //echo "Nilai =".$nilai."dan Indeks =".$indeks;
 $record['nilai_huruf'] =$nilai;
 $record['nilai_indeks'] =$indeks;
   $records[]=$record;
 
}
 $je_nil=json_encode($records);
 $jd_nil=json_decode($je_nil,true);
 //print_r($je_nil);
 
 for($i=0;$i<1;$i++){
   foreach($jd_nil as $row){
    $key = array('id_kls' => $row['id_kls'],'id_reg_pd' => $row['id_reg_pd']);
    $data = array('nilai_huruf' => $row['nilai_huruf'],
       'nilai_indeks'=> $row['nilai_indeks']);
    
 
    $updates[] = array('key'=>$key,'data'=>$data);
    
    if ($hasildata) $sukses++;
     else $gagal++;
    }
   $j_upd=json_encode($updates);
   //echo "<br> json_update ".$j_upd;
  $result = $proxy->UpdateRecordset($gettoken,'nilai',$j_upd);

 }
  echo "<b>import data selesai.</b> <br>";
  echo "Data yang berhasil di import : " . $sukses .  "<br>";
  echo "Data yang gagal diimport : ".$gagal .  "<br>";
  echo "kembali ke <a href='depan.php'>depan</a>";
 
?>

Dalam file insert_nilai_mhs.php tersebut, proses looping menggunakan fungsi for ($i=2; $i<=$hasildata; $i++), yang artinya adalah urutan dari baris ke 2 dari template excel yaitu baris data, sedang baris ke 1 adalah judul kolom.
Dalam step ini kita akan mengumpulkan atribut-atribut yang berada dalam record excel, dan dikumpulkan dalam bentuk array yaitu ditunjukkan dengan kode $records[].

Dari array $records tersebut di rubah menjadi format json yang di variabelkan menjadi $je_nil, yang kemudian diuraikan lagi menggunakan fungsi perulangan (looping) for.
Di dalam perulangan ini, akan diambil sebagai key (kunci) adalah id_kls dan id_reg_pd sedangkan data yang akan di masukkan adalah nilai_huruf dan nilai_indeks yang dikumpulkan menjadi array yang disebut dengan $updates[].
Sebelum dimasukkan ke dalam database feeder, array $updates harus di rubah menjadi format json, dengan prosedur yang dipakai adalah UpdateRecordset, kenapa updaterecordset karena kita akan merubah nilai yang tadinya kosong (saat sync KRS) dan pada saat akhir semester akan diisikan nilai mahasiswa tersebut.

Demikian kode untuk isi nilai dengan template excel, semoga bisa menjadikan bahan belajar temen-temen yang bermaksud belajar membuat Webservice secara sederhana.

Selamat Belajar, Salam Koding dan CHAYOOOOO.....
Thx

Previous
Next Post »