Object Serialization
Kalau mendengar tentang serialisasi objek, banyak orang menganggap ini susah dan lebih parahnya lagi banyak orang juga menganggap ini tidak ada gunanya..
Sebenarnya, dengan Object Serialization, lahirlah banyak teknologi seperti Persistence, Remote Method Invocation, sampai ke Enterprise Java Beans.. Lalu sebenarnya ini makanan apa sih? hehehe… :p
Begini, Object Serialization itu menyimpan objek ke dalam suatu file tertentu, sehingga suatu waktu jika ingin diambil kembali state-state nya, bisa dilakukan dengan mudah.. Ya gampangnya memahami begitu deh, daripada saya kasih pengertian yang “mbulet”, nanti pada ga bisa ngerti semua..
Ok, langsung aja yah, ini code nya..
package org.wilbert;
import java.io.Serializable;
public class Book implements Serializable
{
private static final long serialVersionUID = -5066330228510894457L;
private String title;
private int page;
private String author;
private short rating;
public Book() {}
public Book(String title, int page, String author, short rating)
{
this.title = title;
this.page = page;
this.author = author;
this.rating = rating;
}
public String getTitle()
{
return title;
}
public void setTitle(String title)
{
this.title = title;
}
public int getPage()
{
return page;
}
public void setPage(int page)
{
this.page = page;
}
public String getAuthor()
{
return author;
}
public void setAuthor(String author)
{
this.author = author;
}
public short getRating()
{
return rating;
}
public void setRating(short rating)
{
this.rating = rating;
}
}
Itu tadi source sebuah POJO saja, dan sekarang ini class main nya..
package org.wilbert.main;
import java.io.*;
import org.wilbert.*;
public class Main
{
public static void main(String[] args)
{
Book[] books = new Book[3];
books[0] = new Book("Pintar Java Vol 1", 807, "Seseorang", (short) 5);
books[1] = new Book("Java Server Pages", 230, "Orang Indonesia", (short) 5);
books[2] = new Book("Enterprise Java", 1250, "Belum Ada", (short) 0);
try
{
//object serialization
ObjectOutputStream objWrite =
new ObjectOutputStream(new FileOutputStream("objFile.wil"));
objWrite.writeObject(books);
objWrite.close();
//object deserialization
ObjectInputStream objRead =
new ObjectInputStream(new FileInputStream("objFile.wil"));
for(Book b : (Book[]) objRead.readObject())
{
System.out.println("Title : " + b.getTitle());
System.out.println("Page : " + b.getPage());
System.out.println("Author : " + b.getAuthor());
System.out.println("Rating : " + b.getRating());
System.out.println();
}
objRead.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
Di artikel berikutnya saya akan membuat pengembangan dari Object Serialization ini, yaitu dengan ide bahwa objek-objek sebenarnya bisa diletakkan di komputer yang berbeda tetapi terhubung dengan jaringan, dan objek-objek tersebut dapat berkomunikasi..
Tunggu ya artikel berikutnya tentang Remote Method Invocation (RMI)!
Yang terakhir, jika anda ingin mengunduh project nya, saya sediakan link di sini.. Project ini dapat dibuka melalui eclipse.. Selamat mencoba!

















inflate deflate..
marshall – demarshalling..
itu istilahnya klo di bahasa pemorgaman lain..
barusan ngejelasin ke temen gue masalah ini, seharusnya gue sertain link blog loe yah..
hehehehhe
Huehehe.., gw cuman tau marshall – demarshalling, yang inflate deflate ga tau..
Bah, kenapa koq URL loe ga ada bro? Pengen liat blog loe juga… hehehe!
>Object Serialization itu menyimpan objek ke dalam suatu file tertentu
Apa bener Object yang serializable pasti disimpan dalam suatu file?? Kalo sebuah object saya kirim lewat soket atau rmi apa harus disimpan dalam file??
Huehehe.., akhirnya ada juga yang membaca dan teliti..
Ya kan dah dibilang di atas pak, “daripada saya kasih pengertian yang “mbulet”
Jelas berbeda kalau lewat RMI or Socket… hehehe!
Itu kan tutorial buat yang baru mau belajar pak.., basic dulu.. hehehe!
Nanti baru ngomong lagi tentang RMI..
hehehe….
cara masukin java code ke blog dengan tampilan seperti itu pake apa ya…?
Wah, itu hanya bisa di wordpress jeck..,
ga bisa di blogspot kayanya..
aku hanya pakai tag koq..
tuh kan..
belum diajarin pbo aja udah serialization..
Halah, kau aja bisa koq kk.., ngece sekali..
Serialization kalo gak salah itu semacam proses menyimpan object yang ada di dalam heap ke secondary memory. Secondary memory sih biasanya disc, jadi biasanya object yang di-serialized itu disimpan ke dalam file.
Mas Wilbert, Serial UID yang ada di source code itu digenerate oleh Eclipse kan? Yang saya bingung, kalo misalnya kita pake default Serial UID (yaitu 1L), proses serialization tetap berjalan…
Kan serial itu cuman untuk memberi tanda aja..
mmm… kayaknya enggak deh. Fungsinya lebih dari sekedar pemberi tanda. Kalo cuman sekedar untuk memberi tanda, pada saat deserialization (nge-load dari file) bagaimana mungkin JVM mengenali bahwa object itu adalah object Book?
Setau saya.., serial itu digenerate secara random..
Nah, kenapa bs dikenali kalau itu object book??
Sebenarnya begini, hasil dari deserialisasi semuanya berupa objek.., dan supaya dikenali bahwa itu adalah objek book, maka harus dicasting…
Hehe, coba liat program di atas, ada casting nya kan…
So, semua yang diserialisasi ataupun dideserialisasi tipenya adalah objek…
nah masalahku yang di jug kemaren mirip2 ini bert.. tapi gimana kalo dikirim lewat socket kayak gini …
http://www.google.co.id/url?sa=t&ct=res&cd=1&url=http%3A%2F%2Finf.uajy.ac.id%2F~kusnadi%2Fwp-content%2Fuploads%2Ftutorial1.pdf&ei=OwalSJCxJoiy6gOlm_GyAQ&usg=AFQjCNHikTb3batCoUzFpLGz58w3SvWUFQ&sig2=zB1wx3BWus04JkHv3Ht-kA
mmm… bagus
numpang lewat sambil baca2
mau nanya dunk Object Serialization bisa disimpan di database? kalau bisa bagaimana caranya?
mantab,,