Memvalidasi Input Pengguna
Tangani input tidak valid dengan baik
Memvalidasi Input Pengguna adalah pelajaran Java Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Java Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Java Academy mencakup 4 pelajaran total.
Jangan Pernah Memercayai Masukan
Pengguna dapat mengetikkan hal yang salah: huruf ketika seharusnya angka, masukan kosong, atau nilai di luar rentang. Program yang kuat memvalidasi masukan dan meminta ulang, bukan berhenti karena kesalahan.
Pelajaran ini menunjukkan pola validasi yang menangani kesalahan dengan baik menggunakan Scanner.
Periksa Sebelum Membaca
Pelindung paling sederhana adalah hasNextInt(). Bacalah bilangan bulat hanya ketika bilangan tersebut benar-benar tersedia.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("42");
if (scanner.hasNextInt()) {
System.out.println("Got: " + scanner.nextInt());
} else {
System.out.println("Please enter a number");
}
scanner.close();
}
}Mengulang hingga Valid
Perulangan percobaan ulang terus meminta masukan hingga bilangan bulat yang valid diterima. Jika nilainya salah, buang dengan next() lalu lanjutkan.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("abc xyz 50");
int value = -1;
while (scanner.hasNext()) {
if (scanner.hasNextInt()) {
value = scanner.nextInt();
break;
}
scanner.next();
}
System.out.println("Accepted: " + value);
scanner.close();
}
}Pemeriksaan Rentang
Selain harus memiliki tipe yang benar, nilai sering kali harus berada dalam rentang tertentu. Bacalah angkanya, lalu verifikasi sebelum menerimanya.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("7");
int n = scanner.nextInt();
if (n >= 1 && n <= 10) {
System.out.println("Valid: " + n);
} else {
System.out.println("Out of range");
}
scanner.close();
}
}Try-Catch saat Penguraian
Pendekatan lain membaca satu baris penuh lalu menguraikannya, serta menangkap NumberFormatException untuk teks yang tidak valid. Dengan cara ini, penyangga tetap sederhana.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("notanumber");
String line = scanner.nextLine();
try {
int n = Integer.parseInt(line.trim());
System.out.println("Parsed: " + n);
} catch (NumberFormatException e) {
System.out.println("Invalid number: " + line);
}
scanner.close();
}
}Memvalidasi Teks yang Tidak Kosong
Untuk masukan teks, tolak masukan kosong. isBlank() mengembalikan true untuk string kosong atau yang hanya berisi spasi.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(" ");
String name = scanner.nextLine();
if (name.isBlank()) {
System.out.println("Name cannot be empty");
} else {
System.out.println("Hello, " + name);
}
scanner.close();
}
}Memvalidasi Pilihan
Untuk pilihan menu, pastikan nilainya merupakan salah satu opsi yang diizinkan sebelum menggunakannya.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("y");
String choice = scanner.next().toLowerCase();
if (choice.equals("y") || choice.equals("n")) {
System.out.println("You chose: " + choice);
} else {
System.out.println("Please enter y or n");
}
scanner.close();
}
}Metode Validator yang Dapat Digunakan Kembali
Pisahkan validasi ke dalam sebuah metode agar logikanya dapat digunakan kembali. Di sini, sebuah metode memeriksa apakah usia berada dalam rentang yang masuk akal.
public class Main {
static boolean isValidAge(int age) {
return age >= 0 && age <= 120;
}
public static void main(String[] args) {
System.out.println(isValidAge(30));
System.out.println(isValidAge(-5));
}
}Menggabungkan Tipe dan Rentang
Validasi nyata sering menggabungkan pemeriksaan tipe, pemeriksaan rentang, dan perulangan percobaan ulang menjadi satu prosedur yang kuat.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("abc 200 45");
int valid = -1;
while (scanner.hasNext()) {
if (scanner.hasNextInt()) {
int n = scanner.nextInt();
if (n >= 1 && n <= 100) {
valid = n;
break;
}
} else {
scanner.next();
}
}
System.out.println("Final: " + valid);
scanner.close();
}
}Pesan Kesalahan yang Jelas
Validasi yang baik juga memberikan umpan balik yang membantu pengguna. Jelaskan dengan tepat apa yang salah dan apa yang diharapkan, bukan sekadar menampilkan kegagalan umum.
public class Main {
static String validate(String input) {
if (input.isBlank()) return "Input is empty";
if (!input.matches("\\d+")) return "Only digits allowed";
return "OK";
}
public static void main(String[] args) {
System.out.println(validate(""));
System.out.println(validate("12a"));
System.out.println(validate("123"));
}
}Strategi Validasi
Periksa tipe dengan kelompok hasNext atau try-catch, periksa rentang dan kekosongan, lakukan perulangan hingga valid, dan selalu jelaskan kesalahan dengan jelas.
Uji Cepat
Uji pengetahuan Anda tentang validasi masukan.
Rangkuman
Anda telah mempelajari cara memvalidasi masukan dengan baik:
- Lindungi pembacaan dengan
hasNextIntatau uraikan di dalam try-catch - Gunakan perulangan percobaan ulang dan buang nilai yang salah dengan
next() - Periksa rentang dan tolak teks kosong dengan
isBlank - Pisahkan metode validator yang dapat digunakan kembali
- Berikan pesan kesalahan yang jelas dan spesifik
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Memvalidasi Input Pengguna” gratis?
Ya — teks lengkap “Memvalidasi Input Pengguna” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Java Academy, upgrade ke CoddyKit PRO. Kursus Java Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Memvalidasi Input Pengguna”?
Tangani input tidak valid dengan baik Kamu berlatih Java Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Java Academy?
Tidak diperlukan pengalaman sebelumnya. Java Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Memvalidasi Input Pengguna” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Java Academy ini?
Ya. Setiap pelajaran Java Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Membaca Input dengan Scanner
- Membaca Bilangan dan Baris
- Memvalidasi Input Pengguna
- Alternatif BufferedReader