Inilah Cara Sukses PDPT/PD Dikti Bag.1

Inilah Cara Sukses PDPT/PD Dikti Bag.1
April 21, 2017 No Comments Education,MIS satya
  • Apa sih PDPT / PD Dikti ?

PDPT/PD Dikti merupakan singkatan dari Pangkalan Data Perguruan Tinggi, adalah sebuah sistem terpusat/induk yang dibangun oleh Kemenristek Dikti berkaitan dengan tata kelola data-data digital seluruh aktivitas akademik para penyelenggara program pendidikan tinggi mulai dari Diploma 1/2/3/4, Strata-1/2/3 dan Profesi baik Pemerintah mapun Swasta. Mekanisme data-data tersebut sampai terkumpul kedalam server Dikti melalui sebuah Aplikasi Feeder yang di-distribusikan ke semua penyelenggara pendidikan tinggi, setiap PT sistem melakukan koneksi melalui fungsi web service disediakan oleh server pusat.

Hal mendasar yang harus diketahui dan dipahami untuk sukses pelaporan PD Dikti adalah :

  1. Fungsi dari tiap table serta relasi keterhubungan
  2. Struktur dan fungsi field atau kolom dari setiap table
  3. Fungsi dari Web Services

 

Jika ketiga hal tersebut sdh dipahami maka tidaklah sulit membuat aplikasi untuk melakukan migrasi data, saat ini sudah ada beberapa pejuang yg membuat aplikasi migrasi data seperti Feeder WS Client dari Sdr.Yusuf Ayuba, Feeder Exporter dari Sdr.Wildan Tea dan lainnya yg mungkin belum saya ketahui. Kedua aplikasi tersebut mentransfer data yg bersumber dari file Excel sesuai template format yang sdh ditentukan (sepengetahuan saya).

Tulisan saya kali ini bukan memberikan aplikasi seperti para pejuang lainnya tetapi mencoba menuntun Anda untuk membangun aplikasi migrasi sendiri khususnya bagi PT yg sudah memiliki sistem Akademik sehingga proses migrasi tidak melalui media perantara tetapi langsung ke Aplkasi Feeder.

Sebelum lanjut …! bagi Anda yang hobi ngopi atau ngeteh monggo dibuat dahulu dan dalam keadaan panas lalu seruputlah… tapi jangan langsung dihabiskan karena perjalanan kita masih panjang seperti Tol Cipali.

Software Requirement

Untuk memulainya terdapat beberapa kebutuhan perangkat lunak yang harus dimiliki dan semua itu adalah free, yaitu :

  1. Web Server, untuk melengkapinya Anda yang menggunakan OS Window dapat menggunakan XAMPP atau WAMP dan untuk Anda yang menggunakan OS-X dapat menggunakan MAMP. Sebaiknya yang di-download yang versi portable (zip/rar) bukan versi installer.
  2. Framework Engine PHP, Anda dapat menggunakan apa saja namun engine yang saya gunakan saat ini adalah CodeIgniter yang memang mudah untuk dipelajari apalagi untuk pemula.
  3. Admin Template, dalam hal ini saya menggunakan AdminLTE yang memang free

Instalasi

  1. Web Server, extrak file XAMPP pada salah satu drive yang Anda miliki.
  2. Framework Engine PHP, buat folder XAMPP/htdocs/transfer2feeder dan extrak CodeIgniter ke dalam folder tsb
  3. Admin Template, extrak ke dalam folder tersebut.

Konfigurasi DataBase

Sebelum melakukan pengembangan, silahkan setup file konfigurasi database.php yang terdapat pada XAMPP/htdocs/application/config, silahkan isi hostname, username, password dan database yang dimiliki oleh Sistem Informasi Akademik (SIAKAD).

database.php

	'hostname' => '?', 
	'username' => '?',
	'password' => '?',
	'database' => '?',	
	'dbdriver' => 'mysqli', // Jika DB adalah MySQL atau Maria DB
database.php

Front End

Siapkan modul Front End yaitu sebuah controller, controller ini sebagai utama atau halaman awal yang akan ditampilkan dapat disebut sebagai Halaman Login. Sebagai langkah awal silahkan tambahkan baris pada modul route.php yang berada dalam folder transfer2feeder/application/config seperti dibawah ini.

route.php

$route['default_controller'] = 'GetToken/Index';
$route['404_override'] = '';
$route['Login'] = 'GetToken/Index';
$route['Logout'] = 'GetToken/Logout';
$route['CekToken'] = 'GetToken/CekToken';
route.php

Jika lihat baris router diatas, jelas bahwa pertama kali sistem dijalankan dan mengarahkan ke halaman default yaitu fungsi Index yang terdapat pada modul controller GetToken.php, adapun isi dari GetToken.php seperti dibawah ini :

