Study
SwiftUI

Binding Dua Arah dengan \$

Penjelasan

Beberapa komponen SwiftUI seperti TextField, Toggle, dan Slider tidak hanya menampilkan nilai — mereka juga perlu MENGUBAH nilai itu langsung saat pengguna berinteraksi. Untuk ini, komponen tersebut tidak menerima nilai biasa, melainkan Binding<T>, yaitu referensi baca-tulis ke sebuah sumber data. Setiap property yang dibungkus @State otomatis punya projected value yang diakses dengan awalan tanda dolar di depan nama variabelnya ($namaVariabel). Projected value inilah yang bertipe Binding<T> dan bisa diteruskan ke komponen seperti TextField. Perhatikan bedanya: judul (tanpa $) memberi NILAI saat ini (String), sedangkan $judul memberi BINDING (jalur baca-tulis) ke variabel itu.

Contoh Konsep

import SwiftUI

struct FormBindingView: View {
    @State private var nama = ""
    @State private var aktif = false

    var body: some View {
        VStack(spacing: 16) {
            TextField("Masukkan nama", text: $nama)
                .textFieldStyle(.roundedBorder)
            Toggle("Aktifkan notifikasi", isOn: $aktif)
            Text("Halo, \(nama.isEmpty ? "..." : nama)")
        }
        .padding()
    }
}

Praktikum

Buat @State private var kota = "", tambahkan TextField("Kota asal", text: ...) yang terikat ke kota, lalu tampilkan Text yang menunjukkan isi kota terkini.

Editor Latihan

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

Tips

Lupa menulis tanda $ di depan nama variabel saat mengisi parameter text:/isOn: adalah kesalahan paling umum pemula — kompiler akan menolak karena TextField butuh Binding<String>, bukan String biasa.