BAB 1 - Staffsite STIMATA

advertisement
STIMATA
Modul 1: Menggunakan NetBeans
Gambar 1.1, Menu Pembuka NetBeans
Langkah-langkah yang diperlukan dalam menuliskan program Java menggunakan NetBeans
sebagai berikut:
1. Pilih menu File > New Projects, lalu pilih categories dengan Java dengan Projects Java
Aplication. Selanjutnya, pilih Next
Gambar 1.2. Membuat Project baru dalam NetBeans
2. Isikan Project Name dengan nama tertentu dengan Project location adalah direktori
yang anda kehendaki, secara defult program java akan menunjuk pada direktori program
NetBeans aktif, dan Projek folder adalah tempat dimana program yang dibangun akan
disimpan, lalu klik Finish.
Pemrograman Java
1
STIMATA
Gambar 1.3 Menentukan nama dan lokasi Projek
Gambar 1.4 project yang tercipta
Pemrograman Java
2
STIMATA
Modul 2 : Type Data dan Variabel
A. Latar Belakang
Pada modul 2 ini membahas penggunaan Type Data dan Variabel yang telah dibahas pada saat
Dasar Teori dikelas. Perlunya mempraktekan hal tersebut sebagai penambahan pemahaman
mahasiswa secara skill, selain pemahan secara abstrak.
B. Tujuan
Dalam modul ini, Anda akan melakukan percobaan Type Data, Variabel, dan Array dalam Java.
Pertama, Anda akan mendefinisikan apa type data, variable dan array, kemudian Anda juga akan
mendiskusikan bagaimana mendeklarasikannya dan menggunakannya dalam Java.
Pada akhir pembahasan, diharapkan mahasiswa mempunyai kompetensi dalam :
 Mendeklarasikan berbagai type data
 Mendeklarasikan variabel
 Mendeklarasikan dan membuat array
 Mengakses elemen-elemen didalam array
 Menentukan jumlah element didalam sebuah array
 Mendeklarasikan dan membuat array multidimensi
C. Dasar Teori
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.
D. Latihan
1. Type Data
Pada percobaan dua ini, dilengkapi dengan pengujian terhadap beberapa jenis type data
yaitu: short, int, long, float, dan double.
 Ketik program dibawah ini, untuk mempraktekkan cara penulisan, pendefinisian, dan cara
menampilkan isinya dari beberapa type data.
class MyHitungan {
public static void main(String[] args) {
//mendeklarasikan type data
byte a
= 1;
short b = 2;
int c
= 5;
long d
= 1000;
float e = 45;
double f = 1000.0;
//menampilkan nilai dari beberapa
System.out.println("nilai a = " +
System.out.println("nilai b = " +
System.out.println("nilai c = " +
System.out.println("nilai d = " +
System.out.println("nilai e = " +
System.out.println("nilai f = " +
Pemrograman Java
jenis type data
a);
b);
c);
d);
e);
f);
3
STIMATA
}
}
2.
Variabel
Syntax deklarasi variabel adalah sebagai berikut,
<data tipe> <name> [=initial value];
Pendeklarasian variabel
Contoh, penulisan variabel result dengan tipe data boolean, dan option dengan tipe data
char
boolean result;
char option;
Menampilkan isi Variabel
Menampilkan isi variable pada layar atau screen dapat dilakukan dengan beberapa cara,
seperti dituliskan dibawah ini
System.out.println( result );
System.out.println( “The value of x=” + result );
 Ketik program berikut ini, untuk mempraktekkan cara pendefinisian variable dan tipe
datanya, kemudian menampilkan isi dilayar monitor.
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 );
}
}
3. Array
Sebuah array akan menyimpan beberapa item data yang memiliki tipe data sama didalam
sebuah blok memori yang berdekatan yang kemudian dibagi menjadi beberapa ruang. Array
adalah sebuah variabel/sebuah lokasi tertentu yang memiliki satu nama sebagai identifier,
namun identifier ini dapat menyimpan lebih dari sebuah nilai.
Array satu dimensi
 Cara pertama
 Ketik program dibawah ini, untuk mempraktekkan memahami cara penulisan,
