Wilbert’s WebBlog

Java, Oracle, Serta Aktivitasku

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!

1-July-2008 - Posted by | Java

17 Comments »

  1. inflate deflate..

    marshall – demarshalling..

    itu istilahnya klo di bahasa pemorgaman lain..
    :D

    barusan ngejelasin ke temen gue masalah ini, seharusnya gue sertain link blog loe yah..

    hehehehhe

    Comment by Kiki Ahmadi | 2-July-2008 | Reply

  2. Huehehe.., gw cuman tau marshall – demarshalling, yang inflate deflate ga tau.. :D
    Bah, kenapa koq URL loe ga ada bro? Pengen liat blog loe juga… hehehe!

    Comment by wilbertliu | 2-July-2008 | Reply

  3. >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?? :)

    Comment by hendro | 2-July-2008 | Reply

  4. Huehehe.., akhirnya ada juga yang membaca dan teliti.. :D
    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.. :D
    hehehe….

    Comment by wilbertliu | 2-July-2008 | Reply

  5. cara masukin java code ke blog dengan tampilan seperti itu pake apa ya…?

    Comment by Niko | 22-July-2008 | Reply

  6. Wah, itu hanya bisa di wordpress jeck..,
    ga bisa di blogspot kayanya..

    aku hanya pakai tag koq..

    Comment by wilbertliu | 22-July-2008 | Reply

  7. tuh kan..

    belum diajarin pbo aja udah serialization..
    :D

    Comment by Kiki Ahmadi | 29-July-2008 | Reply

  8. Halah, kau aja bisa koq kk.., ngece sekali..

    Comment by wilbertliu | 29-July-2008 | Reply

  9. 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…

    Comment by Hendra Jaya | 6-August-2008 | Reply

  10. Kan serial itu cuman untuk memberi tanda aja.. :D

    Comment by wilbertliu | 6-August-2008 | Reply

  11. 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?

    Comment by Hendra Jaya | 7-August-2008 | Reply

  12. Setau saya.., serial itu digenerate secara random.. :D
    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… :D

    So, semua yang diserialisasi ataupun dideserialisasi tipenya adalah objek… :)

    Comment by wilbertliu | 7-August-2008 | Reply

  13. mmm… bagus

    Comment by arifanh | 26-November-2008 | Reply

  14. numpang lewat sambil baca2

    Comment by Aulia | 4-May-2009 | Reply

  15. mau nanya dunk Object Serialization bisa disimpan di database? kalau bisa bagaimana caranya?

    Comment by arrow_405™ | 7-January-2010 | Reply

  16. mantab,,

    Comment by Ecko | 14-June-2010 | Reply


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.