Java bukan bahasa pemrograman untuk Console (seperti DOS atau Linux), sehingga untuk mengambil
input dari user diperlukan sedikit trik yang tidak sesederhana readln pada bahasa pemrograman lain.
Di sini saya akan menjelaskan untuk membuat program yang bisa mengambil
input dari konsol teks. Di bagian lain, setelah kita belajar pemrograman berorientasi objek, kita akan menggunakan GUI untuk mendapatkan interaksi dari user.
Membaca String yang diketik oleh user di konsol
Kita membutuhkan kelas yang beberapa kelas, yaitu
BufferedReader, InputStreamReader, dan System.in (lawan dari System.out yang kita gunakan untuk menampilkan pesan di layar).
Dua kelas pertama terdapat dalam package yang dinamakan java.io. Untuk itu, kita harus menambah satu baris perintah
import java.io.*
yang berarti mengimport semua kelas dalam paket java.io (tanda * berarti semua).
Kemudian kita harus juga membuat suatu objek dari kelas
BufferedReader. Kelas
BufferedReader adalah kelas abstrak yang menangani baca tulis ke suatu media.
Kelas ini membutuhkan kelas lain sebagai pekerjanya, yaitu InputStreamReader. Dan InputStreamReader membutuhkan media tempat baca tulis dilakukan, yaitu System.in.
Semua ini bisa dituliskan dalam satu perintah yaitu :
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Di sini variabel br merupakan objek yang merupakan jelmaan dari kelas BufferedReader.
Untuk memerintahkan Java mengambil input dari user, kita gunakan fungsi readline() yang terdapat pada kelas BufferedReader, dalam hal ini terealisasi pada objek br.
nama = br.readLine();
Karena kita berhubungan langsung dengan sistem IO (input-output) komputer yang harus diasumsikan tidak pasti (misalnya ada masalah pada sistem keyboard, atau komputer sedang bekerja berat sehingga input dari user tidak bisa diambil), kita harus menempatkan fungsi readLine() pada klausa
try {
...
} catch (IOException ioe) {
...
}
Perintah di dalam
try { ... } adalah perintah yang kita ingin jalankan pada situasi yang "mungkin" tidak berhasil.
Parameter pada
catch, yaitu IOException ioe adalah jenis kesalahan yang ingin kita tangkap. Dalam hal ini kita ingin menangkap adanya kesalahan IO, yaitu kesalahan yang bertipe IOException.
Perintah di dalam
catch { ... } adalah perintah yang akan dilakukan apabila kesalahan ditangkap. Jika tidak ada kesalahan IO yang ditemukan, maka bagian ini akan dilewatkan (tidak dijalankan).
Mari kita lihat program akhir untuk mengambil input dari user.
package ambilinputkonsol;
import java.io.*;
public class AmbilInputKonsol {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.print("Masukkan nama Anda : ");
// buat objek baru untuk mengambil input
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// tempat di mana input dari user akan diletakkan
String nama = null;
try {
nama = br.readLine();
} catch(IOException ioe) {
System.out.println("Kesalahan IO pada saat menanyakan nama Anda");
System.exit(1);
}
System.out.println("Terima kasih, " + nama);
}
}
Untuk menguji program tersebut, jalankan "Run -> Run" atau Ctrl-F11. Kemudian arahkan kursor Anda ke bagian bawah di kotak yang bernama Console.
Masukkan nama Anda, kemudian hasilnya akan ditampilkan pada baris berikutnya.
Sumber: belajarjava.googlecode.com/svn/trunk/AmbilInputKonsol