Arsitektur aplikasi mobile merujuk pada desain struktur aplikasi mobile yang terdiri dari beberapa komponen dan teknologi yang berbeda yang berfungsi untuk mencapai tujuan bisnis yang diinginkan. Ini meliputi aspek seperti antarmuka pengguna, alur kerja aplikasi, manajemen data, keamanan, dan performa.
Arsitektur Model-View-Controller (MVC) memisahkan aplikasi menjadi tiga komponen utama: model, view, dan controller. Model berisi data dan logika bisnis, View bertanggung jawab untuk tampilan dan interaksi antarmuka pengguna, dan Controller berfungsi sebagai jembatan antara model dan view. Model-View-ViewModel (MVVM) adalah varian dari arsitektur MVC yang menambahkan lapisan ViewModel.
Clean Architecture memisahkan konsep bisnis inti aplikasi dari detail teknis yang mendasarinya. Arsitektur ini terdiri dari empat lapisan utama: presenter, use case, entity, dan repository.Mobile Backend as a Service (MBaaS) memanfaatkan layanan cloud untuk menyediakan backend yang terintegrasi dengan aplikasi mobile. Ini memungkinkan pengembang untuk fokus pada pengembangan aplikasi depan dan memanfaatkan layanan backend yang disediakan oleh penyedia MBaaS.
Reactive Programming bertujuan untuk membuat aplikasi yang responsif dan mudah diatur dengan memanfaatkan stream data yang real-time dan aliran peristiwa (event stream). Tujuannya adalah untuk mencapai aplikasi yang mudah digunakan dan cepat merespons.
Konsep dasar dari Reactive Programming adalah Subsriber dan Publisher:
Publisher -> Memberikan/Publish data
Subsriber -> Menangkap/Mengobserve sebuah ada
Operator -> Apa yang ingin dilakukan dengan data yang ada
Kita ambil studi kasus youtube, ketika kita melakukan subscribe terhadap youtuber tertentu, kita akan selalu mendapatkan notif dari update terbaru. Di sini youtuber adalah Publisher, kita adalah Subsriber, dan operator dapat berupa tindakan yang ingin kita lakukan contohnya melihat notif tersebut atau tidak. Seandainya youtube tidak menggunakan konsep reactive, maka youtubers harus memberitahukan update secara manual terhadap subscribersnya dan jika menggunakan konsep reactive maka youtuber hanya perlu memberikan nilai/update/video terbaru dan subscriber akan mendapatkan notif secara otomatis.
Serverless memanfaatkan layanan cloud untuk menyediakan infrastruktur backend yang terkelola sepenuhnya, sehingga pengembang hanya perlu fokus pada pengembangan aplikasi depan dan memanfaatkan layanan backend yang disediakan oleh penyedia serverless. Ini memungkinkan pengembangan aplikasi yang lebih cepat dan efisien tanpa memerlukan pemeliharaan infrastruktur backend secara langsung.
Tanya Jawab 5
1. Apa perbedaan antara Model-View-Controller (MVC) dan Model-View-ViewModel (MVVM)?
a. MVC tidak memiliki lapisan ViewModel, sedangkan MVVM menambahkan lapisan ViewModel.
b. MVC memiliki lapisan ViewModel, sedangkan MVVM tidak memiliki lapisan ViewModel.
c. MVC dan MVVM sama-sama memiliki lapisan ViewModel.
d. MVC dan MVVM tidak memiliki perbedaan dalam hal lapisan arsitektur.
Jawaban: a. MVC tidak memiliki lapisan ViewModel, sedangkan MVVM menambahkan lapisan ViewModel.
Pembahasan: Arsitektur Model-View-Controller (MVC) memisahkan aplikasi menjadi tiga komponen utama: model, view, dan controller. Sedangkan Model-View-ViewModel (MVVM) adalah varian dari arsitektur MVC yang menambahkan lapisan ViewModel.
2. Apa fungsi dari lapisan Controller dalam arsitektur Model-View-Controller (MVC)?
a. Bertanggung jawab untuk tampilan dan interaksi antarmuka pengguna.
b. Berfungsi sebagai jembatan antara model dan view.
c. Berisi data dan logika bisnis.
d. Tidak memiliki fungsi dalam arsitektur MVC.
Jawaban: b. Berfungsi sebagai jembatan antara model dan view.
Pembahasan: Dalam arsitektur MVC, lapisan Controller berfungsi sebagai jembatan antara model dan view.
3. Apa yang dimaksud dengan Clean Architecture?
a. Arsitektur yang memisahkan konsep bisnis inti aplikasi dari detail teknis yang mendasarinya.
b. Arsitektur yang menambahkan lapisan ViewModel pada arsitektur Model-View-Controller (MVC).
c. Arsitektur yang memanfaatkan layanan cloud untuk menyediakan backend yang terintegrasi dengan aplikasi mobile.
d. Arsitektur yang tidak memiliki lapisan presenter, use case, entity, dan repository.
Jawaban: a. Arsitektur yang memisahkan konsep bisnis inti aplikasi dari detail teknis yang mendasarinya.
Pembahasan: Clean Architecture memisahkan konsep bisnis inti aplikasi dari detail teknis yang mendasarinya. Arsitektur ini terdiri dari empat lapisan utama: presenter, use case, entity, dan repository.
4.Apa keuntungan dari penggunaan Mobile Backend as a Service (MBaaS)?
a. Memungkinkan pengembang untuk fokus pada pengembangan aplikasi depan saja.
b. Memungkinkan pengembang untuk fokus pada pengembangan backend saja.
c. Tidak memerlukan layanan cloud untuk menyediakan backend yang terintegrasi dengan aplikasi mobile.
d. Tidak memiliki keuntungan apapun dalam pengembangan aplikasi mobile.
Jawaban: a. Memungkinkan pengembang untuk fokus pada pengembangan aplikasi depan saja.
Pembahasan: Mobile Backend as a Service (MBaaS) memanfaatkan layanan cloud untuk menyediakan backend yang terintegrasi dengan aplikasi mobile. Ini memungkinkan pengembang untuk fokus pada pengembangan aplikasi depan dan memanfaatkan layanan backend yang disediakan oleh penyedia MBaaS.
5. Apa yang dimaksud dengan Reactive Programming dan apa tujuannya?
a. Merupakan jenis arsitektur mobile untuk mengorganisasi aplikasi menjadi tiga komponen utama
b. Merupakan jenis layanan cloud untuk menyediakan backend terintegrasi dengan aplikasi mobile
c. Merupakan jenis pemrograman yang memanfaatkan stream data real-time untuk membuat aplikasi yang responsif dan mudah diatur
d. Merupakan jenis arsitektur mobile yang fokus pada pemisahan konsep bisnis inti aplikasi dari detail teknis yang mendasarinya
Jawaban: c. Reactive Programming adalah jenis pemrograman yang memanfaatkan stream data real-time untuk membuat aplikasi yang responsif dan mudah diatur.
Pembahasan: Tujuannya adalah untuk membuat aplikasi yang lebih responsif dan dapat merespons perubahan data secara real-time dengan menggunakan aliran peristiwa (event stream).
6. Apa yang dimaksud dengan konsep dasar dari Reactive Programming?
a. Publisher dan Subscriber
b. Stream data dan penyebaran perubahan
c. Operator dan Subscriber
d. Aplikasi yang responsif dan mudah diatur
Jawaban: a. Publisher dan Subscriber
Pembahasan: Konsep dasar dari Reactive Programming adalah Publisher dan Subscriber, di mana Publisher memberikan atau mem-publish data dan Subscriber menangkap atau meng-observe data tersebut.
7. Apa yang dimaksud dengan Operator dalam Reactive Programming?
a. Tindakan yang dilakukan oleh Subscriber
b. Tindakan yang dilakukan oleh Publisher
c. Tindakan yang dilakukan oleh stream data
d. Tindakan yang dilakukan oleh pustaka Reactive Programming
Jawaban: c. Tindakan yang dilakukan oleh stream data
Pembahasan: Operator dalam Reactive Programming adalah tindakan yang dilakukan pada stream data untuk mengubah atau memodifikasi data sesuai dengan kebutuhan Subscriber.
8. Apa yang dimaksud dengan Observable dalam Reactive Programming?
a. Stream data
b. Subscriber
c. Operator
d. Publisher
Jawaban: a. Stream data
Pembahasan: Observable dalam Reactive Programming adalah stream data yang mengemas data yang dapat diteruskan dari satu thread ke thread lainnya.
9. Apa perbedaan antara Serverless dan Reactive Programming?
a. Serverless memanfaatkan layanan cloud, sedangkan Reactive Programming berorientasi pada stream data
b. Serverless dan Reactive Programming sama-sama berorientasi pada stream data
c. Serverless dan Reactive Programming sama-sama memanfaatkan layanan cloud
d. Serverless dan Reactive Programming tidak berkaitan satu sama lain
Jawaban: a. Serverless memanfaatkan layanan cloud, sedangkan Reactive Programming berorientasi pada stream data
Pembahasan: Serverless memanfaatkan layanan cloud untuk menyediakan infrastruktur backend yang terkelola sepenuhnya, sedangkan Reactive Programming berorientasi pada stream data dan penyebaran perubahan. Keduanya memiliki fokus dan tujuan yang berbeda.
10. Apa yang menjadi kelemahan serverless dalam mengelola data?
a. Tidak dapat mengelola data dengan efisien
b. Data mudah hilang
c. Tidak dapat mengelola data dengan skalabilitas yang baik
d. Tidak ada kelemahan dalam mengelola data
Jawaban: c. Tidak dapat mengelola data dengan skalabilitas yang baik
Pembahasan: Serverless kurang cocok untuk mengelola data dengan skalabilitas yang besar. Hal ini disebabkan oleh penggunaan fungsi-fungsi serverless yang hanya aktif saat dibutuhkan dan tidak dapat menyimpan state. Sehingga, jika aplikasi menggunakan banyak fungsi-fungsi serverless, dapat menyebabkan pengelolaan data yang kurang efektif.
Best Regards,
Comments
Post a Comment