Top Banner
OPERASI IO OOP Praktek dengan Java Miswar ,S.st [email protected] Sumber : Eddy Muntina Dharma,ST,MT
31

Operasi IO

Jan 23, 2016

Download

Documents

swain

Operasi IO. OOP Praktek dengan Java Miswar ,S.st [email protected] Sumber : Eddy Muntina Dharma,ST,MT. Pengenalan Streams. Dalam Java, operasi I/O menggunakan streams. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Operasi  IO

OPERASI IO

OOP Praktek dengan Java

Miswar ,S.st

[email protected]

Sumber : Eddy Muntina Dharma,ST,MT

Page 2: Operasi  IO

2

Pengenalan Streams• Dalam Java, operasi I/O menggunakan streams.• Streams adalah abstraksi dari sesuatu yang digunakan

untuk menulis/menghasilkan dan membaca/mendapatkan suatu informasi.

• Semua streams memiliki sifat yang sama walaupun peralatan fisik yang berhubungan dengan suatu stream berbeda-beda.

Page 3: Operasi  IO

3

Pengenalan Streams• Secara umum streams dalam Java dibagi dalam 2 bagian

besar :• byte streams• character streams

• Byte Streams digunakan untuk operasi I/O yang menggunakan data biner (byte)

• Character Stremas digunakan untuk menangani operasi I/O yang menggunakan character.• Karakter dalam java menggunakan Unicode, sehingga

penggunaan character streams dapat digunakan untuk menangani karakter-karakter internasional (karakter diluar kode ASCII Standar)

• Semua class & interface yang berhubungan dengan streams ada dalam package java.io.

Page 4: Operasi  IO

4

Byte Streams• Byte stream diperkenalkan oleh Java sejak JDK 1.0• Stream ini digunakan untuk menulis & membaca data

biner• Untuk byte streams, Java menyediakan dua class abstrak

yang merupakan superclass tertinggi yaitu :• InputStream untuk membaca input• OutputStream untuk menuliskan output

Page 5: Operasi  IO

5

Character Streams• Character stream diperkenalkan oleh Java sejak JDK 1.1• Stream ini digunakan untuk menulis & membaca data

yang berupa character.• Untuk character streams, Java menyediakan dua class

abstrak yang merupakan superclass tertinggi yaitu :• Reader untuk membaca input• Writer untuk menuliskan output

Page 6: Operasi  IO

6

Variabel Streams Standar• Secara default, Java telah menyediakan 3 buah variabel streams yang dapat langsung digunakan, karena variabel ini member public static dari class System, yaitu : in,out,err.

• System.out : output stream standar. Secara default outputnya adalah console.

• System.in : input stream standar. Secara default inputya adalah keyboard.

• System.err : output stream untuk mencetak pesan kesalahan pada console (default).

Page 7: Operasi  IO

7

Membaca Input dari Consolemenggunakan Byte Streams• Untuk membaca dari console digunakan variabel stream

standar yang telah disediakan oleh class System, yaitu in.

• Variabel ini memegang referensi dari objek dengan tipe InputStream sehingga untuk membaca dari console (yang diketik lewat keyboard), dapat menggunakan method read

Page 8: Operasi  IO

8

Membaca Input dari Console menggunakan Byte StreamsContoh 1 :

1. import java.io.*;2. public class DemoStream13. {4. public static void main(String[] args) {5. byte[] data = new byte[10];6. System.out.print("Masukkan data : ");7. try {8. System.in.read(data);9. } catch (IOException e) {10. System.out.print("Terjadi Exception");11. }12. System.out.print("Yang anda ketik : ");13. for (int i=0;i<data.length;i++) {14. System.out.print((char)data[i]);15. }16. }17. }

Page 9: Operasi  IO

9

Membaca Input dari Console menggunakan Byte StreamsContoh 2 :

