PRAKTIKUM 7 DASAR INPUT OUTPUT

dokumen-dokumen yang mirip
PENGENALAN JAVA (2)

PEMROGRAMAN JARINGAN MODUL 3 STREAM

Objek Stream, Akses File & Exception Handling

A. TUJUAN PEMBELAJARAN

STREAM DAN FILE. PipedInputStream, SequenceInputStream, dan StringBufferInputStream.

IOSTREAM bagian 2. Kholid Fathoni

PEMROGRAMAN JAVA. Yoannita, S.Kom. Input Kondisi (IF-ELSE, SWITCH)

Overview I/O Streams Byte stream & Character Stream Hirarki class pada package java.io Read & write streams

A. TUJUAN PEMBELAJARAN

I/O (Input dan Output)

TPI4202 e-tp.ub.ac.id. Lecture 4 Mas ud Effendi

PEMROGRAMAN JAVA : STREAM DAN FILE

LAPORAN TUGAS 2 PRAKTIKUM DASAR PEMROGRAMAN. Disusun Oleh : Aprivivianti Cahyaningrum ( )

I/O Streams. Oleh Kholid Fathoni

Pertemuan 7 File pada Java

Pertemuan ke-1 STREAM DAN IO. A. TUJUAN : Mampu mengimplementasikan kelas-kelas untuk menangani aliran data.

2. Pernyataan mana yang dapat kita laksanakan dengan menggunakan class File? Mengganti direktori tempat bekerja saat ini

BAB Argument Command-Line dan System Properties

//PROGRAM " tidak dapat dibaca")); import java.io.file; Date tanggal = new Date(); import java.io.ioexception;

PERTEMUAN V STREAM DAN OOP TUJUAN PRAKTIKUM. 2. Praktikan memahami pemrograman berbasis objek dengan mengetahui karakteristik OOP.

Dapat dicompile dan mendapat output hai. Dapat dicompile dan mendapat output disana

CompileError - The method write(int) in the type FileOutputStream is not applicable for

Materi kuliah I/O & FILE. Ir. Roedi Goernida, MT.

BAB 2 INPUT DARI KEYBOARD

Bahasa Pemrograman :: Dasar Pemrograman Java

MK. Pemrograman Berorientasi Objek. Input dari Keyboard. Karmilasari

Topik. Stream I/O Cara menggunakan Stream Hierarchy Java I/O Membaca File Menulis File Menghapus File Cara membaca isi Direktori dalam file

PRAKTIKUM 8 FILE INPUT OUTPUT

MODUL 7 I/O Stream. Tujuan: Mahasiswa dapat mengenal dan memahami konsep I/O Stream, serta penerapan I/O Stream dalam konsep OOP

BAB 5 Mendapatkan Input dari Keyboard

BAB 5 Mendapatkan Input dari Keyboard

Pemrograman Socket menggunakan TCP

Modul Praktikum Pemrograman

12.2 Tipe-Tipe Stream yang Umum Digunakan

Nama Lengkap : Muiz Lidinillah NIM :

BAB III SEKUENSIAL 3.1. Kompetensi Dasar 3.2. Perintah Masukan a. Scanner

TIPE DATA PADA JAVA. Pertemuan (K-04/L-04)

LAB PEMROGRAMAN I (JAVA FUNDAMENTAL)

PEMROGRAMAN II. By : Sri Rezeki Candra Nursari. Penilaian : Gasal TA 2011/2012. UAS (lisan) = 35 % UTS = 25 % Tugas = 15 % Praktikum = 25 %

Pemrograman I/O File

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

Cara Membaca File Text di JAVA

PEMROGRAMAN BERORIENTASI OBJEK

Input Nilai tanpa Case String di Java

Metode Sequential Searching di Java Console

BAB 4 ARRAY. number1 = 10; number2 = 20; number3 = 30;

2 TIPE DATA DAN VARIABEL

Pemrograman JAVA INPUT-OUTPUT

Struktur Data dan Algoritma IKI10400 Semester Gasal 2010/2011 Fakultas Ilmu Komputer Universitas Indonesia

Pemrograman Jaringan 4. Java IO

1.Tujuan. 2. Latar Belakang. Tahu tipe-tipe stream yang umum digunakan Menggunakan class File dan methodnya

BAB II VARIABEL DAN TIPE DATA

Modul 3 Flow Control dan Input

Introduction To Stream

PEMROGRAMAN JAVA. Petunjuk Penulisan Program Token Aturan Penamaan Identifier Lingkungan /Scope dari variabel Tipe Data (i) Yoannita

