Cyber Jawara 2014
Sekitar 3 minggu yang lalu saya yang lagi santai habis ngasisten praktikum tiba-tiba didatengin sama dosen keamanan jaringan. Beliau ngajak saya dan teman saya untuk ikut kompetisi Cyber Jawara yang diselenggarakan oleh IDSIRTII/CC dibawah kendali Kemenkomifo. Awalnya sih saya menolak, karena saya sama sekali nggak tertarik yang namanya jaringan. Memang sih saya dulu tertarik dengan dunia hacking, tapi itu sudah dulu banget sekitar kelas 2 SMA (sekitar 5 tahun yang lalu). Dulu sempat aktif di beberapa forum seperti IDC, dan kenal sama teman-teman di dunia maya tapi belum pernah sekalipun ketemu. Karena sekarang sedang fokus sama dunia pemrograman, sehingga sudah lupa banget sama teknik2nya. Selain itu juga sama sekali tidak ada pengalaman ikut kompetisi keamanan jaringan, biasanya sih ikut kompetisi tentang RPL atau Game Development, jadi ya sama sekali tidak tahu seluk beluknya -,-
Kemudian pas hari H, saya di-chat sama puput kalau disuruh pak dosen daftar kompetisi Cyber Jawara pada saat itu juga. Karena sama sekali belum ada persiapan mulai dari anggota dan nama tim, jadi saya dengan asal ngasih nama timnya Cyber Juwari, hahaha :D dan untuk anggota ketiganya si puput ngajak Riris Fifantoro W, temen satu kelasnya yang ngerti tentang jaringan (doi punya bisnis ISP/apalah namanya).
Kami bertiga akhirnya terdaftar sebagai tim Cyber Jawara Zona 4 (Jawa Timur dan sekitarnya). Pada babak penyisihan satu dan dua, saya dan teman-teman mengerjakan soal CTF (Capture The Flag) secara online. Saat itu kami hanya mengandalkan internet buat googling, karena saya sendiri nggak berpengalaman di dunia forensik, sebenernya inget sedikit sih pas dipakai buat nakal dulu, tapi ya sedikit, itupun sekarang pasti teknisnya sudah agak beda. Tools yang kami gunakan pun hampir semuanya online (nggak modal banget), namun ada beberapa soal yang bisa saya kerjakan seperti Reverse Engineering (kalau ini saya agak ngerti karena keseringan bajak aplikasinya orang, hahaha). Selain itu beberapa soal lainnya juga dibantu sama adik tingkat Mukhlas dan Arief yang masih aktif di dunia hacking (well, i proud to them).
Akhirnya kita berlima berangkat ke Bandung mewakili Universitas Muhammadiyah Malang. Sayangnya si Mukhlas dan Arief tidak bisa dimasukkan ke anggota tim kami, padahal mereka jauh lebih jago dan up to date. Sesampai di Bandung ternyata saya bertemu dengan teman-teman lama saya pas di forum-forum, ada yang jadi peserta, ada juga yang jadi panitia, bener-bener nggak nyangka. Acara yang intinya kompetisi akhirnya berubah jadi reuni, haha :D seneng banget rasanya bertemu dengan sahabat-sahabat lama dulu :)
Saat acara final berlangsung ternyata tools yang digunakan harus offline. Bingung juga sih karena nggak tau ntar pakai tools apa, soalnya saya juga sudah lama nggak pakai linux, saya sendiri cuma bermodal beberapa tools buat reverse engineering tapi ternyata tetep nggak nemu flagnya :p
huaa, saya jadi tertarik buat belajar Forensik :D
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.
Collection Framework
Collection Framework adalah arsitektur di Java untuk merepresentasi dan memanipulasi collections.
Meliputi:
◦Interface: tipe data
abstract yang merepresentasikan collections
◦Implementation: berupa implementasi concrete dari interface
yang ada
◦Algorithm: adalah method yang berguna untuk memanipulasi collections, seperti searching dan shorting
Method ini bersifat polymorphic, karena bisa diterapkan pada implementasi yang berbeda .
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
Implementasi Set (Concrete Class)
java.util.HashSet<E> (merupakan hashtable)
◦ Constructors:
public
HashSet();
public
HashSet(Collection<? extends E> c);
public
HashSet(int initialCapacity);
public
HashSet(int initialCapacity, float loadFactor);
java.util.TreeSet<E>
(merupakan balance BST)
◦ Constructors
public
TreeSet();
public
TreeSet(Collection<? extends E> c);
.............
Interface SortedSet
SortedSet
memiliki fitur yang sama dengan Set, namun object yang tersimpan
diurutkan berdasarkan datanya
SortedSet
biasanya dikombinasikan dengan TreeSet
Efek
penggunaan SortedSet, proses penambahan data jadi lebih lambat daripada Set
biasa
Interface List
List
extends Collection
Items/Objects
di List dapat diakses menggunakan posisinya / indeksnya
Method
“add()” menambahkan object baru di bagian paling belakang dari list
List
cocok digunakan untuk mengganti Array, dengan ukuran yang dinamis
Method
tambahan yang merupakan tambahan baru dari yg dituruni dari interface
Collection
◦ public
E get(int index)
mengembalikan
object di posisi yang ditunjukkan index
◦ public
E set(int index, E x)
mengganti
object di posisi index dengan object x, dan mengembalikan object yang telah
diganti
◦ public
void add(int index, E x)
menambahkan
object E ke posisi x, object lama di posisi x sampai posisi terakhir digeser
satu posisi ke belakang
◦ public
E remove(int index)
menghapus
object di posisi x, kemudian menggeser di belakang object yang dihapus satu
posisi kedepan
return
object yang dihapus
◦ public
int indexOf(Object e)
Mengembalikan
indeks/posisi dari object e
Implementasi List (Concrete Class)
java.util.ArrayList<E>
(representasi array)
◦ Constructors:
public
ArrayList();
public
ArrayList(int initialCapacity)
public
ArrayList(Collection<? extends E> c);
java.util.LinkedList<E>
(dobel linked list)
◦ Constructors:
public
LinkedList();
public
LinkedList(Collection<? extends E> c);
Kedua-duanya
memiliki tambahan method yang specifik untuk masing-masing class
Interface Map
Map
digunakan untuk memetakan kunci dan data. Sebagai contoh, kita memiliki suatu
katalog buku, kode buku adalah kunci dan object buku adalah datanya
Kunci
di Map tidak dapat diduplikasi
Tiap
kunci hanya menunjuk ke satu object data
Penggunaan
Map biasanya dipadukan dengan class HashMap
Method
yang ada di Map:
V
put(K key, V value);
untuk
menambahkan pasangan kunci dan object
V
get(Object key);
untuk
mendapatkan object berdasarkan kunci tertentu
V
remove(Object key);
untuk
menghapus object berdasarkan kunci tertentu
boolean
containsKey(Object key);
memeriksa
apakan map memiliki kunci tertentu
boolean
containsValue(Object value);
memeriksa
apakah map memiliki object tertentu
int
size();
mendapatkan
jumlah key di map
public
Set<K> keySet();
mendapatkan
keseluruhan key yang berupa Set
public
Collection<V> values();
mendapatkan
keseluruhan object data yang berupa collection
Implementasi Map
java.util.HashMap<K,V>
◦ Constructors:
public
HashMap<K,V>();
public
HashMap<K,V>(int initialCapacity)
public
HashMap<K,V>(Collection<? extends E> c);
java.util.TreeMap<K,V>
◦ Constructors:
public
TreeMap<K,V>();
public
LinkedList<K,V>(Collection<? extends E> c);
Kedua-duanya
memiliki tambahan method yang specifik untuk masing-masing class
Subscribe to:
Posts
(
Atom
)
No comments :
Post a Comment