Input Data Dari Keybord (java)

1. Pengertian Stream

Program Java melakukan proses input/output melalui stream. Apa itu

stream?...Stream adalah sebuah abstraksi yang dapat memberikan atau mendapatkan

informasi. Terdapat dua macam tipe stream, yaitu stream byte dan stream karakter.

Stream byte digunakan untuk memberikan atau menyimpan informasi data dalam

bentuk byte. Misalnya untuk menulis dan membaca file biner. Sedangkan stream karakter

digunakan untuk melakukan proses I/O yang melibatkan data-data dalam bentuk karakter.

Misalnya pada saat melakukan proses baca atau tulis ke file teks.

Stream didefinisikan dengan menggunakan empat kelas abstrak, yaitu:

InputStream, OutputStream, Reader, dan Writer. Kelas InputStream, OutputStream

merupakan kelas abstrak yang dirancang sebagai kelas induk (superclass) untuk kelaskelas

yang termasuk kategori stream byte. Sedangkan kelas Reader dan Writer

merupakan kelas abstrak yang akan diturunkan menjadi kelas-kelas baru yang termasuk

dalam stream karakter.

Melalui pewarisan (inheritance) semua kelas yang diturunkan dari InputStream

dan Reader akan memiliki method read( )yang berguna untuk proses pembacaan data.

Sedangkan OuputStream maupun Writer akan digunakan untuk proses penulisan data.



1.1 Stream Byte

Stream byte didefinisikan dengan menggunakan dua buah hirarki kelas, yaitu

InputStream dan OutputStream. Daftar beberapa kelas dalam paket java.io

yang termasuk dalam kategori stream byte diantaranya adalah































Nama Kelas

Keterangan
BufferedInputStream Stream input yang telah ter-buffer
BufferedOutputStream Stream output yang telah ter-buffer
ByteArrayInputStream Stream input yang membaca dari array byte
ByteArrayOutputStream Stream output yang menulis ke array byte
DataInputStream
Stream input yang berisi methodmethod

untuk membaca tipe data standar yang terdapat dalam java
DataOutputStream Stream output yang berisi method-method

untuk menulis tipe data

standar yang terdapat dalam java

1.2 Stream Karakter

Stream karakter juga berbasis pada dua buah kelas yaitu Reader dan Writer.

Berikut beberapa kelas dalam paket java.io yang termasuk dalam kategori

stream karakter.



























BufferedReader

Stream karakter input yang telah terbuffer
BufferedWriter Stream karakter output yang telah

ter-buffer
CharArrayReader Stream input yang membaca dari

array karakter
CharArrayWriter Stream output yang menulis ke array

karakter
InputStreamReader Stream input menerjemahkan byte ke

karakter
OutputStreamWriter Stream output yang menerjemahkan

karakter ke byte


2. Melakukan Input data Karakter, String, dan Numerik



2.1.Melakukan Input data

Untuk menangani proses input, input console dilakukan melalui pembacaan

terhadap Stream System.in. Untuk mendapatkan karakter-karakter yang dimasukkan

melalui keyboard ke dalam layar console maka perlu membungkus System.in di

dalam objek BufferedReader


Sehingga untuk membuat objek BufferedReader dapat terhubung dengan

keyboard maka diperlukan kode berikut:


