Activity dan Lifecycle


1. πŸ“– Pengertian Activity

https://images.openai.com/static-rsc-4/U7gUGVN8fRLCY8O2zWx1otiEM544NFmSJFs0BU34feOC9sGFcUZMhS7FMVeODN1Jc7nA6THePNDLVjaBeo6vtSQGVEmfWRXygg3k0-KyPN5LDjJRYacC-HA9936Kt1oAghc-ZDkWNwbQ4_1li6ErckoY9fhDDISIJxyBdRd0UbbeyM6-7ncB0-mEpMOEy5zM?purpose=fullsize
https://images.openai.com/static-rsc-4/3sOShHSY2XvwGRj0PaFYyBtF1YOId-U0Zx1JOQDF2GltqXwpBQxTKZqqyQCHdNWxgZgS-ASJ3m1S_Y6FtNNMpaD3YpA1MR-aFRhzVxcsOOIfIjFOYEae_edFya1nC7AddWX2_bOjYh-Ls_EeHBaFH9EaiSU1mJpigsNHeEwO5i9cT-SpuHvPzF0gldNl5cFj?purpose=fullsize
https://images.openai.com/static-rsc-4/sFRuqwvMWNKu0_V5MZ_TZb9qURgbcR3yr1Aubch7AXJNv_52JKwrJ-P8uaKKm33b4Vay3Fl8uwlx3ayhX0v3nyPvBqlHoGufMznJi_etErV2K1nJyD6IUlbEZFQPmx3NQjnEutVUMyC3xv_rXdYA4ag0XzvDi2QaKl4NBgIBDbGDnhLdWP9gAJFMeP-zofp9?purpose=fullsize

7

πŸ” Penjelasan

Activity adalah komponen utama dalam aplikasi Android yang merepresentasikan satu layar (screen) yang dapat berinteraksi dengan pengguna.

🧠 Narasi

Dalam sebuah aplikasi mobile, setiap tampilan yang dilihat pengguna biasanya direpresentasikan oleh satu Activity. Misalnya:

  • Halaman login
  • Halaman dashboard
  • Halaman profil

Setiap halaman tersebut adalah Activity yang berbeda namun saling terhubung.


2. 🧱 Peran Activity dalam Aplikasi

https://images.openai.com/static-rsc-4/oQYSbcLSqgTjUjcpOZqrXYhG2-4RXSam9QDeADwZcuOxosOhvOINpJrLtC32h-wqWTRHkLxW9NsU0pEM4YtmCxyMQp8hbNwtKlMYw-bwfIKi0IoIrEzdzv5W4raMnGEGoWW0vZX3PMDrWH0TybKH1PFlzukRdhISH8GCyGB6PtTQ_XGIT1E0nY8l4X95GSGB?purpose=fullsize
https://images.openai.com/static-rsc-4/3KMuQG7crazGfbDUHiohKHAUwpXs0n3aG7dljw5VE3d48weAz2cf7CueyNORU__mlQmXCv6a4k-EKyC7pCeFAEgVmZfVjnrDVkDQ1Kg48Ax4K6tDwdP-1fipstwJmY9WvIT66SN8sRxaowDT1yFE1t4MeLKfo8nIJl4oocIr5RGLTEt8LCRFopvh0nNeuGih?purpose=fullsize
https://images.openai.com/static-rsc-4/LqClUT7xpKTSuUDxdyKo3T3bOQI7iuKiAwOrhJZijU7JIExPVJKWwUit_uUXXr-ivlxCbseiGWZOZ0sTF-rYf8HUH8oTqLGYs54D2fi8q2AaGMTSjCxvXdF5phAZ3J-ifXbrisEuvqPe2vmEXDroDkl1fnajaNTKZQ0FbIvnIVsZim4NjoaUyQaGqmmuuVDu?purpose=fullsize

7

πŸ” Fungsi Activity

  • Menampilkan UI ke pengguna
  • Menerima input pengguna
  • Mengelola interaksi pengguna
  • Mengontrol alur navigasi aplikasi

🧠 Narasi

Activity bertindak sebagai penghubung antara user interface dan logika aplikasi. Semua interaksi pengguna akan diproses melalui Activity.


3. βš™οΈ Struktur Dasar Activity (Kotlin)

