• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
7
0
0

Teks penuh

(1)

PERTEMUAN V

STREAM DAN OOP

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 Keterangan

File Objek dari class ini mewakili path, direktori atau file yang akan diakses untuk input atau output

OutputStream Class dasar untuk operasi output byte stream, merupakan class abstrak InputStream Class dasar untuk operasi input byte strean, merupakan class abstrak Writer

Class dasar untuk operasi output karakter stream,merupakan class abstrak

Reader

Class dasar untuk operasi input karakter stream,merupakan class 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.

(2)

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.

(3)

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);

(4)

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

(5)

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 Bentuk 3D

Lingkaran Bujur Sangkar 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;

(6)

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(); } }

1. Jelaskan definisi stream.

2. Sebutkan class-class yang terdapat di stream disertai dengan bentuk umumnya 3. Jelaskan secara singkat tentang karakteristik OOP!

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.

STEP BY STEP

(7)

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.

Referensi

Dokumen terkait

RENCANA PROGRAM DAN KEGIATAN SERTA PENDANAAN Dalam rangka mendukung pelaksanaan program pembangunan yang berkesinambungan yang tertuang dalam visi yang tercantum dalam RPJMD

kompetensi menulis puisi, misalnya, penulis Contoh lain, misalnya, di dalam dapat meminta siswa mengidentifikasi pembelajaran menulis cerita pendek, penulis

Adapun hubungan antara perilaku prokrastinasi dengan tipe kepribadian introvert adalah positif dan individu yang memiliki kecenderungan tipe kepribadian introvert

Untuk pegawai non-darurat : Tidak boleh melakukan tindakan yang menyangkut risiko pribadi atau tanpa pelatihan yang sesuai.. Evakuasi

Perbankan yang memiliki profitabilitas (laba sebelum pajak) tinggi maka kemungkinan memiliki nilai rasio hutang kecil dengan sumber dana yang berlimpah, dimana

Demi pengembangan ilmu pengetahuan, dengan ini menyetujui untuk memberikan ijin kepada pihak Program Studi Sistem Informasi Fakultas Teknik Universitas Muria Kudus

Secara simultan variabel Penataan Organisasi telah berpengaruh secara signifikan terhadap Kinerja Pegawai pada Dinas Kesehatan Kota Banjar, dalam hal ini variabel Penataan

Penelitian ini bertujuan untuk menentukan sebaran lokasi penanaman bawang merah lokal Samosir berdasarkan ketinggian tempat di Daerah Tangkapan Air Danau Toba.. Penelitian