Operasi File. terdapat 5 konstruktor dan 7 method untuk membuat file yang akan diakses menggunakan byte stream.

dokumen-dokumen yang mirip
MODUL VIII Exception, I/O, dan Operasi File

PEMROGRAMAN JAVA : STREAM DAN FILE

STREAM DAN FILE. PipedInputStream, SequenceInputStream, dan StringBufferInputStream.

Pemrograman Jaringan 10. Komunikasi Antar Obyek

Pemrograman Jaringan 10. Komunikasi Antar Obyek

Pertemuan ke-1 STREAM DAN IO. A. TUJUAN : Mampu mengimplementasikan kelas-kelas untuk menangani aliran data.

Topik. Stream I/O Cara menggunakan Stream Hierarchy Java I/O Membaca File Menulis File Menghapus File Cara membaca isi Direktori dalam file

I/O (Input dan Output)

PEMROGRAMAN JARINGAN MODUL 3 STREAM

PRAKTIKUM 8 FILE INPUT OUTPUT

A. TUJUAN PEMBELAJARAN

BAB Argument Command-Line dan System Properties

A. TUJUAN PEMBELAJARAN

PRAKTIKUM 7 DASAR INPUT OUTPUT

2 TIPE DATA DAN VARIABEL

PERTEMUAN V STREAM DAN OOP TUJUAN PRAKTIKUM. 2. Praktikan memahami pemrograman berbasis objek dengan mengetahui karakteristik OOP.

BAB II VARIABEL DAN TIPE DATA

PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA

BAHASA PEMROGRAMAN JAVA

1.Tujuan. 2. Latar Belakang. Tahu tipe-tipe stream yang umum digunakan Menggunakan class File dan methodnya

PERCOBAAN 6 EXCEPTION

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

Materi kuliah I/O & FILE. Ir. Roedi Goernida, MT.

Percobaan 6 Exception

PRAKTIKUM 6 EXCEPTION

Pertemuan 7 File pada Java

A. TUJUAN PEMBELAJARAN 1. Mengetahui cara menangani exception dengan cara melempar exception. 2. Mengetahui cara membuat sendiri class exception.

Badiyanto, S.Kom., M.Kom. PBO java

Introduction To Stream

E-Book PEMROGRAMAN BERORIENTASI OBJEK. Disusun Oleh: Arfian Hidayat, S.Kom

PEMROGRAMAN JAVA. Yoannita, S.Kom. Input Kondisi (IF-ELSE, SWITCH)

Cara Membaca File Text di JAVA

Connection Oriented. Kholid F.

Bahasa Pemrograman :: Dasar Pemrograman Java

PEMROGRAMAN BERORIENTASI OBJEK

PEWARISAN. Disusun Oleh: Reza Budiawan. Untuk: Tim Dosen Algoritma & Pemrograman Lanjut

LAMPIRAN A: SOURCE CODE PROGRAM CLASS METODE

PEMAHAMAN DASAR DASAR JAVA

SUMBER BELAJAR PENUNJANG PLPG

PENGAKSESAN FILE DI JAVA

PRAKTIKUM 17 MENANGANI EXCEPTION

game yang dibangun lebih semakin hidup dan terasa nyata, hal ini juga yang membuat para pemain lebih tertarik, bayangkan apabila di dalam suatu

BAB 3 TYPE DATA, VARIABLE DAN OPERATOR

A. TUJUAN : Dapat mengimplementasi-kan kelas-kelas Java yang digunakan dalam pemrogaman jaringan.

MODUL 7 I/O Stream. Tujuan: Mahasiswa dapat mengenal dan memahami konsep I/O Stream, serta penerapan I/O Stream dalam konsep OOP

Pemrograman Berorientasi Obyek. Exception Handling. Politeknik Elektronika Negeri Surabaya

EXCEPTION. 2. Pada kondisi bagaimana klausa finally tidak akan dieksekusi? Kode didalam block try memiliki statement return