https://images.openai.com/static-rsc-4/hHeOxr80HmQOf71RHJszimGJ8or04Npl_7PTAxOWnZKgm11mUIyNB_ZnSF8HDco2WbxfihHXa2nRdsAFtQoegGzWyxFTmKAK-znzdTVr5PnUF_UxsodB1UuJSyIc2KJ4fxyBqiqTWsVaIYhXGjfwpyKleHfi288HFM7r8oKLemZuuKfJx3QCS9t24MVCSIh0?purpose=fullsize
https://images.openai.com/static-rsc-4/skxVNDkH38TcMJ1rVZlJbIvCSnT2M9qCQV43xdexs-tOfCcbHVdXSIXQ0zgo0KFdy2gIYMyVu3wJBy-UQOWwnS6Vd9RxMHN84H88LicdQbnvkMiGPVTYj3v0u-yaMj_RBIyvekalU9mKBp4YiXdjh9wevL8l6fAsqKm4VieiiskflypnHxK_ddyxoxf04Nv5?purpose=fullsize
https://images.openai.com/static-rsc-4/1U-BKsSu5rlRAQ_9YTYiqDdODoMxgFQWmWLAbo_npsjo-rjXyfrl8e8dE1WRGugCJgQ7eNNO_xdY3Sm8W_JCbQzYwqUJ3SZZLjrP6WHhfwtYreorNfuAEsz_VDIiAI2HMj6zeRTz-MJt_ebkA8HhsOacEXjR5c2iiUvPQMNkzgRRCfuK5qufXH0GJt3fftCm?purpose=fullsize

7

πŸ” Contoh Kode

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

πŸ“Œ Penjelasan

  • AppCompatActivity β†’ kelas dasar Activity
  • onCreate() β†’ dipanggil saat Activity dibuat
  • setContentView() β†’ menentukan layout

🧠 Narasi

Activity dimulai dari method onCreate() yang berfungsi untuk menginisialisasi tampilan dan data awal.


4. πŸ”„ Lifecycle Activity

https://images.openai.com/static-rsc-4/hHeOxr80HmQOf71RHJszimGJ8or04Npl_7PTAxOWnZKgm11mUIyNB_ZnSF8HDco2WbxfihHXa2nRdsAFtQoegGzWyxFTmKAK-znzdTVr5PnUF_UxsodB1UuJSyIc2KJ4fxyBqiqTWsVaIYhXGjfwpyKleHfi288HFM7r8oKLemZuuKfJx3QCS9t24MVCSIh0?purpose=fullsize
https://images.openai.com/static-rsc-4/5M3fjU7SGNpSRbGHLeeUoBDVmhZLWUqKsvRSwc_88WvPbuLW5fc_um8x-ebEXSlKV6Vwk-Ylm_7loSbdu_b-wYiRUiPTUZewJQaIEaabMZ69EsP4eXsg3piJm-X_g7wpsOufWkKCjt8-BboBlLJYjG6XMiXro59UAUB1zDvmqPxwpmRdQJTtlB-dtoupIcYN?purpose=fullsize
https://images.openai.com/static-rsc-4/txKk0SEOWdKFjWJQTsbEg1mJzMMKCcDcjvoOt4eJ94_uNrjvQEPcu8NyJtzcgGKsXcP1o3W6IrxO5Uh02MDocbYsjO2Fel8vtoxEO2g3dAINEEqMb4xul_cg2DbVlE6P2A08GnuqE-xlPbx3tlwxsWqwRNVC8GEwIBge7lkdPL7Mr_vGles-fCXB8c3jpgix?purpose=fullsize

7

πŸ” Tahapan Lifecycle

MethodFungsi
onCreate()Inisialisasi awal
onStart()Activity mulai terlihat
onResume()Activity aktif (interaksi)
onPause()Activity sebagian tertutup
onStop()Activity tidak terlihat
onDestroy()Activity dihancurkan

🧠 Narasi

Lifecycle Activity menggambarkan siklus hidup Activity dari dibuat hingga dihancurkan. Pemahaman lifecycle sangat penting untuk mengelola resource dan menjaga performa aplikasi.


5. πŸ“Š Penjelasan Detail Lifecycle

πŸ”Ή onCreate()

  • Dipanggil saat Activity pertama kali dibuat
  • Digunakan untuk inisialisasi UI dan data

πŸ”Ή onStart()

  • Activity mulai terlihat oleh pengguna

πŸ”Ή onResume()

  • Activity siap digunakan (aktif)

πŸ”Ή onPause()

  • Activity kehilangan fokus (misalnya ada notifikasi)

πŸ”Ή onStop()

  • Activity tidak terlihat lagi

πŸ”Ή onDestroy()

  • Activity dihapus dari memori

🧠 Narasi

