TMPLEMENTASI METODE
REST
REQUEST
WEB
SERVICE
UNTUK
REPRESENTASI
BERBASIS
TIMELINE
PADAYOUTUBE
INFORMASI
Ryan Peterzon Hadjonr
220 43 527 @students.ukdw. ac. id
Restyandito2
dito@ukdw.ac.id
Abstruct
Developing video search application using the service of a third party data (resources)
provider is a complexprocess. Therefore to obtain the desired data, an
fficient
communicationmethod is needed. This research explored the use of ilEST request communication method by using URL to identifvideo resources through YouTube API data. Video data that were identified
will
then be processed to get more relevant video search. Relevancy of the search result wasdetermined by applying the mechanism of relevance-based system and user-based system.
Based on the experiment analysis,
it
is concluded that key word has an important role indetermining the relevance of the search result, as it is neededfor timeline based representation.
Keywords.' web service, rest request, youtube data
API
1.
Pendahuluan
Pemanfaatan data yang disediakan oleh pihak luar sebagai resource menjadi salah
satu keunggulan dalam pengembangan aplikasi web yang saat ini telah memasuki generasi
kedua dan dikenal dengan nama Web
2.0.
Proses pemanfaatan datadari
pihik
luarmenggunakan web service sebagai sarana penghubung untuk mempermudah pengembangan
aplikasi web.
Dalam mengakses data
daiweb
service, aplikasi web yang dibangun membutuhkanteknik komunikasi yang memungkinkan sumber (resource) dapat teridentifikasi melalui
pemanggilan sebuah request. Salah satu teknik komunikasi yang dapat digunakan untuk
memenuhi tujuan tersebut adalahREsT (Representational State Transfed. REST merupakan
teknik komunikasi web yang menggunakan HTTP (Hyper
kxt
Transfer Protocol) sebagaimetode
transfer data serta
XML
(eXtensibleMarkup
Languange) sebagai bentukrepresentasi data.
Dalam penelitian ini, penulis mencoba membangun sebuah aplikasi pencarian video
berbasis web dengan mengimplementasikan metode REST requesr melalui layananYouTube
Web Service untuk merepresentasikan kembali informasi yang didapat kedalam bentuk
timeline. Agar dapat direpresentasikan dalam bentuk timeline, maka seluruh dxavideo yang
berada didalam
timeline
harus relevan dengan keyword masukan. Mekanisme yang digunakan untuk menentukan relevansi adalah dengan menerapkan relevansi berbasis sistemtPtogram
Studi Teknik Informatika, Fakultas Teknologi Informasi, Universitas Kristen Duta Wacana
-Program
Studi Teknik Informatika, Fakultas Teknologi Informasi, Universitas Kristen Duta Wacana 'Program Studi Teknik Informatika, Fakultas Teknologi Informasi, Universitas Kristen Duta Wacana
Willy Sudiarto Raharjo3
willysr@ti.ukdw. ac. id
Ryan Peterzon Hadjon, Restyandito, Willy Sudiarto Raharjo
dan relevansi berbasis pengguna. Penentuan relevansi didasarkan pada kemampuan internal sistem serta feedbacfr eksternal dari pengguna. Dengan demikian relevansi hasil pencarian
video
dengan katakunci
masukan yang ditampilkanoleh
sistem akan menjadi lebih obyektif.2.
Tinjauan
Pustaka
2.1. REST (Representationul State Transfer)
Representational State Transfer (REST) merupakan model arsitektur untuk perangkat
lunak hypermedia terdistribusi. Beberapa aspek penting yang mendasari model arsitektur REST ini antara lain :
r
ResourcesSpesifikasi
URI
dalam RFC 2396 menyebutkan resource sebagai segala sesuatuyang memiliki identitas. Allamaraju mendefinisikan res ourc e sebagai segala sesuatu
yang dapat diidentifikasi oleh
URI
(Allamaraju, 2010). Dengan demikian URI(Unrfurm Resource ldentifier) merupakan penyedia referensi kepada sesuatu yang
memiliki identitas.
.
RepresentationSecara umum, resource dapat diidentifikasi dan diakses melalui konstruksi URL
ataupun URI. Semua hal dalam web, baik itu berupa halaman, gambar, dan lainnya pada dasarnya dapat dikategorikan sebagai resource (Glover, 2008). Namun tidak semua resource dapat diakses. Oleh karena
itu
dalam konteks web, bukanlahresource yang akan diakses, melainkan representasi dari resource itu sendiri. Sebuah
resource dapat direpresentasikan dalam banyak model.
o
StateDalam pemrograman berorientasi objek, state dari sebuah objek merupakan data
yang dibawa oleh variabel anggota dari objek tersebut. Hal
ini
sangat pentingjika
terdapat operasi yang memiliki banyak langkah, maka state sangat dibutuhkan olehobjek untuk mengingat nilai-nilai yang dibawapada setiap langkah.
o
Transfer (HTTP methods)Salah satu karakteristik RESTfuI
Web
Service seperti yang disampaikan oleh Rodriguez adalah penggunaan metode transfer dan produksi data yang difujukanbagi aplikasi klien untuk
melakukan
pengambilan resource, pemanggilan datadari
Web S€rver, maupun melakukan eksekusi terhadap query yang nantinyadihrrykan
akan direspon oleh Web Server dengan mengembalikan resource yangt€pat s€suai dengan request yang dikirimkan (Rodriguez, 2008). Adapun metode
tralsfer
yang dilakukan dalam model arsitekturweb
RESTini
menggunakan metode yang sama pada protokol web HTTP. Arsitektur sistem berbasis REST dapatdilihat pada Gambar
1.
j2.2. YbuTube Data API
Raymond Yee mendefinisikan
public
API
sebagai "...suatu channel resmi yangdisediakan oleh sebuah website untuk memberikan akses secara terprogram terhadap data
maupun service yang ada dalam website tersebut." (Yee, 2008, hlm. 23). YouTube Data API
merupakan sebuah public
API
yang disediakan oleh YouTube untuk dapat dimanfaatkandalam membangun sebuah client application grna berinteraksi dengan video-video resource
yang ada didalamnya. Model interaksi tersebut berupa suatu request-response yang dapat
dibentuk melalui pemanggilan sebuah URL disertai dengan parameter-parameter pendukung yang dapat disesuaikan dengan kebutuhan pengguna.
Dengan menggunakan YouTube Data
API, kami
dapat melakukan pencarianImplementasi Metode Rest Request pada youtube Web Service
Un tuk Repres e n t a s i Info rm a s i B erb a s i s Time lin e
terhadap video-video tertentu serta dapat menampilkannya kembali dalam format yang diinginkan berdasarkan parameter masukan pada URL yang dibentuk. Contoh pembentukan
URL pada YouTube
API
menggunakan api projectionying
rn"rerpon request pencarianvideo dengan kata kunci "skateboarding dog" dapatdilihat pada potongan uRL beiltcut:
htl-p
:/
/gdata
. youLuire . comlfeeds
/api
/yideos
?q:s
kafeboardinq+do
&
start-index:2
1&nax-results:1
0&v:2
Gambar 1. Arsitektur Sistem Berbasis REST
3.
Hasil dan
Pembahasan
3.1. Konstruksi URL Berbasis RBST
Proses konstruksi URLberbasis REIZ oleh sistem dilakukan dengan menggunakan
base UkL yang telah disediakan oleh YouTube Data API untuk memudahkan pembentukan
REST request
selanjutnya.
Berikut
ini
adalah
base
ukL
yang
digunakan:http
: //
gdaLa.
youtube. com/feeds
/
api
/.
Base
URL
tersebut merupakankonstruksi
URL
dasar yang nantinya dapat ditambahkan sesuai dengan kebutuhan untukmengakses video-video tertentu pada YouTube. Konstruksi URL untuk setiap jenis video
dengan menggunakan REST request pada YouTube berbeda-beda namun base URL yang digunakan tetap sama.
3.2. Response URL Berbasis REST
Hasil pengiriman request
IIRL
berbasis REST yang dikembalikan oleh YouTubeberupa dokumen
XML
yang mendeskripsikan video-video sesuai dengankata
kuncimasukan pada sistem. Dokumen
XML
ini tidak secara eksplisit mengernbalikan video yangdiminta melainkan hanya memuat informasi mendetail tentang video yang diminta. Oleh karena itu, dibutuhkan proses parsing lebih lanjut pada dokumen
XML
yang dikembalikantersebut untuk menampilkan video yang sesuai dan relevan dengan kata kunci masukan.
3.3. Parsing dokumen
XML
dariYouTubeProses parsing dokumen
XML
yang dikembalikan oleh YouTube penting dilakukanuntuk mendapatkan
video
yang diinginkan secara eksplisit sesuai dengan kata kuncimasukan pada forrn pencarian sistem. Secara sederhana, proses parsing
ini
dikerjakan olehI
I
openSearch:
totalResuits>12E(,
ci:e::Se-:='.-: --:--='?.e:..-:=><::=:--::=:::,: st
rtlndex>1<,/openSearch:startlndex><openSea:::-:---=::.s::-::33),,<:lenS
arch:
itemsPerPaqe>enlry><id>http
: //gdala.
youtube.
com/feeds/api/videoslnwGi<i
hD57i:</id
<published>2 O O 8 - 05- 1 7T1 5 : 20 : 56 . A OAZ</publ
i
shed><updated>2 C i 0 - 08-4TI1 :,00 : 45.
0002</updared><category
cheme:'
http
: /,/ schemas . goog I e . com / g / 20 0 5#ki nd'erm:' htcp
: / / gdaLa. yourube . com/ schemas /2 O 0 7#video' /)(category
cheme:' ht
tp
z / / gdaLa. yourube . cam / schemas /2 O 0 7 /categor
i es .cat'
erm-'Enlertainment'
l-abef:'Entertainment' /><category
cheme:'http
: / /gdaLa.youtube.
com/schemas120a'7 / keywords. caL Ie rm:r
finaf
'/>
,/ent r y>
/ tee(t2
a e 2
t
-st
St
!::i:*
l:i:::
:::.::---, :::--.*:-.:-:!:'-i.,.::,,3n1:J-;:
i:g-tagX-\{L
pada dOkUmenXML
r-
j.r.:-t: .l:- - .:, '::-l-:,:" r.:::--j::: j.':: ::..s:s
Dembacaan tersebut akan dipilih;,:-j.
..-\"1' .i. i.:<':.:r-j:. -=t--.1 r.:?-l*l:t- ::::3:::
dalam
mglakUkan pencafian-;fl.criil r.;'-: r--:,-. ll;:-.-:J- \t:--:-- -::-t:.:i:::-l.ti{ukan
pembacaan tefhadap'-r--t--rr,i1
j,l.{- :::j"Jt-i.
.*-;uu:::-:::: -':--.* l.rus
mampu memahamr danl:'iLi:--:--- :ll*.-l-j i- r*tl:;l-
]f l'1._ ',::-i i.-i:::f
:--r^":-- -::. \..:TUbe SeCara mendetail.
(l.rt'"it
N,:a:,J::
J;,i::-.:i \\1L
-.
t:: ji:::iLi-:i::
:J.l.ijl
sereiti beriL-ut:<::'-'.
- ---:]::::--='-.
-' =:,:::-:.;='-,"-: -:' . :==:
r:-__. -._-.-_, ,_: _ _ _:
xi:.-.1s:apa:ta---c: ;-:-. -a= =--::. =::-' xmlns:media:'la--p : s==:::-..'=:.- -. ::::. :::::
Dari hasil analisa terhadap dokumen
XML
yang dikembalikan oleh YouTube, kami mendapati bahwa untuk setiap informasi video yang dikembalikan oleh YouTube padadokumen
XML
tersebut masing-masing dipisahkanoleh
tag
<entry></entry> sebagaipenanda antara satu video dengan video lainnya yang ditemukan melalui proses pencarian
sebelumnya.
Hal
ini
akanlebih
memudahkan dalam melakukan pembacaan terhadapdokumen
XML
dari Youtube karena fokus pembacaan hanya akan mengarah pada semuatag-tag yang berada dalam tag <entry><lenlry> tersebut. Seluruh tag
XML
yang beradadalam tag <entry></entry> kemudian akan dibaca oleh sistem dengan mengidentifikasi
namespace dan entitas-entitas
XML
yang berada didalamnya. Sekumpulan fiama tag-tagXML
yang terkumpul menjadi satu akan membentuk namespace sementara entitasXML
sendiri merupakan kode simbol yang digunakan
untuk
melakukan proses encode terhadapkarakter-karakter spesial yang berada dalam dokumen XML.
Namespace digunakan untuk mengorganisir kumpulan-kumpulan tag dalam
XML
menjadi bentuk logis yang dapat dipahami oleh sistem ketika akan melakukan pembacaan terhadap dokumen XML.3.4. Rekonstruksi Skema Data
XML
dari YouTubeDengan menganalisa skema data
XML
hasil kembalian YouTube, kami mendapati bahwa struktur XML tersebut padadasarnya
merupakan susunan elemenatau
hirarki elemen yang didalanmya memuattipe
hubungan atau relasi induk-anak (trtarent-childrelationship).
Elemen yang dimaksud dalam hal
ini
merupakan konsep abstrak dari tag-tagXML
dan data yang termuat didalamnya. Hubungan antara elemen
ini
sangat berpengaruh dalamproses ekstrasi terhadap data yang dibutuhkan. Setiap elemen yang ditutupi oleh elemen
lainnya merupakan elemen anak sedangkan elemen yang menutupinya merupakan elemen
induk. Oleh
karenaitu,
proses ekstrasi terhadap skema dataXML
YouTube harusmemperhatikan susunan hirarki serta hubungan antar elemen tersebut.
Dengan melihat konsep tersebut di atas, maka kendala pertama yang dihadapi dalam
penelitian
ini
adalah bagaimana menerapkan konsep tersebut pada sistem untuk mengaksesImplementasi Metode Rest Request Pada Youtube Web Service Untuk Repres entas i Informasi B erb asis Timeline
elemen-elemen anak dalam dokumen
XML
yang dikembalikan oleh YouTube. Penggunaantipe data biasa untuk menangani
kendala
tersebut tidak dimungkinkan karena memilikiketerbatasan dalam penerapan konsep yang bersifat abstrak.
Solusi untuk kendala ini pada sistem adalah dengan menggunakan tipe data objek PHP. Objek merupakan tipe data khusus pada PHP yang mengkornbinasikan data serta
fungsi
yang
dibutuhkan menjadi sebuah konstruksi tunggal. Seluruh hirarki elemen padadokumen
XML
akan berada dalam variabel tunggal yaitu objek. Objek tersebut kemudian dapat digunakan untuk mengakses elemen-elemen pada dokumenXML.
Objek memiliki method berupafrngsi
yangterikat
pada objekitu
sendiri serta memungkinkan untuk dilakukan manipulasi terhadap data objek didalamnya. Pada setiap objek yang memuat dataXML,
keberadaan method memungkinkan sistem untuk mengakses elemen serta atributyang dimiliki oleh elemen anak.
3.5. Analisis Relevansi Hasil Pencarian Sistem
Proses
untuk
menentukan relevansihasil
pencarian sistem dilakukan dengan menerapkan sejumlah cara diantaranya melakukan seleksi awal pada konstruksi REST IIRL,melakukan filterisasi terhadap skema data
XML,
dan penggunaan onlinepolling
sebagaipenentu relevansi hasil pencarian dari sisi pengguna. Seleksi awal pada konstruksi REST
URL dilakukan dengan menambahkan sejumlah parameter pada URL yang dikirimkan ke
YouTube Data
API
sebagai konstruksi rest request. Parameter yang dimaksud adalahparameter orderby dengan
nilai
berupa relevance serta parameter start-index dan max-results yang berfungsi membatasi jumlah video yang ditampilkan pada timeline. Pembatasanjumlah video dilakukan untuk mencegah request time out oleh browser apabila semua video dari YouTube ditampilkan secara bersamaan pada satu halaman. Contoh pencarian sistem
dapat dilihat pada Gambar
2
sedangkan contoh relevansi berbasis pengguna dapat dilihatpada gambar 3.
ffiffi
Lt-:*..**,
Ah*ut
Technicsl
Youtube
& Netwark
Timeline
Support
- "*
::.":-'
''''""""'
qffiJ"-
ryCSearch Youtsb€ Vtdecc in
a new different way
':.. ..r '.Mgq .-, , -. i
s#ffi$ffiffi
*lx*i*ffim
Effi;;;:
iH
w;**nirum:#
Help
*nd
Send
ssrne
lnf0rmation
Feedh**k
5.' !a' la I Ed9 rd"kn'r
c* r '.9 t,ot* ^n;.* -.4.1r q
Gambar 2. Contoh Pencarian Sistem
Ryan Peterzon Hadjon, Restyandito, Willy Sudiarto Raharjo
-**-"19*fu:;***S&iii&&s.i''€i:#A;:W&i:,i:;ffi &i.i'*#.:l&;..&'*4{i:';r3,
1!ie$;;;le[iel*t:*i::a#4l*$s{.rr,lii:.i;lg$*&sggyylrrli qri*4ft1tri :-r':ffip""''a"r$&w'
+ l':." * 4; Srqil4q5tr.d{-4r,.*it. * -i:'
wIr''
Abnut
Yor*tube Tirne!ine
tl,:qal9:,ir.,1@*91P:,.' :: :i: ;a:-:. 1*.r - *4 i '
nd some
edbaek
x*t*IFg?ee
:,@
"'Gambar 3. Relevansi Berbasis Pengguna Menggunakan Online Polling
Filterisasi terhadap skema data
XML
diimplementasikan pada sistem denganmelakukan pencarian kata kunci masukan hanya pada bagian judul serta deskripsi dari video
pada skema data
XML
yang dikembalikanoleh
YouTube.Jika
katakunci
masukanditemukan
pada salah satu
dari
kedua bagian tersebut,maka
video terkait
akandikategorikan sebagai video yang relevan oleh sistem sehingga dapat ditampilkan pada
timeline. Jika tidak ditemukan maka video akan dianggap sebagai video yang tidak relevan
sehingga
tidak
ikut
ditampilkan pada timeline. Proses hlterisasiini
perlu
dilakukan mengingat hasil kembalian YouTube belum sepenuhnya relevan meskipun telah ditambahkan parameter orderby dengan nllai relevance pada saat melakukan request. Halini
dikarenakan YouTube sendiri melakukan pencarian kata kunci pada seluruh properties yang
dimiliki
oleh sebuah video tanpa memperhatikan seberapa erat keterkaitan antara properties tersebut dengan kata kunci yang dimaksud. Akibatnya seluruh video yang mengandungkata kunci pencarian dalam semua properties yang melekat pada video akan ditampilkan olehYouTube dan dikategorikan sebagai hasil pencarian yang relevan. Implementasi proses
filterisasi
ini
dilakukan oleh sistem dengan melakukan pencocokan pola string didalamstring menggunakan fungsi regular expression PHP preg-match0.
Pada pengujian sederhana dilakukan pencarian menggunakan keyword "ukdw" dan
hasilnya dapat dilihat pada Garnbar 4. Terlihat bahwa hanya video-video yang berhubungan dengan UKDW saja yang ditampilkan pada timeline sistem. Hal yang berbeda akan tampak
ketika
kita
menggunakan keyi,vordyang
sama, akan tetapikita
menggunakan kotak pencarian pada halaman YouTube secara langsung, seperti yang terlihat pada Gambar 5.Terlihat bahwa terdapat beberapa video yang tidak relevan dengan
UKDW
namun tetapditampilkan sebagai hasil dari proses pencarian.
Implementasi Metode Rest Request Pada Youtube Web Service
Un tu k Repre s ent as i I nfo rm as i B erb as i s Tim e lin e
&ffi:j;:*
sil--"t
About
Techni*alYoutube
& NetwprkTirn*lin*
Suppcrtffi
ffi
ffi
l{elp and
lnformation
X* ri :?:,: ret;ii d*,grii i* aiaqqrf & s(ni!
SeP e5€ iF?
Se*reh Ysr.rtiibe Vidscs in
a new di$erent way
mE]wru??:{*
S*nd ssme
F*edbs*k
r::"9 *, *1!5! eer$ *t
r*rljdr rila.a6F)*FJ
F tli I [! f:r 4]:.1 !i &:116
Gambar 4. Hasll Pencarian Pada Sistem
3.6. Analisa
Dalam
mendukung analisisdata hasil
pencarian, maka dilakukan percobaanpengujian hasil pencarian video padaYouTube dan sistem menggunakan 10 kata kunci yang
berbeda yang hasilnya dapat dilihat pada Tabel 1.
Tabel 1.
Perbandingan hasil pencarian YouTube dan Sistem
llasil.Pencarieiir'.
",i
Yidro prrt4 $irtem Kettrnni*n
ReleVan ?idak
R6leYrin
1. Hasil relevansi
dilihat dari ada atau
tidaknya keyword yg dicari pada tag
judul dan deskipsi
2. Data hasil pencarian
dapat berubah
sewaktu-wakhr
karena bersifat
ffit#
99 98
100
bandung
samsung galaxy s
r00
100100
94| 2nel
how to train your
dragon l, K""g/i, po"do
2
t00
946
100
0,al
!
973
100
r00
i
my girlfriend is agumiho 100
dinamis.
,3. Data diambil pada
tanseal 14
ir;i
20t1.
Ryan Peterzon Hadjon, Restyandito, Willy Sudiarto Raharjo
You{Flffi
S6€r€tr r€sltlt* f{rr uka*rdr/
ef**s A #a*+ err*r,{** *e#qrd & tbied}r ***trFi*
Gambar 5. Pencarian pada halaman YouTube
4.
Kesimpulan dan Saran
4.1. KesimpulanProses pengambilan
video
padaYouTube
oleh
sistem
diimplementasikanmelalui
konstruksiURL
berbasis REST yangdikirimkan
kepada YouTube denganmemanfaatkan
Web
Serviceyang
dimilikinya.
Hasilnya kemudian
akan disaringuntuk
mendapatkan
video
yang
relevan. Relevansi pencarian
video
sangatdipengaruhi
oleh pemilihan kata
kunci
yang
tepat
Berdasarkanhasil
pengujian,Visre* llelxi! tidr*rr t3*rh!rr"ilr1*ls!: ****r#i} *i*gs krr**i 'u&{9w' i&ut dn**].silld** *te*1 \.ss{il}!*
Implementasi Metode Rest Request pada youtube web service
Untuk Repres entasi Informas i B erbas is Timeline
penggunaan
kata kurrci yang pendek (minimal
4
karakter/huruf)
pada
sistem
memiliki
perbedaan tingkat relevansi yang lebih baikjika
dibandingkaniengan hasilpencarian yang ditampilkan oleh youTube.
4.2. Saran
Sistem bisa dikembangkan dengan menerapkan antarmuka yang lebih dinamis dan
diupdate dengan YouTube Data ApI terbaru.
Daftar Pustaka
Allamaraju, s. (2010). RESrfut web services cookbook,l't edition. Sebastopol,
cA:
O'Reilly Media, Inc.
Glover, A. (2008)' Build a
RESffil
Web Service : An introductionto
REST and the Restlessframework. Diakses 15 Oktober 2010, dari
http ://www ibm. com/developerwork s r j ava/ nxoials/j -resvsection2.html
Rodrjsuez, A. (2008). RESfful Web Services : The Basiis. Diakses 10 Oktober 2010, dari
http : //www. ibm. com/developerworks/webservices/library/ws-restfu
l/
Yee, R. (2008). Pro web 2.0 Mashups : Remixing Data and web services. Berkeley,
cA:
Apress Company, Ltd.