DASAR TEORI
2.1 IP Address
IP Address adalah singkatan dari Internet Protocol Address. IP address
digunakan sebagai alat identifikasi untuk tiap komputer dalam jaringan Internet
berbasis TCP/IP. IP address berisi deretan angka biner. IP versi 4 (IPv4)
menggunakan deretan angka biner sepanjang 32-bit. Sedangkan IP versi 6 (IPv6)
menggunakan deretan angka biner sepanjang 128-bit.
IP address memiliki dua fungsi. Selain sebagai alat identifikasi host atau
antarmuka jaringan, juga sebagai alamat lokasi jaringan. Fungsi IP address
sebagai alamat lokasi jaringan dapat diilustrasikan sebagai sebuah nama untuk
mempermudah mengingat kata daripada mengingat deretan angka yang menunjuk
pada suatu website, sebuah alamat untuk mengetahui di mana website tersebut,
dan juga sebuah rute agar dapat mencapai alamat tersebut.
Pada awalnya para pembuat sistem IP address menggunakan bilangan
sepanjang 32-bit. Tetapi karena semakin tinggi tingkat pertumbuhan jumlah dan
kapasitas Internet, maka menyebabkan dibutuhkan sistem pengalamat yang lebih
besar. Sistem pengalamatan tersebut dikenal sebagai IPv6 dan diperkenalkan sejak
tahun 1995.
5
Universitas Kristen Petra
Gambar 2.1. Perbedaan IPv4 dan IPv6
Pada gambar 2.1 dapat dilihat bahwa IPv4 mempunyai 10 basic header
field (version, IHL, type of service, total length, identification, flags, fragment
offset, time to live, protocol, dan header checksum) sedangan IPv6 hanya
mempunyai 6 basic header field dengan satu field baru, yaitu flow label.
Format header pada protocol IPv4:
a. Version
Version ini berisi angka 4 yang menunjukan versi pada IPv4. Sedangkan pada
IPv6 berisi angka 6. Ukuran field ini 4 bit.
b. IHL
Internet Header Length merupakan panjang header Internet (dalam 32 bit) dan
mengarah ke permulaan data. Ukuran field ini 4 bit.
c. Tipe of Service
Mengindikasi layanan (service) yang diharapkan oleh paket yang
bersangkutan, melintasi router-router internetwork IPv4. Size field ini 8 bit,
yang terdiri atas bit-bit untuk prioritas, waktu delay, keluaran, dan
karakteristik-karakteristik reliabilitas.
d. Total Length
Mengindikasikan panjang total paket IPv4 (IPv4 header + IPv4 payload), dan
tidak memasukkan “framing” link-layer. Ukuran dari field ini adalah 16 bit.
6
Universitas Kristen Petra
e. Identification
Mengindikasi nilai yang ditetapkan pengirim paket untuk membantu
reassembly fragment datagram. Ukuran dari field ini adalah 16 bit.
f. Flags
Mengidentifikasi flag-flag untuk proses fragmentasi. Size field ini 3 bit, tetapi
hanya 2 bit yang ditetapkan untuk penggunaan saat ini. Terdapat dua flag, satu
untuk menetapkan apakah paket IPv4 difragmentasikan dan satu untuk
menetapkan apakah terdapat banyak fragmen untuk mengikuti fragmen ini.
g. Fragment Offset
Digunakan untuk mengindikasikan posisi fragmen, relative terhadap payload
IPv4 original. Ukuran field ini 13 bit.
h. Time To Live (TTL)
Mengindikasikan jumlah link maksimum di mana paket IPv4 dapat berjalan
sebelum dibuang. TTL originalnya digunakan sebagai hitungan waktu di mana
router IPv4 menetapkan besar waktu yang dibutuhkan (dalam detik) untuk
mengantarkan paket.
i. Protocol
Mengidentifikasi protocol layer lebih-tinggi (upper-layer protocol). Ukuran
field ini 8 bit. Field protocol digunakan untuk “demultiplex” paket IPv4 ke
protocol upper-layer.
j. Header Checksum
Memberikan kapabiliti checksum (pengecekan eror-eror), tetapi dalam header
IPv4 saja. Payload IPv4 tidak dimasukkan dalam kalkulasi checksum, karena
biasanya memiliki checksum tersendiri. Setiap paket-paket IPv4 akan
memeriksa checksum dan dengan sendirinya membuang paket jika
pemeriksaan checksum gagal. Saat sebuah router memforward paket, ia harus
menurunkan nilai TTL. Oleh karena itu header checksum dihitung ulang pada
setiap hop di sepanjang sumber dan tujuan.
k. Source Address
Ukuran dari field ini adalah 32 bit. Field ini digunakan untu menyimpan IP
address (IPv4 address) host pengirim.
7
Universitas Kristen Petra
l. Destination Address
Ukuran dari field ini adalah 32 bit. Field ini digunakan untu menyimpan IP
address (IPv4 address) host tujuan.
m. Option
Field ini digunakan untuk menyimpan satu atau lebih opsi IPv4. Size field ini
adalah multiple 32 bit. Jika opsi-opsi tersebut tidak genap menggunakan 32
bit, opsi-opsi pelapis harus ditambahkan sehingga header genap memiliki
blok-blok 4 byte, yang dapat diindikasikan oleh field Internet Header Length
(IHL).
n. Padding
Jika kurang dari batas minimum, yaitu 46 bytes, maka ditambah bit 0 sesuai
ukuran data hingga mencapai batas minimum. (Rafiudin, 2005, p. 27).
8
Universitas Kristen Petra
e. Next header
Berukuran 8-bit yang menunjuk pada tipe informasi yang dapat berupa
transport-layer packet (TCP atau UDP). Next header field merupakan field
yang serupa dengan protocol field pada header IPv4.
f. Hop limit
Merupakan header yang menentukan maximum jumlah hops yang dikirim
oleh IP packet. Header ini berukuran 8-bit dan serupa dengan time to live
(TTL) field pada IPv4.
g. Source address
Field ini mempunyai besar 16 octets atau 128-bits yang menunjuk pada alamat
asal (source) dari packet.
h. Destination address
Menunjuk pada alamat tujuan (destination) dari packet. Field ini berukuran 16
octets atau 128-bits. (Rafiudin, 2005, p. 28).
9
Universitas Kristen Petra
Pengurangan nilai nol pada IPv6 addressing hanya dapat dilakukan 1
kali. Misalnya, pada alamat IPv6 FE08:0000:0000:002A:0000:0000:0000:0000,
group of zeroes dari alamat tersebut menjadi FE08:0:0:2A:0:0:0:0, sehingga
double colons hanya digunakan pada group of zeroes dengan total angka nol
terbanyak. Pengalamatan tersebut menjadi FE08:0:0:2A::. (Sofana, 2012, p. 203).
b. Compressed
Format penulisan ini banyak digunakan untuk kasus-kasus IP address yang
beberapa segmennya menggunakan sejumlah bilangan 0 (nol). Penulisan
kompresi sederetan 0 untuk sebuah IP address hanya boleh dilakukan satu
kali, tidak boleh lebih.
c. Mixed
Format ini banyak digunakan pada lingkungan gabungan IPv4 dan IPv6,
alamat dapat didefinikasn dalam format x:x:x:x:x:x:d.d.d.d. Terdapat 6
segmen bilangan heksadesimal sepanjang 16-bit (x) yang dipisahkan oleh “:”,
dan 4 segmen bilangan decimal sepanjang 8-bit (d) yang dipisahkan oleh “.”.
Istilah yang diberikan untuk jenis alamat ini adalah IPv4-compatible IPv6
address. Tetapi jika lingkungan IPv4 tidak mendukung IPv6, maka format
penulisan IP address menjadi berbeda. Alamat IPv4 direpresntasikan dalam
bentuk lain yang disebut IPv4-mapped IPv6 address. Formant IPv4-mapped
IPv6 address adalah x:x:x:x:x:FFFF:d.d.d.d. (Sofana, 2012, pp. 202-206).
10
Universitas Kristen Petra
2.2.3. IPv6 Addressing Model
Secara garis besar model dari pengalamatan IPv6 terdiri dari
pengalamatan unicast, anycast, dan multicast.
2.2.3.1. Unicast
Alamat unicast merupakan jenis IP address yang digunakan untuk
identifikasi sebuah interface saja. Paket yang dikirimkan hanya akan diterima oleh
sebuah interface yang menggunakan alamat tersebut. Secara umum, unicast
address pada IPv6 berfungsi sama dengan unicast address pada IPv4.
Alamat unicast dibagi menjadi beberapa jenis :
a. Alamat unicast global. Alamat ini mirip dengan alamat publik pada IPv4.
Seperti alamat publik pada IPv4 yang dapat secara global dirujuk oleh host-
host di Internet dengan menggunakan proses routing, alamat IPv6 juga
mengimplementasikan hal yang serupa. Struktur alamat IPv6 unicast global
terbagi menjadi topologi tiga level (Public, Site, dan Node). Global unicast
address dapat dikenali jika bit-bit awal adalah 001. Prefix yang digunakan
oleh alamat ini adalah 2000::/3. (Sofana, 2012, p. 210).
11
Universitas Kristen Petra
Tabel 2.1. Struktur Alamat Unicast Global pada IPv6 (sambungan)
dapat mengubah bagian alamat ini.
Berfungsi sebagai alamat dari sebuah
64 bit Interface ID node dalam subnet yang spesifik (yang
ditentukan oleh SLA ID).
12
Universitas Kristen Petra
c. Alamat unicast site-local mirip dengan alamat privat pada IPv4. Ruang
lingkup dari sebuah alamat terdapat pada intranetwork dalam sebuah site milik
sebuah organisasi. Penggunaan alamat unicast global dan unicast site-local
dalam sebuah jaringan adalah mungkin. Alamat site-local dapat dikenali jika
bit-bit awalnya adalah 1111111011. Prefix yang digunakan oleh alamat ini
adalah FEC0::/10. Alamat unicast site-local masih digunakan untuk tes lab.
(Sofana, 2012, p. 209).
13
Universitas Kristen Petra
2002:WWXX:YYZZ::/48, di mana WWXX dan YYZZ adalah representasi
dalam notasi colon-decimal format dari notasi dotted-decimal format w.x.y.z
dari alamat publik IPv4. Meskipun demikian, alamat ini sering ditulis dalam
format IPv6 unicast global address 2002:WWXX:YYZZ:SLA ID:Interface
ID. Contohnya adalah jika diketahui alamat IPv4 157.60.90.123, jika
diterjemahkan menjadi IPv6 address adalah 2002:9D3C:5B7B::/48. (Sofana,
2012, p. 211).
2.2.3.2. Anycast
Alamat anycast pada IPv6 mirip dengan alamat anycast dalam IPv4.
Alamat anycast pada IPv6 diimplementasikan dengan cara yang lebih efisien
dibandingkan dengan IPv4. Alamat anycast digunakan oleh Internet Service
Provider (ISP) yang memiliki banyak klien. Alamat anycast menggunakan ruang
alamat unicast tetapi memiliki fungsi yang berbeda dari alamat unicast.
IPv6 menggunakan alamat anycast untuk mengidentifikasi beberapa
interface yang berbeda. IPv6 akan menyampaikan paket-paket yang dialamatkan
ke sebuah alamat anycast ke interface terdekat yang dikenali oleh alamat tersebut.
Alamat anycast menyampaikan paket kepada salah satu dari banyak penerima.
(Sofana, 2012, p. 213).
14
Universitas Kristen Petra
2.2.3.3. Multicast
Alamat multicast IPv6 sama seperti alamat multicast pada IPv4.
Multicast address digunakan untuk identifikasi sekumpulan interface. Paket yang
dikirim ke multicast address akan diterima oleh semua interface yang
menggunakan alamat tersebut. Prefiks alamat yang digunakan oleh alamat
multicast adalah FF00::/8. Oktet kedua dari struktur alamat multicast yang
berukuran 8-bit berisi flags dan scope dari multicast address. Alamat
multicast adalah FF00:: sampai FF0F:: dipesan secara permanen. (Sofana, 2012,
p. 208).
15
Universitas Kristen Petra
2.2.4. Perhitungan Prefix Length pada IPv6
Sama seperti IPv4, pengalamatan IPv6 dapat dibagi dengen
menggunakan high-order bit order bit yang belum memiliki nilai tetap untuk
membuat prefix alamat yang disubnet. Proses ini digunakan untuk meringkas
tingkat dalam hirarkhi pengelamatan (dengan prefix yang kurang dari 64) atau
untuk menentukan subnet tertentu atau network segment (dengan panjang prefix
64). Proses subnetting pada IPv4 berbeda dengan proses subnetting (prefix length)
pada IPv6. Perbedaan tersebut terletak pada pendefinisian host ID pada alamat.
Pada IPv4, host ID didapat dari berbagai panjang tergantung pada skema
subnetting, Untuk IPv6 host ID adalah interface ID dari alamat unicast IPv6 dan
selalu berukuran 64 bit.
Proses prefix length ini diasumsikan bahwa prefix length dilakukan
dengan membagi 16 bit address space dari subnet ID menggunakan high-order bit
dalam subnet ID. Proses prefix length pada IPv6 adalah sebagai berikut :
Berdasarkan pada s (jumlah yang ditentukan untuk perhitungan prefix length),
m (prefix length dari alamat yang akan disubnet), dan F (nilai heksadesimal
dari subnet yang akan disubnet), lakukan perhitungan:
f = m – 48
f adalah bit dari subnet ID yang sudah fix.
s
n=2
16
Universitas Kristen Petra
Contohnya, lakukan perhitungan prefix length untuk global address
2001:DB8:0:C000::/51 sebanyak 3 bit. Dari contoh tersebut didapat F = 0xC000,
s = 3, dan f = 51 – 48 = 3. Sehingga akan didapat hasil subnet yang akan didapat
3 16-(f+s)
sebesar 8 (n = 2 ). Nilai tambah (i) adalah 0x400 (i = 2 = 1024 = 0x400).
2.3 HTML5
HTML (HyperText Markup Language) merupakan bahasa pemrograman
terstruktur yang dikembangkan untuk berbagi informasi melalui Internet. HTML
terus dikembangkan agar dapat menampilkan lebih banyak konten selain teks dan
gambar, seperti menu interaktif, suara, video, dan lain-lain. Pada tahun 2004,
beberapa anggota W3C (world wide web consortium) mendirikan sebuah
kelompok baru bernama WHATWG (Web Hypertext Application Technology
Working Group) untuk mengembangkan HTML5. (Jayan, 2012, p. 1).
HTML5 adalah versi kelima dari HTML yang masih dalam
pengembangan. Tujuan utama pengembangan HTML5 adalah untuk memperbaiki
teknologi HTML agar mendukung teknologi multimedia terbaru yang mudah
dibaca oleh manusia ataupun mesin.
Untuk menambah keluwesan pemformatan, pada HTML5 telah
dispesifikasikan pengkodean application programming interfaces (APIs).
Beberapa API terbaru pada HTML5 antara lain :
Elemen canvas, sebagai mode untuk menggambar object dua dimensi (2D).
<!DOCTYPE html>
<html>
<body>
</body>
</html>
17
Universitas Kristen Petra
Dengan tag <canvas>, area tersebut dapat digunakan untuk menggambar
grafik secara dinamis menggunakan JavaScript. Contohnya seperti shape
lingkaran, garis diagonal, hingga grafik 3 dimensi.
Drag and Drop, API dapat digunaan untuk memindahkan sesuatu dengan
cara men-drag dan meletakkannya pada tempat yang dituju.
<!DOCTYPE HTML>
<html>
<head>
<script>
function allowDrop(ev) {
ev.preventDefault(); }
function drag(ev) {
ev.dataTransfer.setData("Text",ev.target.id); }
function drop(ev) {
ev.preventDefault();
var data=ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data)); }
</script>
</head>
<body>
<div id="div1" ondrop="drop(event)"
ondragover="allowDrop(event)"></div>
Gambar 2.7. Contoh penggunaan drag and drop pada file html
Drag and drop merupakan fitur standar pada aplikasi komputer saat ini,
di mana user mengambil suatu objek lalu menarik objek tersebut ke lokasi tujuan.
Fitur drag and drop tidak didukung oleh browser Opera dan Safari 5.1.2.
(w3school.com, 2013).
18
Universitas Kristen Petra
Gambar 2.8. Depth First Search
Sebagai contoh, seperti pada gambar di atas jika ingin mencari jalan dari
A ke F dengan menggunakan depth first search langkah-langkahnya adalah
sebagai berikut :
1. Pertama dimulai dengan titik A, dengan menggunakan tiga istilah yaitu
list_visited, neighbor dan S. List_visited menyatakan titik yang pernah dilalui,
neighbor menyatakan titik yang berhubungan dengan titik sekarang,
sedangkan S menyatakan titik antara start vertex dan end vertex.
list_visited : A
neighbor : <kosong>
S:A
19
Universitas Kristen Petra
Gambar 2.10. Neighbor titik A
list_visited : A
neighbor : B, C
S:A
list_visited : A, B
neighbor : D, E
S : A, B
20
Universitas Kristen Petra
5. Dilanjutkan dengan titik E. Titik E terdapat 2 cabang baru yaitu F dan G.
list_visited : A, B, D, E
neighbor : F, G
S : A, B, E
list_visited : A, B, D, E, F
neighbor : <kosong>
S : A, B, E, F
21
Universitas Kristen Petra
Teknik ini dapat diimplementasikan menggunakan tree search dengan
antrian last in first out (LIFO) atau menggunakan fungsi rekursif. Depth first
search memiliki persyaratan memori yang sederhana. Teknik ini hanya perlu
menyimpan titik yang dijelajahi dan juga titik yang belum dijelajahi. Setelah
dijelajahi maka titik tersebut dihapus dari memori.
Psedeucode Depth First Search dijelaskan pada Gambar 2.24.
s.createStack()
dfs( v:StartVertex, z:EndVertex ) {
mark v as visited
s.push(v)
if ( v == z ){
print s.elements()
return
}
for (each vertex u adjacent to v)
if( ! visited(u) ) {
dfs(u,z)
s.pop(u)
}
s.pop(v)
}
2.5 KineticJS
Saat ini sudah banyak tersedia library JavaScript yang dapat
dimanfaatkan untuk menggambar objek. Salah satu library tersebut adalah
KineticJS. KineticJS berisi sekumpulan library, method, event dan prosedur yang
khusus digunakan untuk menggambar objek dua dimensi.
Secara umum KineticJS sudah menyediakan objek-objek dasar seperti
gambar garis, persegi, lingkaran, elips, poligon, dan lain-lain. Library KineticJS
dapat diunduh di www.kineticjs.com.
Untuk menggambar objek diperlukan deklarasi “stage” dan “layer”.
Stage mengacu pada bidang gambar secara keseluruhan. Dengan kata lain, semua
objek yang digambar berada di atas area stage. Sedagkan layer mengacu pada
lapisan di mana sebuah objek digambar. Layer bermanfaat jika banyak objek yang
digambar. Contoh deklarasi stage dan layer dapat dilihat pada Gambar 2.15.
22
Universitas Kristen Petra
Gambar 2.15. Deklarasi stage dan layer
2.6 JQuery
JQuery adalah sebuah JavaScript library yang khusus digunakan untuk
mengubah dokumen halaman dengan cepat. (Benedetti & Cranley, 2011, p. 5).
JQuery pertama kali dirilis oleh John Resig pada tahun 2006. Dalam
perkembangannya, JQuery mampu membuat penulisan coding jadi lebih ringkas
dan menghasilkan interaksi yang lebih halus. (Franklin, 2013, p. 15).
JQuery memungkinkan untuk mengubah tampilan, lokasi, atau tindakan
sebuah element pada halaman website. JQuery code memberikan element teks dan
gambar pada halaman website dengan berbagai efek khusus seperti:
Hide : menyembunyikan element pada halaman website.
Show : menampilkan sebuah element pada halaman website jika element
dalam keadaan hide.
sildeDown : slide ke bawah sebuah element pada halaman website.
sildeUp : slide ke atas sebuah element pada halaman website.
Animate : animasi sebuah element dalam arah tertentu. (Beighley, 2010, p. 9).
Dalam jQuery dan JavaScript, “click” disebut sebagai suatu event.
Sebuah event adalah mekanisme yang memungkinkan untuk menjalankan
sepotong code ketika sesuatu terjadi pada halaman web. Code yang akan
dijalankan adalah fungsi, dan fungsi tersebut memungkinkan untuk membuat
jQuery lebih efisien dan dapat digunakan kembali. Gambar berikut menjelaskan
bagaimana event “click” bekerja.
23
Universitas Kristen Petra
Gambar 2.16. Cara kerja event ”click” pada jQuery
Sumber : (Benedetti & Cranley, 2011, p. 79)
24
Universitas Kristen Petra
Gambar 2.17. Cara kerja event listener
Sumber : (Benedetti & Cranley, 2011, p. 80)
2.7 CKEditor
CKEditor adalah sebuah text editor HTML yang siap untuk digunakan
dan dirancang untuk menyederhanakan pembuatan konten web. CKEditor adalah
sebuah editor WYSIWYG (What You See Is What You Get) yang membawa fitur
pengolah kata umum langsung ke halaman web. CKEditor adalah sebuah aplikasi
open source, yang artinya dapat diubah dengan cara apapun seperti yang
diinginkan. (Knabben, 2013).
Langkah-langkah untuk menggunakan CKEditor pada sebuah halaman
PHP : (Stack Exchange Inc., 2013)
Download file CKEditor. (http://ckeditor.com/download)
Ekstrak file hasil download pada folder website.
25
Universitas Kristen Petra
Tambahkan baris berikut pada file yang akan menampilkan CKEditor.
Letakan dalam tag <head>.
26
Universitas Kristen Petra