Anda di halaman 1dari 53

LAPORAN

PRAKTIK KERJA LAPANGAN

MONITORING JARINGAN INTERNET MENGGUNAKAN


ZABBIX DI DITJEN PENDIDIKAN TINGGI RISET DAN
TEKNOLOGI

FARDAN RASYID ARBI


RISTANTO
2003332086

JURUSAN TEKNIK ELEKTRO


PROGRAM STUDI TELEKOMUNIKASI
POLITEKNIK NEGERI JAKARTA
2022
HALAMAN PENGESAHAN
LAPORAN PRAKTIK KERJA LAPANGAN

a. Judul : Monitoring Jaringan Internet Menggunakan


Zabbix Di Ditjen Pendidikan Tinggi Riset dan
Teknologi
b. Penyusun
1) Nama : Fardan Rasyid Arbi Ristanto
2) NIM 1807412001
c. Program Studi : Telekomunikasi
d. Jurusan : Teknik Elektro
e. Waktu Pelaksanaan : 08 Agustus 2022 – 08 Desember 2022
f. Tempat Pelaksanaan : Sekretariat Jenderal Pendidikan Tinggi
(Jl. Jenderal Sudirman Pintu I, Gedung D Depdiknas,
Senayan Jakarta 10270 )

Jakarta, 26 November 2021


Pembimbing PNJ Pembimbing Perusahaan

Ayres Pradiptyas, S.S. T.,M.M. Primalita Widara


NIP. 59142016040119870912

Mengesahkan,
KPS Teknik Informatika,

Mauldy Laya, S.Kom.,M.Kom


NIP. 197802112009121003

ii
KATA PENGANTAR

Puji Syukur saya panjatkan kepada Tuhan Yang Maha Esa, karena atas berkat dan
rahmat-Nya, penulis dapat menyelesaikan laporan Praktik Kerja Lapangan ini.
Penulisan laporan Praktik Kerja Lapangan ini dilakukan dalam rangka memenuhi
salah satu syarat untuk mencapai gelar Diploma Empat Politeknik. Penulis
menyadari bahwa, tanpa bantuan dan bimbingan dari berbagai pihak, dari masa
perkuliahan sampai pada penyusunan laporan Praktik Kerja Lapangan, sangatlah
sulit bagi penulis untuk menyelesaikan Laporan Praktik Kerja Lapangan ini. Oleh
karena itu, penulis mengucapkan terima kasih kepada :
a. Ir.Sri Danaryani, MT selaku dosen pembimbing yang telah menyediakan waktu,
tenaga, dan pikiran untuk mengarahkan penulis dalam penyusunan laporan
Praktik Kerja Lapangan ini.
b. Pihak Kemendikbud Ristek Dikti yang telah banyak membantu dalam usaha
memperoleh data yang penulis perlukan.
c. Orang tua dan keluarga penulis yang telah memberikan bantuan dukungan
moral dan material.
d. Sahabat yang telah banyak membantu penulis dalam menyelesaikan laporan
Praktik Kerja Lapangan ini.
Akhir kata, penulis berharap Tuhan Yang Maha Esa berkenan membalas segala
kebaikan semua pihak yang telah membantu. Semoga laporan Praktik Kerja
Lapangan ini membawa manfaat bagi pengembangan ilmu.

Jakarta, 26 November 2021

Ilham Fikri Dwi Asmarayani

iii
DAFTAR ISI

HALAMAN PENGESAHAN.................................................................................ii

KATA PENGANTAR.............................................................................................ii

DAFTAR ISI...........................................................................................................iv

DAFTAR GAMBAR..............................................................................................vi

DAFTAR TABEL..................................................................................................vii

BAB I.......................................................................................................................1

1.1 Latar Belakang..........................................................................................1

1.2 Ruang Lingkup Kegiatan..........................................................................1

1.3 Waktu dan Tempat Pelaksanaan...............................................................2

1.4 Tujuan dan Kegunaan................................................................................2

BAB II.....................................................................................................................4

2.1 Application Programming Interface (API)................................................4

2.2 Node.JS......................................................................................................4

2.2.1 Express...................................................................................................5

2.2.2 File System (fs)......................................................................................5

2.2.3 JSON Web Token (JWT).......................................................................6

2.2.4 Knex.......................................................................................................6

2.2.5 Multer....................................................................................................7

2.3 JSON.........................................................................................................7

2.4 PostgreSQL...............................................................................................8

2.5 Postman.....................................................................................................9

2.6 Filezilla......................................................................................................9
iv
2.7 PuTTY.....................................................................................................10

BAB III..................................................................................................................12
3.1 Unit Kerja PKL.......................................................................................12

3.2 Uraikan Praktik Kerja Lapangan.............................................................13

3.3 Pembahasan Hasil PKL...........................................................................14

3.3.1 Alur Proses Penggunaan API...............................................................14

3.3.2 Katalog Layanan API...........................................................................15

3.3.3 API Generate Token............................................................................16

3.3.4 API Sign URL......................................................................................17

3.3.5 API Callback Document Sign Complete..............................................19

3.3.6 API Download Document...................................................................20

3.3.7 Error Number......................................................................................21

3.4 Identifikasi Kendala Yang Dihadapi.......................................................23

3.4.1 Kendala Pelaksanaan Tugas................................................................23

3.4.2 Cara Mengatasi Kendala......................................................................24

BAB IV..................................................................................................................35

4.1 Kesimpulan..............................................................................................35

4.2 Saran........................................................................................................35

v
DAFTAR GAMBAR

Gambar 2.1 Code Express........................................................................................5


Gambar 2.2 Code fs.................................................................................................6
Gambar 2.3 Code JWT.............................................................................................6
Gambar 2.4 Code knex.............................................................................................7
Gambar 2.5 Code Multer.........................................................................................7
Gambar 2.6 PostgreSQL..........................................................................................8
Gambar 2.7 Postman................................................................................................9
Gambar 2.8 Filezilla...............................................................................................10
Gambar 2.9 PuTTY................................................................................................11
Gambar 3.1 Struktur Organisasi PT. Askrindo......................................................12
Gambar 3.2 Alur Proses Penggunaan API.............................................................14

vi
DAFTAR TABEL

Tabel 2.1 Perintah dasar npm...................................................................................5


