Anda di halaman 1dari 5

Bagian 1

1. Jelaskan makna dari ilustrasi Gambar 1 secara detail !

Gambar 1 Perbedaan arsitektur monolith dan microservices


Monolith : Membuat aplikasi yang dimana semua komponen tidak terpisah satu sama
lainnya.
Microservices : Membagi aplikasi menjadi layanan yang lebih kecil dan saling berhubungan
satu sama lain dan dihubungkan dengan adapter.

Pada gambar diatas, menjelaskan bahwa dengan menggunakan arsitektur monolitik, menjalankan
satu proses dapat melibatkan banyak modul. sementara pada arsitektur microservices, satu proses
hanya melibatkan satu modul. sehingga pada saat terjadinya gangguan, gangguan tersebut dapat
diidentifikasi dengan lebih cepat dan lebih mudah menanggulangi masalah. Juga masalah pada
satu modul tidak mempengaruhi proses lainnya. Selain itu, penggunaan arsitektur microservice
dapat mempermudah proses penambahan fitur pada aplikasi karena hanya memerlukan
penambahan modul dan adapter.
Arsitektur monolitik lebih cocok untuk aplikasi sederhana dan ringan. Pola arsitektur
Microservices adalah pilihan yang lebih baik untuk aplikasi yang kompleks dan berkembang. [1]

2. Berikan sebuah contoh kasus yang pengembangan sistem membutuhkan arsitektur


microservices ! Jelaskan alasannya meliputi kekurangan dan kelebihannya !
Contoh kasus : Pengembangan E-Commerce
Alasan :
• Dapat di deploy dengan lebih cepat dengan hanya fitur - fitur basic
• Mempermudah Upgrade di kemudian hari
• Biaya pengembangan awal yang lebih murah
Kekurangan :
• Keamanan data yang lebih rentan dikarenakan lebih banyaknya komunikasi data yang
terjadi antar service.
Kelebihan :
• Lebih mudah di maintenance.
• Setiap service berdiri sendiri, sehingga tim developer dapat mengembangkan setiap
service tanpa mengganggu service yang lain.
• Dapat digabungkan dengan framework atau bahasa pemrograman yang berbeda.
3. Ilustrasikan contoh kasus yang telah disebutkan pada butir pertanyaan no. 2 serta
contoh mekanisme REST API pada salah satu service ! (Contoh bisa dilihat pada slide
no. 3 dan 12 pada bahan tayang Pengantar Microservices).
Contoh REST API
• Pengguna Ingin menampilkan produk dengan berat kurang dari 1 kg. maka REST API
nya sebagai berikut :
• GET request to api/daftarbarang/berat/less1kg. untuk meminta data barang dengan
berat kurang dari 1kg
• POST request to user/display/barang. untuk menampilkan hasil proses GET yang
dikirimkan oleh server.
4. Jelaskan teknologi, frameworks dan tools apa saja yang diperlukan diperlukan dalam
pengembangan aplikasi/ sistem menggunakan pendekatan microservices !
Perangkat yang digunakan
• Laravel (framework)
• Notepad++ (tools)
• XAMPP (tools)
• Web Browser Firefox (tools)
• PHP 7 (teknologi)
• AES 128 (teknologi)
Microservice telah di-support oleh hampir seluruh bahasa pemrograman.
Microservice lebih menekankan pada konsep daripada framework atau tool yang spesifik. Go
Micro adalah sebuah framework yang mendukung pengembangan microservice. Go micro
telah mengabstraksi detail-detail kebutuhan untuk membangun sistem terdistribusi.

Berikut adalah fitur utamanya:

• Service discovery
• Load balancing
• Message encoding
• Request/Response
• Async messaging
• Plugable interface

Karena layanan microservice dibagi menjadi baris kode yang terpisah salah satu hal yang
perlu diperhatikan adalah komunikasi antar service. Dalam pola monolith, komunikasi bukan
masalah karena code dipanggil langsung dari tempat kode berasal. Microservice tidak
memiliki kemampuan tersebut karena masing-masing service di tempat terpisah.

Kita dapat saja menggunakan REST seperti JSON atau XML melalui http. Namun masalah
dengan pendekatan ini adalah service A harus menyediakan datanya ke JSON/XML.
Mengirim string ke service B yang kemudian harus men-decode pesan ini dari JSON. Ini
dapat berpotensi sebagai masalah di kemudian hari.

