## BACK-END SYSTEM DESIGN BASED ON REST API

## Hendrik Fery Herdiyatmoko
Fakultas Sains dan Teknologi, Universitas Katolik Musi Charitas Palembang email: hendrik@ukmc.ac.id

## Abstract
Back-End is a logical space with the functionality and operation of a software application or information system. Currently, SMA Xaverius 1 Palembang does not yet have a rest server-based application  whose background  can  be  accessed  by  a  multi-platform  rest  client.  Therefore,  an  application  based  on  the RESTful rest api based back-end was built. This RESTful application or REST Server provides data to be accessed  by  the  REST  Client using  data  exchange  in  JSON  format using  the  HTTP  protocol  built  using the Laravel Framework. The Laravel framework provides a mechanism for building REST Servers via the Rest Server library that supports a full RESTful server implementation. The results of this research have been successful. A Laravel 7-based REST Server application has been built which provides endpoints in the form of json and status codes which can later be accessed by multi-platform rest clients. Through the application based on the back-end rest api, the results from the endpoint get a response from the server in the form of json that supports interoperability.
Keywords : Web Service, CRUD, REST API, JSON

## 1. PENDAHULUAN
Web  service  dan  semantik  web  adalah elemen  kunci  dari  web  3.0  [1].  Web  3.0 mendukung  layanan  pencarian,  media  sosial berdasarkan  fitur  atau  layanan  tunggal  pada arsitektur  web  service,  termasuk  REST  API, khususnya  menggunakan  protokol  HTTP,  yang menggunakan  JSON  sebagai  format  pertukaran data [2], [3].
Penggunaan teknologi web sangat berkembang saat ini [4]–[10], dan perkembangannya  cenderung  terbagi  menjadi  3 konsentrasi  utama,  salah  satunya  adalah Back- End .  Bagian Back-End mengacu  pada  program dan  script  yang  bekerja  pada  server  di  belakang layar.  Jadi, Back-End bisa  diartikan  sebagai wadah dari logika fungsional inti dan pengoperasian  aplikasi  perangkat  lunak  atau sistem informasi. Sistem Back-End [11] memastikan  bahwa  data  atau  layanan  yang diminta  dan  dikirim  oleh  sistem frontend atau aplikasi disampaikan melalui metode terprogram. Back-End terdiri dari logika aplikasi inti,  database,  data  integrasi  dan  aplikasi,  API dan proses Back-End lainnya [11].
Untuk  meningkatkan  keamanan  web service, beberapa penelitian sebelumya menggunakan  Jason  Web  Token  (JWT)  sebagai autentikasi  data  [12],  [13].  JWT  dapat  juga diterapkan di framework Laravel sebagi otentikasi login [14].
Web service yang didalamnya
mengandung REST API dapat diintergrasikan di perangkat mobile untuk mendukung interoperabilitas  [15]  yang  dapat  diakses  di perangkat  mobile  android  ataupun  iOS.  Web service dapat digunakan juga untuk penggunaan teknologi  Change  Data  Capture  (CDC)  yang merangkum  sumber  data  dengan  satu  set  web service [16]
Berbeda dari penelitian-penelitian sebelumnya,  dalam  penelitian  ini,  sistem Back- End akan  dibuat  dalam  bentuk  server Back-End berbasis  REST  API  [17],  [18].  Di  dalam  sistem REST,  dapat  melakukan  empat  metode  HTTP request yaitu  GET,  POST,  PUT  dan  DELETE. Keempat  metode  HTTP  ini  melakukan  proses CRUD dari database yaitu Create, Read, Update, Delete  dengan  menggunakan  format  pertukaran data berbentuk JSON.
Laravel  adalah  framework  web  PHP open-source  gratis,  dibuat  oleh  Taylor  Otwell dan ditujukan untuk pengembangan aplikasi web mengikuti  pola  arsitektur  model-view-controller (MVC).  Beberapa  fitur  Laravel  adalah  sistem pengemasan modular dengan dedicated dependency manager . Selain framework Laravel,  ada  satu  framework  PHP  yang  umum digunakan  oleh  Developer  yaitu  Codeigniter yang memiliki pola arsitektur MVC [19], [20].
JavaScript Object Notation (JSON)  [21] adalah  standar  format  berbasis  teks  untuk mewakili  data  terstruktur  berdasarkan  sintaks objek  JavaScript.  JSON  biasanya  digunakan untuk mentransmisikan data dalam  aplikasi  web (misalnya,  mengirim  beberapa  data  dari  server ke klien, sehingga dapat ditampilkan di halaman web,  atau  sebaliknya).  Format  JSON  secara sintaksis  identik  dengan  kode  untuk  membuat objek di JavaScript.

