1 / 30

Input/output dan Kelas File

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

tilly
Download Presentation

Input/output dan Kelas File

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Input/output danKelas File

  2. Dasar-DasarInput/Output • Java menyediakandukunganterhadapprosesInput/Output (I/O) dalam package java.io. • Di dalam package tersebuttersimpanbanyak interface dankelas yang akanmemudahkan programmer melakukanpengambilandanpenyimpananinformasike media lain (misalnyakesuatu file)

  3. Stream • Stream adalahsebuahkelasabstrak yang dapatmemberikanataumendapatkaninformasi. • Stream dapatdihubungkandenganperalatanfisik yang terdapatdalamsistem I/O, seperti keyboard, file, layar console, dll. • Cara kerja stream selalusama, meskipunperalatan yang terhubungdengannyaberbeda. • Kode program yang kitatulisakansamauntukmasing-masingperalatanfisik yang terhubungdengan stream yang bersangkutan • Contohnya, programmer dapatmenggunakan method dankelas yang samauntukmelakukanpenulisanteks, baikke console maupunkedalam file

  4. Tipe-tipe Stream • Byte Stream memberikanataumenyimpaninformasi data dalambentuk byte, misalnyauntukmenulisdanmembaca file biner. • Character Stream digunakanuntukmelakukan I/O yang melibatkan data dalambentukkarakter, misalnyaprosesbaca/tuliske file berisiteks.

  5. Kelas-kelas Stream • Stream didefinisikandenganempatbuahkelasabstrak: InputStream, OutputStream, Reader, Writer • KelasInputStreamdanOutputStreamadalahkelasabstrak yang merupakankelasindukdarikelas-kelas yang termasukdalamkategori byte stream • KelasReaderdanWriteradalahkelasabstrak yang merupakankelasindukdarikelas-kelas yang termasukdalamkategori character stream

  6. SemuakelasturunandariInputStreammaupunReadermemiliki method read()untukmembaca data • SemuakelasturunandariOutputStreammaupunWritermemiliki method write()untukmenulis data • Kedua method tersebutadalah method abstrak

  7. Byte Stream • Byte stream didefinisikandenganmenggunakanduabuahhirarkikelas • Urutan paling atasdarihirarkitersebutadalahkelasInputStreamdanOutputStream • TabelberikutmemperlihatkanbeberapadaftarkelasturunandarikelasInputStreamdanOutputStream

  8. Character Stream • Character stream didefinisikandenganmenggunakanduabuahhirarkikelas • Urutan paling atasdarihirarkitersebutadalahkelasReaderdanWriter • TabelberikutmemperlihatkanbeberapadaftarkelasturunandarikelasReaderdanWriter

  9. Semua program Java otomatismengimport package java.lang. Di dalam package inididefinisikansebuahkelasbernamaSystem. Kelasinimendefinisikanbeberapaaspek yang berkaitandengan runtime. • KelasSystemmendefinisikantigavariabel stream: in, out, err. Ketigavariabelinididefinisikansebagai public dan static • System.outmengacukepada output stream standar, yang berupa console • System.inmengacukepada input stream standar yang berupa keyboard • System.errmengacupada stream error standar yang berupa console

  10. Proses Input • Dalam Java, input console dilakukandenganpembacaanterhadap stream System.in • Untukmendapatkankarakter-karakter yang dimasukkanmelalui keyboard kelayar console, System.inperludibungkusdidalamobjekBufferedReader. • Hal inidilakukanuntukmembentuk character stream, karenasebenarnyaSystem.inadalah byte stream

  11. BentukkonstruktordariBufferedReaderadalah BufferedReader(Reader inputReader) • inputReaderadalah stream yang akandihubungkandenganobjekdarikelasBufferedReader yang dibuat. • KarenaReaderadalahkelasabstrak, kitaperlumenggunakankelasturunannya yang berupakelaskonkrit. SalahsatunyaadalahInputStreamReader yang dapatmengonversi byte ke character

  12. Agar objekdariInputStreamReaderdapatdihubungkandenganSystem.in, perludigunakankonstruktordenganbentuk: InputStreamReader(InputStream is) • Padakonstruktordiatas, isdapatdiisidenganSystem.in, sehinggauntukmembuatobjekBufferedReader yang terhubungdengan keyboard dapatmenggunakankode: InputStreamReaderisr = new InputStreamReader(System.in); BufferedReaderbr = new BufferedReader(isr);

  13. Untukmembaca input berupakarakter, gunakan method read() yang terdapatdalamkelasBufferedReader. • Deklarasi method read() adalahsebagaiberikut: int read() throws IOException

  14. Contohmembaca input data karakter import java.io.*; class DemoInputKarakter { public static void main(String[] args) throws IOException { System.out.print("Masukkansembarangkarakter: "); char ch; InputStreamReaderisr = new InputStreamReader(System.in); BufferedReaderbr = new BufferedReader(isr); ch = (char) br.read(); System.out.println("Karakter yang dimasukkanadalah \'" + ch + "\'"); } }

  15. Input Data String • Untukmelakukan input berupa String, gunakan method readLine() • Deklarasi method tersebutadalah String readLine() throws IOException

  16. ContohMembaca Input Data String import java.io.*; class DemoInputString { public static void main(String[] args) throws IOException { System.out.print("MasukkannamaAnda: "); String nama; InputStreamReaderisr = new InputStreamReader(System.in); BufferedReaderbr = new BufferedReader(isr); nama = br.readLine(); System.out.println("Halo " + nama + ", sudahkahAndamengerti Java?"); }

  17. Contoh Input Data Numerik import java.io.*; class DemoInputNumerik1 { public static void main(String[] args) throws IOException { System.out.print("Masukkansebuahbilanganbulat: "); String temp; intbilangan = 0; InputStreamReaderisr = new InputStreamReader(System.in); BufferedReaderbr = new BufferedReader(isr); // input data dianggapsebagai string temp = br.readLine(); try { // konversidari string ke integer bilangan = Integer.parseInt(temp); } catch (NumberFormatExceptionnfe) { System.out.println("Data yang dimasukkan “+"bukanbilanganbulat"); System.exit(1); } System.out.println("Bilangan yang dimasukkan " + "adalah " + bilangan); } }

  18. import java.io.*; class DemoInputNumerik2 { public static void main(String[] args) throws IOException { System.out.print("Masukkansebuahbilanganriil: "); String temp; double bilangan = 0; InputStreamReaderisr = new InputStreamReader(System.in); BufferedReaderbr = new BufferedReader(isr); // input data dianggapsebagai string temp = br.readLine(); try { // konversidari string ke floating-point bilangan = Double.parseDouble(temp); } catch (NumberFormatExceptionnfe) { System.out.println("Data yang dimasukkanbukanbilangan"); System.exit(1); } System.out.println("Bilangan yang dimasukkan " + "adalah " + bilangan); } }

  19. Proses Output • Sejauhini, untukmenampilkan output ke console, kitamenggunakan method print() danprintln() • Untukmenuliskan output ke media lainnya, misalkan file, gunakan method write() • System.outadalahobjekdaritipePrintStream. SedangkanPrintStreamadalahturunandariOutputStream, makaSystem.outdapatmenggunakan method write() yang didefinisikanpadakelasOutputStream. • Deklarasi method write() adalah void write(intnilaiByte)

  20. KelasPrintWriter • SelainmenggunakanSystem.out, kitajugadapatmenggunakankelasPrintWriteruntukmenuliskan data kelayar console. • TerdapatbeberapabentukkonstruktordariPrintWriter, diantaranyaialah PrintWriter(OutputStreamos, booleanflushOnNewLine) osadalahobjekdariOutputStream, sedangkanflushOnNewLineadalah parameter bertipeboolean yang menyatakanapakah stream output akandibuangatautidaksetiap kali method println() dipanggil.

  21. PrintWritermendukung method print()danprintln() untuksemuatipe data • Cara pembentukanobjekPrintWriter yang dapatdigunakanuntukpembentukkanoutputadalah: PrintWriter pw = new PrintWriter(System.out, true)

  22. ContohPrintWriter import java.io.PrintWriter; class DemoPrintWriter { public static void main(String[] args) { // membuatobjekPrintWriter PrintWriter pw = new PrintWriter(System.out, true); double d = 3.1416; inti = 123; byte b = 65; char c = 'A'; String s = "Iniadalah string"; pw.println("Data bertipe double : " + d); pw.println("Data bertipeint : " + i); pw.println("Data bertipe byte : " + b); pw.println("Data bertipe char : " + c); pw.println("Data bertipe string : " + s); } }

  23. Baca Tulis File • Padacontoh program berikutditunjukkancarauntukmembaca data darisebuahfiledankemudianmenampilkanisifiletersebutkelayar monitor.

  24. import java.io.*; class DemoBacaFile { public static void main(String[] args) { FileInputStreamfinput = null; int data; // membuka file try { finput = new FileInputStream("d:/INPUT.TXT"); } catch (FileNotFoundExceptionfnfe) { System.out.println("File tidakditemukan."); return; // keluardari method } // membaca data daridalam file // danmenampilkanhasilnyakelayar console try { while ((data = finput.read()) != -1) { // ketikaditampilkan, data dikonversiketipe char System.out.print((char) data); } } catch (IOExceptionioe) { System.out.println(ioe.getMessage()); return; } // menutup file try { finput.close(); } catch (IOExceptionioe) {} } }

  25. Berikutcontohmenuliskan data ke file

  26. import java.io.*; class DemoTulisFile { public static void main(String[] args) { FileOutputStreamfoutput = null; String data = "Barispertama \nBariskedua \nBarisketiga"; // membuka file try { foutput = new FileOutputStream("d:/OUTPUT.TXT"); } catch (FileNotFoundExceptionfnfe) { System.out.println("File tidakdapatterbentuk."); return; // keluardari method } // menulis data kedalam file try { for (inti=0; i<data.length(); i++) { // data akandikonversi per karakter foutput.write((int) data.charAt(i)); } } catch (IOExceptionioe) { System.out.println(ioe.getMessage()); return; } // menutup file try { foutput.close(); } catch (IOExceptionioe) {} } }

  27. Berikut demo menyalinisisuatu file kedalam file lain

  28. import java.io.*; class DemoSalinFile { public static void main(String[] args) { FileInputStreamfinput = null; FileOutputStreamfoutput = null; int data; // membuka file input try { finput = new FileInputStream("d:/FILE1.TXT"); } catch (FileNotFoundExceptionfnfe) { System.out.println("File input tidakditemukan"); return; // keluardari method } // membuka file output try { foutput = new FileOutputStream("d:/FILE2.TXT"); } catch (FileNotFoundExceptionfnfe) { System.out.println("File output tidakdapatterbentuk"); return; // keluardari method } // membaca data dari file input // danmemasukkannyakedalam file output try { while ((data = finput.read()) != -1) { foutput.write(data); } } catch (IOExceptionioe) { System.out.println(ioe.getMessage()); return; } try { finput.close(); foutput.close(); } catch (IOExceptionioe) {} } }

More Related