Wednesday, March 25, 2020

Kotlin - Android MVP (Model View Presenter)

MVP (Most Valuable Player), ya itu sebutan bagi kalian pemain terbaik dalam satu team saat bermain basket, mobile legend atau Dota 2. Pemain dengan peran terbesar dalam pemberian assist (bantuan), buat banyak goal (dalam basket) kill banyak enemy di mobile legend atau Dota 2. 
Eits, tapi itu di permainan, nah MVP yang akan dibahas pada bagian ini berbeda dong.

MVP (Model View Presenter), adalah design pattern yang paling sering saya gunakan setelah saya mengetahui beberapa design pattern yang ada seperti MVVM, VIPER, atau bahkan MVC yang merupakan design pattern asli dari android studio. Jadi, apa itu MVP dalam pemrograman Mobile Apps Android dengan menggunakan bahasa Pemrograman Kotlin?

MVP adalah sebuah konsep arsitektur pengembangan aplikasi yang memisahkan antara tampilan aplikasi dengan proses bisnis yang bekerja pada aplikasi.

Secara sederhana alur dari arsitektur MVP dapat digambarkan dengan 





Dari gambar tersebut, terdapat Model, View dan Presenter yang merupakan komponen arsitekturnya. jadi apa itu Model ?, apa itu View? apa itu Presenter ?

Model  → Komponen yang merupakan objek yang akan di gunakan pada aplikasi, misalnya saja kita akan menyimpan data pengguna, maka pada model ini kita bisa membuat sebuat kelas "Pengguna" yang akan menjadi objek dari entitas Pengguna. Pada entitas ini nanti dapat berisikan idPengguna, namaPengguna, alamatPengguna dan beberapa atribut lainnya yang berkaitan dengan pengguna.

View View adalah komponen yang merupakan tampilan antar muka pengguna. Dalam pemrograman mobile khususnya Android tampilan antar muka pengguna biasa disebut dengan Activity. Dalam satu Activity bisa jadi ada Fragment atau Dialog.

Presenter Presenter adalah komponen yang akan menghubungkan Model dan View, seperti pada gambar yang ada. Berdasarkan urutannya, pengguna akan melakukan interaksi yang kemudian akan memanggil/men-trigger presenter, kemudian presenter akan melakukan memperbaharui data pada Model, jika data pada model berhasil di ubah, maka presenter akan mengembalikannya ke View dan akan View akan melakukan perubahan antar muka.

Jadi itulah pengertian dasar MVP pada pemrograman Mobile dengan Kotlin, Untuk contoh penggunaannya akan dilanjukan pada pembahasan selanjutnya. Terima kasih

Thursday, March 19, 2020

Pemrograman Berorientasi Objek (Java) - Pewarisan / Inheritance

Inheritance atau Pewarisan/Penurunan adalah konsep pemrograman dimana sebuah class dapat ‘menurunkan’ property dan method yang dimilikinya kepada class lain. Konsep inheritance digunakan untuk memanfaatkan fitur ‘code reuse’ untuk menghindari duplikasi kode program.

Konsep inheritance membuat sebuah struktur atau ‘hierarchy’ class dalam kode program. Class yang akan ‘diturunkan’ bisa disebut sebagai class induk (parent class), super class, atau base class. Sedangkan class yang ‘menerima penurunan’ bisa disebut sebagai class anak (child class), sub class, derived class atauheir class.

