Professional Documents
Culture Documents
Oleh
Robin, S.Kom
Referensi:
0
Bab I
Pendahuluan
Latar Belakang
Tujuan
Pembahasan
Persiapan
1. Memahami logika & algoritma
2. Pernah menggunakan bahasa C++
1
2. Bahasa Rakitan (Assembly/Pemrograman Tingkat Menengah)
Bahasa rakitan sangat identik dengan bahasa mesin. Sebuah statement bahasa rakitan
selalu dapat diterjemahkan menjadi 1 s/d 3 kode mesin. Dibandingkan dengan
pendahulunya yaitu bahasa mesin, bahasa rakitan memiliki beberapa keunggulan
sebagai berikut.
- Tidak perlu mengingat instruksi mesin, hanya perlu mengingat instruksi bahasa
rakitan yang biasanya sudah menggunakan singkatan dari bahasa Inggris sehingga
lebih mudah dimengerti pemrogram
- Dapat menggunakan referensi memori tertentu sebagai variabel & sub program
Namun seiring dengan perkembangan zaman bahasa rakitan juga telah banyak
ditinggalkan karena bahasa rakitan juga memiliki kelemahan sebagai berikut.
- Hanya memiliki tipe data bertipe byte dan word
- Sub program dalam bahasa rakitan sangat tidak nyaman digunakan
- Bahasa rakitan memiliki struktur kontrol tetapi sangat sulit untuk dipahami
sebagian besar pemrogram karena bahasa rakitan masih belum terstruktur
Hingga saat ini pemrograman terstruktur masih digunakan meskipun sebenarnya telah
dikenal pemrograman berorientasi objek
2
Bab II
Lingkungan Pemrograman
Lingkungan Pengembangan
Bahasa Java dikembangkan oleh Sun Microsystem tahun 1991 dengan struktur dan
bahasa program yang diturunkan dari bahasa C++.Bahasa Java diciptakan oleh James
Gosling dengan nama bahasa Oak. Awalnya bahasa Java hanya digunakan sebagai
pelengkap pada dokumen HTML (Hypertext Markup Language) pada web. Sekarang
program Java dapat digunakan pada sistem operasi yang berbeda dengan bantuan Java
Virtual Machine (JVM). Program java dapat dibuat dengan sembarang editor dan
disimpan dalam file teks berekstensi .java. Agar program dapat dijalankan maka program
tersebut harus dikompilasi dengan javac.exe yang disediakan oleh Java Development Kit
(JDK) menjadi file binary berekstensi .class sehingga class tersebut dapat dijalankan oleh
Java Virtual Machine (JVM) yang disediakan oleh Java Runtime Environment (JRE).
Struktur Program
[import package;]
[public] class NamaProgram {
//deklarasi variable & konstanta global
<tipe> var1;
<tipe> var2;
:
<tipe> varN;
Program mulai dijalankan dari metoda main dan setiap program java adalah merupakan class.
Kode program dalam bahasa Java bersifat Case Sensitive mengikuti bahasa C++.
3
Syarat Identifier (Pengenal, Variabel & Konstanta)
1. Hanya diperbolehkan menggunakan huruf, garis bawah (_) dan angka
2. Tidak diperbolehkan menggunakan karakter khusus seperti #,$,* dan lain-lain
3. Harus diawali huruf atau garis bawah, tidak dapat diawali dengan angka
4. Huruf besar & huruf kecil dianggab pengenal yang berbeda
Konstanta
Bentuk umum:
final tipe var[=nilai];
Contoh:
final double pi=3.1428;
4
- indexOf(str) Memeriksa apakah String x=s.indexOf(“ABC”);
str terdapat di dalam
String
- indexOf(chr) Memeriksa apakah x=s.indexOf(“a”);
karakter chr terdapat di
dalam String
5
+ Penjumlahan Hasil=oprnd1 + oprnd2
- Selisih Hasil=oprnd1 - oprnd2
* Perkalian Hasil=oprnd1 * oprnd2
/ Pembagian Hasil=oprnd1 / oprnd2
% Sisa Bagi Hasil=oprnd1 % oprnd2
= Sama dengan Var=Nilai2
++ Bertambah 1 Var++
-- Berkurang 1 Var--
+= Bertambah sebesar Var+=nilai
-= Berkurang sebesar Var-=nilai
*= Dikalikan dengan Var*=nilai
/= Dibagi dengan Var/=nilai
%= Ambil sisa bagi dengan dibagi Var%=nilai
Karakter Arti
; Akhir dari setiap baris program
// Komentar untuk 1 baris
/*… Komentar untuk lebih dari 1 baris
…*/
{ Blok statement harus diawali dengan { dan
… diakhiri dengan }
}
6
Bab III
Stream (Input/Output)
Ada 3 jenis stream yang dijalankan sekaligus dalam program java. Yaitu stream standard
input (System.in), stream standard output (System.out) dan stream standard error
(System.err)
Berikut ini adalah format yang dapat digunakan oleh metoda printf
Format Kegunaan
“%d” Cetak numerik dalam format desimal
“%o” Cetak numerik dalam format octal
“%x” atau “%X” Cetak numerik dalam format heksadesimal
“%e” atau “%E” Cetak pecahan dalam format eksponensial
“%f” Cetak pecahan dalam format pecahan
“%c” atau “%C” Cetak karakter
“%s” atau “%S” Cetak string
“%b” Cetak Boolean (true/false)
“%%” Cetak %
“\\” Cetak \
“\n” Cetak baris baru
“\”” Cetak “
“\t” Cetak Tab
Agar tampilan tipe data numerik dapat dicetak dengan teratur maka kita dapat
menyisipkan berapa tempat yang disediakan untuk mencetak data tersebut, misalnya:
- %4d -> menyediakan 4 tempat untuk mencetak sebuah variabel bertipe bilangan
bulat dengan tampilan rata kanan
- %5.2f -> menyediakan 5 tempat untuk mencetak sebuah variabel bertipe bilangan
pecahan dimana 2 tempat diantaranya digunakan untuk angka di belakang koma
dan 1 tempat digunakan untuk titik
7
System.in (Operasi Masukan)
Operasi masukan pada bahasa Java selalu diarahkan kepada keyboard. Operasi input yang
dapat digunakan pada bahasa Java yaitu:
1. Class DataInputStream (disediakan pada semua versi JDK)
Untuk dapat menggunakan class ini harus melakukan import
java.util.DataInputStream dan harus mendeklarasikan sebuah variable dari class ini
2. Class Scanner (disediakan pada JDK versi 1.5 ke atas)
Untuk dapat menggunakan class ini harus melakukan import java.util.Scanner dan
harus mendeklarasikan sebuah variable dari class ini dengan cara:
Scanner <var>=new Scanner(System.in);
Berikut ini adalah beberapa metoda yang disediakan pada class Scanner untuk
memasukkan data beberapa tipe.
Metoda Kegunaan
nextBoolean() Untuk tipe data boolean
nextByte() Untuk tipe data byte
nextDouble() Untuk tipe data double
nextFloat() Untuk tipe data float
nextInt() Untuk tipe data int
nextLine() Untuk tipe data String
nextLong() Untuk tipe data long
nextShort() Untuk tipe data short
Statement import
Statement import digunakan untuk menggunakan package yang telah disediakan oleh
bahasa Java. Package utama yang disediakan yaitu java.lang, java.util, dan lain-lain
//Bagian proses
L=s*s;
//Bagian output
System.out.printf(“Luas bujur sangkar : %4d\n“,L);
//atau bisa juga dengan
8
//System.out.println(“Luas bujur sangkar : “ + L);
}
}
int i;
byte b;
float f;
double d;
String s=”10”;
Boolean bl;
i=Integer.parseInt(s);
b=Byte.parseByte(s);
f=Float.parseFloat(s);
d=Double.parseDouble(s);
s=”true”;
bl=Boolean.parseBoolean(s);
s=Byte.toString(b);
s=Integer.toString(i);
s=Float.toString(f);
s=Double.toString(d);
9
Bab IV
Control Structure
Percabangan
Apabila statement yang akan dijalankan oleh if ataupun else lebih dari satu maka harus
dibantu dengan karakter { dan } sehingga bentuk percabangan if akan seperti terlihat di
bawah ini.
if (kondisi) {
statement1;
statement2;
:
statementN;
} else {
statement1;
statement2;
:
statementN;
}
Contoh:
import java.util.Scanner;
class ContohIf {
public statid void main(String[] args)
{
Scanner input=new Scanner(System.in);
int na;
char nh;
10
statement2;
:
statementN;
[break;]
case value2:
statement1;
statement2;
:
statementN;
[break;]
case valueN:
statement1;
statement2;
:
statementN;
[break;]
default:
statement1;
statement2;
:
statementN;
}
Contoh:
import java.util.Scanner;
class ContohCase {
public statid void main(String[] args)
{
Scanner input=new Scanner(System.in);
int Smtr;
String TA;
switch (smtr) {
case 0:
TA=”Anda masih anak-anak”;
case 1:
case 2:
TA=”2008-2009”;
break;
case 3:
case 4:
TA=”2009-2010”;
break;
case 5:
case 6:
TA=”2010-2011”;
break;
case 7:
case 8:
TA=”2011-2012”;
break;
default:
TA=”Anda adalah mahasiswa abadi”;
}
System.out.println(“Tahun Ajaran Anda adalah : “ + TA);
}
}
Perulangan
11
Dalam dunia pemrograman, perulangan bermanfaat untuk mengulangi beberapa bagian
program yang akan dikerjakan berulang-ulang sehingga kita tidak perlu lagi mengetikkan
kembali bagian program yang akan diulang. Ada 3 jenis perulangan yang disediakan
bahasa Java, yaitu perulangan for, while dan do-while.
Contoh:
for(i=0;i<5;i+=2) System.out.println(i);
Ketiga jenis perulangan tersebut akan dikerjakan selama kondisi yang diberikan
menghasilkan true.
Contoh perulangan do – while di bawah ini hasilnya akan berbeda apabila diganti dengan
perulangan while.
import java.util.Scanner;
class ulang {
public static void main(String[] args)
{
Scanner input=new Scanner(System.in);
int n1,n2,n3,total;
double rata;
char pil;
12
System.out.print("Masukkan nilai 3 : ");
n3=Integer.parseInt(input.nextLine());
total=n1+n2+n3;
rata=total/3;
do {
System.out.print("Hitung lagi (Y/T)? ");
pil=input.nextLine().toUpperCase().charAt(0);
} while (pil!='Y' && pil!='T');
} while (pil=='Y'); //digantikan dengan }
}
}
13
Bab V
Array
Array merupakan tipe data reference (lanjutan) yang disedikan oleh semua bahasa
pemrograman tingkat tinggi. Tipe data array adalah suatu tipe data yang dapat
menampung lebih dari 1 data dalam bentuk deretan dimana masing-masing data tersebut
memiliki tipe data yang sama sehingga memori yang dibutuhkan untuk masing-masing
elemen juga sama. Array dapat dibuat 1 dimensi ataupun multidimensi. Dalam bahasa
Java, array dapat berupa array statis ataupun array dinamis dan penomoran elemen array
dimulai dari elemen 0.
Sebagai contoh, jika x dideklarasikan dengan 5 elemen dengan perintah int x[]=new
int[5], maka sketsa memori untuk variabel x tersebut dapat digambarkan sebagai berikut.
Atau:
Tipe var[][]..[]={{{...},{...},...{...}}};
Berikut ini adalah beberapa metoda yang disediakan oleh class Arrays (terdapat pada
package java.util.Arrays)
14
adalah array)
asList(array) Mengkonversi array List a=Arrays.asList(x);
menjadi List
binarySearch(array,nilai) Mencari sebuah Pos=Arrays.binarySearch(x,4)
nilai dalam sebuah
array dengan syara
array harus terurut.
Metoda ini akan
menghasilkan posisi
dimana nilai berada
copyOf(array,n) Menyalin array ke y=Arrays.copyOf(a,x.length);
array baru dengan
panjang n
copyRange(array,awal,akhir) Menyalin array dari y=Arrays.copyRange(a,0,x.length-
nilai awal sampai 1);
akhir
equals(array1,array2) Memeriksa apakah if (Arrays.equals(x,y)) …
array1 sama dengan
array2
fill(array,value) Mengisi semua Arrays.fill(x,5);
elemen array
dengan value
sort(array) Mengurutkan array Arrays.sort(x);
toString(array) Mengkonversi array String s=Arrays.toString(x)
menjadi string
Selain itu semua variabel array juga memiliki metoda clone() untuk menduplikasi array
dan properti length untuk menghitung jumlah elemen array. Contoh pemakaian:
y=x.clone();
System.out.println(x.length);
Array List
Array List adalah tipe data array lanjutan yang mencakup ArrayList, LinkedList dan
Vector. Ada beberapa metoda yang disediakan array List, yaitu:
15
clear() Mengosongkan List y.clear();
contains(value) Memeriksa apakah value if (y.contains(10)) …;
terdapat dalam List
containsAll(Collection) Memeriksa apakah List if (y.containsAll(x)) …;
mengandung seluruh
elemen Collection
equals(List) Memeriksa apakah List y.equals(z);
sama dengan List yang lain
get(posisi) Mengambil elemen pada a=y.get(3);
posisi tertentu
indexOf(value) Mengambil posisi value a=y.indexOf(“E”);
dari List
isEmpty() Memeriksa apakah List If (y.isEmpty()) …
kosong
remove(value) Menghapus elemen value y.remove(“E”);
dari List
remove(posisi) Menghapus elemen di y.remove(3);
posisi tertentu pada List
set(posisi,value) Mengubah elemen pada y.set(3,”B”);
posisi tertentu menjadi
bernilai value
size() Menghitung jumlah elemen a=y.size();
dalam List
subList(awal,akhir) Menghasilkan List dari z=y.subList(2,5);
elemen awal sampai akhir
toArray() Menghasilkan array dari x=y.toArray();
List
Untuk dapat menggunakan masing-masing array List ini harus dilakukan import dari
package berikut ini.
16
Bab VI
Fungsi Matematika & Metoda
Fungsi Matematika
Import Static
Import static digunakan untuk memudahkan pemrogram supaya tidak perlu mengetikkan
nama package pada saat menggunakan metoda yang tersedia pada package tersebut.
Contoh:
import java.lang.Math.*;
class Coba {
public static void main(String[] args)
{
System.out.println( Math.sin( Math.toDegrees(90) ) );
}
}
Pada contoh di atas dapat dilihat bahwa pemrogram harus mengetikkan package “Math”
setiap kali akan menggunakan metoda sin() dan toDegrees(). Untuk memecahkan
ketidaknyamanan tersebut maka digunakan import static seperti contoh berikut ini.
import static java.lang.Math.*;
class Coba {
public static void main(String[] args)
{
System.out.println(sin(toDegrees(90) ) );
}
}
17
Penyusunan Metoda (Sub Program)
Pada dasarnya sub program digunakan untuk mempersingkat program. Bagian program
yang akan diulang berkali-kali pada bagian program utama yang berbeda akan lebih baik
digantikan dengan sebuah sub program daripada mengetikkan sub program tersebut
kembali. Dalam OOP sub program disebut dengan metoda. Dalam bahasa Java kita dapat
membuat metoda yang bertipe ataupun metoda yang tak memiliki tipe (void). Bentuk
umum deklarasi metoda dalam bahasa Java
Contoh:
class Function {
long Faktorial(int n)
{
int i;
long f=1;
for(i=2;i<=n;i++) f*=i;
return f
}
Rekursi
Rekursi adalah suatu kondisi dimana suatu metoda memanggil dirinya sendiri seperti
sebuah perulangan. Contoh:
Jika pada program utama dipanggil metoda Ulang(5) maka hasil outputnya adalah:
5432112345
18
Bab VII
Exception Handling
Semua bahasa pemrograman tingkat tinggi selalu memiliki cara untuk menangani
kesalahan yang timbul saat program dijalankan (rum time). Penanganan kesalahan
diperlukan karena pada saat program dijalankan, pemrogram dapat menemui kesalahan
(error) tak terduga yang muncul. Bahasa pemrograman yang mendukung pemrograman
berorientasi (termasuk Java, Visual Basic.NET, Visual C++.NET, Visual C#.NET,
Borland Delphi.NET) menangani kesalahan dengan menggunakan perintah try – catch –
finally.
Bentuk umum:
try {
} [finally {
//statement yang akan dijalankan setelah kesalahan ditangani
//Terjadi kesalahan ataupun tidak, bagian finally tetap dikerjakan
//Bagian ini boleh tidak dibuat (optional)
}]
try {
i=Integer.parseInt(s);
} catch (Exception e) {
System.out.println("Tidak dapat memberikan nilai pecahan kepada tipe
data bulat");
System.out.println("Pesan kesalahan dari JVM : " + e.getMessage());
} finally {
System.out.println("Bagian ini tetap dijalankan baik terjadi
kesalahan ataupun tidak");
}
}
}
19
Bab VIII
Class & Object
Pada dasarnya semua program Java adalah berorientasi objek. Sebuah program Java
sebenarnya tersusun atas banyak objek. Karena program Java itu sendiri dimodelkan dari
sebuah class dan semua variabel & konstanta yang digunakan sebenarnya juga
dimodelkan dari sebuah class.
Dalam membuat program Java, pemrogram terlebih dahulu menyusun sebuah class dan
setelah class ini selesai disusun, pemrogram akan memodelkan sebuah objek dari class
tersebut. Class adalah sebuah model yang akan digunakan dalam program sedangkan
objek adalah barang jadi yang dibuat berdasarkan model yang telah dirancang dari sebuah
class.
20
[public NamaClass(tipe param1, tipe param2, ..., paramN)
{
//deklarasi variabel local
:
}]
Sebuah class tidak memiliki program utama (main). Sebuah class dapat juga dibentuk
dari kumpulan class yang lain (Composition). Class harus dideklarasikan sebagai sebuah
objek pada sebuah program tester barulah class tersebut dapat digunakan dalam program.
Constructor adalah metoda yang akan dijalankan apabila sebuah objek diciptakan
(dengan perintah new) sedangkan Destructor adalah metoda yang akan dijalankan apabila
sebuah objek dihancurkan (jika program akan dihentikan). Dalam sebuah class,
constructor dapat dibuat lebih dari 1 dengan jumlah parameter yang berbeda untuk setiap
constructor-nya (Overloading). Selain constructor, metoda, accessor & mutator juga
dapat dilakukan overlading.
Accessor adalah sebuah metoda yang digunakan untuk memberikan nilai properti dalam
sebuah class kepada dunia luar. Accessor selalu menggunakan tipe data yang sama
dengan properti yang akan dikembalikan nilainya dan biasanya diawali dengan awalan
get (ambil).
Mutator adalah sebuah metoda yang digunakan untuk menerima sebuah nilai dari dunia
luar untuk mengubah nilai properti yang ada di dalam class. Mutator selalu bertipe void
dan memiliki sebuah parameter yang memiliki tipe data yang sama dengan properti yang
nilainya akan diubah. Mutator biasanya menggunakan awalan set (ubah).
21
Contoh penggunaan Constructor secara overloading, Destructor, Accessor & Mutator:
class KipasAngin {
private int JlhLengan, Level;
private int Kecepatan; //putaran per detik
do {
System.out.println(“Menu utama kipas angina”);
System.out.println(“1. Ubah Level”);
System.out.println(“2. Status Kecepatan”);
System.out.println(“3. Keluar”);
switch (pil) {
case 1:
System.out.print(“Masukkan level (1 s/d 6) : “);
l=Integer.parseInt(input.nextLine());
Kipas.ubahLevel(l);
break;
case 2:
System.out.println(“Kecepatan kipas angin sekarang adalah “
+Kipas.ambilKecepatan());
}
} while (pil!=3);
}
}
22
Inheritance, Access Modifier Public, Private & Protected
Salah satu keunikan OOP adalah penurunan sifat (inheritance). Sebuah class dapat dibuat
dengan cara menurunkan sifat class induk kepada class anak. Dengan demikian properti
dan metoda yang dideklarasikan dengan modifier public & protected pada class induk
juga diturunkan kepada class anak sehingga class anak juga memiliki properti dan metoda
tersebut. Jika properti dan metoda dideklarasikan dengan modifier private maka class
anak tidak akan mendapatkan properti dan metoda tersebut yang diturunkan dari class
induk.
Overriding
Overriding adalah sebuah kondisi dimana metoda yang setelah diturunkan dari class
induk kepada class anak namun pada class anak juga telah dideklarasikan metoda dengan
nama yang sama tetapi isi program dalam metoda tersebut bisa berbeda.
Kata kunci this digunakan sebagai pointer untuk menunjuk kepada class yang sedang
dirancang sedangkan kata kunci super digunakan sebagai pointer untuk memanggil class
induk dari sebuah class anak.
Contoh penggunaan Inheritance, Access Modifier public, private, Overriding, this &
super:
class Mamalia {
public int JlhTangan, JlhKaki;
private boolean ekor;
public Mamalia()
{
JlhTangan=JlhKaki=2;
}
Finalize()
{
JlhTangan=JlhKaki=0;
}
}
23
public void CaraMerangkak()
{
Super.CaraBerjalan();
}
}
Polymorphism
Polymorphism dalam suatu kondisi dimana class induk diturunkan kepada class anak dan
kemudian class anak diturunkan lagi 1 kali atau lebih kepada class lainnya.
Abstract
Abstract class digunakan sebagai base class dari sebuah class yang diturunkannya dan
tidak dapat digunakan untuk membentuk objek. Biasanya digunakan untuk
mendeklarasikan metoda yang sifatnya umum. Metoda abstrak tidak boleh dapat diisi
oleh statement-statement program. Dalam suatu abstract class dapat dideklarasikan
metoda abstract. Contoh:
class cobaAbstrak {
public static void main(String[] args)
{
Induk a=new Induk(); /*Terjadi error karena class abstract tidak
dapat dibuat objeknya*/
Anak b=new Anak();
}
}
Interface
Interface biasanya digunakan untuk memberikan property yang ada di dalamnya kepada
class yang lain tanpa harus diturunkan. Sama halnya dengan abstract, semua metoda di
dalam interface juga tidak dapat diisi dengan statement-statement program. Dalam
interface, modifier protected tidak dapat digunakan dan semua property harus diberikan
nilai awal. Contoh:
interface class A {
public int x=0; /*tidak dapat menggunakan protected
dan harus diberikan nilai awal*/
public abstract int ambilX(); //metoda abstrak harus kosong
}
24
class B implements A { //class Anak mendapatkan properti x
public int ambilX() //harus deklarasikan ulang ambilx()
{
return x; /*property x didapatkan dari proses implementasi class A
bukan diturunkan*/
}
}
class coba {
public static void main(String[] args)
{
A a=new A(); /*Terjadi error karena class abstract tidak
dapat dibuat objeknya*/
B b=new B();
}
}
25
Bab IX
Operasi File
Data-data yang tersimpan pada properti/variabel dalam semua bahasa program adalah
bersifat sementara. Karena properti tersebut semuanya tersimpan pada memori komputer,
bukan disimpan pada media penyimpanan. Dalam menyusun program berskala besar
pemrogram akan selalu membutuhkan tempat penyimpanan data yang bersifat permanen.
Solusi yang paling sederhana untuk masalah ini adalah menyimpan data dalam bentuk
file. Dalam kebanyakan bahasa program selalu memiliki 2 cara untuk mengakses file
yaitu file teks (Sequential File) dan file binary (Random Access File). Semua fungsi yang
berhubungan dengan operasi file dalam bahasa Java telah dibuat dalam package java.io.
Sequential File
import java.io.File;
class CobaFile {
public static void main(String[] args)
{
File f=new File(“Coba.txt”);
if (f.exists()) System.out.println(f.length());
}
26
}
Hasil program ini akan mengembalikan panjang file Coba.txt apabila file tersebut ada
Contoh penggunaan class FileWriter dan Formatter.
import java.io.FileWriter;
import java.util.Formatter;
import java.util.Scanner;
import java.io.IOException;
class CobaWriter {
public static void main(String[] args)
{
char pil;
String NIM, Nama;
int Nilai;
Scanner input=new Scanner(System.in);
Formatter ft;
try {
FileWriter fw=new FileWriter("test.txt");
ft=new Formatter(fw);
do {
System.out.print("Masukkan NIM : "); NIM=input.nextLine();
System.out.print("Masukkan Nama : "); Nama=input.nextLine();
System.out.print("Masukkan Nilai : ");
Nilai=Integer.parseInt(input.nextLine());
ft.format("%s\n%s\n%d\n",NIM,Nama,Nilai);
System.out.print("Simpan data lagi (Y/T) ?");
pil=input.nextLine().toUpperCase().charAt(0);
} while (pil=='Y');
ft.close();
fw.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
Hasil output:
Masukkan NIM : 001
Masukkan Nama : Test1
Masukkan Nilai : 45
Simpan data lagi (Y/T) ?y
Masukkan NIM : 002
Masukkan Nama : Test2
Masukkan Nilai : 56
Simpan data lagi (Y/T) ?t
27
try {
FileReader fr=new FileReader("test.txt");
input=new Scanner(fr);
while (input.hasNext()) {
System.out.println("NIM : "+input.nextLine());
System.out.println("Nama : "+input.nextLine());
System.out.println("Nilai : "+input.nextLine());
}
fr.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
Hasil output
NIM : 001
Nama : Test1
Nilai : 45
NIM : 002
Nama : Test2
Nilai : 56
Binary File
Bahasa java menyediakan class RandomAccessFile untuk melakukan operasi binary file.
Class ini terdapat dalam package java.io.RandomAccessFile. Beberapa metoda yang
disediakan dalam class ini adalah:
1. read
Terdiri dari readByte(), readBytes(), readChar(), readChars(), readDouble(),
readFloat(), readInt(), readLine(), readLong(), readUTF().
2. write
Terdiri dari writeByte(), writeBytes(), writeChar(), writeChars(), writeDouble(),
writeFloat(),writeInt(),writeLine(),writeLong(),writeUTF().
3. seek(posisi)
Menggeser file pointer ke posisi tertentu dalam file.
4. length()
Mengambil ukuran file.
5. getFilePointer()
Mengambil posisi file
try {
f=new RandomAccessFile("test.dat","rw");
28
do {
System.out.print("Masukkan NIM : "); NIM=input.nextLine();
System.out.print("Masukkan Nama : "); Nama=input.nextLine();
System.out.print("Masukkan Nilai : ");
Nilai=Integer.parseInt(input.nextLine());
f.writeUTF(NIM);
f.writeUTF(Nama);
f.writeInt(Nilai);
System.out.print("Simpan data lagi (Y/T) ?");
pil=input.nextLine().toUpperCase().charAt(0);
} while (pil=='Y');
f.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
Hasil output:
Masukkan NIM : 001
Masukkan Nama : Test1
Masukkan Nilai : 67
Simpan data lagi (Y/T) ?y
Masukkan NIM : 002
Masukkan Nama : Test2
Masukkan Nilai : 93
Simpan data lagi (Y/T) ?t
class Coba {
public static void main(String[] args)
{
String NIM="000",Nama="Test";
int Nilai=80;
RandomAccessFile f=null;
try {
f=new RandomAccessFile("Test.dat","r");
while (f.getFilePointer()<f.length()) {
System.out.println(f.readUTF());
System.out.println(f.readUTF());
System.out.println(f.readInt());
}
f.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
Hasil output:
001
Test1
67
002
Test2
93
29