Artikel Terbaru

4 Tahap Menciptakan Elemen Menggunakan Method createElement() DOM

Pada dokumen html, method document.createElement() adalah method yang digunakan untuk menciptakan elemen html. Elemen ini ditentukan menggunakan elementName yang diciptakan sebelumnya, atau dari elemen html yang tidak diketahui, yang diciptakan jika elementName tidak ditentukan atau tidak dikenali.

Serialisasi dan Deserialisasi Java

Serialisasi adalah mekanisme mengkonversi state dari object menjadi sebuah byte stream. Deserialisasi adalah proses kebalikan dimana byte stream digunakan untuk membuat ulang object nyata pada memori. Mekanisme ini digunakan untuk membertahankan object yang digunakan seperti terlihat pada gambar 1.

Proses Serialisasi dan Deserialisasi pada Java
Gambar 1 Proses Serialisasi dan Deserialisasi pada Java

Byte stream yang diciptakan bersifat independen platform. Sehingga, serialisasi object dalam satu platform dapat dideserialisasi dalam berbagai platform berbeda.

Untuk membuat sebuah object Java dilakukan implement java.io.Serializable interfaceClass ObjectOutputStream mengandung method writeObject() untuk serialisasi object.

public final void writeObject(Object obj)
throws IOException

class ObjectInputStream mengandung method readObject() untuk deserialisasi pada object.

public final Object readObject()
throws IOException,
ClassNotFoundException

Keunggulan Serialisasi
  • satu, Menyimpan atau mempertahankan state dari object.
  • dua, Mengirim object antar jaringan seperti diperlihatkan pada gambar 2.

Keunggulan Serialisasi pada Java
Gambar 2 Keunggulan Serialisasi pada Java

Hanya object dari class itu sendiri yang dapat diserialisasi yang di-implement pada interface java.io.Serializable.

Serialisasi adalah marker interface yang tidak memiliki anggota data dan methodInterface ini digunakan untuk "markclass Java sehingga object dari class tersebut mungkin mendapatkan kemampuan tertentu. Contoh lainnya dari marker interface adalah: -Cloneable dan Remote.

Hal yang Perlu Diingat
  • satu, Jika sebuah parent class implement serialisasi interface maka class child tidak dibutuhkan untuk implement tetapi tidak berlaku sebaliknya.
  • dua, Hanya anggota non static yang disimpan pada proses serialisasi.
  • tiga, Anggota static data dan transient data yang tidak disimpan menggunakan proses serialisasi. Sehingga, jika tidak ingin disimpan nilai dari anggota data non static, maka buatlah ke dalam bentuk data transient.
  • empat, Object constructor tidak akan pernah dipanggil ketika object deserialisasi.
  • lima, Object asosiasi harus implement interface serialisasi.

Contoh:
class A implements Serializable{
// B also implements Serializable
// interface.
B ob=new B();}

SerialVersionUID
Runtime serialisasi menghubungkan nomor versi dengan setiap class serialisasi yang disebut SerialVersionUID, yang digunakan selama Deserialisasi untuk memperifikasi bahwa pengirim dan penerima dari object serialisasi memiliki class loaded untuk object-nya yang compatible dengan serialisasi terkait. Jika penerima memiliki sebuah class loaded untuk object yang memiliki UID berbeda, maka class pengirim yang sesuai (deserialisasi) akan memberikan hasil dalam InvalidClassException. Sebuah class serialisasi dapat mendeklarasikan UID nya sendiri secara eksplisit dengan cara pendeklarasian nama sebuah nama field dan pendeklarasiannya harus dalam bentuk staticfinal, dan dengan tipe data long.

yaitu ANY-ACCESS-MODIFIER static final long serialVersionUID=42L;

