Study
SwiftUI

List & ForEach

Penjelasan

List adalah container yang menampilkan baris-baris data secara vertikal dengan gaya bawaan platform (mirip UITableView di iOS), lengkap dengan scrolling otomatis. Untuk menampilkan data dinamis dari array, kamu gabungkan List dengan ForEach — ForEach mengiterasi koleksi dan membuat satu View untuk tiap elemennya. Agar SwiftUI tahu cara membedakan tiap baris (untuk animasi insert/delete/reorder yang benar), setiap elemen harus punya identitas unik. Kalau tipe datamu sudah conform ke protocol Identifiable (biasanya lewat property id), ForEach(items) { item in ... } otomatis memakainya. Kalau belum, kamu bisa memberi key path manual: ForEach(items, id: \\.self).

Contoh Konsep

import SwiftUI

struct Buah: Identifiable {
    let id = UUID()
    let nama: String
}

struct DaftarBuahView: View {
    let buahList = [
        Buah(nama: "Apel"),
        Buah(nama: "Mangga"),
        Buah(nama: "Jeruk")
    ]

    var body: some View {
        List {
            ForEach(buahList) { buah in
                Text(buah.nama)
            }
        }
    }
}

Praktikum

Buat struct Kota: Identifiable dengan property nama: String, isi array berisi minimal 3 kota, lalu tampilkan dalam List menggunakan ForEach.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Hindari memakai UUID() baru setiap kali body dievaluasi ulang (mis. dibuat di dalam computed property) — itu membuat SwiftUI mengira semua baris berubah identitas dan animasinya jadi aneh. Simpan id sebagai property tetap saat objek dibuat.