Setiap metode lifecycle memiliki peran penting dalam mengatur bagaimana aplikasi berperilaku saat berpindah antar layar atau saat terjadi gangguan (misalnya panggilan masuk).


6. πŸ”€ Intent dan Navigasi Antar Activity

https://images.openai.com/static-rsc-4/Q18cfo0sJ64mdXW5SNypo_eyp7QGxDA6LOHE0g1GLpJ1mN4irBQdGwe4XSZNYkQFTmQjqY6Ehn2rYl045QIMgxnzC1mNxb2cVF1Jo5yjKbCoJTnHhVVJnqOY9bHn6tFP_xYHbSEXcjcFpoJDYlC7o_AlawegGzHywqISpHJ7qBU7rlw19agD71zJPSO0J4Cg?purpose=fullsize
https://images.openai.com/static-rsc-4/0oXRqLVpVkDhyW4lJEbd2fza9vHkyUszHTvr7C0rUf0BABuonxSAqqbair5hny3sZrZfSE7Iz6EKQHSmJXOlsl4QfprZ_vz2iPdDKEa-B5KdK2h6nsPpeNE-TFJzeJFJZqqqGwP4I8sloyZLvWWBapbPvoWOZHbBNVH9Fh-3jDcrFEOpoaJVgFX7gqk7yxeK?purpose=fullsize
https://images.openai.com/static-rsc-4/WUJQ6WsxSl_S--NBMtqPK6SSZk2nUk6FnD7dZtb_GCiu7uTT3R3d3QFTceGjghoa9f2QZz_Oyh2sovUpZXoKHk_jB7TI0Cz9o8r7mD5rEQuM13sGNc3nMtXyMM14ZQ-pRI_ttghIdRj8YsAYRXAOHXJtS8S7p7hOFKjGpDDf9EP07tK6UVCU7PvtuOxVHcks?purpose=fullsize

7

πŸ” Jenis Intent

  • Explicit Intent β†’ antar Activity dalam aplikasi
  • Implicit Intent β†’ memanggil aplikasi lain

πŸ“Œ Contoh

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

🧠 Narasi

Intent digunakan untuk berpindah dari satu Activity ke Activity lain. Ini adalah dasar dari navigasi dalam aplikasi Android.


7. πŸ“¦ Pengiriman Data Antar Activity

https://images.openai.com/static-rsc-4/sx8Le8ib0BmJWoRmL20Ape2e7zwH9aBu7tCvQZshIvZ1agG2Qzy7MrrlHztMgSAHhN4O1DG23GnTNUTWQBUbm218T3Yw6_idHw1kZKSny2XNZanGUSf93jLpzuoWsXmVu4nPvxnrw6cmtvAQMsZx2xeaPDqEZf5P40MSRVfw2cmVrGN32pfVDG8MmeP8hLui?purpose=fullsize
https://images.openai.com/static-rsc-4/b6i2xP5UUq7JAiRsu7X6qjURcKSXC7NLusKMmfUO-riLdFYCtU1GYmrjJyhEQYwaBiQR5cQ7xeJlNZ2jiz7J6A1uB-sv3gYDRkcH-dX_4-7Epn7BdfrXxnx8Ll8iMToCTn9WpMmlFb-LxJ5I_9nqcIFitBFP8nnBEjaBE46j5fE2bt5nFDZ25vO9NRGPADXv?purpose=fullsize
https://images.openai.com/static-rsc-4/WUJQ6WsxSl_S--NBMtqPK6SSZk2nUk6FnD7dZtb_GCiu7uTT3R3d3QFTceGjghoa9f2QZz_Oyh2sovUpZXoKHk_jB7TI0Cz9o8r7mD5rEQuM13sGNc3nMtXyMM14ZQ-pRI_ttghIdRj8YsAYRXAOHXJtS8S7p7hOFKjGpDDf9EP07tK6UVCU7PvtuOxVHcks?purpose=fullsize

5

πŸ” Contoh Kirim Data

intent.putExtra("nama", "Budi")

πŸ” Ambil Data

val nama = intent.getStringExtra("nama")

🧠 Narasi

Data dapat dikirim antar Activity menggunakan Intent dengan format key-value.


8. πŸ”™ Back Stack Activity

