Inilah Cara Sukses PDPT/PD Dikti Bag.2

Inilah Cara Sukses PDPT/PD Dikti Bag.2
April 27, 2017 No Comments Education,MIS satya

Untuk Anda yang belum membaca artikel sebelumnya, sebaiknya untuk membaca artikel Inilah Cara Sukses PDPT/PD Dikti Bag.1

Proses transfer data hanya memerlukan informasi sbb :

  1. Kajian terhadap data target :pelajari tabel-tabel beserta kolom-kolom (field) terutama pada field-field yang harus diisi serta field-field yang ada keterhubungan (relation key) dari tabel lain, informasi ini dapat dilihat pada file dokumen berkaitan dengan struktur data feeder yang dapat Anda download di laman http://forlap.dikti.go.id/files/feeder.
  2. Kajian terhadap data sumber : yakinkan bahwa kebutuhan data-data yang wajib di trasfer sudah diketahui sehingga aplikasi lokal yang Anda bangun tentu harus memilikinya namun perlu dicatat bahwa beberapa isian yang memang wajib diisi dan ada yang bersifat optional (boleh kosong) maka abaikan saja. Lalu fokuskan pada field kode-kode seperti jenis kelamin, pendidikan akhir, pekerjaan orang tua dll untuk dikonversi disesuaikan dengan format kode database feeder, sebagai contoh jika pada sistem lokal jenis kelamin Pria berkode ‘P’ maka harus dikonversi ke ‘L’ dst. Metode konversi dapat langsung dilakukan di Source Code dengan if else atau switch case, namun pada contoh kasus ini saya konversi melalui database. Ingat aplikasi EPSBED  terdapat tabel TBKOD.DBF ? karena aplikasi EPSBED penulis yang develop praktis Aplikasi Sistem Informasi  Akademik kami juga menggunakan TBKOD hanya saja saya tambahkan 1 field baru misal ‘kdkod_feeder‘ (perhatikan SELECT query data sumber pada source-code di Controller).

 

Detil Mahasiswa

Biodata Mahasiswa

Sukses Feeder PD Dikti Biodata Mahasiswa

Kajian Data target : nama tabel = mahasiswa

Field target :

  1. Nama Mahasiswa = nm_pd
  2. Tempat Lahir = tmpt_lahir
  3. Tgl Lahir = tgl_lahir
  4. Jenis Kelamin = jk ==> kode di-konversi dengan sistem lokal
  5. Agama = id_agama ==> kode di-konversi dengan sistem lokal
  6. Alamat Tinggal = jln
  7. RT = rt
  8. RW = rw
  9. Telepon Rumah = no_tel_rmh
  10. Desa = ds_kel
  11. Kode Pos = kode_pos
  12. NIK = nik
  13. Nama Ayah = nm_ayah
  14. Pendidikan Akhir Ayah = id_jenjang_pendidikan_ayah ==> kode di-konversi dengan sistem lokal
  15. Pekerjaan Ayah = id_pekerjaan_ayah ==> kode di-konversi dengan sistem lokal
  16. Nama Ibu = nm_ibu
  17. Pendidikan Akhir Ibu = id_jenjang_pendidikan_ibu ==> kode di-konversi dengan sistem lokal
  18. Pekerjaan Ibu = id_pekerjaan_ibu ==> kode di-konversi dengan sistem lokal
  19. Kewarganeragaan = kewarganegaraan
  20. Kode Wilayah = id_wilayah ==> kode di-konversi dengan sistem lokal
  21. Kebutuhan khusus Ayah
  22. Kebutuhan Khusus Ibu
  23. ID Kartu Keluarga = id_kk
  24. Status Penerima Kartu KPS = a_terima_kps

 

Kagian data sumber : msmhs (sistem local)

History Pendidikan Mahasiswa

Sukses-Feeder-PD-Dikti-History-Pendidikan-Mahasiswa

Sukses-Feeder-PD-Dikti-History-Pendidikan-Mahasiswa

 

