Dokumen tersebut membahas tentang pola desain MVP (Model View Presenter) untuk aplikasi Android. Terdapat penjelasan mengenai alur kerja MVP, definisi tiga komponen utama MVP yaitu View, Presenter, dan Model, serta contoh kode implementasi MVP pada aplikasi perhitungan luas segitiga sederhana.
2. 2
Ahmad Arif Faizin
Android Developer & Trainer at IMA Studio
Android Certified Application Developer v7 by ATC
https://www.linkedin.com/in/ahmad-arif-faizin/
https://medium.com/@ahmadariffaizin
085740482440
17. Pertama, Definisikan dulu fungsi proses
apa saja yang akan ada di halaman itu.
Kedua, Definisikan respon terhadap view
yang terjadi setelah proses tersebut
dijalankan.
20. Pertama, Definisikan dulu fungsi proses
apa saja yang akan ada di halaman itu,
misal hitungLuas()
Kedua, Definisikan respon terhadap view
yang terjadi setelah proses tersebut
dijalankan, misal updateTextHasil()
22. MainPresenter : sebuah interface yang berisi nama fungsi-
fungsi logika dari class MainActivity. Menghubungkan View
dengan Presenter.
MainView : Sebuah interface yang berisi fungsi2 yang akan
dijalankan pada mainActivity, menghubungkan Presenter ke
View.
MainPresenterImp : sebuah class yang
mengimplementasikan fungsi2 yang ada pada
MainPresenter.
25. public class MainPresenterImp implements MainPresenter {
//1 create constructor
MainView mainView;
public MainPresenterImp(MainView mainView) {
this.mainView = mainView;
}
//2 implement MainPresenter
@Override
public void hitungLuas(Double alas, Double tinggi) {
Double luas = alas * tinggi;
mainView.updateTextHasil(luas);
}
}
26. Setting Presenter Pada MainActivity.java
1. Deklarasi variabel
private MainPresenterImp presenter;
2. Inisialisasi terlebih dahulu dengan membuat method initPresenter()
private void initPresenter() {
presenter = new MainPresenterImp(this);
}
3. Ganti proses logika yang sebelumnya langsung dengan presenter.
btnHitung.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Double alas = Double.valueOf(edAlas.getText().toString());
Double tinggi = Double.valueOf(edTinggi.getText().toString());
presenter.hitungLuas(alas, tinggi);
}
});
27. Setting View Pada MainActivity.java
1. Impliment Class ke MainView
public class MainActivity extends AppCompatActivity implements MainView
2. Maka akan merah, Alt+Enter kemudian Implement Method, maka akan muncul
method updateTextHasil
@Override
public void updateTextHasil(Double luas) {
tvHasil.setText(luas.toString());
}
28. btnHitung.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Double alas = Double.valueOf(edAlas.getText().toString());
Double tinggi = Double.valueOf(edTinggi.getText().toString());
presenter.hitungLuas(alas, tinggi);
}
});
}
private void initPresenter() {
presenter = new MainPresenterImp(this);
}
@Override
public void updateTextHasil(Double luas) {
tvHasil.setText(luas.toString());
}
private void initView() {
29. Setting View Pada MainActivity.java
1. Impliment Class ke MainView
public class MainActivity extends AppCompatActivity implements MainView
2. Maka akan merah, Alt+Enter kemudian Implement Method, maka akan muncul
method updateTextHasil
@Override
public void updateTextHasil(Double luas) {
tvHasil.setText(luas.toString());
}