High Fashioners Issue # 2 | Page 344

J. E. N. I.
12.12 Serialisasi
Java Virtual Machine( JVM) mendukung kemampuan untuk membaca atau menulis sebuah object ke bentuk stream. kemampuan ini disebut dengan serialisasi, proses " flattening " sebuah object sehinnga data tersebut dapat disimpan ke beberapa penyimpanan permanen atau dilewatkan ke object lain melalui class OutputStream. Ketika menulis sebuah object, ini merupakan hal yang penting bahwa keadaan tersebut sudah tertulis dan telah diserialisasi dari setiap objectnya dapat dibangun kembali sebagaimana dtaa tersebut dibaca. Menyimpan sebuah objectke beberapa tipe penyimpanan permanen yang dikenal sebagai persistence.
Stream yang digunakan untuk deserialisasi dan serialisasi secara berurutan adalah class ObjectInputStream dan ObjectOutputStream.
Untuk memungkinkan sebuah object diserialisasi( sebagai contoh dapat disimpan dan diurutkan), Class tersebut harus mengimplementasikan interface yang dapat diserialisasi. Class ini seharusnya juga menyediakan default constructor atau sebuah constructor tanpa argumen. Satu hal yang baik mengenai kemampuan untuk melakukan serialisasiyang dapat diturunkan, yang berarti kita tidak memiliki implementasi serialisasi pada setiap class. Ini berarti mengurangi pekrjaan untuk programmer. Anda hanya dapat mengimplementasikan serialisasi sekali sepanjang hirarki class.
12.12.1 Kata Kunci transient
Ketika suatu object diserialisasi, tempat hanya disediakan untuk data object. Method dan Constructor bukan merupakan bagian dari stream serialisasi. Ada beberapa object yang tidak diserialisasi kaena data yang diwakilinya berubah secara konstan. Beberapa contoh dari setiap object adalah object FileInputStream dan Object Thread. Sebuah NotSerializableException dijalankan jika operasi serialisasi gagal karena beberapa alasan.
Jangan berputus asa. Sebuah class yang mengandung object yang tidak diserialisasi dapat tetap diserialisasi jika penunjuk ke object non-serialisasi ditandai dengan katakunci transient. Pertimbangkan contoh berikut ini:
class MyClass implements Serializable { transient Thread thread; // try removing transient int data; /* beberapa data yang lain */
}
Kata kunci transient mencagah data dari proses serialisasi. Object instantiasi dari class ini sekarang dapat ditulis ke sebuah OutputStream.
12.12.2 Serialisasi: Menulis Suatu Object Stream
Untuk menulis object ke sebuah stream, Anda perlu menggunakan classObjectOutputStream class dan methodnya yaitu method writeObject. Method writeObject memiliki tanda sebagai berikut:
public final void writeObject( Object obj) throws IOException dimana obj adalah object yang ditulis ke stream.
Pengenalan Pemrograman 2 16