0% menganggap dokumen ini bermanfaat (0 suara)
23 tayangan28 halaman

Pbo Part 12 - Input Output Data Stream Object On Java Gui

Diunggah oleh

Sri Rayu M
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
23 tayangan28 halaman

Pbo Part 12 - Input Output Data Stream Object On Java Gui

Diunggah oleh

Sri Rayu M
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 28

Pemrograman Berorientasi Objek

Pertemuan 12

Dosen Pengampu :
7174 - Sawali Wahyu, S.Kom,
M.Kom

INPUT / OUTPUT DATA


STREAM OBJECT ON JAVA GUI

Kampus Utama Univ. Esa Unggul - Kebon www.esaunggul.ac.id


2.1 Pembahasan

Komunikasi melalui jaringan, melalui file, ataupun


aplikasi, direpresentasikan dalam Java dengan
menggunakan Stream.
Konsep Stream sangat penting ketika membahas
aplikasi jaringan. Hampir semua network
communication (kecuali komunikasi UDP) dibangun
menggunakan Steams.

www.esaunggul.ac.id
2.1.1 Streams
Stream adalah aliran data yang berupa aliran data byte atau
karakter dari device input ke device output pada saat program di
eksekusi. Stream juga dapat diartikan sebagai representasi
abstrak dari input dan output device dimana aliran data bytes
akan ditransfer seperti transfer file ke dalam harddisk.
Operasi input dan output pada java menggunakan konsep aliran
data, yaitu aliran data dari device output dengan memanfaakan
method println() pada objek System.out, dan device input pada
objek System.in.
Proses stream untuk membaca diimplementasikan dengan
memanggil kelas turunan dari superclass java.io.InputStream.
Sedangkan proses stream untuk menulis diimplementasikan
dengan memanggil kelas turunan dari superclass
java.io.OutputStream. InputStream dan OutputStream
merupakan kelas abstrak yang tidak bisa digunakan secara
langsung, namun bisa menggunakan subclass dari masing-
masing sesuai kebutuhan. Kelas turunan dari InputStream dan
OutputStream ditunjukkan pada Gambar 2.1.

www.esaunggul.ac.id
Gambar 2.1 Subclass dari input Stream
dan output Stream

www.esaunggul.ac.id
Input Stream
Diantara method pada kelas InputStream ditunjukkan pada Tabel 2.1.
Method Diskripsi
int available() throws java.io.IOException Mengembalikan jumlah byte yang tersedia untuk dibaca
Menutup input stream dan mengabaikan semua resource yang
void close() throws java.io.IOException
berhubungan dengan input stream
Mencatat posisi tertentu pada input stream sehingga input stream
dapat meninjau kembali pada urutan posisi tersebut dengan
void mark(int readLimit)
menggunakan method InputStream.reset(). Tapi tidak semua input
stream mendukung fungsi ini.
Mengembalikan nilai “true” jika input stream mendukung method
boolean markSupported()
mark() dan reset().
Mengembalikan byte data berikutnya dari stream. Ketika mencapai
int read() throws java.io.IOException
akhir dari stream maka akan mengembalikan nilai - 1.
Membaca rangkaian byte dan menempatkan pada array byte yang
ditentukan dengan memanggil method read() berulangkali hingga
int read(byte[] byteArray) throws
array terisi atau tidak ada lagi data yang diperoleh. Method ini
java.io.IOException
mengembalikan jumlah byte yang berhasil dibaca atau -1 jika telah
mencapai akhir stream.
int read(byte[] byteArray, int offset, int Membaca rangakain byte dan menempatkan pada array yang
length) throws java. ditentukan. Berbeda dengan method sebelumnya, int read(byte[]
io.IOException, byteArray), method ini memulai pengisian byte pada offset array
java.lang.IndexOutOfBoundsExcep tion yang ditentukan dan dengan panjang array tertentu.
Mengembalikan posisi input stream pada tanda (mark) yang telah
void reset() throws java.io.IOException
ditetapkan.
long skip(long amount) throws Membaca, tetapi mengabaikan sejumlah byte tententu. Byte
java.io.IOException dibuang dan posisi input stream diperbarui.

www.esaunggul.ac.id
Contoh 2.1. Menggunakan input stream

Berikut ini contoh implementasi input stream untuk


menampilkan isi sebuah file. Setiap byte pada satu waktu
dibaca dari file dan ditampilkan pada layar. Meskipun hal ini
tidak cukup efisien dibandingkan dengan mempercepat
kinerja menggunakan buffering –misalkan–, namun ini bisa
memberi ilustrasi penggunaan low-level-stream.

www.esaunggul.ac.id
www.esaunggul.ac.id
Output:

www.esaunggul.ac.id
Output Stream
Sejumlah output stream tersedia dalam paket java.io
dengan berbagai tugas, misalkan menulis ke suatu struktur
data seperti string dan array, atau ke bentuk file, dan
sebagainya. Diantara method yang dapat digunakan pada
kelas output stream ditunjukkan pada Tabel 2.2.
Tabel 2.2 Method pada kelas output stream
Method Diskripsi
void close() throws java.io.IOException Menutup output stream
Melakukan “flush” terhadap suatu data
void flush() throws java.io.IOException yang tidak terkirim dan mengirimkan ke
penerima output stream
void write(int byte) throws
Menulis byte tertentu
java.io.IOException
void write(byte[] byteArray) throws Menulis isi byte array ke output stream.
java.io.IOException Seluruh isi array akan ditulis
Menulis isi subset dari byte ke output
stream. Dengan method ini maka
void write(byte[] byteArray, int offset, int
developer dapat menentukan berapa
length) throws java.io.IOException
banyak array yang dikirim serta
bagiannya.

www.esaunggul.ac.id
Contoh 2.2. Menggunakan output stream

www.esaunggul.ac.id
Output

www.esaunggul.ac.id
2.1.2 Reader dan Writers
Input Stream dan output Stream memang dapat digunakan untuk membaca dan
menulis text, baik dalam bentuk byte maupun tipe data primitive. Namun, ada
alternatif yang lebih baik dengan menggunakan reader dan writers.
Reader dan writers dikenalkan pada JDK 1.1 agar lebih mendukung stream
karakter Unicode (pembahasan tentang Unicode dapat diperoleh pada situs
resmi dengan alamat http://www.unicode.org/).
Reader dan writers adalah alternatif yang lebih baik daripada input stream dan
output stream ketika menggunakan text data. Input stream dan output stream
bisa tetap digunakan jika hanya memproses tipe data primitive. Namun untuk
aplikasi yang memproses text data maka perlu menggunakan reader dan writers
sehingga mendukung karakter Unicode.
Subclass dari java.io.Reader dan java.io.Writer ditunjukkan pada Gambar 2.2.
Pada dasarnya, terdapat kesetaraan fungsi antara kelas pada java.io.Reader
dengan kelas pada java.io.InputStream. Kelas Reader memiliki tanda method
yang sama dengan kelas InputStream.
Hanya terdapat beberapa perubahan kecil pada tanda method untuk mendukung
karakter, bukan byte. Selain itu, method available() telah dihapus dan digantikan
dengan method ready().

www.esaunggul.ac.id
Gambar 2.2 Subclass dari Reader dan Writer

www.esaunggul.ac.id
Reader
Diantara method pada kelas reader ditunjukan pada Tabel 2.3.
Method Diskripsi
void close() throws java.io.IOException Menutup/mengakhiri reader
Menandai posisi tertentu pada reader dan menggunakan
void mark(int amount) throws java.io.IOException spesifik karakter tertentu sebagai buffer. Tidak semua
reader mendukung method mark(int) dan reset().
Mengembalikan nilai “true” jika reader mendukung operasi
boolean markSupported()
method mark(int) dan reset().
Membaca dan mengembalikan sebuah karakter. Jika sudah
int read() throws java.io.IOException mencapai akhir dari stream reader maka mengembalikan
nilai - 1.
Mengisi array karakter dengan data. Method ini
int read(char[] characterArray) throws mengembalikan nilai int yang mewakili jumlah byte yang
java.io.IOException dibaca. Jika mencapai akhir dari stream reader maka
mengembalikan nilai -1 dan array tidak dirubah.

Mengisi subset dari array dengan data, mulai dari offset


int read(char[] characterArray int offset, int yang telah ditentukan dan dengan panjang tertentu. Method
length) throws java.io.IOException ini mengembalikan nilai int, mewakili jumlah bte yang
dibaca, atau -1 jika tidak ada byte yang bisa diperoleh.

boolean ready() throws java.io.IOException Mengembalikan nilai “true” jika da data yang tersedia
Mencoba untuk mengembalikan stream reader dengan
void reset() throws java.io.IOException memindahkan kembali ke posisi awal yang sudah
ditentukan dengan method mark(int)
Membaca dan mengabaikan sejumlah karakter yang
long skip(long amount) throws java.io.IOException ditentukan. Method ini mengembalikan jumlah karakter
yang berhasil dilewati.

www.esaunggul.ac.id
Contoh 2.3. Kombinasi Input Streams dan Readers

www.esaunggul.ac.id
Output:

www.esaunggul.ac.id
Writer
Pada dasarnya method pada kelas Writer memiliki kemiripan fungsi dengan
method pada kelas Output Stream namun dengan penyesuaian sehingga
dapat digunakan untuk karakter Unicode.
Diantara method yang ada pada kelas writer ditunjukkan pada table 2.4.
Method Diskripsi
Method flush() untuk mengirim data buffer
void close() throws java.io.IOException
kemudian menutup writer
Melakukan “flush” terhadap data yang tidak
void flush() throws java.io.IOException
terkirim kemudian mengirimkannya.
void write(int character) throws
Menulis karakter tertentu
java.io.IOException
void write(char[] charArray) throws Membaca semua konten dari array karakter yang
java.io.IOException ditentukan dan menuliskannya
void write(char[] charArray int offset, int length) Membaca subset dari array karakter, mulai dari
throws offset yang ditentukan hingga panjang tertentu
java.io.IOException kemudian menuliskannya
void write(String string) throws
Menulis string tertentu
java.io.IOException
void write(String string, int offset, int length)
Menulis sebuah subset string, dimulai dari offset
throws
tertentu hingga panjang yang ditentukan
java.io.IOException

www.esaunggul.ac.id
Contoh 2.4. Kombinasi Output Streams dan Writers

www.esaunggul.ac.id
Output:

www.esaunggul.ac.id
2.1.3 Membaca Image File dan Audio File
Berikut ini dipaparkan contoh program untuk membaca file berupa gambar
(Contoh 2.5) dan berupa suara (Contoh 2.6).

www.esaunggul.ac.id
Contoh 2.5. Membaca
Untuk membaca input berupa data image, dapat
Image
menggunakan method File
ImageIO.read(sourceimage). Berikut
ini contoh program yang akan menunjukkan bagaimana
menangani proses input data image.

www.esaunggul.ac.id
www.esaunggul.ac.id
Output:

www.esaunggul.ac.id
Contoh 2.6. Membaca Audio File

Output:
~ ~ Suara bubble ~ ~

www.esaunggul.ac.id
2.2 Praktikum
1.Tulis dan jalankan Contoh 2.1 dan Contoh 2.2 pada modul ini dan
pahami tiap barisnya!
2.Tulis dan jalankan Contoh 2.3 dan Contoh 2.4 pada modul ini dan
pahami tiap barisnya!
3.Buatlah program untuk membaca input text dari console kemudian
menuliskan kedalam sebuah file pada directory!
4.Buatlah program yang membaca input text dari console. Inputan
berupa satu kalimat atau paragraph. Program mampu membaca dan
menampilkan secara berulang dan akan keluar ketika user mengetikkan
kata “exit”. Contoh : (next page)
5.Tulis dan jalankan Contoh 2.5 dan Contoh 2.6 pada modul ini dan
pahami tiap barisnya!

www.esaunggul.ac.id
Contoh:

www.esaunggul.ac.id
Tugas Online 12

1. Buatlah program dengan GUI untuk membaca


dan menulis Image file dari dan pada file yang
dipilih !
2. Buatlah program dengan GUI untuk membaca
dan menulis audio file dari dan pada file yang
dipilih !

Lihat Pada Contoh Slide Yang Diberikan

www.esaunggul.ac.id
TERIMA KASIH

www.esaunggul.ac.id

Anda mungkin juga menyukai