0Pricing
Java Academy · Pelajaran

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 hasNextInt atau 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

  1. Membaca Input dengan Scanner
  2. Membaca Bilangan dan Baris
  3. Memvalidasi Input Pengguna
  4. Alternatif BufferedReader
← Kembali ke Java Academy