Modul 3 - Object Serialization
Modul 3 - Object Serialization
MODUL 3
OBJECT SERIALIZATION
3.1 Pembahasan
Serialization adalah proses mengkonversi sebuah object menjadi stream (urutan bytes). Objek
yang telah diserialisasi dapat dikirim melalui jaringan, disimpan dalam memori, atau disimpan
kedalam suatu file. Sebaliknya, deserialization adalah proses merekonstruksi sebuah object yang
telah diserialisasi sebelumnya, yaitu mengembalikan urutan bytes kedalam bentuk objek.
Suatu objek agar dapat diserialisasi maka kelas object tersebut harus mengimplementasikan
interface java.io.Serializable atau java.io.Externalizable. Interface Serializable
tidak memiliki method untuk di-override tetapi harus diimplementasikan sebagai indikasi bahwa
kelas
objek tersebut
data atau
object pada
kelas
yang
mengimplementasikan interface Serializable dapat diserialisasi kecuali jika pada data atau object
tersebut ditambahkan keyword transient. Suatu tipe data primitive ataupun object yang ditandai
dengan keyword transient tidak akan diserialisasi. Sebagai contoh pada kelas UserAccount field
password tidak dapat diserialisasi.
public class UserAccount implements java.io.Serializable {
protected String username;
protected transient String password;
public UserAccount()
{
......
}
}
Keyword transient juga dapat digunakan untuk suatu field yang selalu diupdate, seperti
timer. Tidak perlu melakukan serialisasi pada field yang menyimpan data tampilan GUI. Tampilan
GUI dapat dibuat secara dinamis tanpa serialisasi.
Reading and Writing Object to Stream
Inti dari serialiasi adalah untuk menuliskan objek kedalam bentuk stream dan membacanya
kembali. Hal ini dapat dilakukan dengan menggunakan kelas java.io.ObjectOutputStream
dan java.io.ObjectInputStream. Kelas tersebut mampu menuliskan objek yang bisa
diserialisasi kedalam suatu output stream dan membaca kembali dari suatu input Stream.
Kelas ObjectInputStream digunakan untuk membaca sebuah serial objek dari sebuah
aliran byte. Sebalikanya, kelas ObjectOutputStream digunakan untuk melakukan serialisasi
sebuah objek menjadi sebuah aliran byte. ObjectOutputStream dapat dihubungkan dengan output
stream tertentu seperti sebuah file atau sebuah stream jaringan untuk transmisi melalui internet.
16
Konstruktor dan method yang paling sering digunakan pada kelas ObjectOutputStream dan
ObjectInputStream disebutkan pada Tabel 3.1.
Tabel 3.1 Konstruktor dan Method pada kelas ObjectInputStream dan ObjectOutputStream
Konstruktor/Method
ObjectInputStream(InputStream
input) throws java.io.IOException
public final Object readObject()
throws
java.io.OptionalDataException
java.io.IOException,
java.lang.ClassNotFoundException
ObjectOutputStream (OutputStream
output) throws java.io.
IOException
void writeObject (Object object)
throws java.io.IOException
java.io.InvalidClassException,
java.io.NotSerializableException
Diskripsi
Membuat membuat aliran input objek yang terhubung dengan
suatu input stream tertentu, seperti FileInputStream,
ByteArrayInputStream, dsb.
Digunakan untuk melakukan deserialization, yaitu untuk
membaca sebuah serial objek dari stream dan merekonstruksi
ke bentuk semula (kecuali bagi field transient dan static)
Membuat sebuah aliran output objek yang
menserialisasi objek kepada output stream tertentu.
mampu
objek
yang
diserialisasi
disimpan
pada
sebuah
file,
sehingga
konstruktor
17
Output:
Berikut ini langkah implementasi serialization menggunakan ArrayList. Tulis listing program
sesuai dengan tahapan berikut untuk memahami langkah implementasinya.
a. Buat class object dengan nama Participant serta implements Serializable. Deklarasikan
variable firstName, lastName berupa String dan age berupa integer. Buat kontruktor dan
setter-getter method. Untuk menampilkan data, lakukan override terhadap method
toString. Berikut ini listing program untuk kelas Participant:
19
b. Buat kelas SerializationApp. Pada main method, deklarasikan sebuah List dengan nama
participants yang akan menampung sejumlah object Participant. Tambahkan beberapa
object pada list participants dan tampilkan.
c. Buat method serialize pada kelas SerializationDemo. Method serialize berisi baris
program untuk melakukan serialisasi terhadap list object participant kemudian
menyimpan dalam sebuah file.
Method serialize tersebut dapat dipanggil dan dijalankan, dengan menambahkan baris
program berikut pada main method kelas SerializationApp:
20
Method deserialize tersebut dapat dipanggil dan dijalankan dengan menambahkan baris
program berikut pada main method kelas SerializationApp:
Output akhir:
21
3.2 Praktikum
1. Tulis dan jalankan Contoh 3.1 pada modul ini dan pahami tiap barisnya!
2. Tulis dan jalankan Contoh 3.2 sesuai langkah pada modul ini dan pahami tiap
barisnya!
3. Buat program semisal dengan Contoh 3.2, dimana data participant merupakan input
user dari keyboard.
3.3 Tugas
1. Sebutkan dan jelaskan penggunaan object Serialization pada pemrograman jaringan!
2. Buatlah program penyimpanan data mahasiswa dengan mengimplemantasikan
Object Serialization. Data mahasiswa terdiri dari: nim, nama, jurusan, dan asal. Data
diinputkan melalui keyboard. Terdapat pilihan menu insert, update, delete untuk
pengelolaan objek serta print dan save untuk menampilkan dan menyimpan objek
dari/kedalam suatu file.
22