Kajian Data target : nama tabel = mahasiswa_pt

Field target :

  1. id_sms => Kode UID Prodi yang bersumber dari feeder yaitu tabel ‘sms
  2. id_pd = Kode UID yang bersumber dari feeder yaitu tabel ‘mahasiswa
  3. id_sp = Kode UID yang bersumber dari feeder yaitu tabel ‘satuan_pendidikan
  4. id_jns_daftar => Kode Jenis Pendaftar (Baru=1, Pindahan=2), kode di-konversi dengan sistem lokal
  5. nipd => Nomor Induk Mahasiswa Lokal
  6. tgl_masuk_sp => Tgl Masuk PT
  7. a_pernah_tk => 1 (default saja)
  8. a_pernah_paud => 1 (default saja)
  9. mulai_smt => Tahun Akademik Semester Masuk (contoh : ‘20161‘ = Semester Ganjil 2016/2017)

 

Kagian data sumber : msmhs (sistem local)

Sehubungan dengan pada sistem lokal baik data ‘Detil Mahasiswa’ dan ‘History Pendidikan’ menjadi satu, maka proses transfer terhadap 2 tabel feeder pada 1 modul sbb :

Controller : TransferMahasiswa.php

<?php
ob_start();
defined('BASEPATH') OR exit('No direct script access allowed');

class TransBiodataMhs extends CI_Controller {

	var $title = "Transfer Biodata Mahasiswa, Orang Tua, History Pendidikan";

	function __construct(){
		parent::__construct();	
		if($this->session->userdata('masuk')==TRUE) {
			$this->token = $this->session->userdata('gettoken');
			$this->id_sp = $this->session->userdata('id_sp');	
			$this->url = $this->session->userdata('url');	
		}
		else {
			redirect('Logout');	
		}        
	}

	private function Screen() {
		$d['header']  = $this->load->view('layouts/header','',TRUE);
		$d['navbar']  = $this->load->view('layouts/navbar','',TRUE);
		$d['sidebar'] = $this->load->view('layouts/sidebar','',TRUE);
		$d['footer']  = $this->load->view('layouts/footer','',TRUE);
		return $d;	
	}
	
	public function index()
	{
		$d = $this->Screen();
		$bc =  array();
		$bc['breadcrumbs'] = $bc;
		$d['title'] = $this->title;
		$d['breadcrumb'] = $this->load->view('layouts/breadcrumb',$bc,TRUE);
		$d['data']       = array("kdjur" => $this->input->post('kdjur'), 
											   "awnim" => $this->input->post('awnim'), 
										       "aknim" => $this->input->post('aknim'));
		$d['optJurusan'] = $this->feeder_model->optJurusan( $this->input->post('kdjur'));
		$d['content'] = $this->load->view('transfermahasiswa',$d,TRUE);
		$this->load->view('main',$d);
	}
	
	public function Proses() 
	{
		$d = $this->Screen();
		$bc =  array();
		$bc['breadcrumbs'] = $bc;
		$d['title'] = $this->title;
		$d['breadcrumb'] = $this->load->view('layouts/breadcrumb',$bc,TRUE);
		$d['data']       = array("kdjur" => $this->input->post('kdjur'), 
											   "awnim" => $this->input->post('awnim'), 
										       "aknim" => $this->input->post('aknim'));
		$d['optJurusan'] = $this->feeder_model->optJurusan( $this->input->post('kdjur'));
		$d['hasil'] = $this->Transfer($d['data']);
		$d['content'] = $this->load->view('transfermahasiswa',$d,TRUE);
		$this->load->view('main',$d);		
	}
	
