PWD 8 - Praktik Validasi Form dan Manipulasi DOM dengan JavaScript
A. Tujuan Praktikum
Setelah menyelesaikan praktikum ini, mahasiswa mampu:
- Mengakses elemen HTML menggunakan DOM JavaScript.
- Mengubah isi dan style elemen HTML secara dinamis.
- Menggunakan event JavaScript untuk interaksi pengguna.
- Membuat validasi form sederhana menggunakan JavaScript.
- Menambahkan fitur interaktif pada website proyek.
B. Deskripsi Proyek Semester
Mahasiswa mengembangkan:
Website Company Profile & Sistem Pendaftaran Online Sederhana
Pada Tahap 8, proyek dikembangkan dengan menambahkan:
- Validasi form pendaftaran
- Manipulasi elemen menggunakan DOM
- Event JavaScript modern
- Pesan error dan notifikasi pengguna
Output tahap ini adalah website dengan form interaktif dan validasi input sederhana.
C. Persiapan Alat dan Software
Mahasiswa wajib menyiapkan:
Text Editor
- Visual Studio Code (direkomendasikan)
- Notepad++
- Sublime Text
Browser
- Google Chrome
- Mozilla Firefox
Developer Tools Browser
Proyek dari Praktikum Tahap 7
Pastikan struktur proyek:
1 2 3 4 5 6 7 8 9 10 11 12 13
web-company-profile/ │ ├── index.html ├── profil.html ├── layanan.html ├── daftar.html │ └── assets/ ├── images/ ├── css/ │ └── style.css └── js/ └── script.js
D. Langkah-Langkah Praktikum
LANGKAH 1 – Menyiapkan Form Pendaftaran
Buka daftar.html.
Tambahkan form berikut:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<h2>Form Pendaftaran</h2>
<form id="formDaftar">
<label>Nama:</label>
<input type="text" id="nama">
<label>Email:</label>
<input type="email" id="email">
<button type="submit">Daftar</button>
</form>
<p id="pesan"></p>
LANGKAH 2 – Menghubungkan File JavaScript
Pastikan file berikut sudah ada:
1
<script src="assets/js/script.js"></script>
Letakkan sebelum </body>.
LANGKAH 3 – Mengambil Elemen dengan DOM
Buka script.js.
Tambahkan:
1
2
3
4
5
let form =
document.getElementById("formDaftar");
let pesan =
document.getElementById("pesan");
LANGKAH 4 – Menambahkan Event Submit
Tambahkan:
1
2
3
4
5
6
7
form.addEventListener("submit", function(event) {
event.preventDefault();
alert("Form diproses");
});
Penjelasan:
submit→ event saat form dikirimpreventDefault()→ mencegah reload halaman
LANGKAH 5 – Mengambil Nilai Input
Tambahkan di dalam event:
1
2
3
4
5
let nama =
document.getElementById("nama").value;
let email =
document.getElementById("email").value;
LANGKAH 6 – Membuat Validasi Nama
Tambahkan:
1
2
3
4
5
6
if(nama == "") {
pesan.innerHTML =
"Nama wajib diisi";
}
LANGKAH 7 – Membuat Validasi Email
Tambahkan:
1
2
3
4
5
6
else if(email == "") {
pesan.innerHTML =
"Email wajib diisi";
}
LANGKAH 8 – Menampilkan Pesan Berhasil
Tambahkan:
1
2
3
4
5
6
else {
pesan.innerHTML =
"Pendaftaran berhasil";
}
LANGKAH 9 – Memberi Warna Pesan
Tambahkan:
1
pesan.style.color = "red";
Untuk sukses:
1
pesan.style.color = "green";
Contoh lengkap:
1
2
3
4
5
6
7
8
if(nama == "") {
pesan.innerHTML =
"Nama wajib diisi";
pesan.style.color = "red";
}
LANGKAH 10 – Membersihkan Form Setelah Berhasil
Tambahkan:
1
document.getElementById("formDaftar").reset();
LANGKAH 11 – Menambahkan Event Fokus Input
Tambahkan:
1
2
3
4
5
6
document.getElementById("nama")
.addEventListener("focus", function() {
console.log("Input nama aktif");
});
LANGKAH 12 – Pengujian Program
Lakukan pengujian:
| Skenario | Hasil yang Diharapkan |
|---|---|
| Nama kosong | Muncul pesan error |
| Email kosong | Muncul pesan error |
| Semua diisi | Pesan berhasil |
| Form dikirim | Halaman tidak reload |
E. Contoh Kode Lengkap
HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
<form id="formDaftar">
<label>Nama:</label>
<input type="text" id="nama">
<label>Email:</label>
<input type="email" id="email">
<button type="submit">Daftar</button>
</form>
<p id="pesan"></p>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
let form =
document.getElementById("formDaftar");
let pesan =
document.getElementById("pesan");
form.addEventListener("submit", function(event) {
event.preventDefault();
let nama =
document.getElementById("nama").value;
let email =
document.getElementById("email").value;
if(nama == "") {
pesan.innerHTML =
"Nama wajib diisi";
pesan.style.color = "red";
}
else if(email == "") {
pesan.innerHTML =
"Email wajib diisi";
pesan.style.color = "red";
}
else {
pesan.innerHTML =
"Pendaftaran berhasil";
pesan.style.color = "green";
form.reset();
}
});
F. Standar Kode yang Wajib Dipenuhi
Mahasiswa wajib memastikan:
- Menggunakan DOM JavaScript
- Menggunakan
addEventListener() - Validasi form berjalan
- Tidak ada error di console
- Kode rapi dan terstruktur
G. Tugas
Tambahkan salah satu fitur berikut:
Validasi Panjang Nama
1
if(nama.length < 3)
Validasi Format Email Sederhana
1
if(!email.includes("@"))
H. Refleksi Praktikum
Jawab pertanyaan berikut:
- Apa fungsi DOM dalam JavaScript?
- Mengapa menggunakan
preventDefault()? - Apa kelebihan
addEventListener()dibandingonclick? - Mengapa validasi form penting?
I. Output yang Harus Dikumpulkan
Mahasiswa mengumpulkan laporan praktikum yang menampilkan:
- Kode file
daftar.htmldanscript.jsyang telah dibuat. - Screenshot:
- Form validasi error
- Form berhasil submit
- Console browser
- Penjelasan mengenai praktikum yang telah dikerjakan.
- Jawaban dari soal refleksi di atas.
Format pengumpulan: PDF, Microsoft Word, atau Google Docs
Tahap berikutnya akan mengubah proyek ke dalam bentuk PHP.