Kegunaan SerialVersionUID pada Serialization

Serialization merupakan proses encoding object menjadi byte stream dan merekonstruksi object dari byte stream yang ada. Proses encoding object menjadi byte stream dikenal sebagai serialisasi. Sedangkan rekonstruksi object dari byte stream disebut sebagai deserialisasi.

Serialization biasa digunakan dalam suatu aplikasi yang membutuhkan komunikasi antar aplikasi. Sebagai narasi contoh, saya membuat website jual beli online dimana sistem pembayarannya menggunakan suatu payment gateway (sebut saja paygate A). Aplikasi website tersebut memiliki class Consument pada package com.test.payment. Paygate A juga memiliki class Consument di package com.test.payment.

Bisnis proses yang terbentuk yakni web jual beli mengirimkan object dari class Consument ke paygate A. Selanjutnya paygate A menterjemahkan object yang telah dikirim agar dapat menjadi class Consument milik dirinya sendiri (PayGate A). PayGate A akan melihat nama class, package, dan SerialVersionUID. Disini lah SerialVersionUID digunakan.

Jadi, SerialVersionUID merupakan kunci untuk menserialisasi dan deserialisasi object. Apabila SerialVersionUID pada website jual beli berbeda dengan SerialVersionUID pada PayGate A, maka class yang dikirim akan dianggap berbeda dan menyebabkan ClassCastException pada PayGate A.

Mengenai value dari SerialVersionUID dapat diisi dengan nilai berapa pun yang sesuai dengan dokumentasi API yang digunakan ataupun kesepatakan yang telah ditentukan oleh kedua pengembang aplikasi.

Sekian. Semoga bermanfaat.. 🙂

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 )

Google photo

You are commenting using your Google 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