input/output dan kelas file

30
Input/output dan Kelas File

Upload: tilly

Post on 18-Mar-2016

64 views

Category:

Documents


1 download

DESCRIPTION

Input/output dan Kelas File. Dasar-Dasar Input/Output. Java menyediakan dukungan terhadap proses Input/Output (I/O) dalam package java.io . - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Input/output  dan Kelas  File

Input/output dan Kelas File

Page 2: Input/output  dan Kelas  File

Dasar-Dasar Input/OutputJava menyediakan dukungan terhadap proses

Input/Output (I/O) dalam package java.io. Di dalam package tersebut tersimpan banyak

interface dan kelas yang akan memudahkan programmer melakukan pengambilan dan penyimpanan informasi ke media lain (misalnya ke suatu file)

Page 3: Input/output  dan Kelas  File

StreamStream adalah sebuah kelas abstrak yang dapat

memberikan atau mendapatkan informasi.Stream dapat dihubungkan dengan peralatan fisik yang

terdapat dalam sistem I/O, seperti keyboard, file, layar console, dll.

Cara kerja stream selalu sama, meskipun peralatan yang terhubung dengannya berbeda.

Kode program yang kita tulis akan sama untuk masing-masing peralatan fisik yang terhubung dengan stream yang bersangkutan

Contohnya, programmer dapat menggunakan method dan kelas yang sama untuk melakukan penulisan teks, baik ke console maupun ke dalam file

Page 4: Input/output  dan Kelas  File

Tipe-tipe StreamByte Stream

memberikan atau menyimpan informasi data dalam bentuk byte, misalnya untuk menulis dan membaca file biner.

Character Streamdigunakan untuk melakukan I/O yang melibatkan data dalam bentuk karakter, misalnya proses baca/tulis ke file berisi teks.

Page 5: Input/output  dan Kelas  File

Kelas-kelas StreamStream didefinisikan dengan empat buah kelas

abstrak: InputStream, OutputStream, Reader, Writer

Kelas InputStream dan OutputStream adalah kelas abstrak yang merupakan kelas induk dari kelas-kelas yang termasuk dalam kategori byte stream

Kelas Reader dan Writer adalah kelas abstrak yang merupakan kelas induk dari kelas-kelas yang termasuk dalam kategori character stream

Page 6: Input/output  dan Kelas  File

Semua kelas turunan dari InputStream maupun Reader memiliki method read() untuk membaca data

Semua kelas turunan dari OutputStream maupun Writer memiliki method write() untuk menulis data

Kedua method tersebut adalah method abstrak

Page 7: Input/output  dan Kelas  File

Byte StreamByte stream didefinisikan dengan

menggunakan dua buah hirarki kelasUrutan paling atas dari hirarki tersebut

adalah kelas InputStream dan OutputStreamTabel berikut memperlihatkan beberapa

daftar kelas turunan dari kelas InputStream dan OutputStream

Page 8: Input/output  dan Kelas  File

Nama Kelas Keterangan

BufferedInputStream Input stream yang telah ter-buffer

BufferedOutputStream Output Stream yang telah ter-buffer

ByteArrayInputStream Input stream yang membaca dari array byte

ByteArrayOutputStream Output stream yang menulis ke array byte

DataInputStream Input stream yang meiliki method-method untuk membaca tipe data standar yang terdapat dalam java

DataOutputStream Out stream yang meiliki method-method untuk menulis tipe data standar yang terdapat dalam java

FileInputStream Input stream yang membaca data dari sebuah file

FileOutputStream Output stream yang menulis data ke sebuah file

PipedInputStream Penyalur input

PipedOutputStream Penyalur output

PrintStream Output stream yang berisi method println() dan print()

Page 9: Input/output  dan Kelas  File

Character StreamCharacter stream didefinisikan dengan

menggunakan dua buah hirarki kelasUrutan paling atas dari hirarki tersebut

adalah kelas Reader dan WriterTabel berikut memperlihatkan beberapa

daftar kelas turunan dari kelas Reader dan Writer

Page 10: Input/output  dan Kelas  File

Nama Kelas Keterangan

BufferedReader Character stream input yang telah ter-buffer

BufferedWriter Character Stream output yang telah ter-buffer

CharArrayReader membaca dari array character

CharArrayWriter menulis ke array character

InputStreamReader Input stream yang menerjemahkan byte ke character

OtuputStreamWriter Out stream yang menerjemahkan karakter ke byte

FileReader membaca data dari sebuah file

FileWriter menulis data ke sebuah file

PipedWriter Penyalur input

