Cara Menggunakan Scanner di Java untuk Input Pengguna
Salah satu fitur penting dalam pemrograman adalah kemampuan menerima input dari pengguna. Dalam Java, cara paling umum dan mudah untuk melakukan ini adalah dengan menggunakan class Scanner. Scanner memungkinkan program Java menerima data dari berbagai sumber, termasuk keyboard.
Artikel ini akan membahas secara lengkap bagaimana cara menggunakan Scanner untuk berbagai jenis input: angka, teks, karakter, hingga input baris penuh. Dilengkapi dengan contoh kode dan tips agar kamu bisa menghindari error umum saat memakai Scanner.
Apa Itu Scanner di Java?
Scanner
adalah class dalam Java yang berada di package java.util
. Fungsinya adalah untuk membaca input dari berbagai sumber seperti keyboard (System.in), file, atau string.
Sintaks umum untuk menggunakan Scanner:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// Gunakan input.nextLine(), input.nextInt(), dll
}
}
Import Scanner
Sebelum menggunakan Scanner, kamu perlu mengimpornya dari library Java:
import java.util.Scanner;
Import ini wajib karena Scanner bukan bagian dari java.lang
(yang otomatis tersedia).
Cara Membuat Scanner
Untuk membaca input dari keyboard, kita gunakan System.in
sebagai sumber input:
Scanner input = new Scanner(System.in);
Setelah itu, kamu bisa menggunakan berbagai method dari Scanner untuk membaca data dari user.
Jenis-Jenis Input Scanner
1. Input String (Satu Kata)
Gunakan next()
untuk membaca satu kata (tanpa spasi).
System.out.print("Masukkan nama: ");
String nama = input.next();
System.out.println("Halo, " + nama);
2. Input String (Satu Baris)
Gunakan nextLine()
untuk membaca satu baris lengkap (termasuk spasi).
System.out.print("Masukkan alamat lengkap: ");
String alamat = input.nextLine();
System.out.println("Alamat Anda: " + alamat);
3. Input Integer
Membaca angka bulat:
System.out.print("Masukkan usia: ");
int usia = input.nextInt();
System.out.println("Usia Anda: " + usia);
4. Input Double
Membaca angka desimal:
System.out.print("Masukkan tinggi badan: ");
double tinggi = input.nextDouble();
System.out.println("Tinggi Anda: " + tinggi);
5. Input Karakter
Java tidak memiliki method khusus untuk membaca char
, tapi bisa diakali dengan membaca string lalu mengambil karakter pertama:
System.out.print("Masukkan jenis kelamin (L/P): ");
char gender = input.next().charAt(0);
System.out.println("Jenis kelamin: " + gender);
Contoh Program Lengkap: Form Pendaftaran Sederhana
import java.util.Scanner;
public class FormPendaftaran {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Nama Lengkap: ");
String nama = input.nextLine();
System.out.print("Umur: ");
int umur = input.nextInt();
input.nextLine(); // flush enter
System.out.print("Alamat: ");
String alamat = input.nextLine();
System.out.print("Email: ");
String email = input.next();
System.out.println("\n=== Data Pendaftar ===");
System.out.println("Nama: " + nama);
System.out.println("Umur: " + umur);
System.out.println("Alamat: " + alamat);
System.out.println("Email: " + email);
input.close();
}
}
Catatan: penggunaan input.nextLine()
setelah nextInt()
diperlukan untuk menghindari bug akibat newline yang tersisa.
Masalah Umum Saat Menggunakan Scanner
1. Scanner Lompat Baris Setelah nextInt()
Masalah umum adalah ketika nextLine()
digunakan setelah nextInt()
atau nextDouble()
, maka baris input akan dilewati.
Solusi: Tambahkan input.nextLine()
setelah nextInt()
atau nextDouble()
untuk membersihkan karakter newline.
2. Menutup Scanner Terlalu Dini
Hindari menutup Scanner terlalu awal (dengan input.close()
) jika masih ada proses input berikutnya.
Tips Penggunaan Scanner
- Selalu cek tipe data yang dimasukkan pengguna agar tidak terjadi error runtime.
- Gunakan
try-catch
jika ingin menambahkan error handling. - Tutup Scanner dengan
input.close()
setelah semua input selesai (opsional).
Menggunakan Scanner dengan Validasi
Kamu bisa menggunakan hasNextInt()
, hasNextDouble()
untuk memeriksa input sebelum dibaca.
Contoh:
Scanner input = new Scanner(System.in);
System.out.print("Masukkan umur: ");
if (input.hasNextInt()) {
int umur = input.nextInt();
System.out.println("Umur: " + umur);
} else {
System.out.println("Input tidak valid!");
}
Scanner vs BufferedReader
Fitur | Scanner | BufferedReader |
---|---|---|
Kemudahan | Mudah digunakan | Butuh parsing manual |
Kecepatan | Lebih lambat | Lebih cepat |
Tipe Input | Mendukung berbagai tipe | Hanya String |
Studi Kasus: Program Kalkulator Input Pengguna
import java.util.Scanner;
public class KalkulatorSederhana {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Masukkan angka pertama: ");
double angka1 = input.nextDouble();
System.out.print("Masukkan operator (+, -, *, /): ");
char op = input.next().charAt(0);
System.out.print("Masukkan angka kedua: ");
double angka2 = input.nextDouble();
double hasil;
switch (op) {
case '+':
hasil = angka1 + angka2;
break;
case '-':
hasil = angka1 - angka2;
break;
case '*':
hasil = angka1 * angka2;
break;
case '/':
hasil = angka2 != 0 ? angka1 / angka2 : 0;
break;
default:
System.out.println("Operator tidak valid");
return;
}
System.out.println("Hasil: " + hasil);
input.close();
}
}
Kesimpulan
Scanner adalah alat utama dalam Java untuk menerima input dari pengguna. Dengan memahami berbagai metode seperti next()
, nextLine()
, nextInt()
, dan validasi, kamu bisa membuat program interaktif yang aman dan user-friendly.
Scanner cocok digunakan untuk aplikasi sederhana, game teks, hingga sistem CRUD dasar. Pastikan kamu menghindari error umum seperti lompat baris setelah nextInt()
dan perhatikan tipe data input yang digunakan.
Teruslah bereksperimen dengan Scanner agar kamu makin terbiasa membaca input dari pengguna, karena ini adalah fondasi dari hampir semua aplikasi interaktif di Java.
Label: Scanner Java, Input Java, Belajar Java, Java Dasar, Pemrograman Java
#JavaScanner #BelajarJava #InputJava #NgodingPemula #TutorialJava #JavaDasar #JavaInputOutput #JavaProgramming
Posting Komentar untuk "Cara Menggunakan Scanner di Java untuk Input Pengguna"