Halo Sobat Karedok.Net, jadi ceritanya sekarang saya sedang menangani klien salah satu Universitas Negeri. Nah, kali ini saya dan temen-temen diminta membuat sebuah Academic Integrated System. Yaitu menghubungkan berbagai aplikasi yang berkaitan dengan proses akademik menjadi satu aplikasi. Salah satu yang harus kami lakukan yaitu bagaimana meng-integrasikan sistem yg kami bangun ke aplikasi milik Pangkalan Data Pendidikan Tinggi (PDDIKTI). Aplikasi yang dimaksud tentu saja Feeder PDDIKTI.
Aplikasi feeder PDDIKTI ini merupakan aplikasi yang disediakan oleh Dirjen Dikti untuk Perguruan Tinggi Swasta maupun negeri dalam hal pengelolaan data perguruan tinggi yang kemudian dilaporkan ke Pangkalan Data Pendidikan Tinggi (PDDIKTI).
Nah, kali ini saya mau share bagaimana cara integrasi aplikasi Laravel dengan Feeder Pangkalan Data Pendidikan Tinggi (PDDIKTI).
Persiapan
Pada artikel ini, kita akan menggunakan beberapa aplikasi berikut:
- Laravel 6
- Aplikasi Feeder PDDIKTI
Install guzzlehttp/guzzle
Paket Guzzle is a PHP HTTP client that makes it easy to send HTTP requests and trivial to integrate with web services.
Kita akan menggunakan Guzzle sebagai perantara antara aplikasi yg kita gunakan dengan aplikasi PD DIKTI. Jika belum ada, silakan install paket ini.
composer require guzzlehttp/guzzle
dalam tulisan ini saya menggunakan versi “^6.3”
Buat Services
Siapkan file services yang nantinya bisa digunakan di controller yang memerlukan pemanggilan data ke aplikasi PD DIKTI.
cd app
mkdir Services
cd Services
nano FeederDiktiApiService.php
Copy paste code di bawah ini :
<?php
namespace App\Services;
use GuzzleHttp\Client;
class FeederDiktiApiService {
// url Feeder Dikti
private $url;
// Username Feeder Dikti
private $username;
// Password
private $password;
//data
private $act;
function __construct($act) {
$this->url = env('feeder_url');
$this->username = env('feeder_username');
$this->password = env('feeder_password');
$this->act = $act;
}
public function runWS()
{
$client = new Client();
$params = [
"act" => "GetToken",
"username" => $this->username,
"password" => $this->password
];
$req = $client->post( $this->url, [
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'body' => json_encode($params)
]);
$response = $req->getBody();
$result = json_decode($response,true);
if($result['error_code'] == 0) {
$token = $result['data']['token'];
$params = [
"token" => $token,
"act" => $this->act,
];
$req = $client->post( $this->url, [
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'body' => json_encode($params)
]);
$response = $req->getBody();
$result = json_decode($response,true);
}
return $result;
}
}
Simpan Informasi Feeder PDDIKTI
Buka file .env dan tambahkan informasi berikut:
feeder_url=http://localhost:8082/ws/live2.php
feeder_username=UsernameFeeder
feeder_password=PasswordFeeder
Silakan sesuaikan isian yang dicetak tebal dengan informasi dimana aplikasi feeder PDDIKTI terpasang.
Memanggil Service
Sekarang kita akan buat cara pemanggilan datanya. Untuk keperluan artikel ini kita hanya akan gunakan di route, yang nantinya tentu bisa diadaptasikan jika ingin digunakan di controller.
Buka file web.php di folder routes
nano routes/web.php
buat line baru dengan isi seperti berikut:
Route::get('feeder-dikti/{act}',�function�($act)�{
����$data�=�new�\App\Services\FeederDiktiApiService($act);
����$data->runWS();
����$response�=�$data->runWS();
����dd( $response�);
});
Jalankan di browser
selajutnya coba jalankan melalui browser misalnya dengan url http://localhost/feeder-dikti/GetProfilPT untuk mendapatkan profil perguruan tinggi. Jika berhasil akan muncul sbb:

Informasi yg terima sudah dalam bentuk array dan isi informasinya ada dalam key data. Karena itu kita bisa panggil dengan $response[‘data’]; kemudian baru di proses di controller atau script lain yang memanggil.
Tentu saja ini hanya contoh sederhana bagaimana menghubungkan aplikasi laravel kita dengan feeder PDDIKTI. Ada banyak cara dan metode lain yang bisa dicoba dan diperkaya. Misalnya informasi login disimpan & dipanggil melalui database dengan password yg sudah di encrypt, atau hasil pemanggilannya disimpan ke dalam database, dan lainnya.
Semoga membantu, selamat mencoba…
Bahan bacaan:
1. https://github.com/guzzle/guzzle
2. https://laravel.com/docs/6.x/responses
3. https://laravel.com/docs/7.x/http-client
Kenapa Setelah saya panggil ke Datatables muncul “Error URI must be a string or UriInterface” mohon bantuannya. Terima Kasih
Laravel dan feeder dikti yang digunakan versi berapa?
Laravel 8, PHP 8, Feeder 4.1 – Makasih atas tanggapannya
Laravel 9, feeder 4
Btw, errornya muncul saat melakukan panggilan ke feeder atau setelah nya?
Dalam artian proses ambil data dari feeder sudah selesai dan error muncul saat data ditampilkan di datatables?
Error Saat mau ditampilkan ke Datatables. bisa dibuatkan tutorialnya Pak. Makasih atas perhatiannya 😀
Berarti error datatables pak, bukan service pemanggilan data dari feeder. Cerita yg berbeda dengan artikel ini. 😀