Belajar Struktur data MAP di java

 
 

Daftar Materi Java

struktur data MAP di java adalah struktur data yang menyimpan data dengan mekanisme key and value. tidak seperti List atau Set yang tidak memiliki key. misalnya seperti pada gambar berikut

map

struktur data map

pada gambar terlihat pasangan antara key dan value. ketika ingin mengambil data nama maka kita akan gunakan key “Nama” dan seterusnya. selain menyimpan data String, MAP juga dapat menyimpan data berupa Object lain sesuai keperluannya. misalnya saya ingin menyimpan data kota dari beberapa provinsi. agar dapat berpasangan sesuai dengan datanya maka struktur data yang cocok adalah MAP. berikut ini contohnya

Struktur data map

Struktur data map

pada gambar diatas terdapat struktur data map dengan key berupa String dan valuenya berupa List atau Set. hal ini akan memudahkan ketika kita ingin mengambil data kota yang berada di jawa timur dengan menggunakan key “Jawa Timur”.

lebih jauh nya kita akan lihat code berikut ini untuk contoh penggunaannya

1. contoh deklarasi / pembuatan object MAP

import java.util.HashMap;
import java.util.Map;
import java.util.Set;</code>

public class MapTest {
public static void main(String[] args) {
Map mapObject = new HashMap<String,String>();
}
}

2. cara input data string ke map

import java.util.HashMap;
import java.util.Map;
import java.util.Set;</code>

public class MapTest {
public static void main(String[] args) {
Map mapObject = new HashMap<String,String>();
mapObject.put("Nama", "Lahardi Alkawero");
}
}

3. cara ambil data dari map

public class MapTest {
	public static void main(String[] args) {
		Map<String,String> mapObject = new HashMap<String,String>();
		mapObject.put("Nama", "Lahardi Alkawero");
		String nama = mapObject.get("Nama");
		System.out.println(nama);		
	}
}

4. cara input data ke Map berupa keynya String dan valuenya List

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class MapTest {
	public static void main(String[] args) {
		Map<String,List<String>> mapObject = new HashMap();
		
		List<String> kotaDiJaBar = new ArrayList<String>();
		kotaDiJaBar.add("Bogor");
		kotaDiJaBar.add("Bandung");
		kotaDiJaBar.add("Depok");
		
		List<String> kotaDiJaTim = new ArrayList<String>();
		kotaDiJaTim.add("Malang");
		kotaDiJaTim.add("Banyuwangi");
		kotaDiJaTim.add("Madiun");
		
		List<String> kotaDiJaTeng = new ArrayList<String>();
		kotaDiJaTeng.add("Semarang");
		kotaDiJaTeng.add("Surakarta");
		kotaDiJaTeng.add("Tegal");
		
		mapObject.put("Jawa Barat", kotaDiJaTeng);
		mapObject.put("Jawa Tengah", kotaDiJaBar);
		mapObject.put("Jawa Timur", kotaDiJaTim);
				
	}
}

5. cara ambil data list dengan key string dari MAP

package alka.map;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class MapTest {
	public static void main(String[] args) {
		Map<String,List<String>> mapObject = new HashMap();
		
		List<String> kotaDiJaBar = new ArrayList<String>();
		kotaDiJaBar.add("Bogor");
		kotaDiJaBar.add("Bandung");
		kotaDiJaBar.add("Depok");
		
		List<String> kotaDiJaTim = new ArrayList<String>();
		kotaDiJaTim.add("Malang");
		kotaDiJaTim.add("Banyuwangi");
		kotaDiJaTim.add("Madiun");
		
		List<String> kotaDiJaTeng = new ArrayList<String>();
		kotaDiJaTeng.add("Semarang");
		kotaDiJaTeng.add("Surakarta");
		kotaDiJaTeng.add("Tegal");
		
		mapObject.put("Jawa Barat", kotaDiJaTeng);
		mapObject.put("Jawa Tengah", kotaDiJaBar);
		mapObject.put("Jawa Timur", kotaDiJaTim);
		
		Set<String> keys = mapObject.keySet();
		
		for(Object o : keys){
			String key = (String) o;
			List<String> value = mapObject.get(key);
			System.out.println(key+" = "+value);
			
		}
		
				
	}
	
	}

oke bro, kira – kira begitu sedikit contoh penggunaan struktur data map.

Daftar Materi Java

Membuat kolom JTable menjadi checkbox untuk tipe data boolean

Secara default tipe semua kolom dalam Jtable adalah Object yang akan menampilkan semua isinya berupa hasil dari toString() dari data object yang ada dalam table. Sekarang saya ingin menampilkan data boolean berupa checkbox yang akan tercentang jika true dan tidak jika false. Jika saya menggunakan DefaultTableModel yang tidak mengOverride method untuk kebutuhan spesifik seperti yang saya mau maka table saya akan menampilka data string true / false seperti ini