Pengenalan JavaScript

JAVA BASIC PROGRAMMING Joobshet

PERTEMUAN 3 OBJEK DAN CLASS

Pemrograman Socket menggunakan TCP

2. Pilih instruksi yang dapat digunakan dalam method actionperformed untuk membedakan antara tombol buttonone dan buttontwo.

BAHASA PEMROGRAMAN JAVA PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM YOGYAKARTA

SILABUS MATA KULIAH PEMROGRAMAN JAVA

KONSEP DASAR PEMROGRAMAN BERORIENTASI OBYEK

BAB 1 KONSEP DASAR JAVA

LAB PEMROGRAMAN I (JAVA FUNDAMENTAL) PERTEMUAN 3 Dosen : Bella Hardiyana S. Kom

Identifier, Keywords, Variabel, Tipe Data Primitif dan Operator PBO. Ramos Somya

Elemen Dasar Dalam Bahasa Java

Variabel tersebut seharusnya bisa dideklarasikan didalam try block dan block catch

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA STACK

Waktu Sisa : 0:43:4. Sukses. Kesalahan pada URL. File tidak lengkap. Kesalahan umum. Mengerjakan finally. Diluar block

Sesi 8. Event Handling & Exception Handling. Tujuan Intruksional

Abstract Class dan Interface. Viska Mutiawani, M.Sc

Pemrograman I. By : Sri Rezeki Candra Nursari SKS

Praktikum 3 Konsep Class, Attribute dan Method

Modul 4 Exception, I/O, dan Operasi File

TIPE DATA PADA JAVA. Pertemuan (K-04/L-04)

1. Manakah jawaban yang benar,pada saat Anda mengcompile dan menjalankan class berikut ini:

1. Keyword mana yang memiliki fungsi sama dengan keyword this dan menyediakan reference ke atribut turunan dari objek? super

MENGGUNAKAN TCP SOCKET. Oleh: M. Ghazali a.k.a. ghanoz 2480

Pemrograman Berorientasi. Class dan Obyek 2

Exception Handling. Topik

IKG2I4 / Software Project I

Riwayat Pendidikan: SDK Lemuel II, Pos Pengumben, Jakarta Barat SMPK Lemuel, Pos Pengumben, Jakarta Barat SMUN 78, Kemanggisan, Jakarta Barat

Tidak ada satupun dari pilihan di atas yang benar karena checked exception tidak bisa ditulis

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

PEMROGRAMAN II. By : Sri Rezeki Candra Nursari. Penilaian : Gasal TA 2011/2012. UAS (lisan) = 35 % UTS = 25 % Tugas = 15 % Praktikum = 25 %

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

PENGENALAN JAVA (2)

1. Apa yang harus dilakukan oleh programmer untuk menangani user-defined exception? Menuliskan exception sebagai start method

Sukses. Kesalahan pada URL. File tidak lengkap. Kesalahan umum

Apa yang menjadi output potongan kode diatas? Error karena tidak ada String yang di-passing kedalam konstruktor Bapak

PEMROGRAMAN BERORIENTASI OBJEK

Pemrograman Berbasis Objek. Exception Handling. Politeknik Elektronika Negeri Surabaya

Praktikum 9 Exception Handling

PRAKTIKUM PEMROGRAMAN OBJEK DENGAN JAVA MODUL KE-5 EXCEPTION HANDLING

PEMROGRAMAN BERORIENTASI OBJEK

Pemrograman I. By : Sri Rezeki Candra Nursari SKS

Pemrograman. Pertemuan-3 Fery Updi,M.Kom

Pemrograman Berorientasi Object

LAPORAN PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK

Pemrograman Lanjut Review Class dan Object PTIIK

PEMROGRAMAN SOCKET LANJUTAN

1. Mana diantara pilihan-pilihan berikut ini yang merupakan penulisan loop yang benar?

LAPORAN RESMI. PRAKTIKUM TEKNOLOGI WEB Pengenalan JavaScript