Dasar Pemrograman Java

Input - Output PEMROGRAMAN DASAR. Dr. Eng. Herman Tolle, ST., MT. Sistem Informasi PTIIK UB Semester Ganjil 2014/2015

Pemograman Java. Input(ii) String Function Pengulangan(FOR-While-DoWhile) Yoannita, S.Kom

PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA

PEMROGRAMAN BERORIENTASI OBJEK

KONVERSI DATA DAN INPUT DATA

LAPORAN PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK

Pertemuan 2 Struktur Kontrol Percabangan

2. Pilih instruksi yang dapat digunakan dalam method actionperformed untuk membedakan antara tombol buttonone dan buttontwo.

SUMBER BELAJAR PENUNJANG PLPG

BAB 1 KONSEP DASAR JAVA

SILABUS MATA KULIAH PEMROGRAMAN JAVA

PERTEMUAN I PENGENALAN JAVA

OPERASI FILE READ WRITE

A. TUJUAN PEMBELAJARAN 1. Mengetahui cara menangani exception dengan cara melempar exception. 2. Mengetahui cara membuat sendiri class exception.

LAB PEMROGRAMAN I (JAVA FUNDAMENTAL) PERTEMUAN 5 Dosen : Bella Hardiyana S. Kom

Percabangan & Perulangan

Sekarang, kita akan mencoba untuk menganalisa program Java pertama : public class Hello {

Mata Kuliah : Pemrograman Berbasis Objek Pertemuan : 7

Pemrograman. Pertemuan-3 Fery Updi,M.Kom

PRAKTIKUM 17 MENANGANI EXCEPTION

Pertemuan 4 Array pada Java

Modul Praktikum 4 Pemograman Berorientasi Objek

Java Basic. Variabel dan Tipe Data. Lokasi di dalam memori komputer yang digunakan untuk menyimpan suatu informasi (nilai)

PENGAKSESAN FILE DI JAVA

Bahasa Pemrograman 2.

IKG2I4 / Software Project I

Elemen Dasar Dalam Bahasa Java

Praktikum 3 Konsep Class, Attribute dan Method

OPERATOR-OPERATOR DALAM JAVA

BEKERJA DENGAN JAVA CLASS LIBRARY

JAVA BASIC PROGRAMMING Joobshet

Abstract Class dan Interface. Viska Mutiawani, M.Sc

Pertemuan III [STRUKTUR KONTROL] CariGrade.java Program mencari grade nilai menggunakan struktur control if-else

Pemrograman Berorientasi. Class dan Obyek 2

PRAKTIKUM 6 EXCEPTION

PERTEMUAN 3 OBJEK DAN CLASS

Connection Oriented. Kholid F.

Mendapatkan Input Dari Keyboard

Badiyanto, S.Kom., M.Kom. PBO java

Protokol. Pemrograman Client/Server dengan Java Socket. Protokol TCP/IP. Tipe pemrograman jaringan. Java Socket

IF2281 Pemrograman Berorientasi Objek Program kecil Pelengkap Diktat. import java.io.*; import java.util.scanner; class IO {

Percobaan 6 Exception

Modul 4 Exception, I/O, dan Operasi File

EXCEPTION. 2. Pada kondisi bagaimana klausa finally tidak akan dieksekusi? Kode didalam block try memiliki statement return

Transkripsi:

PRAKTIKUM 7 DASAR INPUT OUTPUT A. TUJUAN 1. Memahami dasar-dasar input-ouput dalam pemrograman Java 2. Memahami prinsip kerja stream 3. Memahami penggunaan console dalam proses input-output B. DASAR TEORI 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. Di dalam paket tersebut tersimpan banyak kelas dan interface siap pakai yang akan memudahkan programmer dalam pengambilan dan penyimpanan informasi dari/ke media lain (misalnya file). 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. Walaupun dihubungkan dengan peralatan fisik yang berbeda, cara kerja stream selalu sama, sehingga kode program yang ditulis juga sama untuk masing-masing peralatan fisik. Misalnya, untuk melakukan penulisan sebuah teks ke layar console maupun ke dalam file, maka dapat digunakan kelas dan method yang sama. Stream ada dua jenis, yaitu stream byte dan stream karakter. Stream byte digunakan untuk memberikan atau menyimpan informasi data dalam bentuk byte, misalnya untuk menulis dan membaca file biner. Sedangkan stream karakter pada proses I/O yang melibatkan data-data berbentuk karakter, misalnya proses baca/tulis ke suatu file teks, dengan menggunakan karakter Unicode. Pendefinisian stream dilakukan dengan menggunakan empat kelas abstrak, yaitu InputStream dan OutputStream, sebagai superclass untuk kelas-kelas dalam kategori stream byte, dan kelas abstrak Reader dan Writer untuk kategori stream Praktikum Dasar Programming 2 43

karakter. Melalui proses pewarisan (inheritance), semua kelas yang diturunkan dari InputStream maupun Reader akan memiliki method read(), yang digunakan dalam proses pembacaan data. Adapun 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. Tabel 1. Kelas-kelas stream byte Nama Kelas Keterangan BufferedInputStream Stream input yang telah terbuffer BufferedOutputStream Stream output yang telah terbuffer ByteArrayInputStream Stream input yang membaca dari array byte ByteArrayOutputStream Stream input yang menulis ke array byte DataInputStream Stream input yang berisi method-method untuk membaca tipe data standar DataOutputStream Stream output yang berisi method-method untuk menuliskan tipe data standar FileInputStream Stream input yang membaca dari sebuah file FileOutputStream Stream output yang menulis ke sebuah file FilterInputStream Mengimplementasikan InputStream FilterOutputStream Mengimplementasikan OutputStream InputStream Kelas abstrak yang menjelaskan stream input OutputStream Kelas abstrak yang menjelaskan stream output PipedInputStream Penyalur input PipedOutputStream Penyalur output PrintStream Stream output yang berisi method println() dan print() Semua program Java otomatis akan mengimpor paket java.lang yang mendefinisikan sebuah kelas bernama System yang berkaitan dengan lingkungan runtime. Kelas System juga mendefinisikan tiga variabel stream, yaitu in, out, dan err, dimana data-datanya dideklarasikan sebagai public atau static. Dengan demikian variabel-variabel tersebut dapat digunakan tanpa harus membentuk objek dari kelas System terlebih dahulu. 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. System.out Praktikum Dasar Programming 2 44

dan System.err adalah objek dari tipe PrintStream dan mempunyai cara kerja yang sama, yaitu mengeluarkan pesan kesalahan ke layar console. Tabel 2. Kelas-kelas stream karakter Nama Kelas Keterangan BufferedReader Stream karekter input yang telah terbuffer BufferedWriter Stream karakter output yang telah terbuffer CharArrayReader Stream input yang membaca dari array karakter CharArrayWriter Stream input yang menulis ke array karakter FileReader Stream input yang membaca dari file FileWriter Stream output yang menulis ke file FilterReader Reader yang terfilter FilterWriter Writer yang terfilter InputStreamReader Stream input yang menerjemahkan byte ke karakter LineNumberReader Stream input yang menghitung jumlah baris OutputStreamWriter Stream input yang menerjemahkan karakter ke byte PipedReader Penyalur input PipedWriter Penyalur output PrintWriter Stream output yang berisi method println() dan print() Reader Kelas abstrak yang menjelaskan stream karakter input StringReader Stream input yang membaca dari sebuah string StringWriter Stream output yang menulis ke sebuah string Writer Stream output Node Stream Terdapat tiga tipe dasar node, yaitu: File Memori (misalnya objek array atau String) Pipe (suatu kanal dari satu proses) Tipe dari node stream dapat dibagi lagi sesuai dengan Tabel 3. Tabel 3. Tipe Node Stream Tipe Stream Karakter Stream Byte File FileReader FileInputStream FileWriter FileOutputStream Memory: CharArrayReader ByteArrayInputStream array CharArrayWriter ByteArrayOutputStream Memory: StringReader N/A String StringWriter Pipe PipeReader PipedInputStream PipeWriter PipedOutputStream Praktikum Dasar Programming 2 45

Melakukan Input Dalam Java, input console 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 karena System.in sebenarnya merupakan stream bute. Adapun bentuk constructor dari BufferedReader sebagai berikut, BufferedReader(Reader inputreader) inputreader adalah stream yang akan dihubungkan dengan instance atau objek dari kelas BufferedReader yang dibuat. 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 seperti berikut, InputStreamReader(InputStream inputstream) Dalam hal ini, inputstream dapat diisi dengan System.in. Sehingga untuk membuat objek BufferedReader yang dapat terhubung dengan keyboard, perlu digunakan kode berikut: BufferedReader br = new BufferedReader (new InputStreamReader (System.in)); Atau bisa juga ditulis: InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); Pada tahap ini objek br sudah siap digunakan untuk melakukan proses input, yaitu dengan melakukan pemanggilan terhadap method read() maupun readline(). Membaca Input Data Karakter Untuk membaca input berupa karakter, digunakan method read() yang terdapat pada kelas BufferedReader, dengan pendeklarasian sebagai berikut: int read() throws IOException Praktikum Dasar Programming 2 46

Membaca Input Data String Untuk melakukan input berupa string harus digunakan method readline(), bukan read(), dengan deklarasi method sebagai berikut: String readline() throws IOException Proses input data string di dalam Java juga berlaku untuk karakter spasi. Membaca Input Data Numerik Untuk input berupa data numerik, maka caranya sama dengan melakukan input terhadap data string. Selanjutnya string hasil input tersebut dikonversi ke tipe numerik dengan memanggil method parseint() yang terdapat pada kelas Integer untuk bilangan bulat, atau parsedouble() yang terdapat pada kelas Double untuk bilangan riil. Parameter yang dilewatkan ke dalam method tersebut harus bertipe string. Sebaiknya proses konversi berada di dalam blok try-catch untuk menghindari masukan string yang tidak dapat dikonversi ke bilangan bulat, misalnya string abc. 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 juga menyediakan kelas PrintWriter untuk keperluan yang sama. PrintWriter adalah salah satu kelas stream yang berbasis pada data karakter (character-based). Bentuk constructor dari kelas PrintWriter adalah sebagai berikut: PrintWriter(OutputStream outputstream, Boolean flushonnewline) Dimana outputstream adalah objek dari OutputStream dan flushonnewline adalah parameter Boolean yang menyatakan apakah stream output akan dibuang atau tidak setiap kali method println() dipanggil. Seperti halnya System.out, PrintWriter juga mendukung method print() dan println() untuk semua tipe data, termasuk yang berjenis objek; cara kerjanya pun sama seperti pada saat menggunakan System.out. Apabila argumen yang dilewatkan berupa objek, maka PrintWriter akan memanggil method tostring() dari objek Praktikum Dasar Programming 2 47

bersangkutan, kemudian menampilkan hasilnya. Cara pembentukan objek PrintWriter untuk menampilkan output adalah sebagai berikut: PrintWriter pw = new PrintWriter(System.out, true); C. TUGAS PENDAHULUAN 1. Jelaskan fungsi method-method berikut ini. a. int read() b. int read(byte[] buffer) c. int read(byte[] buffer, int offset, int length) 2. Jelaskan perbedaan antara 2 method berikut: a. int read(byte[] buffer) b. int read(byte[] cbuf) D. PERCOBAAN 1. Tulislah program berikut, lakukan kompilasi dan amati hasilnya. import java.io.*; public class InputKarakter { 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 + "\ "); Praktikum Dasar Programming 2 48

2. Tulislah program berikut, lakukan kompilasi dan amati hasilnya. import java.io.*; public class InputNumerik { 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); temp = br.readline(); try { 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); 3. Eksekusi dan amati program berikut. public class Write { public static void main(string[] args) { int i = 'A'; byte b = 65; char c = 'B'; System.out.print (i); System.out.print (b); System.out.print (c); 4. Tulislah program berikut, lakukan kompilasi dan amati hasilnya. import java.io.printwriter; public class DemoPrintWriter { public static void main(string[] args) { Praktikum Dasar Programming 2 49

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); 5. Buatlah program untuk menerima masukan data dan menampilkan hasilnya sesuai tampilan berikut: Masukkan nama Anda : Putri Kahyangan Masukkan Alamat Anda : Langit Gg 5 No. 7 Angkasa Masukkan Nomer telepon: 081234567890 Halo Putri Kahyangan, alamatmu di Langit Gg 5 No. 7 Angkasa Nomer teleponmu adalah 081234567890 E. TUGAS LAPORAN RESMI 1. Jelaskan perbedaan penggunaan dari print(), printf() dan println()! Berikan contoh program yang menunjukkan perbedaan tersebut. 2. Analisalah setiap program di atas. 3. Buatlah program yang menghitung nilai rata-rata seorang mahasiswa dengan input nama mahasiswa, jumlah mata kuliah dan nilai. Tampilan input dan outputnya sebagai berikut: Masukkan Nama : Putri Kahyangan Jumlah mata kuliah : 4 MK1 : 80 MK2 : 75 MK3 : 90 MK4 : 85 Putri Kahyangan, nilai rata-rata dari 4 mata kuliah yang kamu masukkan adalah 82.5. Praktikum Dasar Programming 2 50