PipedReader Penyalur output

PrintWriter Output stream yang berisi method println() dan print()

StringReader Input stream yang membaca dari sebuah String

StringWriter Output stream yang menulis ke sebuah String

Page 11: Input/output  dan Kelas  File

Semua program Java otomatis mengimport package java.lang. Di dalam package ini didefinisikan sebuah kelas bernama System. Kelas ini mendefinisikan beberapa aspek yang berkaitan dengan runtime.

Kelas System mendefinisikan tiga variabel stream: in, out, err. Ketiga variabel ini didefinisikan sebagai public dan static

System.out mengacu kepada output stream standar, yang berupa console

System.in mengacu kepada input stream standar yang berupa keyboard

System.err mengacu pada stream error standar yang berupa console

Page 12: Input/output  dan Kelas  File

Proses InputDalam Java, input console dilakukan dengan

pembacaan terhadap stream System.inUntuk mendapatkan karakter-karakter yang

dimasukkan melalui keyboard ke layar console, System.in perlu dibungkus didalam objek BufferedReader.

Hal ini dilakukan untuk membentuk character stream, karena sebenarnya System.in adalah byte stream

Page 13: Input/output  dan Kelas  File

Bentuk konstruktor dari BufferedReader adalahBufferedReader(Reader inputReader)

inputReader adalah stream yang akan dihubungkan dengan objek dari kelas BufferedReader yang dibuat.

Karena Reader adalah kelas abstrak, kita perlu menggunakan kelas turunannya yang berupa kelas konkrit. Salah satunya adalah InputStreamReader yang dapat mengonversi byte ke character

Page 14: Input/output  dan Kelas  File

Agar objek dari InputStreamReader dapat dihubungkan dengan System.in, perlu digunakan konstruktor dengan bentuk:InputStreamReader(InputStream is)

Pada konstruktor di atas, is dapat diisi dengan System.in, sehingga untuk membuat objek BufferedReader yang terhubung dengan keyboard dapat menggunakan kode:InputStreamReader isr = new InputStreamReader(System.in);BufferedReader br = new BufferedReader(isr);

Page 15: Input/output  dan Kelas  File

Untuk membaca input berupa karakter, gunakan method read() yang terdapat dalam kelas BufferedReader.

Deklarasi method read() adalah sebagai berikut:int read() throws IOException

Page 16: Input/output  dan Kelas  File

Contoh membaca input data karakterimport java.io.*;

class DemoInputKarakter {

public static void main(String[] args) throws IOException { System.out.print("Masukkan sembarang karakter: "); char ch; InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); ch = (char) br.read(); System.out.println("Karakter yang dimasukkan adalah \'" + ch + "\'"); }}

Page 17: Input/output  dan Kelas  File

Input Data StringUntuk melakukan input berupa String,

gunakan method readLine()Deklarasi method tersebut adalah String readLine() throws IOException

Page 18: Input/output  dan Kelas  File

Contoh Membaca Input Data Stringimport java.io.*;class DemoInputString { public static void main(String[] args) throws IOException { System.out.print("Masukkan nama Anda: "); String nama; InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); nama = br.readLine(); System.out.println("Halo " + nama + ", sudahkah Anda mengerti Java?"); }

Page 19: Input/output  dan Kelas  File

