Buat para programer kata framework pastilah tidak asing lagi, karna
untuk membuat aplikasi atau pemrograman web akan membutuhkan sebuah
framework agar dalam proses koding lebih mudah. Nah untuk yang masih
belum tahu framework lebih dalam, saya akan membahasnya di artikel ini.
Framework adalah sebuah software untuk memudahkan para programer untuk
membuat sebuah aplikasi web yang di dalam nya ada berbagai fungsi
diantaranya plugin, dan konsep untuk membentuk suatu sistem tertentu
agar tersusun dan tersetruktur dengan rapih.
Dengan menggunakan framework bukan berarti kita akan terbebas dengan
pengkodean. Karena kita sebagai seorang pengguna framework haruslah
menggunakan fungsi – fungsi dan variable yang ada di dalam sebuah
framework yang kita gunakan. Untuk saat ini framework terbagi dua yaitu
framework PHP dan framework CSS, untuk framework PHP terdiri dari
Laravel
Yii
Code Igniter
Symfoni
Zend Framework
Cake PHP
Fuel PHP
DLL
dan untuk Framework CSS terdiri dari
Bootstrap
Gumby
Foundation
Less Framework
JQuery UI
Unsemantic
Blue Print CS
Selain di php ternyata pada juva cukup banyak menyediakan framework
seperti sebagai berikut
Java Collection Framework
Framework : Koleksi atau
kumpulan potongan-potongan program yang disusun atau diorganisasikan sedemikian
rupa, sehingga dapat digunakan untuk membantu membuat aplikasi utuh tanpa
harus membuat semua kodenya dari awal.
—Framework adalah kumpulan fungsi (libraries), sehingga seorang
programmer tidak perlu lagi membuat fungsi-fungsi (biasanya disebut kumpulan
library) dari awal, programmer tinggal memanggil kumpulan library atau fungsi
yang sudah ada didalam framework, tentunya cara menggunakan fungsi-fungsi itu
sudah ditentukan oleh framework.
Jika array adalah tempat
sekumpulan elemen. Maka Collection adalah tempat sekumpulan objek.
Collection : suatu
wadah/container yang menapung sekumpulan object.
Java Collection Framework mendukung tiga jenis collections utama,
yakni:
◦set
◦list
◦map
JCF Interfaces dan Classes
—Interfaces:
◦Collection
◦Set
(tidak ada duplikasi)
◦SortedSet
◦List
(bisa ada duplikasi)
◦Map
(mis: Dictionary)
◦SortedMap
◦Iterator
◦Iterable
◦ListIterator
—Classes:
◦HashSet
◦TreeSet
◦ArrayList
◦LinkedList
◦HashMap
◦TreeMap
•boolean hasNext();
◦untuk
memeriksa apakah object berikutnya ada atau tidak
•E next();
◦untuk
mendapatkan object berikutnya
•void remove();
◦dipanggil
setelah menjalankan method next()
◦menghapus
object yang sudah dipanggil dengan next() terakhir
◦setelah
memanggil next(), tidak bisa menjalankan remove() dua kali, pemanggilan kedua
menyebabkan munculnya exception
Interface Collection
—public
int size();
◦Mengembalikan
angka yang merupakan jumlah object dalam collection
—public
boolean isEmpty();
◦Mengembalikan
nilai true bila tidak ada object dalam collection
—public
boolean add(E x);
◦Untuk
memasukkan satu atau beberapa object ke collection. Pengembaliannya adalah true
jika berhasil menambah. (beberapa jenis collection tidak mengijinkan duplikasi,
sehingga proses add bisa saja gagal)
—public
boolean contains(Object x);
◦Untuk
mengecek bahwa collection yang dimaksud mengandung object x
—public
boolean remove(Object x);
◦Menghapus
sebuah object x dari collection. Kembalian bernilai true, jika ada object yang
dihapus
—public
Iterator<E> iterator();
◦Mengembalikan
sebuah iterator yang digunakan untuk menelusuri object di collection
Interface Set
—Set
extends collection
◦Set
menuruni semua method milik Collection
—Set
tidak memperbolehkan adanya duplikasi object di koleksinya
◦Jika
ingin menambah elemen dua kali dengan “add()” maka “add()” yang kedua akan
mengembalikan nilai false
—Untuk
mengakses object-object di Set, digunakan Iterator
—Representasi
Set adalah seperti group, misal group musik, group mata kuliah
Mengumpulkan banyak variable dengan tipe sama dalam sebuah array
adalah hal yang mutlak dibutuhkan dalam bahasa pemrograman apa pun.
Seiring dengan kebutuhan tersebut, banyak juga dibuat fungsi-fungsi
untuk memanipulasi array. Dalam Java, Anda bisa memanfaatkan seluruh
framework Collection yang akan bertindak seperti array dengan
fungsi-fungsi powerful yang tersedia sesuai kebutuhan.
Diagram collection - klik untuk melihat versi besar
Sebuah collection adalah sebuah object yang merepresentasikan
kumpulan object-object. Collection digunakan untuk menyimpan, mengambil,
dan memanipulasi data-data. Salah satu collection paling sederhana
adalah Array. Namun dalam Collection Framework, Java menawarkan berbagai
bentuk lain dari Collection.
Karena Collection adalah interface, maka harus dibuat class yang
mengimplementasikannya. Dalam Java API, sudah tersedia beberapa class
yang sangat berguna untuk memanage object-object dalam Collection,
sesuai sifat dan kebutuhannya. Beberapa kelebihan utama menggunakan
collection framework antara lain:
Mengurangi effort dalam membuat program, karena sudah tersedia struktur data dan algoritma tanpa harus menulis sendiri.
Meningkatkan performa, karena setiap implementasi dapat berfungsi maksimal sesuai kasus yang ada.
Mudah dipelajari, sehingga mengurangi effort untuk mempelajari cara menggunakan API.
Dapat dikembangkan dan fleksibel terhadap tipe object yang ada dalam Collection.
Ada banyak class yang mengimplementasikan Collection yang sudah
tersedia dalam JDK. Pada dasarnya ada 3 Interface yang digunakan, yaitu
Set, List, dan Map. Kemudian ada 5 implementasi dasar yang digunakan
pula, yaitu Hash Table, Resizable Array, Balanced Tree, Linked List, dan
Hash Table + Linked List. Masing-masing memiliki kelebihan dan
kekurangan tersendiri, tergantung penggunaannya.
Berikut ini beberapa contoh cara menggunakan Collection Framework yang cukup sering dipakai.
ArrayList digunakan untuk membuat array yang ukurannya dinamis.
Berbeda dengan array biasa yang ukurannya harus ditentukan di awal
deklarasi array, dengan ArrayList, ukurannya akan fleksibel tergantung
banyaknya elemen yang dimasukkan. Pendeklarasian object ArrayList
sebaiknya diikuti dengan nama class yang akan dimasukkan dalam List
tersebut. Tujuannya agar method dan property dari setiap object dalam
ArrayList dapat diakses secara langsung. Namun jika tidak mencantumkan
nama class pun tidak masalah selama proses parsing class benar.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
importjava.util.ArrayList;
publicclassArrayListDemo {
publicstaticvoidmain(String[] args) {
ArrayList<Human> list1 = newArrayList<Human>();
for(inti = 0; i < 10; i++) {
list1.add(newHuman("Human "+ i));
}
for(inti = 0; i < list1.size(); i++) {
System.out.println(list1.get(i).name);
}
}
}
classHuman {
publicString name;
publicHuman(String name) {
this.name = name;
}
}
Kelebihan lain collection framework ini adalah kemampuannya untuk
membuat perulangan dirinya sendiri, sebab Collection framework
mengimplementasikan interface Iterable. Sehingga untuk membuat
perulangan “for” sebenarnya cukup dengan:
1
2
3
for(Human h :list1){
System.out.println(h.name);
}
Implementasi kedua yang cukup sering dipakai adalah Set. Sama
seperti ArrayList, Set ini akan berukuran dinamis. Hanya saja, Set tidak
akan memperbolehkan duplikasi object yang diketahui dari method
equals() yang ada di setiap object dalam Java. Anda bisa meng-override
method tersebut untuk membuat kriteria Anda sendiri, seperti pada contoh
di bawah ini.
Implementasi ketiga adalah dari Interface Map. Map berfungsi sebagai
collection yang memetakan setiap value dengan key tertentu. Jika
mencoba menambahkan elemen dengan key yang sama, maka elemen sebelumnya
pada key tersebut akan ditindih sehingga hilang. Deklarasi HashMaps juga
harus diikuti nama class yang akan menjadi key dan value-nya.
Contoh lainnya implementasi yang sering dipakai adalah Stack. Stack
merupakan sebuah collection sederhana yang menerapkan aturan LIFO (Last
in First out). Artinya, elemen yang masuk terakhir akan dikeluarkan
terlebih dahulu. Meskipun terdapat method add, get, dan remove karena
Stack tetap inherit ke interface collection, namun method yang umum
dipakai dalam Stack adalah push() untuk memasukkan elemen, pop() untuk
mengeluarkan elemen, empy() untuk mengecek apakah stack kosong, dan
peek() untuk melihat elemen teratas. Semua dilakukan sesuai urutan LIFO.
System.out.println("Print stack awal berurutan biasa");
for(String s : stack) {
System.out.println(s);
}
System.out.println("Keluarkan satu");
System.out.println(stack.pop());
System.out.println("Tambahkan dua");
stack.push("D");
stack.push("E");
System.out.println("Print stack sesuai urutan keluar");
while(!stack.empty()) {
System.out.println(stack.pop());
}
System.out.println("Selesai");
}
}
Untuk memanipulasi elemen-elemen stack seperti pengurutan dan
pengacakan, bisa menggunakan static method pada class
java.util.Collections. Dengan demikian akan mempermudah proses pembuatan
program Anda. Masih banyak lagi implementasi Collections yang siap Anda
gunakan langsung.
Collection
adalah sebuah framework yang dibuat untuk menyimpan dan memanipulasi
sebuah objek. Collection biasanya digunakan pada sebuah data seperti
mencari, meng-urutkan, meng-input dan menghapus. Kerangka kerja (Framework)
menyediakan dalam bentuk Interface (contoh : Set, List, Queue, Deque
dll). untuk class (ArrayList, Vector, LingkedList, PriorityQueue,
HashSet, LinkedHashSet, TreeSet dll). Gambar berikut adalah hirarki pada
java collection :
Collection
sendiri merupakan wadah yang menampung value pada kontainer tunggal.
Framework java collection menyediakan dengan cara extensible (secara
kamus internasional : dapat dibuat panjang atau luas) dan dapat
disatukan untuk menangani collections. Pada Groovy, collection dibuat
lebih mudah untuk digunakan dan difokuskan menjadi 2 jenis, yaitu : 1. List : menyediakan sebuah container untuk beberapa nilai. 2. Maps : digunakan sebagai metode untuk mengindeks seperangkat nilai-nilai.
3. Iterator adalah salah satu interface yang tersedia di dalam library Java, yang berlokasi di java.util package. Iterator digunakan untuk mengakses dan menampilkan nilai beserta tambahan method lain yang didefinisikan di dalam interface Iterator.
bagaimana cara menyimpan data dalam memori ? Nah pada Java, terdapat
Collection yang tugasnya untuk menyimpan data dalam memori. Collection
merupakan suatu objek yang dapat digunakan untuk menyimpan sekumpulan
obyek. Objek – objek yang terdapat di dalam Collection disebut dengan
elemen. Collection ini meyimpan elemen yang bertipe object, sehingga
berbagai tipe objek dapat disimpan di dalam Collection.
The Java Collections API
Java Collections ini terdiri dari interface Collection, list, set dan
order. Di bawah ini merupakan interface collection dan hirarki class.
Gambar : Interface Collection dan Hirarki Class
Collection
Collection merupakan sekumpulan objek yang tidak memiliki posisi yang tetap (no particular order) dan menerima duplikat.
List
List merupakan pengelompokkan berdasarkan urutan, ia memiliki posisi
awal dan juga posisi akhir. List juga tidak harus memiliki isi yang unit
dan ia juga dapat menampung berbagai macam tipe data seperti Sting,
Long, Integer bahkan Object.
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class CobaList {
public static void main(String[] x) {
List lis = new ArrayList();
// Masukkan value ke dalam lis
lis.add("NaufalFikriAulia");
lis.add("RizalFadly");
lis.add("BudiArman");
lis.add("MartaKarlina");
lis.add("FitriHerawati");
// Tampilkan value lis
for (Iterator iterator = lis.iterator(); iterator.hasNext();) {
String string = (String) iterator.next();
System.out.println(string);
}
}
}
Set merupakan sekumpulan objek yang tidak didasarkan dengan urutan
(unordered) dan menolak duplikat. Pada set, setiap anggotanya harus
unik. Sedangkan untuk urutan dan tataletak dari anggotanya tidak begitu
penting. Set juga dapat menampung berbagai tipe data bahkan objek.
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class CobaSet {
public static void main(String[] namakami) {
Set setdah = new HashSet();
// Masukkan value ke dalam setdah
setdah.add("NaufalFikriAulia");
setdah.add("RizalFadly");
setdah.add("BudiArman");
setdah.add("MartaKarlina");
setdah.add("FitriHerawati");
setdah.add("AnnisaCandela");
// Tampilkan value setdah
for (Iterator iterator = setdah.iterator(); iterator.hasNext();) {
String string = (String) iterator.next();
System.out.println(string);
}
}
}
Sedangkan Map merupakan mendukung pencarian berdasarkan key dengan
syarat harus unik. Map juga dapat menampung beragam tipe data, sama
dengan List dan Set. Namun bedanya, Map dapat menyimpan data secara
berpasangan yang terdiri dari key dan value. Untuk nilai dari key, harus
unik dan tidak beloeh ada yang sama. Namun jika kamu tetap menyimpan
nilai dengan key yang sama, maka nilai key yang terakhir disimpanlah
yang akan tersimpan didalam Map.
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class CobaMap {
public static void main(String[] buah manis) {
Map<Integer, String> mapInt_String = new HashMap<Integer, String>(); // map<Integer, String>
// Masukkan key dan value ke dalam mapInt_String
mapInt_String.put(1, "APEL");
mapInt_String.put(2, "NANAS");
mapInt_String.put(3, "JERUK");
mapInt_String.put(4, "RAMBUTAN");
mapInt_String.put(5, "DURIAN");
// Tampilkan value mapInt_String
for (Iterator iterator = mapInt_String.values().iterator(); iterator
.hasNext();) {
String string = (String) iterator.next();
System.out.println(string);
}
Map<String, String> mapString_String = new HashMap<String, String>();//map<String, String>
// Masukkan key dan value ke dalam mapString_String
mapString_String.put("BUDI", "SEPEDA");
mapString_String.put("ANDRI", "MOBIL");
mapString_String.put("DENI", "TRUK");
mapString_String.put("JAJANG", "MOTOR");
mapString_String.put("ATUT", "BUS");
mapString_String.put("RUDI", "KAPAL JET");// KEY yang digunakan = RUDI
mapString_String.put("RUDI", "UFO");// Key yang digunakan = RUDI juga, maka value "KAPAL JET" akan ditimpa oleh "UFO"
// Tampilkan value mapString_String
System.out.println("========================================");
for (Iterator iterator = mapString_String.values().iterator(); iterator
.hasNext();) {
String string = (String) iterator.next();
System.out.println(string);
}
// Tampilkan pasangan key-value mapString_String
System.out.println("========================================");
for (Iterator iterator = mapString_String.keySet().iterator(); iterator
.hasNext();) {
String string = iterator.next();
System.out.println(string + " mengendarai "
+ mapString_String.get(string));
}
}
}
Berikut ini hasil dari eksekusinya.
GAJAH
KUDA
ZEBRA
KAMBING
SAPI
========================================
MOBIL
SEPEDA
BUS
TRUK
MOTOR
UFO
========================================
ANDRI mengendarai MOBIL
BUDI mengendarai SEPEDA
ATUT mengendarai BUS
DENI mengendarai TRUK
JAJANG mengendarai MOTOR
RUDI mengendarai UFO
Coba dikihat pada hasil eksekusi dari MAP, terlihat bahwa nilai dari
“KAPAL JET” tidak pernah ditampilkan pada output. Ini dikarenakan nilai
“KAPAL JET” ditimpa oleh nilai dari “UFO”.
Berdasarkan uraian diatas, dengan pengelompokkan dalam grup, terdapat beberapa manfaat diantaranya :
Menyimpan elemen dengan urutan tertentu
Mengambil kembali elemen tersebut dengan index maupun dengan berbagai cara yang spesifik