Dalam pengembangan aplikasi menggunakan AppSheet, sering kali kita ingin membuat dropdown dinamis yang menyaring pilihan berdasarkan input sebelumnya di form. Contohnya, ketika kita memilih vendor, maka kolom berikutnya akan menampilkan hanya barang dari vendor tersebut. Ini terdengar sederhana, namun bisa membingungkan saat mencoba mengaplikasikannya menggunakan Slice.
Masalah Umum: Slice Tidak Bekerja untuk Input yang Belum Disimpan
Banyak pengguna mencoba menyaring data dengan slice berdasarkan kolom yang baru dipilih di form, tapi hasilnya slice tersebut tidak bereaksi terhadap input tersebut. Ini karena AppSheet slice hanya membaca data yang sudah disimpan, bukan input sementara di form.
Mengapa Hal Ini Terjadi?
AppSheet memproses slice dari data tabel yang sudah ada di backend (misalnya Google Sheet). Saat kita mengisi form, nilai-nilai yang kita input belum dianggap sebagai bagian dari data tabel—karena belum disimpan. Maka, slice tidak bisa mengakses atau menyaring berdasarkan input tersebut.
Solusi Praktis: Gunakan Valid_If pada Kolom Referensi
Untuk membuat dropdown yang hanya menampilkan data tertentu berdasarkan pilihan sebelumnya, solusi yang lebih tepat adalah menggunakan rumus Valid_If
di kolom Ref.
Contoh Kasus:
Kita ingin membuat kolom Nama Barang yang hanya menampilkan barang dari vendor tertentu yang sudah dipilih di form.
Di kolom [Nama Barang]
, kita tambahkan rumus berikut di bagian Valid_If:
SELECT(Barang[Nama Barang], [Vendor] = [_THISROW].[Vendor])
Dengan rumus ini:
Barang[Nama Barang]
adalah daftar barang dari tabel Barang.[Vendor] = [_THISROW].[Vendor]
membatasi hanya barang dari vendor yang sama dengan yang dipilih di form.
Catatan penting: Pastikan kolom
[Vendor]
muncul lebih dulu di form sebelum[Nama Barang]
, agar AppSheet tahu vendor mana yang jadi acuan.
Kenapa Slice Tidak Bisa Menggantikan Valid_If?
- Slice hanya bekerja dengan data yang sudah masuk di tabel.
- Valid_If bisa merespons input real-time yang sedang diisi pengguna di form.
Jadi, slice tidak bisa “melihat” nilai yang baru saja kamu pilih sebelum kamu menekan tombol Save.
Kesimpulan
Jika kamu ingin membuat dropdown atau kolom referensi yang berubah secara dinamis berdasarkan input form, jangan gunakan slice. Gunakan fitur Valid_If
dengan SELECT()
yang bisa membaca konteks dari baris yang sedang diinput ([_THISROW]
).
Dengan pemahaman ini, kamu bisa membangun form interaktif dan pintar di AppSheet, seperti:
- Pilihan barang berdasarkan vendor
- Pilihan kota berdasarkan negara
- Pilihan kelas berdasarkan jurusan
Jika kamu tertarik untuk belajar lebih lanjut atau mencoba praktik langsung membuat aplikasi seperti ini, tim kami siap membantu kamu membuat aplikasi AppSheet yang lebih dinamis dan efisien! 😊
Comments