Rabu, 10 Desember 2008

tugas java 2 - modul 5


TUGAS
PRAKTIKUM JAVA II

MODUL V
STREAM DAN FILE



Miko Dewi Hatmanti
123090061
Plug 10


                                         Ass           :  Shiddieqy Y. Katili


JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS PEMBANGUNAN NASIONAL “V” YOGYAKARTA
2010
Tutorial Stream dan File
File adalah sekumpulan data yang disimpan dalam media penyimpanan luar seperti disket/harddisk. Dalam C++ file adalah sebuah stream yang disimpan dalam media   penyimpanan luar. Karena merupakan sebuah stream, operasi yang berlaku pada stream berlaku juga untuk file.
        Stream adalah suatu logika device yang menghasilkan dan menerima informasi atau wadah yang digunakan untuk menampung keluaran dan menampung aliran data.
        Hirarki I/O class :


Penjelasan :
-    Ios adalah virtual base class untuk class istream dan ostream. Berisi fasilitas dasar untuk melakukan    proses  input/output. Dideklarasikan untuk pointer ke buffer untuk tempat penyimpanan data sementara.
-  Istream ( input stream ) mendefinisikan fasilitas untuk melakukan input suatu informasi. Di dalamnyadidefinisikan fungsi  get(   ),   getline(   ), extractor operator >>
-    Ostream (output stream ) mendefinisikan fasilitas untuk melakukan setting terhadap output.
-   Iostream berisi semua fasilitas dari ios, istream, ostream ditambah beberapa fungsi untuk menyempurnakan kerja dari fungsi yang dideklarasikan pada base class.

Untuk melakukan proses file I/O, diperlukan file header fstream.h didalam program. Dalam file fstream.h didefinisikan beberapa class/object yang berhubungan dengan pemrosesan file, yaitu: ifstream, ofstream, fstream yang diturunkan dari istream dan ostream. program. Dalam file fstream.h didefinisikan beberapa class/object yang berhubungan dengan pemrosesan file, yaitu: ifstream, ofstream, fstream yang diturunkan dari istream dan ostream.

Keterhubungan Sistem dengan File
Jika mendeklarasikan suatu stream, dapat menghubungkan stream tersebut dengan file, dimana proses ini berhubungan dengan operasi terhadap file.
Tiga proses utama dalam mengelola file adalah :
     1.   membuka file
     2.  melakukan proses terhadap file
     3.  menutup file

Sebelum membuka file, harus mengetahui keadaan mode filenya. Keadaan yang perlu diketahui, yaitu:
     1.  untuk membuka file dengan tujuan output, digunakan ofstream.
     2.  untuk membuka file dengan tujuan input, digunakan ifstream.
     3.  untuk membuka file dalam keadaan input maupun output, gunakan fstream.

·         Fungsi open ( ) digunakan untuk membuka file.
Bentuk umumnya adalah :

Void open (char* file_name, int mode, int access) ;

Keterangan :
      -  Dengan fungsi open(  ),  menhubungkan stream dengan file yang bernama file_name.
      -  Nilai dari var  mode akan menentukan bagaimana keadaan file  jika dibuka.
      - Variable access akan menentukan bagaimana metode pengaksesan terhadap file tersebut. Nilai ini        berhubungan dengan atribut file yang ada pada DOS.

Nilai pada variable mode adalah :
1.      ios : : app
Semua informasi yang ditulis ke dalam file (output) akan ditambahkan dibagian akhir file tersebut.
2.      ios : : ate
File akan dibuka dengan pointer file menunjuk pada akhir file.
3.      ios : : in
File akan dibuka sebagai input.
4.      ios : : out
File akan dibuka sebagai output
5.      ios : : nocreate
Akan mengakibatkan kesalahan jika file tidak ada.
6.      ios : : noreplace
File yang dibuka tidak dapat diganti, atau mengakibatkan kesalahan jika file yang akan dibuka sudah ada.
7.      ios : : trunc
Menyebabkan isi dari file yang sudah ada akan hilang

