Rabu, 14 Desember 2011

Pemrograman Generik pada Java


Seperti pada C++, Java adalah bahasa bertipe kuat. Akan tetapi, pemrograman generik pada Java lebih dekat dengan Smalltalk daripada C++. Seperti telah dijelaskan sebelumnya, pemrograman generik pada Java berdasarkan pada kelas Object yang merupakan kelas super dari semua kelas. Hingga tingkat tertentu, ini membuat Java mirip dengan Smalltalk : Struktur data yang didesain untuk menampung Object bisa digunakan untuk menyimpan data kelas apapun. Kita tidak perlu membuat template atau fitur pada bahasa pemrograman lain untuk mendukung pemrograman generik.

Tentunya, tipe primitif, seperti integer, bukan objek pada Java, dan karenanya tidak bisa disimpan dalam tipe data generik. Dan sebenarnya, tidak ada cara untuk melakukan pemrograman generik dengan tipe data primitif pada Java. Pendekatan Smalltalk tidak bisa diterapkan pada Java kecuali untuk objek, dan pendekatan C++ tidak tersedia pada Java.

Lebih jauh, subrutin generik lebih bermasalah pada Java daripada Smalltalk atau C++. Pada Smalltak, subrutin dapat dipanggil dengan parameter bertipe apapun, dan akan bekerja asalkan operator yang digunakan pada subrutin didefinisikan pada parameternya.

Pada Java, parameter suatu subrutin harus bertipe tertentu. Dan subrutin hanya bisa menggunakan operasi untuk tipe itu saja. Subrutin dengan parameter Object bisa digunakan untuk objek tipe apa saja, akan tetapi subrutin hanya bisa menggunakan operasi pada kelas Object saja, dan sebenarnya hanya sedikit operasi pada kelas Object! Misalnya tidak ada operasi pembanding pada kelas Object, jadi kita tidak bisa membuat algoritma pengurutan generik. Kita akan lihat bagaimana Java menyelesaikan masalah ini.

Karena masalah seperti ini, beberapa orang menyatakan bahwa Java tidak mendukung pemrograman generik secara keseluruhan. Beberapa orang lain tidak setuju. Akan tetapi, tetap saja ini tidak menghambat Java untuk digunakan secara luas.


- Koleksi dan Map

- Algoritma Generik

- Iterator

- Kesamaan dan Perbandingan

- Kelas Pembungkus

1 komentar: