Mengambil Nilai Input Java Beserta Contohnya
- BufferedReader Class
- Scanner Class
BufferedReader: Merupakan bentuk class sederhana yang digunakan untuk membaca ukuran dari sebuah karakter. Class ini memiliki fungsi tunggal sederhana yang akan membaca karakter, dari urutan array, serta fungsi readLine() yang bertugas untuk membaca sebuah baris, dan fungsi InputStreamReader() yang berfungsi untuk mengkonversi nilai aliran input per byte dari setiap karakter kehingga dapat dilakukan pembacaan sebagai nilai BufferedReader sesuai yang diharapkan dari stream karakter.
Contoh: BufferedReader Melakukan Memeriksaan Exceptions
// Program Java untuk
// mengambil nilai input dari
// pengguna menggunakan class
// BufferedReader.
import java.io.*;
class MKN
{
// Main Method
public static void main(String [] args) throws IOException
{
// Menciptakan BufferedReader
// object InputStreamReader
// yang mengonversi bute ke
// karakter stream.
BufferedReader bfn =
new BufferedReader(new InputStreamReader(System.in));
// Menerima nilai input dari
// pengguna.
System.out.println("Enter String : ");
System.out.println("Enter Integer : ");
// String melakukan pembacaan
// secara internal.
String str = bfn.readLine();
// Ineger melakukan pembacaan
// secara internal.
int it = Integer.parseInt(bfn.readLine());
// Mencetak nilai string.
System.out.println("Entered String : "
+ str);
// Mencetak nilai integer.
System.out.println("Entered Integer : "
+ bfn);
}
}
Input:MKN
123
Output:
Enter String :
Enter Integer :
Entered String : MKN
Entered Integer : 123
Penggunaan Scanner adalah lebih mudah daripada BufferedReader, karena tidak perlu melakukan penulisan throws jika tidak terdapat exception thrown pada kode programnya. Fungsi ini memiliki fungsi predefinisi yang mampu membaca nilai dari tipe data Integer, Character, dan tipe data lainnya juga.
Sintak Scanner: Scanner scn = new Scanner(System.in);
Sintak Impor Scanner Class: import java.util.Scanner;
Fungsi Inbuilt Scanner:
- Integer: nextInt()
- Float: nextFloat()
- String : readLine()
Catatan: Pada kondisi dimana integer dan string adalah Scanner, maka tidak diperlukan parsing seperti yang dilakukan pada BufferedReader.
Contoh:
// Program Java memperlihatkan
// cara mengambil nila input
// dari pengguna menggunakan
// class Scanner.
import java.util.*;
class MKN {
public static void main( String[] args )
{
// Definisi Scanner
Scanner scn= new Scanner(System.in);
// Nilai input adalah string
// yang dibaca oleh fungsi
// nextLine().
String str= scn.nextLine();
// Mencetak nilai string.
System.out.println("Entered String : "
+ str);
// Menginput nilai integer
// yang dibaca menggunakan
// fungsi nextInt().
int x= scn.nextInt();
// Mencetak nilai integer.
System.out.println("Entered Integer : "
+ x);
// Mengin nilai float yang
// dibaca oleh fungsi
// nextFloat().
float f = scn.nextFloat();
// Mencetak nilai float.
System.out.println("Entered FloatValue : "
+ f);
}
}
Input:MKN
123
123.090
Output:
Entered String : MKN
Entered Integer : 123
Entered FloatValue : 123.090
Baca Juga:
Perbedaan Antara BufferedReader dan Scanner
Berikut adalah perbedaan penggunaan antara BufferedReader dan Scanner:- BufferedReader adalah cara dasar untuk menerima nilai input yang umumnya digunakan untuk membaca nilai stream dari suatu karakter. BufferedReader memberikan batasan akhir dari Scanner yang penggunaannya lebih cepat, karena Scanner sendiri membutuhkan lebih banyak post-processing untuk melakukan proses parsing input.
- BufferedReader lebih fleksibel jika dilakukan spesifikasi ukuran dari input stream untuk dilakukan proses pembacaan data, dimana kedua faktor yang telah dijelaskan tersebut berperan ketika dilakukan proses pembacaan data dalam ukuran yang besar.
- BufferedReader lebih disukai karena lebih mudah disinkronkan ketika menangani banyak kondisi stream.
- Sedangkan untuk input yang layak, atau yang lebih mudah dibaca, maka Scanner lebih disukai daripada BufferedReader.
- Interaktivitas: Metode-metode pengambilan nilai input memungkinkan program berinteraksi dengan pengguna secara langsung. Ini memungkinkan pengguna untuk memberikan masukan yang spesifik sesuai dengan kebutuhan program.
- Fleksibilitas: Terdapat beberapa metode untuk mengambil nilai input dalam Java, seperti menggunakan Scanner, BufferedReader, atau argumen baris perintah. Ini memberikan fleksibilitas kepada pengembang untuk memilih metode yang sesuai dengan kebutuhan spesifik program.
- Validasi: Dengan menggunakan teknik-teknik yang tepat, seperti menggunakan try-catch blocks atau pengujian input, pengembang dapat memvalidasi masukan pengguna untuk memastikan bahwa masukan tersebut sesuai dengan yang diharapkan. Hal ini membantu mencegah kesalahan atau masalah dalam program.
- Portabilitas: Metode-metode pengambilan nilai input dalam Java dapat digunakan secara lintas-platform, artinya program dapat dijalankan di berbagai sistem operasi tanpa perubahan yang signifikan dalam kode.
- Integrasi: Beberapa metode, seperti menggunakan argumen baris perintah, memungkinkan program untuk berintegrasi dengan sistem atau alat lainnya dengan mudah. Ini memungkinkan penggunaan program dalam skenario yang lebih luas.
- Efisiensi: Penggunaan metode yang tepat untuk mengambil nilai input dapat membantu meningkatkan efisiensi program. Misalnya, penggunaan BufferedReader untuk masukan string dapat lebih efisien dalam beberapa kasus daripada Scanner karena tidak melibatkan proses parsing.
- Ketergantungan pada Pengguna: Metode-metode ini bergantung pada pengguna untuk memberikan input yang benar dan sesuai. Jika pengguna memberikan input yang tidak valid atau tidak sesuai dengan yang diharapkan, ini dapat menyebabkan kesalahan atau perilaku yang tidak diinginkan dalam program.
- Risiko Keamanan: Metode-metode pengambilan nilai input dapat rentan terhadap serangan keamanan, seperti serangan injeksi SQL atau serangan buffer overflow jika input tidak divalidasi dengan benar. Hal ini dapat membuka pintu bagi penyusup untuk mengeksploitasi program.
- Keterbatasan Validasi Otomatis: Beberapa metode, seperti menggunakan Scanner, memiliki keterbatasan dalam hal validasi otomatis. Pengembang perlu secara eksplisit memvalidasi masukan pengguna untuk memastikan kebenaran dan keamanannya.
- Kesulitan Pengelolaan Kesalahan: Menangani kesalahan dalam pengambilan nilai input dapat menjadi rumit, terutama jika tidak dilakukan dengan benar. Kesalahan seperti IOException atau NumberFormatException perlu ditangani secara tepat agar program tidak berhenti bekerja atau mengalami kegagalan.
- Keterbatasan dalam Pengambilan Input dari Sumber Eksternal: Meskipun metode-metode ini cocok untuk pengambilan input dari pengguna langsung, pengembang mungkin tidak efisien untuk mengambil input dari sumber eksternal yang besar, seperti file teks besar atau koneksi jaringan yang lambat.
- Kompleksitas Kode: Kadang-kadang, kode untuk mengambil dan memvalidasi input dapat menjadi cukup rumit, terutama jika program memiliki kebutuhan input yang kompleks atau jika validasi yang ketat diperlukan.
Kesimpulan
6 komentar untuk "Mengambil Nilai Input Java Beserta Contohnya"
Hubungi admin melalui Wa : +62-896-2414-6106
Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.
Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.
- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -
Bagaimana cara mengambil nilai input pada program Java?
BalasHapusClass Scanner Java digunakan untuk mendapatkan nilai input pengguna yang terdapat pada paket java.util.
HapusBagaimana cara menggunakan class Scanner Java?
BalasHapusUntuk menggunakan class Scanner Java, terlebih dahulu ciptakan object class tersebut dan gunakan salah satu method yang tersedia dalam dokumentasi class Scanner.
HapusApa yang dimaksud dengan input data pada program Java?
BalasHapusInput data Java merupakan data yang diberikan oleh user ke program Java, dimana nilai outputnya adalah data yang telah diterima dari program dalam bentuk hasil yang mewakili nilai aliran data atau urutan data tertentu.
Hapus