Teks Mondar mandir

fb : tofatik, e_mail : toftofa3@gmail.com

Jumat, 16 Januari 2015

RPL XII SMK

MERANCANG PROGRAM APLIKASI BERBASIS OBJEK


Pengenalan Input/Output (I/O)

Pada Java, input/output pada file dan jaringan dilakukan berdasarkan aliran (stream), di mana semua objek dapat melakukan perintah I/O yang sama. Standar output (System.out) dan standar input (System.in) adalah contoh aliran.

Operasi pada Aliran (Stream) 


·         - Kelas dasar I/O Reader, Writer, InputStream dan OutputStream hanya menyediakan operasi I/O sangat dasar. Misalnya, kelas InputStream memiliki metode instansi
·         public int read() throws IOException
·         untuk membaca satu byte data dari aliran input. Jika sampai pada akhir dari aliran input , metode read() akan mengembalikan nilai -1. Jika ada kesalahan yang terjadi pada saat pengambilan input, maka pengecualian IOException akan dilemparkan. Karena IOException adalah kelas pengecualian yang harus ditangani, artinya kita harus menggunakan metode read() di dalam penyataan try atau mengeset subrutin untuk throws IOException. (Lihat kembali pembahasan tentang pengecualian di bab sebelumnya)
·         - Kelas InputStream juga memiliki metode untuk membaca beberapa byte data dalam satu langkah ke dalam array byte. Akan tetapi InputStream tidak memiliki metode untuk membaca jenis data lain, seperti int atau double dari aliran. Ini bukan masalah karena dalam prakteknya kita tidak akan menggunakan objek bertipe InputStream secara langsung. Yang akan kita gunakan adalah kelas turunan dari InputStream yang memiliki beberapa metode input yang lebih beragam daripada InputStream itu sendiri.
·         Begitu juga dengan kelas OutputStream memiliki metode output primitif untuk menulis satu byte data ke aliran output, yaitu metode
·         public void write(int b) throws IOException
·         Tapi, kita hampir pasti akan menggunakan kelas turunannya yang mampu menangani operasi yang lebih kompleks.
·         - Kelas Reader dan Writer memiliki operasi dasar yang hampir sama, yaitu read dan write, akan tetapi kelas ini berorientasi karakter (karena digunakan untuk membaca dan menulis data yang bisa dibaca manusia). Artinya operasi baca tulis akan mengambil dan menulis nilai char bukan byte. Dalam prakteknya kita akan menggunakan kelas turunan dari kelas-kelas dasar ini.
·         Salah satu hal menarik dari paket I/O pada Java adalah kemungkinan untuk menambah kompleksitas suatu aliran dengan membungkus aliran tersebut dalam objek aliran lain. Objek pembungkus ini juga berupa aliran, sehingga kita juga bisa melakukan baca tulis dari objek yang sama dengan tambahan kemampuan dalam objek pembungkusnya.
·         Misalnya, PrintWriter adalah kelas turunan dari Writer yang memiliki metode tambahan untuk menulis tipe data Java dalam karakter yang bisa dibaca manusial. Jika kita memiliki objek bertipe Writer atau turunannya, dan kita ingin menggunakan metode pada PrintWriter untuk menulis data, maka kita bisa membungkus objek Writer dalam objek PrintWriter.
·         Contoh jika baskomKarakter bertipe Writer, maka kita bisa membuat
·         PrintWriter printableBaskomKarakter = new PrintWriter(baskomKarakter);
Ketika kita menulis data ke printableBaskomKarakter dengan menggunakan metode pada PrintWriter yang lebih canggih, maka data tersebut akan ditempatkan di tempat yang sama dengan apabila kita menulis langsung pada baskomKarakter. Artinya kita hanya perlu membuat antar muka yang lebih baik untuk aliran output yang sama. Atau dengan kata lain misalnya kita bisa menggunakan PrintWriter untuk menulis file atau mengirim data pada jaringan.



·         Untuk lengkapnya, metode pada kelas PrintWriter memiliki metode sebagai berikut :
·         // Metode untuk menulis data dalam
·         // bentuk yang bisa dibaca manusia
·         public void print(String s)
·         public void print(char c)
·         public void print(int i)
·         public void print(long l)
·         public void print(float f)
·         public void print(double d)
·         public void print(boolean b)
·          
·         // Menulis baris baru ke aliran
·         public void println()
·          
·         // Metode ini sama dengan di atas
·         // akan tetapi keluarannya selalu
·         // ditambah dengan baris baru
·         public void println(String s)
·         public void println(char c)
·         public void println(int i)
·         public void println(long l)
·         public void println(float f)
·         public void println(double d
public void println(boolean b)