Banner Java

Cara Mengkonversi (Casting) Obyek Di Java

Di dalam membuat program yang kompleks dengan bahasa Java, Anda tidak akan terlepas dari proses untuk mengkonversi (casting) tipe data. Misalnya, Anda bisa mengkonversi data dari tipe String ke tipe numerik tertentu, dari tipe numerik yang satu ke tipe numerik yang lain dan lain sebagainya. Pengkonversian tipe numerik dengan rentang nilai kecil ke tipe numerik dengan rentang nilai lebih besar disebut dengan widening, sedangkan perkonversian sebaliknya, dari rentang nilai besar ke rentang nilai lebih kecil, disebut dengan narrowing. Widening dapat dilakukan secara otomatis oleh kompiler Java.

Di pemrograman bahasa Java, sebuah kelas dapat menjadi tipe dari sebuah variabel. Variabel yang dideklarasikan dengan tipe kelas disebut dengan variabel acuan yang mengacu ke obyek yang dibuat dari kelas tersebut. Anda tentunya akan banyak menggunakan variabel semacam ini apabila sedang membuat program berpenampilan grafis.

Pengkonversian juga dapat lakukan untuk tipe kelas yaitu merubah tipe kelas satu ke tipe kelas yang lain. Syarat yang harus dipenuhi adalah kelas-kelas tersebut harus berada dalam hirarki turunan (inheritance hierarchy). Sebagai contoh dalam hirarki turunan Object - BangunDatar - PersegiPanjang - Balok, kelas Object adalah superclass dari kelas BangunDatar, kelas BangunDatar merupakan superclass dari kelas PersegiPanjang dan kelas PersegiPanjang merupakan superclass dari kelas Balok. Kelas Object mempunyai sifat paling umum sedangkan kelas Balok mempunyai sifat paling spesifik.

Polymorphism (baca artikel Memahami Konsep Polimorfisme (Polymorphism) Di Java) memperbolehkan untuk membuat obyek dari subclass untuk diberikan ke variabel acuan tipe superclass. Berikut ini adalah pernyataan untuk membuat obyek dari kelas PersegiPanjang untuk diberikan ke variabel obj dengan tipe kelas Object:

   Object obj = new PersegiPanjang();

Kelas PersegiPanjang adalah kelas turunan dari kelas Object, sehingga acuan ke obyek yang dibuat dari kelas PersegiPanjang dapat diberikan ke variabel obj dengan tipe Object yang mana merupakan superclassnya. Akan tetapi, Anda tidak diperkenankan untuk melakukan kebalikannya, memberikan variabel acuan obj ke variabel pp yang merupakan tipe dari kelas PersegiPanjang sebagaimana pernyataan berikut ini:

   PersegiPanjang pp = obj;

Saat dieksekusi, pernyataan tersebut akan menghasilkan error. Instance (obyek) dari subclass adalah juga instan dari superclass tetapi tidak bisa sebaliknya. Sebagai contoh, setiap persegi panjang adalah obyek, tetapi tidak setiap obyek adalah persegi panjang, bisa saja itu lingkaran, segitiga, bujur sangkar atau yang lain. Agar kompiler Java mengetahui bahwa obj adalah obyek dari kelas PersegiPanjang, Anda perlu mengkonversi secara eksplisit sebagaimana pernyataan di bawah ini.

   PersegiPanjang pp = (PersegiPanjang) obj;

Anda diperbolehkan untuk mengkonversi obyek dari subclass ke variabel dengan tipe superclass (upcasting) kerena instance dari subclass adalah juga instance dari superclass. Ketika mengkonversi instance (obyek) superclass ke variabel dengan tipe subclass (downcasting), Anda perlu melakukan perkonversian secara eksplisit.

Untuk memperbaiki mutu konten, Anda dapat berpartisipasi dengan cara melaporkan apabila menemukan kesalahan ketik, kata-kata rangkap, redaksi kurang pas (jelas), gambar pendukung tidak ada dan sebagainya melalui form Kontak Kami untuk mendapatkan perbaikan. Terima kasih atas kerjasamanya.

Hindro HindriantoHindro adalah pendiri sekaligus admin termasmedia.com dan topikit.com, blog online yang mengulas teknologi informasi. Dunia web mulai ditekuni tahun 2012 dengan mempelajari CMS Joomla dan Wordpress. Beberapa buku yang sekarang dipelajari antara lain PHP, HTML5, ASP.NET 4.5, JavaScript, CSS3, MySQL, Adobe Dreamweaver, Adobe Photoshop dan Adobe Flash.