Belajar Pemrograman Java Dari Dasar

Membaca Input Dari User Menggunakan Class BufferedReader Pada Java

BufferedReader merupakan salah satu class yang paling banyak digunakan dalam pemrograman Java. Pada kesempatan  kali ini kita akan mencoba memahami syntax dasar, penggunaan method dan juga prinsip dari class tersebut untuk membaca input dari user.

Berikut ini adalah hirarki dari class tersebut:

java.lang.Object
      java.io.Reader
           java.io.BufferedReader

Fungsi dasar dari BufferedReader adalah membaca file dari input stream. Lebih spesifik lagi bahwa class ini digunakan sebagai buffer dari karakter-karakter dengan tujuan membuat penanganan yang lebih efisien untuk string, character, dan array.

Terdapat dua constructor untuk class BufferedReader ini, yaitu:

  • BufferedReader(Reader in)
  • BufferedReader(Reader in, int sz)
Namun, agar lebih mudah untuk memahaminya, maka kita hanya akan menggunakan constructor yang pertama dimana constructor itu hanya mengambil Reader sebagai argumennya.

Berikut ini adalah contoh bagaimana membuat objek dari class BufferedReader:

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));

Contoh kode program:

package com.bahasajava.io;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


//Membaca input dari user melalui konsol dengan menggunakan BufferedReader

public class ContohBufferedReader {

 public static void main(String[] args) {
  
  //Membuat objek BufferedReader
  BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
  
  //Membuat user prompt untuk menginput nama
  System.out.print("Masukkan nama anda: ");
  
  //Membuat objek StringBuffer
  StringBuffer stringBuffer = new StringBuffer("Selamat datang ");
  
  //Membaca input dari user
  try {
   
   //Menggabungkan string Selamat datang dengan baris text yang berasal dari 
   //input oleh user
   stringBuffer.append(bufferedReader.readLine());
   
   //menutup objek BufferedReader
   bufferedReader.close();
   
   //Menampilkan string setelah menerima input dari user
   System.out.println(stringBuffer);
   
   //Menangkap exception yang mungkin terlempar ketika user memasukkan input
  } catch (IOException e) {
   System.out.println("Error terjadi ketika mencoba mendapatkan input dari user: "
     + e.getMessage());
   e.printStackTrace();
  }
  
 }
}

Output:

Masukkan nama anda: Nesta Rama
Selamat datang Nesta Rama


BufferedReader input user


Jadi apa sebenarnya maksud dan tujuan dari contoh program di atas? Pada dasarnya program itu hanya mendapatkan input pengguna dari konsol dan kemudian mencetak pesan selamat datang.

Selanjutnya mari kita pahami setiap bagian kode tersebut. Pertama-tama,  objek BufferedReader dibuat dengan konstruktor yang menggunakan Reader sebagai argumen. Setelah itu, user akan diminta memasukkan namanya pada konsol melalui keyboard dengan System.out.print ("Masukkan nama Anda: "). Kemudian objek StringBuffer diinisialisasi dengan konten inisial "Selamat datang ". Silakan anda membaca mengenai StringBuffer untuk memahaminya lebih lanjut. Tujuan dari mendeklarasikan StringBuffer “stringBuffer” adalah untuk mempersiapkan pesan selamat datang, yaitu "Selamat datang NamaUser".


Kemudian  input pengguna berupa baris text dibaca menggunakan method class BufferedReader yaitu readLine(). Metode ini akan mengembalikan baris lengkap dari representasi String sesuai dengan apa yang telah dimasukkan oleh user pada konsol. Hasil dari method readLine() itu digabungkan dengan konten StringBuffer menggunakan method append().  Method close() dipanggil untuk menutup stream sehingga dapat menghindari kebocoran memori (memory leak) dan komplikasi lebih lanjut pada kode program tersebut.

Anda mungkin juga memperhatikan bahwa pada kode tersebut terdapat blok try-catch dan ini merupakan bagian dari exception handling. Hal ini dikarenakan readLine() dan close () melemparkan IOException sehingga anda harus menangkapnya (catch) atau melemparkannya (throw) kembali. Dengan demikian jika terjadi error pada saat mendapatkan input dari user maka anda akan mendapatkan pesan dan stack trace lengkap mengenai apa yang terjadi.

Share on Facebook
Share on Twitter
Share on Google+

Artikel Menarik Lainnya :