BAB 5
Mendapatkan Input dari Keyboard
5.1 Tujuan
Kita telah mempelajari konsep dasar pada Java dan menulis beberapa program sederhana. Sekarang kita akan mencoba membuat program kita lebih interaktif dengan menggunakan input dari keyboard. Pada bab ini, kita akan mempelajari dua cara memberikan input, yang pertama adalah menggunakan class BufferedReader dan melalui GUI (Graphical User Interface) dengan menggunakan class JOptionPane.
Pada akhir pembahasan, diharapkan pembaca dapat :
Membuat program Java yang interaktif yang bisa mendapatkan input dari keyboard
Menggunakan class BufferedReader untuk mendapatkan input dari keyboard melalui layar console
Menggunakan class JOptionPane untuk mendapatkan input dari keyboard menggunakan GUI
5.2 Menggunakan BufferedReader untuk
mendapatkan input
Pada bagian ini, kita akan menggunakan class BufferedReader yang berada di package java.io
untuk mendapatkan input dari keyboard.
Berikut ini adalah langkah-langkah yang diperlukan untuk mendapatkan input dari keyboard:
1.Tambahkan di bagian paling atas code Anda:
import java.io.*;
2.Tambahkan statement berikut:
BufferedReader dataIn = new BufferedReader(new InputStreamReader( System.in) );
3. Deklarasikan variabel String temporary untuk mendapatkan input, dan gunakan fungsi readLine() untuk mendapatkan input dari keyboard. Anda harus mengetikkannya di dalam blok try-catch:
try{
String temp = dataIn.readLine(); }
catch( IOException e ){
System.out.println(“Error in getting input”); }
Berikut ini adalah source code lengkapnya:
import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; public class GetInputFromKeyboard {
public static void main( String[] args ){
BufferedReader dataIn = new BufferedReader(new InputStreamReader( System.in) );
System.out.print("Please Enter Your Name:");
try{
name = dataIn.readLine(); }catch( IOException e ){ System.out.println("Error!"); }
System.out.println("Hello " + name +"!");
}
}
Berikutnya akan penjelasan setiap baris dari code tersebut:
Statement,
import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException;
menjelaskan bahwa kita akan menggunakan class BufferedReader, InputStreamReader dan IOException yang berada di java.io package. Java Application Programming Interface (API) berisi ratusan class yang sudah didefinisikan sebelumnya yang dapat digunakan untuk program Anda. Class-class tersebut dikumpulkan di dalam packages.
Packages berisi class yang mempunyai fungsi yang saling berhubungan. Seperti pada contoh di atas, java.io package mengandung class-class yang memungkinkan program untuk melakukan input dan output data. Pernyataan di atas juga dapat ditulis sebagai berikut,
import java.io.*;
yang akan mengeluarkan semua class yang berada dalam package, dan selanjutnya kita bisa menggunakan class-class tersebut dalam program kita.
Dua statement selanjutnya,
public class GetInputFromKeyboard {
public static void main( String[] args ){
kita sudah mempelajari pada pelajaran sebelumnya. Pernyataan ini mendeklarasikan class bernama GetInputFromKeyboard dan kita mendeklarasikan method main.
Dalam statement,
BufferedReader dataIn = new BufferedReader(new InputStreamReader( System.in) );
kita mendeklarasikan sebuah variabel bernama dataIn dengan tipe class BufferedReader. Jangan mengkhawatirkan tentang maksud dari syntax saat ini. Kita akan menjelaskannya pada akhir pembahasan. Sekarang, kita akan mendeklarasikan variabel String dengan identifier name, String name = "";
Pernyataan di atas merupakan tempat untuk menyimpan input dari user. Nama variabel diinisialisasi sebagai String kosong "". Sebaiknya kita selalu menginisialisasi sebuah variabel setelah kita mendeklarasikannya. Baris berikutnya adalah memberikan output sebuah String pada layar yang menanyakan nama user.
Sekarang, blok di bawah ini merupakan try-catch block,
try{
name = dataIn.readLine(); }catch( IOException e ){ System.out.println("Error!"); }
Pada baris ini menjelaskan bahwa kemungkinan terjadi error pada pernyataan,
name = dataIn.readLine();
akan ditangkap. Kita akan membahas tentang penanganan exception pada bab selanjutnya dari pembahasan ini, tetapi untuk sekarang, Anda cukup mencatat bahwa Anda perlu menambahkan kode ini untuk menggunakan method readLine() dari BufferedReader untuk mendapatkan input dari user.
Selanjutnya kembali ke pernyataan,
name = dataIn.readLine();
method diatas memanggil dataIn.readLine(), mendapatkan input dari user dan memberikan sebuah nilai String. Nilai ini akan disimpan ke dalam variabel name, yang akan kita gunakan pada
statement akhir untuk menyambut user,
System.out.println("Hello " + name + "!");
4.9. Variabel
Variabel
adalah item yang digunakan data untuk menyimpan pernyataan objek.variabel
memiliki
tipe data
dan
nama
. Tipe data menandakan tipe nilai yang dapat dibentuk
oleh variabel itu sendiri.
Nama variabel
harus mengikuti aturan untuk identifier.
4.9.1. Deklarasi dan Inisialisasi Variabel
Untuk deklarasi variabel adalah sebagai berikut,
<data tipe> <name> [=initial value];
Catatan:
Nilainya berada diantara <> adalah nilai yang disyaratkan, sementara nilai
dalam tanda [] bersifat optional.
Berikut ini adalah contoh program yang mendeklarasikan dan menginisialisasi beberapa
variabel,
}
public class VariableSamples
{
public static void main( String[] args ){
//deklarasi tipe data dengan nama variable
//
result dan
tipe data
boolean
boolean result;
//deklarasi tipe data dengan nama variabel
//
option
dan tipe data
char
char option;
option = 'C'; //menandai 'C' sebagai option
//
grade,
double
tipe data dan telah di inisialisasi
//to 0.0
double grade = 0.0;
}
Petunjuk Penulisan Program:
1.
Sangat baik untuk menginisialisasi variabel yang Anda buat seperti Anda
mendeklarasikannya.
2.
Gunakan nama yang bersifat menggambarkan deskriptif untuk variabel yang Anda
buat, jika Anda ingin mempunyai variabel yang terdiri atas nilai siswa, beri nama
dengan nama
grade
dan jangan hanya beberapa huruf random yang Anda pilih.
3.
Deklarasikan satu variabel tiap baris kode. Sebagai contoh , deklarasi variabel adalah
sebagai berikut,
d
ouble exam=0;
double quiz=10;
double grade = 0;
Bentuk yang lebih disukai ketika melakukan deklarasi adalah,
double exam=0, quiz=10, grade=0;
4.9.2. Menampilkan Data Variabel
Untuk mengeluarkan nilai dari variabel yang diinginkan, kita dapat menggunakan
perintah sebagai berikut,
System.out.println()
System.out.print()
Berikut ini adalah contoh program,
public class OutputVariable
{
public static void main( String[] args ){
int value = 10;
char x;
x = ‘A’;
System.out.println( value );
System.out.println( “The value of x=” + x );
}
}
Program tersebut akan mengeluarkan teks berikut pada layar,
10
The value of x=A
4.9.3. System.out.println() vs. System.out.print()
Apa yang membedakan diantara perintah System.out.println() and System.out.print()?
Yang pertama menambahkan baris baru pada akhir data untuk dikeluarkan, sementara
selanjutnya tidak. Perhatikan pernyataan tersebut,
System.out.print("Hello ");
System.out.print("world!");
Hello world!
Sekarang perthatikan pernyataan berikut,
System.out.println("Hello ");
System.out.println("world!");
Pernyataan ini akan menghasilkan output sebagai berikut pada layar,
Hello
world!
4.9.4. Variabel Reference dan Variabel Primitif
Sekarang kita akan membedakan dua tipe variabel yang dimiliki oleh program Java. Ada
variabel
reference
dan
variabel primitif
.
Variabel primitif
adalah variabel dengan
tipe data primitif. Mereka menyimpan data dalam lokasi memori yang sebenarnya imana
variabel tersebut berada.
Variabel Reference
adalah variabel yang menyimpan alamat
dalam lokasi memori. Yang menunjuk ke lokasi memori dimana data sebenarnya berada.
Ketika Anda mendeklarasikan variabel pada class tertentu, Anda sebenarnya
mendeklarasikan reference variable dalam bentuk objek dalam classnya tersebut.
Sebagai contoh, Apabila kita mempunyai dua variabel dengan tipe data int dan String.
int num = 10;
String name = "Hello"
Dimisalkan ilustrasi yang ditunjukkan dibawah ini adalah memori yang ada pada
komputer Anda, dimana Anda memiliki alamat dari setiap sel memorinya, nama variabel
dan datanya terbentuk sebagai berikut.
Memory Variable Data
Address Name
1001 num 10
: :
1563 name Address(2000)
:
:
:
:
:
2000 "Hello"
Seperti yang dapat Anda lihat, untuk variable primitif num, datanya berada dalam lokasi
dimana variabel berada. Untuk reference variable name, variabel hanya menunjuk
alamat dimana data tersebut benar-benar ada.
4.10 Operator
Dalam Java, ada beberapa tipe operator. Ada operator aritmatika, operator relasi,
operator logika, dan operator kondisi. Operator ini mengikuti bermacam-macam prioritas
yang pasti sehingga compilernya akan tahu yang mana operator untuk dijalankan lebih
dulu dalam kasus beberapa operator yang dipakai bersama-sama dalam satu
pernyataan.
4.10.1 Operator Aritmatika
Operator Penggunaan Keterangan
+ op1 + op2 Menambahkan op1 dengan op2
* op1 * op2 Mengalikan op1 dengan op2
/ op1 / op2 Membagi op1 dengan op2
% op1 % op2 Menghitung sisa dari pembagian op1
dengan op2
- op1 - op2 Mengurangkan op2 dari op1