## 2. METODE PENELITIAN
Penelitian  ini  dilakukan  di  SMA Xaverius  1  Palembang.  Adapun  spesifikasi Software yang  digunakan  dalam  menjalankan aplikasi ini adalah terdiri dari:
1. Laravel PHP Framework
2. XAMPP web server
3. Aplikasi  Postman  App  untuk  respon  dari Rest Server
Tahap  Desain  yang  dilakukan  dengan membuat  diagram  UML  ( Unified  Modeling Language )  yang  terdiri  dari  diagram  use  case dan  class  diagram  yang  dibutuhkan.  Diagram use  case dibuat  sebagai  gambaran  grafis  dari kemungkinan  interaksi  pengguna  dengan  sistem [22].  Diagram use  case menunjukkan  berbagai use case dan jenis pengguna yang dimiliki. Pada penelitian  ini  REST  Server  memiliki  satu pemakai yaitu admin. Pada Gambar 1 diperlihatkan  diagram use  case dari  penelitian ini.
REST SERVER Mengirim request dan mengubah data menjadi JSON Respon berupai JSON dan Kode Status,
otentikasi key,  limit dan login REST Client Cloud Computing Smart home Mobile phone PC/laptop
Gambar 1. Diagram Use Case Rest Server
REST  Server  yang  dibangun  dibagi menjadi  tiga class utama  yang  digunakan  yaitu creative_table_siswa,  API  dan  siswaController. Class-class tersebut memiliki hubungan
asosiatif,  yaitu  class  yang  satu  mempengaruhi class yang lain. Pada Gambar 2 memperlihatkan class diagram REST Server.
Class creative_table_siswa + up +down Dependency SiswaController AppSiswa + Index + Create + Delete +Update Realization Directed Association API +Illuminate\Http\Request; + Illuminate\Support\ Facades\Route -memberName
Gambar 2. Class Diagram