	private function Transfer($data) 
	{
		$this->client = new nusoap_client($this->url,true,false,false,false,false,0,300);	
		$this->proxy = $this->client->getProxy();
		$this->table1 = "mahasiswa";
		$this->table2 = "mahasiswa_pt";
		
		$mess = array('error' => array(),'success' => array());
		// Get ID Program Studi dari SIMPATI Local : tbjur
		$row = $this->db->query("SELECT kdpst FROM tbjur WHERE kdjur='$data[kdjur]' LIMIT 1")->row_array();
		if(!isset($row)) {
			$mess['error'][] = "--> Error : Kode Prodi di Local SIMPATI tidak terdaftar...";
		}
		else {
			$kode_prodi = $row['kdpst'];	
			// Get ID Program Studi (id_sms) dari FEEDER Tabel : sms
			$filter = "kode_prodi ilike '%".$kode_prodi."%' AND id_sp='".$this->id_sp."'";
			$result = $this->proxy->GetRecord($this->token,"sms", $filter);
			if($result['error_code']!=0) {
				$mess['error'][] = "--> Error : ".$result['error_desc'];
			}
			else {
				if($result['result']) {
					$id_sms = $result['result']['id_sms'];
				}
				else {
					$mess['error'][] = "--> Error : ".$result['error_desc'];					
				}
			}
		}
		if(sizeof($mess['error']) == 0) {
			// If Not Error 
			$dr = strlen($data['awnim']);
			$sp = strlen($data['aknim']);			
			$whr1 = (!empty($data['kdjur'])) ? "kdjur='$data[kdjur]'" : "1=1";
			if(empty($data['awnim']) AND empty($data['aknim'])) {
			   $whr2 = "1=1";
			}
			elseif(!empty($data['awnim']) AND !empty($data['aknim'])) {
				$whr2 = "left(m.nimhs, $dr) >= '$data[awnim]' AND left(m.nimhs, $sp) <= '$data[aknim]'";
			}
			elseif(!empty($data['awnim']) AND empty($data['aknim'])) {
				$whr2 = "left(m.nimhs, $dr) = '$data[awnim]'";	
			}
			else {
				$whr2 = "left(m.nimhs, $sp) = '$data[aknim]'";		
			}
			// Get Sumber Data SIMPATI : Master Mahasiswa 
			$query = $this->db->query("SELECT m.*, 
																  jenis_pendaftaran.kdkod_feeder as id_jns_daftar,
																  jenis_keluar.kdkod_feeder      as id_jns_keluar,
																  agama.kdkod_feeder             as id_agama,
																  pd_ayah.kdkod_feeder           as id_jenjang_pendidikan_ayah,
																  pk_ayah.kdkod_feeder           as id_pekerjaan_ayah,
																  pd_ibu.kdkod_feeder            as id_jenjang_pendidikan_ibu,
																  pk_ibu.kdkod_feeder            as id_pekerjaan_ibu 
																  FROM msmhs m 
																  LEFT OUTER JOIN tbkod jenis_pendaftaran ON jenis_pendaftaran.kdgrp='06' AND jenis_pendaftaran.kdkod = m.stpid
																  LEFT OUTER JOIN tbkod agama             ON agama.kdgrp='51'             AND agama.kdkod = m.kdagm
																  LEFT OUTER JOIN tbkod jenis_keluar      ON jenis_keluar.kdgrp='05'      AND jenis_keluar.kdkod=m.stakl 
																  LEFT OUTER JOIN tbkod pd_ayah           ON pd_ayah.kdgrp='01'           AND pd_ayah.kdkod=m.pdaya
																  LEFT OUTER JOIN tbkod pk_ayah           ON pk_ayah.kdgrp='17'           AND pk_ayah.kdkod=m.pkaya
																  LEFT OUTER JOIN tbkod pd_ibu            ON pd_ibu.kdgrp='01'            AND pd_ibu.kdkod=m.pdibu
																  LEFT OUTER JOIN tbkod pk_ibu            ON pk_ibu.kdgrp='17'            AND pk_ibu.kdkod=m.pkibu			
														WHERE $whr1 AND $whr2 
														ORDER BY m.kdjur,m.nimhs");
			if($query->num_rows()==0 ) {
				$mess['error'] = "--> Error : Hasil Query SIMPATI nihil ..";
			}
			else {
				foreach($query->result_array() as $row) {
					
					// Get Detail Pendidikan dari SIMPATI
					$mahasiswa = array() ;
					$mahasiswa['nm_pd'] = strtoupper(trim($row['nmmhs'])) ;
					$mahasiswa['tmpt_lahir'] = strtoupper(trim($row['tplhr']));					
					$mahasiswa['tgl_lahir'] = $row['tglhr'];					
					$mahasiswa['jk'] = strtoupper(trim($row['kdkel']));
					$mahasiswa['id_agama'] = strtoupper(trim($row['id_agama']));					
					$mahasiswa['jln'] = substr(strtoupper(trim($row['alper'])),0,80);
					$mahasiswa['rt'] = substr(trim($row['rtper']),-2);
					$mahasiswa['rw'] = substr(trim($row['rwper']),-2);
					$tlper = explode(",",$row['tlper']);
					if(sizeof($tlper)<=1) {
						$tlper = $row['tlper'];
					}
					else {
						$tlper = $tlper[0];
					}
					$mahasiswa['no_tel_rmh'] = $tlper;
					$mahasiswa['ds_kel'] = "-";
					$mahasiswa['kode_pos'] = $row['kpper'];
					$mahasiswa['nik'] = "99";
					$mahasiswa['nm_ayah'] = strtoupper($row['nmaya']);
					if($row['id_jenjang_pendidikan_ayah']!="") {
						$mahasiswa['id_jenjang_pendidikan_ayah'] = $row['id_jenjang_pendidikan_ayah'];
					}
					if($row['id_pekerjaan_ayah']!="") {
						$mahasiswa['id_pekerjaan_ayah'] = $row['id_pekerjaan_ayah'];
					}
					$mahasiswa['nm_ibu_kandung'] = strtoupper(trim($row['nmibu'])) ;					
					if($row['id_jenjang_pendidikan_ibu']!="") {
						$mahasiswa['id_jenjang_pendidikan_ibu'] = $row['id_jenjang_pendidikan_ibu'];
					}
					if($row['id_pekerjaan_ibu']!="") {
						$mahasiswa['id_pekerjaan_ibu'] = $row['id_pekerjaan_ibu'];
					}
					$mahasiswa['kewarganegaraan'] = 'ID';
					$mahasiswa['id_wil'] = "999999";
					$mahasiswa['id_kebutuhan_khusus_ayah'] = 0;
					$mahasiswa['id_kebutuhan_khusus_ibu'] = 0;
					$mahasiswa['id_kk'] = 0;
					$mahasiswa['a_terima_kps'] = 1 ;
					
					// Insert ke Detail Pendidikan ke Feeder
					$insert = $this->proxy->InsertRecord($this->token,$this->table1,json_encode($mahasiswa));	
					// Cek Success
					if(isset($insert['result'])){
						if($insert['result']['error_desc']==NULL){
							// If Success Insert Detail Pendidikan  ke Feeder
							$mess['success'] [] = "Sukses Insert Detail Pendidikan : ".$row['nimhs'];
							//  Get History Pendidikan dari SIMPATI
							$id_pd = $insert['result']['id_pd'];
							$mahasiswa_pt = array();
							$mahasiswa_pt['id_sms'] = $id_sms;
							$mahasiswa_pt['id_pd'] = $id_pd;
							$mahasiswa_pt['id_sp'] = $this->id_sp;
							$mahasiswa_pt['id_jns_daftar'] = $row['id_jns_daftar'];
							$mahasiswa_pt['nipd'] = $row['nimhs'];
							$mahasiswa_pt['tgl_masuk_sp'] = $row['tgmsk'];
							$mahasiswa_pt['a_pernah_tk'] = 1;
							$mahasiswa_pt['a_pernah_paud'] = 1;
							$mahasiswa_pt['mulai_smt'] = $row['tahun'].$row['semes'];
							// Insert History Pendidikan ke Feeder
							$insert = $this->proxy->InsertRecord($this->token,$this->table2,json_encode($mahasiswa_pt));
							// Cek Success
							if($insert['result']['error_desc']==NULL){
								// if Success Insert History Pendidikan ke Feeder
								$mess['success'][] = "Sukses Insert History Pendidikan :  ".$row['nimhs'];							
							}
							else{
								$mess['error'][] = "---> Error Insert History Pendidikan  : ".$row['nimhs']." - ".$insert['result']['error_desc'];	
							}			
						}
						else{
							$mess['error'][] = "---> Error Insert Detail Pendidikan  : ".$row['nimhs']." - ".$insert['result']['error_desc'];	
						}
					}
				}
			}		
		}
		return $mess;
	}
}
?>
TransferMahasiswa.php

View : transfermahasiswa.php

<?php
$csrf = array(
        'name' => $this->security->get_csrf_token_name(),
        'hash' => $this->security->get_csrf_hash()
);
?>
<div class="col-xs-12">
	<div class="box">
	   <div class="box-header">
		 <h3 class="box-title">Form</h3>
		 <hr>
	   </div>
		<form role="form" action="<?=base_url();?>ProsesTransBiodataMhs" id="form" class="form-horizontal" method="post" data-parsley-validate="">
				<input type="hidden" name="<?=$csrf['name'];?>" value="<?=$csrf['hash'];?>" />
				<div class="box-body">
					<div class="form-group">
						<label class="control-label col-md-3">Jurusan</label>
						<div class="col-md-9">
							<select class="form-control"  name="kdjur" data-parsley-required="true">
								<?=$optJurusan;?>
							</select>
							<span class="help-block"></span>
						</div>
					</div>
					<div class="form-group">
						<label class="control-label col-md-3">Dari NIM</label>
						<div class="col-md-9">
							<input name="awnim" placeholder="Dari NIM" class="form-control" type="text"  value="<?=$data['awnim'];?>" data-parsley-required="true"> 
							<span class="help-block"></span>
						</div>
					</div>
					<div class="form-group">
						<label class="control-label col-md-3">Sampai NIM</label>
						<div class="col-md-9">
							<input name="aknim" placeholder="Sampai NIM" class="form-control" type="text"  value="<?=$data['aknim'];?>" data-parsley-required="true"> 
							<span class="help-block"></span>
						</div>
					</div>
					<div class="box-footer">
				 		<div class="col-md-3"></div>
				 		<div class="col-md-9">
			                <button name="submit" id="submit" type="submit" class="btn  btn-info">Proses Transfer</button>
						</div>
				     </div>
				</div>
       </form>
	</div>
	<?php
	if(isset($hasil)) {
	?>
	   <div class="box-footer">
		 <hr>
			<table class="table">
				<thead>
					<tr>
						<th>No</th>
						<th>Result</th>
					</tr>
				</thead>
				<tbody>					
	<?php
		$i=0;
		foreach($hasil['success'] as $msg) {
			$i++;
			echo "<tr><td>$i</td><td>$msg</td></tr>";
		}
		$i=0;
		foreach($hasil['error'] as $msg) {
			$i++;
			echo "<tr><td>$i</td><td>$msg</td></tr>";
		}
	?>
			</tbody>
			</table>
	   </div>			
	<?php			
		}	
	?>
</div>
transfermahasiswa.php

Apabila aplikasi ini dijalankan, akan muncul :

simpati-web.id Form Transfer Mahasiswa Feeder PD Dikti

simpati-web.id Form Transfer Mahasiswa Feeder PD Dikti

Jika dijalankan, sukses atau error disampaikan pada screen seperti gambar dibawah ini :

simpati-web.id Hasil Proses Transfer Mahasiswa ke Feeder PD DIkti

simpati-web.id Hasil Proses Transfer Mahasiswa ke Feeder PD DIkti

Untuk artikel kelanjutan atau ke 3 adalah Transfer KRS atau Nilai-Nilai Mahasiswa

Tags
About The Author

Leave a reply

Your email address will not be published. Required fields are marked *