This is blog for Developer

Kamis, 04 Mei 2017

Percobaan Comparable & Comparator

Percobaan Class Mahasiswa
Ini adalah Class Comparable.

Ini adalah Class Comparator Ipk.

Ini adalah Class Comparator Nrp.

Dan ini adalah Mainnya.

Output :


Percobaan Buah
Ini adalah Class Comparable.

Ini adalah Class Comparator.

Dan ini adalah Mainnya.

Output :
Share:

Generics

Generics

Pengertian Generics
Generics merupakan cara Java dalam melakukan generalisasi terhadap tipe data tanpa

mengurangi kemampuan Java dalam menjaga keamanan penggunaan tipe data. Pada object Box, kita bisa memasukkan sembarang object karena parameter pada method add() adalah Class Object, tapi pada saat mengambil object tersebut harus diubah sesuai dengan tipe dari object tersebut.


Cara mendeklarasikan Class Generics
Ubah class Box Non Generics menjadi class Box Generic. Pendeklarasian type generics
dengan mengubah public class Box() menjadi public class Box <T>
– T biasanya disebut parameter type formal (formal type parameter)
– T adalah type parameter yang akan diganti dengan tipe sebenarnya (Type dari T bisa berupa class, interface atau tipe variabel lainnya).
– T adalah nama dari type parameter.


Aturan Penamaan Type Parameter
Nama type parameter biasanya satu huruf dan huruf besar. Jenis nama tipe parameter
yang sering digunakan :
– E - Element (biasanya digunakan untuk Collection Framework)
– K – Key
– N – Number
– T - Type
– V - Value
– S,U,V dll. - 2nd, 3rd, 4th types


Generics pada Method
Pada contoh sebelumnya, kita mendefinisikan type parameter pada level class. Sebenarnya tipe variable ini juga dapat didefinisikan pada level method.
Contoh :
public class GenericMethodTest {
      public static<E> void printArray(E[] inputArray){
             for(E element : inputArray)
                   System.out.printf("%s",element);
                   System.out.println("");
     }
      public static void main(String[] args) {
            Integer[] intArray = {1,2,3,4,5} ;
            Double[] doubleArray = {1.1,2.2,3.3,4.4,5.5};
            Character[] charArray = {'J','A','V','A'};
            printArray(intArray);
            printArray(doubleArray);
            printArray(charArray);
      }
}


Subtyping
Jika B adalah suatu subtype dari A dan G adalah suatu tipe data generics, maka tidak berarti G<B> adalah subtype dari G<A>.


Generics pada Collection
•   List <E> myList ;
E disebut type variabel, variabel yang diganti dengan type. Jika E adalah class, maka kita
bisa melewatkan subclass E. Jika E adalah interface maka kita bisa melewatkan class yang mengimplementasikan E.



Type Parameter yang dibatasi
Jika kita ingin memberikan batasan type yang diperbolehkan untuk dilewatkan ke type
parameter. Contoh method dengan parameter number, hanya menerima object dari class
Number dan subclass. Hal ini yang disebut bounded type parameter.
•    Cara
<U extends Number>
•   Jika terdapat interface yang harus diimplementasikan gunakan &
<U extends Number & MyInterface>



Menggunakan Wildcard
Jika kita mendeklarasikan sebuah List<aType>, isi List adalah object dengan tipe aType,
maka kita bisa menyimpan di List object dengan tipe :
– Object dari aType
– Object dari subclass aType, jika aType adalah class
– Object dari class yang mengimplementasikan aType, jika aType adalah interface
Sedangkan List<?> berarti semua tipe data bisa masuk, terlalu luas bentuk lain :
List<? extends Number>

List<? extends T>
Share:

Comparable & Comparator

Comparable & Comparator


Pada kehidupan nyata, object-object sering dibandingkan, misal :
• Mobil Andi lebih mahal dibandingkan dengan mobil Budi
• Buku A lebih tebal dibandingkan dengan Buku B
• Usia Andi lebih muda dibandingkan dengan usia Intan
Dalam pemrograman object oriented, sering sekali ada kebutuhan untuk membandingkan
object-object dari class yang sama, misalkan membandingkan object untuk mengurutkan
data, pencarian data yang diurutkan berdasarkan umur. Pada kesempatan kali ini saya akan membahas bagaimana merancang object dari class agar bisa dibandingkan menggunakan interface java.lang.Comparable & java.util.Comparator.


Mengurutkan Object String

Untuk mengurutkan data String pada array gunakan Array.sort().

