Users  

   

Hobi  

   

Statistik  

Visitors
246
Articles
59
Articles View Hits
417216
   

User Online  

We have 63 guests and no members online

   

Generic Class

Details

apa itu generic.? mengapa generic.?

Bagaimana caranya menghindari "reinventing the wheel", atau membuat kembali sesuatu yang sudah ditemukan? Banyak struktur data dan algoritma,  sayangnya, algoritma dan data stuktur ini juga diprogram dan diprogram ulang oleh profesional komputer. Mereka menghabiskan waktu yang tidak perlu untuk memrogram ulang sesuatu yang sudah ada, bukannya membuat sesuatu yang lebih inovatif dan kreatif.

 

Programmer yang perlu menggunakan list atau pohon biner, seharusnya tidak perlu lagi membuat data struktur ini dari awal. Struktur data ini sudah banyak dimengerti dan diprogram ribuan kali sebelumnya. Masalahnya adalah bagaimana agar struktur data yang tangguh tersedia dan siap digunakan oleh programmer. Di bagian ini kita akan melihat bagaimana Java menyelesaikan masalah ini.

Pemrograman generik adalah penulisan kode yang bisa digunakan oleh berbagai macam tipe data. Kode yang ditulis di sana untuk array dinamis integer hanya bisa bekerja untuk tipe data int. Akan tetapi kode array dinamis untuk double, String, atau tipe data lainnya hampir sama. Akan sangat tidak nyaman apabila kita harus mengkopi kodenya berulang-ulang untuk tipe data yang berbeda-beda..

bingung ya..?? sama saya juga bingung :) , contoh nya seperti ini, saya punya ingin punya banyak pacar, nah saya ingin pacar saya hanya berjenis kelamin perempuan ( ya gak mungkin donk laki-laki), anggap hati saya itu sebuah class, dan pacar saya (jenis nya perempuan ya) kita anggap sebuah objek, kan "hati" ingin punya banyak pacar, dan ingin diisi banyak, dari sekian banyak pacar saya itu , saya ingin mempunyai kriteria masing-masing, kita anggap ini sebuah tipe.. sekarang mari kita implementasikan..

public class Hati <T> {
    private T data;
 public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }
   
}

 

class diatas untuk menampung semua tipe data (pacar) saya,

lihat lambang " <T> ", itu adalah lambang tipe generic, lambang itu bisa diisi sebuah Object, ingat.... OBJECT, bukan tipe data primitif, jadi kalau ingin memasukan tipe data, kita masukan tipe data bawaan java saja, seperti int kita ganti Integer, string kita ganti String, double kita ganti Double, dst.. cari tau sendiri tipe data primitif itu apa.?? kalau tidak tau, silahkan tanya cepot.. :)

sekarang kita buat sebuah class, (pacar), saya ingin mempunyai umur 20, jadi kita buat class yg mempunyai property integer

public class pacar1 {
    int umur;

    public int getUmur() {
        return umur;
    }

    public void setUmur(int umur) {
        this.umur = umur;
    }
   
}

pacar saya yg 1 mempunyai tipe data umur (integer)

sekarang kita buat class kedua yg mempunyai tipe data string

 

public class pacar2 {
  String nama;

    public String getNama() {
        return nama;
    }

    public void setNama(String nama) {
        this.nama = nama;
    }
 
}

sekarang kita implementasikan kesebuah method main

public class Dmain {
    public static void main(String[] args) {
        Dgeneric<String> p1=new Dgeneric<String>();// tipe T kita ganti dengan sebuah objek string
        Dgeneric<Integer> p2=new Dgeneric<Integer>();// tipe T kita ganti dengan sebuah objek integer
        p1.setData("angel");
        System.out.println("String pada class generic = "+p1.getData());
        p2.setData(20);
        System.out.println("Integer pada class generic = "+p2.getData());
       
    }
}

setiap kita mengisi sebuah objek untuk mengganti T, kita jg harus memasukan sebuah objek itu berdasarkan tipenya, kalau String, berarti kita harus memasukan String juga, tidak bisa integer atau lainnya...

sebenarnya cara diatas kita pakai untuk sebuah class, bagaimana dengan method.??

generic dalam method sebenarnya hanya berlaku untuk method tsb, tidak berlaku dalam method yang lain walaupun dalam 1 class,

contoh :

 

public class genericMethod {
    public <T> void tampilArray(T[] a){
        for(T fvck : a){
            System.out.println("Nilai "+fvck);
        }
    }
}
class main{
    public static void main(String[] args) {
      Integer[] in={1,2,3,4,5};
      Character[] c={'f','u','c','k'};
      //buat objek dari class genericMethod
      genericMethod obj=new genericMethod();
        System.out.println("menampilkan integer");
      obj.tampilArray(in);
        System.out.println();
        System.out.println("menampilkan character");
        obj.tampilArray(c);
    }
}

 

dari method diatas, pertama kita buat sebuah method bertipe generic, ada yg perlu diingat, penulisan <T> harus di letakkan sebelum nilai kembalian, contoh nya ( <T> void tampil(), <T> String coba(), dan lainnya),..

dari penjelasan saya diatas semoga pembaca mengerti sedikit tentang apa  itu generic class di java, Generics banyak digunakan dalam library collections, dengan menggunakan generics kita bisa menentukan tipe dari isi collections..

Membuat aplikasi yang cukup kompleks tanpa adanya collection yang baik akan sangat repot, banyak hal harus dilakukan hanya untuk membuat collection yang memenuhi kebutuhan kita. Untungnya dalam JDK terdapat banyak sekali collection yang sudah tersedia, kita hanya perlu mempelajari API tersebut dan memahami kapan saat terbaik untuk menggunakan collection API tersebut, bukan cari tahu bagaimana buatnya, karena kita hanya pemakai, bukan pengembang library, jadi ya pakai saja, hehehe
Dalam Java collection API ada beberapa interface kunci yang merupakan dasar dari collection
yang ada dalam JDK. Interface-interface itu antara lain :
Collection, Set, SortedSet, List, Map, SortedMap, Queue, NavigableSet, NavigableMap..

untuk lebih jelasnya nanti akan saya jelaskan lagi dikesempatan yang akan datang (insya Allah),

oke sekian dari saya, semoga membantu...

Comments   

 
0 #1 Ahmad 2014-06-11 22:43
expert banget ilmunya...
Quote
 

Add comment


Security code
Refresh

   

Indeks  

   
© ALLROUNDER