Analisis Performa dan Kompleksitas Application Programming Interface pada Arsitektur Monolithic dan Microservice (Studi Kasus: GoCommerce) - Liandri Eko Prayugo (Fakultas Ilmu Komputer, 2024)
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.
Reupload file repository 12 februari 2026 maya/mita
Keywords: Arsitektur monolitik; arsitektur mikrolayanan