Mengesahkan,
KPS Teknik Informatika,
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.
iii
DAFTAR ISI
HALAMAN PENGESAHAN.................................................................................ii
KATA PENGANTAR.............................................................................................ii
DAFTAR ISI...........................................................................................................iv
DAFTAR GAMBAR..............................................................................................vi
DAFTAR TABEL..................................................................................................vii
BAB I.......................................................................................................................1
BAB II.....................................................................................................................4
2.2 Node.JS......................................................................................................4
2.2.1 Express...................................................................................................5
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
BAB IV..................................................................................................................35
4.1 Kesimpulan..............................................................................................35
4.2 Saran........................................................................................................35
v
DAFTAR GAMBAR
vi
DAFTAR TABEL
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.
1
2
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:
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.
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).
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
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.
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.
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.
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.
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
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.
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.
sukses, <>200 =
gagal
status string Response Code 00 = Sukses, 01 = Gagal
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
0094 user_email field API Sign URL User_email yang dikirimkan kosong
is required API Generate Token
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
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
0106 Token has reached API Sign User terlalu sering melakukan
the limit Document permintaan sign document
4.1 Kesimpulan
Dari Pelaksanaan Praktek Kerja Lapangan yang telah dilaksanakan di PT.
Askrindo, maka dapat diambil kesimpulan sebagai berikut:
4.2 Saran
Dibutuhkan kritik atau saran agar dalam mengembangkan API lebih baik
kedepannya, yaitu:
35
DAFTAR PUSTAKA
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
37
38
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
c. Struktur Organisasi
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
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”
}
"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
}
{
"message": "signature field is required",
"errorNumber": "0093",
"status": "01",
"url": null
}
{
"message": "qrcode_position field is required",
"errorNumber": "0096",
"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
{
"message": "The selected qrcode position is invalid",
"errorNumber": "0101",
"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
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”
}
{
"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"
}
}
{
"message": "document_id field is required",
"errorNumber": "0091",
"status": "01",
"data": null
}
{
"message": "Dokumen tidak di temukan",
"errorNumber": "0099",
"status": "01"
}