Contoh Input Data Numerikimport java.io.*;class DemoInputNumerik1 { public static void main(String[] args) throws IOException { System.out.print("Masukkan sebuah bilangan bulat: "); String temp; int bilangan = 0; InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); // input data dianggap sebagai string temp = br.readLine(); try { // konversi dari string ke integer bilangan = Integer.parseInt(temp); } catch (NumberFormatException nfe) { System.out.println("Data yang dimasukkan “+"bukan bilangan bulat"); System.exit(1); } System.out.println("Bilangan yang dimasukkan " + "adalah " + bilangan); }}

Page 20: Input/output  dan Kelas  File

import java.io.*;class DemoInputNumerik2 { public static void main(String[] args) throws IOException { System.out.print("Masukkan sebuah bilangan riil: "); String temp; double bilangan = 0; InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); // input data dianggap sebagai string temp = br.readLine(); try { // konversi dari string ke floating-point bilangan = Double.parseDouble(temp); } catch (NumberFormatException nfe) { System.out.println("Data yang dimasukkan bukan bilangan"); System.exit(1); } System.out.println("Bilangan yang dimasukkan " + "adalah " + bilangan); }}

Page 21: Input/output  dan Kelas  File

Proses OutputSejauh ini, untuk menampilkan output ke console,

kita menggunakan method print() dan println()Untuk menuliskan output ke media lainnya,

misalkan file, gunakan method write()System.out adalah objek dari tipe PrintStream.

Sedangkan PrintStream adalah turunan dari OutputStream, maka System.out dapat menggunakan method write() yang didefinisikan pada kelas OutputStream.

Deklarasi method write() adalahvoid write(int nilaiByte)

Page 22: Input/output  dan Kelas  File

Kelas PrintWriterSelain menggunakan System.out, kita juga dapat

menggunakan kelas PrintWriter untuk menuliskan data ke layar console.

Terdapat beberapa bentuk konstruktor dari PrintWriter, di antaranya ialahPrintWriter(OutputStream os, boolean flushOnNewLine)

os adalah objek dari OutputStream, sedangkan flushOnNewLine adalah parameter bertipe boolean yang menyatakan apakah stream output akan dibuang atau tidak setiap kali method println() dipanggil.

Page 23: Input/output  dan Kelas  File

PrintWriter mendukung method print() dan println() untuk semua tipe data

Cara pembentukan objek PrintWriter yang dapat digunakan untuk pembentukkan output adalah:PrintWriter pw = new PrintWriter(System.out, true)

Page 24: Input/output  dan Kelas  File

Contoh PrintWriterimport java.io.PrintWriter;

class DemoPrintWriter { public static void main(String[] args) { // membuat objek PrintWriter PrintWriter pw = new PrintWriter(System.out, true); double d = 3.1416; int i = 123; byte b = 65; char c = 'A'; String s = "Ini adalah string"; pw.println("Data bertipe double : " + d); pw.println("Data bertipe int : " + i); pw.println("Data bertipe byte : " + b); pw.println("Data bertipe char : " + c); pw.println("Data bertipe string : " + s); }}

Page 25: Input/output  dan Kelas  File

Baca Tulis FilePada contoh program berikut ditunjukkan

cara untuk membaca data dari sebuah file dan kemudian menampilkan isi file tersebut ke layar monitor.

Page 26: Input/output  dan Kelas  File

import java.io.*;class DemoBacaFile { public static void main(String[] args) { FileInputStream finput = null; int data; // membuka file try { finput = new FileInputStream("d:/INPUT.TXT"); } catch (FileNotFoundException fnfe) { System.out.println("File tidak ditemukan."); return; // keluar dari method } // membaca data dari dalam file // dan menampilkan hasilnya ke layar console try { while ((data = finput.read()) != -1) { // ketika ditampilkan, data dikonversi ke tipe char System.out.print((char) data); } } catch (IOException ioe) { System.out.println(ioe.getMessage()); return; } // menutup file try { finput.close(); } catch (IOException ioe) {} }}

Page 27: Input/output  dan Kelas  File

Berikut contoh menuliskan data ke file

Page 28: Input/output  dan Kelas  File

import java.io.*;

class DemoTulisFile { public static void main(String[] args) { FileOutputStream foutput = null; String data = "Baris pertama \nBaris kedua \nBaris ketiga"; // membuka file try { foutput = new FileOutputStream("d:/OUTPUT.TXT"); } catch (FileNotFoundException fnfe) { System.out.println("File tidak dapat terbentuk."); return; // keluar dari method } // menulis data ke dalam file try { for (int i=0; i<data.length(); i++) { // data akan dikonversi per karakter foutput.write((int) data.charAt(i)); } } catch (IOException ioe) { System.out.println(ioe.getMessage()); return; }

// menutup file try { foutput.close(); } catch (IOException ioe) {} }}

Page 29: Input/output  dan Kelas  File

Berikut demo menyalin isi suatu file ke dalam file lain

Page 30: Input/output  dan Kelas  File

import java.io.*;class DemoSalinFile { public static void main(String[] args) { FileInputStream finput = null; FileOutputStream foutput = null; int data; // membuka file input try { finput = new FileInputStream("d:/FILE1.TXT"); } catch (FileNotFoundException fnfe) { System.out.println("File input tidak ditemukan"); return; // keluar dari method } // membuka file output try { foutput = new FileOutputStream("d:/FILE2.TXT"); } catch (FileNotFoundException fnfe) { System.out.println("File output tidak dapat terbentuk"); return; // keluar dari method } // membaca data dari file input // dan memasukkannya ke dalam file output try { while ((data = finput.read()) != -1) { foutput.write(data); } } catch (IOException ioe) { System.out.println(ioe.getMessage()); return; } try { finput.close(); foutput.close(); } catch (IOException ioe) {} }}