pendefinisian, dan cara menampilkan isinya dari array satu dimensi.
class jumHari
{
public static void main(String[] args)
{
//Mendeklarasikan variabel array satu dimensi bertipe int
int [] jumlahHari;
Pemrograman Java
4
STIMATA
//Menentukan jumlah elemen array
jumlahHari = new int[12];
//Mengisi nilai dari setiap elemen array yang ada
jumlahHari[0] = 31;
jumlahHari[1] = 28;
jumlahHari[2] = 31;
jumlahHari[3] = 30;
jumlahHari[4] = 31;
jumlahHari[5] = 30;
jumlahHari[6] = 31;
jumlahHari[7] = 31;
jumlahHari[8] = 30;
jumlahHari[9] = 31;
jumlahHari[10] = 30;
jumlahHari[11] = 31;
System.out.println("Bulan Oktober mempunyai jumlah
"+jumlahHari[10] + " hari");
}
}

Cara kedua
 Ketik program dibawah ini, untuk mempraktekkan memahami cara penulisan,
pendefinisian, dan cara menampilkan isinya dari array multidimensi.
class jumHari2
{
public static void main(String[] args)
{
//Mendeklarasikan variabel array satu dimensi bertipe int
int [] jumlahHari ={31,28,31,30,31,30,31,31,30,31,30,31};
System.out.println("Bulan Oktober mempunyai jumlah
"+jumlahHari[10] + " hari");
}
}
Array multi dimensi
Array multidimensi diimplementasikan sebagai array yang terletak di dalam array. Array
multidimensi dideklarasikan dengan menambahkan jumlah tanda kurung setelah nama array.
Sebagai contoh,
// Elemen 512 x 128 dari integer array
int[][] twoD = new int[512][128];
// karakter array 8 x 16 x 24
char[][][] threeD = new char[8][16][24];
// String array 4 baris x 2 kolom
String[][] ponsel = {
{ "nokia", "brown" },
{ "sony ericson", "white" },
{ "seimens", "gray"},
{ "spc", "black"}
};
Pemrograman Java
5
STIMATA
E. Tugas
Berikut ini adalah array multidimensi yang menyatakan isi dari sebuah buku alamat:
String entry = {
{"Florence", "735-1234", "Jakarta"},
{"Yanto", "983-3333", "Surabaya"},
{"Kendedesi", "456-3322", "Malang"}
};
Cetak buku alamat tersebut dalam format berikut ini:
Name
Tel. #
Address
: Florence
: 735-1234
: Jakarta
Name
Tel. #
Address
: Yanto
: 983-3333
: Surabaya
Name
Tel. #
Address
: Kendedesi
: 456-3322
: Malang
Pemrograman Java
6
STIMATA
Modul 3: Operator
A. Latar Belakang
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.
Dalam modul 3 ini, Anda akan melakukan percobaan penggunaan beberapa tanda operator untuk
digunakan pada proses penghitungan.
B. Tujuan
Pada akhir pembahasan, diharapkan mahasiswa mempunyai kompetensi dalam :
 Menerapkan operator aritmatika, relasi dan logika dalam sebuah program
 Menggunakan tanda operator yang cocok dalam proses penghitungan
C. Dasar Teori
 Operator Aritmatika
Berikut ini adalah contoh program dalam penggunaan operator-operator ini :
public class aritmatikaDemo
{
public static void main(String[] args)
{
//sedikit angka
int i = 37; int j = 42;
double x = 27.475;
double y = 7.22;
System.out.println("Variable values...");
System.out.println(" i = " + i);
System.out.println(" j = " + j);
System.out.println(" x = " + x);
System.out.println(" y = " + y); //penjumlahan angka
System.out.println("Adding...");
System.out.println(" i + j = " + (i + j));
System.out.println(" x + y = " + (x + y));
//pengurangan angka
System.out.println("Subtracting...");
System.out.println(" i - j = " + (i - j));
System.out.println(" x - y = " + (x - y));
//perkalian angka
System.out.println("Multiplying...");
System.out.println(" i * j = " + (i * j));
System.out.println(" x * y = " + (x * y));
//pembagian angka
System.out.println("Dividing...");
System.out.println(" i / j = " + (i / j));
System.out.println(" x / y = " + (x / y));
//menghitung hasil modulus dari pembagian
System.out.println("Computing the remainder...");
System.out.println(" i % j = " + (i % j));
System.out.println(" x % y = " + (x % y));
//tipe penggabungan
System.out.println("Mixing tipes...");
Pemrograman Java
7
STIMATA
System.out.println(" j + y = " + (j + y));
System.out.println(" i * x = " + (i * x));
}
}
 Hasil Runing Program aritmatikademo adalah sebagai berikut:
Variable values...
i = 37
j = 42
x = 27.475
y = 7.22
Adding...
i + j = 79
x + y = 34.695
Subtracting...
i - j = -5
x - y = 20.255000000000003
Multiplying...
i * j = 1554
x * y = 198.36950000000002
Dividing...
i / j = 0
x / y = 3.805401662049862
Computing the remainder...
i % j = 37
x % y = 5.815000000000002
Mixing tipes...
j + y = 49.22
i * x = 1016.575
 Operator relasi
Berikut ini adalah contoh program yang menggunakan operator Relasi,
public class RelasiDemo
{
public static void main(String[] args)
{
//beberapa nilai
int i = 37;
int j = 42;
int k = 42;
System.out.println("Nilai variabel...");
System.out.println(" i = " + i);
System.out.println(" j = " + j);
System.out.println(" k = " + k);
//lebih besar dari
System.out.println("Lebih besar dari...");
System.out.println(" i > j = " + (i > j)); //false
System.out.println(" j > i = " + (j > i)); //true
System.out.println(" k > j = " + (k > j)); //false
//lebih besar atau sama dengan
System.out.println("Lebih besar dari atau sama dengan...");
System.out.println(" i >= j = " + (i >= j)); //false
System.out.println(" j >= i = " + (j >= i)); //true
System.out.println(" k >= j = " + (k >= j)); //true
//lebih kecil dari
System.out.println("Lebih kecil dari...");
System.out.println(" i < j = " + (i < j)); //true
System.out.println(" j < i = " + (j < i)); //false
System.out.println(" k < j = " + (k < j)); //false
Pemrograman Java
8
STIMATA
//lebih kecil atau sama dengan
System.out.println("Lebih kecil dari atau sama dengan...");
System.out.println(" i <= j = " + (i <= j)); //true
System.out.println(" j <= i = " + (j <= i)); //false
System.out.println(" k <= j = " + (k <= j)); //true
//sama dengan
System.out.println("Sama dengan...");
System.out.println(" i == j = " + (i == j)); //false
System.out.println(" k == j = " + (k == j)); //true
//tidak sama dengan
System.out.println("Tidak sama dengan...");
System.out.println(" i != j = " + (i != j)); //true
System.out.println(" k != j = " + (k != j)); //false
}
}

Hasil Runing Program RelasiDemo adalah sebagai berikut:
Nilai variabel...
i = 37
j = 42
k = 42
Lebih besar dari...
i > j = false
j > i = true
k > j = false
Lebih besar dari atau sama dengan...
i >= j = false
j >= i = true
k >= j = true
Lebih kecil dari...
i < j = true
j < i = false
k < j = false
Lebih kecil dari atau sama dengan...
i <= j = true
j <= i = false
k <= j = true
Sama dengan...
i == j = false
k == j = true
Tidak sama dengan...
i != j = true
k != j = false
 Operator logika
Berikut ini adalah suatu contoh source code yang menggunakan logika dan boolean
AND,
public class TestAND
{
public static void main( String[] args )
{
int i = 0;
int j = 10;
boolean test= false;
//demonstrasi &&
test = (i > 10) && (j++ > 9);
System.out.println(i);
System.out.println(j);
Pemrograman Java
9
STIMATA
System.out.println(test);
//demonstrasi &
test = (i > 10) & (j++ > 9);
System.out.println(i);
System.out.println(j);
System.out.println(test);
}
}
 Hasil Runing Program TestAND adalah sebagai berikut:
i = 0
j = 10
test = false
i = 0
j = 11
test = false
Berikut ini sebuah contoh source code yang menggunakan operator logika dan boolean
OR,
public class TestOR
{
public static void main( String[] args )
{
int i = 0;
int j = 10;
boolean test= false;
//demonstrasi ||
test = (i < 10) || (j++ > 9);
System.out.println(i);
System.out.println(j);
System.out.println(test);
//demonstrasi |
test = (i < 10) | (j++ > 9);
System.out.println(i);
System.out.println(j);
System.out.println(test);
}
}
 Hasil Runing Program TestOR adalah sebagai berikut:
i = 0
j = 10
test = true
i = 0
j = 11
test = true
Berikut ini adalah contoh source code yang menggunakan operator logika NOT,
public class TestNOT
{
public static void main( String[] args )
{
boolean val1 = true;
boolean val2 = false;
System.out.println(!val1);
System.out.println(!val2);
}
}
Pemrograman Java
10
STIMATA
D. Latihan
Berdasarkan percobaan diatas,
1. Apa perbedaan operator “=” dengan operator “==”
2. Apa perbedaan hasil dari penggunaan operator “&” dengan operator “&&”
3. Apa perbedaan hasil dari penggunaan operator “|” Sama dengan “||”
Pemrograman Java
11
STIMATA
Modul 4: Operator Logika
A. Latar Belakang
Modul 4 ini membahas tentang cara penggunaan /mempraktekkan operator logika yang telah
dibahas pada saat Dasar Teori teori dikelas. Mempraktekkan operator logika sebagai upaya
penambahan pemahaman mahasiswa secara skill, selain pemahan abstrak.
B. Tujuan
Pada akhir pembahasan, diharapkan mahasiswa mempunyai kompetensi dalam mengunakan
operator logika if dalam menyelesaikan kasus pada pemrograman, logika if yang harus difahami
adalah sebagai berikut;
a. if
b. if … else
c. if…. else if … else
C. Dasar Teori
1. if tunggal
Bentuk dari pernyataan if,
x = 90
if( boolean_expression )
statement;
x > 50
atau
if( boolean_expression ){
statement1;
statement2;
...
}
t
“LULUS”
gambar 4.1 flowchar statemen if
Keterangan
boolean_expression
statement
: adalah nilai yang diuji atau syarat yang diberikan
: pernyataan yang diberikan setelah syarat
berikut ini adalah baris kode untuk mencetak pernyataan “x adalah 100”, hanya jika nilai yang
tersimpan pada variabel x adalah 100.
int x = 100;
if (x == 100){
System.out.print("x adalah 100");
}
Jika Anda menginginkan lebih dari satu statement yang ditampilkan ketika kondisi bernilai benar,
maka Anda dapat menggunakan blok statemen. Kode berikut ini menunjukkan bagaimana Anda
menggunkan lebih dari satu perintah menampilkan statemen dalam blok.
Pemrograman Java
12
STIMATA
int x = 100;
if (x == 100)
{
System.out.print(“Nilai x adalah : “);
System.out.println(x);
}
2. Statement if-else
Pernyataan if-else digunakan apabila Anda ingin mengeksekusi beberapa pernyataan dengan
kondisi true dan pernyataan yang lain dengan kondisi false.
Bentuk statement if-else,
if( boolean_expression )
statement1;
else
statement2;
x
dapat juga ditulis seperti,
if( boolean_expression ){
statement1;
statement2;
...
}
else{
}
statement1;
statement2;
...
t
x
f
z1
z2
Gambar 3.2 Statement if-else
dalam format ini boolean_expression diuji apakah bernilai benar atau salah, jika kondisi bernilai
BENAR maka statemen1 yang di kerjakan. Namun jika sebaliknya kondisi bernilai SALAH maka
statement2 yang di kerjakan. Untuk lebih mudah dalam memahami format ini, Anda bisa melihat
dalam contoh program sederhana. Misal kondisinya adalah (x = = 100). statement1 =
System.out.println(“ Benar “); dan statement2 adalah System.out.println(“ Tidak Seratus “); Bila
dituliskan dalam sebuah program adalah sebagai berikut;
int x = 100;
if (x == 100)
{System.out.println(“ Benar “);
}
else
{System.out.println(“ Tidak Seratus “);
}
3. Statement if- else if - else
Pernyataan pada bagian kondisi else dari blok if-else dapat menjadi struktur if-else yang lain.
Kondisi struktur seperti ini mengijinkan Anda untuk membuat seleksi persyaratan yang lebih
kompleks.
Bentuk statement if-else if,
if( boolean_expression1 )
statement1;
else if( boolean_expression2 )
statement2;
else statement3;
Pemrograman Java
13
STIMATA
x
x
t
z1
t
z2
f
x
f
Dalam pemrograman dapat dituliskan seperti contoh dibawah ini,
int x = 1;
if (x > 0) { System.out.print("x is positive");}
else if (x < 0) {System.out.print("x is negative");
else {System.out.print("x is 0");
Dalam pengujian kebenaran sebuah kondisi biasanya ditentukan oleh tanda perbandingan yang
diberikan. Tanpa memahami tanda perbandingan tersebut mustahil Anda bisa mengerti
bagaimana Anda membaca dan membuat sebuah program dengan baik.
D. Latihan
Berikut ini adalah contoh-contoh perbandingan pernyataan.
public class RelasiDemo2
{
public static void main(String[]
{
int
x = 4,
y = 10 ,
char a = 40,
b = 40,
float r = 12.50, s = 14.54,
args)
x = 8;
c = 40 ;
t = 15.78;
//kelompok pertama perbandingan pernyataan
if
if
if
if
if
(x==y) z = -13;
(x>z) a = „A‟;
(!(x>z)) a =‟B‟;
(b<=c) r = 0.0;
(r!=s) t = c/2;
//set nilai Z = -13
//set nilai a = 65
//tidak melakukan perubahan apapun
//set nilai r = 0.0
//set nilai t = 2.0
System.out.println(z);
System.out.println(a);
System.out.println(r);
System.out.println(t);
//kelompok kedua perbandingan pernyataan
if (x==y)
if (x!=0)
z = 222;
z = 333;
System.out.println(z);
//kelompok ketiga perbandingan pernyataan
x = y = z = 77;
Pemrograman Java
14
STIMATA
if
if
if
if
if
((x=y) && (x == 77)) z =33;
((x>y) || (z >12 )) z =22;
(x && y && z) z =11;
((x=1) && (y = 2)) && (z = 3)) r=12;
((x==1) && (y = 3)) && (z = 4)) r=12.46;
System.out.println(z);
System.out.println(r);
}
}
 Ketik program dibawah ini, lalu simpan dengan nama file Hitung. Compile dan
perhatikan nilai keluarannya.
public class coba1
{
public static void main(String[] args)
{
kasir mycoba = new kasir ();
mycoba.hitungan();// Honda revo = new Honda()
}
// revo.colour //revo.type //revo.PlateNumber
}
class kasir
{
public int hitungan()
{
int jml=50;
double hrg = 150000,dsc,totbyr,tothrg;
tothrg =(jml*hrg);
if ((jml >10) && (hrg>100000)){
dsc = 0.1 * (jml*hrg);
totbyr = tothrg - dsc;
}
else {
dsc = 0;
totbyr = tothrg - dsc;
}
System.out.println("Rp. "+tothrg);
System.out.println("Rp. "+dsc);
System.out.println("Rp. "+totbyr);
return 0;
}
}
Keluaran dari program diatas adalah
Rp. 7500000.0
Rp. 750000.0
Rp. 6750000.0
 Ganti isi variabel jml menjadi 10. Kemudian, compile dan perhatikan nilai keluarannya.
Mengapa bisa demikian, jelaskan alasannya.
Cara lain untuk membuat cabang adalah dengan menggunakan kata kunci switch. Switch
mengkonstruksikan cabang untuk beberapa kondisi dari nilai.
Pemrograman Java
15
STIMATA
Bentuk statement switch,
switch( switch_expression )
{
case case_selector1:
statement1; //
statement2; //block 1
. . . //
break;
case case_selector2:
statement1; //
statement2; //block 2
. . . //
break;
. . .
. . . //
break;
default:
statement1; //
statement2; //block n
}
 Contoh penulisan
public class Grade
{
public static void main( String[] args )
{
int grade = 92;
switch(grade){
case 100:
System.out.println( "Excellent!" );
break;
case 90:
System.out.println("Good job!" );
break;
case 80:
System.out.println("Study harder!" );
break;
default:
System.out.println("Sorry, you failed.");
}
}
}
E. Tugas

Buatlah program untuk menampilkan nilai dari ujian Anda, dengan ketentuan sebagai
berikut:
Jika Nilai >=80 maka tampilan dilayar adalah A
Jika Nilai >=75 maka tampilan dilayar adalah B+
Jika Nilai >=70 maka tampilan dilayar adalah B
Jika Nilai >=65 maka tampilan dilayar adalah C+
Jika Nilai >=55 maka tampilan dilayar adalah C
Jika Nilai >=45 maka tampilan dilayar adalah D
Jika Nilai < 45 maka tampilan dilayar adalah E,
Scipt dari progam tersebut dikumpulan dalam bentuk cetakan di kertas ukuran A4.
Pemrograman Java
16
STIMATA
Modul 5 : Control Perulangan
A. Latar Belakang
Praktikum pada modul 5 ini membahas penggunaan control perulangan yang telah dibahas pada
saat Dasar Teori dikelas. Ada tiga macam jenis dari struktur kontrol pengulangan yaitu while,
dowhile, dan for-loops. Mempraktekan hal tersebut sebagai penambahan pemahaman
mahasiswa dengan skill, selain pemahan abstrak.
B. Tujuan
Pada akhir pembahasan, diharapkan mahasiswa mempunyai kompetensi dalam menggunakan
struktur kontrol pengulangan (while, do-while, for) untuk mengeksekusi blok tertentu pada
program beberapa kali.
C. Dasar Teori
1. while loop
Pernyataan while loop adalah pernyataan atau blok pernyataan yang diulang-ulang sampai
mencapai kondisi yang cocok.
Bentuk pernyataan while,
while( boolean_expression ){
statement1;
statement2;
. . .
}
Pernyataan di dalam while loop akan
boolean_expression bernilai benar (true).
dieksekusi
berulang-ulang
selama
kondisi
int x = 0;
while (x<10)
{
System.out.println(x);
x++;
}
 Berikut ini percobaan menghitung angka dimulai dari 0 sampai dengan 9 atau percobaan
menampilkan angka dibawah 10 dengan menggunakan perulangan while
public class ulang
{
public static void main(String[] args)
{
ulang1 myulang = new ulang1 ();
myulang.hitungan();
}
}
class ulang1
{
public int hitungan()
{
int x = 0;
Pemrograman Java
17
STIMATA
while (x<10)
{
System.out.println(x);
x++;
}
return 0;
}
}
2. do-while loop
Do-while loop mirip dengan while-loop. Pernyataan di dalam do-while loop akan dieksekusi
beberapa kali selama kondisi bernilai benar(true).
Perbedaan antara while dan do-while loop adalah dimana pernyataan di dalam do-while
loop akan dieksekusi sedikitnya satu kali.
Bentuk pernyataan do-while,
do{
statement1;
statement2;
. . .
}while( boolean_expression );
Pernyataan di dalam do-while loop akan dieksekusi pertama kali, dan akan dievaluasi ondisi dari
boolean_expression. Jika nilai pada boolean_expression tersebut bernilai true, pernyataan di
dalam do-while loop akan dieksekusi lagi.
int x = 0;
do
{
System.out.println(x);
x++;
}while (x<10);
 Berikut ini percobaan menghitung angka dimulai dari 0 sampai dengan 9 atau percobaan
menampilkan angka dibawah 10 dengan menggunakan perulangan do - while
public class coba1
{
public static void main(String[] args)
{
cobaah mycoba = new cobaah ();
mycoba.hitungan();
}
}
class cobaah
{
public int hitungan()
{
int x = 0;
do
{
System.out.println(x);
x++;
}while (x<10);
return 0;
}
}
Pemrograman Java
18
STIMATA
3. for loop
Pernyataan for loop memiliki kondisi hampir mirip seperti struktur perulangan while yaitu
melakukan pengulangan untuk mengeksekusi kode yang sama sebanyak yang telah ditentukan.
Bentuk dari for loop,
for (InitializationExpression; LoopCondition; StepExpression)
{
statement1;
statement2;
. . .
}
Keterangan
InitializationExpression adalah ekspresi variabel atau pengenalan variabel yang akan
digunakan dalam proses perulangan. Dibagian ini bisa diletakkan lebih dari satu variable. Contoh
sebagai pengenalan variable int i = 0.
LoopCondition adalah kondisi yang diberikan sebagai control sejumlah perulangan yang akan
dilakukan. Contoh loopCondition adalah i < 10, i < jumlah.
StepExpression adalah bagian untuk melakukan penambahan (increase) atau pengurangan
(decrease). Dibagian ini bisa diletakkan lebih dari satu variable. Contoh StepExpression adalah
i++, i -- atau ++i, --i.
Berikut ini adalah contoh dari for loop,
int i;
for( i = 0; i < 10; i++ ){
System.out.println(i);
}
 Berikut ini percobaan menghitung angka dimulai dari 0 sampai dengan 9 atau percobaan
menampilkan angka dibawah 10 dengan menggunakan perulangan for
public class coba1
{
public static void main(String[] args)
{
cobaah mycoba = new cobaah ();
mycoba.hitungan();
}
}
class cobaah
{
public int hitungan()
{
int i = 0;
for( i = 0; i < 10; i++ ){
System.out.println(i);
}
return 0;
}
}
Pemrograman Java
19
STIMATA
D. LATIHAN
 Berikut ini variasi-variasi penulisan perulangan for
Pada contoh kelas for1 ini InitializationExpression tidak dimasukkan dalam for(), hal ini
dibenarkan, karena inisialisasi dilakukan pada baris kode sebelumnya.
public class for1 {
public static void main(String[] args) {
int j = 0;
for (; j < 3; j++) {
System.out.println(j);
}
}
}
Pada contoh kelas for2 ini, loopControl menggunakan nama varibel (limit), dan bukan sebuah
konstanta tertentu.
public class for2 {
public static void main(String[] args) {
int limit = 20; // Sum from 1 to this value
int sum = 0;
// Accumulate sum in this variable
for (int i = 1; i <= limit; i++) {
sum = sum + i;
}
System.out.println("sum = " + sum);
}
}
Pada contoh kelas for3 ini, tidak ada variabel apapun yang dimasukkan dalam for() atau sehingga
hanya berupa for(;;).
public class for3 {
public static void main(String[] args) {
for (;;) {
System.out.println("Hello");
break;
}
}
}
Pada contoh kelas for4 ini, inisialisasi dan stepExpression diletakkan lebih dari satu varibel.
Jumlah StepExpression sama dengan jumlah inisialisasi.
public class for4 {
public static void main(String[] arg) {
int limit = 10;
int sum = 0;
for (int i = 1, j = 0; i <= limit; i++, j++) {
sum += i * j;
}
System.out.println(sum);
}
}
Pemrograman Java
20
STIMATA
Pada contoh for5 ini, jumlah stepExpression yang digunakan tidak sama dengan inisialisasi yang
dikenalkan yaitu hanya meletakkan ( i ) saja (i) dari tiga inisialisasi I, j dan k.
public class for5 {
public static void main(String[] args) {
for (int i = 0, j = 1, k = 2; i < 5; i++){
System.out.println("I : " + i + ",j : " + j + ", k : " + k);
}
}
}
Pada contoh for6 ini, stepExpression tidak dimasukkan dalam for(), melainkan diletakkan dalam
blok kode.
public class for6 {
public static void main(String[] arg) {
int limit = 10;
int sum = 0;
for (int i = 1; i <= limit;) {
sum += i++;
}
System.out.println(sum);
}
}
Pada contoh for7 ini, tidak meletakkan inisialisasi variabel dan stepExpression dalam for(),
melainkan melakukan inisialisasi variabel sebelum for() dan meletakkan stepExpression pada
blok kode.
public class for7 {
public static void main(String[] arg) {
int limit = 10;
int sum = 0;
int i = 1;
for (; i <= limit;) {
sum += i++;
}
System.out.println(sum);
}
}
E. Tugas
 Apa perbedaan proses yang terjadi pada perintah while – do dengan perintah do-while
 Apa perbedaan proses yang terjadi pada perintah ++i dan i++ pada proses iterasi

Pemrograman Java
21
STIMATA
Modul 6 : Pembuatan Class dan Objek
A. Latar Belakang
Pada modul 6, akan mengantarkan beberapa konsep dasar dari Pemrograman berorientasi
obyek (Object Oriented Porgramming). Selanjutnya, Anda akan membahas konsep dari class dan
obyek, serta penggunaan class dan anggota-anggotanya termasuk perbandingan, konversi dan
pengubahan obyek. Untuk saat ini, Anda memfokuskan dalam pembuatan class sendiri.
Perlunya mempraktekan hal tersebut sebagai penambahan pemahaman mahasiswa secara skill ,
selain pemahan secara abstrak yang telah dibahas pada saat Dasar Teori dikelas..
B. Tujuan
Pada akhir pembahasan, diharapkan mahasiswa mempunyai kompetensi dalam :






Membuat class sendiri
Menjelaskan mengenai konsep pemrograman berorientasi obyek
Menjelaskan mengenai method, serta cara pemanggilan dan pemberian parameter ke
dalam method
Mendeklarasikan methode dalam class
Melewatkan parameter dalam methode
Membandingkan obyek dan menjabarkan class dari obyek.
C. Dasar Teori
Pengertian Class adalah template untuk pembuatan objek pada Java Program, syntax dari
sebuah kelas class nama_class {……}, kelas sendiri memiliki attribut dan method
syntax class sebagai berikut :
<modifier> class <namaclass> {
[deklarasi atribut]
[deklarasi method]
 Deklarasi atribut sebagai berikut :
<modifier> <tipe> <nama atribut> ;
 Deklarasi method dapat dilakukan dengan cara :
<modifier> <return type> <nama_method> ([daftarargumen])
}
D. Latihan
Percobaan 1 Pembuatan Kelas
Pada latihan ini, Anda akan membuat kelas dalam pemrograman Java2 SE dengan
menggunakan EditPlus sebagai media untuk menulis kode program. Anda juga melakukan
pendeklarasian nama class, attribute dan methode dari sebuah kelas. Kemudian Anda akan
melakukan penyimpanan (save), dilanjutkan kompilasi program dari console. Selajutnya Anda
menampilkan hasil program ke monitor.
Pemrograman Java
22
STIMATA
1.1. Menuliskan class dalam window editor
Pembuatan class pada latihan 1 ini, Anda akan membuat sebuah class dengan identitas
sebagai berikut:
<namaclass> buku,
attribut
judul, harga
method
pinjam, kembali
<modifier>
public

class pada program java dapat dituliskan seperti dberikut ini;
public class buku {
string judul;
// atribute judul dengan type string
double harga;
// attribute harga type double
void pinjam() {
judul =”Handbook of Java”;
harga = 650000;
}
// methode pinjam dengan modifier void
void kembali() {
judul =”Handbook of Java”;
harga = 650000;
}
// methode kembali modifier void

Kode program tersebut pada jendela Editor akan nampak seperti pada gambar 6.1
berikut ini,
Gambar 6.1. kode progam
1.2. Menyimpan dokumen
Menyimpan program pada media penyimpanan, Anda dapat memilih menu save pada
Windows NetBeans, maka system akan memunculkan kotak dialog seperti pada gambar
6.2.
Pemrograman Java
23
STIMATA
gambar 6.2. pemberian nama file
Selanjutnya Anda ketik nama class Main pada File name, lalu pilih menu Yes. Secara
otomatis akan tercipta nama file baru berekstensi Main.java. Pada kondisi ini, Anda telah
berhasil menyimpan file baru dengan nama Main.java
1.3. Compile program
Agar file yang telah dibuat dapat digunakan, maka file tersebut harus di-compile. Hasil dari
proses kompilasi adalah terciptanya nama file baru dengan extensi .class

Kemudian pada menu Run pilih Run File, seperti ditunjukkan pada gambar 6.3 berikut
ini.
Gambar 6.3 menu Run File
Pemrograman Java
24
STIMATA

Atau cara kedua, selain cara diatas. Dari windows tempat penulisan program tekan
tombol Shift dan tombol F6 (Shift+F6) bersamaan
Percobaan 2 Deklarasi Class dengan satu method
Setelah Anda sukses membuat class pada percobaan pertama, pada percobaan kedua ini, Anda
akan membuat class baru dengan menempatkan satu method saja pada program. Method dalam
percobaan ini bernama displayMessage().
Method ini berfungsi untuk menampilkan pesan yang akan ditampilkan pada layar monitor. Pada
percobaan ini pesan yang ditampilkan adalah kata “Welcome to STMIK P3M!”

Ketikkan perintah/ baris kode-kode berikut ini di window editor, dan simpan dengan
nama file Hello.Java

Kemudian Anda ketik perintah Javac Hello.java untuk mengkompilasi file Hello.java,
agar menjadi Hello.class, kemudian tekan tombol [enter]
Untuk menampilkan hasil dilayar monitor Anda, ketik perintah Java Hello.class atau
Java Hello

Percobaan 3 Melewatkan parameter dalam Method
Pada percobaan ketiga ini, Anda akan membuat program dengan method berisi parameter yang
dilewatkan. Parameter ini berisi variabel dengan type data string. Langkah pertama Anda
tentukan nama class baru dengan nama KampusIdaman, sedangkan nama method-nya adalah
displayMessage(). Method ini berfungsi untuk menampilkan pesan “Welcome to STMIK P3M!”
pada layar monitor Anda. Isi dari pesan tersebut ditampung dalam sebuah parameter bernama
labelName dan bertype data String.

Untuk melakukan percobaan 3 ini, ketikkan perintah/ baris kode-kode berikut di window
editor, dan simpan dengan nama file HelloTo.Java
Pemrograman Java
25
STIMATA


Kemudian Anda ketik perintah Javac HelloTo.java untuk mengkompilasi file
HelloTo.java, kemudian tekan tombol [enter]
Untuk menampilkan hasil dilayar monitor Anda, ketik perintah Java HelloTo.class atau
Java HelloTo
Melewatkan nilai dalam methode
Berikut ini dibahas tentang cara melewatkan nilai dalam methode. Pada kelas Test berikut ini
terdapat sebuah methode dengan nama ubah(), yang didalamnya terdapat dua buah variabel.
Variabel i dan j dengan type masing-masing adalah integer. Kedua variabel tersebut akan
dilewatkan sebagai referensi dalam methode ubah(int i, int j). Berikut ini cara
melewatkan sebuah nilai dalam methode
class Test {
void ubah(int i, int j) { //pass by refference
i *= 2;
j /= 2;
System.out.println("i dan j lewat methode: " + i + " " + j);
}
}
public class Main {
public static void main(String args[]) {
Test ob = new Test();
int a = 5, b = 20;
System.out.println("a dan b sebelum methode: " + a + " " + b);
//memanggil a dan b lewat methode
ob.ubah(a, b);
}
}
 Melewatkan nilai dalam object
Berikut ini dibahas tentang cara melewatkan nilai dalam objek. Pada kelas Test berikut ini
terdapat sebuah objek dengan nama Test(), yang didalamnya terdapat dua buah variabel.
Variabel i dan j dengan type masing-masing adalah integer. Kedua variabel tersebut akan
dilewatkan . Berikut ini cara melewatkan sebuah nilai dalam objek
Pemrograman Java
26
STIMATA
class Test {
int a, b;
Test(int i, int j) {//objek dalam kelas
a = i;
b = j;
}
void meth(Test o) {//melewatkan nilai dalam objek
o.a *= 2;
o.b /= 2;
}
}
public class Main {
public static void main(String args[]) {
Test ob = new Test(15, 20);
System.out.println("ob.a and ob.b : " + ob.a + " " + ob.b);
ob.meth(ob);
System.out.println("ob.a and ob.b : " + ob.a + " " + ob.b);
}
}
Method overloading
 Penggunaan method dengan nama yang sama, parameter berbeda, dan me-return value
dengan return type yang berbeda
 Dapat digunakan ketika operator yang sama memiliki implementasi yang berbeda
Method overloading memiliki properti-properti berikut:

Nama yang sama

Parameter/argument berbeda (jumlah dan Type)

Return type dapat berbeda atau sama
Membangun konstruktor dalam kelas
class Kotak {
double lebar;
double tinggi;
Rectangle() {//konstruktor
lebar = 10;
tinggi = 10;
}
double area() {
return lebar * tinggi;
}
}
public class Main {
public static void main(String args[]) {
Rectangle myKotak1 = new Rectangle();
double area;
area = myKotak1.area();
System.out.println("Luas daerah " + area);
}
}

Konstruktor Dengan Parameter
Konstruktor dapat juga mempunyai beberapa parameter. Biasanya parameter-parameter
tersebut digunakan untuk mengeset insial dari objek.
Pemrograman Java
27
STIMATA
class Rectangle {
double lebar;
double tinggi;
Rectangle(double a, double a) {
lebar = a;
tinggi = b;
}
double area() {
return lebar * tinggi;
}
}
public class Main {
public static void main(String args[]) {
Rectangle myKotak1 = new Rectangle(10, 20);
double area;
area = myKotak1.area();
System.out.println("Luas daerah " + area);
}
}

Konstruktor Dengan Parameter Objek
class Rectangle {
double lebar;
double tinggi;
// Melewatkan parameter objek di constructor
Rectangle(Rectangle ob) {
lebar = ob.lebar;
tinggi = ob.tinggi;
}
Rectangle(double w, double h) {
lebar = w;
tinggi = h;
}
Konstructor digunakan saat tidak disebutkan secara khusus dimensi yang
diminta
Rectangle() {
// menggunakan inisialisasi -1
lebar = -1;
tinggi = -1;
}
// Konstruktor digunakan saat pembuatan kubik/volume
Rectangle(double len) {
lebar = tinggi = len;
}
double area() {
return lebar * tinggi;
}
}
Pemrograman Java
28
STIMATA
public class Main {
public static void main(String args[]) {
Rectangle myKotak1 = new Rectangle(10, 20);
Rectangle mykotak2 = new Rectangle(myKotak1);
double area;
// Memperoleh volume dari kotak1
area = myKotak1.area();
System.out.println("Luas dari Kotak1 adalah " + area);
// Memperoleh volume dari clone
area = mykotak2.area();
System.out.println("Luas dari kotak2 adalah " + area);
}
}

Penggunaan Nama Kontruktor Yang Berulang (Overload)
class Rectangle {
double lebar;
double tinggi;
// konstruktor dengan penyebutan seluruh dimensi
Rectangle(double w, double h) {
lebar = w;
tinggi = h;
}
// konstruktor dengan tanpa penyebutan variabel dimensi
Rectangle() {
// use -1 to indicate
lebar = -1;
tinggi = -1;
}
Rectangle(double len) {
lebar = tinggi = len;
}
double area() {
return lebar * tinggi;
}
}
public class Main {
public static void
Rectangle mybox1
Rectangle mybox2
Rectangle mycube
main(String args[]) {
= new Rectangle(10, 20);
= new Rectangle();
= new Rectangle(7);
double area = mybox1.area();
System.out.println(area);
area = mybox2.area();
System.out.println(area);
area = mycube.area();
Pemrograman Java
29
STIMATA
System.out.println(area);
}
}
E. Tugas

Buatlah program yang terdiri public class adalah Indentitas, class turunannya
adalah Ktm, method adalah tampil. Format tampilan dilayar sebagai berikut
Nama
NIM
Jurusan
Tempat/ Tgl Lahir

: <nama Anda>
: <Nomor Induk Mahasiswa>
: <Jurusan Anda>
: <……>
Scrip program hasil praktikum dicetak dan dikumpulkan paling lambat 2 hari
Pemrograman Java
30
STIMATA
Modul 7 : Pewarisan
A. Latar Belakang
Pada modul 7, membahas pewarisan sifat objek (inheritence) dari Pemrograman berorientasi
obyek (Object Oriented Porgramming). Selanjutnya, Anda akan membahas konsep dari
superclass dan subclass.
Perlunya mempraktekan hal tersebut sebagai penambahan pemahaman mahasiswa secara skill ,
selain pemahan secara abstrak yang telah dibahas pada saat Dasar Teori dikelas..
B. Tujuan
Pada akhir pembahasan, diharapkan mahasiswa mempunyai kompetensi dalam :


Membuat superclass dan subclass sendiri
Menjelaskan mengenai konsep pewarisan sifat objek
C. Dasar Teori
Java mengijinkan kita untuk mendefinisikan suatu kelas yang bersifat generik. Selanjutnya, kelas
tersebut dapat diturunkan lagi menjadi kelas baru dengan sifat yang lebih spesifik. Dalam
terminology Java, kelas induk yang diturunkan disebut dengan superclass. Adapun kelas baru
hasil turunan disebut dengan subclass.
Format
class nama-subclass extends nama-superclass {
//badan kelas
}
D. Latihan
Cara membuat kelas induk dan kelas turunan. Pada latihan ini, Anda akan membuat kelas induk
dengan nama Induk dan class turunannya bernama Child .
Percobaan 1
Membuat kelas turunan (Child) dari kelas sebelumnya (Induk)
class Induk {
int i, j;
void showInduk() {
System.out.println("i = " + i + " dan j = " + j);
}
}
class Child extends Induk {
int k;
void showChild() {
System.out.println("k = " + k);
}
void sum() {
System.out.println("i + j + k = " + (i + j + k));
}
}
Pemrograman Java
31
STIMATA
public class Main {
public static void main(String args[]) {
Induk superOb = new Induk();
Child subOb = new Child();
System.out.println("Data di SuperClass");
superOb.i = 10;
superOb.showInduk();
System.out.println();
System.out.println("Data di SubClass");
subOb.i = 7;
subOb.showInduk();
subOb.showChild();
System.out.println();
subOb.sum();
}
}

Hasil Runing Program diatas adalah sebagai berikut:
Data di SuperClass
i = 10 dan j = 0
Data di SubClass
i = 7 dan j = 0
k = 0
i + j + k = 7
E. TUGAS
1. Apa yang anda ketahui tentang kelas induk dan kelas turunan, dan apapula perbedaan
diantara keduanya.
2. Dari hasil running program induk.java diatas, untuk data induk muncul i = 10 dan j = 0,
sedangkan untuk data kelas child muncul i = 7 dan j = 0 serta k =0. Mengapa demikian,
jelaskan alasan Anda.
3. Ubah data j dan k yang masing-masing bernilai 0 menjadi j = 9 dan k = 11, kemudian
catat berapa nilai i+j+k?
Pemrograman Java
32
STIMATA
Modul 8 : Input dan Output
A. Latar Belakang
Dasar Teori I/O yang disampaikan secara teoritis dalam sesi kuliah (tatap muka) dikelas
mengakibatkan mahasiswa memahami secara abstrak sebatas jangkauan pikirannya. Diperlukan
aktivitas yang dapat merangsang pemahaman berdasar pengalaman dengan cara
mempraktekkan dalam program yang diharapkan mampu menguatkan pemahaman teoritis
diperkuiahan
Dalam kegiatan ini mahasiswa mempraktekkan membuat program yang berisikan beberapa
kelas, yaitu BufferedReader, InputStreamReader, System.in, dan try {}
B. Tujuan
Setelah melakukan kegiatan ini, mahasiswa diharapkan mempunyai kompetensi dalam
1. mengenal dasar-dasar I/O
2. melakukan Input
3. menampilkan Output
4. dasar-dasar Baca/Tulis File
5. Kelas File
6. membuat program yang bisa digunakan untuk menuliskan kalimat
C. Dasar Teori
Proses input dan output (I/O) adalah hal yang paling sering dijumpai pada sebagian besar
program yang membutuhkan data-data eksternal. Java menydiakan terhadap proses I/O dengan
menghadirkan paket java.io.*
Stream
Program java melakukan proses I/O melalui stream. Stream adalah sebuah abstraksi yang dapat
memberikan atau mendapatkan informasi. Stream dapat menghubungkan dengan perlatan fisik
yang terdapat dalam siste I/O Java, seperti keyboard, file, layar console dan yang lainnya.
Kelas-kelas dalam stream
Nama Kelas
Keterangan
BufferedInputStream
BufferedOutputStream
ByteArrayInputStream
ByteArrayOutputStream
Stream input yang telah ter-buffer
Stream output yang telah ter-buffer
Stream input yang membaca dari array byte
Stream output yang menulis ke array byte
Stream input yang berisi method-method untuk
membaca tipe data standar terdapat dalam java
Stream output yang berisi method-method untuk
membaca tipe data standar terdapat dalam java
Stream input yang membaca dari sebuah file
Stream output yang menulis ke sebuah file
Mengimplementasikan inputstream
Mengimplementasikan Outputstream
Kelas abstrak yang menjelaskan stream input
Kelas abstrak yang menjelaskan stream output
Penyalur input
Penyalur Output
Stream output yang berisi method println() dan print()
DataInputStream
DataOutputStream
FileInputStream
FileOutputStream
FilterInputStream
FilterOutputStream
InputStream
OutputStream
PipedInputStream
PipedOutputStream
PrintStream
Pemrograman Java
33
STIMATA
Kelas-kelas stream karakter
Nama Kelas
BufferedReader
BufferedWriter
CharArrayReader
CharArrayWriter
FileReader
FileWriter
FilterWriter
FilterReader
InputStreamReader
LineNumberReader
OuputStreamWriter
PipedReader
PipedWriter
PrintWriter
Reader
StringReader
StringWriter
Writer
Keterangan
Stream karakter input yang telah ter-buffer
Stream Karakter output yang telah ter-buffer
Stream input yang membaca dari array karakter
Stream output yang menulis ke array karakter
Stream input yang membaca dari sebuah file
Stream output yang menulis ke sebuah file
Reader yang ter-filter
Writer yang ter-filter
Stream input yang menerjemahkan byte ke karakter
Line input yang menghitung jumlah baris
Stream input yan menterjemahkan karakter ke byte
Penyalur Input
Penyalur Output
Stream output yang berisi method println() dan print()
Kelas abstrak yang menjelaskan stream karakter input
Stream input yang membaca dari sebuah string
Stream output yang menulis ke sebuah string
Stream output
Perintah Try {} catch {}
perintah try { ... }, adalah perintah yang ingin dijalankan pada situasi yang “mungkin” tidak
berhasil atau perintah yang akan dilakukan apabila kesalahan ditangkap..
Parameter pada catch, yaitu IOException e adalah jenis kesalahan yang ingin Anda tangkap.
Dalam hal ini Anda ingin menangkap adanya kesalahan IO, yaitu kesalahan yang bertipe
IOException. Jika tidak ada kesalahan IO yang ditemukan, maka bagian ini akan dilewatkan
(tidak dijalankan).

try {
...
} catch (IOException e) {
...
}
 Membaca Input data Karakter
Percobaan 1
import java.io.*;
/**
* @author Irul
*/
class DemoKarakter {
public static void main(String [] args) throws IOException {
System.out.print("Masukkan sembarang karakter: ");
char ch;
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
ch = (char) br.read();
System.out.println("Karakter yang dimasukkan adalah \'"+ch+"\'");
}
}
Pemrograman Java
34
STIMATA
 Membaca Input data String
Percobaan 2
import java.io.*;
/**
* @author Irul
*/
class DemoInput {
public static void main(String [] args) throws IOException {
System.out.print("Masukkan Nama Anda: ");
String nama;
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
nama = br.readLine();
System.out.println("Hello "+nama + ", sudahkan Anda paham Java?");
}
}
 Membaca Input data Numerik
Percobaan 3
import java.io.*;
/**
* @author Irul
*/
class DemoNumerik {
public static void main(String [] args) throws IOException {
System.out.print("Masukkan sebuah bilangan bulat: ");
String temp;
int bilangan = 0;
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
temp = br.readLine();
try{
bilangan =Integer.parseInt(temp);
}catch (NumberFormatException nfe){
System.out.println("Data
yang
dimasukkan
bukan
bilangan
bulat");
System.exit(1);
}
System.out.println("Bilangan yang dimasukkan adalah : "+bilangan);
}
}
 Membaca dan Menulis File
Percobaan 4
import java.io.*;
/**
* @author Irul
*/
class BacaFile {
public static void main(String [] args) {
FileInputStream finput = null;
int data;
//Membuka file
try {
finput = new FileInputStream("g:/data.txt");
}catch (FileNotFoundException fnfe){
Pemrograman Java
35
STIMATA
System.out.println("File tidak ditemukan");
return; //Keluar dari method
}
//Membaca data dari dalam file
try{
while ((data = finput.read())!= -1) {
//konversi data ke type char
System.out.println((char) data);
}
}catch (IOException e){
System.out.println(e.getMessage());
return;
}
//Menutup File
try {
finput.close();
}catch (IOException e){}
}
}
D. Praktek
 Progam berikut ini, membangun sebuah program aplikasi yang dapat digunakan untuk
menuliskan kalimat dengan menggunakan class-class di java.io.
Ketik kode berikut ini dan simpan dengan nama baca.java, compile dan kemudian jalankan.
import java.io.*;
public class baca
{
//StringReader
public static void main (String[] args)
{
System.out.println("Ketik Kalimat, Kemudian tekan Tombol 'Enter.'");
String string = "";
InputStreamReader input = new InputStreamReader(System.in);
BufferedReader reader = new BufferedReader(input);
// membaca iputan dari user
try
{
string = reader.readLine();
}
catch(Exception e){}
System.out.println("Tulisan Anda: " + string);
// menunggu diketik kata “ENTER” atau ditekan tombol ENTER untuk keluar
System.out.println("Tekan/Ketik 'Enter' untuk keluar");
try
{
string = reader.readLine();
}
catch(Exception e){
System.out.println ("Ada kesalahan!!!");}
}
}
Pemrograman Java
36
STIMATA
Modul 9 : Kelas File
A. Latar Belakang
Dasar Teori kelas File yang disampaikan secara teoritis dalam sesi kuliah (tatap muka) dikelas
mengakibatkan mahasiswa memahami secara abstrak sebatas jangkauan pikirannya. Diperlukan
aktivitas yang dapat merangsang pemahaman berdasar pengalaman dengan cara
mempraktekkan dalam program yang diharapkan mampu menguatkan pemahaman teoritis
diperkuiahan.
B. Tujuan
Setelah melakukan kegiatan ini, mahasiswa diharapkan mempunyai kompetensi dalam


Membaca file
Menyimpan file
C. Dasar Teori
 Menulis Teks
Untuk membaca sebuah file, Anda dapat menggunakan class FileInputStream. Berikut ini adalah
salah satu constructor dari class tersebut :
FileInputStream(String filename).
Constructor tersebut membuat sebuah koneksi terhadap file dimana nama dari file tersebut
ditunjukkan sebagai sebuah argument. Exception berupa FileNotFoundException akan muncul
jika file tidak ditemukan atau tidak dapat dibuka dan kemudian dibaca.
Setelah membuat sebuah input stream, Anda kemudian dapat menggunakannya untuk membaca
sebuah file dengan menggunakan method read. Method read menghasilkan sebuah nilai integer,
dan akan menunjukkan nilai 1 jika telah mencapai batas akhir file.
Berikut ini diberikan aplikasinya untuk membaca sebuah file
 Menyimpan Fille
Untuk menuliskan sebuah file, Anda dapat menggunakan class FileOutputStream.
Berikut ini salah satu constructor yang dapat Anda gunakan.
FileOutputStream(String filename)
Constructor tersebut menyediakan jalur output stream terhadap sebuah file yang akan ditulis.
Sebuah Exception berupa FileNotFoundException akan muncul jika file yang dimaksud tidak
dapat dibuka untuk ditulis.
Jika output stream telah dibuat, Anda dapat menggunakannya untuk menulis file yang dituju
penggunakan method write. Method tersebut menggunakan penandaan sebagai berikut :
void write(int b)
Parameter b mereferensikan data yang akan dituliskan pada file sesuai dengan hasil output
stream.
Program berikut menunjukkan contoh penulisan terhadap file :
Pemrograman Java
37
STIMATA
/**
* @author Irul
*/
import java.io.*;
class TulisFile {
public static void main(String args[]) throws IOException {
System.out.println("Nama File apa yang akan Anda tulis?");
String filename;
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
filename = br.readLine();
System.out.println("Masukkan Nama File " + filename + "..." );
System.out.println("Ketik E$ to end.");
FileOutputStream fos = null;
try {
fos = new FileOutputStream(filename);
}catch (FileNotFoundException ex) {
System.out.println("File tidak dapat dibuka .");
}
try {
boolean done = false;
int data;
do {
data = br.read();
if ((char)data == 'E') {
data = br.read();
if ((char)data == '$') {
done = true;
}
else {
fos.write('E');
fos.write(data);
}
}
else {
fos.write(data);
}
} while (!done);
} catch (IOException ex) {
System.out.println("Baca file bermasalah");
}
}
}
 Membaca Fille
import java.io.*;
class ReadFile {
public static void main(String args[]) throws IOException {
System.out.println("File Apa yang akan dibuka?");
String filename;
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
filename = br.readLine();
System.out.println("Baca File " + filename + "...");
FileInputStream fis = null;
Pemrograman Java
38
STIMATA
try {
fis = new FileInputStream(filename);
}catch (FileNotFoundException ex) {
System.out.println("File not found.");
}
try {
char data;
int temp;
do {
temp = fis.read();
data = (char) temp;
if (temp != -1) {
System.out.print(data);
}
} while (temp != -1);
}
catch (IOException ex)
{
System.out.println("Baca file bermasalah");
}
}
}

FileReader dan FileWriter
import java.io.*;
class CopyFile {
void copy(String input, String output) {
FileReader reader;
FileWriter writer;
int data;
try {
reader = new FileReader(input);
writer = new FileWriter(output);
while ((data = reader.read()) != -1) {
writer.write(data);
}
reader.close();
writer.close();
}
catch (IOException ie) {
ie.printStackTrace();
}
}
public static void main(String args[]) {
String inputFile = args[0];
String outputFile = args[1];
CopyFile cf = new CopyFile();
cf.copy(inputFile, outputFile);
}
}
Pemrograman Java
39
STIMATA

BufferedReader dan BufferedWriter
 Program menggunakan teknik dari perangkaian stream dimana clas FileReader dan
FileWriter didekorasi dengan class BufferedReader dan BufferedWriter, berurutan.


BufferedReader
BufferedWriter
;
;
import java.io.*;
class CopyFile {
void copy(String input, String output) {
BufferedReader reader;
BufferedWriter writer;
String data;
try
{
reader = new BufferedReader(new FileReader(input));
writer = new BufferedWriter(new FileWriter(output));
while ((data = reader.readLine()) != null) {
writer.write(data, 0, data.length());
}
reader.close();
writer.close();
}
catch (IOException ie)
{
//ie.printStackTrace();
System.out.println(“bufferd bermasalah”)
}
}
public static void main(String args[]) {
String inputFile = args[0];
String outputFile = args[1];
CopyFile cf = new CopyFile();
cf.copy(inputFile, outputFile);
}
}
D. Latihan
Buatlah sebuah program yang memuat dua String sebagai argument, sumber dan nama file
tujuan. Kemudian, baca file sumber dan tuliskan isi dari file tersebut terhadap file tujuan, seluruh
spasi yang ada („ „) diubah menjadi underscore („ _ „).
Pemrograman Java
40
STIMATA
Modul 10 :Pembuatan GUI - 1
A. Latar Belakang
Dalam module sebelumnya, Anda telah mempelajari bagaimana untuk mendapatkan input user
dan memanipulasi file-file menggunakan stream.
Kini Anda akan mempelajari lebih banyak tentang cara-cara pendesainan user-interface dalam
program-program GUI.
B. Tujuan
Pada akhir pembahasan diharapkan, mahasiswa mempunyai kompetensi pada pembuatan
aplikasi visual dengan;
 Menggunakan AWT
 Menggunakan Swing
 JButton
 JFrame
 JLabel
 JTextField
C. Dasar Teori
Dalam Java, terdapat dua pake yang dapat digunakan untuk mengembangkan program-program
GUI, yaitu: AWT dan Swing. AWT (Abstract Window Toolkit) yang berisi library dan digunakan
untuk menyederhanakan implementasi user-interface. Swing adalah bentuk implementasi
selanjutnnya yang menambahkan komponen-komponen dalam system GUI.
D. Latihan
Percobaan 1
Pada percobaan satu ini diimplementasikan komponen-komponen (Jbutton, Jframe, Jlabel, dan
JTexFeild ) swing pada sebuah program operasi matematika sederha.
package irul;
import java.awt.event.*;
import javax.swing.*;
/**
* @author Irul
*/
class DemoTeks implements ActionListener{
public JLabel label1,label2,label3;
public JTextField textField1, textField2, textField3;
public JButton button1, button2, button3,button4;
public DemoTeks() {
label1 = new JLabel("Nilai A");
label1.setLocation(10, 10);
label1.setSize(label1.getPreferredSize());
Pemrograman Java
41
STIMATA
textField1 = new JTextField(20);
textField1.setLocation(10,25);
textField1.setSize(textField1.getPreferredSize());
label2 = new JLabel("Nilai B");
label2.setLocation(10, 45);
label2.setSize(label2.getPreferredSize());
textField2 = new JTextField(20);
textField2.setLocation(10,60);
textField2.setSize(textField2.getPreferredSize());
label3 = new JLabel("Hasil Perhitungan A dan B ");
label3.setLocation(10, 90);
label3.setSize(label3.getPreferredSize());
textField3 = new JTextField(20);
textField3.setLocation(10,105);
textField3.setSize(textField3.getPreferredSize());
textField3.setEditable(false);
button1=new JButton("Tambah");
button1.setLocation(245,10);
button1.setSize(button1.getPreferredSize());
button1.addActionListener(this);
button1.setMnemonic('T');
button2=new JButton("Kurang");
button2.setLocation(245,40);
button2.setSize(button2.getPreferredSize());
button2.addActionListener(this);
button2.setMnemonic('u');
button3=new JButton("Kali");
button3.setLocation(245,70);
button3.setSize(button3.getPreferredSize());
button3.addActionListener(this);
button3.setMnemonic('K');
button4=new JButton("Bagi");
button4.setLocation(245,100);
button4.setSize(button4.getPreferredSize());
button4.addActionListener(this);
button4.setMnemonic('B');
}
public void createAndShowGUI(){
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame frame = new JFrame("Kalkulator by Irul");
frame.setLayout(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(label1);
frame.getContentPane().add(textField1);
frame.getContentPane().add(label2);
frame.getContentPane().add(textField2);
frame.getContentPane().add(label3);
frame.getContentPane().add(textField3);
Pemrograman Java
42
STIMATA
frame.getContentPane().add(button1);
frame.getContentPane().add(button2);
frame.getContentPane().add(button3);
frame.getContentPane().add(button4);
frame.setBounds(0, 0, 350, 200);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent event) {
double a=0.0, b= 0.0, c=0.0;
try{
a = Double.parseDouble(textField1.getText());
b = Double.parseDouble(textField2.getText());
}catch (NumberFormatException e){
e.printStackTrace();
//System.out.println(“abjad tidak diterima”);
}
JButton jbt = (JButton) event.getSource();
if(jbt == button1){
c = a + b;
}else if (jbt == button2){
c = a - b;
}else if (jbt == button3){
c = a * b;
}else {
c = a / b;
}
textField3.setText(new String().valueOf(c));
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable(){
public void run(){
DemoTeks app = new DemoTeks();
app.createAndShowGUI();
}
});
}
}
Hasil Running program DemoTeks diatas adalah seperti ditunjukkan pada gambar 9.1 berikut ini.
Gambar 10.1 layout hasil program
Pemrograman Java
43
STIMATA
Modul 11 : Pembuatan GUI - 2
A. Latar Belakang
Praktikum pada modul 11 ini membahas penggunaan Jcomponent yang telah dibahas pada saat
Dasar Teori dikelas. Mempraktekan hal tersebut sebagai penambahan pemahaman mahasiswa
dengan skill, selain pemahan abstrak.
B. Tujuan
Pada akhir pembahasan diharapkan, mahasiswa mempunyai kompetensi menggunakan
komponen-komponen Jcomponen pada pembuatan aplikasi visual;
1. JMenu
2. JMenuBar
3. JMenuItem
C. Dasar Teori
D. Latihan
/**
*
* @author Irul
*/
import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Menu extends JFrame implements ActionListener {
public JMenuBar menuBar;
public JMenu menu;
public JMenuItem menuItem;
public JMenu fileMenu;
// menu for load, save, exit, etc
public JMenu editMenu;
// menu for load, save, exit, etc
public Menu (){
menuBar = new JMenuBar();
menuBar.setLocation(0,0);
menuBar.setSize(new Dimension (1275, 20));
cFileMenu();
menuBar.add(fileMenu);
}
public void cFileMenu() {
fileMenu = new JMenu("File");
Pemrograman Java
44
STIMATA
fileMenu.setMnemonic('F');
String[] commands = { "Open", "Save", "Exit" };
char[] shortcuts = { 'O', 'S', 'X' };
for (int i = 0; i < commands.length; ++i) {
JMenuItem item = new JMenuItem(commands[i], shortcuts[i]);
item.addActionListener(this);
fileMenu.add(item);
}
}
public void actionPerformed(ActionEvent e) {
String selection = e.getActionCommand();
System.out.println(selection);
if(selection.equals("Exit")) {
System.exit(0);
}
}
public void creatAndShowGUI(){
//JFrame.setDefaultLookAndFeelDecorated(true);
JFrame frame = new JFrame("Menu Program Sederhana ");
frame.setLayout(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(menuBar);
frame.setBounds(0, 0, 500, 100);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
public static void main(String arg[]) {
javax.swing.SwingUtilities.invokeLater(new Runnable(){
public void run(){
Menu app = new Menu();
app.creatAndShowGUI();
}
});
}
}
Hasil running dari program Menu.java diatas adalah seperti ditunjukkan
berikut:
pada gambar 11.1
Gambar 11.1 Contoh Menu
Pemrograman Java
45
Download