B06 - Arif Wicahyanto - Pendaftaran Pengguna Layanan Hotspot Berbasis Web Pada Hotspot Mikrotik
BAB II TINJAUAN PUSTAKA a. -...
Transcript of BAB II TINJAUAN PUSTAKA a. -...
8
BAB II
TINJAUAN PUSTAKA
2.1.Tinjauan Empiris
Ada beberapa penelitian terkait yang pernah dilakukan mengenai sistem
mikrotik hotspot yaitu:
a. Sistem Pendaftaran Hotspot Berbasis Web Pada Hotspot
Mikrotik Stimik U’budiyah Menggunakan Mikrotik Aplication
Programing Interface (Api), Php, Mysql (Zuhar
Musliyana.2014)
Implementasi Sistem Hotspot pada Kampus STMIK
U’Budiyah menggunakan MikroTik Router, salah satu sistem
operasi yang menyediakan aplikasi layanan berbasis Hotspot.
Dengan sistem ini di harapkan dapat menangani kebutuhan layanan
akses internet wireless bagi seluruh mahasiswa dan civitas
akademika. Secara default penambahan user pada sistem RADIUS
MikroTik hanya dapat dilakukan melalui panel administration
menggunakan account tertentu yang telah di beri hak autoritas. Hal
ini menyebabkan tidak tersentralisasinya data, tidak efisiensinya
waktu dan menambah beban kerja pihak pengelola Hotspot kampus
seiring dengan jumlah pengguna yang semakin bertambah.
Berdasarkan permasalahan tersebut dilakukan penelitian yang
bertujuan menciptakan sistem pendaftaran berbasis web secara
realtime dan manajemen pengguna hotspot yang tersentralisasi.
Penelitian menggunakan metode deskriftif dengan menganalisa
data-data dan menggunakan data tersebut sebagai acuan
pembangunan sistem. Aplikasi ini dikembangkan berbasis Web
dengan memanfaatkan Bahasa Pemograman PHP, API PHP Class
MikroTik, dan Database MySQL untuk pendaftaraan,
pengelolalaan, dan verifikasidata pengguna. Pengujian dilakukan
pada proses pendaftaran pengguna hotspot yang di
9
interintegrasikan dengan database sentral kampus, sistem
notifikasi, dan verifikasi data pendaftar oleh pengelola hotspot.
Manfaat yang diperoleh dari penelitian ini adalah kelancaran
pengguna layanan hotspot, tersentralisasinya data dan autorisasi
account dengan penerapan username dan password untuk tiap
pengguna.
b. Memaksimalkan Potensi Bisnis Internet Pada Jaringan
Nirkabel (Studi Kasus: Pengembangan Jaringan Lan Di
Pondok Pesantren Terpadu Al Mumtaz) (Yuki Syambudi
Setiadi, dkk.2014)
Teknologi nirkabel atau wireless, kini semakin merebak di
seantero penjuru negeri. Dengan memanfaatkan gelombang radio,
teknologi nirkabel pada jaringan komputer semakin menunjukkan
eksistensinya dibandingkan dengan jaringan konvensional (dengan
kabel / wired). Keberadaan teknologi yang semakin murah juga
turut menunjang eksistensi dari teknologi nirkabel ini . Kini, area
dengan jaringan nirkabel atau lebih familiar dengan istilah hotspot
semakin mudah untuk ditemui. Perangkat pembangun jaringan
hotspot yang relatif murah membuat sebagian orang bersikukuh
untuk memanfaatkan peluang bisnis pada jaringan nirkabel.
Berbagai trik pun dilancarkan oleh para pelaku bisnis, mulai dari
kewajiban membeli barang terlebih dahulu sebelum menggunakan
fasilitas hotspot, hingga warung internet (warnet). Namun,
penggunaan kartu prabayar atau voucher merupakan strategi bisnis
yang paling prospektif. Hal ini dikarenakan kemudahan untuk
memanajemen pada sisi pelaku bisnis dan kemudahahan
penggunaan pada sisi pelanggan. Meninjau pada target PT. Telkom
yang terobsesi untuk menjadikan Indonesia negara dengan jumlah
WiFi terbesar di Asia (Yandi, 2012), yakni 10 juta WiFi pada 2015,
sudah tentu bisnis hotspot merupakan bisnis yang sangat
10
menjanjikan di masa depan. Namun demikian, bisnis hotspot juga
harus dikendalikan agar tidak menyalahi aturan hukum dan norma,
apalagi jika bisnis dijalankan di lingkungan Pondok Pesantren.
Dengan sedikit sinkronisasi antara sistem dengan ideologi
kepesantrenan yang ada, maka bisnis hotspot ini pun akan menjadi
bermanfaat bagi Pondok Pesantren
c. Peran Sosial Media Untuk Manajemen Hubungan Dengan
Pelanggan Pada Layanan E-Commerce. (Bambang Supradono,
Ayu Noviani Hanum.2011)
Euforia penggunaan sosial media (facebook, twitter, google
dan lain-lain) melalui internet sudah menjadi trend di masyarakat,
tentunya hal mempengaruhi perubahan perilaku dimasyarakat
dalam berinteaksi dan berkomunikasi. Kondisi ini didorong oleh 2
hal yang mendasar yakni perilaku baru orang kota dan revolusi
teknologi. Pertumbuhan pengguna sosial media tentunya harus
dimanfaatkan perusahaan dalam meraih konsumen dengan cara
melakukan inovasi dalam melakukan bisnis, pemasaran dan
berkomunikasi secara online lewat layanan e-commerce mereka.
Paper ini mencoba mensurvey cara-cara terbaik bagi perusahaan
besar di Indonesia dalam mengembangkan layanan sosial media
untuk manajemen hubungan dengan pelanggan (customer
relationship management) pengguna sosial media melalui layanan
sosial media yang mereka miliki. Dengan demikian dapat menjadi
acuan/benchmark bagi perusahaan-perusahaan lainnya dalam
melakukan terobosan terobosan baru cara berkomunikasi dan
berbisnis lewat layanan sosial media.
d. Otentikasi Dan Manajemen Pengguna Hotspot Router
Mikrotik Menggunakan Radius Dan Php-Mysql (David Cesar
Pramudita, Eko Sakti Pramukantoro, Aryo Pinandito)
Router Mikrotik telah menyediakan sistem manajemen
terhadap user hotspot melalui paket program yang terpisah
11
bernama User Manager. Permasalahan utama adalah integrasi
aplikasi user manager kedalam perangkat keras router mikrotik
dinilai kurang efektif dan fleksibel, karena untuk melakukan proses
manajemen terhadap user hotspot harus dilakukan pada tiap-tiap
router yang berada pada area hotspot yang tentunya akan
membutuhkan waktu yang relatif lama. Dari permasalahan tersebut
maka dibuatlah sistem baru dengan memanfaatkan eksternal
RADIUS server sebagai pusat dari proses otentikasi maupun
manajemen terhadap user hotspot mikrotik. Dari hasil pengujian
sistem yang telah dilakukan, proses otentikasi pada sistem internal
RADIUS terbukti 13 % lebih cepat dibandingkan dengan sisten
dengan eksternal RADIUS. Sedangkan dari sisi proses manajemen
sistem manajemen terpusat melalui eksternal RADIUS terbukti
dapat meminimalkan waktu ¾ lebih cepat dibanding sistem internal
RADIUS.
2.2.Tinjauan Teoritis
2.2.1. Jaringan komputer
Jaringan komputer adalah sebuah kumpulan komputer,
printer dan peralatan lainnya yang terhubung dalam satu kesatuan.
Informasi dan data bergerak melalui kabel-kabel atau tanpa kabel
sehingga memungkinkan pengguna jaringan komputer dapat saling
bertukar dokumen dan data, mencetak pada printer yang sama dan
bersama-sama menggunakan hardware/software yang terhubung
dengan jaringan. Setiap komputer, printer atau periferal yang
terhubung dengan jaringan disebut node. Sebuah jaringan komputer
dapat memiliki dua, puluhan, ribuan atau bahkan jutaan node.
Klasifikasi Jaringan Komputer :
a. LAN (Local Area Network) : Jaringan komputer yang saling
terhubung ke suatu komputer server dengan menggunakan
12
topologi tertentu, biasanya digunakan dalam kawasan satu
gedung atau kawasan yang jaraknya tidak lebih dari 1 km.
b. MAN (Metropolitan Area Network) : Jaringan komputer
yang saling terkoneksi dalam satu kawasan kota yang
jaraknya bisa lebih dari 1 km. Pilihan untuk membangun
jaringan komputer antar kantor dalam suatu kota, kampus
dalam satu kota.
c. WAN (Wide Area Network) : Jaringan komputer yang
menghubungkan banyak LAN ke dalam suatu jaringan
terpadu, antara satu jaringan dengan jaringan lain dapat
berjarak ribuan kilometer atau terpisahkan letak geografi
dengan menggunakan metode komunikasi tertentu.
2.2.2. Mikrotik
MikroTik RouterOS, merupakan sistem operasi Linux base yang
diperuntukkan sebagai network router. Didesain untuk memberikan
kemudahan bagi penggunanya. Administrasinya bisa dilakukan
melalui Windows Application (WinBox). Selain itu instalasi dapat
dilakukan pada Standard komputer PC (Personal Computer). PC yang
akan dijadikan router mikrotik pun tidak memerlukan resource yang
cukup besar untuk penggunaan standard, misalnya hanya sebagai
gateway. Untuk keperluan beban yang besar (network yang kompleks,
routing yang rumit) disarankan untuk mempertimbangkan pemilihan
resource PC yang memadai.
2.2.2.1. Sejarah MikroTik RouterOS
MikroTik adalah sebuah perusahaan kecil berkantor pusat di
Latvia, bersebelahan dengan Rusia. Pembentukannya diprakarsai oleh
John Trully dan Arnis Riekstins. John Trully adalah seorang
berkewarganegaraan Amerika yang berimigrasi ke Latvia. Di Latvia ia
bejumpa dengan Arnis, Seorang darjana Fisika dan Mekanik sekitar
tahun 1995.
13
John dan Arnis mulai me-routing dunia pada tahun 1996 (misi
MikroTik adalah merouting seluruh dunia). Mulai dengan sistem
Linux dan MS-DOS yang dikombinasikan dengan teknologi Wireless-
LAN (WLAN) Aeronet berkecepatan 2 Mbps di Moldova, negara
tetangga Latvia, baru kemudian melayani lima pelanggannya di Latvia.
Prinsip dasar mereka bukan membuat Wireless ISP (W-ISP),
tetapi membuat program router yang handal dan dapat dijalankan
diseluruh dunia. Latvia hanya merupakan tempat eksperimen John dan
Arnis, karena saat ini mereka sudah membantu negara-negara lain
termasuk Srilanka yang melayani sekitar 400 pengguna.
Linux yang pertama kali digunakan adalah Kernel 2.2 yang
dikembangkan secara bersama-sama denag bantuan 5-15 orang staff
Research and Development (R&D) MikroTik yang sekarang
menguasai dunia routing di negara-negara berkembang. Menurut
Arnis, selain staf di lingkungan MikroTik, mereka juga merekrut
tenega-tenaga lepas dan pihak ketiga yang dengan intensif
mengembangkan MikroTik secara marathon.
2.2.2.2. Jenis-Jenis Mikrotik
a. MikroTik RouterOS yang berbentuk software dapat diinstal pada
kompuetr rumahan (PC).
b. BUILT-IN Hardware MikroTik dalam bentuk perangkat keras yang
khusus dikemas dalam board router yang didalamnya sudah
terinstal MikroTik RouterOS.
2.2.2.3.Fitur-Fitur Mikrotik
a) Address List : Pengelompokan IP Address berdasarkan nama
b) Asynchronous: Mendukung serial PPP dial-in / dial-out, dengan
otentikasi CHAP, PAP, MSCHAPv1 dan MSCHAPv2, Radius, dial
on demand, modem pool hingga 128 ports.
c) Bonding: Mendukung dalam pengkombinasian beberapa antarmuka
ethernet ke dalam 1 pipa pada koneksi cepat.
14
d) Bridge: Mendukung fungsi bridge spinning tree, multiple bridge
interface, bridging, firewalling.
e) Data Rate Management : QoS berbasis HTB dengan penggunaan
burst, PCQ, RED, SFQ, FIFO queue, CIR, MIR, limit antar peer to
peer
f) DHCP: Mendukung DHCP tiap antarmuka; DHCP Relay; DHCP
Client, multiple network DHCP; static and dynamic DHCP leases.
g) Firewall dan NAT : Mendukung pemfilteran koneksi peer to peer,
source NAT dan destination NAT. Mampu memfilter berdasarkan
MAC, IP address, range port, protokol IP, pemilihan opsi protokol
seperti ICMP, TCP Flags dan MSS.
h) Hotspot: Hotspot gateway dengan otentikasi RADIUS. Mendukung
limit data rate, SSL, HTTPS.
i) IPSec : Protokol AH dan ESP untuk IPSec; MODP Diffie-
Hellmann groups 1, 2, 5; MD5 dan algoritma SHA1 hashing;
algoritma enkirpsi menggunakan DES, 3DES, AES-128, AES-192,
AES-256; Perfect Forwarding Secresy (PFS) MODP groups 1, 2,5
j) ISDN: mendukung ISDN dial-in/dial-out. Dengan otentikasi PAP,
CHAP, MSCHAPv1 dan MSCHAPv2, Radius. Mendukung 128K
bundle, Cisco HDLC, x751, x75ui, x75bui line protokol.
k) M3P: MikroTik Protokol Paket Packer untuk wireless links dan
ethernet.
l) MNDP: MikroTik Discovery Neighbour Protokol, juga
mendukung Cisco Discovery Protokol (CDP).
m) Monitoring / Accounting : Laporan Traffic IP, log, statistik graph
yang dapat diakses melalui HTTP.
n) NTP: Network Time Protokol untuk server dan clients; sinkronisasi
menggunakan sistem GPS.
o) Poin to Point Tunneling Protocol : PPTP, PPPoE dan L2TP Access
Consentrator; protokol otentikasi menggunakan PAP, CHAP,
15
MSCHAPv1, MSCHAPv2; otentikasi dan laporan Radius; enkripsi
MPPE; kompresi untuk PPoE; limit data rate.
p) Proxy: Cache untuk FTP dan HTTP proxy server, HTTPS proxy;
transparent proxy untuk DNS dan HTTP; mendukung protokol
SOCKS; mendukung parent proxy; static DNS.
q) Routing: Routing statik dan dinamik; RIP v1/v2, OSPF v2, BGP
v4.
r) SDSL: Mendukung Single Line DSL; mode pemutusan jalur
koneksi dan jaringan.
s) Simple Tunnel: Tunnel IPIP dan EoIP (Ethernet over IP).
t) SNMP: Simple Network Monitoring Protocol mode akses read-
only.
u) Synchronous : V.35, V.24, E1/T1, X21, DS3 (T3) media ttypes;
sync-PPP, Cisco HDLC; Frame Relay line protokol; ANSI-617d
(ANDI atau annex D) dan Q933a (CCITT atau annex A); Frame
Relay jenis LMI.
v) Tool: Ping, Traceroute; bandwidth test; ping flood; telnet; SSH;
packet sniffer; Dinamik DNS update.
w) UPnP: Mendukung antarmuka Universal Plug and Play.
x) VLAN: Mendukung Virtual LAN IEEE 802.1q untuk jaringan
ethernet dan wireless; multiple VLAN; VLAN bridging.
y) VoIP: Mendukung aplikasi voice over IP.
z) VRRP: Mendukung Virtual Router Redudant Protocol.
2.2.2.4. Mikrotik Hotspot
Penggunaaan mikrotik hotspot memungkinkan untuk mengatur
ketetapan pengaksesan terhadap jaringan publik untuk pengguna yang
menggunakan baik jaringan kabel maupun nirkabel, dengan fitur-fitur:
a. Menggunakan server DHCP untuk memberikan alamat ip
sementara kepada client untuk proses otentikasi
16
b. Otentikasi client menggunakan database lokal atau server
Radius.
c. Pemberian IP tetap setelah proses otentikasi berhasil.
Gateway mikrotik hotspot minimal harus memiliki dua buah
antar muka jaringan, yaitu antarmuka mikrotik hotspot yang
digunakan untuk terhubung ke client dan antarmuka LAN/WAN yang
digunakan untuk mengakses sumber daya jaringan seperti server
Radius. Untuk antar muka mikrotik hotspot harus memiliki dua alamat
IP, satu sebagai gateway untuk alamat sementara sebelum otentikasi
dan satu lagi sebagai gateway untuk alamat IP tetap setelah proses
otentikasi.
Untuk proses otentikasi pertama kali komputer klien akan
menerima alamat IP sementara dari server DHCP, yaitu mikrotik
hotspot. Pada saat ini ketika pengguna melakukan browsing, maka
akan secara otomatis dialihkan ke halaman pengesahan yang akan
meminta username dan password. Mikrotik hotspot bisa melakukan
otentikasi dengan mengacu kepada database lokal maupun server
radius.
Setelah proses otentikasi berhasil maka mikrotik hotspot akan
memberikan alamat IP yang tetap. Untuk permintaan DHCP
berikutnya, alamat IP yang baru akan diberikan kepadan klien. Waktu
yang dibutuhkan untuk mengubah alamat IP klien tergantung dari
waktu yang ditentukan di pengaturan mikrotik hotspot, biasanya
sekitar 14 detik. Setelah proses perubahan alamat IP selesai, halaman
web akan langsung dialihkan ke alamat tujuan yang sebenarnya atau
halaman status jika pengguna belum memasukkn alamat tujuan.
2.2.2.5.Mikrotik API
Application Programmable Interface (API) mengijinkan user
untuk mebuat solusi software secara custom untuk berkomunikasi
dengan RouterOS untuk mengumpulkan informasi, mengatur
17
konfigurasi, dan mengelola router. API mengikuti sintak dari
command line interface (CLI). Hal ini dapat digunakan untuk
membuat terjemahan atau alat konfigurasi secara custom untuk
membantu pengguna dalam menjalankan dan mengelola router dengan
RouterOS.
Protokol
Komunikasi dengan router dilakukan dengan mengirimkan
kalimat ke router dan menerima satu atau lebih kalimat balasan.
Kaliamat adalah urutan kata-kata diakhiri dengan nol panjang kata.
Kata adalah bagian dari kalimat yang di encode dengan cara tertentu
(panjang encode dan data). Komunikasi terjadi dengan mengirimkan
kalimat ke router dan menerima balasan untuk kalimat dikirim. Setiap
kalimat yang dikirim ke router menggunakan API harus berisi
perintah sebagai kata pertama diikuti oleh kata-kata dalam urutan
tertentu, akhir kalimat ditandai dengan nol panjang kata. Ketika router
menerima kalimat penuh (kata perintah, tidak ada kata-kata atau
atribut lebih dan nol panjang kata) itu dievaluasi dan dieksekusi,
kemudian dibentuk dan dikembalikan.
API Words
Words adalah bagian dari kalimat. Setiap kata harus dikodekan
dalam cara tertentu - panjang kata diikuti dengan konten kata. Panjang
kata harus diberikan sebagai hitungan byte yang akan dikirim.
Panjang kata dikodekan sebagai berikut:
Value of length # of bytes Encoding
0 <= len <= 0x7F 1 len,lowest byte
0x80 <= len <=
0x3FFF
2 len | 0x8000, two lower
bytes
0x4000 <= len <= 3 len | 0xC00000, three
18
0x1FFFFF lower bytes
0x200000 <= len <=
0xFFFFFFF
4 Len|0xE0000000
len >= 0x10000000 5 0xF0 and len as four
bytes
Tabel 2. 1 API Words
· Setiap kata dikodekan sebagai panjang, diikuti oleh banyak byte
konten
· Kata dikelompokkan ke dalam kalimat. Akhir kalimat diakhiri
dengan nol panjang kata;
· Skema memungkinkan encoding panjang hingga
0x7FFFFFFFFF, hanya empat panjang byte didukung;
· Byte len dikirim paling signifikan pertama (urutan jaringan);
· Jika byte pertama dari kata adalah> = 0xF8, maka itu adalah
control byte yang dipesan. Setelah menerima diketahui control
byte API klien tidak dapat melanjutkan, karena tidak tahu
bagaimana menafsirkan byte berikut;
· Saat ini control byte tidak digunakan;
Command word
Kata pertama dalam kalimat harus perintah diikuti oleh kata-
kata atribut dan nol panjang kata atau mengakhiri kata. Nama kata
perintah harus dimulai dengan “/”. Nama perintah erat mengikuti CLI,
dengan spasi diganti dengan tanda “/”.
Contoh: /sistem/reboot
Attribute word
Setiap command word memiliki daftar attribute word tersendiri
tergantung pada konten.
Struktur atribut word terdiri dari 5 bagian dalam urutan ini:
· Panjang encode
· Tanda prefix konten yang sama - =
19
· Nama atribut
· Memisahkan tanda sama dengan - =
· Nilai attribute jika ada satu, ada kemungkinan bahwa
atrribut tidak memiliki nilai
Contoh: =disable-running-check=yes
Query word
Kalimat dapat mengandung query parameter yang membantasi
ruang lingkupnya.
Contoh:
/interface/print
?type=ether
?type=vlan
?#|!
Reply word
Replay word ini hanya dikirim dari router. Replay word hanya
dikirim dalam menanggapi kalimat penuh yang dikrimkan oleh klien.
· Kata pertama dari balasan dimulai dengan '!'
· Setiap kalimat yang terkirim menghasilkan setidaknya satu
replay (jika sambungan tidak terputus).
· Balasan terakhir untuk setiap kalimat adalah balasan yang
memiliki kata pertama !done.
· Kesalahan dan kondisi yang luar biasa dimulai dengan !trap.
· Balasan Data mulai dengan !re.
· Jika koneksi API ditutup, RouterOS mengirimkan !fatal
dengan alasan sebagai balasan dan kemudian menutup
koneksi!;
API sentences
API sentences adalah objek utama dari komunikasi mengguakan
API.
20
· Kalimat kosong diabaikan.
· Kalimat diproses setelah menerima nol panjang kata.
· Ada batas pada jumlah dan ukuran kalimat klien dapat
mengirim sebelum telah login.
· Urutan kata-kata atribut tidak boleh diandalkan. Sebagai
ketertiban dan hitung diubah oleh atribut .proplist.
· Struktur kalimat adalah sebagai berikut:
o Kata pertama harus berisi kata perintah;
o Harus berisi nol panjang kata untuk mengakhiri
kalimat;
o Dapat berisi tidak ada atau beberapa kata atribut. Tidak
ada urutan tertentu apa atribut kata harus dikirim dalam
kalimat, agar tidak penting untuk kata-kata atribut;
o Dapat berisi tidak ada atau beberapa kata query. Urutan
kata-kata permintaan dalam kalimat penting.
2.2.2.6. Mikrotik Walled Garden
Hotspot Walled Garden adalah sebuah sistem yang mengizinkan
semua user yang tidak memiliki autentikasi untuk mengakses halaman
website tertentu. tetapi ketika akan mengakses resource yang lain
maka harus melakukan autentikasi. Sistem ini akan melakukan
pengaturan pada level protokol HTTP and HTTPS. Cara kerja Walled
garden pada HTTP level mirip dengan web-proxy.
2.2.3. API (Application Programming Interface)
API merupakan software interface yang terdiri atas
kumpulan instruksi yang disimpan dalam bentuk library dan
menjelaskan bagaimana agar suatu software dapat berinteraksi dengan
software lain. Penjelasan ini dapat dicontohkan dengan analogi
apabila akan dibangun suatu rumah. Dengan menyewa kontraktor
yang dapat menangani bagian yang berbeda, pemilik rumah dapat
memberikan tugas yang perlu dilakukan oleh kontraktor tanpa harus
21
mengetahui bagaimana cara kontraktor menyelesaikan pekerjaan
tersebut. Dari analogi tersebut, rumah merupakan software yang akan
dibuat, dan kontraktor merupakan API yang mengerjakan bagian
tertentu dari software tersebut tanpa harus diketahui bagaimana
prosedur dalam melakukan pekerjaan tersebut.
Interface pada software merupakan suatu entry points yang
digunakan untuk mengakses seluruh resources yang terdapat di dalam
software tersebut. Dengan adanya API, maka terdapat aturan
bagaimana software dapat berinteraksi dengan software lain untuk
mengakses resources melalui interface yang telah tersedia.
Gambar 2. 1 Skema API
Secara struktural, API merupakan spesifikasi dari suatu
data structure, objects, functions, beserta parameter-parameter yang
diperlukan untuk mengakses resource dari aplikasi tersebut. Seluruh
spesifikasi tersebut membentuk suatu interface yang dimiliki oleh
aplikasi untuk berkomunikasi dengan aplikasi lain, dan API dapat
digunakan dengan berbagai bahasa programming, ataupun hanya
dengan menggunakan URL (Uniform Resource Locator) yang telah
disediakan oleh suatu website.
API dapat diklasifikasikan menjadi beberapa kategori, hal
ini dilihat dari abstraksi apa yang dideskripsikan di dalam sistem.
Kategori-kategori ini diantaranya:
Kategori API Deskripsi Contoh
22
Operating Sistem API yang digunakan
untuk
fungsi dasar yang dapat
dilakukan oleh komputer.
Seperti proses I/O,
eksekusi program.
API for MS
Windows
Programming
Languages
API yang digunakan
untuk
memperluas kapabilitas
dalam melakukan
eksekusi
terhadap suatu bahasa
pemrograman.
Java API
Application
Services
API yang digunakan
untuk
mengakses data dan
layanan yang disediakan
dari suatu aplikasi.
API for mySAP
(BAPI/Business
Application
Programming
Interface)
Infrastructure
Services
Digunakan untuk
mengakses infrastruktur
dari suatu komputer.
Infrastruktur disini
adalah
komputer beserta
peripheral seperti
storage,
aplikasi, dan lain-lain.
Amazon EC2
(Elastic
Compute Cloud)
untuk
akses untuk
virtual
computing dan
Amazon S3
(Simple Storage
Service)
untuk menyimpan
data
23
dalam jumlah
besar.
Web Services API yang digunakan
untuk
mengakses content dan
layanan yang disediakan
oleh suatu web
application.
Facebook Graph
APIyang
digunakan untuk
mengakses
informasi yang
dapat dibagikan
Tabel 2. 2 Kategori API
2.2.4. Facebook
Facebook merupakan layanan jejaring sosial untuk bertukar pesan,
berbagi foto dan dengan pemberitahuan otomatis ketika suatu koneksi
mengupdate profilnya. Facebook ini diluncurkan pada bulan Februari
2004 dan pada bulan Mei 2012 facebook telah memiliki lebih dari 900
juta pengguna aktif diantara klient berbasis web dan perangkat mobile.
Pengguna harus membuat profil, menambahkan pengguna lain
sebagai teman dan kemudian mereka dapat menggunakan semua
kemampuan dari aplikasi. Para pengguna dapat bergabung kepentingan
bersama, membuat kelompok-kelompok pribadi atau umum, chatting
dan mengatur semua koneksi dengan sekolah atau perguruan tinggi,
keluarga atau karakteristik lainnya.
Facebook didirikan oleh Mark Zuckerberg bersama teman
kuliahnya Eduardo Saverin, Dustin Moskovitz dan Chris Hughes. Pada
awalnya terbatas untuk mahasiswa Harvard, tetapi diperluas ke
perguruan tinggi lain di dekatnya. Pada bulan Oktober 2007 Microsoft
telah membeli saham 1,6% dari Facebook untuk 240 juta dolar, apa
berarti sebuah keberanian tersirat ke Facebook sekitar $ 15 miliar. Pada
tahun 2010 itu menjadi perusahaan web terbesar ketiga di AS setelah
Google dan Amazon.
Pengguna dapat berkomunikasi dengan teman dan pengguna lain
melalui pesan pribadi atau umum atau bahkan menggunakan fitur chat.
24
Mereka dapat membuat dan bergabung dengan grup yang menarik dan
"likes page" juga.
Facebook meluncurkan News Feed pada September 2006. Ini
menunjukkan informasi baru atau perubahan, acara mendatang atau
ulang tahun dari teman-teman pengguna. Pengguna dapat mencegah
jenis pembaruan itu akan ditampilkan di News Feed, kiriman Dinding,
perubahan profil dan teman-teman yang baru ditambahkan. Salah satu
aplikasi yang paling sering digunakan dari Facebook adalah aplikasi
Foto. Dengan aplikasi ini pengguna dapat meng-upload foto di album
yang berbeda.
Salah satu aplikasi yang paling terkenal dari Facebook adalah
“Wall”. Ini adalah profil asli di mana adalah konten user, ruang pada
setiap profil user yang memungkinkan teman-teman untuk mengirim
pesan bagi pengguna. Wall terlihat untuk semua orang yang bisa
melihat profil lengkap user. Dari 2007, perusahaan memungkinkan
pengguna untuk mengirim lampiran ke Wall, sejak sebelum Wall
terbatas pada teks saja. Tapi seperti yang dikatakan sebelumnya, Wall
juga menampilkan peristiwa yang terjadi pada pengguna (peristiwa,
teman-teman baru yang ditambahkan, gambar perubahan profil dan
sebagainya). Akhirnya Wall telah digantikan oleh Timeline, apa yang
dimulai pada akhir tahun 2011.
Dampak dari Facebook di masyarakat cukup besar. Facebook telah
mempengaruhi kehidupan sosial masyarakat dengan cara yang berbeda.
Masalah utama adalah untuk menjadi terus menerus kontak dengan
kerabat, teman, rekan kerja. Hal ini dapat menghubungkan orang-orang
dengan minat yang sama atau "Like" kesamaan. Dengan ketersediaan
pada perangkat mobile, kontak selalu hadir setiap kali pengguna
memiliki akses ke Internet. Tapi ada juga kritik untuk cara komunikasi
ini karena mereka mengatakan bahwa bahwa hal itu dapat
menyebabkan kecenderungan antisosial karena orang tidak secara
25
langsung berkomunikasi dengan satu sama lain, hanya melalui
komputer.
2.2.4.1. Arsitektur aplikasi facebook
Di bawah ini adalah arsitektut web standar:
Gambar 2. 2 Arsitektur Web Standar
Saat kita ingin membuka halaman web, kita mengirimkan
HTTP Request ke server. Di server, aka nada proses yang
melibatkan aplikasi dan database. Hasil prose tersebut, sebuah
halaman HTML akan dikirim ke browser kita.
Berbeda dengan bagaimana facebook platform bekerja. Saat
kita membuka sebuah aplikasi yang ada di facebook, kita
mengirimkan HTTP Request ke facebook server. Permintaan kita
akan diteruskan ke server pemilik aplikasi tersebut. Ada beberapa
informasi (misalkan user id) yang akan diminta dari server aplikasi
ke server facebook. Selanjutnya server facebook akan merespon
dan mengirimkan data ke server aplikasi. Setelah diproses di server
aplikasi, ia akan mengirimkan dokumen dalam format FBML yang
dikirim ke server facebook. Oleh facebook, dokumen diproses dan
menghasilkan dokumen HTML yang dikirim ke halaman kita.
26
Gambar 2. 3 Arsitektur Facebook
2.2.4.2.Facebook Framework Components
Dalam facebook flatform, terdapat komponen-komponen
yang bisa kita libatkan dalam source code kita. Beriut ini adalah
komponen-komponen dari facebook framework.
a. Facebook API
API singkatan dari Application Programming
Interface. Facebook API adalah adalah jantung aplikasi
kita. Facebook API adalah antarmuka pemrograman web
services (web service programming interface) untuk
mengakses layanan utama facebook (profile, friends,
photo event). API ini berbasis arsitektur REST
(Representational State Transfer).
b. FBML ( Facebook Markup Language)
Facebook Markup Language adalah bahasa seperti
HTML Versi facebook untuk menampilkan halaman di
kanvas facebook. Berikut ini tiga fakta tentang FBML:
· FBML berisi juga subset element-elemen HTML.
Elemen-elemen umum seperti p, ul, dan h1 juga
bagian dari FBML.
27
· FBML juga mendukung untuk elemen script dan
style. Namun, beberapa kode javascript dapat
didukung di facebook javascript. Elemen style
tidak dapat kita gunakan untuk mengakses
eksternal style sheets. Kita hanya dapat
menggunakan untuk internal CSS.
· FBML menyediakan beberaapa ekstensi untuk user
interface secara khusus
c. FQL ( Facebook Query Language)
Facebook Query Language (FBQL) adalah interface
berbasis SQL ke data facebook. Melalui FBQL, kit adapt
mengakses banyak tabel di database facebook seperti user,
friend, group, group_member, event, event_member,
photo, album, dan photo_tag. FBQL adalah bahasa query
yang mirip dengan SQL standar, namun ada beberapa
batasan:
· Pernyataan SELECT harus dalam satu tabel dalam
satu waktu.
· Query join tidak diijinkan.
· Sebuah query haruslah dapat diindeks.
d. Facebook Javascript
Seperti yang telah disebutkan di atas, facebook tidak
mendukung javascript standar di dalam elemen scriptnya.
Namun ada kode javascript (yang dalam jumlah sangat
terbatas) yang dapat dijalankan di facebook melaui
facebook javascript.
2.2.4.3.Autentikasi Facebook Platform Facebook menggunakan OAuth 2.0 untuk
otentikasi dan otorisasi. Di Web Desktop, untuk mengotentikasi
28
pengguna menggunakan aliran sisi server kita harus mengikuti
langkah-langkah berikut:
a. mengarahkan pengguna ke dialog Oauth
b. Pengguna diminta untuk mengizinkan menggunakan
aplikasi
c. Pengguna diarahkan kembali ke aplikasi
d. Tukarkan kode untuk akses token pengguna
e. Pengguna dapat membuat permintaan ke graph API
Otentikasi yang berhasil nantinya akan memperoleh token
akses pengguna yang dapat digunakan untuk membuat permintaan
ke API Facebook. Ada beberapa arus otentikasi dan masing-masing
berlaku untuk platform yang berbeda.
Ketika aplikasi memperoleh token akses dari Facebook, itu
akan berlaku segera dan itu dapat digunakan dalam permintaan ke
API untuk beberapa periode waktu yang ditetapkan oleh Facebook.
Setelah periode itu berlalu, token akses dianggap telah berakhir dan
pengguna akan perlu dikonfirmasi lagi agar aplikasi Anda untuk
mendapatkan token akses baru. Durasi yang token akses yang
diberikan berlaku tergantung pada bagaimana access token itu
dihasilkan.
Gambar 2. 4 Autentikasi Facebook
29
2.2.5. Twiter
Twitter adalah layanan jaringan sosial berdasarkan informasi real-
time yang menghubungkan pengguna dengan terbaru cerita, ide,
pendapat dan berita. layanan semacam ini disebut layanan
microblogging, karena berbeda dari blog tradisional di bahwa isinya
biasanya lebih kecil dalam ukuran file yang sebenarnya dan agregat.
Twitter memungkinkan pengguna untuk bertukar elemen kecil dari
konten seperti kalimat pendek, gambar individu atau link video. Ini
diciptakan oleh Jack Dorsey dan diluncurkan pada bulan Juli 2006.
Layanan ini cepat mendapatkan popularitas di seluruh dunia dengan
lebih dari 140 juta pengguna aktif.
Penggunaan layanan jaringan sosial ini sangat sederhana. Pengguna
harus membuat profil, menemukan akun yang menarik dan mengikuti
percakapan. Pengguna juga dapat mengirim sesuatu ke net atau
memperbarui. potongan-potongan informasi yang disebut "Tweet".
Tweet memiliki bujur 140 karakter
Twitter adalah alat yang sangat berguna untuk bisnis. Keterampilan
yang paling penting bahwa Twitter dapat menawarkan adalah kapasitas
menghubungkan perusahaan dengan pelanggan secara real time.
Perusahaan menggunakan Twitter untuk berbagi informasi dengan
cepat dengan orang-orang yang tertarik pada produk mereka,
membangun hubungan dengan pelanggan, mitra dan influencer.
2.2.5.1. Twitter API dan Library
Twitter memiliki tiga API yang berbeda: Search API, rest
API dan API Streaming. Search API memungkinkan pengguna
untuk query untuk konten Twitter. Mencari kata kunci tertentu
dalam tweet, menemukan tweet referensi pengguna tertentu, atau
mencari tweets dari pengguna tertentu. Dengan API ini pengguna
dapat memiliki akses ke data di sekitar Trends. Tetapi jika
30
kebutuhan pengguna untuk query Search API pada kecepatan yang
ekstrim, maka lebih baik menggunakan API Streaming.
REST API memungkinkan pengembang untuk mengakses
beberapa primitif inti dari Twitter, seperti jadwal, update status
atau informasi pengguna. Jika salah satu pengembang ingin
membangun satu aplikasi dengan profil dari satu pengguna, nama,
gambar, pengikut, tweet terakhir dan sebagainya ini adalah API
yang tepat. Selain menawarkan program akses ke obyek garis
waktu, status, dan user, API ini juga memungkinkan pengembang
banyak peluang integrasi untuk berinteraksi dengan Twitter.
Melalui API ini, pengguna dapat membuat dan mengirim kembali
ke Twitter, membalas tweet, retweet dan sisanya dari fungsi yang
ditawarkan oleh Twitter.
API Streaming adalah untuk pengembang yang memiliki
kebutuhan data yang intensif. Jika aplikasi untuk membangun
sesuatu yang terkait dengan penelitian analisis, API ini adalah yang
benar. Pengguna bisa mendapatkan jumlah besar kata kunci yang
akan ditentukan dan dilacak, mengambil tweet geo-tagged atau
mendapatkan status publik dari pengguna. Langkah pertama harus
bekerja dengan API pencarian pertama, dan jika aplikasi sedang
tingkat-terbatas atau jelas bahwa aplikasi memiliki kebutuhan
query sangat agresif, maka perlu untuk pindah API Streaming.
Sumber daya REST API dibagi sesuai dengan tujuan dari
query: jadwal, tweet, pencarian, streaming, pesan langsung, teman
& pengikut, pengguna, pengguna disarankan, favorit, daftar,
account, tempat danlain lagi. Beberapa contoh adalah sebagai
berikut:
a. Timelines:
· GET_statuses/home_timeline: Mengembalikan status
terbaru, termasuk retweets jika ada, diposting oleh
31
pengguna otentikasi dan pengguna mereka ikuti. Ini
adalah waktu yang sama dilihat oleh pengguna ketika
mereka login ke twitter.com.
· GET_statuses/mentions: Mengembalikan 20 recent
mentions (status yang berisi username) untuk
pengguna otentikasi. Metode ini hanya bisa kembali
sampai 800 status.
· GET_statuses/retweeted_by_me: Mengembalikan 20
tweet terbaru yang diposting oleh pengguna yang
terotentikasi.
· GET_statuses/retweeted_to_me: Mengembalikan 20
tweet terbaru yang diposting oleh pengguna
terotentikasi
· GET_statuses/user_timeline: Mengembalikan 20
status terbaru diposting oleh pengguna otentikasi. Hal
ini juga memungkinkan untuk meminta waktu
pengguna lain dengan menggunakan
SCREEN_NAME atau parameter userid.
b. Friends & followers:
· GET followers/ids: Mengembalikan array ID
numerik untuk setiap pengguna mengikuti
pengguna tertentu. Metode ini ampuh bila
digunakan bersama dengan pengguna / lookup.
· GET friendships/show: Mengembalikan
informasi rinci tentang hubungan antara dua
pengguna.
· POST friendships/create: Memungkinkan
pengguna otentikasi untuk mengikuti petunjuk
yang ditentukan dalam parameter ID.
Mengembalikan pengguna berteman dalam
format yang diminta ketika sukses.
32
Mengembalikan string yang menjelaskan kondisi
kegagalan ketika gagal.
2.2.5.2.Twitter Authentication a. Sign in with twitter
implementasi sign in dengan browser dan web mobile
didasarkan pada protokol OAuth. Langkah berikutnya
menunjukkan cara mendapatkan token akses untuk masuk aliran
sehingga aplikasi dapat berinteraksi dengan baik dengan API
Twitter.
1. Memperoleh request token
Hal pertama yang pengembang harus tahu adalah bahwa
aplikasi tersebut harus mendapatkan request token dengan
mengirimkan signed message "POST oauth / request token ".
Hal ini diperlukan satu parameter yaitu oauth callback, yang
merupakan Url-encode dari url dimana pengguna aplikasi akan
diarahkan ke ketika mereka selesai pada proses selanjutnya.
Aplikasi harus memeriksa status HTTP respon. Nilai yang
benar dari jawaban tersebut adalah 200, nilai lain menandakan
dalam proses permintaan. Bagian body dari respon tersebut
akan memuat oauth_token, oauth_token_secret, dan
oauth_callback_confirmed. Hal ini diperlukan bahwa aplikasi
memverifikasi oauth_callback adalah benar dan menyimpan
dua nilai lainnya untuk langkah berikutnya.
33
Gambar 2. 5 Request Token Twitter
2. Me-redirect user
Dalam langkah ini mengarahkan pengguna ke twitter
sehingga mereka dapat menyelesaikan aliran yang sesuai.
Aliran ini berarti bahwa pengguna diminta untuk
memungkinkan aplikasi dan memberikan izin sehingga
aplikasi dapat tweet dan membuat tindakan lain atas nama
pengguna. Kemudian Twitter akan mengarahkan kembali ke
URL disahkan pada langkah sebelumnya.
Untuk mengarahkan pengguna, itu perlu menggunakan
GET oauth/authenticate dan memuat request Token yang
diperoleh pada langkah sebelumnya sebagai parameter
oauth_token.
34
Gambar 2. 6 Redirect User Twitter
Status sign in akan berjalan di salah satu dari tiga cara
tergantung pada status pengguna yaitu:
a) Signed and approved
Jika pengguna masuk di twitter.com dan telah
menyetujui aplikasi, mereka akan segera diautentikasi
dan kembali ke callback URL dengan permintaan
OAuth Token yang masih berlaku.
b) Signed in but not approved
Jika pengguna masuk ke twitter.com namun belum
menyetujui aplikasi, permintaan untuk berbagi akses
dengan aplikasi akan ditampilkan. Setelah menerima
permintaan otorisasi, pengguna akan diarahkan ke
callback URL dengan OAuth token permintaan yang
masih berlaku.
c) Not signed in
35
Jika pengguna tidak masuk di twitter.com, mereka akan
diminta untuk memasukkan kredensial mereka dan
memberikan akses untuk aplikasi untuk mengakses
informasi mereka pada layar yang sama. Setelah masuk,
pengguna akan dikembalikan ke URL callback dengan
permintaan OAuth Token yang masih berlaku.
Gambar 2. 7 Status Sign In Twitter
Jika otentikasi berhasil, aplikasi akan menerima
permintaan dengan parameter oauth_token dan
oauth_verifier.
3. Mengubah request token ke access token
Untuk mengkonversi request token menjadi akses token
yang dapat digunakan, aplikasi harus membuat permintaan
untuk POST oauth / akses token, dengan parameter
oauth_verifier.
Respon yang sukses berisi parameter oauth_token,
oauth_token_secret, user id, dan screen_name. Hal ini
diperlukan untuk menyimpan token dan token secret untuk
diautentikasi permintaan di masa mendatang untuk API
Twitter.
36
Gambar 2. 8 Access Token Twitter
b. 3-legged authorization
Alur OAuth 3-legged memungkinkan aplikasi untuk
mendapatkan token akses dengan mengarahkan pengguna ke
Twitter untuk mengotorisasi aplikasi. alur ini hampir identik
dengan alur yang dijelaskan dalam Implementasi Masuk dengan
Twitter, dengan dua pengecualian:
a) GET oauth/authorize endpoint digunakan sebagai
pengganti /oauth/authenticate
b) Pengguna akan selalu diminta untuk mengotorisasi akses ke
aplikasi tersebut, bahkan jika akses diberikan sebelumnya.
Gambar 2. 9 3-Legged Autorozation