Minggu, 30 November 2014

Kuliah Alogaritma Pemrograman Java



                                              INPUT DAN OUTPUT STREAM


  Pada program-program yang membutuhkan data-data eksternal, maka diperlukan suatu proses input dan ouput (I/O), dimana pada Java dukungan proses I/O ini sudah disediakan dalam paket java.io.

  Program Java melakukan proses I/O melalui stream, yaitu sebuah abstraksi yang dapat memberikan atau mendapatkan informasi. Stream dapat dihubungkan dengan peralatan fisik yang terdapat dalam sistem I/O Java, seperti keyboard, file, layar console, soket jaringan, dan lainnya.
 Stream ada dua jenis, yaitu:
  1. Stream byte digunakan untuk memberikan atau menyimpan informasi data dalam bentuk byte, misalnya untuk menulis dan membaca file biner.
  2. Sedangkan stream karakter pada proses I/O melibatkan data-data berbentuk karakter, misalnya proses baca/tulis ke suatu file teks, dengan menggunakan karakter Unicode.
  Pendefinisian stream dilakukan dengan menggunakan 2 kelas abstrak, yaitu :
  InputStream dan OutputStream, sebagai superclass untuk kelas-kelas dalam kategori stream byte, dan kelas abstrak Reader dan Writer untuk kategori stream karakter.
  Melalui proses pewarisan (inheritance), semua kelas yang diturunkan dari InputStream maupun Reader akan memiliki method read(), yang digunakan dalam proses pembacaan data.Untuk proses penulisan data digunakan method write() dalam semua kelas yang diturunkan dari OutputStream maupun Writer.
Daftar beberapa kelas dalam paket java.io yang termasuk dalam kategori stream byte ditunjukkan pada Tabel 1, sedangkan kelas-kelas dalam kategori stream karakter ditunjukkan pada Tabel 2.
 Kelas System juga mendefinisikan tiga variabel stream, yaitu in, out, dan err, dimana data-datanya dideklarasikan sebagai public atau static.
  System.out adalah stream output standar dengan default layar console.
  System.in adalah objek dari tipe PrintStream, defaultnya berupa keyboard dan mengacu pada stream input standar.
   Sedangkan pada stream error standar terdapat System.err yang secara default berupa layar console.


InputStream
                                Input Stream merupakan class abstrak sehingga  tidak dapat secara langsung menggunakan class ini .Subclass-subclass dari class ini yang akan memberikan fungsi khusus yang bervariasi. Subclass-subclass dari Input Stream adalah :
ByteArrayInputStream
Kegunaan : Menggunakan buffer pada memori sebagai aliran input
Argumen yang dibutuhkan untuk membuat objek : Buffer yang akan digunakan sebagai aliran input

StringBufferInputStream
Kegunaan : Mengubah string menjadi InputStream
Argumen yang dibutuhkan untuk membuat objek : Suatu String (di dalamnya sebenarnya menggunakan StringBuffer)
FileInputStream
Kegunaan : Untuk membaca informasi dari dalam file
Argumen yang dibutuhkan untuk membuat objek : String yang berupa nama suatu file, atau objek bertipe File atau FileDescriptor
PipedInputStream
Kegunaan : Menghasilkan data yang ditulis oleh PipedOutputStream. Mengimplementasi konsep "piping". Bisa digunakan untuk multi-threading
Argumen yang dibutuhkan untuk membuat objek : Objek PipedOutputStream
SequenceInputStream
Kegunaan : Menggabungkan dua atau lebih InputStream menjadi satu InputStream
Argumen yang dibutuhkan untuk membuat objek : Dua atau lebih objek bertipe InputStream atau kontainer bertipe Enumeration yang berisi InputStream yang akan digabungkan
FilterInputStream
Kegunaan : Kelas abstrak yang merupakan interface dari beberapa kelas bantu untuk menggunakan InputStream lain


Dua method utama dari Input Stream adalah :
  read()
                method ini digunakan untuk membaca stream.
  close()
                method ini digunakan untuk menutup koneksi input  stream.

  OutputStream