GetToken.php

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

class GetToken extends CI_Controller {
    
    public function __construct(){
        parent::__construct();

//		$this->load->Library('Nusoap_lib');        				// Load di autoload.php saja.
        $this->url = 'http://localhost:8082/ws/live.php?wsdl'; 	// Default
		$this->client = new nusoap_client($this->url,true);
		$this->table='satuan_pendidikan';
        $this->proxy = $this->client->getProxy();	
    }
    
    function Index(){
		$d['title'] = 'Login';
		$d['breadcrumb'] = '';		
		$d['header']  = $this->load->view('layouts/header','',TRUE);
		$d['footer']  = $this->load->view('layouts/footer','',TRUE);
		$d['content'] = $this->load->view('login',$d,TRUE);
		$this->load->view('main',$d);
    }
    
    function CekToken(){
        $user = $this->input->post('username',true);
        $pass = $this->input->post('password',true);
		
		$temp_error = $this->client->getError();
        $token = $this->proxy->GetToken($user,$pass);
		
        if ($token=='ERROR: username/password salah'){
			$this->session->set_flashdata('pesan','Gagal melakukan koneksi ke Webservice Feeder');
			redirect(base_url());
        }
        else{
            
            $filter_sp = "npsn = '".$user."'";
            $get_id_sp = $this->proxy->GetRecord($token,$this->table,$filter_sp);
			if($get_id_sp['result'])
			{
				$id_sp = $get_id_sp['result']['id_sp'];
	            $nama_pt = $get_id_sp['result']['nm_lemb'];	
			}else{
				$id_sp = '';	
				$nama_lem = '';
			}
            $link = site_url('GetToken/Index');
			if($id_sp == ''){
				echo "<script>window.alert('ID SP anda kosong Tidak Ditemukan'); location.href=('$link')</script>";	
			}
			else{
				$result_mode = $this->proxy->CheckDeveloperMode($token);
				if($result_mode['result'] == 1){
					$mode_ws = "Mode Develop : <b>Sandbox</b>";
					$mode_url = 'http://localhost:8082/ws/sandbox.php?wsdl';	
				}
				else{
					$mode_ws = "Mode Develop : <b>Live</b>";
					$mode_url = 'http://localhost:8082/ws/live.php?wsdl';	
				}
				$this->session->set_userdata('masuk',TRUE);				
			}
						
        }
		
		if($this->session->userdata('masuk')==TRUE){
			$this->session->set_userdata('mode_ws',$mode_ws);
			$this->session->set_userdata('url',$mode_url);		
			$this->session->set_userdata('id_sp',$id_sp);
			$this->session->set_userdata('nama_pt',$nama_pt);
			$this->session->set_userdata('gettoken',$token);	
			$this->session->set_userdata('kdpti',$user);
			redirect('Dashboard');
		}
		else{			
			redirect('Logout');	
		}	
    }
	
	function logout(){
		$this->session->sess_destroy();
		redirect(base_url());
	}
}
GetToken.php

Apabila koneksi ke Web Service berhasil, maka halaman akan di-redirect ke controller baru yaitu Dashboard, silahkan buat sebuah contoller Dashboard.php dengan isi sbb :

Dashboard.php

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

class Dashboard extends CI_Controller {

