0% menganggap dokumen ini bermanfaat (0 suara)
2 tayangan

Modul 6 Object Persistence Dan Object

Dokumen ini membahas tentang konsep object persistence dan object serialization dalam pemrograman Java. Mahasiswa diharapkan dapat memahami dan menerapkan kedua konsep tersebut, yang memungkinkan objek untuk disimpan dan diakses kembali meskipun aplikasi telah dihentikan. Selain itu, dokumen juga menjelaskan cara kerja serialisasi dan masalah yang mungkin timbul, serta memberikan contoh implementasi dalam kode aplikasi.

Diunggah oleh

siatiniro
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 PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
2 tayangan

Modul 6 Object Persistence Dan Object

Dokumen ini membahas tentang konsep object persistence dan object serialization dalam pemrograman Java. Mahasiswa diharapkan dapat memahami dan menerapkan kedua konsep tersebut, yang memungkinkan objek untuk disimpan dan diakses kembali meskipun aplikasi telah dihentikan. Selain itu, dokumen juga menjelaskan cara kerja serialisasi dan masalah yang mungkin timbul, serta memberikan contoh implementasi dalam kode aplikasi.

Diunggah oleh

siatiniro
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 PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 7

Jurusan Teknologi Informasi Politeknik Negeri Malang

Jobsheet 6 : Object Persistence dan Object Serialization


Pengampu: Meyti Eka Apriyani

Setelah mempelajari modul 6 ini, mahasiswa diharapkan :


- mampu memahami konsep object persistence
- mampu menerapkan object persistence dengan menggunakan object serialization pada
aplikasi

DASAR TEORI
1. Object Persistence
Object persistence adalah kemampuan sebuah object untuk tetap hidup
dalam sebuah sistem, tidak terpengaruh waktu dan ruang (space), bahkan apabila
aplikasi pembuat object tersebut telah dihentikan atau komputer dimatikan. Untuk
itu objek yang diinginkan supaya persistence harus disimpan secara utuh.
Penyimpanan objek secara utuh melibatkan penyimpanan struktur data yang
dimiliki oleh objek tersebut, nilai-nilai atribut yang dimilikinya, dan pemetaan
terhadap referensi ke objek lain apabila ada, sekaligus objek yang direferensikannya.
Proses itu merupakan sebuah proses yang kompleks dan rumit.

2. Object Serialization

Object Serialization adalah teknik yang bisa mewujudkan object


persistence. Teknik ini mengontrol bagaimana data yang berisi informasi-informasi
nilai dan status sebuah objek (termasuk nilai atribut-atributnya, hak akses tiap
atributnya baik itu public, protected atau private, dan lain sebagainya) dituliskan
dan disimpan dalam bentuk rangkaian byte-byte data.
Objek yang diserialisasi nantinya dapat dikirimkan lewat jaringan, atau
disimpan dalam file, untuk kemudian dapat diakses di lain waktu sesuai kebutuhan.
Hal tersebut memungkinkan pindahnya suatu objek dari satu JVM ke JVM lain,
entah dalam satu mesin atau mesin yang berbeda.

5.3. Cara Kerja Object Serialization

Setiap objek yang mengimplementasikan interface java.IO.Serializable


dapat diserialisasikan hanya dengan beberapa baris kode.
Jurusan Teknologi Informasi Politeknik Negeri Malang
Jobsheet 6 : Object Persistence dan Object Serialization
Pengampu: Meyti Eka Apriyani

Mengimplementasikannya sama dengan cara menerapkan interface-interface yang


lain pada JAVA, yaitu dengan menambahkan keyword implement pada deklarasi
class yang diinginkan dan menggunakan konstrukto tanpa argumen tambahan.
Interface ini menunjukkan bahwa class yang kita buat dapat mendukung serialisasi
objek. Tidak ada method tambahan yang perlu diimplementasikan pada class
tersebut.
Contoh deklarasi class yang menerapkan interface tersebut :
Public class SomeClass extends SomeOtherClass implements
java.io.Serializable {
public class SomeClass()
}
}
………
}

3. Permasalahan pada Penggunaan Serialisasi

Terdapat beberapa masalah pada awal munculnya metode serialisasi.


Contohnya apabila objek yang ingin kita serialisasi memiliki informasi rahasia /
sensitif yang tidak patut kita ikutkan dalam serialisasi untuk disimpan dalam bentuk
file ke media penyimpanan atau dikirimkan ke jaringan.
Apabila ada kasus seperti ini : kelas yang ingin kita serialisasi memiliki
atribut password dimana bisa secara mudah dibaca apabila diserialisasikan. Untuk
mencegah hal-hal tersebut, maka diciptakanlah keyword trancient. Keyword
tersebut bisa diberikan pada deklarasi anggota / atribut dari kelas yang tidak kita
inginkan untuk diikutkan pada proses serialisasi.
Contoh penggunaan trancient pada deklarasi kelas :
Public class UserAccount implements java.io.Serializable
{ protected String username;
protected transient String password;
public UserAccount( )
{
….
}
}
Jurusan Teknologi Informasi Politeknik Negeri Malang
Jobsheet 6 : Object Persistence dan Object Serialization
Pengampu: Meyti Eka Apriyani

4. Membaca dan Menuliskan Object pada Stream

Point utama dari serialisasi adalah bagaimana kita menuliskan objek ke


