Bagaimana Cara Serialisasi dan Deserialisasi Objek di Java

What is Serialization & Deserialization

Serialization adalah suatu proses mengubah objek menjadi byte stream, agar bisa disimpan dalam file, memori ataupun berguna dalam proses transmisi jaringan.

Sedangkan Deserialization adalah kebalikan dari proses Serialization.

Dalam proses serialization dan deserialization di Java, ada dua kelas yang sangat berperan penting yaitu :
  • kelas ObjectOutputStream.
  • kelas ObjectInputStream.
Selain itu, kelas yang mau di-serialization kan harus mengimplement interface java.io.Serializable.

Program Java Serialization

Untuk membuat program Java Serialization, hal pertama yang harus dilakukan adalah membuat kelas di Java yang mau di-serialization kan.

Di bawah ini adalah kelas Karyawan yang mau di-serialization kan.

Ingat !. Kelas yang mau di-serialisasi haru mengimplements java.io.Serializable.

Nama File : Karyawan.java

package com.nursalim.zone.java.serialization;

import java.io.Serializable;
import java.util.Date;

public class Karyawan implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = -5800843163467281306L;
	private String nama;
	private String gender;
	private String tempatLahir;
	private Date tanggalLahir;
	
	public Karyawan(String nama, String gender, String tempatLahir, Date tanggalLahir){
		this.nama = nama;
		this.gender = gender;
		this.tempatLahir = tempatLahir;
		this.tanggalLahir = tanggalLahir;
	}
	
	public String getNama() {
		return nama;
	}
	public void setNama(String nama) {
		this.nama = nama;
	}
	public String getGender() {
		return gender;
	}
	public void setGender(String gender) {
		this.gender = gender;
	}
	public String getTempatLahir() {
		return tempatLahir;
	}
	public void setTempatLahir(String tempatLahir) {
		this.tempatLahir = tempatLahir;
	}
	public Date getTanggalLahir() {
		return tanggalLahir;
	}
	public void setTanggalLahir(Date tanggalLahir) {
		this.tanggalLahir = tanggalLahir;
	}
	
	public String toString(){
		StringBuffer sb = new StringBuffer();
		sb.append("Karyawan");
		sb.append("{");
		sb.append("nama=").append(nama);
		sb.append(",gender=").append(gender);
		sb.append(",tempatLahir=").append(tempatLahir);
		sb.append(",tanggalLahir=").append(tanggalLahir);
		sb.append("}");
		return "";
	}
	
}

Langkah selanjutnya, adalah membuat kelas untuk proses mengubah objek karyawan menjadi byte stream. Anda bisa lihat contoh program di bawah ini.

Nama File : SerializationDemo.java

package com.nursalim.zone.java.serialization;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

public class SerializationDemo {
	public static void main(String[] args) {
		
		Karyawan karyawan = new Karyawan("Nursalim", "L", "Brebes",
				new java.util.Date());
		
		FileOutputStream fos;
		try {
			fos = new FileOutputStream("D:\\serialisasi\\karyawan.txt");
			ObjectOutputStream oos = new ObjectOutputStream(fos);

			oos.writeObject(karyawan);
			oos.flush();
			System.out.println("success");
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}
}

Output.

Coba compile dan jalakan program SerializationDemo.java, kalau tidak error, maka akan membuat file karyawan.txt seperti gambar dibawah ini.

Serialization dan Deserialization di Java

Program Java Deserialization

Di bawah ini adalah program Java untuk men-deserialisasi file karyawan.txt menjadi objek karyawan.

Nama File : DeserializationDemo.java

package com.nursalim.zone.java.serialization;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;

public class DeserializationDemo {
	public static void main(String[] args) throws ClassNotFoundException{
		ObjectInputStream in;
		try {
			in = new ObjectInputStream(new FileInputStream("D:\\serialisasi\\karyawan.txt"));
			  Karyawan karyawan=(Karyawan)in.readObject();
			  System.out.println(karyawan.getNama());
			  System.out.println(karyawan.getGender());
			  System.out.println(karyawan.getTempatLahir());
			  System.out.println(karyawan.getTanggalLahir());
			  in.close();  
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}  

	}
}

Output.

Coba anda compile dan jalankan program DeserializationDemo.java diatas, jika tidak ada error maka akan tampil output seperti gambar dibawah ini.

Serialisasi dan Deserialisasi Objek di Java


Sekian tutorial singkat tentang Bagaimana Cara Serialisasi dan Deserialisasi Objek di Java. Semoga bermanfaat & Happy Learning. :)

2 comments

terimakasih mas. sangat bermanfaat

Reply

Apa yang dimaksud dengan Byte stream pada bahasa bahasa Java?

Reply

Post a Comment