Kolom Menikah menunjukkan apakah dia menikah atau belum dan hasilnya adalah String true

Ini adalah kode yang saya pakai untuk membuat table di atas, hanya potongan kode yang penting saja yang saya post.

String[] kolom = {“Menikah”};

DefaultTableModel m = new DefaultTableModel(kolom, 0);

m.addRow(new Object[]{true});

tbl.setModel(m);

tbl adalah nama variable dari Jtable yang saya buat.

yang saya inginkan adalah seperti ini

Maka saya harus ubah kodenya menjadi seperti ini

String[] kolom = {“Menikah”};

DefaultTableModel m = new DefaultTableModel(kolom, 0){

Class[] ColumnTypes = {Boolean.class};

@Override

public Class<?> getColumnClass(int columnIndex) {

return ColumnTypes[columnIndex];

}

};

m.addRow(new Object[]{true});

tbl.setModel(m);

By alka Posted in GUI

gunakan struktur data Set untuk menyimpan data Unik


Daftar Materi Java SE

jabat erat, Assalamualaykum 🙂

Set adalah sebuah interface di java dan struktur data set dalam java gambarannya kurang lebih mirip seperti List pada materi sebelumnya, hanya saja dia menjamin keunikan dari data – data yang ada didalamnya. langsung saja saya akan menggunakan kelas HashSet yang merupakan salah satu kelas implementasi dari interface Set.

public class HashSetTes {
    public static void main(String[] args){
        HashSet<Integer> set = new HashSet<>();
        set.add(2);
        set.add(5);
        set.add(1);
        set.add(2);
        set.add(3);
        System.out.println(set);
    }
}

maka kita tidak akan menemukan ada lebih dari satu object yang sama. padahal saya coba add() angka 2 sebanyak dua kali.  Struktur data set ini tidaklah urut jika menggunakan HashSet, misalkan kita menggunakan angka random sebanyak 100 kali maka kan terlihat bahwa data yang di inputkan tidak akan diurutkan dari besar ke kecil atau sebaliknya.

 public static void main(String[] args){
        HashSet<Integer> set = new HashSet<>();
        Random r = new Random();

        for (int i = 0; i < 100; i++) {
            set.add(r.nextInt(100));
        }

        System.out.println(set);
    }

jika ingin menggunakan struktur data yang unik dan terurut gunakanlah tukang urut, eh ?? gunakanlah TreeSet. seperti ini contohnya

public static void main(String[] args){
        TreeSet<Integer> set = new TreeSet<>();
        Random r = new Random();

        for (int i = 0; i < 100; i++) {
            set.add(r.nextInt(100));
        }

        System.out.println(set);
    }

ya kira – kira seperti itulah penggunaan Struktur data Set. jika anda ingin menyimpan object dari kelas buatan anda sendiri maka anda perlu meng-override  dulu method equals() dan hashcode() agar kita dapat tentukan bagaimana kah kedua object buatan kita itu dipandang sama apakah dari NIM, NAMA, Telpon atau yang lainnya.

semoga ada manfaatnya, jika ada pertanyaan atau saran silahkan comment 🙂


Warm Regards
Lahardi Alkawero
mari berbagi meskipun sedikit, kalo berguna alhamdulillah 🙂


Daftar Materi Java SE

Menggunakan List, ArrayList dan generic di java

Daftar Materi Java SE

jabat erat, Assalamualaykum 🙂

kali ini saya akan membahas sedikit tentang penggunaan List, tepatnya ArrayList. di Java, List adalah sebuah Interface yang memudahkan kita untuk membuat struktur data yang merepresentasikan sebuah lis. lebih mudahnya seperti wadah untuk menyimpan data yang berupa object yang data itu dapat bertambah kapasitasnya sesuai jumlah data.  ciri – ciri dari list adalah :

  • data – datanya tidak unik, object  yang sama diizinkan dalam satu wadah.
  • defaultnya tidak terurut, tapi bisa di urutkan sesuai keperluan
  • Teratur, memiliki nomer index berdasarkan urutan masuknya si object

nah ArrayList adalah sebuah kelas yang merupakan turunan dari interface List. sehingga memiliki ciri yang dimiliki oleh List namun lebih mudahnya dia seperti array yang ukurannya flexible sesuai jumlah data di dalamnya, nah sekarang kita coba buat dan mainkan kodenya.

1. Membuat ArrayList

untuk memudahkan, saya langsung saja membuat kelas test yang memiliki method main

public class ArrayListTest {
 public static void main(String[] args) {
 ArrayList kumpulanAngka = new ArrayList();
 }
}

2. Memasukkan data ke ArrayList

memasukkan datanya juga mudah, cukup gunakan method add(Object o).

public static void main(String[] args) {
        ArrayList kumpulanAngka = new ArrayList();

        kumpulanAngka.add(1);
        kumpulanAngka.add(2);
        kumpulanAngka.add("a");
        kumpulanAngka.add("b");

    }

