A. TUJUAN
Modul ini bertujuan agar mahasiswa:
1. Memahami cara pendefinisian dan penugasan variabel menggunakan bahasa Java
2. Memahami cara penggunaan metode input dan ouput dalam bahasa Java
3. Mengetahui fungsi-fungsi metode yang sudah disediakan oleh Java
B. MATERI
B.1. PENUGASAN
Penugasan adalah proses pemberian nilai ke dalam sebuah variabel yang telah dideklarasikan. Penugasan
suatu nilai pada sebuah variabel dilakukan menggunakan tanda sama dengan pada variabel yang dimaksud.
Contoh B.1.1
Sebuah variabel bernama A bertipe bilangan bulat (integer) ingin diberikan nilai sebesar 5. Format penugasan nilai ke
dalam variabel A adalah sebagai berikut.
int A = 5;
Tulisan int sebelum variabel A berfungsi untuk membentuk sebuah variabel bertipe integer. Huruf A adalah nama dari
variabel tersebut. Variabel yang akan diberikan nilai berada di posisi sebelah kiri dari tanda sama dengan (=), sedangkan
nilai yang akan ditugaskan berada di posisi sebelah kanan.
Contoh B.1.1 menunjukkan kode sederhana dari aktivitas penugasan. Nilai yang akan ditugaskan pada sebuah
variabel dapat berasal dari berbagai sumber. Sumber nilai yang berbeda-beda menyebabkan kode penugasan yang
dituliskan pun berbeda. Adapun sumber-sumber nilai tersebut dapat dijabarkan sebagai berikut.
1. Penugasan nilai secara langsung
Pada tipe ini, sebuah nilai yang ditentukan oleh pembuat program langsung ditugaskan pada variabel tertentu.
Contoh B.1.1 adalah contoh penugasan nilai secara langsung.
2. Penugasan dengan formula/ekspresi tertentu
Pada tipe ini, nilai yang ditugaskan pada sebuah variabel merupakan nilai hasil pemrosesan masukan suatu
formula/fungsi/ekspresi tertentu.
Contoh B.1.2
Variabel B adalah sebuah variabel bertipe double (bilangan riil). Ke dalam variabel ini hendak ditugaskan sebuah
nilai yang merupakan hasil operasi perkalian dari nilai-nilai lainnya.
double B;
B = 0.01*500000;
Dengan kode tersebut, variabel B akan bernilai 5000.0. Pada Contoh B.1.2. ini ditunjukkan kondisi apabila
penugasan tidak dilakukan berbarengan dengan proses deklarasi sebuah variabel.
Contoh B.1.3
Variabel A adalah sebuah variabel bertipe integer. Variabel B dan C adalah variabel bertipe double. Ke dalam
variabel A dan B beruturt-turut ditugaskan nilai 1250 dan 0.01, sedangkan ke dalam variabel C akan ditugaskan nilai
berupa perkalian kedua nilai variabel A dan B. Berikut kode yang digunakan dalam penugasan pada kasus ini.
int A = 1250;
double B = 0.01;
double C = A*B;
Dengan kode seperti ini, variabel C akan bernilai 12.5
Contoh B.2.1
Terdapat variabel A dan B, masing-masing bertipe char dan String. Pada keduanya hendak ditugaskan nilai berturut-
turut ‘5’ dan “Bandung”.
char A = ‘5’;
String B = “Bandung”;
boolean C = 5 > 7;
Pada Contoh B.2.1 dapat dilihat bahwa nilai variabel A adalah karakter angka 5. Cara penugasan nilai karakter harus
diapit oleh tanda petik tunggal (‘). Berbeda dengan karakter, penugasan pada variabel bertipe String harus diapit oleh
tanda petik ganda (“). Pada contoh ini, variabel A akan bernilai karakter angka 5 sedangkan variabel B bernilai kata
Bandung. Variabel C adalah variabel bertipe boolean. Terdapat ekspresi yang ditugaskan pada variabel C yaitu 5 lebih
besar dari 7. Ekspresi ini akan dievaluasi dan nilainya akan ditugaskan ke variabel C. Ekspresi 5 lebih besar dari 7 adalah
tidak benar, maka nilai yang akan ditugaskan ke variabel C adalah false.
Penugasan nilai suatu karakter pada variabel A di atas memungkinkan tidak digunakannya tanda petik tunggal, namun
nilai variabel A menjadi berbeda. Pada Contoh B.2.1 nilai variabel A adalah karakter angka 5, apabila tanda petik tunggal
pada Contoh B.2.1 dihilangkan maka nilai variabel A tidak lagi sama dengan karakter angka 5, namun nilai variabel
tersebut akan menjadi sebuah karakter bernilai ASCII sama dengan 5. Setiap karakter yang terdapat pada komputer
memiliki kode standar yang disebut kode ASCII. Kode inilah yang akan dibaca oleh komputer apabila penugasan suatu
karakter hanya menggunakan bilangan tanpa diapit tanda petik tunggal. Sebagai contoh, apabila diinginkan sebuah
variabel char bernilai karakter angka 5, maka salah satu dari kedua cara penugasan di bawah ini dapat digunakan.
char A = ‘5’; ATAU char A = 53;
Cara penugasan lain yang mungkin bermanfaat untuk diketahui adalah penugasan pada variabel bertipe bilangan bulat.
Penugasan pada tipe variabel ini dapat dilakukan dengan cara penugasan sebuah karakter. Mengingat setiap karakter
dalam komputer memiliki kode ASCII yang merupakan bilangan bulat, maka nilai yang akan ditugaskan ke dalam
variabel bertipe bilangan bulat adalah nilai ASCII dari karakter tersebut. Sebagai contoh, apabila diinginkan sebuah
variabel integer bernilai 65, maka salah satu dari kedua cara penugasan di bawah ini dapat digunakan. Karakter huruf
‘A’ memiliki nilai ASCII sebesar 65 sehingga nilai variabel B akan sama.
Contoh B.3.1.
package program1;
public class Dasar {
public static void main(String[] args){
double A = 0.01*500;
int B = 10;
int C = (int)(A*B); }}
Pada contoh B.3.1 ini, nilai variabel C sama dengan 50.
Variabel C adalah variabel bertipe integer yang memiliki tingkat ketelitian/rentang lebih kecil dibandingkan nilai yang
akan ditugaskan padanya, yaitu tipe double. Hasil perkalian menghasilkan nilai bertipe double mengikuti tipe variabel
dengan rentang terbesar dari 2 variabel yang terlibat dalam proses perkalian. Casting dilakukan dengan menambahkan
kode (int) di depan proses matematis yang akan dilakukan. Kode ini berfungsi untuk mengubah hasil perkalian variabel
yang bertipe double ke dalam bentuk integer. Apabila casting tidak dilakukan, akan terjadi error pada program karena
variabel C tidak dapat menampung hasil perkalian ini. Contoh-contoh lain dari proses casting adalah sebagai berikut.
Contoh B.3.2.
package program1;
public class Dasar {
public static void main(String[] args){
int A = 325;
byte B = (byte)A; }}
Nilai variabel B adalah 69
package program1;
public class Dasar {
public static void main(String[] args){
short A = 110; char B = (char)A; }}
Nilai variabel B adalah n
package program1;
public class Dasar {
public static void main(String[] args){
byte A = 110;
long B = A; int C = (int)B;}}
Nilai variabel C adalah 110
Contoh pertama pada Contoh B.3.2 menunjukkan proses casting yang dilakukan karena nilai yang akan ditugaskan ke
dalam variabel B memiliki rentang nilai yang lebih besar dibandingkan rentang tipe variabel B sendiri yang hanya dari -
128 hingga 127. Dengan melakukan casting, nilai integer akan disesuaikan/dikonversi ke rentang nilai variabel bertipe
byte.
Contoh kedua menunjukkan casting yang dilakukan karena tipe dari variabel berbeda walaupun sebenarnya pada tipe
variabel bertipe char dapat ditugaskan sebuah bilangan bulat yang merupakan kode ASCII dari suatu karakter.
Penugasan bilangan bulat ke dalam variabel char dapat dilakukan apabila nilai bilangan bulat tersebut langsung
ditugaskan atau dengan kata lain tidak mengacu/berasal dari referensi variabel tertentu.
Pada contoh ketiga, proses casting dilakukan terhadap nilai variabel B yang akan ditugaskan ke variabel C. Casting
diperlukan karena tipe variabel B memiliki rentang yang lebih besar dibandingkan tipe variabel C. Proses casting tidak
diperlukan ketika nilai variabel A akan ditugaskan ke variabel B karena rentang nilai variabel B lebih besar dari rentang
nilai yang dimiliki tipe variabel A.
B.4. Metode Input
Penugasan nilai terhadap suatu variabel dapat dituliskan dalam bentuk nilai langsung, fungsi, ataupun referensi
nilai dari variabel lain. Nilai-nilai tersebut dapat ditetapkan langsung dan tidak berubah selama program dijalankan atau
bisa juga berubah-ubah tergantung input dari pengguna program selama program berjalan. Terdapat metode yang
memampukan suatu program Java yang dibangun mengambil input nilai dari pengguna program melalui alat input pada
komputer (keyboard, mouse, dll). Inilah cara penugasan lain yang dapat digunakan selain ketiga cara penugasan yang
telah dibahas sebelumnya. Dalam Java terdapat berbagai macam metode yang dapat digunakan untuk mempermudah
proses pengolahan input. Metode-metode tersebut terbagi ke dalam package dan class. Adapun package yang telah
terintegrasi langsung pada NetBeans dan siap digunakan tanpa harus dipanggil/dideklarasikan kembali adalah package
java.lang. Beberapa class yang terdapat pada java.lang antara lain Boolean, Math, dan System. Setiap class ini berisi
metode-metode yang dapat digunakan untuk mengolah input dalam program.
Berkaitan dengan metode yang dapat digunakan untuk mengambil input, dua metode yang akan dicontohkan di sini
adalah metode yang terdapat dalam package java.util di class Scanner dan metode yang terdapat dalam package
javax.swing di class JOptionPane. Setiap metode ini akan membaca input dalam format yang berbeda. Pada class
Scanner input dapat dibaca dalam berbagai tipe variabel sedangkan pada class JOptionPane, input akan dibaca dalam
bentuk String, sehingga perlu proses lebih lanjut untuk mengubah input String ke dalam tipe input yang diinginkan. Di
bawah ini adalah contoh penggunaan kedua metode tersebut.
Contoh B.4.1
Terdapat variabel A bertipe integer. Nilai variabel A akan diberikan melalui input pengguna program. Kode program
untuk kondisi seperti ini adalah sebagai berikut.
PENGGUNAAN SCANNER
package program1;
import java.util.Scanner;
public class Dasar {
public static void main(String[] args){
Scanner masukan = new Scanner(System.in);
int A = masukan.nextInt(); }}
PENGGUNAAN JOPTIONPANE
package program1;
import javax.swing.JOptionPane;
public class Dasar {
public static void main(String[] args){
int A = Integer.parseInt(JOptionPane.showInputDialog("Angka")); }}
Pada Contoh B.4.1 dapat dilihat penggunaan metode dalam class Scanner dan JOptionPane. Pada kedua cara ini
dilakukan pemanggilan package dan class dimana metode-metode yang memang akan digunakan terdapat di
dalamnya. Pemanggilan ini diperlukan karena kedua package ini tidak terintegrasi langsung dengan NetBeans seperti
halnya java.lang. Package harus dipanggil sebelum metode-metode dalam class di package tertentu digunakan pada
class yang lain.
Pada alternatif pertama, dalam class Dasar perlu dibangun terlebih dahulu objek Scanner yang akan membaca input.
Cara membangun objek ini adalah seperti pada baris 5 dalam contoh kode program. Adapun System.in berasal dari
class System yang mengacu kepada alat input standar yang akan digunakan. Objek Scanner yang dibangun dinamakan
sebagai masukan. Untuk selanjutnya apabila objek Scanner akan digunakan, maka pembuat program hanya tinggal
memanggil nama dari objek ini yaitu masukan.
Proses selanjutnya adalah menugaskan nilai integer tertentu ke dalam variabel A. Kode penugasan ini adalah seperti
pada baris 6 pada contoh kode program dengan Scanner. Pertama-tama dilakukan pendeklarasian variabel integer
terlebih dahulu, kemudian dilakukan penugasan setelah tanda sama dengan (=), yaitu memanggil objek masukan lalu
digunakan metode nextInt() untuk membaca masukan berupa bilangan integer. Apabila pengguna program
memberikan input selain bilangan integer maka akan terjadi error yang dilaporkan oleh NetBeans. Terdapat beberapa
metode dalam kelas Scanner yang dapat digunakan untuk membaca input. Pemilihan metode tergantung pada jenis
data yang ingin dibaca. Beberapa metode tersebut dapat dijabarkan seperti di bawah ini.
Tabel 2. Metode Kelas Scanner
Metode Penjelasan
nextByte() Membaca bilangan bulat bertipe byte
nextShort() Membaca bilangan bulat bertipe short
nextInt() Membaca bilangan bulat bertipe integer
nextFloat() Membaca bilangan riil bertipe float
nextDouble() Membaca bilangan riil bertipe double
next() Membaca suatu string yang berakhir dengan spasi putih
nextLine() Membaca sebaris string yang berakhir dengan ENTER
(Sumber : Sianipar, 2013 p. 39)
Penugasan alternatif kedua adalah menggunakan JOptionPane. Penugasan kedua ini tidak mengharuskan pembuatan
objek dari JOptionPane. Penugasan dengan JOptionPane dapat dilakukan seperti baris ke-5 pada contoh kode program
kedua. Kode JOptionPane.showInputDialog("Angka") sendiri akan membaca input dari sebuah dialog box yang
berlabelkan “Angka” seperti di bawah ini.
Gambar 1. Dialog Box JOptionPane
Input akan terbaca dalam tipe String. Variabel A yang akan ditugaskan merupakan sebuah variabel integer, oleh sebab
itu perlu konversi input String ke dalam tipe Integer. Hal ini dilakukan dengan metode parseInt dalam class Integer
yang terdapat dalam package java.lang. Perhatikan bahwa kelas java.lang tidak perlu dipanggil (import) kembali untuk
dapat menggunakan metode dalam class Integer. Dengan metode ini, input berupa String akan diubah menjadi integer
dan baru ditugaskan ke variabel A. Apabila input yang diberikan bukan berupa bilangan bulat, maka akan terjadi error
pada program karena metode parseInt tidak dapat mengubah input menjadi integer. Selain metode pengubahan String
menjadi integer, terdapat metode lainnya yang dapat digunakan sesuai dengan tipe variabel tujuan pengubahan.
Metode-metode tersebut antara lain parseDouble, parseFloat, parse Byte, parseShort, parseLong, parseBoolean yang
dapat ditemui di class Double, Float, Byte, Short, Long, dan Boolean.
Contoh B.5.1
Terdapat 2 variabel A dan B, masing-masing bertipe String dan Double. Nilai String A adalah “Suhu Ruangan” sedangkan
nilai double B sama dengan 24.3. Kedua variabel ini akan ditampilkan/dituliskan pada layar monitor.
PENGGUNAAN PRINT
package program 1;
public class Dasar {
public static void main(String[] args){
String A = "Suhu Ruangan";
double B = 24.3;
System.out.print(A);
System.out.print(B);
}}
PENGGUNAAN PRINTLN
package program1;
public class Dasar {
public static void main(String[] args){
String A = "Suhu Ruangan";
double B = 24.3;
System.out.println(A);
System.out.println(B);
}}
PENGGUNAAN PRINTF
package program1;
public class Dasar {
public static void main(String[] args){
String A = "Suhu Ruangan";
double B = 24.3;
System.out.printf("%15s%6.2f",A,B);
}
}
PENGGUNAAN JOptionPane
package program1;
import javax.swing.JOptionPane;
public class Dasar {
public static void main(String[] args){
String A = "Suhu Ruangan";
double B = 24.3;
JOptionPane.showMessageDialog(null,A+B); }}
PENGGUNAAN PRINTLN
PENGGUNAAN PRINTF
PENGGUNAAN JOptionPane
Dari keempat output di atas terlihat perbedaan setiap penggunaan metode pada bentuk output yang dihasilkan.
Metode print hanya akan menuliskan nilai yang ingin ditampilkan pada satu baris yang sama, sedangkan metode println
akan memindahkan kursor ke baris selanjutnya setelah mengeksekusi setiap baris perintah println. Metode printf
merupakan metode penulisan terformat. Metode ini akan menuliskan serangkaian nilai yang ingin ditampilkan dalam
bentuk akhir berupa String. Dalam penggunaan metode ini, seseorang dapat mengatur format penulisan nilai. Kode
"%15s%6.2f" pada metode printf yang digunakan menunjukkan adanya nilai String(s) dan nilai bilangan riil (f) yang akan
dirangkai dan ditulis. Format untuk nilai String adalah rata kanan sebanyak 15 karakter (%15s) sedangkan format
penulisan bilangan riil adalah rata kanan 6 karakter dengan 2 angka dibelakang koma(%6.2f). Apabila seseorang
menginginkan penulisan bersifat rata kiri, maka dapat digunakan tanda minus(-) pada format jumlah karakter yang
disediakan. Contoh apabila %15s diganti menjadi %-15s maka tulisan “Suhu Ruangan” akan merapat ke sebelah kiri
sebanyak 15 karakter. Beberapa contoh kode format penulisan untuk tipe variabel lainnya dalam penggunaan metode
printf adalah sebagai berikut.
Contoh Penjelasan
b adalah format untuk tipe boolean. Terdapat 5 karakter rata kanan
%5b yang disediakan untuk penulisan nilai bertipe boolean (true atau
false)
%5c c adalah format untuk tipe char. Terdapat 5 karakter rata kanan yang
disediakan untuk penulisan nilai bertipe char
%7d d adalah format untuk tipe bilangan bulat. Terdapat 7 karakter rata
kanan yang disediakan untuk penulisan nilai berupa bilangan bulat
f adalah format untuk tipe bilangan riil. Terdapat 7 karakter rata
%7.2f kanan yang disediakan untuk tipe bilangan ini dengan 2 angka di
belakang koma
e adalah format untuk tipe notasi pangkat. Terdapat 8 karakter rata
%8.2e kanan yang disediakan dengan 2 angka di belakang koma. Contoh
bilangan tipe ini adalah 7.21e+09.
Metode penulisan output yang keempat adalah menggunakan message dialog box. Pada contoh dapat dilihat bahwa
kode yang digunakan adalah JOptionPane.showMessageDialog(null,A+B) dimana tanda ‘+’ digunakan untuk
menggabungkan nilai variabel A dan B menjadi suatu String yang akan ditulis dalam dialog box.
Para penyusun program perlu memperhatikan penggunaan operator numerik dengan fungsi pembagian. Apabila kedua
angka yang dibagi/terlibat merupakan bilangan bulat maka fungsi ini hanya akan menghasilkan/mengambil nilai hasil
bagi yang berupa bilangan bulat walaupun hasil bagi seharusnya tidak bulat. Oleh sebab itu apabila diinginkan nilai hasil
bagi yang sebenarnya maka salah satu nilai yang terlibat dalam pembagian harus diubah menjadi bentuk bilangan riil
seperti pada contoh Tabel 4.
Tabel 5. Operator shorthand
Kode Logika
&& AND
|| OR
! NOT
^ EXCLUSIVE OR
C. Contoh Program
C.1. Program Hitung Luas Lingkaran
ALGORITMA
0. double radius=20, luas;
1. luas = radius * radius * 3.14159
2. Tulis "Luas Lingkaran dengan radius " +radius + " adalah " + luas
PROGRAM
public static void main (String args[] ){
// LANGKAH 1
double radius=20;
double luas;
// LANGKAH 2
luas = radius * radius * 3.14159 ;
// LANGKAH 3
System.out.println("Luas Lingkaran dengan radius "+radius + " adalah " + luas ); }
ALGORITMA
0. int DepositoAwal, Periode; double bunga,hasilnya;
1. baca DepositoAwal, Periode, bunga;
2. hasilnya = DepositoAwal*Math.pow((1+bunga), Periode);
3. tulis "Hasil Deposito = %12.2f",hasilnya
PROGRAM
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// LANGKAH 1
int DepositoAwal, Periode;
double bunga, hasilnya;
// LANGKAH 2
System.out.print("Masukkan Jumlah Depostio = ");
DepositoAwal = input.nextInt();
System.out.print("Lama Deposito ( bulan ) = ");
Periode = input.nextInt();
System.out.print("Besarnya Bunga per bulan = ");
bunga = input.nextDouble();
// LANGKAH 3
hasilnya = DepositoAwal*Math.pow((1+bunga), Periode);
// LANGKAH 4
System.out.printf("Hasil Deposito = %12.2f",hasilnya);}
PROGRAM
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// LANGKAH 1
int HargaMotor, UangMuka, Bulan, Sisa;
double bunga, cicilan, temp;
// LANGKAH 2
System.out.print("Masukkan Harga Motor = ");
HargaMotor = input.nextInt();
System.out.print("Masukkan Uang Muka = ");
UangMuka = input.nextInt();
System.out.print("Lama Cicilan (bulan) = ");
Bulan = input.nextInt();
System.out.print("Bunga per bulan = ");
bunga = input.nextDouble();
// LANGKAH 3
Sisa = HargaMotor - UangMuka;
// LANGKAH 4
temp=Math.pow(1+bunga, Bulan);
// LANGKAH 5
cicilan = Sisa*((bunga*temp)/(temp-1)); // rumus bunga*
// LANGKAH 6
System.out.printf("Cicilannya = %12.2f",cicilan); }
D. Soal Latihan
1. Buat sebuah program yang meminta input panjang dalam cm dan menampilkan output berupa panjang dalam
inch. (1cm = 0,394 inch).
2. Buat sebuah program yang meminta input suhu dalam celcius dan menampilkan output berupa suhu dalam
Kelvin. (1 Celcius = 274 Kelvin).
3. Buat sebuah program yang meminta input 3 bilangan lalu memberi output hasil kali kumulatif dari 3 bilangan
tersebut.
4. Buat sebuah program penjualan air minum dengan harga perbotol Rp 3.000. program akan minta input berupa
jumlah botol air yang dibeli dan akan memberikan output berupa harga total yang perlu dibayar.
5. Buatlah sebuah program yang meminta masukkan berupa kata pertama, kemudian masukkan kata kedua.
Tampilkan gabungan dari kedua kata.
6. Buat sebuah program yang meminta input 2 bilangan dan memberi output hasil penjumlahan, pengurangan,
perkalian,dan pembagian dari kedua bilangan tersebut.
7. Buat sebuah program yang meminta input angka 1-9 lalu menampilkan tabel perkalian dari bilangan tersebut
dengan angka 1-10.
DAFTAR PUSTAKA
Sianipar, H.R. (2013) Teori dan Implementasi Java. Bandung: Penerbit INFORMATIKA