Belajar Form HTML: Tag, Input, Textarea & Button
Form HTML adalah cara untuk mengumpulkan data dari pengguna melalui input, textarea, tombol, dan elemen interaktif lainnya. Form adalah jembatan komunikasi antara pengguna dan aplikasi web kita. Setiap hari kita gunakan form saat login, mendaftar, atau mengisi survey!
🎫 Form seperti formulir
aplikasi beasiswa di sekolah:
• Kolom nama, alamat, nilai = Input, Textarea, Select
• Kotak untuk diisi data = <input>, <textarea>
• Label "Nama:", "Alamat:" = <label>
• Tombol "Kirim Formulir" = <button> atau submit
• Data yang dikirim = akan diproses oleh server/JavaScript
Form HTML punya 5 tag penting yang perlu kamu ketahui. Mari pelajari satu per satu:
Fungsi:
Wadah utama yang membungkus SEMUA elemen form
Analogi:
Seperti amplop yang menampung surat (data)
Fungsi:
Teks penjelasan untuk setiap input (LABEL/JUDUL)
Analogi:
Seperti tulisan "Nama:" atau "Email:" di formulir
Fungsi:
Kotak tempat PENGGUNA MENGETIK data
Tipe:
text, email, password, number, date, dll
Fungsi:
Kotak untuk TEXT PANJANG (beberapa baris)
Contoh:
Kolom komentar, pesan, uraian singkat
Fungsi:
Tombol yang bisa di-KLIK untuk submit/reset
Tipe:
submit, reset, button
Perhatikan bagaimana tag-tag form disusun dari luar ke dalam:
Sekarang saatnya membuat form pertama! Kita akan membuat form sederhana untuk mengumpulkan nama dan email dari pengguna. Mari ikuti step-by-step dengan sangat detail.
📍 Langkah 1: Buka tag <form> untuk memulai wadah form
📍 Langkah 2: Tambahkan <label> untuk nama field
📍 Langkah 3: Tambahkan <input> sesuai type (text, email, password)
📍 Langkah 4: Ulangi untuk field lainnya
📍 Langkah 5: Tambahkan <button> untuk submit data
📍 Langkah 6: Tutup dengan </form>
<form> <label for="nama">Nama Lengkap:</label> <input type="text" id="nama" name="nama" placeholder="Masukkan nama Anda"> <br><br> <label for="email">Email:</label> <input type="email" id="email" name="email" placeholder="[email protected]"> <br><br> <button type="submit">Kirim Data</button> </form>
<form>
Membuka WADAH form. Ini adalah pembungkus untuk semua input dan button. Semua elemen form HARUS berada di dalam tag ini!
<label for="nama"> Nama Lengkap: </label>
LABEL adalah teks penjelasan. for="nama" menghubungkan label dengan input yang punya id="nama". Ini membuat form lebih mudah digunakan!
<input type="text" id="nama" name="nama" placeholder="...">
type="text" = Kotak untuk mengetik text biasa
id="nama" = Nama unik untuk input (digunakan label for)
name="nama" = Nama saat data dikirim ke server
placeholder="..." = Teks hint yang hilang saat user mulai mengetik
<button type="submit"> Kirim Data </button>
type="submit" = Tombol untuk mengirim data form. Ketika diklik, form akan mengirim semua data ke server (atau diproses JavaScript)
❌ SALAH - Label tidak terhubung:
<label>Nama</label> <input type="text">
Label tidak tahu input mana!
✓ BENAR - Label terhubung:
<label for="nama">Nama</label> <input id="nama" type="text">
Label tahu input mana!
❌ SALAH - Input tanpa name:
<input type="text" id="nama">
Data tidak bisa dikirim!
✓ BENAR - Input punya name:
<input type="text" id="nama" name="nama">
Data bisa dikirim dengan benar!
Input type="text" adalah cara paling dasar untuk mengumpulkan data teks dari pengguna. Ini adalah kotak tempat user bisa mengetik satu baris teks apapun!
📌 Nama Lengkap
User mengetik nama mereka
📌 Nomor Telepon
Data personal pengguna
📌 Judul Postingan
Input teks satu baris
<form> <label for="username">Username:</label> <input type="text" id="username" name="username" placeholder="Ciptakan username unik" minlength="3"> <br><br> <label for="nama">Nama Lengkap:</label> <input type="text" id="nama" name="nama" placeholder="Contoh: Andi Pratama" required> <br><br> <label for="telepon">No. Telepon:</label> <input type="text" id="telepon" name="telepon" placeholder="08xxxxxxxxxx" maxlength="12"> <br><br> <button type="submit">Daftar</button> </form>
placeholder="..."
Teks hint yang menunjukkan format/contoh apa yang harus diisi user. Teks ini hilang saat user mulai mengetik.
minlength="3"
Input MINIMUM punya 3 karakter. Jika kurang dari 3 karakter, form tidak bisa dikirim.
maxlength="12"
Input MAKSIMAL punya 12 karakter. User tidak bisa mengetik lebih dari 12 karakter.
required
WAJIB diisi! Jika kosong, form tidak bisa dikirim. Atribut ini tidak punya nilai.
Input type="password" dan type="email" adalah tipe input khusus yang memberikan validasi dan keamanan ekstra untuk data sensitif!
🔐 Apa itu Password Input?
Kotak input khusus yang MENYEMBUNYIKAN karakter yang diketik. Saat user mengetik password,
yang terlihat hanya titik/bintang, bukan karakter asli.
<form> <label for="username">Username:</label> <input type="text" id="username" name="username" placeholder="Username Anda" required> <br><br> <label for="password">Password:</label> <input type="password" id="password" name="password" placeholder="Masukkan password" minlength="6" required> <br><br> <button type="submit">Login</button> </form>
📧 Apa itu Email Input?
Kotak input khusus untuk email. Browser secara otomatis akan CHECK apakah yang dimasukkan
adalah EMAIL YANG VALID (harus punya @ dan .com/.id dll).
<form> <label for="nama">Nama:</label> <input type="text" id="nama" name="nama" required> <br><br> <label for="email">Email:</label> <input type="email" id="email" name="email" placeholder="[email protected]" required> <br><br> <button type="submit">Kirim</button> </form>
🔐 Password
• Tersembunyi: Teks yang diketik jadi titik/bintang
• Keamanan: Orang lain tidak bisa melihat
• Validasi: Browser tidak cek format
• Terlihat: Teks yang diketik biasa terlihat
• Validasi: Browser cek format email (ada @)
• Otomatis: Keyboard smartphone jadi layout email
Textarea adalah kotak input BESAR untuk text PANJANG dengan multiple lines (banyak baris). Berbeda dengan input text yang hanya 1 baris, textarea bisa menampung paragraf panjang!
📝 Kapan Pakai Textarea?
Ketika user perlu menulis banyak teks seperti komentar, pesan, atau deskripsi panjang
📌 Kolom Komentar
Comment di artikel blog
📌 Pesan/Chat
Pesan panjang dari user
📌 Deskripsi Produk
Penjelasan lengkap suatu hal
<form> <label for="nama">Nama Anda:</label> <input type="text" id="nama" name="nama" required> <br><br> <label for="feedback">Berikan Feedback Anda:</label> <textarea id="feedback" name="feedback" rows="5" cols="40" placeholder="Tulis feedback Anda di sini..." minlength="10" required></textarea> <br><br> <button type="submit">Kirim Feedback</button> </form>
rows="5"
Tinggi textarea dalam baris. Jika rows="5", textarea akan menampilkan 5 baris teks sebelum scroll.
cols="40"
Lebar textarea dalam jumlah karakter. Semakin besar angka, semakin lebar box.
placeholder="..."
Teks hint yang menunjukkan contoh apa yang harus diisi user.
minlength="10"
Text MINIMUM punya 10 karakter. Jika kurang, form tidak bisa dikirim.
<input type="text">
• Satu baris saja
• Cocok untuk nama, email
• Tidak auto wrap text
<textarea>
• Multiple baris
• Cocok untuk komentar, pesan
• Auto wrap text
Mari kita praktik membuat form registrasi yang kompleks menggunakan semua elemen yang sudah dipelajari! Ini adalah contoh nyata yang sering ditemukan di website asli.
📝 Soal Praktik:
Buatlah form registrasi akun baru dengan:
• Nama lengkap (input text, required)
• Email (input email, validasi format, required)
• Password (input password, minimum 6 karakter, required)
• Alamat (textarea, multiple baris)
• Tombol Daftar (type submit)
• Tombol Reset (type reset)
<form> <h2>Daftar Akun Baru</h2> <label for="nama">Nama Lengkap:</label> <input type="text" id="nama" name="nama" placeholder="Contoh: Andi Pratama" required> <br><br> <label for="email">Email:</label> <input type="email" id="email" name="email" placeholder="[email protected]" required> <br><br> <label for="password">Password:</label> <input type="password" id="password" name="password" placeholder="Minimal 6 karakter" minlength="6" required> <br><br> <label for="alamat">Alamat:</label> <textarea id="alamat" name="alamat" rows="4" cols="50" placeholder="Tulis alamat lengkap Anda"></textarea> <br><br> <button type="submit">Daftar Sekarang</button> <button type="reset">Hapus Data</button> </form>
🔍 Field Nama:
type="text" required - Input teks, WAJIB diisi
🔍 Field Email:
type="email" required - Browser validasi format email
otomatis
🔍 Field Password:
type="password" minlength="6" required - Teks
tersembunyi, minimal 6 karakter
🔍 Field Alamat:
<textarea rows="4"> - Text area dengan 4 baris
untuk teks panjang
🔘 Button type="submit"
Mengirim DATA form ke server atau pemrosesan JavaScript. Semua data yang diisi user akan dikirim.
🔘 Button type="reset"
MENGHAPUS/MERESET semua data form ke kondisi awal (kosong). User bisa klik untuk mulai dari awal.
Sekarang saatnya menguji pemahaman kamu tentang form HTML. Jawab semua pertanyaan di bawah dengan memilih jawaban yang paling benar. Setiap jawaban akan memberikan feedback langsung!