CategoriesAndroidProgramming

Mengenal Architecture Pattern MVP pada Android Development

Architecture Pattern adalah bagaimana susunan kode kita pada saat membuat program / aplikasi. contoh dari Architecture Pattern adalah MVC (Model View Controller), MVP (Model View Presenter), dan MVVM (Model View ViewModel). sebagian dari kita mungkin lebih familiar dengan istilah design pattern bahkan salah menganggap kalau MVC, MVP, dan MVVM adalah design pattern. padahal Design Pattern dan Architectural Pattern adalah 2 hal yang berbeda. Design Pattern adalah istilah yang merujuk pada solusi umum yang digunakan untuk memecahkan masalah yang sering terjadi dalam konteks tertentu, contoh dari Design Pattern adalah Factory Pattern, Adapter Pattern, Singleton Pattern, Builder Pattern, dan lain sebagainya. Design Pattern akan saya bahas di artikel yang lain, tetap stay tune di blog ini.

Penggunaan Architecture Pattern cukup penting dan cenderung memudahkan kita dalam proses development, apalagi jika kita berada dalam satu tim development. karena Architecture Pattern membagi tiap koding sesuai dengan fungsinya masing-masing, jadi kita tidak melakukan koding di satu class saja namun dipisah-pisah menjadi beberapa class sesuai dengan fungsinya masing-masing.
disini kita akan membahas salah satu dari Architecture Pattern yang paling sering dipakai dalam Android Development, yaitu MVP.

MVP (Model View Presenter)

pada MVP terdapat 3 komponen, yaitu Model, View, dan Presenter. Model disini memiliki fungsi untuk mendefinisikan struktur data yang dibutuhkan untuk disimpan atau di tampilkan pada view, sedangkan view berfungsi untuk menampilkan data berdasarkan model ke view atau user interface, lalu Presenter berfungsi sebagai tempat untuk menuliskan business logic. Presenter menjadi jembatan antara Model dan View. kurang lebih penggambarannya adalah sebagai berikut :

Struktur MVP

Pada implementasinya sebenarnya ada satu bagian lagi yang penting pada MVP Pattern, yaitu Interactor yang menangani tugas-tugas yang berhubungan dengan database. lalu ada Contract yang merupakan interface blue print dari MVP Pattern pada tiap Activity, penggunaan Contract disini bersifat optional namun sangat disarankan. baik untuk selanjutnya kita coba praktekkan MVP Pattern kita.

Praktek

Pertama kita buat satu interface baru dengan nama MainContract

pada kode di atas kita bisa melihat struktur dari MVP Pattern kita pada MainActivity.
pada View kita menampilkan List Todo dan Menghapus List Todo. Pada Interactor kita menambahkan Todo dan mendapatkan semua Todo. sedangkan pada Presenter kita menyimpan Todo.
disini kita masih belum menggunakan database, tapi masih menggunakan List biasa. mungkin jika kita menggunakan database akan ada method tambahan pada Interactor seperti updateTodo dan deleteTodo.

selanjutnya buat class untuk implementasi Interactor. kita beri nama MainInteractorImpl yang meng implementasikan MainContract.Interactor

selanjutnya buat class untuk implementasi Presenternya.
beri nama MainPresenterImpl yang akan meng implementasikan MainContract.Presenter

Pada presenter kita beri constructor yang berisikan view. jangan lupa juga inisialisasi Interactor agar interactor bisa digunakan.
jika kita lihat pada method saveTodo. kita menjalankan kode untuk mentrigger method pada View kita setelah menjalankan method pada Interactor.

selanjutnya adalah Implementasi untuk View nya, kita implementasikan ke MainActivity.
disini kita asumsikan pada view kita terdapat 2 EditText untuk Input nama kegiatan dan deskripsi, satu Button untuk menyimpan, dan satu RecyclerView untuk menampilkan data yang tersimpan.

Pada kode diatas, kita implementasikan MainContract.View dan juga kita inisialisasi MainPresenterImpl agar bisa menjalankan method pada MainPresenterImpl

untuk memudahkan sebaiknya kita mengkategorikan setiap class pada tiap package seperti berikut

secara garis besar, struktur dari MVP Pattern aplikasi kita diatas adalah seperti berikut :

kurang lebih seperti itu langkah untuk mengimplementasikan MVP Pattern pada aplikasi kita, untuk Architecture Pattern MVVM akan saya bahas di artikel lainnya jadi tetap stay tune di blog ini.
jika ada kritik dan saran bisa dituliskan di kolom komentar. semoga apa yang saya sampaikan dapat bermanfaat.
Terima Kasih.

Published by Ahmad Saifur Ridlo

Android Developer at Algostudio.net

Leave a Reply

Your email address will not be published.