Jika sebuah class serialisasi secara eksplisit tidak mendeklarasikan sebuah serialVersionUID, maka runtime serialisasi akan mengkalkulasi salah satu nilai default untuk class tersebut berdasarkan berbagai aspek dari class, yang dideskripsikan dalam Spesifikasi Serialisasi Object Java. Bagaimanapun, sangat direkomendasikan bahwa semua class serialisasi secara eksplisit mendeklarasikan nilai serialVersionUID, sejak proses komputasi yang menjadi sangat sensitif terhadap detail class yang mungkin bervariasi tergantung implementasi kompilator, maka setiap perubahan dalam class atau penggunaan id berbeda mungkin akan berdampak pada serialisasi data tersebut. Juga direkomendasikan untuk menggunakan modifier private untuk UID sejak UID tidak terlalu berguna sebagai anggota pewarisan (inherit).

serialver
Serialver adalah perangkat yang terdapat pada JDK yang digunakan untuk mendapatkan serialVersionUID number untuk class Java. Dapat juga dijalankan perintah berikut untuk mendapatkan serialVersionUID

serialver [-classpath classpath] [-show] [classname...]

Contoh 1:

// Kode Java untuk

// serialisasi dan

// deserialisasi dari sebuah

// object Java

import java.io.*

 

class Demo implements java.io.Serializable 

public int a; 

public String b; 

 

/* Default constructor */

public Demo(int a, String b)

{this.a = a; 

this.b = b;} 

 

class Test

public static void main(String[] args

Demo object = new Demo(1, "MakandanMakan"); 

String filename = "file.ser"

  

/* Serialisasi */ 

try

// menyimpan object dalam

// sebuah file 

FileOutputStream file = new FileOutputStream(filename); 

ObjectOutputStream out = new ObjectOutputStream(file); 

   

// method untuk serialisasi

// object 

out.writeObject(object); 

   

out.close(); 

file.close(); 

   

System.out.println("Object"

+" telah diserialisasi"); 

  

catch(IOException ex){

System.out.println("IOExcep"

+"tion ditemukan");} 

 

Demo object1 = null

 

/* Deserialisasi */ 

try

// membaca object dari sebuah

// file 

FileInputStream file = new FileInputStream(filename); 

ObjectInputStream in = new ObjectInputStream(file); 

   

// method untuk deserialisasi

// dari object 

object1 = (Demo)in.readObject(); 

   

in.close(); 

file.close(); 

   

System.out.println("Object"

+" telah dideserialisasi "); 

System.out.println("a = " 

+object1.a); 

System.out.println("b = " 

+object1.b); 

  

catch(IOException ex){

System.out.println("IOExce"

+"ption ditemukan");} 

  

catch(ClassNotFoundException ex){

System.out.println("ClassN"

+"otFoundException"

+" ditemukan");} 

}

 

}

Output:
Object telah diserialisasi
Object telah dideserialisasi
a = 1
b = MakandanMakan

Contoh 2:

// Kode Java untuk

// serialisasi dan

// deserialisasi dari sebuah

// object Java

import java.io.*

 

class Emp implements Serializable

private static final long serialversionUID

129348938L

transient int a; 

static int b; 

String name; 

int age; 

 

/* Default constructor */