stream dan bagaimana cara mendapatkannya kembali untuk bisa digunakan. Hal
tersebut bisa dilakukan dengan menggunakan kelas
java.io.ObjectOutputStream dan java.io.ObjectInputStream .

4.1 Kelas ObjectInputStream


Digunakan untuk mengambil objek yang terserialisasi dari byte stream
untuk dapat direkonstruksi ulang menjadi bentuk asli objek tersebut.
Kelas ObjectInputStream mengimplementasikan interface ObjectInput
yang merupakan turunan dari interface DataInput. Artinya kelas ini menyediakan
banyak method untuk beroperasi dengan banyak tipe data seperti halnya pada kelas
DataInputStream.
• Konstruktor
• Protected ObjectInputStream () – merupakan
konstruktor default untuk turunan dari ObjectInputStream
• ObjectInputStream( InputStream input) – membuat
object input stream yang terkoneksi dengan input stream
yang ditunjuk, dapat digunakan untuk mengembalikan objek
yang terserialisasi
• Method - method
• Public final Object readObject( ) – membaca objek

yang terserialisasi dari stream dan merekonstruksinya


kembali

4.2 Kelas ObjectOutputStream


Kelas ini digunakan untuk menserialisasi objek dan dikirimkan melalui byte
stream dalam rangka object persistence. Bisa dihubungkan ke semua output stream
seperti file output dan networking stream.
• Konstuktor
• Protected ObjectOutputStream ( ) – konstruktor
default
Jurusan Teknologi Informasi Politeknik Negeri Malang
Jobsheet 6 : Object Persistence dan Object Serialization
Pengampu: Meyti Eka Apriyani

• ObjectOutputStream (OutputStream output) –

membuat objek output stream yang mampu menserialisasi


objek dan dikirim melalui stream output yang ditunjuk
• Method-method
• Void writeObject (Object object) – menuliskan
objek yang dimaksud ke output stream melalui proses
serialisasi.

PRAKTIKUM

Contoh penggunaan object serialization dapat dilihat pada kode aplikasi di


awah ini, di mana aplikasi membuat objek yang dapat disimpan dan dipanggil
kembali lengkap dengan informasi dan status terakhir (nilai-nilai atribut yang
dimiliki) objek tersebut.

import java.io.*;
import java.util.*;

// Chapter 4, Listing 5
public class SerializationDemo
{
public static void main(String args[])
{
try
{
Vector list;
// Create a buffered reader for easy input
BufferedReader reader = new BufferedReader
( new InputStreamReader ( System.in ) );
System.out.println ("Checking for
previous serialized list");
// Check to see if serialized list exists
try
{
FileInputStream fin = new
FileInputStream ("list.out");

// Connect an object input stream to the


Jurusan Teknologi Informasi Politeknik Negeri Malang
Jobsheet 6 : Object Persistence dan Object Serialization
Pengampu: Meyti Eka Apriyani

// list
ObjectInputStream oin = new ObjectInputStream
( fin );
try
{
// Read the vector back from the
list Object obj = oin.readObject();
// Cast back to a vector
list = (Vector) obj;
}
catch (ClassCastException cce)
{
// Can't read it, create a blank
one list = new Vector();
}
catch (ClassNotFoundException cnfe)
{
// Can't read it, create a blank
one list = new Vector();
}
fin.close();
}
catch (FileNotFoundException fnfe)
{
// Create a blank vector
list = new Vector();
}
// Repeat
indefinitely for (;;)
{
// Now, display menu System.out.println
("Menu :-"); System.out.println ("1.. Add
item"); System.out.println ("2.. Delete
item");
System.out.println ("3.. List items");

System.out.println ("4.. Save and


quit"); System.out.print ("Choice : ");
// Read choice
String response = reader.readLine();
Jurusan Teknologi Informasi Politeknik Negeri Malang
Jobsheet 6 : Object Persistence dan Object Serialization
Pengampu: Meyti Eka Apriyani

// Convert to an int
int choice = Integer.parseInt (response);
switch (choice)
{
case 1 :
// Add the item to
list System.out.print
("Enter item : ");
String item = reader.readLine();
list.addElement(item);
break;
case 2 :
// Delete the item from
list System.out.print
("Enter item : ");
String deadItem =
reader.readLine();
list.removeElement(deadItem);
break;
case 3 :
// List the elements of the
list for (Enumeration e =
list.elements();
e.hasMoreElements();)
{
System.out.println
(e.nextElement());
}
break;
case 4 :
// Save list and terminate
System.out.println ("Saving
list"); FileOutputStream
fout = new FileOutputStream

( "list.out" );

// Construct an object output stream


ObjectOutputStream oout = new
Jurusan Teknologi Informasi Politeknik Negeri Malang Jobsheet
6 : Object Persistence dan Object Serialization
Pengampu: Meyti Eka Apriyani

ObjectOutputStream ( fout );

// Write the object to the stream


oout.writeObject (list);
fout.close(); System.exit(0);

}
}
}
catch (IOException ioe)
{
System.err.println ("I/O error");
}
}
}

Praktikum Modul 5

1. Tuliskan kembali kode aplikasi di atas dan jalankan. Laporkan apa


yang terjadi pada hasil eksekusi aplikasi.
2. Jika pada aplikasi di atas, objek yang diserialisasi adalah objek bertipe
list; modifikasilah dengan membuat class baru beserta atribut-
atributnya untuk diserialisasikan ke dalam file.

Anda mungkin juga menyukai