https://images.openai.com/static-rsc-4/b58Q6UVkYPb_KiuB3XLQ_MlpifDD01FNQvBkE1Oq3LO28NoM3QxLn-Cx6jidPdO8ySIu_nx3jEYnX-XvAzIr3sPx9zwaOBDL2k8hY1d7hU87Q67Ivin70Dl6-MRDzVz1s3w1fSrPcA8rlIQJA4bN46ad1zaKFmSiZczO5_Sqn-TBLu_5UXyaX7Aq2AnKDS6D?purpose=fullsize
https://images.openai.com/static-rsc-4/KcVsFurGdaj00TsDXkWFLITPpGOKCggmy-OcinK6ZzgCjwUjj7zTf3Ekb0XRHwiy10jAwymPqVlRVoKti4gJ5bW64jsF208ADb2ID7nhPhYcGqF-cntzjDPwnfkVdDmXyWnl4FAZGEwi-DzwiJPGl30_1KlwazTNpGn9tPiSLk_XpJroOlaleAUyXsBgmQY1?purpose=fullsize
https://images.openai.com/static-rsc-4/ujVgSjkrPrlSPufFzeEsF3nJynmki6L-BNWA_-BaJNM_7Pg-nWeHhod-4bEQJBcZ41Rg_TE-mqiY3m3zrbC9JAypoA7xxrcBe9Dd3od2j37ZpW7q-U5OCc_Cyvt-5x6OEq7r7Qu3qSCePxOYPFYpExfW43UIcQy_95_fp0eSSXDGzfaFhnvF5tloVYnsPcb2?purpose=fullsize

7

πŸ” Penjelasan

Back Stack adalah tumpukan Activity yang menyimpan riwayat navigasi pengguna.

🧠 Narasi

Setiap Activity yang dibuka akan masuk ke dalam stack. Saat pengguna menekan tombol β€œBack”, Activity terakhir akan ditutup.


9. ⚠️ Permasalahan Umum Lifecycle

https://images.openai.com/static-rsc-4/oQYSbcLSqgTjUjcpOZqrXYhG2-4RXSam9QDeADwZcuOxosOhvOINpJrLtC32h-wqWTRHkLxW9NsU0pEM4YtmCxyMQp8hbNwtKlMYw-bwfIKi0IoIrEzdzv5W4raMnGEGoWW0vZX3PMDrWH0TybKH1PFlzukRdhISH8GCyGB6PtTQ_XGIT1E0nY8l4X95GSGB?purpose=fullsize
https://images.openai.com/static-rsc-4/4HsYnmjEJ9bmqRatCVEQes66Fse5oZDVYQo7zJO8Vp6Zrx2BG3F87TL8qvQOV-0mdY9hkWdsYbnolq7qA9TxBA0uvMf28HmQiQll6f_QUlOsDBjYORM9oyBjMjWufYfNErQ4xH-lu3Rjlo1PDYuoTWBOEwu05NVylOpUVXApKfkr1MU1hMXgcSdBW3B4YYO-?purpose=fullsize
https://images.openai.com/static-rsc-4/fNznJ0_Qne-hvtv4403kXpCu0E5apg8Y7uQF_dKOFA-eFm9ZfICb0S9ExiIA5pMGkl-l0JjWSHkIBQRAVKvkg51tknmsi3yDf7Gc3SS8fcg8NH-rTAESnMSPKL5BurYvdYftoi_I5Gb-MXClh7jnKYVFS59zhwny4PJBmciW3aUggey2MdT2ubNXHSN--fM7?purpose=fullsize

6

πŸ” Masalah Umum

  • Memory leak
  • Activity restart saat rotasi layar
  • Data hilang saat lifecycle berubah

🧠 Narasi

Kesalahan dalam menangani lifecycle dapat menyebabkan aplikasi crash atau kehilangan data.


10. πŸ’‘ Best Practice Penggunaan Activity

πŸ” Tips

  • Gunakan lifecycle dengan benar
  • Simpan state menggunakan onSaveInstanceState()
  • Hindari proses berat di onCreate()
  • Gunakan ViewModel untuk data

🧠 Narasi

Mengikuti best practice akan membantu membuat aplikasi lebih stabil, efisien, dan mudah dikembangkan.


πŸ“Œ Kesimpulan

Activity adalah komponen utama dalam aplikasi Android yang mengatur tampilan dan interaksi pengguna. Lifecycle Activity membantu mengelola siklus hidup aplikasi secara efisien. Pemahaman yang baik tentang Activity dan lifecycle sangat penting untuk membangun aplikasi yang stabil dan profesional.


🎯 Latihan / Tugas

  1. Buat 2 Activity dan navigasi antar keduanya
  2. Kirim data dari Activity A ke B
  3. Implementasikan lifecycle log (Log.d)
  4. Uji perubahan lifecycle saat rotasi layar