0% menganggap dokumen ini bermanfaat (0 suara)
542 tayangan7 halaman

Modul 3 - Object Serialization

Modul ini membahas tentang serialisasi objek yang merupakan proses mengkonversi objek menjadi stream byte untuk tujuan penyimpanan, pengiriman melalui jaringan, atau transfer data. Kelas objek harus mengimplementasikan interface Serializable agar dapat diserialisasi. Konsep kunci adalah menuliskan objek ke stream keluaran dan membacanya kembali dari stream masukan menggunakan ObjectOutputStream dan ObjectInputStream. Contoh kode mendemonstrasikan serialisasi objek tunggal

Diunggah oleh

deeJafa
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)
542 tayangan7 halaman

Modul 3 - Object Serialization

Modul ini membahas tentang serialisasi objek yang merupakan proses mengkonversi objek menjadi stream byte untuk tujuan penyimpanan, pengiriman melalui jaringan, atau transfer data. Kelas objek harus mengimplementasikan interface Serializable agar dapat diserialisasi. Konsep kunci adalah menuliskan objek ke stream keluaran dan membacanya kembali dari stream masukan menggunakan ObjectOutputStream dan ObjectInputStream. Contoh kode mendemonstrasikan serialisasi objek tunggal

Diunggah oleh

deeJafa
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

3.

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

dapat diserialisasi. Semua

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

Menuliskan objek tertentu pada output stream. Semua variable


yang tidak ditandai dengan transient atau static akan
ditulis.

Contoh 3.1. Simple Serialization


Berikut ini contoh sederhana object serialization. Program ini dapat menyimpan sebuah objek
ke dalam sebuah file kemudian membaca dan menampilkan objek tersebut pada console. Pada contoh
ini,

objek

yang

diserialisasi

disimpan

pada

sebuah

file,

sehingga

konstruktor

ObjectOutputStream dihubungkan dengan FileOutputStream. Sedangkan untuk membaca

file dan melakukan deserialisasi, konstruktor ObjectInputStream dihubungkan dengan


FileInputStream.

17

Output:

Contoh 3.2. Serialization menggunakan ArrayList


Pada contoh sebelumnya (Contoh 3.1), telah ditunjukkan bagaimana melakukan serialisasi
terhadap sebuah objek dan menyimpan kedalam sebuah file. Berikut ini contoh lain dari serialisasi
terhadap class object dengan ArrayList. Terdapat tiga kelas pada contoh program ini, yaitu:
18

a. Participant.java. Kelas ini sebagai class object yang mengimplementasikan interface


Serializable.
b. SerializationApp.java. Kelas ini sebagai kelas utama yang memiliki main method untuk
menjalankan program. Inisiasi variable dan pemanggilan method untuk serialize dan
deserialize dilakukan pada kelas ini.
c. SerializationDemo.java. Method serialize dan deserialize dibangun dalam kelas ini.

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.

Output tampilan list object participants:

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

Output tahap serialisasi:

d. Tambahkan method deserialize pada kelas SerializationDemo. Hingga tahap


sebelumnya, program yang dibuat sudah mampu menyimpan objek serialisasi kedalam
sebuah file. Tahap ini menunjukkan cara untuk melakukan deserialize, yaitu membaca
dan merekonstruksi objek yang diserialisasi sebelumnya.
Berbeda dengan method serialize yang merupakan void method, method deserialize
merupakan method yang mengembalikan nilai dari list participant. Method deserialize
ini berisi baris program untuk membaca suatu file dan merekonstruksi byte stream dari
file tersebut kedalam bentuk objek. Object disimpan dalam sebuah list. Berikut ini baris
program untuk method deserialize.

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

Anda mungkin juga menyukai