Apa itu RecyclerView?

Hae gaes, pada beberapa hari yang lalu kita sudah membahas mengenai ListView, yang ujung-ujungnya saya bilang soal ListView udah tidak digunain lagi dan telah digantikan oleh RecylerView😅.

Okay gaes, simple nya RecylerView itu adalah tampilan yang dapat didaur ulang. Nah, jadi gini kita bahas bedanya dibandingkan ListView dulu yah, objek pada ListView telah ditentukan dari awal hingga akhir, sedangkan pada RecyclerView objeknya sebatas ukuran saja. Untuk lebih jelasnya, coba lihat gambar dibawah ini:

Mungkin sekilas tidak ada bedanya kan? Tapi coba pikir jika data yang akan ditampilkan berjumlah ribuan atau bahkan tak terhitung, seperti ketika kita scroll tiktok atau IG, jika kita menggunakan ListView maka akan memakan banyak sekali memori dan prosesnya akan menjadi sangat lama.

Dah gitu aja soal RecyclerView, dah dulu yah gue mau mabar ama kucing gue dulu.

Apa itu Library? Bagaimana cara menggunakannya?

Hae gaes, jadi Library itu adalah perpustakaan. Dah gitu aja, dadah..🤪

Iya sih artinya perpustakaan, terus maksudnya apa? Nah, Library adalah source code atau tools yang telah dibuat oleh orang lain yang dapat kita gunakan langsung kedalam aplikasi kita.

Pada awal ketika kita membuat project baru, secara tidak langsung kita telah menggunakan berbagai Library. Library yang kita gunakan dapat dilihat di build.gradle (Module:app) pada bagian Dependencies. Kita juga dapat menambahkan Library lainnya pada bagian Dependencies.

Contohnya ketika kita ingin membuat ImageView yang berbentuk lingkaran seperti gambar diatas, sebenarnya untuk membuat ImageView seperti itu dapat kita buat sendiri, namun akan lebih praktis dan efesien ketika kita menggunakan library nya. Cukup dengan menambahkan 1 baris code ini kedalam Dependencies, maka imageview seperti diatas akan bisa dibuat dengan mudah:

implementation ‘com.github.bumptech.glide:glide:4.11.0’

Okay, pertanyaan selanjutnya adalah bagaimana cara menggunakan library tersebut? Setiap library umumnya memiliki penjelasan mengenai cara penggunaannya pada bagian readme di Github.

Ngomong-ngomong library tidak hanya untuk tampilan atau User Interface (UI) saja, terdapat juga library seperti Retrofit untuk mengambil data, Room untuk database, dan lainnya.

Dah gitu aja dulu yah gaes, gue mau dateng ke kawinan kucing gue dulu.

Apa itu ListView?

Hae gaes, kita bahas dari teori ListView dulu yah. Nah jadi Simple nya ListView adalah tampilan yang dibuat berulang.

Contohnya kasusnya, ketika kita ingin membuat tampilan yang menampilan list menu makanan dimana jumlah menunya ada 30. Kalau kita akan membuat view nya satu-satu tiap menu, pasti akan memakan waktu sangat lama, kita harus membuat TextView, ImageView, dan View lainnya secara berulang-ulang untuk setiap menu.

Nah dengan adanya ListView kita cukup membuat tampilan untuk 1 menu saja, kemudian kita sesuaikan untuk menu-menu selanjutnya.

Penjelasan secara singkat tentang gambar diatas adalah ListView menggunakan Adapter untuk dapat menampilan data dari Data Source. Data Source disini adalah data-data dalam bentuk Array, nah ketika data-data dalam bentuk array tersebut dimasukan kedalam adapter maka adapter akan melakukan pengulangan untuk setiap data dalam Array. Kemudian setiap data yang diambil adapter akan dimasukan kedalam tampilan layout.

Namun gaes, kebanyak aplikasi saat ini sudah tidak menggunakan ListView, karena telah digantikan oleh RecyclerView. RecyclerView dianggap lebih praktis dan lebih fleksibel dibandingkan dengan ListView.