Tabel 3.1 Katalog Layanan API.............................................................................15
Tabel 3.2 Header Parameter API Generate Token...............................................16
Tabel 3.3 Input Parameter API Generate Token...................................................16
Tabel 3.4 Output Parameter API Generate Token................................................16
Tabel 3.6 Header Parameter API Sign URL...........................................................17
Tabel 3.7 Input Parameter API Sign URL.............................................................17
Tabel 3.8 Output Parameter API Sign URL..........................................................19
Tabel 3.9 Header Parameter API Callback Document Sign Complete.................20
Tabel 3.10 Input Paremeter API Callback Document Sign Complete...................20
Tabel 3.11 Output Parameter API Callback Document Sign Complete................20
Tabel 3.12 Header Parameter API Download Document.....................................21
Tabel 3.13 Input Parameter (Params) API Download Document........................21
Tabel 3.14 Output Parameter API Download Document......................................21
Tabel 3.15 Error Number.......................................................................................21
BAB I
PENDAHULUAN

1.1 Latar Belakang


Kebutuhan server sudah menjadi kebutuhan yang sangat diperlukan di dalam
perusahaan. Hampir seluruh perusahaan mempunyai server yang digunakan untuk
menyimpan data yang diperlukan. Tetapi server yang merupakan mesin dan
terhubung ke jaringan tidak akan selalu berjalan dengan semestinya, cepat atau
lambat akan terjadi gangguan, baik terhadap hardware ataupun software. Dalam
proses bisnis di suatu perusahaan harus diminimalisir gangguan server tersebut.
Untuk mencegah gangguan yang terjadi biasanya seorang administrator akan
menyiapkan server backup ataupun selalu memonitor kinerja dari server
tersebut[4].

Dalam hal memonitor server tersebut tentunya seorang administrator tidak


bekerja selama 24 jam di depan komputernya untuk selalu mengetahui apabila
terjadi gangguan pada server tersebut. Oleh karenanya diperlukan sebuah fasilitas
pendukung dalam hal memonitor server tersebut.

Pada penelitian ini penulis menggunakan tools monitoring yakni zabbix dalam
hal memonitor server - server yang ada. Zabbix sendiri merupakan open source
yang dikembangkan untuk memonitor server sehingga membantu administrator
dalam hal memonitor kerja server tersebut.

Dalam hal penanganannya zabbix sendiri sudah di lengkapi event handler


dengan mengirimkan notifikasi berupa email ketika server yang dimonitoring
terjadi masalah. Sehingga administrator dapat langsung bertindak sebagaimana
yang dibutuhkan ketika server yang dimonitor mengalami gangguan[5]. Dari
penjelasan di atas, penulis termotivasi untuk membuat sebuah system monitoring
server yang dapat digunakan untuk memonitor serverserver yang ada di PT Akses
Cipta Solusi.
1.2 Ruang Lingkup Kegiatan
Ruang lingkup kegiatan yang dilakukan pada saat Praktik Kerja Lapangan di PT.
Askrindo lebih menitikberatkan pada pengembangan API Digital Sign dengan

1
2

menggunakan Node.JS sebagai bahasa pemrograman dan Postgresql sebagai


database disamping itu, ada juga tanggung jawab lain untuk mengerjakan
beberapa tugas, yaitu melakukan testing pada API Teken Aja menggunakan
aplikasi Postman, melakukan deploy API Digital Sign yang sudah dibuat ke dalam
server Askrindo menggunakan aplikasi Filezilla dan PuTTY, dan membuat
dokumentasi mengenai API Digital Sign menggunakan Microsoft Word.

1.3 Waktu dan Tempat Pelaksanaan


Adapun waktu, tempat, alamat, dan rentang pelaksanaan pada saat Praktik Kerja
Lapangan adalah sebagai berikut :

Tempat Pelaksanaan : PT. Asuransi Kredit Indonesia atau PT. Askrindo


Divisi Pengembangan TI (PTI)
Alamat : Jl. Angkasa Blok B-9, Kav.B Kota Baru Bandar,
Kemayoran, Jakarta Pusat – 10610
Waktu Pelaksanaan : 01 September 2021 – 30 November 2021
Rentang Waktu : 3 (Tiga) Bulan

1.4 Tujuan dan Kegunaan


Dengan melihat latar belakang di atas, maka tujuan dari penelitian ini adalah
mengembangkan API Digital Sign menggunakan Node.JS di PT. Askrindo.

Kegunaan Praktek Kerja Lapangan sangat banyak sekali mulai dari pihak
Politeknik Negeri Jakarta, sampai tempat PKL berlangsung. Berikut adalah
kegunaan kegiatan Praktek Kerja Lapangan yang telah dilaksanakan:

1. Bagi pihak Politeknik Negeri Jakarta


a. Sebagai alat ukur mahasiswa dalam memahami matari-materi
kuliah dan menerapkannya.
b. Sebagai penilaian sejauh mana mahasiswa mampu terjun langsung
didalam dunia kerja dan masyarakaat.
2. Bagi Mahasiswa
a. Untuk menambah wawasan dan pengalaman dalam dunia kerja.
3

b. Memperluas relasi/jaringan di dunia usaha yang nantinya menjadi


tempat untuk informasi mengenai pekerjaan.
c. Sebagai sarana menambah ilmu di luar perkuliahan mengenai
dunia kerja.
BAB II
TINJAUAN PUSTAKA

2.1 Application Programming Interface (API)


Application programming interface (API) merupakan suatu dokumentasi yang
terdiri dari interface, fungsi, kelas, struktur dan sebagainya untuk membangun
sebuah perangkat lunak. Dengan adanya API ini, maka memudahkan programmer
untuk “membongkar” suatu software, kemudian dapat dikembangkan atau
diintegrasikan dengan perangkat lunak yang lain. API dapat dikatakan sebagai
penghubung suatu aplikasi dengan aplikasi lainnya yang memungkinkan
programmer menggunakan sistem function. Proses ini dikelola melalui sistem
operasi keunggulan dari API ini adalah memungkinkan suatu aplikasi dengan
aplikasi lainnya dapat saling berhubungan dan berinteraksi (Adi Pranata et al.,
2018).