import java.util.Arrays;

public class ArrayString {
          public static void main(String args[]){
                   String animals[] = new String[6];
                           animals[0] = "snake";
                           animals[1] = "kangaroo";
                           animals[2] = "wombat";
                           animals[3] = "bird";
                     System.out.println("\nSEBELUM DISORTING");
                    for (int i = 0; i < 4; i++) {
                          System.out.println("animal " + i + " : " + animals[i]);
                     }
                   Arrays.sort(animals,0,4);
                         System.out.println("\nSETELAH DISORTING");
                   for (int i = 0; i < 4; i++) {
                           System.out.println("animal " + i + " : " + animals[i]);
              }
         }
   }


Output :

SEBELUM DISORTING
animal 0 : snake
animal 1 : kangaroo
animal 2 : wombat
animal 3 : bird
SETELAH DISORTING
animal 0 : bird
animal 1 : kangaroo
animal 2 : snake
animal 3 : wombat

Untuk mengurutkan data dalam ArrayList gunakan Collections.sort()

import java.util.ArrayList;
import java.util.Collections;

public class SortList {
           public static void main(String args[]){
                       ArrayList insects = new ArrayList();
                                 insects.add("mosquito");
                                 insects.add("butterfly");
                                 insects.add("dragonfly");
                                 insects.add("fly");

                        System.out.println("\nSEBELUM DISORTING");
                                 int size = insects.size();
                       for (int i = 0; i < size; i++) {
                              System.out.println("insect " + i + " : " + (String)
insects.get(i));
             }
                         Collections.sort(insects);
                              System.out.println("\nSETELAH DISORTING");
                         for (int i = 0; i < size; i++) {
                               System.out.println("insect " + i + " : " + (String)
insects.get(i));
           }
      }
}


Output :

SEBELUM DISORTING
insect 0 : mosquito
insect 1 : butterfly
insect 2 : dragonfly
insect 3 : fly
SETELAH DISORTING
insect 0 : butterfly
insect 1 : dragonfly
insect 2 : fly
insect 3 : mosquito



Membuat Object yang Kita Definisikan Sendiri

String dapat diurutkan, karena String mengimplementasikan interface Comparable.

public final class String extends Object implements Serializable,
Comparable<String>, CharSequence

Interface ini mempunyai sebuah method compareTo() yang menentukan bagaimana
cara membandingkan antara dua object dari class tersebut.
Bentuk methodnya:
public int compareTo(Object o)
Mehod compareTo() menerima Object, sehingga kita bisa memasukkan sembarang
object, tapi harus mempunyai tipe yang sama. Kalau object yang kita masukkan adalah
object yang berbeda maka melemparkan exception java.lang.ClassCastException. Return
value dari method compareTo()
• 0 jika dua object yang dibandingkan sama.
• Bilangan positif, jika object 1 lebih besar dibandingkan dengan object 2
• Bilangan negatif, jika object 1 lebih kecil dibandingkan dengan object 2
Bagaimana caranya supaya bisa menggunakan Array.sort() pada contoh kasus diatas. Pada class Mahasiswa implementasikan interface Comparable, berarti harus mengimplementasikan method compareTo(). Isilah method ini dengan tujuan untuk membandingkan object dari class Mahasiswa berdasarkan umur. Jangan lupa untuk mengcasting object menjadi object dari class Mahasiswa terlebih dahulu.

public class Mahasiswa implements Comparable {
                  private String nrp ;
                  private String nama ;
      public Mahasiswa(String nrp, String nama) {
                   this.nrp = nrp;
                   this.nama = nama;
          }
       public String getNama() {
                 return nama;
         }
      public void setNama(String nama) {
                this.nama = nama;
        }
      public String getNrp() {
                return nrp;
        }
      public void setNrp(String nrp) {
                this.nrp = nrp;
        }
     @Override
        public String toString() {
                  return "Mahasiswa{" + "nrp=" + nrp + " nama=" + nama + '}';
          }
        public int compareTo(Object o) {
             Mahasiswa m2 = (Mahasiswa) o ;
                       return this.nrp.compareTo(m2.nrp);
        }
 }


Output :

SEBELUM SORTING
[Mahasiswa{nrp=05 nama=Cahya}, Mahasiswa{nrp=04 nama=Rudi},
Mahasiswa{nrp=01 nama=Endah}, Mahasiswa{nrp=03 nama=Rita},
Mahasiswa{nrp=02 nama=Tika}]