Jadi dari tadi lu bacain semua ini gak guna sih sebenernya, orang udah gak kepake lagi😅.

Dah gitu aja yah, sebelumnya gue minta maaf juga yee😅 Btw, gue mau nyari kucing gue dulu.

Bagaimana daur hidup Fragment?

Hae gaes, sama seperti Activity, Fragment juga memiliki daur hidupnya sendiri. Namun, daur hidup dari Fragment sangat bergantung erat pada daur hidup Activity yang ia tempati.

Okay, langsung saja ke intinya. Berikut adalah daur hidup dari Fragment :

Sip, bakal gue coba jelasin yah. Jadi gini gaes, pada saat Fragment mulai di hosting pada sebuah Activity maka akan dimulai tahap onAttach().

Kemudian, akan disusul oleh onCreate() dimana sistem akan membuat Fragment itu sendiri, pada tahapan ini kita dapat menginisialisasi apa saja yang akan dipertahankan ketika Fragment dihentikan sementara.

Selanjutnya akan masuk ketahapan onCreateView(), pada tahapan ini sistem akan memuat semua tampilan atau UI (user interface) dalam Fragment.

Setelah itu akan masuk ketahapan onActivityCreated(), dimana Fragment akan berjalan diatas Activity.

Lalu tahapan onStart(), dimana Fragment sudah muncul dengan sempurna.

Selanjutnya akan ke tahapan onResume(), dimana Fragment telah siap menerima input.

Lanjut ke tahapan onPause(), dimana sebagian tampilan dari Fragment ditutupi oleh activity ataupun fragment lain. Sedangkan onStop() akan dipanggil ketika tampilan fragment sepenuhnya telah tertutupi.

onDestroyView() dipanggil ketika fragment telah berada dalam back stack. Ketika kita kembali ke dalam Fragment maka akan kembali ketahapan onCreateView(). Dan ketika Fragment sudah tidak akan digunakan lagi, maka akan masuk ketahapan onDestroy() dan onDetach().

Dah gitu aja sih, dah dulu yah, gue mau gibahin kucing gue dulu.

Apa itu Fragment?

Nah gaes, Fragment menurut website android developer adalah bagian UI aplikasi Anda yang dapat digunakan kembali. Sekilas sih Fragment itu mirip ama Activity, keduanya sama-sama ditulis di suatu Class serta memiliki kode logika dan XML masing-masing. Bedanya adalah, suatu Fragment tidak didaftarkan pada Android Manifest.

Sebuah Fragment tidak dapat dijalankan sendiri, melainkan harus di panggil/hosting dari Activity ataupun dari Fragment lain.

Jadi simple nya begini gaes, seperti postingan sebelumnya tentang Activity, kalau Activity digambarkan seperti abang-abang warnet, nah maka Fragment itu kayak Billing warnet. Billing warnet hanya dapat dikasih oleh abang-abang warnet ataupun temen lu yang kasih Billing punyanya sendiri. Kira-kira begitulah😅

Mengapa kita harus menggunakan Fragment? Sebuah Fragment dapat membuat banyak tampilan tanpa harus berpindah Activity. Fragment bersifat modular dan reusable, karena dalam satu Activity dapat menggunakan banyak Fragment dan sebuah Fragment dapat digunakan kembali ke ActivityActivity yang berbeda.

Berikut bahasa alien untuk menggunakan Fragment:

val fragmentManager = getSupportFragmentManager()
val exampleFragment = ExampleFragment()

fragmentManager
.beginTransaction()
.add(R.id.frame_container,exampleFragment)
.addToBackStack(null)
.commit()

Untuk membuat Fragment pertama-tama kita harus menginisialisasi Fragment Manager, kemudian kita bisa menambahkan aksi-aksi seperti Add(), Replace(), Remove(), dan AddToBackStack() untuk menyimpan tampilan terakhir kedalam back stack . Selanjutnya untuk mengeksekusinya, kita menggunakan commit().

Gitu aja sih tentang Fragment. Dah dulu yah, gw mau nepuk-nepuk kucing gue dulu.

Apa itu Data Class dan Parcelable? Bagaimana cara menggunakannya?

Okay gaes, Data Class itu simple nya adalah Class yang menyimpan model data dari suatu objek. Suatu Data Class tidak bergantung pada kelas lainnya. Umunya Data Class digunakan untuk koneksi ke Server atau Database.

Berikut adalah contoh bahasa alien dari Data Class:

data class Person(
    val name: String?,
    val age: Int?,
    val email: String
)

Arti dari bahasa alien diatas adalah, didefinisikan Data Class yang diberi nama Person yang didalamnya terdapat 3 parameter, yaitu name, age, dan email. Jadi ketika kita memanggil Data Class Person, maka kita diwajibkan untuk mengisi name, age, dan email. Hal ini mempermudah untuk mengatur data agar tetap dalam 1 kesatuan, sehingga mudah untuk dipindahkan ataupun digunakan untuk mengakses Server atau Database.

Nah, untuk dapat mengirimkan Data Class ini, kita membutuhkan Parcelable. Apa itu Parcelable? Jadi simple nya Parcelable itu adalah interface untuk mengirimkan objek dari sebuah activity ke activity yang lain. Parcelable biasa digunakan untuk membungkus Data Class agar mudah untuk dikirimkan.

Berikut adalah penggunaan Parcelable pada sebuah Data Class:

data class Person(
val name: String?,
val age: Int?,
val email: String?
) : Parcelable

Selesai menuliskan bahasa alien diatas, maka akan muncul tanda merah, jangan risau jangan panik, klik pada bagian tanda merah lalu tekan alt+enter dan pilih “Add Parcelable Implementation”, dan kemudian bahasa alien lainnya akan ditambahkan secara otomatis, kemudian jadi deh..Jadi penjelasan mengenai bahasa alien diatas adalah Data Class Person dibungkus dengan Parcelable, sehingga untuk memindahkan Person ke antar Activity menjadi lebih mudah.

Untuk Passing ke activity lain, cukup tambahkan EXTRAS dan passing dengan Intent. Akan menjadi seperti berikut:

val intent = Intent(this, AnotherActivity::class.java)
intent.putExtra(“extra_person”, person)

Catatan, person adalah Data Class Person yang telah diisikan data.

Untuk Retrieving data, cukup diterima dengan Intent juga, menjadi seperti berikut :

val item = intent.getParcelableExtra(“extra_person”)

Gitu aja sih, dahlah gue mau kasih makan kucing gue dulu.

Apa itu Intent? Bagaimana cara menggunakannya?

Hae haes, ayo kita liat terlebih dahulu pengertian Intent menurut website resmi Android Developer: “An intent is an abstract description of an operation to be performed“. Entah kenapa menurut gue, pengertian-pengertian dari website Android Developer itu simple tapi ambigu yah?..

Simple nya, Intent itu adalah penghubung antar Activity. Suatu Intent dapat mengirimkan data antar Activity (disebut Explicit Intent) dan juga bisa mengirimkan data ke aplikasi lain (disebut Implicit Intent). Okay, kita bahas satu-satu yah..

1. Explicit Intent

Intent ini sangat sering digunakan ketika berpindah activity, begini bahasa aliennya :

val Intent = Intent(this@MainActivity, SecondActivity::class.java)
startActivity(Intent)

Intent untuk berpindah activity terdapat 2 parameter, parameter yang pertama adalah context, yang dalam hal ini dapat dituliskan dengan this@MainActivity, kemudian untuk parameter berikutnya adalah tujuan activity mana yang akan kita buka, yang dalam hal ini adalah activity dengan nama SecondActivity. Karena dituliskan dengan bahasa Kotlin maka harus ditambahkan ::class.java dibagian belakangnya. Selanjutnya Intent yang dibuat tinggal dijalankan dengan startAcitivity.