OutputStream merupakan class abstrak tan tidak dapat langsung  digunakan dalam program .anda dapat menggunakan subclass dari outputstream dalam program. Subclass-subclass dari output stream adalah :
ByteArrayOutputStream
Kegunaan : Membuat buffer dalam memori. Semua data yang kita kirim akan disimpan di memori ini
Argumen yang dibutuhkan untuk membuat objek : Opsional untuk memberikan besar buffer yang akan disiapkan
FileOutputStream
Kegunaan : Untuk menulis informasi ke dalam file
Argumen yang dibutuhkan untuk membuat objek : String yang berupa nama suatu file, atau objek bertipe File atau FileDescriptor
PipedOutputStream
Kegunaan : Informasi yang kita kirim di aliran output ini akan berakhir pada objek bertipe PipedInputStream. Mengimplementasi konsep "piping". Bisa digunakan untuk multi-threading
Argumen yang dibutuhkan untuk membuat objek : Objek PipedInputStream
FilterOutputStream
Kegunaan : FilterOutputStream
Argumen yang dibutuhkan untuk membuat objek : -

Sebagian method-method OutputStream adalah:
  void close()
menutup output stream yang aktif dan melepaskan sumber daya terkait dengan stream tersebut.
  void flush()
melakukan flush output stream dan memaksa semua byte buffer untuk dituliskan keluar.
   void write(byte[] b)
menulis sebanyak b.legth dari byte array ke output stream.
Data Output Stream dan Data Input Stream

DataOutputStream merupakan class yang menyediakan cara praktis utuk menuliskan tipe data primitive ke output stream sedangkan DataInputStream berfungsi untuk membaca hasil penulisan DataOutputStream atau mendapatkan data kembali.
  Sebagian method DataOutputStream :
   writeDouble:
                berfungsi menuliskan data bertipe double ke output stream.
  writeInt:
                berfungsi menuliskan data integer ke Output Stream.
  writeBoolean:
                berfungsi menuliskan data Boolean ke Output Stream.
  readDouble():
                membaca data bertipe double.
  Sebagian method DataOutputStream :
   reading():
                membaca data integer.
   readBoolean():
                membaca data Boolean.
Melakukan Input
Dalam Java, input dilakukan melalui pembacaan terhadap stream System.in. Untuk mendapatkan karakter-karakter yang dimasukkan melalui keyboard ke dalam layer console, diperlukan membungkus System.in di dalam objek BufferedReader. Hal ini dilakukan untuk membentuk stream karakter.bentuk constructor dari BufferedReader sebagai berikut,
                BufferedReader(Reader inputReader)
inputReader adalah stream yang akan dihubungkan dengan objek dari kelas BufferedReader . Karena Reader merupakan kelas abstrak, maka perlu dicari kelas turunannya yang berupa kelas konkrit. Salah satunya adalah kelas InputStreamReader, yang dapat mengonversi byte ke karakter. Sedangkan agar objek dari InputStreamReader dapat dihubungkan dengan System.in, perlu digunakan bentuk constructor.Sehingga untuk membuat objek BufferedReader yang dapat terhubung dengan keyboard, perlu digunakan kode berikut:
                InputStreamReader isr = new InputStreamReader(System.in);
                BufferedReader br = new BufferedReader(isr);
Menampilkan Output
Untuk menampilkan output ke layar console, dapat dengan mudah dilakukan melalui method print() maupun println(). Untuk media output lainnya (misalnya: file),method yang digunakan untuk melakukan proses ini adalah write().
Selain menggunakan System.out untuk menulis ke layar console, Java jugamenyediakan kelas PrintWriter untuk keperluan yang sama. PrintWriter adalah salahsatu kelas stream yang berbasis pada data karakter (character-based).
Contoh kodingan :


Outputnyaa :
2.Input-output pada file
Program dapat membaca data dari file yang sudah ada. Program juga bisa membuat file baru atau menulis data ke dalam file yang sudah ada. Dalam Java, input dan output seperti ini bisa menggunakan aliran (stream). Data karakter yang bisa dibaca manusial dapat dibaca dari file dengan menggunakan objek dari kelas FileReader yang merupakan kelas turunan Reader. Data bisa ditulis dalam bentuk yang bisa dibaca manusia dengan menggunakan FileWriter yang merupakan kelas turunan dari Writer.
Untuk membaca atau menyimpan suatu file dalam format mesin, kelas I/O-nya adalah FileInputStream dan FileOutputStream. Semua kelas ini didefinisikan dalam paket java.io.
  Contoh kodingan file berextention .txt

Outputnya adalah berikut ini :
Terimakasih semoga apa yang sudah saya jelaskan bermanfaat J







Tidak ada komentar:

Posting Komentar