Dasar Pemrograman Java

Pemrograman Berorientasi Objek

TPI4202 e-tp.ub.ac.id. Lecture 4 Mas ud Effendi

OPERASI FILE & EXCEPTION HANDLING. Herman Tolle

Transkripsi:

Operasi File File digunakan sebagai media penyimpan. Untuk mengakses file kita harus menspesifikasikan dimana file yang akan kita akses, atau file baru yang akan disimpan. Dalam java kita dapat melakukan operasi file, yaitu membuat file baru atau menulis dan membaca file dengan character stream atau dengan byte stream. Untuk menciptakan sebuah file dengan mengakses class java.io.file dan menciptakan objek dari class tersebut, ini tanpa harus menangkap error io. Berbeda dengan menciptakan file yang langsung diakses oleh stream, file tersebut harus dapat menangkap error io ketika penciptaan objek class file. java.io.file terdapat 4 atribut, 4 konstruktor dan 39 method yang ada didalam class untuk menspesifikasikan file yang dibuat. File(),File(String path),file(string dir,string nm) Konstruktor diatas adalah yang sering digunakan yaitu membuat objek file kemudian digunakan dengan pengesetan methodnya, atau menginstan langsung dengan nama file beserta pathnya. boolean createnewfile(), boolean delete(),boolean exists() method-method diatas untuk mengeset dengan pengecekan, untuk createnewfile digunakan untuk menciptakan file kemudian mengembalikan nilai true jika file dibuat. java.io.filewriter dengan character stream terdapat 5 konstruktor dan tidak ada method yang dideskripsikan didalam class ini. FileWriter(File of), FileWriter(File of,boolean append) Digunakan untuk penciptaan objek file yang akan diakses dengan character stream, dan untuk variabel append digunakan untuk apakah isi file akan dilanjutkan ke akhir dari isi file. Kira-kira seperti apa yah java.io.fileinputstream dengan byte stream terdapat 3 konstruktor dan 9 method yang ada. Digunakan untuk mengambil file yang telah dideskripsikan untuk dibaca dengan byte stream. FileInputStream(File of), FileInputStream(String nama) Digunakan untuk mengambil file untuk dibaca secara byte stream,bisa memasukan deskripsi file yang telah ada dengan String, atau dengan file yang telah diinstan dengan jelas. java.io.fileoutputstream dengan byte stream terdapat 5 konstruktor dan 7 method untuk membuat file yang akan diakses menggunakan byte stream. FileOutputStream(File of), FileOutputStream(File of,boolean append) Digunakan untuk penciptaan objek file yang akan diakses dengan byte stream, dan untuk variabel append digunakan untuk apakah isi file akan dilanjutkan ke akhir dari isi file. java.io.filereader dengan character stream terdapat 3 konstruktor dan tidak ada method yang dideskripsikan didalam class ini. FileReader(File of), FileReader(String nama). Digunakan untuk mengambil file untuk dibaca secara character stream,bisa memasukan deskripsi file yang telah ada dengan String, atau dengan file yang telah diinstan dengan jelas. implementasinya di kode? Any idea? Modul Praktikum Pemrograman Berorientasi Objek 53