atau jika menggunakan looping seperti ini

public static void main(String[] args) {
        ArrayList kumpulanAngka = new ArrayList();
        for(int i=1; i<11; i++){
          kumpulanAngka.add(i);
         }
}

dapat dilihat bahwa data yang dimasukkan bisa macam2 yang penting adalah Object, bagaimana jika kita ingin membatasi bahwa isinya hanya angka saja atau huruf saja atau Mahasiswa saja, nah nanti akan kita bahas di bagian list dengan generic
3. Mengambil data ke ArrayList
setelah kita tau bagaimana menginput data ke List, kita perlu tau juga cara mengambilnya, ada beberapa cara mengambilnya yaitu dengan menggunakan index, atau langsung menggunakan iterasi. sekarang kita coba untuk menggunakan index

 public static void main(String[] args) {
        ArrayList kumpulanAngka = new ArrayList();
        for(int i=1; i<11; i++){
         kumpulanAngka.add(i);
        }

        int angka = (int) kumpulanAngka.get(1);
        System.out.println("angka yang diambil : "+angka);

    }

mungkin ada yg bertanya kenapa kok harus ada kode casting / convert (int)?? itu karena semua yang dimasukkan ke dalam List akan dibaca sebagai Object umum jika tidak menggunakan generic. gak perlu bingung itu cuma mekanisme konvert saja ke tipe data yang diperlukan, karena saya butuh int maka harus di ubah jadi int tho!!!?? :). nah sekarang kita ambil dengan looping

public static void main(String[] args) {
        ArrayList kumpulanAngka = new ArrayList();
        for(int i=1; i<11; i++){
         kumpulanAngka.add(i);
        }

        for(Object o : kumpulanAngka){
            Integer angka = (Integer)o;
            System.out.println(angka);
        }
    }

lopping for di atas adalah advanced for yang cara membacanya adalah, untuk setiap object o dalam kumpulan angka lakukanlah sesuatu, nah sesuatunya itu terserah kita kalau saya hanya mengambil kemudian mengkonvert lalu mencetak. gampang tho.??

4. Menggunakan Generic dalam List

misalnya saya ingin angka saja yang boleh masuk ke dalam kumpulanangka milik saya maka kita perlu menggunakan generic,

ArrayList<Integer> kumpulanAngka = new ArrayList();

kalau saya ingin String saja maka

ArrayList<String> kumpulanHuruf = new ArrayList();

kalau saya punya kelas Mahasiswa dan hanya object mahasiswa yang boleh masuk maka

ArrayList<Mahasiswa> kumpulanMahasiswa = new ArrayList();

5. Mengurutkan data di ArrayList

cara pertama adalah menggunakan jasa Collections.sort , kita akan mencoba mengurutkan menggunakan library yang sudah tersedia di Java. pertama kita urutkan dari kecil ke besar

public static void main(String[] args) {
        ArrayList<Integer> kumpulanAngka = new ArrayList();

        for(int i=1; i<10; i++){
         kumpulanAngka.add(i);
        }

        for(Object o : kumpulanAngka){
            System.out.println(o);
        }

        Collections.sort(kumpulanAngka);
        System.out.println("setelah di urutkan");
        for(Object o : kumpulanAngka){
            System.out.println(o);
        }
    }

lalu kita buat urutannya terbalik yaitu dari besar ke kecil

 public static void main(String[] args) {
        ArrayList<Integer> kumpulanAngka = new ArrayList();

        for(int i=1; i<10; i++){
         kumpulanAngka.add(i);
        }

        for(Object o : kumpulanAngka){
            System.out.println(o);
        }

        Collections.sort(kumpulanAngka,Collections.reverseOrder());
        System.out.println("setelah di urutkan");
        for(Object o : kumpulanAngka){
            System.out.println(o);
        }
    }

kira – kira seperti itulah contohnya, kita bisa membuat sendiri cara mengurutkan sesuai yang kita mau, misalnya kita mau mngurutkan manusia berdasarkan umurnya atau mahasiswa berdasarkan nilainya. silahkan pelajari materi Comparator, oke segitu dulu semoga ada manfaatnya, jika ada pertanyaan atau saran silahkan comment 🙂


Warm Regards
Lahardi Alkawero
mari berbagi meskipun sedikit, kalo berguna alhamdulillah 🙂


Daftar Materi Java SE

netbeans fail deploy on save on maven Project (gagal deploy otomatis saat save file)

i solve this problem just by change my server become glassfish or another version of earlier server.
semoga ada manfaatnya, jika ada pertanyaan atau saran silahkan comment 🙂


Warm Regards
Lahardi Alkawero
mari berbagi meskipun sedikit, kalo banyak alhamdulillah 🙂


Daftar Materi Java SE Tips dan konfigurasi