Tidak semua property dan method dari class induk akan diturunkan. Property dan method dengan hak akses private, tidak akan diturunkan kepada class anak. Hanya property dan method dengan hak akses protected dan public saja yang bisa diakses dari class anak. (sumber : http://www.duniailkom.com/tutorial-belajar-oop-php-pengertian-inheritance-pewarisan/)

Sedangkan dari dokumentasi java yang pewarisan/inheritance digambarkan dengan beberapa objek yang memiliki kesamaan atribut dengan objek lainnya. Misalnya objek dosen, mahasiswa dan karyawan memiliki kesamaan atribut, yaitu memiliki nama, umur(tanggaln lahir), alamat dan jenis kelamin. Akan tetapi dosen memiliki tambahan atribut NID(nomor induk dosen), mahasiswa memiliki NIM(nomor induk mahasiwa) dan karyawan memiliki NIK(nomor induk karyawan).

Dalam pemrograman berorientasi objek, kita dimungkinkan untuk menurunkan/mewariskan (inherit) sifat-sifat yang sama. Sebagai contoh dapat digambarkan pada diagram berikut :

Dari gambar diatas, dapat dilihat bahwa perbedaan dari keempat objek tersebut adalah pada nim, nik, dan nid. Sehingga dalam pemrograman berorientasi objek dapat dilakukan pewarisan agar tidak perlu membuat atribut secara berulang-ulang. Dalam pendekatan terstruktur hal ini biasa disebut dengan generalisasi.


Dalam pemrograman java, class Manusia adalah super class, sedangkan class Dosen, Mahasiswa dan Karyawan adalah sub class .

contoh implementasi pewarisan/inheritance dengan menggunakan bahasa pemrograman java :



Dekatkan Privacy and Policy

Membangun aplikasi Dekatkan sebagai aplikasi yang Didukung Iklan. Layanan ini disediakan oleh tanpa biaya dan dimaksudkan untuk digunakan apa adanya.

Halaman ini digunakan untuk memberi tahu pengunjung mengenai kebijakan saya dengan pengumpulan, penggunaan, dan pengungkapan Informasi Pribadi jika ada yang memutuskan untuk menggunakan Layanan saya.

Jika Anda memilih untuk menggunakan Layanan saya, maka Anda menyetujui pengumpulan dan penggunaan informasi sehubungan dengan kebijakan ini. Informasi Pribadi yang saya kumpulkan digunakan untuk menyediakan dan meningkatkan Layanan. Saya tidak akan menggunakan atau membagikan informasi Anda kepada siapa pun kecuali sebagaimana dijelaskan dalam Kebijakan Privasi ini.

Istilah yang digunakan dalam Kebijakan Privasi ini memiliki arti yang sama seperti dalam Syarat dan Ketentuan kami, yang dapat diakses di Dekatkan kecuali ditentukan lain dalam Kebijakan Privasi ini.

Pengumpulan dan Penggunaan Informasi

Untuk pengalaman yang lebih baik, saat menggunakan Layanan kami, saya mungkin meminta Anda untuk memberikan kami informasi pengenal pribadi tertentu, termasuk tetapi tidak terbatas pada ACCESS_LOCATION, READ_PHONE_STATE, RECEIVE_BOOT_COMPLETED, INTERNET, WRITE_EXTERNAL_STORAGE, VIBRATE, SET_ALARM. Informasi yang saya minta akan disimpan di perangkat Anda dan tidak dikumpulkan oleh saya dengan cara apa pun.

Aplikasi ini memang menggunakan layanan pihak ketiga yang dapat mengumpulkan informasi yang digunakan untuk mengidentifikasi Anda.

Tautan ke kebijakan privasi penyedia layanan pihak ketiga yang digunakan oleh aplikasi
Log Data

Saya ingin memberi tahu Anda bahwa setiap kali Anda menggunakan Layanan saya, jika terjadi kesalahan pada aplikasi, saya mengumpulkan data dan informasi (melalui produk pihak ketiga) di ponsel Anda yang disebut Data Log. Data Log ini dapat mencakup informasi seperti alamat Protokol Internet ("IP") perangkat Anda, nama perangkat, versi sistem operasi, konfigurasi aplikasi ketika menggunakan Layanan saya, waktu dan tanggal penggunaan Layanan oleh Anda, dan statistik lainnya .

Cookie 

Cookie adalah file dengan sejumlah kecil data yang biasanya digunakan sebagai pengidentifikasi unik anonim. Ini dikirim ke browser Anda dari situs web yang Anda kunjungi dan disimpan di memori internal perangkat Anda.

Layanan ini tidak menggunakan "cookie" ini secara eksplisit. Namun, aplikasi dapat menggunakan kode pihak ketiga dan perpustakaan yang menggunakan "cookie" untuk mengumpulkan informasi dan meningkatkan layanan mereka. Anda memiliki opsi untuk menerima atau menolak cookie ini dan tahu kapan cookie dikirim ke perangkat Anda. Jika Anda memilih untuk menolak cookie kami, Anda mungkin tidak dapat menggunakan beberapa bagian dari Layanan ini.

Penyedia jasa

Saya dapat mempekerjakan perusahaan pihak ketiga dan individu karena alasan berikut:

  • Untuk memfasilitasi Layanan kami;
  • Untuk menyediakan Layanan atas nama kami;
  • Untuk melakukan layanan terkait Layanan; atau
  • Untuk membantu kami dalam menganalisis bagaimana Layanan kami digunakan.

Saya ingin memberi tahu pengguna Layanan ini bahwa pihak ketiga ini memiliki akses ke Informasi Pribadi Anda. Alasannya adalah untuk melakukan tugas yang diberikan kepadanya atas nama kami. Namun, mereka berkewajiban untuk tidak mengungkapkan atau menggunakan informasi untuk tujuan lain apa pun.

Keamanan

Saya menghargai kepercayaan Anda dalam memberikan Informasi Pribadi Anda kepada kami, oleh karena itu kami berupaya untuk menggunakan cara yang dapat diterima secara komersial untuk melindunginya. Tetapi ingat bahwa tidak ada metode transmisi melalui internet, atau metode penyimpanan elektronik yang 100% aman dan andal, dan saya tidak dapat menjamin keamanan absolutnya.

Tautan ke Situs Lain

Layanan ini dapat berisi tautan ke situs lain. Jika Anda mengklik tautan pihak ketiga, Anda akan diarahkan ke situs itu. Perhatikan bahwa situs eksternal ini tidak dioperasikan oleh saya. Karena itu, saya sangat menyarankan Anda untuk meninjau Kebijakan Privasi situs web ini. Saya tidak memiliki kendali atas dan tidak bertanggung jawab atas konten, kebijakan privasi, atau praktik situs atau layanan pihak ketiga mana pun.

Privasi Anak-Anak

Layanan ini tidak membahas siapa pun yang berusia di bawah 13 tahun. Saya tidak secara sadar mengumpulkan informasi yang dapat diidentifikasi secara pribadi dari anak-anak di bawah 13 tahun. Dalam kasus saya mengetahui bahwa seorang anak di bawah 13 tahun telah memberi saya informasi pribadi, saya segera menghapus ini dari server kami. Jika Anda adalah orang tua atau wali dan Anda mengetahui bahwa anak Anda telah memberi kami informasi pribadi, silakan hubungi saya agar saya dapat melakukan tindakan yang diperlukan.

Perubahan pada Kebijakan Privasi Ini

Saya dapat memperbarui Kebijakan Privasi kami dari waktu ke waktu. Dengan demikian, Anda disarankan untuk meninjau halaman ini secara berkala untuk setiap perubahan. Saya akan memberi tahu Anda tentang segala perubahan dengan memposting Kebijakan Privasi baru di halaman ini. Perubahan ini berlaku segera setelah diposting di halaman ini.

Hubungi kami

Jika Anda memiliki pertanyaan atau saran tentang Kebijakan Privasi saya, jangan ragu untuk menghubungi saya di m.mafmudin@gmail.com.