1. import java.io.*;2. public class DemoStream23. {4. public static void main(String[] args) {5. byte[] data = new byte[10];6. int panjang=0;7. System.out.print("Masukkan data : ");8. try {9. panjang=System.in.read(data);10. } catch (IOException e) {11. System.out.print("Terjadi Exception");12. }13. System.out.println("Yang anda ketik : ");14. for (int i=0;i<panjang;i++) {15. System.out.print((char)data[i]);16. }17. System.out.println("Panjang Karakter :

"+panjang);18. }19. }

Page 10: Operasi  IO

10

Menulis Output ke Consolemenggunakan Byte Streams

• Untuk menulis ke console digunakan variabel stream standar yang telah disediakan oleh class System, yaitu out.

• Variabel ini memegang referensi dari objek dengan tipe PrintStream.

• PrintStream merupakan turunan dari class OutputStream.

• Method yang biasa digunakan :• print(),println(),write().

Page 11: Operasi  IO

11

Menulis Output ke Console menggunakan Byte StreamsContoh 3 :

1. import java.io.*;2. public class DemoStream33. {4. public static void main(String[] args) {5. byte[] data = new byte[10];6. int panjang=0;7. System.out.print("Masukkan data : ");8. try {9. panjang=System.in.read(data);10. System.out.print("Yang anda ketik : ");11. System.out.write(data);12. System.out.println("Panjang Karakter :

"+panjang);13. System.out.print("index ke-1 sebnyk 3 : ");14. System.out.write(data,1,3);15. } catch (IOException e) {16. System.out.print("Terjadi Exception");17. }18.19. }20. }

Page 12: Operasi  IO

12

Membaca Input dari File• Untuk membaca dari file dengan menggunakan byte

stream,dapat digunakan class FileInputStream.• Deklarasi konstruktornya :

• FileInputStream(File file)throws FileNotFoundException

• FileInputStream (String name)

throws FileNotFoundException

Page 13: Operasi  IO

13

Membaca Input dari FileContoh 4 :

1. import java.io.*;2. public class DemoStream4 {3. public static void main(String[] args) {4. byte data;5. String namaFile = "test.txt";6. FileInputStream fin = null;7. try {8. fin = new FileInputStream(namaFile);9. data = (byte)fin.read();10. while (data!=-1) {11. System.out.print((char)data);12. data = (byte)fin.read();13. }14. }15. catch (FileNotFoundException e) {16. System.out.println("File "+namaFile+" tidak

ditemukan");17. }18. catch (IOException e) {19. System.out.println("Terjadi Exception");20. }

Page 14: Operasi  IO

14

Membaca Input dari File

Contoh 4 (lanjutan) :

1. finally {2. if (fin!=null) {3. try {4. fin.close();5. }6. catch (IOException e) {7. System.out.println("Terjadi Exception");8. }9. }10. }11. }12. }

Page 15: Operasi  IO

15

Menulis Output ke File• Untuk menulis ke file dengan menggunakan byte

stream,dapat digunakan class FileOutputStream.• Deklarasi konstruktornya :

• FileOutputStream(String name)throws FileNotFoundException

• FileOutputStream(String name,boolean append)throws FileNotFoundException

• FileOutputStream(File file)throws FileNotFoundException

• FileOutputStream(File file,boolean append)throws FileNotFoundException

Page 16: Operasi  IO

16

Menulis Output ke File

Contoh 5 :1. import java.io.*;2. public class DemoStream5 {3. public static void main(String[] args) {4. byte data;5. String namaFile = "test.txt";6. FileOutputStream fout = null;7. try {8. fout = new FileOutputStream(namaFile);9. System.out.println("Ketik : ");10. data = (byte)System.in.read();11. while (data!=(byte)'\r') {12. fout.write(data);13. data = (byte)System.in.read();14. }15. }16. catch (FileNotFoundException e) {17. System.out.println("File "+namaFile+" tidak dapat

dicreate");18. }19. catch (IOException e) {20. System.out.println("Terjadi Exception");21. }

Page 17: Operasi  IO

17

Menulis Output ke File

Contoh 5 (lanjutan) :

1. finally {2. if (fout!=null) {3. try {4. fout.close();5. }6. catch (IOException e) {7. System.out.println("Terjadi Exception");8. }9. }10. }11. }12. }

Page 18: Operasi  IO

18

Membaca Input dari Consolemenggunakan Character Streams

• Setiap karakter di Java = 16 bit.• Masalah : System.in beroperasi menggunakan byte stream (8 bit)• Bagaimana caranya menggunakan System.ini pada

character streams?• Solusi : Bungkus System.in dengan class InputStreamReader yang dapat mengkonversi byte streams ke character streams

• Deklarasi konstruktor nya :

InputStreamReader (Input Stream in)

Page 19: Operasi  IO

19

Membaca Input dari Consolemenggunakan Character Streams

• Masalah lain : byte streams (8 bit) ukurannya lebih kecil dari char (16bit).• Bagaimana mengkonversi dari byte streams menjadi char streams

dengan benar?

• Solusi : input stream sebaiknya dibaca dari buffer, bukan dari peralatan fisik langsung. Untuk bungkus objek dari InputStreamReader ke dalam class BufferedReader.

• Deklarasi konstruktornya :

BufferedReader (Reader in)

Page 20: Operasi  IO

20

Membaca Input dari Consolemenggunakan Character Streams

• Jadi jika ingin membaca dari console dengan Character Streams, dapat ditulis dengan cara :

InputStreamReader input = new InputStreamReader(System.in);

BufferedReader buff = new BufferedReader(input);

• Atau dengan cara :

BufferedReader buff = new BufferedReader(

new InputStreamReader(System.in));

Page 21: Operasi  IO

21

Membaca Input dari Consolemenggunakan Character Streams

• Untuk membaca character streams, dapat menggunakan method :

int read() throws IOExceptionint read(char[] cbuf) throws IOExceptionint read(char[] cbuf,int off,int len)

throws IOExceptionString readLine() throws IOException

Page 22: Operasi  IO

22

Membaca Input dari Console menggunakan Character Streams

Contoh 6 :

1. import java.io.*;2. public class DemoStream6 {3. public static void main(String[] args) throws IOException

{4. char data;5. String str="";6. BufferedReader buff = 7. new BufferedReader(new

InputStreamReader(System.in));8. System.out.println("Ketik : ");9. data = (char) buff.read();10. while (data!='\r') {11. str+=data;12. data = (char) buff.read();13. }14. System.out.println("Yang diketik : "+str);15. System.out.println("Program Selesai");16. }17. }

Page 23: Operasi  IO

23

Membaca Input dari Console menggunakan Character Streams

Contoh 7 :

1. import java.io.*;2. public class DemoStream7 {3. public static void main(String[] args) throws IOException

{4. String str;5. String hasil="";6. BufferedReader buff = 7. new BufferedReader(new

InputStreamReader(System.in));8. System.out.println("Ketik (akhiri dengan EXIT) : ");9. str = buff.readLine();10. while (!str.equals("EXIT")) {11. hasil+=str+'\n';12. str = buff.readLine();13. }14. System.out.println("Yang diketik : "+hasil);15. System.out.println("Program Selesai");16. }17. }

Page 24: Operasi  IO

24

Menulis Output ke Consolemenggunakan Character Streams

• Untuk menulis output ke console dengan Character Streams, adalah dengan cara membungkus System.out dengan object output stream yang mendukung character streams.

• Dalam hal ini gunakan class PrintWriter• Deklarasi konstruktornya :

PrintWriter (OutputStream out);PrintWriter (OutputStream out,Boolean autoFlush);

• Contoh :

PrintWriter output = new PrintWriter (System.out,true);

Page 25: Operasi  IO

25

Menulis Output ke Console menggunakan Character Streams

Contoh 8 :

1. import java.io.*;2. public class DemoStream8 {3. public static void main(String[] args) throws

IOException {4. PrintWriter output = new PrintWriter

(System.out,true);5. output.println("Hello World");6. }7. }

Page 26: Operasi  IO

26

Membaca Input dari File menggunakan Character Streams• Untuk membaca input dari File dengan character streams,

gunakan :

FileReader (String fileName) throws FileNotFoundException

Page 27: Operasi  IO

27

Membaca Input dari File menggunakan Character Streams

Contoh 9 :1. import java.io.*;2. public class DemoStream9 {3. public static void main(String[] args) {4. String data;5. String namaFile = "test.txt";6. FileReader fin = null;7. try {8. fin = new FileReader(namaFile);9. BufferedReader buff = new BufferedReader(fin);10. data = buff.readLine();11. while (data!=null) {12. System.out.print(data);13. data = buff.readLine();14. }15. }16. catch (FileNotFoundException e) {17. System.out.println("File "+namaFile+" tidak ditemukan");18. }19. catch (IOException e) {20. System.out.println("Terjadi Exception");21. }

Page 28: Operasi  IO

28

Membaca Input dari File menggunakan Character Streams

Contoh 9 (lanjutan):

1. finally {2. if (fin!=null) {3. try {4. fin.close();5. }6. catch (IOException e) {7. System.out.println("Terjadi Exception");8. }9. }10. }11. }12. }

Page 29: Operasi  IO

29

Menulis Output ke File menggunakan Character Streams• Untuk menulis ke file dengan menggunakan character

stream,dapat digunakan class FileWriter.• Deklarasi konstruktornya :

• FileWriter(String fileName)throws FileNotFoundException

• FileWriter(String fileName, boolean append)throws FileNotFoundException

• FileWriter(File file)throws FileNotFoundException

• FileWriter(File file,boolean append)throws FileNotFoundException

Page 30: Operasi  IO

30

Menulis Output ke File menggunakan Character Streams

Contoh 10 :

1. import java.io.*;2. public class DemoStream10 {3. public static void main(String[] args) {4. String data;5. String namaFile = "test.txt";6. FileWriter fout = null;7. BufferedReader buff = 8. new BufferedReader(new

InputStreamReader(System.in));9. try {10. fout = new FileWriter(namaFile);11. System.out.println("Ketik : ");12. data = buff.readLine();13. while (!data.equals("EXIT")) {14. fout.write(data+"\r\n");15. data = buff.readLine();16. }17. }

Page 31: Operasi  IO

31

Menulis Output ke File menggunakan Character Streams

Contoh 10 :

1. catch (FileNotFoundException e) {2. System.out.println("File "+namaFile+" tidak dapat

dicreate");3. }4. catch (IOException e) {5. System.out.println("Terjadi Exception");6. }7. finally {8. if (fout!=null) {9. try {10. fout.close();11. }12. catch (IOException e) {13. System.out.println("Terjadi Exception");14. }15. }16. }17. }18. }