public Emp(String name, int age, int a, int b

this.name = name; 

this.age = age; 

this.a = a; 

this.b = b; 

 

 

public class SerialExample

 

public static void printdata(Emp object1

System.out.println("name = "

+object1.name); 

System.out.println("age = " 

+object1.age); 

System.out.println("a = " 

+object1.a); 

System.out.println("b = " 

+object1.b); 

 

public static void main(String[] args

{

Emp object = new Emp("ab"

,20, 2, 1000); 

String filename = "shubham.txt"

 

/* Serialisasi */

try

// menyimpan object ke dalam

// sebuah file 

FileOutputStream file = new FileOutputStream (filename); 

ObjectOutputStream out = new ObjectOutputStream (file); 

 

// method untuk serialisasi

// dari object

out.writeObject(object); 

 

out.close(); 

file.close(); 

 

System.out.println("Object"

+" telah melakukan"

+" serialisasi data sebe"

+"lum deserialisasi."); 

printdata(object); 

 

// nilai dari perubahan

// variabel static

object.b = 2000

 

catch (IOException ex

System.out.println("IOExce"

+"ption ditemukan");

 

object = null

 

/* Deserialisasi */ 

try

// membaca object dari sebuah

// file 

FileInputStream file = new FileInputStream (filename); 

ObjectInputStream in = new ObjectInputStream (file); 

 

// method untuk deserialisasi

// object 

object = (Emp)in.readObject(); 

 

in.close(); 

file.close(); 

System.out.println("Object"

+" telah melakukan"

+" deserialisasi data sete"

+"lahserialisasi."); 

printdata(object); 

 

/* System.out.println("z = " + object1.z); */

 

catch (IOException ex) { 

System.out.println("IOExcep"

+"tion ditemukan"); 

 

catch (ClassNotFoundException ex) { 

System.out.println("Class"

+"NotFoundException"

+" ditemukan"); 

}

 

}

 

}

Output:
Object telah melakukan serialisasi data sebelum deserialisasi
name = ab
age = 20
a = 2
b = 1000
Object telah melakukan deserialisasi data setelah serialisasi
name = ab
age = 20
a = 0
b = 2000

Komentar

  1. Apa yang dimaksud dengna serialisasi dan deserialisasi pada Java?

    BalasHapus
    Balasan
    1. Serialisasi adalah mekanisme untuk mengubah kondisi suatu object menjadi aliran byte. Sedangkan deserialisasi adalah proses sebaliknya dimana aliran byte digunakan untuk membuat ulang object java yang sebenarnya pada memori komputer.

      Hapus
  2. Apa fungsi dari serialisasi pada Java?

    BalasHapus
    Balasan
    1. Serialisasi pada Java memungkinkan untuk mengkonversi object ke streaming yang dapat dikirim melalui jaringan ataupun disimpan sebagai file pada database untuk digunakan nanti.

      Hapus
  3. Serialisasi biasanya digunakan ketika diperlukan untuk mengirim data user melalui jaringan atau disimpan dalam sebuah file.

    BalasHapus

Posting Komentar

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung. :D

Catatan: setiap iklan yang ditayangkan pada blog ini bersumber dari google adsense. Dengan jenis iklan yang dipilih adalah, sebagai berikut.

POIN 1, Iklan yang ditampilkan hanya boleh berbahasa indonesia atau berbahasa inggris. Tidak menerima jenis iklan dalam bahasa yang lain selain yang telah disebutkan karena blog ini dibuat untuk para pengunjung dari negara atau orang yang berbahasa Indonesia.

POIN 2, Setiap gambar yang ditampilkan pada iklan sifatnya tidak mengganggu para pengunjung yang melihat blog, atau tidak boleh menampilkan gambar yang bersifat menjijikkan atau merangsang rasa mual.

POIN 3, Jenis iklan yang dipasang bukan merupakan iklan spam, atau berisi dan mengarahkan pengunjung ke alamat yang berbahaya atau bersifat penipuan.

POIN 4, Segala bentuk iklan tunduk dan patuh pada ketentuan dari pihak Adsense google dan pemilik blog.

POIN 5, Segala jenis iklan yang tidak bertentangan dengan poin 1-4 yang dijelaskan sebelumnya, maka iklan tersebut dapat ditampilkan pada blog.

POIN 6, Jika ada pihak ketika yang ingin memasang iklan pada blog ini secara langsung, maka dapat menghubungi pemilik blog melalui kontak 0882 3218 8316.



~ Ikatlah Ilmu dengan Memostingkannya ~

Hot Artikel

Enkapsulasi pada Java

Perbedaan stdio.h dan stdlib.h pada Bahasa C

3 Jenis Utama Looping pada Java

Perbedaan Antara int main() dan int main(void) pada Bahasa C

Penjelasan Singkat tentang Konsep Asosiasi, Komposisi, dan Agregasi pada Java