Mengapa Desain Form Itu Penting
Form input adalah gerbang masuknya semua data ke dalam aplikasi AppSheet Anda. Form yang dirancang buruk terlalu banyak field, tidak ada validasi, urutan yang membingungkan akan menghasilkan data yang kotor, tidak konsisten, dan sulit dianalisis. Sebaliknya, form yang baik membuat tim Anda bisa input data dengan cepat, akurat, dan minim kesalahan.
Prinsip utama form input yang baik di AppSheet adalah: buat sistem yang membantu pengguna input data dengan benar, bukan hanya sistem yang menerima input apa saja.
❌ Form yang Buruk
- Semua field bertipe “Text”
- Tidak ada validasi semua input diterima
- Tanggal diisi bebas: “2 Jan”, “02/01”, “Januari 2”
- Nama produk diketik manual rawan typo
- 30+ field ditampilkan sekaligus
- Tidak ada field yang otomatis terisi
✅ Form yang Baik
- Setiap field punya tipe yang tepat
- Validasi mencegah input yang tidak valid
- Tanggal dipilih dari date picker selalu konsisten
- Nama produk dipilih dari dropdown referensi
- Field kondisional hanya muncul saat relevan
- Tanggal & user otomatis terisi saat form dibuka
Langkah 1 — Pilih Tipe Kolom yang Tepat
Fondasi form yang baik adalah tipe kolom yang tepat. AppSheet mengenali tipe kolom dari Google Sheets secara otomatis, tapi sering kali perlu disesuaikan manual. Berikut tipe-tipe kolom paling penting dan kapan menggunakannya:
- Date / DateTime, Untuk tanggal dan waktu. Tampil sebagai date picker tidak bisa salah format.
- Number / Decimal, Untuk angka. Mencegah input huruf di field yang seharusnya numerik.
- Enum / EnumList, Pilihan dari daftar tetap. Cocok untuk Status, Kategori, atau Jenis.
- Yes/No (Boolean), Toggle Ya/Tidak. Lebih intuitif dari mengetik “Ya” atau “Tidak” manual.
- Image, Untuk foto langsung buka kamera atau galeri HP.
- LatLong, Koordinat GPS otomatis dari lokasi pengguna saat ini.
- Signature, Tanda tangan digital langsung di layar HP.
- Email, Validasi format email otomatis tidak bisa input teks sembarangan.
- Phone, Format nomor telepon dengan tombol telepon otomatis di tampilan detail.
- Ref, Referensi ke baris di tabel lain. Fondasi dropdown dinamis.
Cara Mengubah Tipe Kolom
- Masuk ke Data → Columns di AppSheet Editor. Di AppSheet Editor → tab Data → pilih tabel yang ingin diubah → klik tab Columns. Di sini Anda akan melihat semua kolom beserta tipe datanya. Klik nama kolom untuk membuka pengaturan detail → ubah nilai di kolom Type sesuai tipe yang diinginkan → klik Save.
💡 Tip: Klik Regenerate Schema setelah mengubah banyak tipe kolom untuk memastikan AppSheet membaca ulang struktur data terbaru dari Google Sheets.
Langkah 2 — Required Field & Initial Value
Required: Field yang Wajib Diisi, Field Required di AppSheet memastikan pengguna tidak bisa menyimpan data jika field tersebut masih kosong. Sangat penting untuk field-field kunci seperti Tanggal, Nama, atau Status.
Cara Mengaktifkan Required
- Di Pengaturan Kolom, Aktifkan Toggle “Required”,
Data → Columns → klik kolom yang diinginkan → cari opsi REQUIRE? → aktifkan togglenya. Untuk Required yang kondisional (wajib diisi hanya dalam situasi tertentu), Anda bisa mengisi ekspresi di field Required alih-alih sekadar toggle.
// Required kondisional — wajib diisi hanya jika Status = “Selesai”
[Status] = “Selesai”// Wajib diisi hanya jika ada kerusakan
[Ada_Kerusakan] = TRUE
Initial Value: Field yang Otomatis Terisi, Initial Value adalah nilai yang otomatis mengisi field saat form pertama kali dibuka pengguna tidak perlu mengisinya manual tapi masih bisa mengubahnya jika perlu.
Ekspresi Initial Value yang Paling Berguna
- Isi Kolom “Initial Value” dengan Ekspresi AppSheet,
// Tanggal hari ini (untuk kolom Date)
TODAY()// Tanggal dan jam saat ini (untuk kolom DateTime)
NOW()// Email pengguna yang sedang login
USEREMAIL()// Nama pengguna yang sedang login
USERNAME()// ID unik otomatis (untuk kolom Key/ID)
UNIQUEID()// Nomor urut otomatis (untuk nomor Invoice/PO)
CONCATENATE(“INV-“, TEXT(TODAY(), “YYYYMM”), “-“, UNIQUEID())
💡 Tip: Gunakan kombinasi Initial Value + Read Only untuk field yang tidak boleh diubah pengguna misalnya kolom “Dibuat Oleh” yang otomatis terisi email pengguna dan tidak bisa diedit.
Langkah 3 Validasi dengan Valid_If
Valid_If adalah ekspresi kondisi di AppSheet yang menentukan apakah nilai yang diinput pengguna dianggap valid. Jika kondisi tidak terpenuhi, AppSheet menampilkan pesan error merah dan mencegah penyimpanan data.
Cara Mengatur Valid_If
- Data → Columns → Klik Kolom → Isi Field “Valid If”
Di pengaturan kolom, scroll ke bawah hingga menemukan field Valid If → isi dengan ekspresi kondisi yang harus terpenuhi agar nilai dianggap valid.
Contoh Valid_If yang Paling Umum Digunakan
// Nilai harus lebih dari 0
[_THIS] > 0// Nilai tidak boleh melebihi stok yang tersedia
[_THIS] <= [Stok_Tersedia]// Tanggal tidak boleh di masa lampau
[_THIS] >= TODAY()// Format nomor HP Indonesia (diawali 08 atau +62)
OR(
LEFT([_THIS], 2) = “08”,
LEFT([_THIS], 3) = “+62”
)// Nilai harus ada dalam daftar yang diizinkan
IN([_THIS], {“Aktif”, “Tidak Aktif”, “Pending”})
⚠️ Catatan: [_THIS] adalah placeholder yang merujuk pada nilai yang sedang diinput pengguna di field tersebut. Selalu gunakan [_THIS] (bukan nama kolomnya) di dalam ekspresi Valid_If.
💡 Tambahkan Pesan Error yang Jelas: Di field Invalid value error (tepat di bawah Valid_If), isi dengan pesan yang membantu pengguna memahami apa yang salah. Contoh: “Jumlah tidak boleh melebihi stok tersedia” atau “Nomor HP harus diawali 08 atau +62”.
Langkah 4 — Dropdown Dinamis dari Tabel Referensi
Alih-alih membiarkan pengguna mengetik nama produk, kota, atau kategori secara bebas (yang pasti menghasilkan ketidakkonsistenan), gunakan dropdown yang datanya diambil dari tabel referensi. Ini memastikan setiap input konsisten dan bisa dihubungkan ke data lain.
Dropdown Sederhana dari Tabel Referensi
Cara Membuat,
Isi Valid_If dengan Referensi ke Kolom Tabel Lain
Misalnya Anda punya tabel “Produk” dengan kolom “Nama_Produk”, dan ingin kolom “Produk_Dipilih” di form transaksi menampilkan dropdown dari tabel tersebut:
// Valid_If untuk kolom “Produk_Dipilih”
Produk[Nama_Produk]// Atau menggunakan Ref — ubah tipe kolom menjadi Ref
// dan set Referenced Table ke tabel “Produk”
// AppSheet akan otomatis tampilkan sebagai dropdown
💡 Rekomendasi: Untuk relasi antar tabel yang lebih formal, gunakan tipe kolom Ref alih-alih Valid_If biasa. Tipe Ref memungkinkan AppSheet mengenali hubungan antar tabel dan menampilkan data terkait secara otomatis (Related Records).
Dropdown Bertingkat (Dependent Dropdown), Dropdown bertingkat adalah ketika pilihan di dropdown kedua bergantung pada apa yang dipilih di dropdown pertama. Contoh klasik: pilih Provinsi dulu, baru Kota yang muncul menyesuaikan.
Cara Membuat Dropdown Bertingkat
- Gunakan SELECT() dengan Filter Kondisi di Valid_If
Buat tabel referensi “Wilayah” dengan dua kolom: “Provinsi” dan “Kota”. Lalu di form utama:
// Valid_If untuk kolom “Provinsi” — dropdown pertama
Wilayah[Provinsi]// Valid_If untuk kolom “Kota” — dropdown kedua (bergantung pada Provinsi)
SELECT(Wilayah[Kota], [Provinsi] = [_THISROW].[Provinsi])
💡 Penjelasan: [_THISROW] merujuk pada baris yang sedang diedit. Ekspresi di atas berarti: “Tampilkan daftar Kota dari tabel Wilayah, tapi hanya yang Provinsinya sama dengan Provinsi yang sudah dipilih di baris ini.”
Langkah 5 — Field Kondisional dengan Show_If
Show_If memungkinkan Anda menampilkan atau menyembunyikan field berdasarkan kondisi tertentu. Ini adalah kunci membuat form yang tidak membebani pengguna dengan field yang tidak relevan.
Cara Mengatur Show_If
- Data → Columns → Klik Kolom → Isi Field “Show If”
// Tampilkan “Foto Kerusakan” hanya jika “Ada Kerusakan?” = Ya
[Ada_Kerusakan] = TRUE// Tampilkan “Alasan Penolakan” hanya jika Status = “Ditolak”
[Status] = “Ditolak”// Tampilkan field hanya untuk role tertentu (misal: hanya Manager)
IN(USEREMAIL(), Managers[Email])// Tampilkan “Diskon %” hanya jika ada tanda centang “Berikan Diskon”
[Berikan_Diskon] = TRUE
⚠️ Hati-hati dengan Required + Show_If: Jika sebuah field sekaligus Required dan punya Show_If, pastikan kondisi Required dan Show_If konsisten. Field yang disembunyikan (Show_If = FALSE) tapi masih Required bisa membuat pengguna tidak bisa menyimpan form mereka tidak bisa mengisi field yang tidak terlihat.
Langkah 6 — Mengatur Urutan & Tampilan Field di Form
Urutan field di form mengikuti urutan kolom di Google Sheets secara default. Tapi Anda bisa mengatur urutan tampilan di AppSheet tanpa harus mengubah urutan di Sheets.
Cara Mengatur Urutan di Form View
- UX → Views → Pilih Form View → Atur Column Order
Di AppSheet Editor → tab UX → Views → pilih View dengan tipe form → di bagian Column order, drag-and-drop kolom ke urutan yang diinginkan. Anda juga bisa menyembunyikan kolom tertentu dari tampilan form dengan menghapus centangnya.
💡 Prinsip Urutan Form yang Baik: Urutkan dari informasi umum ke spesifik. Contoh untuk form transaksi: Tanggal → Nama Pelanggan → Produk → Jumlah → Harga → Catatan → Foto. Field yang otomatis terisi (seperti ID dan tanggal) sebaiknya diletakkan di paling atas atau disembunyikan dari form.
Tips & Kesalahan Umum yang Perlu Dihindari
✅ Tips Membuat Form yang Efektif
- Maksimalkan Initial Value: Setiap field yang bisa diisi otomatis (tanggal, user, ID) sebaiknya menggunakan Initial Value. Semakin sedikit yang harus diketik pengguna, semakin kecil peluang kesalahan input.
- Gunakan Enum untuk pilihan terbatas: Jika ada kemungkinan jawaban yang terbatas (Status, Kategori, Jenis), selalu gunakan Enum atau dropdown jangan biarkan pengguna mengetik bebas.
- Test form di HP sebelum deploy: Form yang terlihat bagus di preview desktop bisa terasa berat dan membingungkan di HP. Selalu uji dari perangkat yang sama dengan yang akan digunakan tim lapangan.
Kesalahan yang Sering Terjadi
- Semua kolom dibiarkan bertipe “Text”: Ini adalah kesalahan paling umum dan paling berdampak. Tanggal yang bertipe Text bisa diisi “besok”, “tgl 5”, atau “05-07-2026” tidak ada yang konsisten dan tidak bisa dihitung.
- Dropdown dari Enum yang tidak diupdate: Jika pilihan Enum di AppSheet berbeda dengan realita di lapangan, pengguna akan pilih yang “paling mendekati” data jadi tidak akurat. Selalu update daftar Enum saat ada perubahan.
- Show_If yang terlalu kompleks: Form dengan terlalu banyak kondisi Show_If bisa lambat dan membingungkan. Jika ada lebih dari 5–6 field kondisional, pertimbangkan untuk memecah menjadi dua form terpisah.
- Valid_If terlalu ketat tanpa pesan error yang jelas: Validasi yang memblokir pengguna tanpa menjelaskan kenapa akan membuat frustrasi. Selalu isi kolom “Invalid value error” dengan pesan yang actionable.
📖 Artikel Tutorial AppSheet Lainnya
→ Tutorial AppSheet: Cara Membuat Dashboard & Laporan untuk Bisnis
→ Otomatisasi Bisnis dengan AppSheet Tanpa AI yang Rumit
→ Jasa Pembuatan AppSheet Profesional untuk Bisnis Anda
→ Google Workspace + AppSheet: Kombinasi Terbaik untuk Bisnis



Comments