2.2 Node.JS
Nodejs dikembangan dari engine javaScript yang dibuat oleh Google untuk
Browser Chrome / Chronium (V8) ditambah dengan libUV serta beberapa pustaka
internal lainnya. Dengan menggunakan Nodejs semua pengembangan akan
dilakukan dengan javaScript, baik pada sisi klien maupun server. Pengembangan
aplikasi dengan menggunakan Node.js dapat dilakukan secaa moduler yaitu
dengan memisahkan berbagai komponen kedalam pustaka (library). Pustaka
tersebut dapat dikelola dengan npm yang terdapat di Node.js. Pada dasarnya,
Node.JS sebuah runtime environment dan script library. Sebuah runtime
environment adalah sebuah software yang berfungsi untuk mengeksekusi,
menjalankan dan mengimplementasikan funsi-fungsi serta cara kerja inti dari
suatu bahasa pemograman. Sedangkan script library adalah kumpulan, kompilasi
atau bank data berisi skrip/kode-kode pemograman (Jennings et al., 2015).

Dalam node disediakan package manager yang bernama NPM untuk membantu
mengintall modul yang diinginkan user. Untuk menginstal modul dapat dilakukan

4
5

dengan mengetikkan perintah npm install. Perintah dasar dari npm dapat dilihat
pada tabel 2.1.

Tabel 2.1 Perintah dasar NPM

Perintah Keterangan
npm install <package manager> Menginstal package yang didalamnya memuat
folder yang bernama nodemodule sebagai
modul pelengkap membangun suatu web.
npm uninstall –g <package manager> Menghapus package secara keseluruhan
npm update –g <package manager> Memperbaharui package secara keseluruhan.
npm start Menjalankan file utama dari Node.JS yang
bernama app.js sebagai file index dari project
yang sedang dibangun.

2.2.1 Express
Express merupakan framework server side yang dibangun dalam lingkup node js.
Framework ini digunakan untuk mengelola request dari klien ke server termasuk
untuk pengelolaan routing dan operasi HTTP (PUT, GET, POST, dll). Express
dapat dikatakan sebagai suatu middleware yang bertanggungjawab dalam
mengelola siklus request-response dan menjamin tidak ada suatu request yang
tertinggal (dibiarkan menggantung) (Ghifari Munawar).

Gambar 2.1 Code Express

(Sumber Dokumen Pribadi)

2.2.2 File System (fs)


Nodejs memiliki Modul File System yang digunakan untuk membuat file,
menghapus file, membaca file dan menulis file seperti bahasa pemrograman
PHP. Modul File System (fs) yang digunakan adalah dari default Node.JS itu
sendiri.
6

Gambar 2.2 Code fs

(Sumber Dokumen Pribadi)

2.2.3 JSON Web Token (JWT)


JWT adalah standar format untuk mengamankan informasi pribadi menjadi
sebuah klaim yang akan di encode ke dalam bentuk JSON dan menjadi payload
dari JSON Web Signature (JWS). JSON akan dapat dilindungi dengan tanda
tangan digital seperti Message authentication code (MAC) atau dienkripsi (Jones,
et al. 2014).

Gambar 2.3 Code JWT

(Sumber Dokumen Pribadi)

2.2.4 Knex
Knex.js adalah sebuah query builder di javascript yang biasanya digunakan pada
nodeJs untuk men-generate database, select, insert dsb. proses generate database
ini sangat berguna untuk memanage sebuah project jadi kita tidak perlu membuat
database dan tablenya satu persatu atau menginport ulang databasenya. KnexJs ini
7

support beberapa database seperti oracle, postgres, mysql, Sqlite3, mariaDB,


amazon redshift, mssql.

Gambar 2.4 Code knex

(Sumber Dokumen Pribadi)

2.2.5 Multer
Multer adalah middlewareNode.js untuk menangani multipart/form-datayang
biasa digunakan untuk mengunggah berkas. Dengan menggunakan Multer, API
dapat menerima berkas dengan syarat tertentu dan kemudian diproses lebih lanjut.

Gambar 2.5 Code Multer

(Sumber Dokumen Pribadi)

2.3 JSON
JSON (JavaScript Object Notation) adalah format pertukaran data yang ringan,
mudah dibaca dan ditulis oleh manusia, serta mudah diterjemahkan dan dibuat
8

(generate) oleh komputer. Format ini dibuat berdasarkan bagian dari Bahasa
pemprograman JavaScript, Standar ECMA-262 Edisi ke-3 Desember 1999. JSON
merupakan format teks yang tidak bergantung pada bahasa pemrograman apapun
karena menggunakan gaya bahasa yang umum digunakan oleh programmer
keluarga bahasa perograman C (Introducing JSON n.d.).

2.4 PostgreSQL
PostgreSQL (dibaca Post-Gres-Q-L) atau postgres adalah Object Relational
Database Management System yang bersifat open source. PostgreSQL
menekankan ekstensibilitas, kreativitas, serta kompatibilitas. Bersaing dengan
vendor database relasionalyang besar seperti Oracle, MySQL, SQL Server, dan
lain-lain. Hal ini digunakan oleh berbagai sektor termasuk lembaga pemerintah
dan publik dan sektor swasta.

Gambar 2.6 PostgreSQL

(Sumber Dokumen Pribadi)

PostgreSQL adalah cross-platform DBMS, dan berjalan pada sistem


operasi.PostgreSQL merupakanDBMS yang open-source yang mendukungbahasa
SQL secara luas dan menawarkan beberapa fitur-fitur modern seperti :

a. Complex queries
9

b. Foreign key
c. Triggres
d. Views
e. Transaction integrity
f. Multiversion Concurrency Control

2.5 Postman
Postman adalah toolchain penting bagi pengembang API untuk berbagi, uji coba,
dokumentasi dan memantau API. Lebih dari 3 juta insinyur dan pengembang di
seluruh dunia menggunakan postman untuk membangun perangkat lunak yang
terhubung melalui API-cepat, mudah dan akurat.

Ide untuk postman muncul ketika para pendiri bekerja bersama-sama, dan frustrasi
dengan alat yang ada untuk pengujian API. Mereka merasa harus ada baha yang
lebih baik bagi para pengembang untuk berkomunikasi tentang API. Hal ini
menyebabkan penciptaan postman membantu pengembang membangun, menguji,
dan mendokumentasikan lebih cepat.

Gambar 2.7 Postman

(Sumber Dokumen Pribadi)

2.6 Filezilla
FileZilla adalah FTP client dan server yang cepat dan reliabel dengan Pada
percobaan banyak fitur yang berguna serta interface yang intuitif. Dengan Filezilla
10