input file dengan byte stream import java.io.*; public class DemoStream5 { public static void main(string[] args) { byte data; String namafile = "test.txt"; FileOutputStream fout = null; try { fout = new FileOutputStream(namaFile, true); //true artinya menambahkan kedalam file, tidak menimpa System.out.print("Ketik : "); data = (byte)system.in.read(); while (data!=(byte)'\r') { fout.write(data); data = (byte)system.in.read(); enter catch (FileNotFoundException e) { System.out.println("File "+namafile+" tidak dapat dicreate"); catch (IOException e) { System.out.println("Terjadi Exception"); finally { if (fout!=null) { try { fout.close(); catch (IOException e) { System.out.println("Terjadi Exception"); Outputnya: Ketik : commonlabz 54 Modul Praktikum Pemrograman Berorientasi Objek

input file dengan byte stream import java.io.*; public class DemoStream4 { public static void main(string[] args) { byte data; String namafile = "test.txt"; FileInputStream fin = null; try { fin = new FileInputStream(namaFile); do { data = (byte)fin.read(); System.out.print((char)data); while (data!=-1); //pada saat eol/eof nilai yang dikembalikan -1 catch (FileNotFoundException e) { System.out.println("File "+namafile+" tidak ditemukan"); catch (IOException e) { System.out.println("Terjadi Exception"); finally { if (fin!=null) { try { fin.close(); catch (IOException e) { System.out.println("Terjadi Exception"); Outputnya: commonlabz? Komunikasi antar objek Objek komputer interface Proses A Objek X bark() Objek Y eat() Remote method invocation Local method invocation Proses B Objek L sing() Objek P sit() Remote object Remote object dipanggil oleh objek lain melalui remote object Objek manusia references yang merupakan sebuah ID yang dapat digunakan untuk Agar satu objek bisa berkomunikasi menunjuk pada suatu remote object tertentu, di dalam ID ada info dengan objek lain maka setiap objek alamat host di mana remote object yang ditunjuk lagi jalan. Method pasti memiliki definisi interface. mana aja yang bisa dipanggil secara remote didefinisiin di remote interface Modul Praktikum Pemrograman Berorientasi Objek 55

Object Serialization Apa itu object serialization? Suatu mekanisme yang dapat membuat sebuah objek dapat dikirimkan seperti mengirimkan data. Object serialization merupakan perluasan dari inti class java io yang digunakan untuk objek dan bisa digunakan untuk pengkodean (encoding) untuk objek dan membuat objek tersebut dapat diraih atau digunakan, dengan melalui bit-bit stream, kemudian dapat digunakan untuk penyusunan kembali objek tersebut dari bit-bit stream yang dikodekan, dan saling melengkapi. Serialisasi merupakan mekanisme yang ringan dan kuat untuk komunikasi dengan sockets atau RMI(Remote Method Invocation). Selain untuk komunikasi dengan sockets teknik ini dapat digunakan juga untuk menyimpan keadaan suatu status dari suatu objek ke dalam file, seperti yang sudah dijelaskan di pendahuluan. Jika kita ingin membuat sebuah objek yang dapat diserialisasikan, maka kita harus mengimplementasikan salah satu interface java.io.serializable atau java.io.externalizable pada class yang ingin dibuat objek yang dapat diserialisasikan. Untuk lebih jelas tentang serialisasi objek dibawah ini akan diberikan sedikit penjelasan yang terkait dengan objek serialisasi. Interface java.io.serializable Interface serializable harus di implementasikan jika ingin membuat objek yang dapat diserialisasi, implementasi interface serializable tergolong sederhana karena tidak terdapat method yang harus didefinisikan untuk di override. Tujuan mengimplementasikan interface serializable adalah untuk memberitahukan kepada JVM (Java Virtual Machine), bahwa objek yang menerapkan serializabel merupakan objek yang dapat diserialisasikan. Class java.io.objectoutputstream Class objectoutputstream adalah kelas yang digunakan untuk mengirimkan objek menjadi stream yang kemudian dapat dikirimkan ke file atau ke socket (jaringan). Class ObjectOutputStream mempunyai 2 constructor dan 31 method untuk versi jdk 1.5. Adapun method dan constructor yang sering digunakan adalah ObjectOutputStream(OutputStream out) Membuat ObjectOutputStream yang akan menuliskan ke spesifik OutputStream yang dikehendaki. void writeobject(object obj) menuliskan objek yang akan dikirimkan ke ObjectOutputStream. Class java.io.objectinputstream Class ObjectInputStream adalah kelas yang digunakan untuk mengambil objek dari stream yang dikirimkan melalui file atau socket (jaringan). Class ObjectInputStream mempunyai 2 Constructors, 31 methods untuk versi jdk 1.5. Method dan constructor yang sering digunakan adalah ObjectInputStream(InputStream in) Membuat ObjectInputStream yang akan mengambil spesifik stream dari InputStream yang dikehendaki. Object readobject() Membaca objek yang telah diddefinisikan. 56 Modul Praktikum Pemrograman Berorientasi Objek

import java.io.*; public class BarangSer implements Serializable{ private String nama; private int jumlah; public BarangSer (String nm, int jml){ nama=nm; jumlah=jml; public void tampil(){ System.out.println("nama barang: "+nama); System.out.println("jumlah barang: "+jumlah); public void simpanobject(barangser ob){ try{ FileOutputStream fos= new FileOutputStream("dtBrg.txt"); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeobject(ob); oos.flush(); catch(ioexception ioe){ System.err.println("error"+ioe); public void bacaobject(barangser obb){ try{ FileInputStream fis= new FileInputStream("dtBrg.txt"); ObjectInputStream ois = new ObjectInputStream(fis); while( (obb=(barangser)ois.readobject())!=null) obb.tampil(); catch(ioexception ioe){ System.exit(1); catch(exception e){ System.exit(1); public static void main(string[] args){ BarangSer a1 = new BarangSer("Baju",5); a1.simpanobject(a1); a1.bacaobject(a1); Output program: nama barang : Baju jumlah barang : 5 Modul Praktikum Pemrograman Berorientasi Objek 57

Modifier Transient Buat apa modifier transient? Pada contoh di atas, objek yang kita simpan itu bisa dibaca oleh siapapun yang punya hak akses. Nah buat antisipasi hal itu, kita bisa buat atribut tidak diserialisasikan. Makanya kita pake modifier transient pada atribut yang ngga pengen kita serialisasikan. Misalnya, dari contoh diatas, salah satu atributnya nggak kita serialisasikan maka pada saat dijalankan hasil dari atribut tersebut mengeluarkan nilai defaultnya untuk yang tak mempunyai nilai. Dalam kasus ini kita dapat melakukan manipulasi, sehingga atribut transient dapat diserialisasikan dengan dienkripsikan terlebih dahulu kemudian didekripsikan ketika dibaca. Untuk melakukan itu kita harus mengoverriding method writeobject yang ada pada kelas ObjectOutputStream dan readobject yang ada pada kelas ObjectInputStream. Selain dengan cara diatas ada cara lain yang mungkin lebih mudah untuk dipahami yaitu dengan mengimplementasikan interface java.io.externalizable. Interface java.io.externalizable Interface Externalizable merupakan subclass dari interface Serializable. Akan tetapi interface Externalizable terdapat 2 method yang harus dioverriding dan didefinisikan yaitu writeexternal dan readexternal. Berikut ini penjelasan kedua method tersebut. void writeexternal(objectoutput out) throws IOException digunakan untuk menyimpan objek Nama Method kedalam suatu metode operasi, seperti file/socket. Terdapat void writeboolean(boolean b) parameter ObjecOutput yang bernama out, ObjectOutput adalah void writebyte(int i) jenis interface yang dijadikan tipe variable parameter. Dan berikut void writechar(int c) beberapa method yang dapat digunakan parameter tersebut. void writedouble(double d) void writefloat(float f) Keterangan Menuliskan nilai bertipe Boolean Menuliskan nilai bertipe byte Menuliskan nilai character dengan (byte)(0xff & (c >> 8)) (byte)(0xff & c) Menuliskan nilai bertipe double Menuliskan nilai bertipe float Method-method ini yang sering dapat digunakan untuk menuliskan tipe data, yang ada dalam method writeexternal ini, meskipun banyak method lain lagi yang dapat digunakan untuk keperluan yang lain. void writeint(int i) void writelong(long l) void writeshort(int s) void writeobject(object o) Menuliskan nilai bertipe integer Menuliskan nilai bertipe long Menuliskan nilai bertipe short Menuliskan objek atau tipe data referensi 58 Modul Praktikum Pemrograman Berorientasi Objek

void readexternal(objectinput in) throws IOException, ClassNotFoundException Digunakan untuk membaca objek yang telah dikirimkan melalui suatu metode operasi, seperti file atau socket. Terdapat parameter bertipe ObjecInput yang bernama in, sama seperti ObjectOutput, ObjectInput merupakan interface yang dijadikan tipe parameter. Berikut beberapa method read yang dapat digunakan untuk membaca nilai dari input stream. Nama Method boolean readboolean() byte readbyte() char readchar() double readdouble() float readfloat() int readint() long readlong() Object readobject() short readshort() Keterangan Membaca nilai boolean dan meng-embalikannya Membaca nilai byte dan meng-embalikannya Membaca nilai karakter dan meng-embalikannya Membaca nilai double dan meng-embalikannya Membaca nilai float dan meng-embalikannya Membaca nilai integer dan meng-embalikannya Membaca nilai long dan meng-embalikannya Membaca objek dan mengembalik-an ke tipe Object Membaca nilai boolean dan meng-embalikannya Method-method ini yang sering dapat digunakan untuk membaca tipe data, yang ada dalam method readexternal, meskipun banyak method lain lagi yang dapat digunakan untuk keperluan yang lain. Jika kita ingin membuat kelas yang mampu menserialisasikan objeknya dan dapat mengontrol dan memanipulasi atribut yang diserialisasikan maka kita dapat membuat kelas tersebut mengimplementasikan interface Externalizable, kemudian mengoverriding kedua method diatas. Kedua method diatas akan dipanggil secara otomatis ketika operasi baca dan tulis ke atau dari input/output stream terjadi. Jika output programnya seperti di bawah ini, bagaimana bentuk kode programnya? Mari kita lihat kodenya di halaman sebelah data barang : sepatu jumlah barang : 2 1. [Booch95] Grady Booch, Object Oriented Analysis and Design with Application, The Benjamin/ Cumming Publishing Company, 1995. 2. [Coad91] Coad, Peter, Yourdon, Object Oriented Design, Second Edition, Prentice Hall, 1991 3. [Darwin01] Ian Darwin, Java CookBook, First Edition, O Reilly, 2001 4. [Deitel04] H.M Deitel, Java How to Program, Sixth Edition, Prentice Hall, 2004 5. [Meyer97] Bertrand Meyer, Object Oriented Software Construction, Second Edition, Prentice Hall, 1997 Modul Praktikum Pemrograman Berorientasi Objek 59

import java.io.*; public class BarangEx implements Externalizable{ private String nama; private int jumlah; public BarangEx(){ //konstruktor 1 public BarangEx(String nm, int jml){ nama=nm; jumlah=jml; //konstruktor2 public void writeexternal(objectoutput out) throws IOException{ out.writeobject(nama); //string adalah tipe data referensi out.writeint(jumlah); public void readexternal(objectinput in) throws IOException, ClassNotFoundException{ this.nama = (String) in.readobject(); this.jumlah= in.readint(); public String tostring(){ return "data barang: "+nama+"\n"+"jumlah barang: "+jumlah; public static void simpanobjek(barangex brg) throws IOException{ FileOutputStream fos = new FileOutputStream("dtEx.txt"); ObjectOutputStream oos=new ObjectOutputStream(fos); oos.writeobject(brg); oos.flush(); public static BarangEx bacaobjek() throws ClassNotFoundException,IOException{ FileInputStream fis= new FileInputStream("dtEx.txt"); ObjectInputStream ois = new ObjectInputStream(fis); return(barangex)ois.readobject(); public static void main(string[] args) throws ClassNotFoundException,IOException{ BarangEx awal = new BarangEx("sepatu",2); simpanobjek(awal); System.out.println(bacaObjek()); 60 Modul Praktikum Pemrograman Berorientasi Objek