2. Implicit Intent

Okay gaes, lanjut ke yang kedua, Intent ini digunakan ketika kita membutuhkan fitur diaplikasi lain, tanpa harus menambahkan ke apikasi kita. Contohnya ketika kita menginginkan fitur untuk membuka gambar/foto, kita tidak harus membuatnya lagi, kita bisa langsung menggunakan aplikasi bawaan hp kita seperti gallery untuk membukanya.

Nah begini bahasa aliennya :

const val SELECT_PICTURE = 1
val galleryIntent = Intent(Intent.ACTION_PICK)
galleryIntent.setType(“image/*”)
startActivityForResult(Intent.createChooser(galleryIntent, “Select Picture”), SELECT_PICTURE)

SELECT_PICTURE adalah konstanta yang berfungsi untuk menyimpan data foto yang diambil nantinya. Intent yang digunakan disini hanya 1 parameter, yaitu ACTION.PICK yang digunakan untuk melakukan aksi pengambilan, yang dalam hal ini untuk mengambil gambar/foto. Kemudian setType(“image/*”) adalah untuk melihat semua data yang bertipe gambar/foto. Selanjutnya adalah menjalankan Intent dengan menggunakan galleryIntent sebagai aplikasi untuk pengambilan gambar/fotonya dan kemudian akan disimpan didalam SELECT_PICTURE.

Yah kurang lebih begitulah soal Intent. Dah ya, gue mau ganggu kucing gue dulu.

Apa itu Activity? Bagaimana Daur Hidupnya?

Hae gaes, kali ini gue bakalan bahas tentang Activity. Kalo di website resminya android developer, hanya dikatakan bahwa An activity is a single, focused thing that the user can do.. Udah, gitu aja penjelasannya🤣 Simple kan gaes?

Jadi gini, lebih simple nya Activity adalah komponen yang berinteraksi langsung dengan user. Masih kurang simple? Ibaratkan aplikasi itu adalah warnet, nah Activity itu adalah abang-abang warnetnya. Kira-kira gitu deh..

Activity bakalan ngatur tampilan mana yang akan ditunjukan ke user. Nah sama kayak manusia dan kucing, Activity juga memiliki daur hidupnya sendiri.

Jadi gini gaes, biar gampangnya kita bayangkan aja Whatsapp. Pada saat aplikasi kita click, aplikasinya akan menjalankan OnCreate dimana aplikasinya akan dibuka kelayar HP kalian, kemudian selanjutnya akan masuk ke OnStart dimana semua tampilan akan di load dan kemudian akan ke OnResume dimana aplikasinya udah di load, nah pada saat ini lu bisa liat semua chat-chat yang ada (itupun kalo ada yang ngechat lu😅).

Nah semisal ada nomor gak dikenal ngechat lu dan lu nya penasaran, pasti lu bakalan ngeliat fotonya kan? Nah pada saat lu klik fotonya, maka akan muncul kayak tampilan kecil ditengah layar, nah pada saat layarnya kebuka, tampilan chat-chat lu bakalan masuk ketahapan OnPause, karena lu gak bisa scroll chat lu ato ngeclick chat yang lain sebelum lu close fotonya.

Nah pada saat lu close foto yang lu buka tadi, maka bakalan masuk ke tahapan OnResume lagi. Lalu pada saat lu sedang buka WA, tiba-tiba ada yang ngeDM lu. Nah pas lu buka IG, aplikasi WA nya bakalan masuk ke tahap OnStop, kalo semisal lu buka WA lagi, maka akan kembali ke tahap OnRestart dan OnStart. Nahh, kalo misalnya lu udah tutup aplikasi WA nya dan lu close tab nya, maka aplikasinya akan ke tahap OnDestroy.

Pokoknya gitulah gaes, maap kalo belibet.. intinya gitu sih. Dahlah, gue pengen liat aktivitas kucing gue dulu..

Create a free website or blog at WordPress.com.

Up ↑

Design a site like this with WordPress.com
Get started