Dokumen Teknis Web Service Push PDPT
-
Upload
ayu-andrian -
Category
Documents
-
view
26 -
download
1
Transcript of Dokumen Teknis Web Service Push PDPT
5/13/2018 Dokumen Teknis Web Service Push PDPT - slidepdf.com
http://slidepdf.com/reader/full/dokumen-teknis-web-service-push-pdpt-55a74f80220e2 1/10
Dokumen TeknisWebservice PUSH
Dokumen ini berisi tentang
implementasi webservice push
untuk setiap Perguruan Tinggi
5/13/2018 Dokumen Teknis Web Service Push PDPT - slidepdf.com
http://slidepdf.com/reader/full/dokumen-teknis-web-service-push-pdpt-55a74f80220e2 2/10
Dokumen Teknis Webservice Push PDPT - v1.1
Hal 2
DAFTAR REVISI
Versi Pemilik Deskripsi Revisi Tanggal
1.0 Haris Sri Wibowo 28/05/2011
1.1 Haris Sri Wibowo Penambahan contoh pemetaan database 16/06/2011
5/13/2018 Dokumen Teknis Web Service Push PDPT - slidepdf.com
http://slidepdf.com/reader/full/dokumen-teknis-web-service-push-pdpt-55a74f80220e2 3/10
Dokumen Teknis Webservice Push PDPT - v1.1
Hal 3
1 Daftar Isi
1 Daftar Isi ................................................................................................................................................ 3
2 Persyaratan ........................................................................................................................................... 4
2.1 Software Requirements................................................................................................................. 4
2.2 Frequently Asked Questions .......................................................................................................... 4
3 Webservice ............................................................................................................................................ 4
3.1 Daftar service yang disediakan...................................................................................................... 4
3.2 Parameter Input ............................................................................................................................ 5
3.3 Parameter Output ......................................................................................................................... 5
3.4 Sintak Dasar Pengiriman Data ....................................................................................................... 5
3.5 Contoh Pemetaan dan Pengiriman Data Transaksi Nilai Mahasiswa ........................................... 7
3.5.1 Struktur data ..................................................................................................................... 7
3.5.2 Elemen Data Webservice .................................................................................................. 8
3.5.3 Source code....................................................................................................................... 8
5/13/2018 Dokumen Teknis Web Service Push PDPT - slidepdf.com
http://slidepdf.com/reader/full/dokumen-teknis-web-service-push-pdpt-55a74f80220e2 4/10
Dokumen Teknis Webservice Push PDPT - v1.1
Hal 4
2 PersyaratanDokumen ini tidak membahas dasar-dasar pengembangan webservice.
Client webservice push (setor) PDPT dapat dikembangkan menggunakan berbagai bahasa pemrograman,
seperti: Java, PHP, ASP.NET, dan lain-lain. Dokumen ini hanya membatasi pada pengembangan client webservice push PDPT menggunakan PHP.
2.1 Software Requirements
Software yang diperlukan untuk pengembangan client webservice push PDPT menggunakan PHP:
Webserver (rekomendasi Apache 2.2.x)
PHP (rekomendasi PHP 5.2.x), dengan ketentuan
o PHP extension zLib enable
o PHP extension PCRE enable
o PHP extension SOAP disable
o NuSOAP 0.9.5
2.2 Frequently Asked Questions
Pertanyaan terkait webservice PDPT dapat menghubungi:
Ario Sutomo ([email protected])
Haris Sri Wibowo ([email protected])
3 Webservice
3.1 Daftar service yang disediakan
No Nama Service Tabel dalam schema PDPT
1 master.mahasiswa TMST_MAHASISWA
2 master.matakuliah TMST_MATA_KULIAH
3 tran.mengajar_dosen TRAN_AKTIVITAS_MENGAJAR_DOSEN4 tran.riwayat_status_mhs TRAN_RIWAYAT_STATUS_MAHASISWA
5 tran.kuliah_mhs TRAN_KULIAH_MHS
6 tran.nilai_mhs TRAN_NILAI_SEMESTER_MHS
5/13/2018 Dokumen Teknis Web Service Push PDPT - slidepdf.com
http://slidepdf.com/reader/full/dokumen-teknis-web-service-push-pdpt-55a74f80220e2 5/10
Dokumen Teknis Webservice Push PDPT - v1.1
Hal 5
3.2 Parameter Input
No Nama Tipe Keterangan
1 username string Nama user PT
2 password string Password PT
3 tahun integer Tahun pelaporan
4 semester integer Semester pelaporan5 dari integer Nomor awal record yang dikirim
6 jumlah integer Jumlah record yang dikirim
7 data string Data yang dikirim dalam format JSON
3.3 Parameter Output
No Nama Tipe Keterangan
1 err_no integer Kode error (0 jika tidak terjadi kesalahan)
2 err_teks string Teks error
3 jumlah_data integer Jumlah data yang diproses
4 jumlah_data_gagal integer Jumlah data yang gagal diproses
3.4 Sintak Dasar Pengiriman Data
Secara garis besar, sintak dasar untuk pengiriman data melalui webservice push adalah sebagai berikut:
<?php
// ubah konfigurasi dasar php agar tidak membatasi waktu eksekusi
// dan penggunaan memori
set_time_limit(0);
ini_set("memory_limit", '-1');
// gunakan library NuSOAP untuk webservice
require_once('nusoap.php');
// alamat webservice push pdpt
$w = 'https://ws.pdpt.dikti.go.id/pdpt.php?wsdl';
// inisialisasi client webservice
$soapclient = new nusoap_client($w, true);
$soapclient->soap_defencoding = 'UTF-8';
// data yang akan dikirim$d = array();
// setting parameter pelaporan
$tahun = 2011;
$semester = 1;
5/13/2018 Dokumen Teknis Web Service Push PDPT - slidepdf.com
http://slidepdf.com/reader/full/dokumen-teknis-web-service-push-pdpt-55a74f80220e2 6/10
Dokumen Teknis Webservice Push PDPT - v1.1
Hal 6
// otentikasi client webservice push
// diisi username dan password PT
$username = 'username-pt';
$password = 'password-pt';
// parameter webservice
$dari = 1;
$jumlah = sizeof($d);
$namaWS = 'master.mahasiswa';
// proses pengiriman data
$param = array('username' => $username,
'passwd' => $password,
'tahun' => $tahun,
'semester' => $semester,
'dari' => $dari,
'jumlah' => $jumlah,
'data' => json_encode($d));
$retval = $soapclient->call($namaWS, $param);
$retval = json_decode($retval, TRUE);
if ($retval['err_no'] == 0) {
echo 'sukses';
} else {
echo "<pre>";
print_r($data);
echo "</pre>";
}
// tampilkan request dan response untuk debuging
$err = $soapclient->getError();
if($err){
echo "<p><b>ERROR! $err</b></p>";
}
echo "<b>SOAP Request</b>";
echo "<pre>".htmlentities($soapclient->request)."</pre>";
echo "<b>SOAP Response</b>";
echo "<pre>".htmlentities($soapclient->response)."</pre>";
5/13/2018 Dokumen Teknis Web Service Push PDPT - slidepdf.com
http://slidepdf.com/reader/full/dokumen-teknis-web-service-push-pdpt-55a74f80220e2 7/10
Dokumen Teknis Webservice Push PDPT - v1.1
Hal 7
3.5 Contoh Pemetaan dan Pengiriman Data Transaksi Nilai Mahasiswa
3.5.1 Struktur data
Diasumsikan Perguruan Tinggi sudah mempunyai Sistem Informasi Akademik dengan struktur data
sebagai berikut:
Catatan:
Isi field t_mahasiswa.jenjang = ‘S1’, ‘S2’, ‘S3’, …
Tabel referensi PDPT untuk jenjang pendidikan adalah sebagai berikut:
KODE_JENJANG_PENDIDIKAN JENJANG_PENDIDIKAN
1 S3
2 S2
3 S1
4 D4
5 D3
6 D2
5/13/2018 Dokumen Teknis Web Service Push PDPT - slidepdf.com
http://slidepdf.com/reader/full/dokumen-teknis-web-service-push-pdpt-55a74f80220e2 8/10
Dokumen Teknis Webservice Push PDPT - v1.1
Hal 8
7 D1
8 SP-1
9 SP-2
10 Profesi
11 Non-akademik
Dari data tersebut, harus dilakukan pemetaan terlebih dahulu sebelum data dikirimkan.
3.5.2 Elemen Data Webservice
Elemen data webservice push tran.nilai_mhs() adalah sebagai berikut:
3.5.3 Source code
<?php
// konfigurasi koneksi database
$db_host = 'localhost';
$db_user = 'root';
$db_pass = '';
$db_name = 'dbdummy';
$link = mysql_connect($db_host, $db_user, $db_pass);
if (!$link) {
die ('Could not connect: ' . mysql_error());
}
5/13/2018 Dokumen Teknis Web Service Push PDPT - slidepdf.com
http://slidepdf.com/reader/full/dokumen-teknis-web-service-push-pdpt-55a74f80220e2 9/10
Dokumen Teknis Webservice Push PDPT - v1.1
Hal 9
$db_selected = mysql_select_db($db_name, $link);
if (!$db_selected) {
die ('Can not use ' . $db_name . ': '. mysql_error());
}
// konfigurasi parameter pelaporan
$tahun = 2011;$semester = 1;
$sql = "SELECT a.kode_mk, a.bobot, c.jenjang, c.kode_prodi, c.nim
FROM t_krs a, t_kuliah b, t_mahasiswa c
WHERE a.kuliah_id = b.id AND b.nim = c.nim
AND b.tahun = $tahun AND b.semester = $semester";
$result = mysql_query($sql);
if (!$result) {
die ('Invalid query: ' . mysql_error());
}
// mapping jenjang pendidikan
$jenjang = array('S3' => 1, 'S2' => 2, 'S1' => 3);
$d = array();
while ($row = mysql_fetch_assoc($result)) {
$temp = array(
"KODE_MATA_KULIAH" => $row['kode_mk'],
"BOBOT_NILAI" => $row['bobot'],
"KODE_JENJANG_PENDIDIKAN" => $jenjang[ $row['jenjang'] ],
"KODE_PROGRAM_STUDI" => $row['kode_prodi'],
"NIM" => $row['nim'],
"KODE_KELAS" => "01"
);
$d[] = $temp;
}
// ubah konfigurasi dasar php agar tidak membatasi waktu eksekusi
// dan penggunaan memori
set_time_limit(0);
ini_set("memory_limit", '-1');
// gunakan library NuSOAP untuk webservice
require_once('nusoap.php');
// alamat webservice push pdpt
$w = 'https://ws.pdpt.dikti.go.id/pdpt.php?wsdl';
// inisialisasi client webservice
$soapclient = new nusoap_client($w, true);
$soapclient->soap_defencoding = 'UTF-8';
// otentikasi client webservice push
5/13/2018 Dokumen Teknis Web Service Push PDPT - slidepdf.com
http://slidepdf.com/reader/full/dokumen-teknis-web-service-push-pdpt-55a74f80220e2 10/10
Dokumen Teknis Webservice Push PDPT - v1.1
Hal 10
// diisi username dan password PT
$username = 'username-pt';
$password = 'password-pt';
// parameter webservice
$dari = 1;
$jumlah = sizeof($d);
$namaWS = 'tran.nilai_mhs';
// proses pengiriman data
$param = array('username' => $username,
'passwd' => $password,
'tahun' => $tahun,
'semester' => $semester,
'dari' => $dari,
'jumlah' => $jumlah,
'data' => json_encode($d));
$retval = $soapclient->call($namaWS, $param);
$retval = json_decode($retval, TRUE);
if ($retval['err_no'] == 0) {
echo 'sukses';
} else {
echo "<pre>";
print_r($data);
echo "</pre>";
}
// tampilkan request dan response untuk debuging
$err = $soapclient->getError();
if($err){
echo "<p><b>ERROR! ".$err."</b></p>";
}
echo"<b>SOAP Request</b>";
echo"<pre>".htmlentities($soapclient->request)."</pre>";
echo"<b>SOAP Response</b>";
echo"<pre>".htmlentities($soapclient->response)."</pre>";