Penggunaan Scanner Dan (InputStreamReader + BufferedReader) Dalam Java
Pada dasarnya semuanya sama, yaitu untuk menberikan inputan dan menampung hasil inputan tersebut.
Hanya perbedaannya adalah :
Kalau utnuk Scanner ketika ada perhitungan matematika, maka variable yang akan di gunakan dalam perhitungan tidak perlu di konfersikan lagi, bias langsung di hitung, lain halnya dengan fungsi (InputStreamReader + BufferedReader) yang perlu di konfersikan dahulu sebelum dilakukan perhitungan matematika pada variable yang akan digunakan.
Contoh Program :
Untuk Fungsi (InputStreamReader + BufferedReader)
import java.io.*;
class HitungLingkaran {
public static void main(String[] args) throws IOException {
InputStreamReader key = new InputStreamReader(System.in);
BufferedReader input = new BufferedReader(key);
String rad;
double rads, luas, kel, phi = 3.14;
System.out.print("Masukan Nilai Radius :");
rad = input.readLine();
rads = Double.parseDouble(rad);
luas = phi * rads;
kel = 2 * phi * rads;
System.out.println("Hasil Perhitungan");
System.out.println("Luas Lingkaran :" + luas);
System.out.println("Keliling Lingkaran :" + kel);
}
}
Penjelasa Program :
Untuk sebagian code program tentunya tidak perlu dijelaskan lagi karna sudah dijelaskan pada postingan sebelumnya.
import java.io.*;
Code di atas untuk menambahkan fungsi java.io yang diantaranya fungsi (InputStreamReader + BufferedReader)
InputStreamReader key = new InputStreamReader(System.in);
BufferedReader input = new BufferedReader(key);
Code di atas adalah pembuatan 2 buah objek baru bernama key dan input untuk menggantikan fungsi (InputStreamReader + BufferedReader)
rads = Double.parseDouble(rad);
Code di atas untuk untuk konversi dari variable rad dengan tipe data String ke variable rads dengan tipe data double, karna hasil inputan dengan variable rad itu akan dilakukan perhitungan, sehnigga perlu di konversikan dahulu.
Untuk Fungsi Scanner
import java.util.*;
class NilaiAkhir {
public static void main(String[] args) {
String nama;
int nuts,nuas,ntm,na;
Scanner input = new Scanner(System.in);
System.out.print("Masukan Nama Siswa :");
nama = input.nextLine();
System.out.print("Nilai UTS :");
nuts = input.nextInt();
System.out.print("Nilai UAS :");
nuas = input.nextInt();
System.out.print("Nilai Tugas Mandiri :");
ntm = input.nextInt();
na=nuts+nuas+ntm;
System.out.println("Nilai Murni Yang Diperoleh :");
System.out.println("Nilai Murni UTS :" + nuts);
System.out.println("Nilai Murni UAS :" + nuas);
System.out.println("Nilai Murni Tugas :" + ntm);
System.out.println("Nilai Akhir Yang Diperoleh Yaitu :" + na);
}
}
Penjelasan Program :
import java.util.*;
Code di atas untuk menambahkan fungsi java.util yang diantaranya fungsi Scanner
Scanner input = new Scanner(System.in);
Code di atas adalah pembuatan sebuah objek baru bernama input untuk menggantikan fungsi Scanner
na=nuts+nuas+ntm;
Lihat code di atas pada code program keseluruhan, sebelum melakukan perhitungan matematika, tidak ada pengkonversian sebelumnya, lain halnya dengan fungsi (InputStreamReader + BufferedReader) yang perlu di konversikan dahulu ketika di berikan perhitungan.
Silahkan amati kedua code program di atas dan akan tampak jelas perbedaannya.
Contoh lain :
import java.util.*;
class Konversi {
public static void main(String[] args) {
double cel,fah=1.8,rea=0.8;
Scanner input = new Scanner(System.in);
System.out.print("Masukan Nilai Derajat Celcius :");
cel = input.nextDouble();
fah=(cel*fah)+32;
rea=cel*rea;
System.out.println("Hasil konversi :");
System.out.println("Derajat Fahrenheit :" + fah);
System.out.println("Derajat Reamur :" + rea);
}
}