1. π Pengertian Fragment
8
π Penjelasan
Fragment adalah komponen UI modular dalam Android yang merepresentasikan bagian dari tampilan (UI) dalam sebuah Activity. Fragment tidak dapat berdiri sendiri, melainkan harus berada di dalam Activity.
π§ Narasi
Jika Activity adalah satu layar penuh, maka Fragment adalah bagian-bagian kecil dari layar tersebut. Dengan Fragment, pengembang dapat membuat UI yang lebih fleksibel dan reusable, terutama untuk perangkat dengan ukuran layar berbeda seperti smartphone dan tablet.
2. π§© Perbedaan Fragment dan Activity
9
π Perbandingan
| Aspek | Activity | Fragment |
|---|---|---|
| Peran | Layar utama | Bagian dari layar |
| Lifecycle | Mandiri | Bergantung Activity |
| Reusability | Terbatas | Tinggi |
| Fleksibilitas | Rendah | Tinggi |
π§ Narasi
Fragment memberikan fleksibilitas lebih dibandingkan Activity karena dapat digunakan kembali dalam berbagai tampilan dan konfigurasi layar.
3. π§± Struktur Dasar Fragment
7
π Contoh Kode Fragment
class FirstFragment : Fragment(R.layout.fragment_first) {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
}
}
π Penjelasan
Fragment()β kelas dasar fragmentR.layout.fragment_firstβ layout fragmentonViewCreated()β inisialisasi UI
π§ Narasi
Fragment memiliki struktur mirip Activity, tetapi lebih ringan dan fokus pada bagian tertentu dari UI.
4. π Lifecycle Fragment
8
π Tahapan Lifecycle
| Method | Fungsi |
|---|---|
| onAttach() | Fragment terhubung ke Activity |
| onCreate() | Inisialisasi awal |
| onCreateView() | Membuat UI Fragment |
| onViewCreated() | UI siap digunakan |
| onDestroyView() | UI dihancurkan |
| onDetach() | Fragment dilepas dari Activity |
π§ Narasi
Lifecycle Fragment lebih kompleks karena bergantung pada Activity. Pemahaman lifecycle ini penting untuk menghindari bug dan memory leak.
5. π Menambahkan Fragment ke Activity
7
π Cara Menambahkan Fragment
Secara statis (XML)
<fragment
android:name="com.example.FirstFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
Secara dinamis (Kotlin)
supportFragmentManager.beginTransaction()
.replace(R.id.container, FirstFragment())
.commit()
π§ Narasi
Fragment dapat ditambahkan secara statis atau dinamis. Pendekatan dinamis lebih fleksibel karena memungkinkan perubahan UI saat runtime.
6. π‘ Komunikasi Antar Fragment
7
π Metode Komunikasi
- Melalui Activity (Mediator)
- Menggunakan Bundle
- Menggunakan ViewModel
π§ Narasi
Fragment tidak berkomunikasi langsung satu sama lain, melainkan melalui Activity atau mekanisme lain seperti ViewModel agar lebih terstruktur.
7. π§ Navigation dalam Android
7
π Penjelasan
Navigation adalah mekanisme untuk berpindah antar layar atau Fragment dalam aplikasi.
π Komponen Navigation
- NavHost β container fragment
- NavController β pengatur navigasi
- Navigation Graph β peta navigasi
π§ Narasi
Navigation Component dari Android Jetpack mempermudah pengelolaan navigasi dengan cara yang lebih terstruktur dan aman.
8. πΊοΈ Navigation Graph
8
π Contoh XML Navigation
<navigation>
<fragment android:id="@+id/firstFragment"/>
<fragment android:id="@+id/secondFragment"/>
</navigation>
π§ Narasi
Navigation Graph berfungsi sebagai peta alur navigasi aplikasi, sehingga memudahkan pengelolaan perpindahan antar layar.
9. π Back Stack pada Fragment
7
π Penjelasan
Back Stack menyimpan riwayat Fragment yang telah dibuka.
π Contoh
.addToBackStack(null)
π§ Narasi
Dengan Back Stack, pengguna dapat kembali ke Fragment sebelumnya menggunakan tombol back.
10. β οΈ Permasalahan Umum Fragment & Navigation
7
π Masalah
- Fragment overlap
- Navigation crash
- Memory leak
- Lifecycle tidak sinkron
π§ Narasi
Kesalahan dalam pengelolaan Fragment dan Navigation dapat menyebabkan aplikasi tidak stabil.
11. π‘ Best Practice
π Tips
- Gunakan Navigation Component
- Hindari fragment terlalu kompleks
- Gunakan ViewModel untuk data
- Kelola lifecycle dengan benar
π§ Narasi
Dengan mengikuti best practice, aplikasi akan lebih mudah dikembangkan, scalable, dan minim bug.
π Kesimpulan
Fragment dan Navigation adalah komponen penting dalam pengembangan aplikasi Android modern. Fragment memungkinkan UI yang modular dan fleksibel, sedangkan Navigation membantu mengatur alur perpindahan antar layar secara terstruktur.
π― Latihan / Tugas
- Buat 2 Fragment dalam 1 Activity
- Implementasikan navigasi antar Fragment
- Gunakan Navigation Graph
- Implementasikan Back Stack