Study
SwiftUI

@State untuk State Lokal

Penjelasan

Karena View di SwiftUI adalah struct (immutable), kamu tidak bisa langsung mengubah property biasa (var) di dalamnya dan berharap tampilan ikut berubah. Di sinilah @State berperan: property wrapper ini memberi tahu SwiftUI bahwa nilai tersebut adalah sumber kebenaran (source of truth) milik View itu sendiri, disimpan di luar struct View (dikelola oleh SwiftUI), dan setiap perubahan padanya akan memicu SwiftUI mengevaluasi ulang body. @State idealnya dipakai untuk state yang sederhana dan lokal — hanya relevan untuk satu View, misalnya status toggle, teks input sementara, atau counter. Konvensinya, property @State ditandai private karena tidak dimaksudkan diakses langsung dari luar View.

Contoh Konsep

import SwiftUI

struct CounterView: View {
    @State private var jumlah = 0

    var body: some View {
        VStack {
            Text("Jumlah: \(jumlah)")
                .font(.title)
            Button("Tambah") {
                jumlah += 1
            }
        }
    }
}

Praktikum

Tambahkan @State private var suka = false, tampilkan Text yang menunjukkan nilai suka, lalu buat Button("Toggle Suka") yang membalik nilainya.

Editor Latihan

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

Tips

Jangan pakai @State untuk data yang perlu dibagi ke banyak View atau bertahan lama (mis. data dari server) — untuk itu kamu butuh @Binding, @ObservedObject, atau @EnvironmentObject yang dibahas di topik berikutnya.