Nilai pada variable access adalah :
0 : normal file            4 : system file
1 : read only file         8 : archive bit-set file
2 : hidden file

·         Fungsi close ( ) untuk menutup file yang telah dibuka.
Bentuk umumnya :

Void close ( ) ;

Contoh penggunaan close ( ) :
Fout.close ( ) ;
Fin.close ( ) ;
Fio. Close ( ) ;

Didalam class ios terdapat pendefinisian fungsi : int eof ( ) digunakan untuk menentukan apakah pointer pada file telah mencapai akhir darti file tersebut.

Input/Output Karakter
Input/output pada file binary digunakan fungsi get ( ), put ( ).
Bentuk Umumnya :

Istream &get (char& ch) ;
Ostream &put (char ch) ;

Fungsi get(   ) akan membaca sebuah karakter dari stream dan karakter tersebut akan diletakkan pada variable ch. Fungsi ini akan mengembalikan reference ke stream jika EOF ditemukan, maka nilai yang dikembalikan NULL.

Fungsi put( ) akan meletakkan sebuah karakter ke suatu stream dan akan mengembalikan reference ke stream.

Untuk membaca dan menulis file binary dalam bentuk blok data dapat menggunakan fungsi read( ) dan write( ).
Bentuk Umum :
Misal kita membentuk objek bernama ta, maka untuk menggunakan fungsi read dan write bisa dilakukan dengan cara:
ta.read()
      ta.write()

Fungsi read(  )  akan membaca sejumlah num byte dari stream dan akan meletakkan data tersebut ke dalam variable yang ditunjukkan oleh pointer buf.

Fungsi write(  ) akan menulis sejumlah num byte ke stream dari data yang ditunjuk oleh pointer buf.

Fungsi yang akan mengembalikan karakter yang terakhir dibaca ke dalam memori lagi adalah : putback ( )
Bentuk umum :
Istream& putback (char ch) ;

Keterangan :
- Variable ch adalah karakter yang dibaca yang akan dikembalikan lagi ke stream ( didalam memori).



 
Contoh program


Penjelasan :
·         Baris 1 : Menyertakan semua class dalam paket java.io untuk menyediakan penanganan input ouput stream.
·         Baris 2 : Mendefinisikan class dengan nama BacaFile().
·         Baris 3 : Inisialisasi objek komponen – komponen yang akan digunakan.
·         Baris 4 : Mendefinisikan eof sebagai variabel Boolean.
·         Baris 5 : Merupakan sebuah constructor dari class BacaFile yang nantinya akan akan dijalankan saat objek dari class BacaFile terbentuk.
·         Baris 6 : Inisialisasi file dengan objek f yang bernama text.txt
·         Baris 7-9 : Sintaks untuk pengecekan apakan text.txt itu ada dan merupakan sebuah file. Jika benar maka akan muncul kata “OK”.
·         Baris 10-13 : Jika tidak bernilai benar pada pengecekan yang sebelumnya maka akan dicek lagi pada sintaks bagian else ini. Ketika sudah dicek pada bagian else ini, akan muncul tulisan “File not found” dan langsung keluar.
·         Baris 14-31 : Bagian ini merupakan blok try-catch yang dapat mengangani adanya penangkapan sinyal exception bila terjadi error. Ada inisialisasi objek fin yang merupakan objek dari class FileInputStream dan berisi objek dari file yang telah didefisikan sebelumnya. EOF diberi nilai false lalu variabel count diberi nilai 0. Kemudian ada sintaks perulangan while yang akan mengulang untuk membaca text.txt yang disimpan dalam variabel input. Jika input bernilai -1 maka itu merupakan end of file. Jika bukan maka count akan bertambah 1. Perulangan tersebut akan terus berlangsung ketika tidak ditemukan eof. Setelah itu file ditutup dan akan menampilkan count yang sudah diproses.
·         Baris 32 : Mendefinisikan method main. Main method ini digunakan untuk menjalankan program.
·         Baris 33 : Perintah untuk menjalankan constructor yang ada di class BacaFile.