Вы находитесь на странице: 1из 10

Dokumen Teknis

Webservice PUSH

Dokumen ini berisi tentang


implementasi webservice push
untuk setiap Perguruan Tinggi

DAFTAR REVISI
Versi

Pemilik

1.0

Haris Sri Wibowo

1.1

Haris Sri Wibowo

Deskripsi Revisi

Tanggal
28/05/2011

Penambahan contoh pemetaan database

Dokumen Teknis Webservice Push PDPT - v1.1


Hal 2

16/06/2011

1 Daftar Isi
1

Daftar Isi ................................................................................................................................................ 3

Persyaratan ........................................................................................................................................... 4
2.1 Software Requirements................................................................................................................. 4
2.2 Frequently Asked Questions .......................................................................................................... 4

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

Dokumen Teknis Webservice Push PDPT - v1.1


Hal 3

2 Persyaratan
Dokumen 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

PHP extension PCRE enable

PHP extension SOAP disable

NuSOAP 0.9.5

2.2 Frequently Asked Questions


Pertanyaan terkait webservice PDPT dapat menghubungi:
Ario Sutomo (arioss@pusat.itb.ac.id)
Haris Sri Wibowo (haris_sw@ugm.ac.id)

3 Webservice
3.1 Daftar service yang disediakan
No
1
2
3
4
5
6

Nama Service
master.mahasiswa
master.matakuliah
tran.mengajar_dosen
tran.riwayat_status_mhs
tran.kuliah_mhs
tran.nilai_mhs

Tabel dalam schema PDPT


TMST_MAHASISWA
TMST_MATA_KULIAH
TRAN_AKTIVITAS_MENGAJAR_DOSEN
TRAN_RIWAYAT_STATUS_MAHASISWA
TRAN_KULIAH_MHS
TRAN_NILAI_SEMESTER_MHS

Dokumen Teknis Webservice Push PDPT - v1.1


Hal 4

3.2 Parameter Input


No
1
2
3
4
5
6
7

Nama
username
password
tahun
semester
dari
jumlah
data

Tipe
string
string
integer
integer
integer
integer
string

Keterangan
Nama user PT
Password PT
Tahun pelaporan
Semester pelaporan
Nomor awal record yang dikirim
Jumlah record yang dikirim
Data yang dikirim dalam format JSON

Tipe
integer
string
integer
integer

Keterangan
Kode error (0 jika tidak terjadi kesalahan)
Teks error
Jumlah data yang diproses
Jumlah data yang gagal diproses

3.3 Parameter Output


No
1
2
3
4

Nama
err_no
err_teks
jumlah_data
jumlah_data_gagal

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;

Dokumen Teknis Webservice Push PDPT - v1.1


Hal 5

// 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
echo
echo
echo

"<b>SOAP Request</b>";
"<pre>".htmlentities($soapclient->request)."</pre>";
"<b>SOAP Response</b>";
"<pre>".htmlentities($soapclient->response)."</pre>";

Dokumen Teknis Webservice Push PDPT - v1.1


Hal 6

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
1
2
3
4
5
6

JENJANG_PENDIDIKAN
S3
S2
S1
D4
D3
D2

Dokumen Teknis Webservice Push PDPT - v1.1


Hal 7

7
8
9
10
11

D1
SP-1
SP-2
Profesi
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());
}

Dokumen Teknis Webservice Push PDPT - v1.1


Hal 8

$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

Dokumen Teknis Webservice Push PDPT - v1.1


Hal 9

// 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>";

Dokumen Teknis Webservice Push PDPT - v1.1


Hal 10

Вам также может понравиться