BufferedReader br = new BufferedReader (new

InputStreamReader(System.in)


2.2. Input data berupa karakter

Gunakan method read ( ) yang terdapat dalam kelas BufferedReader. Method

read dideklarasikan sebagai berikut:


int read () throws IOException


Contoh program


//Program 4-1

import java.io.*;

clas demoinputkarakter{

public static void main (string[] args) throws IOException{

Syste.out.print("Masukan sembarang karakter = ");

char ch;

InputStreamReader isr = new InputStreamReader(System.in);

BufferedReader br = new BufferedReader(isr);

ch = (char) br.read();

System.out.println("karakter yang dimasukan adalah ="+ch);

}

}


2.3. Input data berupa String

Untuk membaca input berupa string digunakan method readLine ( ) .

Method readLine dideklarasikan sebagai beriku
t :


String readLine () throws IOException


contoh program :


//program 4-2

import java.io.*;

clas inputdata{

public static void main (String[] args) thorw IOException{

InputStreamReader reader = new InputStreamReader(System.in);

BufferedReader input = new BufferedReader(reader);

System.out.print("masukan sembarang kata = ");

String teks = input.readLine();

//System.out.println("kata yang dimasukan adalah ="+teks);

System.out.println(teks);

}

}


Java mempunyai kelas JoptionPane yang mempunyai metode statis untuk membuat

dialog standar.


showInputDialog (Object Message)


Contoh Program


//program 4-3

import javax.swing.*;

clas inputdatabox{

public static void main (String[] args)

{

String teks = JOptionPane.showInputDialog("Masukan data :");

String.out.print(teks);

system.exit(0);

}

}


resume tentang program tersebut:


//program 4-4


import java.io.BufferedReader;

import java.io.InputEtreamReader;

import java.io.IOException;


public class InputdariKeyboard{

public static void main( String[] args){

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

String name = "";

System.out.print("Masukan nama :");

try{

name = dataIn.readLine();

}catch( IOException e){

System.out.println("Error!");

}

System.out.println("Hello "+name+"!");

}

}


2.4. Input data berupa Numerik

Untuk membaca input (melakukan input data) berupa numerik adalah sama pada

saat melakukan input data berupa string, kemudian string hasil input tersebut

dikonversikan ke tipe numerik. Format penulisan metode untuk membacanya

adalah:


bilangan = Integer.parseInt(temp);



bilangan merupakan variabel untuk menyimpan hasil konversi String ke

bil.bulat.

a. Input data bilangan bulat (integer).


//program 4-5

import java.io.*;

class demoinputnumerik1{

public static void main(String[] args) throws IOException{

System.out.print("masukan sebuah bilangan bulat :");

String temp;

int bilangan = 0;

InputStreamReader isr = new InputStreamReader(System.in);

BufferedReader br = new BufferedReader(isr);

//input data dianggap sebagai string

temp = br.readLine();

try{

//konversi dari string ke integer

bilangan = Integer.parseInt(temp);

} catch (NumberFormatException nfe){

system.out.println("data yang dimasukan " +"

bukan bilangan bulat")

System.exit(1);

}

System.out.println("bilangan yang dimasukan "+

"adalah" +bilangan);

}

}


Mula-mula input data dianggap sebagai String, selanjutnya setelah input ditangkap

maka nilainya dikonversi ke bil.bulat, dengan menggunakan method parseInt( ).

Parameter yang dilewatkan ke dalam method parseInt( ) harus bertipe String.

Proses konversi di atas berada dalam blok try-catch. Hal ini dilakukan untuk

mendeteksi kesalahan misalnya user dalam memasukkan data string yang tidak dapat

dikonversi ke bilangan bulat. Apabila ada kesalahan, maka eksepsi

NumberFormatException akan dibangkitkan.


b. Input data bilangan riil (floating point)


Untuk input bilangan riil, digunakan method parseDouble ( ) yang berada di kelas

Double. Parameter yang dilewatkan juga harus bertipe string. Berikut contohnya:


//program 4-6

import java.io.*;

class demoinputnumerik2{

public static void main(String[] args) throws IOException {

System.out.print("masukan sebuah bilangan riil : ");

String temp;

Double bilangan = 0;

InputStreamReader isr = new InputStreamreader(System.in);

BufferedReader br = new BufferedReader(isr);

//input data dianggap sebagai string

temp = br.readLine();

try{

//konversi dari string ke floating-point

bilangan = Double.parseDouble(temp);

} catch (NumberformatException nfe){

System.out.println("data yang dimasukan bukan bilangan");

System.exit(1);

}

System.out.println("Bilangan yang dimasukan " +

"adalah " +bilangan);

}

}