	function __construct(){
		parent::__construct();	
		if($this->session->userdata('masuk')==TRUE){
			$this->token = $this->session->userdata('gettoken');
			$this->id_sp = $this->session->userdata('id_sp');	
		}
		else{
			header('Location: '.base_url('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['breadcrumbs'] = array();
		$d['title'] = "Dashboard Admin Transfer SIMPATI-Web.Id 2 Feeder";
		$d['breadcrumb'] = $this->load->view('layouts/breadcrumb',$bc,TRUE);
		$d['js'] = $this->load->view('js',$d,TRUE);		
		$d['content'] = $this->load->view('dashboard',$d,TRUE);
		$this->load->view('main',$d);
	}

}
Dashboard.php

 

Partisi Modul View Layout

Agar tidak terjadi penulisan ber-ulang, maka sistem layout sebaiknya modul view dipecah menjadi beberapa modul view, silahkan buat folder layouts di-dalam folder views lalu buat beberapa file view spt dibawah ini :

  1. main.php, merupakan modul view yang berfungsi memanggil semua file-file layout header, navbar, sidebar, footer dan breadcrumb.
  2. header.php, merupakan modul view yang berfungsi memanggil library CSS yang berkaitan dengan layout style.
  3. navbar.php, merupakan modul view yang berfungsi membuat sistem navigasi pada bagian atas dalam kasus ini saya gunakan untuk navigasi tombol logout.
  4. sidebar.php, merupakan modul view yang berfungsi membuat sistem menu yang terapat pada sisi kiri untuk memanggil modul-modul controler yang dibuat.
  5. footer.php, merupakan modul view yang berfungsi menampilkan catatan kaki, seperti copyright, nama institusi dsb.
  6. breadcrumb.php, merupakan modul view yang menampilkan sistem link breacrumb (xxxxxx => xxxxx=> xxxxxxxx).

 

main.php

<!DOCTYPE html>
<html>
<head>
	<?=$header;?>
	<?=isset($style) ? $style : "";?>
</head>
<body class="hold-transition skin-blue sidebar-collapse">
<div class="wrapper">
  <!-- Content Wrapper. Contains page content -->
  <div class="content-wrapper">

    <!-- Main content -->
    <section class="content">
      <!-- Info boxes -->
      <div class="row">
			<?=$content;?>
		</div>
      <!-- /.row -->
    </section>
    <!-- /.content -->
  </div>
  <!-- /.content-wrapper -->

</div>
<!-- ./wrapper -->

<!-- jQuery 2.2.3 -->
<script src="<?=base_url();?>plugins/jQuery/jquery-2.2.3.min.js"></script>
<!-- Bootstrap 3.3.6 -->
<script src="<?=base_url();?>bootstrap/js/bootstrap.min.js"></script>
<!-- FastClick -->
<script src="<?=base_url();?>plugins/fastclick/fastclick.js"></script>
<!-- AdminLTE App -->
<script src="<?=base_url();?>dist/js/app.min.js"></script>
<!-- Sparkline -->
<script src="<?=base_url();?>plugins/sparkline/jquery.sparkline.min.js"></script>
<!-- jvectormap -->
<script src="<?=base_url();?>plugins/jvectormap/jquery-jvectormap-1.2.2.min.js"></script>
<script src="<?=base_url();?>plugins/jvectormap/jquery-jvectormap-world-mill-en.js"></script>
<!-- SlimScroll 1.3.0 -->
<script src="<?=base_url();?>plugins/slimScroll/jquery.slimscroll.min.js"></script>

<script src="<?=base_url('js/parsley.min.js')?>"></script>

	<?=isset($js) ? $js : "";?>
</body>
</html>
main.php

Anda dapat membuang beberapa baris code di atas terutama pada plugin js yang tidak digunakan,

header.php

  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <title>Simpati-Web.id to Feeder | Dashboard</title>
  <!-- Tell the browser to be responsive to screen width -->
  <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
  <!-- Bootstrap 3.3.6 -->
  <link rel="stylesheet" href="<?=base_url();?>bootstrap/css/bootstrap.min.css">
  <!-- Font Awesome -->
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
  <!-- Ionicons -->
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ionicons/2.0.1/css/ionicons.min.css">
  <!-- jvectormap -->
  <link rel="stylesheet" href="<?=base_url();?>plugins/jvectormap/jquery-jvectormap-1.2.2.css">
  <!-- Theme style -->
  <link rel="stylesheet" href="<?=base_url();?>dist/css/AdminLTE.min.css">
  <!-- AdminLTE Skins. Choose a skin from the css/skins
       folder instead of downloading all of them to reduce the load. -->
  <link rel="stylesheet" href="<?=base_url();?>dist/css/skins/_all-skins.min.css">
  
  <link href="<?=base_url('css/parsley.css')?>" rel="stylesheet"> 
header.php

footer.php

    <div class="pull-right hidden-xs">
      <b>Version</b> 1.0
    </div>
    <strong>Copyright ©  2016 <a href="http://www.simpati-web.id">SIMPATI-Web.id</a>.</strong> All rights reserved.
footer.php

navbar.php

    <!-- Logo -->
    <a href="<?=base_url();?>admin" class="logo">
      STIK-St.Carolus
    </a>

    <!-- Header Navbar: style can be found in header.less -->
    <nav class="navbar navbar-static-top">
      <!-- Sidebar toggle button-->
      <a href="#" class="sidebar-toggle" data-toggle="offcanvas" role="button">
        <span class="sr-only">Toggle navigation</span>
      </a>
      <!-- Navbar Right Menu -->
      <div class="navbar-custom-menu">
        <ul class="nav navbar-nav">
          <!-- Messages: style can be found in dropdown.less-->

          <!-- User Account: style can be found in dropdown.less -->
          <li class="dropdown user user-menu">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown">
              <img src="<?=base_url();?>dist/img/user2-160x160.jpg" class="user-image" alt="User Image">
              <span class="hidden-xs">STIK Sint Carolus</span>
            </a>
            <ul class="dropdown-menu">
              <!-- User image -->
              <li class="user-header">
                <img src="<?=base_url();?>dist/img/user2-160x160.jpg" class="img-circle" alt="User Image">
                <p>Transfer Data Simpati 2 Feeder
                  <small>2016</small>
                </p>
              </li>
              <!-- Menu Body -->
              <!-- Menu Footer-->
              <li class="user-footer">
                <div class="pull-left">
                  <a href="#" class="btn btn-default btn-flat">Profile</a>
                </div>
                <div class="pull-right">
                  <a href="<?=base_url('Logout');?>" class="btn btn-default btn-flat">Logout</a>
                </div>
              </li>
            </ul>
          </li>
          <!-- Control Sidebar Toggle Button -->
          <li>
            <a href="#" data-toggle="control-sidebar"><i class="fa fa-gears"></i></a>
          </li>
        </ul>
      </div>

    </nav>
navbar.php

sidebar.php

    <section class="sidebar">
      <ul class="sidebar-menu">
        <li class="header">MAIN NAVIGATION</li>
		  <li><a href="<?=base_url();?>admin"><i class="fa fa-dashboard"></i> <span>Dashboard</span></a></li>
		 <!-- Master-->
        <li class="treeview">
          <a href="#">
            <i class="fa fa-key"></i>
            <span>Mahasiswa</span>
           <span class="pull-right-container">
              <i class="fa fa-angle-left pull-right"></i>
            </span>			
          </a>
          <ul class="treeview-menu">
            <li><a href="<?=base_url('TransBiodataMhs');?>"><i class="fa fa-circle-o"></i> Biodata Mhs</a></li>
            <li><a href="<?=base_url('TransJurusanMhs');?>"><i class="fa fa-circle-o"></i> Jurusan Mhs</a></li>
            <li><a href="<?=base_url('TransNilaiPindahan');?>"><i class="fa fa-circle-o"></i> Nilai-Nilai Pindahan</a></li>
          </ul>
        </li>
		<!-- Perkuliahan-->
        <li class="treeview">
          <a href="#">
            <i class="fa fa-history"></i>
            <span>Perkuliahan</span>
           <span class="pull-right-container">
              <i class="fa fa-angle-left pull-right"></i>
            </span>			
          </a>
          <ul class="treeview-menu">
            <li><a href="<?=base_url('TransJadwalKuliah');?>"><i class="fa fa-circle-o"></i> Jadwal Kuliah</a></li>
            <li><a href="<?=base_url('TransPesertaKelas');?>"><i class="fa fa-circle-o"></i> Peserta Kuliah+Nilai</a></li>
            <li><a href="<?=base_url('TransDosenPengampu');?>"><i class="fa fa-circle-o"></i> Dosen Pengampu</a></li>
          </ul>
        </li>
		<!-- Aktivitas Mahasiswa-->	
        <li class="treeview">
          <a href="#">
            <i class="fa fa-sign-in"></i>
            <span>Akivitas Mahasiswa</span>
            <span class="pull-right-container">
              <i class="fa fa-angle-left pull-right"></i>
            </span>
          </a>
          <ul class="treeview-menu">
            <li><a href="<?=base_url('TransMhsAktif');?>"><i class="fa fa-circle-o"></i> Mahasiswa Aktif</a></li>
            <li><a href="<?=base_url('TransMhsCuti');?>"><i class="fa fa-circle-o"></i> Mahasiswa Cuti</a></li>
            <li><a href="<?=base_url('TransMhsLulus');?>"><i class="fa fa-circle-o"></i> Mahasiswa Lulus</a></li>
            <li><a href="<?=base_url('TransMhsKeluarDO');?>"><i class="fa fa-circle-o"></i> Mahasiswa Keluar/DO</a></li>
          </ul>
        </li>      
		</ul>
    </section>
sidebar.php

Modul sidebar.php adalah sebuh side-bar menu yang akan tampil sebelah kiri, dari contoh code diatas terdapat beberapa modul migrasi sbb :

  1. Transfer Biodata/Detil  Mahasiswa
  2. Transfer Histori Pendidikan Mahasiswa
  3. Transfer Nilai Mahasiswa Pindahan/Transfer
  4. Transfer Jadwal Kuliah
  5. Transfer Peserta Kelas & Nilai
  6. Transfer Dosen Pengampu
  7. Transfer Mhs Aktif & IPS-IPK
  8. Transfer Mhs Cuti
  9. Transfer Mhs Lulus
  10. Transfer Mhs Keluar/DO

 

breadcrumb.php

<li><a href="<?=base_url();?>admin"><i class="fa fa-dashboard"></i> Dashboard</a></li>
<?php 
		foreach($breadcrumbs as $bc) {
				echo "<li><a href='$bc[url]'>  $bc[val]</a></li>";
		}
?>
breadcrumb.php

Jika dijalankan akan tampil sbb :

dan Jika berhasil login akan tanpil sbb :

Tahap berikutnya akan saya lanjutkan pada posting Bag.2 segera

Bye .. & God Bless U…

Tags
About The Author

Leave a reply

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