Analisis Performa dan Kompleksitas Application Programming Interface pada Arsitektur Monolithic dan Microservice (Studi Kasus: GoCommerce)
Loading...
Date
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Fakultas Ilmu Komputer
Abstract
Penelitian ini dilatarbelakangi oleh pertanyaan-pertanyaan mendasar terkait
pemilihan arsitektur perangkat lunak yang tepat untuk memenuhi kebutuhan
proyek. Beberapa permasalahan utama yang diangkat meliputi skalabilitas,
performa, dan kompleksitas pengembangan, yang kemudian menjadi fokus utama
dalam penelitian ini. Dengan membahas kedua arsitektur, penelitian ini bertujuan
memberikan wawasan yang lebih mendalam untuk membantu pengambilan
keputusan dalam pemilihan arsitektur perangkat lunak.
Studi ini berfokus pada implementasi dan pengujian sebuah sistem berbasis
arsitektur microservice dan monolithic yang dibangun menggunakan bahasa
pemrograman Go. Tahap implementasi dimulai dari pembuatan database, di mana
tiga database yang terpisah dibuat untuk menangani data pengguna (user), pesanan
(order), dan laporan (report). Selanjutnya, penggunaan Protocol Buffer (Protobuf)
pada ketiga modul (user, order, dan report) diimplementasikan sebagai bagian
pembuatan sistem dari arsitektur microservice, yang masing-masing dibuat dengan
abstraksi layanan dan metode yang sesuai.
Sisi server (server-side) dari API arsitektur microservice terdiri dari tiga
modul, yaitu modul pengguna (user), pesanan (order), dan laporan (report). Setiap
modul memiliki serangkaian metode yang dikembangkan dengan pendekatan
berorientasi objek. Adapun sisi klien (client-side) dari API diintegrasikan melalui
sebuah API Gateway, yang menghubungkan layanan pengguna (user), pesanan
(order), dan laporan (report) menggunakan framework gRPC untuk saling
terhubung.
Tahap pengujian dilakukan dengan dua indikator utama, yaitu performa dan
kompleksitas. Pengujian performa dengan Apache JMeter digunakan untuk
mengukur throughput sistem pada berbagai spesifikasi perangkat. Hasilnya
menunjukkan bahwa arsitektur microservice memiliki throughput yang bervariasi
tergantung pada spesifikasi perangkat, namun pada umumnya, arsitektur monolithic
cenderung memiliki performa lebih baik karena pengaruh dari persentase error yang terjadi. Pengujian juga mencakup analisis persentase kesalahan (error) dan
keberhasilan (success) dari kedua arsitektur, yang menghasilkan perbedaan yang
signifikan dalam beberapa kasus, dimana arsitektur monolithic cenderung lebih
baik pada spesifikasi perangkat rendah, sedangkan arsitektur microservice
cenderung lebih baik pada spesifikasi perangkat yang lebih tinggi. Pengaruh
persentase error yang semakin tinggi menyebabkan nilai throughput juga semakin
tinggi, karena sistem tidak memproses penuh seluruh request yang dikirimkan oleh
user.
Pengujian kompleksitas dilakukan dengan menggunakan beberapa metrik
CK (Chidamber and Kemerer) seperti WMC, RFC, LCOM, CBO, DIT, dan NOC.
Hasilnya menunjukkan bahwa arsitektur microservice memiliki tingkat
kompleksitas yang lebih tinggi dibandingkan dengan arsitektur monolithic,
terutama disebabkan oleh adanya API Gateway yang bertindak sebagai antarmuka
dengan banyak metode dan fungsionalitas yang terkait dengan tiga modul utama.
Dengan mempertimbangkan hasil pengujian dan analisis, dapat disimpulkan
bahwa pemilihan antara arsitektur microservice dan monolithic harus
mempertimbangkan sejumlah faktor, termasuk kebutuhan performa, kompleksitas
pengembangan, dan skala sistem yang diinginkan. Meskipun arsitektur
microservice menawarkan fleksibilitas dan skalabilitas, kompleksitasnya
memerlukan manajemen yang cermat untuk memastikan keberhasilan
implementasi. Sebaliknya, arsitektur monolithic dapat lebih mudah dikelola dan
diimplementasikan, namun kurang cocok untuk aplikasi dengan skala besar dan
kompleksitas yang tinggi.
Description
Reupload file repository 12 februari 2026 maya/mita
