Modul Praktikum Pbo
Modul Praktikum Pbo
PEMROGRAMAN BERORIENTASI
OBJEK
2014
BAB 1
PENGENALAN JAVA
1. Tujuan
2. Dasar Teori
NetBeans
Memulai lembar project baru, pilih file New Project... pada bagian menu.
Pada bagian choose project Categoty pilih java, dan pada bagian Projects pilih
Java Application (Gambar 1.2)
Page 1
Masukkan project name dan project location seperti terlihat pada Gambar 1.3.
Sebagai latihan berikan nama project dengan hello_world.
Pada bagian create main class, dapat diberikan nama yang berbeda dari Project
Name nya. Tidak perlu menambahkan .Main atau .Java, NetBeans akan secara
otomatis memberikan ekstensi-nya. Setelah selesai, klik finish
Case sensitive
Kurung kurawal{}
Komentator
3. Latihan
Program sederhana mencetak baris kalimat
Page 2
B
C
Analisa program
file Hello_world1.class
Baris ini memuat metode pertama program. Metode adalah fungsi yang
menjalankan suatu aksi tertentu. Metode main() bersifat statis dan kosong.
Eksekusi selalu dimulai dengan metode utama dari kelas yang
mengendalikan aplikasi, yaitu kelas yang memiliki nama sama dengan file
sumber aplikasi.
Baris ini menampilkan pesan siap belajar java pada hasil running.
System adalah kelas yang merupakan bagian dari pustaka java, out objek
yang terdapat pada kelas system. Keyword println() mencetak baris
: mutiara sugiharto
NIM
: 12/336147/PA/15080
Alamat
No.Telp
: 0324-6575757
: tiara@gmail.com
Page 3
BAB 2
1. Tujuan
Praktikan dapat memahami operator dengan benar.
Memahami struktur dasar / sintaks bahasa Java.
Membuat program bahasa Java sederhana.
2. Dasar Teori
a. Identifier
Adalah nama yang biasa digunakan dalam pemrograman untuk menyatakan : variable,
konstanta, kelas, metode.
Identifier valid
:
No
kode_barang
kodeBarang
Pelanggan_alamat
Identifier invalid
1_harga
%barang
NamaPelanggan
b. Keyword
Identifier penggunaan khusus yang sudah ada pada pustaka Java, dan tidak dapat
digunakan sebagai identifier
Contoh keyword pada Java :
case
package
return
new
this
public
break
class
c. Tipe Data
Dibagi menjadi 2 kategori
1. Tipe data primitif : tipe data yang mempunyai nilai tertentu, bukan referensi kelas
atau objek.Dibagi menjadi 4 tipe data primitive
Tipe Data
Jenis
Storage
Nilai
Integer(bilangan
byte
8 bit
-128 s/d 127
bulat
short
16 bit
32768 s/d 32767
long
64 bit
922337203s/d 922337203
int
32 bit
2147483648 s/d 2147483647
Float(bilangan nyata)
float
32 bit
3.4E-38 s/d 3.4E+38
double
64 bit
1.7E-308 s/d 1.7E+308
char
char
16 bit
\u0000 s/d \uFFFF
boolean
boolean
1 bit
True atau false
2. Tipe data referensi : terbentuk dari tipe data sederhana dan tipe data referensi
string
array
class
interface
d. Operator
Operator digunakan untuk melakukan pengolahan data, melibatkan konstanta dan
variabel yang telah kita buat.
Jenis Operator
Increment/ Decrement
Unary Operator
Perkalian/pembagian/modulus
Simbol
++ , + , - , ~ , ! , (cast)
*, /, %
Penambahan/pengurangan
Operator shift
Page 4
Page 5
BAB 3
FLOWCONTROL
1. Tujuan
Praktikan mengenal beberapa perintah untuk seleksi kondisi
Praktikan mampu menggunakan bernagai conditional statement
2. Dasar Teori
A. Percabangan
Pernyataan bentuk if :
if (kondisi)
Pernyataan;
Pernyataan bentuk if else
if (condition)
statement;
else
statement;
Bentuk Nested If Else(if bersarang) :
if (condition){
if (condition)
statement;
else
statement;
}
else {
if (condition)
statement;
else
statement;
}
Bentuk Else if
:
if (condition){
statement(s);
}
else if (condition)
statement;
else if (condition){
statement(s);
}
else
statement4;
Switch
:
switch (identifier) {
case value1:
statements;
break;
case value2:
statements;
break;
default:
statements;
break;
}
B. Perulangan
While loop :
Page 6
while (condition) {
statement(s);
}
Do While Loop
:
do {
statement(s);
} while (condition);
For Loop
for (initial; condition; post-iteration) {
statement(s);
}
Nested Loop : terjadi ketika terdapat loop di dalam loop. Dengan demikian, jumlah perulangan
yang terjadi lebih banyak; yaitu perkalian antara loop yang di dalam dengan loop yang di luar.
C. Branching Statement
Branching statement digunakan untuk menginterupsi proses yang sedang berjalan. Terdapat tiga
jenis branching dalam Java:
break : digunakan pada pencabangan maupun perulangan. Jika statement break dieksekusi,
pencabangan atau perulangan akan dihentikan.
Continue : jika terjadi continue, statement akan dilewati dan alur program kembali ke evaluasi
kondisi.
Return
: Return dibutuhkan untuk keluar dari method
3. Latihan (Praktekkan listing program berikut dan tulis hasil serta analisa program
{
int nilai = 70;
if (nilai >=60) {
System.out.println(Nilai= +
nilai + lulus ujian);
}
}
Statement if-else
Int pembelian =110;
System.out.println (Jumlah pembelian
= + pembelian);
If (pembelian>= 100) {
System.out.println (Diskon = 20%);
}
else{
System.out.println (Diskon= 5%);
}
if (isSurplus == 0)
if (salesTotal < 10000000)
komisi = 0.02;
else
komisi = 0.04;
else
if (salesTotal < 10000000)
komisi = 0.03;
else
komisi = 0.06;
Statement else if
int nilai;
nilai = 75;
System.out.println ("Nilai =
nilai);
" +
Page 7
A");
B");
C");
D");
E");
2. Dasar Teori
a. Pemrograman berorientasi objek : berorientasikan kepada objek, jadi semua data dan
fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek.
b. Kelas dan Objek
Kelas : dengan satu atau lebih objek di dalamnya, didefinisikan sebagai sesuatu yang
mempunyai data (sifat) dan fungsi (kelakuan).
Konsep pewarisan (inheritance): Proses pembentukan kelas baru dari kelas yang sudah
ada
menghasilkan hierarki kelas yaitu puncak hierarki yang disebut kelas abstrak.
Konsep overriding
Nama kelas
Variable instance
Mendefinisikan objek dalam
kelas(instansiasi)
Page 8
metode
Pada program diatas menjelaskan kelas main memanggil fungsi lain. Pada file Rumah, terdapat kelas
Rumah dan deklarasi metode r_tamu dan k_mandi. Keyword void tidak mengembalikan nilai metode.
Pada file Isirumah di deklarasikan
Operator titik (.) untuk mengakses (instance variable dan method). Pada Rumah.r_tamu dan
Panggil.k_mandi
Analisa Program
Variable
instance
dideklarasikan
kelas
metode.
Pada
kelas
Metode
main
deklarasi
Menset nilai
variable instance
interger,
instance kucingku
Page 9
Setiap objek atau instance dari suatu kelas akan memiliki salinan data sendiri-sendiri. Ini
artinya, antara objek yang satu dengan yang lainnya, nilai data-datanya bisa berbeda.
Perhatikan kode program di bawah ini.
Contoh instansiasi lebih dari satu objek dari satu kelas yang sama
variabel karyawan002 sebagai referensi ke objek yang ditunjuk oleh karyawan001. Dengan
demikian, variabel karyawan001 dan karyawan002 masing-masing menunjuk ke objek
Karyawan yang sama. Maka dari itu, setiap perubahan yang terjadi pada objek yang
bersangkutan melalui karyawan001 akan berpengaruh juga pada objek yang ditunjuk oleh
karyawan002, karena keduanya sebenarnya adalah objek yang sama, begitu juga sebaliknya.
public class PengaruhReferensiObjek1 {
public static void main(String[] args) {
/*Instansiasi 2 objek referensi yang mengacu pada 1 objek karyawan */
Karyawan Karyawan001 = new Karyawan();
Karyawan Karyawan002 = Karyawan001;
//mengisi data Objek Karyawan melalui objek referensi 1
Karyawan001.nama = "Mischella";
Karyawan001.divisi = "HRD";
//mencetak data object karyawan yang di acu 2 objek referensi
System.out.println("Data Karyawan001");
System.out.println("Nama
: " + Karyawan001.nama);
System.out.println("Divisi : " + Karyawan001.divisi);
System.out.println(" ");
System.out.println("Data Karyawan002");
System.out.println("Nama
: " + Karyawan002.nama);
System.out.println("Divisi : " + Karyawan002.divisi);}}
Page 10
Method berparameter
dapat digunakan untuk
segala ukuran tabung.
Constructor
Constructor adalah method khusus yang didefinisikan di dalam kelas dan akan dipanggil
secara otomatis tiap kali terjadi instansiasi objek. Constructor itu sendiri berfungsi untuk
melakukan inisialisasi nilai terhadap data-data yang terdapat pada kelas yang
bersangkutan. Jika kita tidak mendefinisikan constructor pada kelas yang kita buat, maka
secara otomatis Java akan membuatkannya untuk kita. Constructor semacam ini
dinamakan dengan default constructor
Keyword This
Java menyediakan kata kunci this. this merupakan referensi ke objek yang sedang aktif.
this digunakan di dalam method untuk mewakili nama kelas bersangkutan.
Overload terhadap method dan constructor
Parameter dalam suatu method dikatakan berbeda dari method yang lainnya apabila:
Jumlahnya berbeda, meskipun tipe datanya sama
Tipe datanya berbeda, meskipun jumlahnya sama
Jumlah dan tipe datanya berbeda
Prose pendefinisian method dengan nama sama ini disebut dengan overload
Page 11
proses overload diaplikasikan ke dalam constructor suatu kelas. Hal ini disebabkan
karena sebenarnya constructor juga adalah sebuah method yang mengembalikan tipe
kelas (dirinya sendiri).
3. Latihan
Page 12
double hitungSumbanganZakat() {
double zakat = gaji * 0.025;
return zakat;
}
}
Deklarasi kelas Karyawan dengan constructor Deklarasi kelas Karyawan dengan constructor
dinamis
public class Karyawan {
String ID, nama, divisi;
public class Karyawan {
double gaji;
String ID, nama, divisi;
//constructor kelas karyawan
double gaji;
Karyawan() {
ID = "k001";
//constructor kelas Karyawan
nama = "Budi";
Karyawan(String kode, String
divisi = "Produksi";
Nama, String Div, double Gaji) {
gaji = "1750000";
ID = kode;
}
nama = Nama;
divisi = Div;
void cetakData() {
gaji = Gaji;
System.out.println("Data
}
Karyawan
:");
System.out.println("ID
void cetakData() {
: " + ID);
System.out.println("Data
System.out.println("Nama
Karyawan :");
: " + nama);
System.out.println("ID
: " + ID);
System.out.println("Divisi : " +
System.out.println("Nama
divisi);
: " + nama);
System.out.println("Gaji
: " + gaji);
System.out.println("Divisi : " +
}
divisi);
System.out.println("Gaji
double hitungSumbanganZakat() : " + gaji);
{
}
double zakat = gaji *
0.025;
double hitungSumbanganZakat()
return zakat;
{
}
double zakat = gaji *
}
0.025;
return zakat;
}
}
Page 13
1. Tujuan Praktikum
2. Dasar teori
1. Implementasi Enkapsulasi(pembungkusan)
Suatu cara untuk meyembunyikan informasi detail dari suatu class, berupa information
hiding dan interface to acsess data.Hak akses data dan perilaku objek memiliki tingkatan:
Metode serta variable bersifat private: atribut kelas hanya dapat di akses oleh metode
dalam kelas dimana di definisikan
Metode serta variable bersifat public : variabael dan metode dapat diakses dari dalam
maupun luar kelas
Metode serta variable bersifat protected: atribut kelas hanya dapat di akses oleh kelas
dan subkelas tersebut
Metode serta variable bersifat default : hanya kelas dalam paket dapat mengakses
variable dan metode kelas
Pada enkapsulasi membuat variable bersifat private dan melakukan perubahan terhadap
atribut yang di beri hak akses dengan cara membuat suatu interface berupa metode untuk
menginisialisasi nilai dari suatu atribut disebut interface to acsess data. Secara umum,
pembungkusan data dan method dari suatu kelas dapat dituliskan seperti berikut:
class NamaKelas {
tingkat-akses data1;
tingkat-akses data2;
.
tingkat-akses dataN;
tingkat-akses method1(daftar-parameter) {
//kode untuk method1
}
tingkat-akses methodN(daftar-parameter) {
//kode untuk methodN
}
.
tingkat-akses methodN(daftar-parameter) {
//kode untuk methodN
}
}
Variabel instan : sama dengan variable kelas tetapi tidak menggunakan keyword static
Variabel local : dideklarasikan dan digunakan hanya di dalam badan metode tertentu.
Static modifier: atribut atau metode sama untuk semua objek dari kelas tertentu
Laboratorium Teknologi Jaringan
Page 14
a. Array : tipe data yang digunakan apabila data diberikan berupa kelompok data yang
disajikan secara berurutan.
tipe_data nama_variabel_array[]
Untuk mengetahui jumlah elemen dari sekelompok data yang bertipe array, dapat
digunakan perintah length .Sintaks:
nama_variabel_array.length
Array untuk dua dimensi
tipe_data nama_variabel_array[][]
b. String : String merupakan deretan karakter. Pada java, string merupakan objek dari kelas
String. Penulisan string dilakukan dengan mengapit data menggunakan tanda petik
(ganda).
String judul = Pemrograman Berorientasi Objek;
c. Latihan
program yang menunjukkan pengaruh tingkat akses data dan method pada kelas
dari tingkat akses public dan private di Mahasiswa
dalam suatu kelas
public class PengaruhHakAkses {
Page 15
}
}
Program array 2 dimensi
public class Dimensi2
int [ ] [ ] bilangan = {
Page 16
BAB VII
INHERITANCE
1. Tujuan Praktikum
2. Dasar teori
a. Pewarisan (inheritance) adalah suatu cara pembuatan class baru dengan menggunakan
kembali class yang sudah didefinisikan sebelumnya dengan menambahkan atribut dan
method baru.Pada konsep pewarisan ada beberapa istilah yang perlu diketahui,yaitu:
Sub class, digunakan untuk menunjukkan class anak atau turunan secara hirarkis dari
super class.
Super class, digunakan untuk menunjukkan class induk secara hirarkis dari sub class
(class anak).
Extends, digunakan untuk menunjukkan bahwa suatu class merupakan turunan dari class
lain. Misal A extends B, berarti class A adalah turunan dari class B. A merupakan
subclass, sedangkan B merupakan superclass.
Super, digunakan untuk memanggil konstruktor dari super class atau memanggil variabel
yang mengacu pada super class. Misal super(x,y,z), berarti atribut x, y, dan z diambil dari
atribut pada class induk.
b. Cara Pewarisan Kelas.
Kelas turunan secara prinsip dapat dibuat dengan menggunakan bentuk :
Class KelasTurunan extends KelasDasar{
Tubuh kelas
}
Pemanggilan dengan super seperti diatas hanya bisa dilakukan pada konstruktor.
Pemanggilan konstruktor superkelas harus berkedudukan sebagai pernyataan
pertama dalam konstruktor.
d. Overriding
Overriding adalah suatu cara untuk mendefinisikan ulang method yang ada pada class
induk apabila class anak menginginkan adanya informasi yang lain. Overriding dilakukan
dengan cara menulis ulang method yang ada pada class induk dengan syarat bahwa nama
dan parameter fungsi tersebut harus sama (tidak boleh diubah). Meskipun fungsi telah
ditulis ulang oleh class anak, fungsi yang asli pada class induk masih dapat dipanggil di
class anak dengan menggunakan class super.
e. Overloading
Overloading fungsi adalah penulisan beberapa fungsi (dua atau lebih) yang memiliki
nama yang sama. Pada bahasan overloading dikenal istilah signature. Signature sebuah
fungsi adalah parameter lengkap dengan tipe datanya yang terdapat dalam fungsi tersebut.
Misal terdapat fungsi:
public int jumlahMahasiswa (int laki2, int
perempuan,
String kelas);
maka signature dari fungsi tersebut adalah (int, int, String). Suatu fungsi dikatakan dioverload manakala terdapat beberapa fungsi dengan nama yang sama namun memiliki
signature yang berbeda-beda, sebagai contoh:
Laboratorium Teknologi Jaringan
Page 17
f. Latihan
1. Contoh Kasus Pewarisan
DOSEN
nama
nik
jurusan
View()
REKTOR
Th_mulai
Jabatan
Viewrektor()
DEKAN
fakultas
Viewdekan()
KALAB
laborat
Viewkalab()
Menunjukkan hirarki kelas dosen., memiliki turunan berupa kelas rektor, kelas dekan dan
kelas kalab. class induk (class dosen) memiliki atribut nama, nik dan jurusan. Method
yang dimiliki oleh class dosen adalah view(). Class turunan dari class dosen ada tiga
class. Pada class rektor, terdapat tambahan atribut berupa th_mulai dan jabatan_ke, serta
method viewRektor(). Pada class dekan terdapat tambahan atribut fakultas, dan method
viewDekan(). Pada class kalab terdapat tambahan atribut laboratorium, dan method
viewKalab().
Pendefinisian class dosen
Public class Dosen {
{th_mulai = thX;
nama = namaX;
Constructor
untuk kelas
Dosen
nik = nikX;
jurusan = jurX;}
public void view() {
jabatan_ke = keX;
nikX,
Memanggil variable
yang mengacu pada
dosen (super class)
System.out.println(Nama : +nama);
System.out.println(nik : +nik);
System.out.println(jurusan : +jurusan)
rector
Page 18
fakultas = fakX;
Laboratorium = labX;
System.out.println(Fakultas :
+fakultas):
System.out.println(laboratorium :
+laboratorium);
System.out.prinyln(jumlah mhasiswa=
+jumlah);
rek.view();
Pemanggilan
konstruktor
rek.viewrektor();
dek.view();
dek.viewdekan();
lab.view();
Pemanggilan
method di setiap
subclass
lab.viewkalab();
System.ou.println(sampai tahun
+angkatan+ jumlah mahasiswa
+jumlah);
}
}
}
}
overloading
BAB VIII
POLIMORFISME
1. Tujuan Praktikum
2. Dasar teori
Polimorfisme
Polimorfisme adalah kemampuan mengungkap suatu hal yang berbeda melalui satu cara
yang sama. Apabila mempunyai objek yang bertipe superkelas, variable objek ini bisa
diisi dengan objek superkelas ataupun objek subkelas tanpa perlu melakukan perubahan
tipe.Pada polimorfisme kondisi yang harus terpenuhi supaya fungsi dapat dijalankan
yaitu:
1. Semua kelas diturunkan dari suatu kelas yang sama
2. Method yang dipanggil harus melalui variabel dari super class.
3. Method yang dipanggil juga harus merupakan method yang ada pada super class.
4. Signature method harus sama baik yang ada pada super class maupun di subclass.
5. Method access attribute pada subclass tidak boleh lebih terbatas daripada yang ada
pada super class.
Program polimorfisme(1)
class Binatang{
public void info() {
System.out.println(" Info tentang
Hewan : ");
}
} class Herbivora extends Binatang {
public void info() {
System.out.println ("Info pada
herbivora: Memakan makanan
berupa tumbuh - tumbuhan");
}
}
class Kelinci extends Herbivora{
public void info(){
System.out.println("Info pada Kelinci:
Memakan makanan berupa
wortel");
}
}
public class Polimorfisme {
public static void main(String[] args)
{
Herbivora herbivora;
Kelinci kelinciku;
Binatang hewan;
herbivora=new Herbivora();
kelinciku=new Kelinci();
hewan=herbivora;
hewan.info();
hewan=kelinciku;
hewan.info();
}
}
Page 20
/*
Disimpan dalam file manusia.java
*/
public class manusia
{
public String nama;
public manusia(String n)
{
this.nama = n;
}
public String tampilkanNama()
{
return nama;
}
public void makan()
{
System.out.println("Nyam... nyam...
nyam...");
}
public void kerja()
{
System.out.println("Kerja...kerjaaa...");
}
}
Page 21
/*
Disimpan dalam file dedi.java
*/
public class dedi
{
public static void main(String arg[])
{
sopir dedi= new sopir("Dedi");
System.out.println("Nama= "+
dedi.tampilkanNama());
dedi.makan();
dedi.kerja();
}
}
/*
Disimpan dalam file sopir.java
*/
public class sopir extends manusia
{
public sopir(String n)
{
super(n);
}
public void kerja()
{
System.out.println("Ngung... Ngung...
Ngung...Ciiit..");
}
}
/*
Disimpan dalam file pekerja.java
*/
public class pekerja
{
public static void main(String args[])
{
manusia[] profesi= new manusia[3];
profesi[0]=new programmer("Andii");
profesi[1]=new tentara("Badu","Kopral");
profesi[2]=new sopir("Dedi");
for (int i=0; i<3; i++)
{
profesi[i].kerja();
}
}
}
Page 22
BAB VIII
INTERFACE
1. Tujuan Praktikum
Memahami konsep pewarisan ganda
Memahami konsep interface
Mengimplementasikan Interface pada Java untuk melakukan pewarisan ganda
2. Dasar Teori
Untuk membuat suatu kelas dapat kita turunkan dengan pewarisan field-field dan metodh pada
base classnya. Bagaimana kita membuat kelas yang menurunkan sifat dari beberapa base class?
misalkan kita akan membuat kelas superman yang dia bisa membuat program layaknya
programmer, dia juga ahli menggunakan senjata layaknya tentara, bahkan dia bisa terbang seperti
elang (keturunan binatang)? Caranya adalah dengan pewarisan ganda. Dalam Java tidak dikenal
pewarisan ganda, sehingga digunakan interface.
/*
Disimpan dalam file "superman.java"
*/
interface programmer {
void memrogram();
}
interface tentara {
void menembak();
}
interface burung {
void terbang();
void buangKotoran();
}
class superman implements programmer,tentara,burung {
public void memrogram(){};
public void menembak(){};
public void terbang(){};
public void buangKotoran(){};
}
Kemudian kelas superman diinstantiasi menjadi objek bernama bejo, contoh kode
program
/*
Disimpan dalam file "bejo.java"
*/
public class bejo
{
public static void main(String arg[])
{
superman bj= new superman();
bj.memrogram();
{
System.out.println("Implementasi memrogram ...tak..tik");
}
bj.menembak();
{
System.out.println("Implementasi menembak ...dor..dor");
}
bj.terbang();
{
System.out.println("Implementasi terbang......Zap....");
}
}
}
Laboratorium Teknologi Jaringan
Page 23
Page 24
BAB X
1. Tujuan Praktikum
Praktikan mampu mengenali dan memahami input dan output (I/O) dalam pemrograman
dengan Java.
Mampu membuat sistem stream untuk penanganan operasi input/output, buffered stream
dan random accees file.
2. Dasar teori
Stream
Operasi input dan output pada java menggunakan konsep aliran data,Aliran data sendiri
sudah di lakukan dan di pelajari pada bab-bab sebelumnya yaitu aliran data dari device
output dengan memanfaakan method println() pada objek System.out, dan device input pada
objek System.in dari kelas System Stream adalah aliran data yang berupa aliran byte atau
karakter, dari device input ke divice output pada saat program di eksekusi. Proses untuk
membaca data dari layar lalu memprosesnya pada saat program dijalankan serta
menampilkan hasil proses tersebut pada layar console dilakukan oleh kelas
InputStreamReader, kelas ini akan membaca data yang diketikkan oleh user melalui console
dan sekaligus memperlakukannya sebagai Stream, tahap yang dilakukan oleh kelas
InputStreamReader meliputi 3 langkah yaitu:
1. Membuat objek dari kelas InputStreamReader, dengan sintaks
InputStreamReader dataIn = new
InputStreamReader(System.in);
2. Menampung objek Stream ke buffer
BufferedReader bufIn = new BufferedReader(dataIn,1);
3. Membaca data dari objek Stream
String data = bufIn.readLine();
Inputan dan penyimpanan sementara data dari keybord untuk proses kemudian di outputkan
hasilnya bisa bermacam-macam cara antara lain:
1. Dengan melakukan langkah-langkah seperti InputStreamReader diatas dimana kita harus
membuat objek dari kelas InputStramReader, lalu menampung objek Stream ke buffer,
kemudian membaca data dari objek stream
import java.io.*;
public class Persegi1
{
public static void main(String args[])
{
try
{
System.out.print("masukkan panjang = ");
InputStreamReader pnj = new
InputStreamReader(System.in);
BufferedReader input1 = new BufferedReader(pnj,1);
String panj = input1.readLine();
int panjang=Integer.parseInt(panj);
System.out.print("masukkan Lebar = ");
InputStreamReader lbr = new
InputStreamReader(System.in);
BufferedReader input2 = new BufferedReader(lbr,1);
String lebr = input2.readLine();
int lebar=Integer.parseInt(lebr);
Page 25
2. Selain itu juga ada cara untuk mengimputkan data dari console dengan memanfaatkan
kelas yang kita buat sendiri dimana kelas ini nantinya akan diwariskan pada suatu file
yang memanggil dan membutuhkan warisan dari kelasyang kita buat, sehingga proses
yang dilakukan oleh kelas InputStreamReader hanya ada pada kelas induk yang akan
mewarisi
import java.io.*;
public class InputConsole{
/**Membaca string dari keyboard*/
public static String readString(){
BufferedReader bfr = new BufferedReader(new
InputStreamReader(System.in),1);
// Menginisialisasi string
String string = " ";
// Get the string from the keyboard
try{
string = bfr.readLine();
}
catch (IOException ex){
System.out.println(ex);
}
// Mengembalikan string hasil pembacaan dari keyboard
return string;
}
/**Mengambil nilai int dengan parsing string input dari
keyboard*/
public static int readInt(){
return Integer.parseInt(readString());
}
//Mengambil nilai byte dengan parsing string input dari keyboard
public static byte readByte(){
return Byte.parseByte(readString());
}
//Mengambil nilai short dengan parsing string input dari keyboard
public static short readShort(){
return Short.parseShort(readString());
}
//Mengambil nilai long dengan parsing string input dari keyboard
public static long readLong(){
return Long.parseLong(readString());
}
//Mengambil nilai float dengan parsing string input dari
keyboard
public static float readFloat()
{
return Float.parseFloat(readString());
}
//Mengambil nilai double dengan parsing string input dari
keyboard
public static double readDouble(){
return Double.parseDouble(readString());
}
}
Page 26
Page 27