sebagai jembatan untuk dapat mendownload dari server maupun mengupload dari
client ke server.

Gambar 2.8 Filezilla

(Sumber Dokumen Pribadi)

2.7 PuTTY
Putty adalah sebuah aplikasi software yang berfungsi sebagai Remote Control
yang digunakan untuk protokol jaringan SSH, Telnet dan Rlogin. Protokol ini
dapat digunakan untuk menjalankan sesi remote pada sebuah computer melalui
sebuah jaringan baik itu LAN, maaupun internet. Program ini banyak digunakan
oleh komputer tingkat menengah ke atas, yang biasanya digunakan untuk
menyambungkan, mensimulasi, atau mencoba berbagai hal yang terkait dengan
jaringan . Program ini juga dapat digunakan sebagai tunel di suatu jaringan.
11

Gambar 2.9 PuTTY

(Sumber Dokumen Pribadi)


BAB III
HASIL PELAKSANAAN PKL

3.1 Unit Kerja PKL


Dengan memperhatikan perkembangan bisnis Perusahaan ke depan, dimana
Perusahaan perlu memiliki Struktur Organisasi yang ideal dan diharapkan setiap
lini organisasi mampu menjalankan fungsi-fungsinya sesuai dengan tujuan
Perusahaan, maka Direksi PT. Askrindo melakukan penyesuaian Struktur
Organisasi sebagai berikut:

Gambar 3.1 Struktur Organisasi PT. Askrindo

(Sumber Dokumen Pribadi)

Pada masa magang Penulis ditempatkan di Divisi Pengembangan TI (PTI) yang


mengelola dan di bagian yang mengelola Portal Surety Bond Online. Surety Bond
Online adalah Portal agen yang digunakan untuk pengajuan Penjaminan Surety
Bond secara online untuk product Low Risk, dengan workflow approval ke
cabang askrindo dan Integrasi ke Core System askrindo untuk penerbitan polis dan
Teken Aja untuk digital sign. Adapun ruang lingkup dari scope pekerjaan yang
telah dilaksanakan adalah sebagai berikut:

12
13

1. Melakukan testing pada API Tanda Tangan Elektronik Digital atau Teken Aja
untuk memastikan bahwa API sudah berjalan dengan baiak dan tidak ada
error.
2. Membuat API Digital Sign yang dapat di konsumsi oleh aplikasi Askrindo
Online System (AOS) dan dapat mengakses API Teken Aja.
3. Melakukan Deploy API Digital Sign yang sudah dibuat ke Server Askrindo.
4. Membuat Dokumentasi API yang berisi penjelasan dari spesifikasi API
Digital Sign.

3.2 Uraikan Praktik Kerja Lapangan


Praktik Kerja Lapangan dilaksanakan pada tanggal 01 September 2021 sampai 30
November 2021 di PT. Asuransi Kredit Indonesia atau PT. Askrindo. Di bulan
September sistem kerja dilakukan secara hybrid, yaitu seminggu WFO dan
seminggu WFH lalu jam kerja selama 7 jam sehari pada hari senin sampai jumat,
lalu sabtu dan minggu libur. Di bulan November sistem kerja masih menerapkan
sistem hybrid namun jam kerja bertambah menjadi 9 jam sehari. Di bulan oktober
sudah diterapkan sistem kerja WFO dan jam kerja tetap 9 jam sehari. Kegiatan-
kegiatan yang dilakukan selama PKL diuraikan sebagai berikut.

Di minggu pertama bulan September pekerjaan dimulai dengan pengenalan


project, scope pekerjaan, dan tim developer di divisi PTI Askrindo, lalu
pembagian tugas atau scope pekerjaan, dan mendapatkan scope pekerjaan di
project Surety Bond Online.

Pada minggu ketiga tugas pertama yang di kerjakan adalah melakukan testing API
Tanda Tangan elektronik digital atau Teken aja untuk memastikan bahwa API
sudah berjalan dengan baik dan tidak ada error.

Pada minggu keempat sampai kesembilan yaitu di bulan Oktober, membuat API
Digital Sign dengan menggunakan runtime Node.JS untuk menjalankan kode dan
PostgreSQL sebagai Database atau penyimpanan data. API ini nantinya akan di
konsumsi oleh aplikasi Askrindo Online System (AOS) dan API ini dapat
mengakses API Teken Aja.
14

Pada minggu kesepuluh yaitu di bulan November, melakukan Deploy API Digital
Sign yang sudah dibuat ke Server Askrindo dengan menggunakan Filezilla dan
PuTTY.

Pada minggu kesebelas, membuat dokumentasi tentang API Digital Sign


menggunakan Microsoft Word.

3.3 Pembahasan Hasil PKL


Berdasarkan kegiatan yang ditulis pada sub bab 3.2 terdapat kegiatan pembuatan
dan deploy API Digital Sign yang dilakukan pada minggu keempat sampai
minggu kesepuluh, pada kegiatan tersebut bertujuan untuk meningkatkan
keamanan dokumen.

3.3.1 Alur Proses Penggunaan API


Berikut adalah alur proses untuk penggunaan (mekanisme invoke/call) API
Digital Sign:

Gambar 3.2 Alur Proses Penggunaan API


15

(Sumber Dokumen Pribadi)


Penjelasan Tambahan
:
1. Indikator Response Success & Faild dari setiap API Digital Sign adalah
melalui field/parameter status, sebagai berikut :
00 = Success
01 = Failed
Untuk 01 = Failed, akan di lengkapi dengan Error Number dan Message
sebagai penjelasan dari Error yang di maksud, untuk Detail merujuk ke table
error number dibawah.
2. Sebelum melakukan penggunaan/invoke API Sign Document, API Callback
Document, dan API Download, user harus melakukan invoke API Generate
Token untuk mendapatkan Token (JWT).
3. User melakukan penggunaan/invoke API Sign Document, API Callback
Document, dan API Download dengan mengirimkan Token (JWT) pada http
header. Token ini akan digunakan sebagai authentication dan session oleh
Backend Sistem Digital Sign.
4. Jika response dari Call API adalah true/positive, maka token yang dikirimkan
adalah valid/active.

3.3.2 Katalog Layanan API


Berikut adalah Katalog Layanan API Digital Sign:

Tabel 3.1 Katalog Layanan API

Layanan Deskripsi Status Remark


API
API API untuk permintaan
Generate generate token (JWT)
Token

API Sign API untuk mendapatkan


Document link url penandatangan
untuk pengguna
API Callback API ini akan mengirim
Document callback API setelah
Sign dokumen selesai
Complete
16

ditandatangani oleh semua


penandatangan dan siap
untuk diunduh
API API untuk mengunduh
Download dokumen yang sudah
Document selesai ditandatangani

3.3.3 API Generate Token


API Generate Token digunakan untuk proses generate token. Token ini akan
digunakan setiap kali akan melakukan pemanggilan API berikutnya. Berikut
adalah Spesifikasi API Generate Token
a. Base URL : https://xx.2x0.x0.x:xx00
b. Path : /xx/apxxwt
c. Request Method : POST (REST API)
d. Input Format : application/json
e. Output Format : application/json
f. Token Format : JWT (Json Web Token)

Tabel 3.2 Header Parameter API Generate Token

Key Attribute Value Description


Content-type Application/json

Tabel 3.3 Input Parameter API Generate Token

Field Name Type M/O Description Remark


user_email string M Alamat email user

Tabel 3.4 Output Parameter API Generate Token

Field Name Type Description Remark


message string Deskripsi pesan Berhasil : “Success”
Gagal : “Invalid
email address”
errorNumber string Pengkodean untuk Ie. “0098”
identifikasierror. 200 =
17

sukses, <>200 =
gagal
status string Response Code 00 = Sukses, 01 = Gagal

token string Json Web Token yang


digenerate oleh Askrindo

3.3.4 API Sign URL


API ini digunakan untuk mendapatkan link url penandatangan untuk pengguna
dan berikut adalah Spesifikasi API Sign URL :
a. Base URL Sandbox : https://xx.2x0.x0.x:xx00
b. Path : /xxs/xxxn
c. Request Method : POST (REST API)
d. Input Format : application/json
e. Output Format : application/json

Tabel 3.5 Header Parameter API Sign URL

Key Attribute Value Description


Content-type Application/json
apikey JWT Json Web Token berasal dari output API Generate
Token.

Tabel 3.6 Input Parameter API Sign URL

Field Name Type M/O Description


document_id String M ID Document yang didapatkan dari respon sukses
pada upload endpoint
user_email String M Sesuai dengan email yang terdapat pada request
upload endpoint
isResign String O Jika true adalah resign, jika false atau kosong
adalah notresign
document String M File untuk di sign harus dalam format PDF. Limit
size 100MB
signature String M Dalam format JSON , berisi email penandatangan
dan detail tandatangan elektronik.
Contoh:
18

Jika ada 1 penandatangan :


