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
8
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 WirelessLAN (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 DiffieHellmann 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 readonly. 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 <=
2
len | 0x8000, two lower
0x3FFF 0x4000 <= len <=
bytes 3
len | 0xC00000, three
18
0x1FFFFF
lower bytes
0x200000 <= len <=
4
Len|0xE0000000
0xFFFFFFF 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 katakata 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 API
untuk
for
MS
Windows
fungsi dasar yang dapat dilakukan oleh komputer. Seperti proses I/O, eksekusi program. Programming
API
Languages
untuk
yang
digunakan Java API
memperluas kapabilitas dalam
melakukan
eksekusi terhadap suatu bahasa pemrograman. Application
API
yang
digunakan API for mySAP
Services
untuk
(BAPI/Business
mengakses data dan
Application
layanan yang disediakan
Programming
dari suatu aplikasi.
Interface)
Infrastructure
Digunakan untuk
Amazon
Services
mengakses infrastruktur
(Elastic
dari suatu komputer.
Compute Cloud)
Infrastruktur
disini untuk
adalah
akses
komputer beserta
virtual
peripheral
EC2
untuk
seperti computing
dan
storage,
Amazon S3
aplikasi, dan lain-lain.
(Simple
Storage
Service) untuk menyimpan data
23
dalam
jumlah
besar. Web Services
API
yang
digunakan Facebook Graph
untuk
APIyang
mengakses content dan
digunakan untuk
layanan yang disediakan
mengakses
oleh suatu web
informasi yang
application.
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 realtime 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
Mengembalikan format
yang
dalam
pengguna diminta
parameter berteman ketika
ID. dalam
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