Protokol buffer, biasanya disebut Protobuf, adalah protokol yang dikembangkan oleh Google
untuk memungkinkan serialisasi dan deserialisasi data terstruktur. Google
mengembangkannya dengan tujuan untuk menyediakan cara yang lebih baik, dibandingkan
dengan XML, untuk membuat sistem berkomunikasi. Jadi mereka fokus untuk membuatnya
lebih sederhana, lebih kecil, lebih cepat, dan lebih mudah dikelola daripada XML.

Bagian 2

1. Jelaskan pengertian Quality Assurance dan Software Metrics !


Quality Assurance : Proses yang lebih dikenal dengan testing ini bertujuan untuk menjamin
kualitas dari suatu aplikasi yang telah dikembangkan, apakah aplikasi tersebut sudah sesuai
dan memenuhi requirement yang telah ditentukan sebelum proses pengembangan dimulai.
Untuk proses QA ini sendiri dapat dilakukan secara manual oleh tester atau secara otomatis
menggunakan script pengujian.
Software Metrics : Suatu pengukuran yang dilakukan terhadap software secara kuantitatif.
Proses pengukuran ini dilakukan dengan tujuan untuk mengukur performa software yang
dikembangkan, merencanakan dan mengestimasi pekerjaan pengembangan software, dan lain
- lain.
2. Jelaskan proyeksi Software Metrics Level 1 dan Level 2 untuk studi kasus yang
diangkat pada Bagian 1 ! Deskripsi dibuat dalam bentuk tabel !
Level 1
Functionality Aplikasi dapat digunakan sesuai dengan functional
requirement.
Reliability Aplikasi dapat diakses oleh 10000 user secara bersamaan dan
memproses 5000 request yang berbeda setiap detiknya
Usability Aplikasi dapat digunakan untuk berbagai bahasa, kemudahan
dalam transaksi
Efficiency Dalam kondisi full load dan koneksi menuju server yang stabil,
aplikasi dapat memproses request yang diberikan oleh
pengguna dalam waktu 0,01 detik
Maintainability Aplikasi dapat mengisolasi kerusakan hanya mempengaruhi
bagian yang terkena kerusakan, tanpa harus membuat seluruh
aplikasi tidak bisa digunakan. Perbaikan dapat dilakukan
secara parsial tanpa mengganggu bagian yang tidak rusak.
Portability Aplikasi dapat digunakan di berbagai device dan sistem
operasi.

Level 2

Functionality
Suitability Aplikasi dapat menyediakan layanan sesuai dengan yang
dibutuhkan
Accuracy Aplikasi dapat memberikan informasi yang tepat
Interoperability
Security Aplikasi dapat menjamin keamanan data pengguna

3. Hitunglah nilai Customization Index dan Reliability untuk proyeksi proyek dengan
menggunakan studi kasus pada Bagian 1 ! Jelaskan makna dari kedua nilai tersebut !
(Data dan nilai yang dibutuhkan bisa diasumsikan saja).
Customization Index
Jumlah halaman statis (Nsp) :5
Jumlah halaman dinamis (Ndp) : 5
Menggunakan rumus berikut

Maka
Dapat dihasilkan Customization Index sebagai berikut
5/(5+5) = 5/10
Maka Customization Indexnya : 0.5
Reliability

Referensi

[1] Anton Kharenko, “Monolithic vs. Microservices Architecture” Microservices.com, 10 Oktober 2015
[Online], Tersedia : https://articles.microservices.com/monolithic-vs-microservices-architecture-
5c4848858f59 [Diakses: 15 Januari 2021].

[2] mrirfanto, “Software Architecture(Monolithic and Microservice)” Medium.com, 19 April 2018


[Online], Tersedia : https://medium.com/kugen/software-architecture-monolithic-and-microservice-
a9ed178ed954 [Diakses: 15 Januari 2021].

[3] Makers Institute, “Mengenal Lebih Jauh tentang Software Quality Assurance” Medium.com, 30
Januari 2018 [Online], Tersedia : https://medium.com/@makersinstitute/mengenal-lebih-jauh-tentang-
software-quality-assurance-844361cd50db [Diakses: 15 Januari 2021].

[4] Alexandra Altvater, “What Are Software Metrics and How Can You Track Them?” Stackify.com, 16
September 2017 [Online], Tersedia : https://stackify.com/track-software-metrics/ [Diakses: 15 Januari
2021].

Anda mungkin juga menyukai