Model View Presenter to Prepare Unit Testing

Ari SWS
kelasmobilemalang
Published in
3 min readSep 9, 2019

Hai guys, Beberapa waktu lalu Komunitas Kelas Mobile Malang pengadakan Meetup di bulan Agustus yang membahas tentang pengembangan Aplikasi Android menggunakan arsitektur MVP (Model View Presenter) untuk mempersiapkan Unit Testing. Namun disini kita tidak mebahas secara mendetail tentang Unit Testing, tetapi kita membahas secara rinci tentang apa itu MVP Pattern dan kenapa harus menggunakannya. Mari simak penjelasannya berikut ini.

Architecture Patterns? Mengapa?

Arsitektur dapat dibilang penting namun terkadang juga tidak terlalu penting. Mengapa? Walaupun tanpa arsitektur, aplikasi yang dibuat akan tetap berjalan dengan memenuhi fungsionalitas yang diharapkan. Namun, jika aplikasi tersebut merupakan aplikasi yang memiliki skala besar dan dikembangkan untuk jangka panjang dan memiliki modifikasi atau pengembangan versi lanjutan, arsitektur menjadi bagian yang sangat penting.

Mengapa kita harus menggunakan Architecture Patterns?

  • Unit Test tidak dapat mencakup seluruh kode yang kita buat.
  • Sulit men-debug sebuah Class, karena terdapat terlalu banyak fungsi dalam satu Class
  • Sulit untuk melacak fungsi Logic di Class yang memiliki banyak sekali fungsi.
  • Developer lainnya akan merasa kesulitan dalam menambahkan fitur baru maupun Maintenance pada pekerjaan yang kita lakukan.

Dengan menggunakan Architecture Patterns kita akan mendapatkan banyak sekali manfaat, diantaranya:

  • Testability: Sebelum kita mengimplementasikan Unit Tes, kita harus menuliskan kode yang dapat dites terlebih dahulu.
  • Simplicity: Memisahkan kode dalam beberapa bagian berdasarkan fungsionalitas. Seperti memisahkan View dengan Logic.
  • Low-cost maintenance: Sangat mudah untuk menambah maupun mengurangi fitur yang ada. Terlebih, hal ini dapat membantu kita untuk melacak bagian-bagian Logic yang penting

Manfaat terbesar menggunakan arsitektur yang tepat akan memudahkan modifikasi dan efektivitasnya. Arsitektur yang baik memiliki fleksibilitas dalam menyesuaikan dengan perubahan dan modifikasi pada aplikasi kedepannya.

Model View Presenter (MVP)

Model-View-Presenter atau yang biasa disingkat MVP adalah sebuah konsep arsitektur pengembangan aplikasi yang memisahkan antara tampilan aplikasi (View) dengan proses bisnis (Logic) yang bekerja pada aplikasi. Arsitektur ini akan membuat pengembangan aplikasi kita menjadi lebih terstuktur, mudah di-test dan juga mudah di-maintain.

Berikut penjelasan masing-masing layer pada MVP.

  • View, merupakan layer untuk menampilkan data dan interaksi ke user. View biasanya berupa Activity, Fragment atau Dialog di Android. View ini juga yang langsung berkomunikasi dengan user.
  • Model, merupakan layer yang menunjuk kepada objek dan data yang ada pada aplikasi.
  • Presenter, merupakan layer yang menghubungkan komunikasi antara Model dan View. Setiap interaksi yang dilakukan oleh user akan memanggil Presenter untuk kemudian mengakses Model lalu mengembalikan responnya kembali kepada View.

Seperti pada penjelasan diatas, pemisahan kode program berdasarkan fungsi dapat membuat struktur kode kita lebih rapi dan tentu saja lebih mudah di-test. Seperti yang kita ketahui, berbagai View yang kita gunakan biasanya bergantung keras (tighly-coupled) dengan library Android, sehingga kita akan kesulitan untuk melakukan testing pada aplikasi kita, misalnya unit testing. Dengan struktur pengembangan aplikasi ini, kita dapat membuat aplikasi kita lebih maintainable dan testable.

Nah, kira-kira begitulah gambaran dari arsitektur MVP yang kita bahas pada MeetUp bulan Agustus yang lalu. Untuk contoh project dengan menggunakan MVP pattern, bisakamu lihat di repo ini.

Semoga artikel ini bermanfaat.

Sekian😃

--

--