Tutorial Implementasi Design Pattern MVP Kotlin

tutorial implementasi design pattern with mvp - codingtive


Codingtive.com - Pada tutorial kali ini kita akan belajar sebuah design arsitektur pada android, yaitu MVP. Menurut wikipedia design pattern (pola desain) adalah sebuah istilah di dalam rekayasa perangkat lunak yang mengacu pada solusi umum yang bisa dipergunakan kembali atau berulang-ulang untuk menyelesaikan masalah-masalah yang umum terjadi dalam konteks tertentu atau khusus yang ditemui pada desain perangkat lunak.

Didalam android terdapat beberapa design pattern yang sering digunakan oleh para programmer, antara lain yaitu ada MVP (Model-View-Presenter), MVVM (Model-View-ViewModel) dan MVI (Model-View-Intent), VIPER (View, Interactor, Presenter, Entity, Router). Namun pada kesempatan kali ini kita hanya akan belajar tentang MVP (Model View Presenter).

Bagian-bagian dalam MVP :
  1. Model : data layer yang menunjuk pada objek dan data yang ada pada aplikasi. Model ini bertanggung jawab atas logikas bisnis.
  2. View : Pada bagian view menampilkan ui / user interface ciri khasnya yaitu Activity atau Fragment
  3. Presenter : Menghubungkan keduanya yaitu antara model dengan view, selain itu semua logika bisnis diletakkan di presenter ini

Skema MVP

 Dibawah ini merupakan skema yang ada didalam MVP :


Skema Design Pattern Codingtive


Kelebihan MVP

Apasih manfaat jika kita menggunakan design pattern ? mungkin itulah beberapa pertanyaan yg sering ditanyakan. Benefit atau manfaat menggunakan design pattern jika kita menggunakan mvp antara lain :
  • Beban kerja dari View lebih ringan, karena pada view hanya memanggil fungsi yang ada di presenter
  • Membuat Project Menjadi Testable. saat kita membuat aplikasi tentunya kita perlu testing terlebih dahulu sebelum aplikasi direlase, nah dengan menggunakan mvp ini kita lebih mudah untuk menjalankan unit testing
  • Membagi kode menjadi bagian-bagian kecil dan sesederhana mungkin.
  • Mempermudah perbaikan code maintenance atau bug

Membuat Project dan Latihan

Hal yang pertama kali yaitu buat project Android Studio, beri nama MVP Basic jangan lupa memilih bahasanya yaitu kotlin

Struktur Project

Dibawah ini merupakan struktur kode yang akan dibuat :


Silahkan buka MainActivity, kemudian tuliskan kode berikut :
 
class MainActivity : AppCompatActivity() {


    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        //inisialisasi angka yg akan dihitung
        val numbOne = 10
        val numbTwo = 12

    }
}


Kemudian buat package baru beri nama presenter , didalam package tersebut buat kelas baru beri nama MainPresenter , sesuaikan kode nya seperti dibawah ini :

//buat constructor MainView
class MainPresenter(val data: MainView) {
    //buat fungsi untuk menghitung bilangan di mainActivity
    fun hitung(numbOne : Int, numbTwo : Int){
        //buat variabel baru namanya hasil  , masukin rumus nya
        val hasil = numbOne.times(numbTwo)

        //buat variable untuk memanggil model
        val model = Data()
        //panggil model
        model.dataHasil = hasil
        data.hasilPresenter(model)

    }
}

Kode diatas akan error karena MainView belum dibuat, oleh karena itu buat interface baru beri nama MainView, tambahka kode berikut :

interface MainView {
    //interface untuk menghubungkan antara view dengan presenter
    fun hasilPresenter(data: Data)
}

Langkah selanjutnya yaitu buat package baru beri nama Model didalam package tersebut buat kelas baru namanya Data , tambahkan kode berikut :
class Data {
    var dataHasil : Int ? = null
}

Langkah terakhir yaitu kita perlu memanggil presenter di MainActivity . Silahkan buka MainActivity :
class MainActivity : AppCompatActivity(), MainView {


    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        //inisialisasi angka yg akan dihitung
        val numbOne = 10
        val numbTwo = 12

        //panggil presenter
        val presenter = MainPresenter(this)

        //panggil fungsi yang ada didalam presenter
        presenter.hitung(numbOne, numbTwo)

    }

    override fun hasilPresenter(data: Data) {

        //menampilkan data
        Log.d("Hasil", data.dataHasil.toString())
    }
}



Selesai, silahkan coba jalannkan aplikasinya akan tampil pada logcat :
hasil implementasi mvp kotlin codingtive




Download Source Code

Untuk source code bisa dilihat di repository saya :

Berlangganan update artikel terbaru via email:

Belum ada Komentar untuk "Tutorial Implementasi Design Pattern MVP Kotlin"

Posting Komentar

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel