Download pertemuan v - Universitas Gunadarma

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
PERTEMUAN V
STREAM DAN OOP
TUJUAN PRAKTIKUM
1. Praktikan memahami Stream pada Java.
2. Praktikan memahami pemrograman berbasis objek dengan mengetahui karakteristik OOP.
5.1 Stream
Stream adalah representasi abstrak dari input dan output device dimana aliran data bytes akan
ditransfer seperti file dalam harddisk, file pada system remote atau printer. Kita dapat membaca
data dari input stream, yang dapat berupa file,keyboard, atau computer remote. Sedangkan untuk
operasi penulisan berarti kita menulis data pada output stream.
Package java.io mendukung dua tipe stream, yaitu binary dan karakter stream. Binary merupakan
data berupa bit atau data binary, sedangkan karakter adalah tipe khusus untuk pembacaan dan
penulisan teks/karakter.
Kemampuan untuk memproses output dalam Java dakam bentuk byte atau bytestream diwakili oleh
class abstrak OutputStream sedangkan input diwakili class InputStream. Apabila kita memproses
data karakter(karakter Unicode) atau disebut character stream seperti string atau bilangan maka Java
menyediakan class abstrak Reader dan Writer.
Class
File
Keterangan
Objek dari class ini mewakili path, direktori atau file yang akan diakses
untuk input atau output
OutputStream
InputStream
Class dasar untuk operasi output byte stream, merupakan class abstrak
Class dasar untuk operasi input byte strean, merupakan class abstrak
Class dasar untuk operasi output karakter stream,merupakan class
Writer
abstrak
Class dasar untuk operasi input karakter stream,merupakan class
Reader
abstrak
RandomAccessFile Class yang menyediakan dukungan untuk akses random ke file
InputStream
Subclass-subclass dari InputStream adalah :
AudioInputStream,ByteArrayInputStream, FileInputStream, FilterInputStream, PipedInputStream,
SequenceInputStream, dan StringBufferInputStream.
Lab. Teknik Informatika - FTI Universitas Gunadarma
66
Dua method utama dari Input Stream adalah :
read() : digunakan untuk membaca stream
close() : digunakan untuk menutup koneksi input stream
OutputStream
Subclass-subclass dari OutputStream adalah :
ByteArrayOutputStream : untuk menuliskan stream menjadi byte array
FileOutputStream
: digunakan untuk menulis pada file
FilterOutputStream
: merupakan superclass dari subclass-subclass seperti
DataOutputStream, BufferOutputStream, PrintStream, CheckedOutputStream.
ObjectOutputStream : digunakan untuk menuliskan objek pada OutputStream
PipedOutputStream
: digunakan untuk menjadi output PipedOutputStream
Sebagian method-method OutputStream adalah :
void close() : Menutup output stream yang aktif dan melepaskan sumber daya terkait dengan
stream tersebut
void flush() : Melakukan flush output stream dan memaksa semua byte buffer untuk
dituliskan keluar
void write(byte[ ] b) : menulis sebanyak b.length dari byte array ke output stream
void write(byte [ ] b, int off, int len) : Menuliskan sebanyak len byte dari byte array b dimulai
dari index offf
DataOutputStream
DataOutputStream merupakan class yang menyediakan cara praktis untuk menuliskan tipe data
primitive ke output stream, sedangkan DataInputStream berfungsi untuk membaca hasil penulisan
DataOutputStream atau mendapatkan data kembali.
Sebagian method DataOutputStream :
writeDouble : menuliskan data bertipe double ke output stream
writeInt : menuliskan data Integer ke output stream
writeBoolean : menuliskan data Boolean ke output stream
writeUTF : menuliskan data string menggunakan encoding UTF-8 yang tidak tergantung
pada mesin
DataInputStream
DataInputStream berfungsi untuk saling melengkapi dengan DataOutputStream, yaitu untuk
mendapatkan data yang ditulis dengan DataOutputStream.
Lab. Teknik Informatika - FTI Universitas Gunadarma
67
Tipe data primitive yang ditulis oleh DataOutputStream didapatkan kembali dengan
DataInputStream dengan tidak bergantung pada mesin computer.
Sebagian method DataInputStrean :
readDouble()
readInt()
readBoolean()
readUTF()
BufferedInputStream dan BufferedOutputStream
BufferedInputStream maupun BufferedOutputStream menyediakan fungsi buffer dalam proses
output dan input untuk mempercepat dan mengefisienkan proses
Kedua class ini biasanya digunakan secara bersamaan dengan implementasi class output dan input
stream lain seperti DataOutputStream, DataInputStream, FIleOutputStream dan FileInputStream
atau yang lain. Kedua class ini menjadi semacam penengah yang menyediakan proses buffering
FileInputStream dan FIleOutputStream
Seringkali proses input dan output yang kita lakukan menggunakan file sebagai sarana penulisan
maupun pembacaan data.
Oleh karena itu kita akan membahas class FileInputStream untuk membaca data dari file dan
FIleOutputStream untuk menuliskan data ke file.
Class FileInputStream merupakan turunan langsung dari class InputStream sedangkan
FileOutputStream merupakan turunan langsung dari class OutputStream.
Contoh dibawah akan mencoba mendeskripsikan sample penggunaan class DataOutputStream,
DataInputStream, FileOutputStream, FileOutputStream, serta BufferedInputStream dan
BufferedOutputStream.
//Nama File cobaDataStream.java
import java.io.*;
public class cobaDataStream{
public static void main(String args[])
{
try {
DataOutputStream out2 = new DataOutputStream( new
BufferedOutputStream ( new FileOutputStream("Data.txt")));
out2.writeDouble(3.14159);
out2.writeDouble(1.41413);
Lab. Teknik Informatika - FTI Universitas Gunadarma
68
out2.writeInt(2002);
out2.writeInt(1003);
out2.writeBoolean(true);
out2.writeBoolean(false);
out2.close();
}
catch(IOException ioe)
{
ioe.printStackTrace();
}
try
{
DataInputStream in5 = new DataInputStream( new BufferedInputStream
(new FileInputStream("Data.txt")));
System.out.println(in5.readDouble());
System.out.println(in5.readDouble());
System.out.println(in5.readInt());
System.out.println(in5.readInt());
boolean status = in5.readBoolean();
boolean status1 = in5.readBoolean();
System.out.println(status);
System.out.println(status1);
} catch(EOFException e) {
System.err.println("End of stream");
}
catch(IOException io)
{
io.printStackTrace();
}
}
}
5.2 Pemrograman Berorientasi Objek
Dalam pemrograman berorientasi objek, fokus utama adalah pada objek. Metodologi
pengembangan sistem berorientasi objek mempunyai tiga karakteristik utama, yaitu :
1. Enkapsulasi(Pembungkusan)
Enkapsulasi adalah pelindung program dan data yang sedang diolah. Enkapsulasi
mendefinisikan perilaku dan melindungi program dan data agar tidak diakses secara
sembarangan oleh program lain.
Dalam Java, dasar enkapsulasi adalah class. Anda membuat suatu class yang menyatakan
bahwa variable atau method sebuah class tidak dapat diakses oleh class lain dengan
Lab. Teknik Informatika - FTI Universitas Gunadarma
69
menjadikan class tersebut private, atau menjadikan class tersebut protected - yaitu hanya
bisa diakses oleh turunannya, atau menjadikan class tersebut public - yaitu bisa diakses oleh
sembarang class.
2. Inheritansi
Pewarisan adalah teknik yang menyatakan bahwa anak dari objek akan mewarisi data
atau atribut dan metode dari induknya langsung. Objek-objek yang berada di sekitar kita
adalah objek-objek yang saling terhubung secara hirarkis. Misalnya :
Objek Gambar
Bentuk 2D
Lingkaran
Bujur Sangkar
Bentuk 3D
Piramida
Bola
Lingkaran dan Bujur Sangkar adalah turunan dari bentuk 2D dan Bentuk 2D adalah turunan
dari Objek Gambar.
Lingkaran dan Bujur Sangkar mewarisi(inherit) sifat-sifat dari bentuk 2D, juga mewarisi
sifat-sifat dari objek gambar.
Lingkaran dan Bujur Sangkar dapat dikatakan subclass dari bentuk 2D. Bentuk 3D adalah
superclass dari Bola dan Piramida, dan seterusnya.
Beberapa faktor yang bersifat umum dimasukkan ke dalam kelas induknya serta mewariskan
sifat tersebut pada kelas turunannya, sehingga dapat mengurangi pengulangan yang terjadi
dalam desain dan pemrograman. Hal ini merupakan keuntungan dari sistem berorientasi objek.
3. Polimorfisme
Walaupun Lingkaran dan Bujur Sangkat sama-sama turunan dari Bentuk 2D, tetapi cara
menubah ukuran masing-masing berbeda, untuk lingkaran anda harus merubah besar
jarijarinya, sedang untuk bujur sangkar anda harus mengubah panjang sisinya.
Dalam Java implementasi, method suatu parent-class dapat diubah oleh sub-class, hal ini
dikenal dengan overriding method. Deklarasi method sama tetapi implementasi atau
definisinya berbeda(Method atau perilaku yang sama tapi implementasinya/caranya yang
berbeda-beda inilah yang disebut dengan Polimorfisme).
Polimorfisme yaitu konsep yang menyatakan bahwa sesuatu yang sama dapat mempunyai
bentuk dan perilaku berbeda. Polimorfisme mempunyai arti bahwa operasi yang sama mungkin
mempunyai perbedaan dalam kelas yang berbeda.
Contoh Program :
// contoh inheritanace sederhana
// file disimpan dengan nama penurunansederhana.java
class A {
int i;
int j;
Lab. Teknik Informatika - FTI Universitas Gunadarma
70
void show_ij(){
System.out.println(“I dan j = “ + I + “” + j);
}
}
class B extends A {
int K ;
void show_k () {
System.out.println(“k = “ +k);
}
void sum_all() {
System.out.println(“I + j + k = “ + (i+j+k));
}
}
class penurunansederhana {
public static void main (String args[]){
A objekBapak = new A();
B objekAnak = new B();
objekBapak.i = 13;
objekBapak.j = 17;
System.out.println(“Objek A -> objek superclass dari B : “)
objekBapak.show_ij();
objekAnak.i = 9;
objekAnak.j = 10;
objekAnak.k = 11;
System.out.println(“Objek A -> objek superclass dari B : “)
objekAnak.show_ij();
objekAnak.show_k();
objekAnak.sum_all();
}
}
STEP BY STEP
1. Jelaskan definisi stream.
2. Sebutkan class-class yang terdapat di stream disertai dengan bentuk umumnya
3. Jelaskan secara singkat tentang karakteristik OOP!
MATERI PRAKTIKUM
1. Memberikan penjelasan tentang konsep stream di Java
2. Memberikan penjelasan serta memberikan contoh implementasi operasi stream
3. Memberikan penjelasan serta memberikan contoh implementasi OOP.
Lab. Teknik Informatika - FTI Universitas Gunadarma
71
LAPORAN AKHIR
Buatlah kesimpulan mengenai pemrograman berbasis objek(OOP) dan Stream bahasa
pemrograman JAVA yang telah dipraktekkan beserta dengan program-program yang telah
dibuat berikut tampilan hasilnya.
Lab. Teknik Informatika - FTI Universitas Gunadarma
72