Modul III, Input, Output Dan Ekspresi Sederhana
Modul III, Input, Output Dan Ekspresi Sederhana
A. Pengantar
Yang akan dibicarakan dalam modul ini adalah bagaimana Java membaca data dari
keyboard lalu menampilkannya di layar komputer. Hal ini tidak begitu mudah dilakukan di Java
karena Java merancangnya sedemikian hingga fasilitas yang ada dapat mengakomodasi
kompleksitas dan keragaman penggunaan antarmuka (interface) yang dikehendaki user yakni
memakai layar komputer grafis dan bukan lagi layar teks . Oleh karena itu, pembicaraan tentang
input dan output ini akan memaksa Anda untuk sedikit bersinggungan dengan konsep obyek
yang belum dikenalkan. Selain itu, modul ini juga akan menyinggung beberapa cara penulisan
pernyataan atau ekspresi untuk mengelola atau memanipulasi komputasi/perhitungan di program
Java. Seperti halnya dengan input dan output, beberapa ekspresi harus dilakukan menggunakan
konsep obyek.
Sudah dikenalkan di modul sebelumnya bahwa penulisan output dapat dilakukan dengan
memanggil subprogram atau obyek yang bernama System.out. Fungsi obyek ini memang untuk
menampilkan output ke user. Ada obyek lain yang terkait dengannya yakni System.in. Mudah
diduga obyek ini berfungsi untuk membaca data yang dimasukkan oleh user. Untuk kepentingan
memasukkan data (input) Anda akan menggunakan apa yangdisebut dengan class Scanner. Kata
Scanner sendiri berarti pembaca.
Sebelum Anda memakai kelas Scanner maka Anda harus memasukkan perintah di
bawah ini di awal program sebelum perintah public class …. Perintah tersebut adalah
import.java.util.Scanner;
Kemudian masukkan perintah di bawah ini di awal dari metode main() Anda
Perhatikan perintah rumit tersebut. Kata Scanner adalah type dari obyek yang bernama
inputBaku (Anda boleh mengganti kata ini dengan kata yang lain yang anda sukai). Karena Anda
sekarang sudah memiliki obyek inputBaku maka sebenarnya inputBaku ini memiliki beberapa
tingkah laku atau kemampuan yang bisa Anda aktifkan untuk memasukkan data. Salah satunya
adalah kemampuan untuk membaca data bilangan bulat (int). Cara mengaktifkan kemampuan
tersebut dengan memberi perintah berikut
jumlah = inputBaku.nextInt();
Tentu saja variabel jumlah sudah terlebih dahulu dideklarasikan sebagai int.
1
Perintah jumlah = inputBaku.nextInt(); ini apabila dijalankan oleh compiler akan membuat
komputer Anda menunggu sampai anda memasukkan bilangan bulat tertentu sebelum
menjalankan perintah-perintah selanjutnya.
Karena sebaiknya user tahu dengan tepat data apa yang harus diketikkan maka perintah
pemasukan data mamakai class Scanner sebaiknya digabung dengan perintah System.out.print().
Dengan demikian perintah pemasukan data akan lebih baik berbentuk
int jumlah;
jumlah = inputBaku.nextInt();
Dengan rangkaian perintah di atas maka layar komputer akan menampilkan dialog pemasukan
data seperti berikut
Pada posisi tersebut komputer menunggu user mengetikkan data bilangan bulat dan menekan
tombol Enter.
Perhatikan bahwa dalam rangkaian perintah di atas, digunakan perintah print() dan bukannya
println(). Sebenarnya keduanya boleh dipakai tetapi efeknya berbeda. Karena println() akan
menimbulkan efek ganti baris (seperti tombol Enter) maka jika digunakan println() di perintah di
atas yakni menjadi
int jumlah;
jumlah = inputBaku.nextInt();
--
2
Dengan memakai fasilitas class Scanner seperti diuraikan di atas maka program
menghitung luas segitiga di Modul II dapat ditulis ulang menjadi
Import java.util.Scanner;
int alas, tinggi; // deklarasi variabel untuk alas, tinggi, luas segitiga
double luas;
System.out.print(“ Masukkan alas segitiga : “); // meminta user memasukkan data alas
alas = dataSegitiga.nextInt();
System.out.print(“ Masukkan tinggi segitiga : “);// meminta user memasukkan data tinggi
tinggi = dataSegitiga.nextInt();
Untuk membaca data lain yang bukan integer maka class Scanner mempunyai beberapa
metode yakni
next() : untuk membaca data kata (tanpa spasi) dan bertipe String
3
C. Ekspresi
Ekspresi adalah pernyataan yang melibatkan variabel, data elementer maupun konstanta.
Ekspresi mempunyai kedudukan yang sangat penting dalam pemrograman karena perhitungan
banyak dilakukan memakai ekspresi. Penyusunan ekspresi memakai lambang-lambang tertentu
yang secara umum disebut dengan operator. Ada banyak jenis operator yang dapat dogolongkan
menjadi operator aritmatika, operator relasional dan operator logika.
Java juga mengijinkan tanda – untuk digunakan sebagai tanda minus, sebagai contoh –X
akan sama artinya dengan (-1)* X. Demikian halnya dengan tanda plus (+), boleh Anda gunakan
untuk menyambung data yang memiiki tipe String, sehingga myString = “Apa ” + “Kabar”; akan
menjadikan variabel myString berisi kaliamat “Apa kabar”.
Penambahan nilai variabel tertentu dengan 1 akan sering Anda lakukan dalam penulisan
program. Demikian pula pengurangan variabel dengan 1 juga akan sering Anda lakukan. Untuk
kepentingan ini Anda bisa menyatakannya dengan ekspresi berikut:
4
Cara penulisan lain yang lebih intuitif adalah memakai operator ++ dan --. Ekspresi kaunter =
kaunter + 1; dan ulangi = ulangi -1; di atas dapat juga dituliskan masing-masing menjadi
kaunter++; //penulisan ini menghasilkan efek yang sama dengan kaunter = kaunter +1;
Meskipun X++ dan ++X sama artinya dan demikian pula antara X-- dan --X tetapi ketika
digunakan dalam membentuk ekspresi maka maknanya harus dicermati dengan hati-hati. Dalam
X++ maka X merujuk ke nilai yang lama yakni sebelum ditambah 1 tetapi dalam ++X maka X
merujuk ke nilai yang baru yakni X yang sudah ditambah 1. Oleh karena itu jika X bernilai 6
maka
Ekspresi X++, X--, ++X maupun --X dapat juga digunakan dalam ekspresi gabungan seperti
berikut:
Z = (++X) * (Y --)
Java memiliki tipe data Boolean yang bernilai hanya dua yakni benar (true) dan salah
(false). Dengan fasilitas ini pemrogram dapat membuat berbagai ekspresi yang hasilnya berupa
salah satu dari tipe Boolean tersebut. Ekspresi ini dibentuk memakai operator relasional beirkut:
A< B artinya apakah isi varaibel A lebih kecil dari isi variabel B
A> B artinya apakah isi variabel A lebih besar dari isi variabel B
A <= B artinya apakah isi variabel A lebih kecil atau sama dengan isi variabel B
A >= B artinya apakah isi variabel A lebih besar atau sama dengan isi variabel B
Relasi pembandingan di atas tidak hanya bisa dikenakan untuk variabel yang bertipe
bilangan (int, double, byte, float) tetapi juga bisa diberlakukan untuk tipe huruf (char). Untuk
variabel tipe char maka di Java berlaku bahwa huruf besar (capital) mempunyai urutan lebih
5
awal dibanding huruf kecil sehingga ‘B’ < ‘a’ sedangkan ‘a’ < ‘b’ dan ‘C’ < ‘D’. Meskipun
demikian, pembandingan memakai operator <, >, <= dan >= tidak bisa dipakai untuk
membandingkan variabel dengan tipe String. Khusus untuk operator == dan != dapat dipakai
untuk menghasilkan nilai boolean seperti contoh berikut:
boolean samaTanda;
Operator logika (boolean) dan, atau serta tidak masing-masing dinyatakan dengan
lambang berikut di Java
( x != 0 ) && ( y/x > 1 ) //dibaca: x tidak sama dengan nol dan y dibagi x lebih dari satu
Dalam ekspresi berbentuk nama_variabel = ekspresi maka secara umum berlaku aturan
bahwa tipe data di sebelah kanan tanda sama dengan harus sama dengan tipe data dari variabel
yang berada di samping kiri tanda sama dengan. Namun demikian, Java melakukan konversi data
dengan catatan hasil perhitungan tidak mengganggu dan secara konseptual masuk akal. Berikut
contoh program di mana Java melakukan konversi otomatis.
int A;
double X;
short B;
A = 17;
X = A; // tidak masalah karena A akan dikonversi ke tipe double
B = A; // illegal alias tidak boleh karena Java tidak akan mengambil resiko
// mengkonversi isi A yang int ke short karena bisa jadi tidak cukup
6
Meskipun demikian, konversi dapat dilakukan secara paksa oleh pemrogram asal pemrogram
yakin bahwa konversi mungkin dilakukan. Hal ini dilakukan memakai perintah casting seperti
dalam contoh berikut
int A;
short B;
A = 17;
Java menungkinkan untuk menyingkat penulisan ekspresi penugasa dengan pola berikut:
x -= y; // sama dengan x = x – y;
x *= y; // sama dengan x = x * y;
x /= y; // sama dengan x = x / y;
x %= y; // sama dengan x = x % y;