## 3. HASIL DAN PEMBAHASAN
Dalam  penelitian  ini  digunakan  empat Endpoint API  [14]  yang  merepresentasikan CRUD data siswa. Endpoint tersebut adalah:
a. GET : http://127.0.0.1:8000/api/siswa, akan mengembalikan  semua  data  siswa  dengan menerima GET request .
b. POST:
http://127.0.0.1:8000/api/siswa/{id},  akan membuat  record  siswa  baru  dan  akan menerima POST request .
c. PUT :
http://127.0.0.1:8000/api/siswa/{id},  akan mengubah  data  siswa  yang  ada  dengan mengacu pada id siswa dan akan menerima PUT request .
d. DELETE http://127.0.0.1:8000/api/siswa/{id},  akan menghapus  data  siswa  dengan  merujuk pada  id  siswa  dan  menerima  DELETE request
Dalam  membangun  REST  Server  ini, dilakukan  beberapa  tahapan  agar  rest  server dapat  memberi  respon.  Tahapan  yang  dilakukan antara lain :
a. Membuat model dan Controller Untuk membuat model dan controller dipergunakan  perintah  berikut  pada  terminal: php artisan make:model Siswa -c –m.
Perintah tersebut artinya membuat model dengan data  siswa  pada  Laravel  sekaligus  membuat controller.
b. Membuat database migration
Untuk  membuat  migration  digunakan  perintah pada pseudocode sebagai berikut:
Gambar 3. Membuat migration
Dengan  melakukan  proses migration seperti pada  gambar  3  akan  dibuat  tabel  siswa  yang memiliki  4 field yaitu  id,  nama,  alamat, create_at, update_at.
c. Konfigurasi Controller
Langkah  awal  membuat  controller  siswa controller adalah dengan memanggil model yang
class CreateSiswasTable extends Migration { /** * Run the migrations. *
* @return void */ public function up() { Schema::create('siswas', function (Blueprint $table) { $table->increments('id'); $table->string('nama'); $table->string('alamat');
$table->timestamps();
});
telah  dibuat  sebelumnya.    Pada  gambar  4 ditunjukkan potongan program untuk menggunakan model.
Gambar 4. Pseudocode model siswa
Tahap  berikutnya  dalam  controller adalah  membuat  empat  method  yang  memiliki fungsi  CRUD.  Method  pertama  adalah  index untuk  menampilkan  semua  data  siswa  dengan menerima GET request.
Gambar 5. Method index
Untuk method create , update dan delete berturut-turut sebagai berikut:
Gambar 6. Pseudocode create , update dan delete
d. Konfigurasi Route
e. Pada  file  api.php  diatur  route  untuk  semua proses  CRUD  yang  ada.  Gambar  7  adalah pseudocode dari route
Gambar 7. Pseudocode route
f. Pengujian Pada tahap pengujian dilakukan tahapan antara lain : 1. Pengujian endpoint GET http://127.0.0.1:8000/api/siswa Pengujian  http request GET  dilakukan dengan  menggunakan  aplikasi  Postman. Gambar  8  berikut  merupakan  hasil  dari endpoint
GET
http://127.0.0.1:8000/api/siswa .
Gambar 8. Respon dari endpoint GET
Hasil yang dicapai adalah respon berupa JSON  dari  semua  data  siswa,  dalam  hal  ini  dari tabel  siswa,  dan  mendapatkan  http  status  adalah 200.
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Siswa;

## 2. Pengujian
Endpoint POST :
http://127.0.0.1:8000/api/ siswa  digunakan untuk menambah data ke dalam tabel siswa. Jika konfigurasi benar maka akan mendapatkan pesan
“data berhasil ditambahkan”.
Gambar 9. Respon endpoint method POST
3. Pengujian endpoint PUT : http://127.0.0.1:8000/api/siswa/{id}
Gambar 10. Respon endpoint method PUT
Endpoint ini berfungsi untuk melakukan perintah  update field pada  tabel  siswa.  Jika fungsi  berjalan  dengan  baik,  respon  yang diperoleh  adalah  pesan  “data  berhasil diubah” dan kode status 200.
4. Pengujian
endpoint DELETE, http://127.0.0.1:8000/api/siswa/{id}
Endpoint  terakhir  ini  berfungsi  untuk menghapus  satu field dari  tabel  siswa.
Gambar  11  adalah  hasil  dari  endpoint tersebut.
Gambar 11. Respon endpoint method PUT

## 4. KESIMPULAN
Arsitektur RESTful didesain
menggunakan  arsitektur  REST  dengan  HTTP request  yaitu  GET,  POST,  PUT  dan  DELETE. Hasil  dari endpoint mendapatkan  respon  dari server  berupa  JSON.  Pada  penelitian  ini menggunakan empat http request yang merupakan  metode  dasar  REST  API.  Untuk pengujian request method GET diperoleh respon dari  server  dan  data  diberikan  dalam  format JSON data siswa  dengan status code 202. Untuk request  method POST,  PUT  dan  DELETE memberikan  hasil  dengan  status  code  202  atau accepted. Terdapat  beberapa library lain  di dalam framework Laravel yang dapat digunakan seperti dengan Fraktal dan Laravel Transport.

## 5. REFERENSI
[1] Himawan,  T.  W.  Harjanti,  R.  Supriati, and  H.  Setiyani,  “Evolusi  Penggunaan Teknologi  Web  3.0 :  Semantic  Web,” J. Inf.  Syst.  Hosp.  Technol. ,  vol.  2,  no.  02, pp. 54–60, 2020, doi: 10.37823/insight.v2i02.107.
[2] R.  T.  Fielding,  “Architectural  Styles  and the  Design  of  Network-based  Software Architectures,” pp. 130–139, 2000.
[3] D.  Serrano,  E.  Stroulia,  D.  Lau,  and  T. Ng, “Linked REST  APIs:  A Middleware for  Semantic  REST  API  Integration,” Proc.  -  2017  IEEE  24th  Int.  Conf.  Web Serv.  ICWS  2017 ,  pp.  138–145,  2017, doi: 10.1109/ICWS.2017.26.
[4] J. Banjarnahor, S. P. Tamba, and Y. Laia,
“Pemanfaatan Teknologi Berbasis
Android  Dalam  Pencarian  Cepat  Tempat Wisata  Terdekat  Pada  Kabupaten  Karo,” J.  Nas.  Inform.  dan  Teknol.  Jar. ,  vol.  5, no. 1, pp. 1–4, 2020, [Online]. Available: https://jurnal.uisu.ac.id/index.php/infotek jar/article/view/2914 [5] W.  Purba,  D.  Ujung,  T.  Wahyuni,  L.
Sihaloho, and J. Damanik, “Perancangan Sistem Informasi Pemesanan Tiket Online Pada Kmp . Ihan Batak Berbasis,”
vol. 3, no. 2, pp. 65–75, 2020.
[6] P.  Aini,  I.  Purnama,  and  D.  Irmayani, “Sistem  Informasi  Penjualan  Handphone Dan  Accessories  Pada  Toko  Nisa  Ponsel Berbasis Web,” J. Comput. Sci. Inf. Syst. , vol.  1,  no.  1,  pp.  19–23,  2020,  [Online]. Available: http://jurnal.ulb.ac.id/index.php/JCoInS/a rticle/view/1844 [7] D.  Y.  Siringoringo,  V.  Sihombing,  and M. Masrizal, “Sistem Informasi Penjualan Dan Persediaan Produk
Peralatan  Pertanian  Berbasis  Web,” J.
Tek.  Inf.  dan  Komput. ,  vol.  4,  no.  1,  pp. 54–59, 2021, doi: 10.37600/tekinkom.v4i1.232. [8] V. Sihombing, N. Siahaan, U. Labuhanbatu, F. Hukum, and U.
Labuhanbatu,  “RANCANG  BANGUN SISTEM  UJIAN  ONLINE  BERBASIS WEB  DI  SMK,” J.  TEKINKOM ,  vol.  2, no. 2, pp. 151–155, 2019, doi: 10.37600/tekinkom.v2i2.112. [9] J. Simatupang and S. Sianturi, “Perancangan Sistem Informasi Pemesanan Tiket Bus Pada PO. Handoyo
Berbasis  Online,” J.  Intra-Tech ,  vol.  3, no. 2, pp. 11–25, 2019.
[10] V. M. M. Siregar, “Perancangan Website Sebagai  Media  Promosi  Dan  Penjualan Produk,” TAM  (Technology  Accept. Model. , vol. 9, no. 1, pp. 15–21, 2018.
[11] K.  Boonchuay,  Y.  Intasorn,  and  K. Rattanaopas,
“Design and implementation a REST API for association  rule  mining,” ECTI-CON 2017  -  2017  14th  Int.  Conf.  Electr.  Eng.
Comput.  Telecommun.  Inf.  Technol. ,  pp.
668–671, 2017, doi: 10.1109/ECTICon.2017.8096326. [12] M. M. Hidayat, R. Dimas Adityo, and A.
Siswanto,  “Design  of  Restaurant  Billing System  (E  Bill  Resto)  by  Applying Synchronization  of  Data  Billing  in Branch  Companies  to  Main  Companies Based  on  Rest  API,” Proceeding  - ICoSTA  2020  2020  Int.  Conf.  Smart Technol.  Appl.  Empower.  Ind.  IoT  by Implement.  Green  Technol.  Sustain.
Dev. , 2020, doi: 10.1109/ICoSTA48221.2020.157061503 9.
[13] M. Hosono, H. Washizaki, Y. Fukazawa, and  K.  Honda,  “An  Empirical  Study  on the  Reliability  of  the  Web  API Document,” Proc.  -  Asia-Pacific  Softw. Eng.  Conf.  APSEC ,  vol.  2018-Decem,
pp. 715–716, 2018, doi: 10.1109/APSEC.2018.00103.
[14] X.  Chen,  Z.  Ji,  Y.  Fan,  and  Y.  Zhan, “Restful  API  Architecture  Based  on Laravel Framework,” J. Phys. Conf. Ser. , vol. 910, no. 1, 2017, doi: 10.1088/1742- 6596/910/1/012016.
[15] F. Andry, L. Wan, and D. Nicholson, “A mobile  application  accessing  patients’ health  records  through  a  rest  API:  How REST-style  architecture  can  help  speed up the development of mobile health care applications,” Heal.  2011  -  Proc.  Int. Conf.  Heal.  Informatics ,  pp.  27–32,
2011, doi: 10.5220/0003129600270032.
[16] M.  J.  Eccles,  D.  J.  Evans,  and  A.  J. Beaumont,  “True  real-time  change  data capture  with  web  service  database encapsulation,” Proc.  -  2010  6th  World Congr.  Serv.  Serv.  2010 ,  pp.  128–131, 2010, doi: 10.1109/SERVICES.2010.59.
[17] T.  Katayama,  M.  Nakao,  and  T.  Takagi, “TogoWS:  Integrated  SOAP  and  REST APIs  for  interoperable  bioinformatics web  services,” Nucleic  Acids  Res. ,  vol. 38,  no.  SUPPL.  2,  pp.  706–711,  2010, doi: 10.1093/nar/gkq386.
[18] T.  Haselmann,  G.  Thies,  and  G.  Vossen, “Looking  into  a  REST-based  API  for database-as-a-service  systems,” Proc.  - 12th  IEEE  Int.  Conf.  Commer.  Enterp. Comput.  CEC  2010 ,  pp.  17–24,  2010, doi: 10.1109/CEC.2010.11.
[19] A.  A.  Kayode  and  A.  O.  Alabi,  “Design and  Implementation  of  a  Simplified
CodeIgniter  Framework  for  Commercial Vehicles  Ticket  Reservation  System,” Asian J. Res. Comput. Sci. , vol. 7, no. 2,
pp.
1–12, 2021, doi: 10.9734/ajrcos/2021/v7i230174. [20] D.  E.  K.  Mahardika  and  M.  U.  Siregar, “Design and Development of Web Based
Employee  Payroll  Information  System
Using Codeigniter Framework and Extreme  Programming  Method,” IJID
(International J. Informatics Dev. , vol. 7,
no. 2,
p. 1, 2019, doi:
10.14421/ijid.2018.07201.
[21] K. Togias and A. Kameas, “An ontology- based  representation  of  the  twitter  REST API,” Proc. -  Int. Conf. Tools with Artif. Intell.  ICTAI ,  vol.  1,  no.  April  2015,  pp. 998–1003, 2012,
doi:
10.1109/ICTAI.2012.85.
[22] B.  Baharuddin,  H.  Wakkang,  and  B. Irianto,  “Implementasi  Web  Service Dengan Metode Rest Api Untuk Integrasi
Data  Covid  19  Di  Sulawesi  Selatan,” J. Sintaks  Log. ,  vol.  2,  no.  1,  pp.  236–241, 2022.