[{"email":"anton@mailinator.net","detail":[{"p":1,
"x":200,"y":200,"w":200,"h":200},{"p":2,"x":200,"
y":200,"w":200,"h":200}]}]
Jika ada 2 penandatangan :
[{"email":"anton@mailinator.net","detail":[{"p":1,
"x":200,"y":200,"w":200,"h":200},{"p":2,"x":200,"
y":200,"w":200,"h":200}]},{"email":"ayu@mailin
a tor.net","detail":
[{"p":1,"x":500,"y":500,"w":200," h":200}]}]
Jika tidak dibutuhkan gambar tandatangan pada isi
dokumen : [{"email":"anton@mailinator.net"}]
p: halaman x: titik posisi awal kiri atas horizontal
pada image (mm) y: titik posisi awal kiri atas
vertikal pada image (mm) w: ukuran lebar image
(mm) y: ukuran tinggi image (mm)

is_in_order String M Harus diisi dengan value “1”. Tambahkan key ini
untuk mengaktifkan fitur “Tandatangan berurut”
(Optional). Hapus key ini jika tidak dibutuhkan
(tandatangan secara paralel)
expiration_date String O Untuk mengaktifkan fitur tanggal kadaluarsa dari
dokumen yang akan ditandatangani (Opsional).
Kirim value null jika tidak dibutuhkan tanggal
kadaluarsa pada dokumen.
show_qrcode String M Untuk menampilkan QR Code pada dokumen yang
ditandatangani, value boolean “1” untuk
menampilkan atau “0” untuk tidak menampilkan
qrcode_position String M Untuk menentukan posisi QR Code pada dokumen,
a. top-left : posisi QR Code pada pojok
kiri atas dokumen
b. top-right : posisi QR Code pada pojok
kiri atas dokumen
c. bottom-left : posisi QR Code pada pojok
kiri bawah dokumen
d. bottom-right : posisi QR Code pada
pojok kanan bawah dokumen
qrcode_page String M Untuk menentukan QR Code muncul di halaman
19

depan atau diseluruh halaman.


a. single : QR Code hanya muncul di
halaman pertama
b. multiple : QR Code muncul di seluruh
halaman

Tabel 3.7 Output Parameter API Sign URL

Field Name Type Description Remark


message string Deskripsi pesan Berhasil :
“Success” Gagal :
“Invalid email
address”
errorNumber string Pengkodean untuk Ie. “0098”
identifikasi error. 200 =
sukses, <>200 =
gagal
status string Response Code 00 = Sukses, 01 =
Gagal
url String Url untuk Sign Dokumen/
Url untuk Download
Dokumen

3.3.5 API Callback Document Sign Complete


API ini digunakan setelah dokumen selesai ditandatangani oleh semua
penandatangan dan siap untuk diunduh. Berikut adalah Spesifikasi API Callback
Document Sign Complete:
a. Base URL : https://xx.2x0.x0.x:xx00
b. Path : /xxx/callxxxx
c. Request Method : POST (REST API)
d. Input Format : application/json
e. Output Format : application/json
20

Tabel 3.8 Header Parameter API Callback Document Sign Complete

Key Attribute Value Description


Content-type Application/json
apikey JWT Json Web Token berasal dari output API Generate
Token.

Tabel 3.9 Input Paremeter API Callback Document Sign Complete

Field Name Type M/O Description


document_id String M ID Document yang didapatkan
dari respon sukses pada upload
endpoint
download_url String M Url Download yang di dapat
dari API Download Teken aja

Tabel 3.10 Output Parameter API Callback Document Sign Complete

Field Name Type Description Remark


message string Deskripsi pesan Berhasil :
“Success”
Gagal :
“Invalid
email
address”
errorNumber string Pengkodean untuk identifikasi Ie. “0098”
error. 200 = sukses, <>200 =
gagal
status string Response Code 00 =
Sukses, 01
= Gagal
data {} Json Object
document_id String ID Document yang berhasil di sign
download_url String Url untuk Download Dokumen

3.3.6 API Download Document


API ini digunakan untuk mengunduh dokumen yang sudah selesai ditandatangani
dan berikut adalah Spesifikasi API Download Dokumen :
21

a. Base URL : https://xx.2x0.x0.x:xx00


b. Path : /xxx/xxxx
c. Request Method : GET (REST API)
d. Input Format : application/json
e. Output Format : application/json

Tabel 3.11 Header Parameter API Download Document

Key Attribute Value Description


Content-type Application/pdf

Tabel 3.12 Input Parameter (Params) API Download Document

Field Name Type M/O Description


document_id string M ID Dokumen yang sudah selesai di Sign

Tabel 3.13 Output Parameter API Download Document

Field Name Type Description Remark


document file File dalam format pdf
message string Deskripsi pesan Berhasil : “Success” Gagal :
“Dokumen tidak ditemukan”
errorNumber string Pengkodean untuk identifikasi Ie. “0098”
error. 200 = sukses, <>200 =
gagal
status string Response Code 00 = Sukses, 01 = Gagal

3.3.7 Error Number


Berikut adalah list Error Code / Error Number :

Tabel 3.14 Error Number

Error Error Description Eligible to API Remark


Number (Message)
0090 Invalid API Sign URL Apikey yang dikirimkan invalid
authentication API Callback Document
credentials Sign Complete
22

0091 document_id field API Sign URL Document_id yang dikirimkan


is required API Callback Document kosong
Sign Complete
0092 download_url field API Download_url yang dikirimkan
is required Callback kosong
Document
Sign
Complete
0093 signature field is API Sign Signature yang dikirimkan kosong
required URL

0094 user_email field API Sign URL User_email yang dikirimkan kosong
is required API Generate Token

0095 show_qrcode field API Sign URL Show_qrcode yang dikirimkan


is required kosong

0096 qrcode_position API Sign URL Qrcode_position yang dikirimkan


field is required kosong

0097 qrcode_page API Sign URL Qrcode_page yang dikirimkan


field is required kosong

0098 File type not API Sign URL File yang dikirimkan bukan .PDF
allowed

0099 User is not API Sign URL Email penanda tangan yang
verified dikirimkan belum terverifikasi

0100 The selected API Sign URL Show_qrcode yang dikirimkan tidak
show qrcode is valid
invalid

0101 The selected API Sign URL Qrcode_position yang dikirimkan


qrcode position tidak valid
is invalid
23

0102 The selected API Sign URL Qrcode_page yang dikirimkan tidak
qrcode page is valid
invalid

0103 User is not API Sign URL Email user bukan penanda tangan
signer of the dokumen
document

0104 Invalid email API Generate Token Alamat email yang dikirimkan
address tidak valid

0105 Document is not API ID Dokumen yang dikirim tidak


found Download ditemukan
Dokumen

0106 Token has reached API Sign User terlalu sering melakukan
the limit Document permintaan sign document

0107 Upload document is Api Sign Dokumen yang dikirimkan kosong


required Document

3.4 Identifikasi Kendala Yang Dihadapi


Dalam pelaksanaan kegiatan Praktik Kerja Lapangan, ada banyak manfaat yang di
dapatkan, seperti mendapat ilmu, dan pengetahuan serta pembelajaran baru selama
di PT. Askrindo. Selain itu, dalam menjalankan kegiatan tersebut pasti mengalami
beberapa kendala yang dihadapi. Namun, kendala-kendala yang dihadapi
menjadikan pengalaman dan tantangan yang dapat terselesaikan agar mencapai
suatu tujuan.

3.4.1 Kendala Pelaksanaan Tugas


Selama melakukan kegiatan Praktik Kerja Lapangan terdapat beberapa kendala
yang menghambat kegiatan tersebut, berikut ini merupakan kendala ataupun
kesulitan yang dihadapi :
24

a. Keterbatasan ilmu dan pengetahuan dalam bahasa pemrograman atau


runtime Node.JS yang belum pernah di pelajari, seperti untuk membuat
API.
b. Kurangnya pengetahuan mengenai konsep JWT atau JSON Web Token,
karena belum pernah di pelajari seperti untuk membuat authentication.
c. Kurangnya pengetahuan tentang aplikasi Filezilla seperti untuk
mentransfer atau memindahkan data dari penyimpanan local ke server atau
web hosting, karena belum pernah di pelajari.
d. Kurangnya pengetahuan mengenai aplikasi PuTTY, karena belum pernah
di pelajari seperti untuk mengakses server.

Sedikit pengetahuan tersebut terkadang menyebabkan pelaksanaan pada


pembuatan API Digital Sign dan beberapa langkah-langkah lainnya menjadi
sedikit bermasalah, misalnya menjadi lebih lama jangka waktu pengerjaaannya.
Dan juga jika terdapat kesalahan pada langkah-langkah pengerjaan tugas tersebut,
penulis harus mencari jalan keluar untuk memecahkan masalah tersebut atau
bertanya kepada pembimbing industri dan rekan kerja yang lain dalam
melaksanakan kegiatan Praktik Kerja Lapangan.

3.4.2 Cara Mengatasi Kendala


Kendala-kendala yang telah disebutkan pada bagian sebelumnya merupakan
kesulitan yang dihadapi selama melakukan Praktik Kerja Lapangan, untuk itu
kendala tersebut harus diatasi dan dihadapi. Cara untuk mengatasi kendala -
kendala yang di hadapi selama melakukan kegiatan adalah sebagai berikut:

a. Mencari sumber-sumber referensi di internet dan belajar melalui tutorial -


tutorial di youtube.
b. Membuat langkah-langkah sebelum melakukan setiap pekerjaan, sehingga
semua pekerjaan dapat teratasi sehingga untuk terjadinya kesalahan sedikit,
meskipun dengan pekerjaan yang cukup banyak dan harus mencari celah
untuk belajar disela-sela bekerja.
c. Bertanya kepada pembimbing industri mengenai materi tersebut, seperti
bagaimana cara kerjanya, konsep hingga langkah-langkah sebelum
memulai proses pengerjaan. Selain itu dapat juga dengan mencari
25

informasi di internet yang berkaitan dengan materi-materi tersebut agar


menjadi lebih paham
BAB IV
PENUTUP

4.1 Kesimpulan
Dari Pelaksanaan Praktek Kerja Lapangan yang telah dilaksanakan di PT.
Askrindo, maka dapat diambil kesimpulan sebagai berikut:

a. Kegiatan Praktek Kerja Lapangan adalah salah satu program untuk


menerapkan ilmu yang diperoleh di bangku kuliah, dan sangat membantu
penyusun untuk mengaplikasikan ilmu yang didapat di bangku kuliah.
b. Proses Praktek Kerja Lapangan selama 3 bulan di PT. Askrindo
merupakan kegiatan yang sangat membantu penyusun untuk mengetahui
dunia kerja yang sesungguhnya.

4.2 Saran
Dibutuhkan kritik atau saran agar dalam mengembangkan API lebih baik
kedepannya, yaitu:

1. Saran untuk Praktik mengembangkan API


a. Dibutuhkan pengetahuan terkait runtime Node.JS atau Javascript untuk
mengembangkan API.
b. Dibutuhkan pengetahuan terkait database PostgreSQL untuk menyimpan
data didalam database PosgreSQL.
c. Dibutuhkan pengalaman di dalam aplikasi Postman, PuTTY, Filezilla agar
lebih mudah dalam melakukan pengembangan API.
2. Saran untuk Politeknik Negeri Jakarta adalah diharapkan dapat memantau
PKL agar pekerjaan yang dilakukan sesuai dengan program studi yang
ditempuh sehingga mahasiswa dapat mengimplementasikan ilmu yang di
dapat serta menjalin hubungan yang baik dengan perusahaan.

35
DAFTAR PUSTAKA

Dhingra, Swati. November 7, 2016.


https://searchapparchitecture.techtarget.com/tip/REST-vs-SOAP-
Choosing-the-best-web-service (accessed November 26, 2021).

Introducing JSON. n.d. https://www.json.org/json-en.html (accessed Desember 4,


2021).
Jones, M, Microsoft, J Bradley, Ping Identity, N Sakimura, and NRI. JSON Web
Token (JWT). July 4, 2014. https://datatracker.ietf.org/doc/html/draft-ietf-
oauth-json-web-token-25 (accessed December 4, 2021).

Rahmalia, Nadiyah. Tanda Tangan Digital, Cara Kekinian Antirepot untuk


Setujui Dokumen. February 4, 2021. https://glints.com/id/lowongan/tanda-
tangan-digital/#.YbF5U71BzIU (accessed December 9, 2021).

vida.id. Manfaat Tanda Tangan Elektronik Bagi UMKM. January 2020.


https://www.vida.id/post/manfaat-ukm-bila-menggunakan-tanda-tangan-
elektronik (accessed December 9, 2021).

Adi Pranata, B., Hijriani, A., & Junaidi, A. (2018). Perancangan Application
Programming Interface (Api) Berbasis Web Menggunakan Gaya Arsitektur
Representational State Transfer (Rest) Untuk Pengembangan Sistem
Informasi Administrasi Pasien Klinik Perawatan Kulit. Jurnal Komputasi,
6(1), 33–42. https://doi.org/10.23960/komputasi.v6i1.1554

Jennings, C. P., Aldinger, S. G., Kangu, F. N., Jennings, C. P., Purba, J. M., &
Alotaibi, M. N. (2015). Pengertian Script Library. 3(7), 59–78.

36
LAMPIRAN

L-1 Surat Keterangan PKL

L-2 Tabel Tugas Harian

37
38

L-3 Gambaran Umum Perusahaan


a. Deskripsi Perusahaan

PT. Asuransi Kredit Indonesia atau PT. Askrindo merupakan salah satu Badan
Usaha Milik Negara (BUMN) yang bergerak dalam asuransi/penjaminan, tidak
dapat dipisahkan dari pembangunan ekonomi Bangsa dan Negara Republik
Indonesia.

b. Sejarah Perusahaan

Berdiri tanggal 6 April 1971 berdasarkan Peraturan Pemerintah Republik


Indonesia Nomor 1/1971 tanggal 11 Januari 1971, untuk mengemban misi dalam
pemberdayaan Usaha Mikro, Kecil dan Menengah (UMKM) guna menunjang
pertumbuhan perekonomian Indonesia. Peran PT. Askrindo dalam pemberdayaan
UMKM adalah sebagai lembaga penjamin atas kredit yang disalurkan oleh
perbankan kepada UMKM.

Pada tanggal 31 Maret 2020 berdasarkan Keputusan Mentri BUMN, PT Askrindo


bergabung dengan Holding BUMN asuransi dan penjaminan, Indonesia Financial
Group (IFG).

c. Struktur Organisasi

Dengan memperhatikan perkembangan bisnis Perusahaan ke depan, dimana


Perusahaan perlu memiliki Struktur Organisasi yang ideal dan diharapkan setiap
lini organisasi mampu menjalankan fungsi-fungsinya sesuai dengan tujuan
Perusahaan, maka Direksi PT. Askrindo melakukan penyesuaian Struktur
Organisasi sebagai berikut:
39

L-4 Lampiran Kegiatan PKL

a. Aktivitas di PT. Askrindo


40
b. Contoh Input & Output JSON API Generate Token

INPUT PARAMETER
{
"user_email":"ilhamfikrih@gmail.com"

}
OUTPUT PARAMETER (Positive Response)
{
"message": "Success",
"errorNumber": "200",
"status": "00",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2VtYWlsIjoiaWxoYW1maWtyaWhAZ21haWwuY29tIiwiaWF0IjoxNjM3Mjg4MzcyfQ.LWuen4qyAUi5Q4h
}
OUTPUT PARAMETER (Negative Response Jika Alamat Email Tidak Valid)
{
"message": "Invalid email address",
"errorNumber": "0104",
"status": "01",
"token": null
}
OUTPUT PARAMETER (Negative Response Jika Alamat Email Kosong)

37
38

c. Contoh Input & Output JSON API Sign URL

Header
Content-Type:application/json
apikey:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2VtYWlsIjoiaWxoYW1maWtyaWhAZ21haWwuY29tIiwiaWF0IjoxNjM1MTU4MjI4fQ.lc3-
706JlhLv7BVGALqOwgCTlJRWP3XTpBAut33w1gM

INPUT PARAMETER
39

{
“document_id” : “94b9635c-9729-4052-b5c0-9e137a7463”,
“user_email”: “ilhamfikrih@gmail.com”,
“isResign” : “”,
“document” : “API-Documentation-DTB_1.7_230821.pdf“,
“signature” : “[{“email”:”ilhamfikrih@gmail.com"}]”,
“is_in_order” : “1”,
“expiration_date” : “”,
“show_qrcode” : “1”,
“qrcode_position” : “bottom-right”,
“qrcode_page” : “multiple”
}

OUTPUT PARAMETER (Positive Response jika ID Dokumen Belum Ada)


{

"message": "Success",
"errorNumber": "200",
"status": "00",
"url": "https://ttd.sandbox-111094.com/ac8dtZyp0EvNY4"

}
OUTPUT PARAMETER (Positive Response Jika ID Dokumen Sudah Ada)
40

"message": "Success",
"errorNumber": "200",
"status": "00",
"url": “http://10.220.20.3:9000/aos/download?document_id=94e32a1d-7366-464e-a8f0-18b5ff45acf8”

}
OUTPUT PARAMETER (Negative Response Jika Apikey Tidak Valid)
{
"message": "Invalid authentication credentials",
"errorNumber": "0090",
"status": "01",
"url": null
}

OUTPUT PARAMETER (Negative Response Jika Signature Kosong)


41

{
"message": "signature field is required",
"errorNumber": "0093",
"status": "01",
"url": null
}

OUTPUT PARAMETER (Negative Response Jika Document ID Kosong)


{
"message": "document_id field is required",
"errorNumber": "0091",
"status": "01",
"url": null
}

OUTPUT PARAMETER (Negative Response Jika User Email Kosong)


{
"message": "user_email field is required",
"errorNumber": "0094",
"status": "01",
"url": null
}
42

OUTPUT PARAMETER (Negative Response Jika Email Tidak Valid)


{
"message": "Invalid email address",
"errorNumber": "0104",
"status": "01",
"url": null
}

OUTPUT PARAMETER (Negative Response Jika Show QRcode Kosong)


{
"message": "show_qrcode field is required",
"errorNumber": "0095",
"status": "01",
"url": null
}

OUTPUT PARAMETER (Negative Response Jika QRCode Position Kosong)


43

{
"message": "qrcode_position field is required",
"errorNumber": "0096",
"status": "01",
"url": null
}

OUTPUT PARAMETER (Negative Response Jika QRCode Page Kosong)


{
"message": "qrcode_page field is required",
"errorNumber": "0097",
"status": "01",
"url": null
}

OUTPUT PARAMETER (Negative Response Jika File Yang Dikirimkan Bukan Format PDF)
{
"message": "File type not allowed",
"errorNumber": "0098",
"status": "01",
"url": null
}
44

OUTPUT PARAMETER (Negative Response Jika Penanda Tangan Tidak Terverifikasi)


{
"message": "User is not verified",
"errorNumber": "0099",
"status": "01",
"url": null
}

OUTPUT PARAMETER (Negative Response Jika Show QRCode Tidak Valid)


{
"message": "The selected show qrcode is invalid",
"errorNumber": "0100",
"status": "01",
"url": null
}

OUTPUT PARAMETER (Negative Response Jika QRCode Position Tidak Valid)


45

{
"message": "The selected qrcode position is invalid",
"errorNumber": "0101",
"status": "01",
"url": null
}

OUTPUT PARAMETER (Negative Response Jika QRCode Page Tidak Valid)


{
"message": "The selected qrcode page is invalid",
"errorNumber": "0102",
"status": "01",
"url": null
}

OUTPUT PARAMETER (Negative Response Jika User Bukan Penanda Tangan Dokumen)
{
"message": "User is not signer of the document",
"errorNumber": "0103",
"status": "01",
"url": null
}
46

OUTPUT PARAMETER (Negative Response Jika Dokumen Kosong)


{
"message": "upload document is required",
"errorNumber": "0107",
"status": "01",
"url": null
}

OUTPUT PARAMETER (Negative Response Jika Token Sudah Limit)


{
"message": "Token has reached the limit",
"errorNumber": "0106",
"status": "01",
"url": null
}
47

d. Contoh Input & Output API Callback Document Sign Complete

Header
Content-Type : application/json apikey:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2VtYWlsIjoiaWxoYW1maWtyaWhAZ21haWwuY29tIiwiaWF0IjoxNjM1ODI5ODU0fQ.yWaLJPIesQKhRoK_ON9HRLX007_8Q

INPUT PARAMETER
{
“document_id” : “94e32a1d-7366-464e-a8f0-18b5ff45acf8”,
“download url” : ”http://10.220.20.3:9000/aos/download?document_id=94e32a1d-7366-464e-a8f0-18b5ff45acf8”
}

OUTPUT PARAMETER (Positive Response)


48

{
"message": "Success",
"errorNumber": "200",
"status": "00",
"data": {
"document_id": "94e32a1d-7366-464e-a8f0-18b5ff45acf8",
"download_url": "localhost:3000/download?document_id=94e32a1d-7366-464e-a8f0-18b5ff45acf8"
}
}

OUTPUT PARAMETER (Negative Response jika Apikey tidak valid)


{
"message": "Invalid authentication credentials",
"errorNumber": "0090",
"status": "01",
"data": null
}

OUTPUT PARAMETER (Negative Response Jika Document ID Kosong)


49

{
"message": "document_id field is required",
"errorNumber": "0091",
"status": "01",
"data": null
}

OUTPUT PARAMETER (Negative Response Jika Download URL Kosong)


{
"message": "download_url field is required",
"errorNumber": "0092",
"status": "01",
"data": null
}
50

e. Contoh Input & Output JSON API Download Document

INPUT PARAMETER (Params)


{
"document_id":" 94e32a1d-7366-464e-a8f0-18b5ff45acf8",
}
OUTPUT PARAMETER (Positive Response)

OUTPUT PARAMETER (Negative Response)


51

{
"message": "Dokumen tidak di temukan",
"errorNumber": "0099",
"status": "01"
}

Anda mungkin juga menyukai