SESUDAH SORTING
[Mahasiswa{nrp=01 nama=Endah}, Mahasiswa{nrp=02 nama=Tika},
Mahasiswa{nrp=03 nama=Rita}, Mahasiswa{nrp=04 nama=Rudi},
Mahasiswa{nrp=05 nama=Cahya}]



Penggunaan Class Comparator

Dengan mengimplementasikan interface Comparable kita hanya bisa menentukan satu
cara saja untuk membandingkan object. Kita masih memerlukan satu cara lagi untuk membandingkan object-object dari suatu class. Kita memerlukan comparator. Untuk membuat comparator, buat class yang mengimplementasikan interface java.util.Comparator, dan method compare().

public int compare(Object o1, Object o2)
Return value dari method compare()
• 0 jika dua object yang dibandingkan sama.
• Bilangan positif, jika object 1 lebih besar dibandingkan dengan object 2
• Bilangan negatif, jika object 1 lebih kecil dibandingkan dengan object 2

Class Comparator

public class NamaComparator implements Comparator {
          public int compare(Object o1, Object o2) {
          Mahasiswa m1 = (Mahasiswa) o1;
          Mahasiswa m2 = (Mahasiswa) o2;
                     return m1.getNama().compareTo(m2.getNama());
         }
    }


Penggunaan Comparator pada Array.sort()

public class TestMahasiswa2 {
             public static void main(String[] args) {
                   Mahasiswa dataMhs[] = {new Mahasiswa("05", "Cahya"),new\
Mahasiswa("04", "Rudi"),
                           new Mahasiswa("01", "Endah"),new Mahasiswa("03", "Rita"),new
Mahasiswa("02", "Tika")};
                           System.out.println("SEBELUMSORTING");
                           System.out.println(Arrays.toString(dataMhs));
                           Arrays.sort(dataMhs, new NamaComparator());
                           System.out.println("\nSESUDAH SORTING");
                           System.out.println(Arrays.toString(dataMhs));
        }
 } 

Output : Mengurutkan data mahasiswa berdasarkan Nama

SEBELUM SORTING
[Mahasiswa{nrp=05 nama=Cahya}, Mahasiswa{nrp=04 nama=Rudi},
Mahasiswa{nrp=01 nama=Endah}, Mahasiswa{nrp=03 nama=Rita},
Mahasiswa{nrp=02 nama=Tika}]
SESUDAH SORTING
[Mahasiswa{nrp=05 nama=Cahya}, Mahasiswa{nrp=01 nama=Endah},
Mahasiswa{nrp=03 nama=Rita}, Mahasiswa{nrp=04 nama=Rudi},
 Mahasiswa{nrp=02 nama=Tika}]
Share:

Map

Percobaan Map

Output :
Share:

Selasa, 02 Mei 2017

Collection

Collection


List
List adalah salah satu interface yang terdapat pada Java collection. Interface ini memiliki beberapa implementation class seperti LinkedList, Vector, ArrayList, AbstractList, dan lain-lain.

Salah satu ciri dari List adalah :objek-objeknya memiliki urutan tertentu untuk mengaksesnya (ordered) seperti dengan penggunaan nomor index atau dengan melakukan pencarian berdasarkan nilai tertentu dari objek. Urutan ini bisa berbeda dari tiap class yang mengimplementasikan interface List ini.Nomor index yang digunakan dimulai dari angka 0 (zero based index).Elemen-elemennya bisa memiliki objek yang sama (duplikat).

Contoh PenggunaanBerikut adalah kode contoh penggunaan method dasar beberapa class implementasi dari List dan hasil eksekusinya. Terlihat output yang dihasilkan sama semua karena implementasi method yang digunakan masih standar dan tidak spesifik ke tiap class.

Output :


Set
Set merupakan pengelompokan yang berupa model himpunan dimana setiap anggotanya harus unik.. Urutan maupun letak dari anggotanya tidaklah penting, hanya keberadaan anggotanya saja yang penting.
Contohnya :

Output :


Map
Perbedaaan mendasar map dengan collection yang lain, untuk menyimpan objek pada Map, perlu sepasang objek, yaitu key yang bersifat unik dan nilai yang disimpan. Untuk mengakses nilai tersebut maka kita perlu mengetahui key dari nilai tersebut.

Class-class yang mengimplementasikan Map adalah Hashtable,HashMap, LinkedHashMap. Untuk mengurutkan Map menggunakan interface SortedMap, class yang mengimplementasikan interface tersebut adalah TreeMap.
Contohnya :

Output :
Share: