Sekedar tahu saja, biasanya yang terjadi jika para operator sudah pernah memasukkan data Aktifitas Kuliah Mahasiswa baik input manual ataupun melalui jembatan webservice, untuk merubah Aktifitas Kuliah Mahasiswa itu operator akan melakukan dengan cara manual langsung pada aplikasi Feeder. Kalau data yang dirubah hanya beberapa record hal ini tidak menjadi masalah, namun bagaimana jika yang terjadi kesalahan itu banyak records ? Tentu ini kan menjadi hal yang melelahkan bukan ?
Perlu saya jelaskan juga disini bahwa untuk melakukan perubahan data pada Aktifitas Kuliah Mahasiswa, data yang bisa dirubah adalah data pelaporan pada semester yang masih terbuka (tidak terkunci), sedang data pelaporan pada semester yang tertutup operator harus membuat pengajuan ke DIKTI untuk melakukan pembukaan semester pelaporan.
Baiklah untuk menyingkat waktu, akan saya bahas hal-hal yang menyangkut tentang tujuan dari tulisan ini yaitu bagaimana menambahkan modul update data Aktifitas Kuliah Mahasiswa pada webservice adminws.
Yang akan kita lakukan pertama kali adalah merubah tampilan dari modul Insert Aktifitas Kuliah Mahasiswa yang semula hanya ada form Import, maka akan kita tambahkan form di bawahnya untuk Update. Dimana tampilan form tersebut nantinya akan tampil seperti gambar diatas.
Untuk melakukan hal ini, yang perlu kita buka adalah file yang terdapat pada folder module/akm/akm.php.
Pada kode tersebut, kita akan jumpai tag
<form method="post" enctype="multipart/form-data" action="?module=insert_akm_mhs">
tepatnya pada baris 13. Pada tag tersebut kita akan menambahkan kode pada bagian action yang hal ini akan mengatur aksi daripada tombol import saat di tekan.Pada bagian tersebut tambahkan pada bagian action sehingga menjadi seperti ini :
<form ...... action="?module=insert_akm_mhs&act=import" >
Tujuan menambahkan &act=import ini adalah agar kode yang di eksekusi oleh program setelah tombol import ditekan agar membaca perintah pada bagian yang sudah dibuatkan sebagai switch. (switch akan kita jelaskan kemudian).
Selanjutnya, bagaimana membuat form baru dibawahnya untuk form update data AKM, bisa dilakukan dengan meng-copas kode form import tersebut namun pada bagian action akan ditambahkan &act=update dimana kode form tersebut diletakkan persis dibawah tag penutup
</form>
. (bisa copas kode berikut).
<h4>Form Update AKM Mahasiswa</h4>
<form method="post" enctype="multipart/form-data" action="?module=insert_akm_mhs&act=update" >
<div class="box box-solid box-success">
<div class="box-header with-border">
<h3 class="box-title">Pilih Lokasi File Excel</h3>
</div><!-- /.box-header -->
<div class="box-body">
<div class="input-group input-group-sm">
<input type="file" class="form-control" name="fileexcel">
<span class="input-group-btn">
<input name="upload" type="submit" value="Update" class="btn btn-warning btn-flat">
</span>
<!--</div>-->
</div><!-- /.box-body -->
</div><!-- /.box -->
<!--</div>
</div>-->
</form>
</div>
Kode selengkapnya akan tampak seperti kode berikut :
akm.php
<section class="content-header">
<h1>Import Data <small><i>Aktifitas | Kuliah Mahasiswa</i></small></h1>
<ol class="breadcrumb">
<li><a href="#"><i class="fa fa-university"></i>Aktifitas </a></li>
<li class="active">Kuliah Mahasiswa</li>
</ol>
</section>
<br />
<!-- end Content Header -->
<h4>Form Insert AKM Mahasiswa</h4>
<div class="col-md-6">
<p><a href="temp_excell/aktifitas_kuliah_mhs.xls" class="btn btn-primary"><i class="fa fa-download"></i> Download Excel</a>
<form method="post" enctype="multipart/form-data" action="?module=insert_akm_mhs&act=import" >
<div class="box box-solid box-success">
<div class="box-header with-border">
<h3 class="box-title">Pilih Lokasi File Excel</h3>
</div><!-- /.box-header -->
<div class="box-body">
<div class="input-group input-group-sm">
<input type="file" class="form-control" name="fileexcel">
<span class="input-group-btn">
<input name="upload" type="submit" value="Import" class="btn btn-info btn-flat">
</span>
<!--</div>-->
</div><!-- /.box-body -->
</div><!-- /.box -->
</div>
</form></p>
<h4>Form Update AKM Mahasiswa</h4>
<form method="post" enctype="multipart/form-data" action="?module=insert_akm_mhs&act=update" >
<div class="box box-solid box-success">
<div class="box-header with-border">
<h3 class="box-title">Pilih Lokasi File Excel</h3>
</div><!-- /.box-header -->
<div class="box-body">
<div class="input-group input-group-sm">
<input type="file" class="form-control" name="fileexcel">
<span class="input-group-btn">
<input name="upload" type="submit" value="Update" class="btn btn-warning btn-flat">
</span>
<!--</div>-->
</div><!-- /.box-body -->
</div><!-- /.box -->
<!--</div>
</div>-->
</form>
</div>
Kemudian pada langkah kedua adalah membuka file yang terdapat pada folder module/akm/insert_akm_mhs.php.
Pada file ini akan kita tambahkan switch yang akan membedakan tombol apa yang dipilih pada form.
Switch ini ibaratnya semacam saklar, yang mana terdapat pilihan antara import dan update dari aksi yang akan dikerjakan.
Setelah file terbuka, persis diatas kode skrip
$result=$proxy->InsertRecordset($gettoken,'kuliah_mahasiswa',$akm_je);
selipkan kode berikut sehingga selengkapnya akan seperti ini :
switch($_GET['act']){
case "import":
$result=$proxy->InsertRecordset($gettoken,'kuliah_mahasiswa',$akm_je);
//var_dump($result);
break;
skrip diatas maksudnya adalah jika pada form AKM yang dipilih adalah tombol import, maka baris program yang akan dieksekusi adalah pada
case "import":
sampai ketemu perintah break;. Perintah import adalah proses memasukkan data yang sebelumnya tidak ada atau belum pernah dimasukkan.Selanjutnya bagaimana kita akan membuat bagian apabila tombol update dipilih, maka tambahkan kode persis di bawah break; yaitu untuk case "update":, seperti berikut :
case "update":
//echo "ini case update";
for($i=0;$i<1;$i++){
foreach($j_decode as $row){
$key = array('id_smt' => $row['id_smt'],'id_reg_pd' => $row['id_reg_pd']);
$data = array('id_stat_mhs' => $row['id_stat_mhs'],
'ips'=> $row['ips'],
'sks_smt'=> $row['sks_smt'],
'ipk'=> $row['ipk'],
'sks_total'=> $row['sks_total']);
$updates[] = array('key'=>$key,'data'=>$data);
$j_upd=json_encode($updates);
//echo "<br> json_update ".$j_upd;
$result = $proxy->UpdateRecordset($gettoken,'kuliah_mahasiswa',$j_upd);
//var_dump($result);
}
}
break ;
}
Kode selengkapnya adalah seperti beikut ini :
insert_akm_mhs.php
<h1> Insert Aktifitas Kuliah Mahasiswa to Feeder </h1>
<!-- Database sisfo -->
<?php
//include 'session.php';
include "module/excel_reader2.php";
@$data = new Spreadsheet_Excel_Reader($_FILES['fileexcel']['tmp_name']);
@$hasildata = $data->rowcount($sheet_index=0);
$sukses = 0;
$gagal = 0;
//echo $hasildata."<br>";
for ($i=3; $i<=$hasildata; $i++) // membaca data dimulai baris ke 2
{
//$records=array();
$record['id_smt']=$data->val($i,2);
// mencari id_reg_pd
$nim=$data->val($i,3);
$nipd="nipd like '%$nim%'";
//echo $i.". ".$nim."<br>";
$result=$proxy->GetRecord($gettoken,'mahasiswa_pt',$nipd);
$coba=$result['result'];
$record['id_reg_pd']=$coba['id_reg_pd']; // inti
$record['id_stat_mhs']=$data->val($i,5);;//} // Perhatikan Status MHS
$record['ips']=$data->val($i,6); // inti
$record['sks_smt']=(integer)$data->val($i,7);
$record['ipk']=$data->val($i,8);
$record['sks_total']=(integer)$data->val($i,9); // inti
$records[]=$record; //data dikumpulkan pada array records
}
//print_r($records);
$j_encode=json_encode($records);
$akm_je=$j_encode;
//print_r($akm_je);
$j_decode=json_decode($j_encode,true);
$akm_jd=$j_decode;
switch($_GET['act']){
case "import":
$result=$proxy->InsertRecordset($gettoken,'kuliah_mahasiswa',$akm_je);
//var_dump($result);
break;
case "update":
//echo "ini case update";
for($i=0;$i<1;$i++){
foreach($j_decode as $row){
$key = array('id_smt' => $row['id_smt'],'id_reg_pd' => $row['id_reg_pd']);
$data = array('id_stat_mhs' => $row['id_stat_mhs'],
'ips'=> $row['ips'],
'sks_smt'=> $row['sks_smt'],
'ipk'=> $row['ipk'],
'sks_total'=> $row['sks_total']);
$updates[] = array('key'=>$key,'data'=>$data);
$j_upd=json_encode($updates);
//echo "<br> json_update ".$j_upd;
$result = $proxy->UpdateRecordset($gettoken,'kuliah_mahasiswa',$j_upd);
//var_dump($result);
}
}
break ;
}
echo "<pre style='background-color:#1699C9'>";
if ($result['result']) {
//for ($i=2; $i<=$hasildata; $i++){
foreach ($j_decode as $row){
$id_smt=$row['id_smt'];
$id_reg_pd=$row['id_reg_pd'];
$id_stat_mhs=$row['id_stat_mhs'];
$ips=$row['ips'];
$sks_smt=$row['sks_smt'];
$ipk=$row['ipk'];
$sks_total=$row['sks_total'];
echo "<br>Semester : ".$id_smt." | Id reg Pd : ".$id_reg_pd." | Id stat mhs = ".$id_stat_mhs." | IPs = ".$ips." | SKS Smt = ".$sks_smt." | IPk = ".$ipk." | SKS Tot = ".$sks_total;
if ($id_reg_pd !='') $sukses++;
else $gagal++;
}
//}
}
echo "</pre>";
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='?module=home'>depan</a>";
?>
</tr>
</tr>
Demikian update post untuk menambahkan form update Aktifitas Kuliah Mahasiswa secara masal lewat webservice pada adminws kali ini, semoga teman-teman yang lagi belajar ngoding semakin semangat untuk melengkapi webservice masing-masing bahkan semoga ada yang selalu mengembangkan untuk kebaikan kita bersama.
Terima kasih atensinya, jika ada hal-hal yang kurang berkenan saya mohon maaf yang sebesar-besarnya dan semoga tulisan ini ada manfaatnya.
Bravo Codinger....
Sign up here with your email