BAB 2
TINJAUAN PUSTAKA
2.1 Arsitektur Perangkat Lunak
Arsitektur perangkat lunak adalah sekumpulan pernyataan yang menggambarkan komponen perangkat lunak dan fungsi-fungsi yang ada pada komponen tersebut. Ia menggambarkan struktur teknis, batasan-batasan, ciri-ciri, serta antarmuka pada komponen-komponen tersebut. Arsitek merupakan rancangan fisik sistem dan oleh karena itu membutuhkan rencana yang matang pada saat pembuatannya [6].
Arsitektur perangkat lunak merupakan struktur sebuah sistem, yang meliputi elemen perangkat lunak, sifat (property) yang tampak dari elemen itu, serta relasi diantara elemen-elemen tersebut. Sifat yang tampak misalnya fungsi apa saja disediakan oleh elemen, bagaimana kinerjanya, bagaimana penanganan kesalahan, sumber daya apa saja yang dipergunakan.
Ada tiga elemen yang saling berkaitan erat ketika berbicara tentang arsitektur perangkat lunak. Pertama adalah arsitektur teknologi, yaitu desain fisik dari suatu perangkat lunak. Kedua adalah infrastruktur teknologi, yaitu lingkungan pendukung yang termasuk di dalamnya perangkat keras dan perangkat lunak. Ketiga adalah perangkat lunak itu sendiri.
Istilah “arsitektur” berasal dari istilah yang digunakan pada bidang kontruksi bangunan. Sebuah bangunan memiliki desain fisik yang digambarkan dalam cetak biru arsitektur (architecture blueprint) atau disebut juga spesifikasi arsitektur. Suatu bangunan berada dalam lingkungan tertentu. Lingkungan ini bisa memberikan dukungan ataupun tidak terhadap bangunan tesebut.
Universitas Sumatera Utara
2.2 Web Service
Web service dapat didefinisikan sebagai sekumpulan fungsionalitas yang dapat diakses melalui Internet Protocol (IP) standar. Web service banyak digunakan untuk aplikasi sistem yang terdistribusi secara heterogen baik dari sistem operasi sampai model objek. Web service merupakan entitas yang dapat diprogram dan menyediakan beberapa macam fungsi seperti informasi, aplikasi logik dan diakses banyak platform melalui beberapa media yaitu Hypertext Transfer Protocol (HTTP) dan XML.
Kekuatan dari web service adalah menggunakan model messaging berbasis teks untuk komunikasi yang memungkinkan dapat beroperasi secara efektif pada platform yang berbeda. Oleh karena itu, web service banyak digunakan dan diakui secara luas. Pada dasarnya teknik dari web service adalah membuat sebuah pelayanan (service) terhadap segala masukkan dari client. Dalam hal ini web service dikembangkan dalam area ruang kerja berbasis web.
Konsep teknologi web service muncul untuk mendukung sistem terdistribusi yang berjalan pada infrastruktur yang berbeda. Dengan adanya kombinasi dari eXtensible Markup Language (XML) dan HyperText Transport Protocol (HTTP), web service yang berbasiskan XML sangat mungkin untuk diimplementasikan. Bahkan teknologi web service ini mampu menggantikan fungsi dari beberapa teknologi yang serupa yang telah berkembang yaitu Common Object Request Broker Architecture (CORBA), Dynamic Component Object Model (DCOM), dan Java Remote Method Invocation (RMI)[7].
Berbeda dengan aplikasi web konvensional, web service tidak mengembalikan interface yang dapat langsung dikonsumsi oleh user atau dalam arti kata lain tidak mengembalikan layanan berupa kode-kode HTML, tetapi web service mengembalikan layanan berupa XML yang berorientasi pada data dan tidak dapat dikonsumsi secara langsung oleh user.
Web service ternyata sangat berbeda dengan website. Perbedaan yang paling terlihat adalah website dibuat untuk memiliki tampilan (user interface) yang bagus
Universitas Sumatera Utara
sedangkan web service tidak memiliki tampilan. Itu karena web service tidak dibuat untuk berinteraksi langsung dengan user. Sesuai dengan kata service yang ada pada namanya, web service hanya menyediakan layanan. Layanan itulah yang kemudian akan digunakan oleh aplikasi lainnya. Dengan demikian, yang akan menjadi interface adalah aplikasi yang memanggilnya bukan web service itu sendiri.
Berikut dapat kita lihat perbedaan dari keduanya pada table di bawah berikut ini[3]: Tabel 2.1 Perbedaan Antara Web Site dengan Web Service WEB SITE
WEB SERVICE
Memiliki web interface.
Tidak memiliki interface yang bagus.
Dibuat untuk ber interaksi langsung
Dibuat untuk berinteraksi langsung
dengan user. Dibuat
untuk
dengan applikasi yang lain baik bekerja pada
web
browser.
berbeda sistem operasi atau konsep sekalipun. Dibuat untuk bekerja pada semua tipe client
applikasi
atau
perangkat
device.
Sebuah web service dapat dipanggil oleh aplikasi lain dengan menggunakan bantuan HTTP. Web service juga memungkinkan untuk dipanggil dengan menggunakan protokol lain seperti Simple Mail Transfer Protocol (SMTP), namun yang paling umum digunakan HTTP.
2.2.1 Ciri-ciri Web Service
Adapun ciri-ciri dari web service secara umum adalah : 1. Message-based 2. Standards-based 3. Programming language independent 4. Platform-neutral
Universitas Sumatera Utara
2.2.2 Cara Kerja Web service
Web service memiliki cara kerja yang tergolong cukup mudah. Dengan memanfaatkan beberapa protokol standar yang sudah ada diantaranya: 1. XML 2. WSDL 3. SOAP 4. UDDI
Simple Object Appication Protocol (SOAP) dan beberapa teknologi yang didukung seperti Web Service Description Language (WSDL) dan Universal Description Discovery and Integration (UDDI) merupakan kombinasi dari XML yang dikirimkan melalui HTTP. SOAP menyediakan transmisi data yang sederhana dan fleksibel, pemanggilan fungsi, pengembalian nilai, multiplatform, dan dapat dikembangkan dengan menggunakan berbagai bahasa pemrograman.
Saat ini sudah banyak sekali aplikasi yang menggunakan web service, salah satu contoh sederhana yang dapat kita lihat Alvin (2010). Dalam dokumentasi tugas akhir tersebut beliau berhasil membangun sebuah aplikasi portal untuk menangani masalah yang terjadi pada studio tugas akhir yang berada di Program Studi S1 Ilmu Komputer FMIPA USU. Masalah yang terjadi tidak lain adalah tentang sistem manual yang masih digunakan oleh para staf pegawai dalam memastikan proses pengerjaan tugas akhir mahasiswa berjalan dengan baik. Untuk itu beliau merancang sebuah aplikasi yang dapat menggantikan sistem manual tersebut menjadi sebuah sistem aplikasi komputer. Metode yang digunakan cukup sederhana yakni pada aplikasi tersebut sistem akan mengirimkan pesan melalui email kepada para dosen serta mahasiswa untuk informasi perkembangan tugas akhir yang akan dikerjakan oleh masing-masing mahasiswa yang telah mengambil matakuliah tersebut.
Dalam penelitian tersebut beliau menggunakan Service Oriented Architecture (SOA) dalam merancang aplikasi portal tersebut. Adanya teknologi SOA ini menyertakan fitur aplikasi yang memungkinkan sistem untuk secara otomatis mengirimkan email setiap dua bulan sekali kepada para dosen untuk menanyakan
Universitas Sumatera Utara
bagaimana perkembangan kegiatan mahasiswa dalam mengerjakan tugas akhir yang diambilnya sesuai dengan jadwal yang sudah ditentukan[2].
2.2.3 XML
Sejak tahun 1996, EXtensible Markup Language (XML) dikembangkan dan mendapatkan pengakuan dari World Wide Web Consortium (W3C) pada bulan Februari 1998. Teknologi yang digunakan pada XML sebenarnya bukan teknologi baru, tapi merupakan turunan dari Standard Generalized Markup Language (SGML) yang telah dikembangkan pada awal 80-an dan telah banyak digunakan pada dokumentasi teknis proyek-proyek berskala besar. Ketika HTML dikembangkan pada tahun 1990, para penggagas XML mengadopsi bagian paling penting pada SGML dan dengan berpedoman pada pengembangan HTML menghasilkan markup language yang tidak kalah hebatnya dengan SGML[8].
Pada dasarnya XML tidak jauh berbeda dengan HTML. Elemen yang digunakan pada XML ditandai dengan pembuka dan juga penutup. Bedanya, pada HTML harus didefinisikan dari awal tag dan atribut di dalamnya, sedangkan pada XML hal tersebut tidak perlu dilakukan karena kita dapat menuliskan tag dan atribut sesuai kehendak kita.
Penggunaan atribut, kecuali secara khusus diperlukan seperti melalui DTD, benar-benar pilihan sampingan bagi para penulis dokumen. Anda akan menemukan opini yang objektif tentang menggunakan atribut menjalankan spektrum penuh, dengan adanya beberapa pendapat yang mengatakan bahwa Anda tidak harus menggunakan atribut. Ketika mempertimbangkan apakah Anda harus menggunakan atribut atau apakah itu harus menjadi elemen anak, Anda memiliki beberapa fakta untuk dipertimbangkan[11].
Saat ini XML dapat dikatakan telah menggantikan HTML. Masing-masing dikembangkan untuk tujuan yang berbeda. Kalau HTML digunakan untuk menampilkan informasi dan berfokus pada bagaimana informasi terlihat, XML
Universitas Sumatera Utara
mendeskripsikan susunan informasi dan berfokus pada informasi itu sendiri. XML terutama dibutuhkan untuk menyusun dan menyajikan informasi dengan format yang tidak mengandung format standar layaknya heading, paragraph, table dan lain sebagainya.
XML menggunakan sebagian besar karakter dalam set spesifikasi karakter Unicode. Sebenarnya merujuk ke set karakter ISO 10646, tetapi biasanya akan ditemukan dua yang digunakan secara bergantian, karena dua set karakter disimpan di sinkron. Unicode, set karakter 32-bit, menyediakan karakter standar dan universal yang ditetapkan dan memberikan nomor unik untuk setiap karakter. Hal ini dilakukan dengan cara menggunakan Unicode, data dianggap sama tanpa memperhatikan bahasa atau negara. Kedua format Unicode yang harus menerima parser adalah UTF-8 dan UTF-16, meskipun dapat menggunakan pengkodean karakter lainnya selama mereka sesuai dengan Unicode[12].
2.2.4 AJAX
Asynchronous JavaScript and XML (AJAX) sesungguhnya bukanlah suatu bahasa pemrograman, melainkan hanya satu teknik yang memungkinkan untuk membuat aplikasi web yang interaktif. Dengan menggunakan AJAX, aplikasi web dapat berinteraksi dengan server di latar belakang sehingga tidak memengaruhi halaman web secara keseluruhan [9].
AJAX bukanlah sepenuhnya teknologi baru. AJAX menggabungkan beberapa komponen, yakni: eXtensible Hyper Text Markup Language (XHTML), JavaScript, Document Object Model (DOM), XML, dan XMLHttpRequest Object. AJAX banyak diterapkan dalam teknologi web saat ini, karena AJAX memiliki sejumlah karakteristik yang sesuai dengan kebutuhan aplikasi web saat ini, diantaranya: 1. Aplikasi dapat melakukan request ke server tanpa harus melakukan pergantian halaman. 2. Lebih cepat dan hemat bandwidth, karena aplikasi tidak perlu melakukan download terhadap seluruh halaman. Hanya men-download content yang diperlukan saja.
Universitas Sumatera Utara
3. Proses terjadi secara asynchronous di belakang layar. Dengan memanfaatkan karakteristik AJAX ini dapat dihasilkan aplikasi web yang semakin interaktif dan dinamis. Salah satu kegunaannya adalah pemisahan antara interaksi antara aplikasi dengan server dengan interaksi aplikasi dengan pengguna. Selagi AJAX melakukan request dan menunggu respon, user tetap dapat berinteraksi dengan antar muka aplikasi. Aplikasi web konvensional dengan aplikasi web menggunakan AJAX memiliki perbedaan arsitektur.
PHP adalah salah satu teknologi yang digunakan untuk mengimplementasikan server-side logika yang saat ini banyak menggunakan AJAX sebagai pendukung kesuksesannya. Akan tetapi, PHP juga memiliki banyak pesaing, seperti ASP.NET (Active Server Pages, teknologi pengembangan web dari Microsoft), Java Server Pages (JSP), Perl, ColdFusion, Ruby on Rails, dan lain-lain. Masing-masing memiliki cara sendiri yang memungkinkan pemrogram untuk membangun server-side fungsionalitas[4].
Implementasi AJAX yang sangat jelas terlihat dalam kehidupan sehari-hari tampak pada fitur sugesti pencarian yang ada di search engine seperti Google, Yahoo, Bing, dan situs sejenisnya. Misalnya, pada saat user mengetikkan keyword (kata kunci) pada kolom pencarian maka akan muncul beberapa sugestion kata yang mirip. Ini dapat terjadi karena adanya AJAX yang bekerja di dalamnya. Dimana aplikasi ini akan meminta server untuk memberikan kata-kata yang paling sering diketikkan oleh user lain pada kolom pencarian tanpa harus me-load keseluruhan dari halaman yang ada pada situs itu.
2.2.5 Kelebihan Web Service
Adapun kelebihan yang dimiliki oleh web service adalah: 1. Web service mempunyai sifat interoperability sehingga bisa diakses oleh aplikasi yang berjalan pada platform yang berbeda-beda. 2. Web service menggunakan standar dan protocol terbuka pada internet.
Universitas Sumatera Utara
3. Dengan menggunakan HTTP atau SMTP, web service bisa menembus pengamanan firewall suatu organisasi tanpa mengubah konfigurasi firewall. 4. Web service memungkinkan fungsi-fungsi pada banyak perangkat lunak di internet untuk dipadukan menjadi satu web service baru. 5. Web service memungkinkan penggunaan ulang layanan dan komponen. 6. Web service bersifat loosely-coupled terhadap client.
2.2.6 Kekurangan Web Service
Disamping memiliki beberapa kelebihan web service juga memiliki kelemahan, antara lain: 1. Web service termasuk layanan yang masih baru sehingga fitur standar seperti transaksi belum ada atau kalaupun ada masih belum sebaik fitur yang sama pada distributed computing open standard yang sudah ada sebelumnya seperti CORBA. 2. Unjuk kerja web service masih kurang baik dibandingkan dengan unjuk kerja distributed computing lain seperti RMI, CORBA atau DCOM yang sudah ada lebih dahulu.
Sebuah aplikasi situs jejaring sosial sangat erat hubungannya dengan penggunaan web service. Banyak dari situs jejaring sosial yang berhasil menduduki peringkat sebagai situs yang paling sering dikunjungi oleh pengguna dikarenakan situs tersebut memberikan web service yang memadai terhadap aplikasi situs lainnya. Pengembang dapat memperoleh dan membagi informasi kepada para pengguna dengan layanan API key yang telah disediakan oleh penyedia layanan aplikasi situs jejaring sosial tersebut. Contoh paling tampak yang dapat kita lihat adalah pada saat sebuah situs memasang sebuah widget yang menampilkan status terbaru dari seorang pengguna yang akan update secara berkelanjutan setiap pengguna tersebut melakukan aktivitas. Hal seperti ini bisa terjadi karena adanya web service yang telah disediakan oleh penyedia layanan situs dengan memanfaatkan XML sebagai bahasa pemrograman yang menjembatani antara keduanya.
Universitas Sumatera Utara
2.3 REST
REST merupakan salah satu teknologi web service yang terbilang cukup populer di masa sekarang ini. Teknologi ini bekerja berdasarkan resource untuk membuat sistem terdistribusi. REST (disebut juga RESTful services) adalah perangkat lunak yang didesain dengan penekanan pada kesederhanaan, skalabilitas, serta kegunaan.
REST adalah sebuah gaya arsitektur ketika digunakan dalam aplikasi HTTP yang memanfaatkan fitur yang ada pada HTTP (URI, kode respon, dan permintaanmetode GET, POST, PUT, dan DELETE) untuk bekerja pada pengguna API yang coba untuk dilakukan[11].
Sebagian besar situs saat ini telah beralih menggunakan teknologi REST. Seperti yang telah digunakan oleh Twitter saat ini dimana pengembang situs jejaring sosial terbesar ini mempercayakan teknologi REST sebagai aplikasi web service dalam melayani permintaan pengguna yang cukup besar setiap harinya. Permintaan RESTful API menggunakan HTTP untuk menggambarkan apa yang akan dilakukan oleh user (pengguna). API yang diterima oleh user merupakan URI khusus yang dapat digunakan oleh user yang telah mendapatkannya.
REST mempersatukan teori tentang bagaimana “distributed hypermedia system” (terutama World Wide Web) diorganisir dan distruktur dengan sebaik mungkin. REST merupakan cara baru berpikir tentang arsitektur jaringan berdasarkan pengamatan atas bagian jaringan kerja.
Web yang diprogram menggunakan HTTP sebagai media transportasi dan sebagian besar waktu XML sebagai format pesan. Dengan kata lain, web yang di program dapat dianggap sebagai XML melalui HTTP. XML tidak memformat data yang hanya tersedia di web saat ini. Ada sejumlah besar format yang tersedia, termasuk HTML, XML, JSON, RSS, Atom, CSV dan banyak format kustom lainnya. Di antara pengembang web, Plain-Old-XML (POX) dan JavaScript Object Notation (JSON) sering populer. Meskipun XML adalah format pesan yang paling populer, JSON juga menikmati penerimaan luas karena merupakan format data interchange
Universitas Sumatera Utara
ringan. Web manusia adalah HTML melalui HTTP dan dokumen HTML yang akan diambil dari server web yang diberikan oleh browser web dan disajikan kepada manusia dalam bentuk visual menarik. Saat Anda menelusuri Web, Anda mengakses sumber daya menggunakan Uniform Resource Indicator (URI) diketik ke dalam address bar web browser. Browser menggunakan HTTP GET request dan mengambil sumber daya, dan server web akan merespon dengan pesan diisi dengan isi dari sumber daya yang diminta. Browser dapat mengakses berbagai sumber daya dengan menggunakan URI yang meliputi gambar, video, dan banyak lagi. Web browser juga menggunakan permintaan POST HTTP untuk mengirim data yang diisi oleh pengguna menggunakan formulir ke server web. Web server akan mengolah data-data tersebut dan merespon sesuai dengan permintaan. Permintaan HTTP dapat menunjukkan URI yang mampu memetakan permintaan untuk dokumen XML yang mewakili beberapa bentuk data, dan dokumen-dokumen XML diproses dan data yang dikonsumsi oleh program[1].
2.3.1 Tinjauan Gaya Arsitektur REST
Istilah ini dikemukakan oleh Roy Fielding, salah seorang pencipta spesifikasi HTTP, pada disertasi doktoralnya pada tahun 2000 yang berjudul “Architectural Styles and the
Design
of
Network-Based
Software
Architectures”.
Disertasi
tersebut
mengemukakan beberapa prinsip yang umum terdapat pada arsitektur jaringan berdasarkan pengujian terhadap struktur jaringan dan protokol HTTP.
REST sering dirujuk sebagai sebuah gaya arsitektural ketimbang sebuah arsitektur. Ketimbang mendefinisikan sebuah spesifikasi arsitektur terbaik, REST mendefinisikan prinsip-prinsip yang dengannya arsitektur dibuat dan dievaluasi dengan cara meletakkan konstrain-konstrain pada arsitektur jaringan.
Untuk menjelaskan prinsip-prinsip REST, dapat menggunakan analogi yang dimodelkan pada komunikasi manusia. Nama-nama resource merupakan “kata benda (noun)”. Penting untuk diingat perbedaan antara resource dan namanya. Sebagaimana kata
“apel”,
dimana
dirinya
sendiri
bukanlah
apel,
nama
Universitas Sumatera Utara
http://example.com/person/123 adalah sebuah nama, bukan resource. Adalah
sesuatu yang wajar bahwa sebuah resource mungkin saja memiliki banyak nama (walaupun style REST yang bagus mengindikasikan bahwa ini seharusnya dijaga sesedikit mungkin, jika memungkinkan). Dengan cara yang sama, metoda-metoda HTTP diibaratkan sebagai “verb” karena menspesifikasikan sebuah aksi pada sebuah resource atau representasinya.
Tesis Fielding bersifat sangat umum; yang secara aktual dapat diaplikasikan pada “arsitektur berbasis jaringan” apa saja. Walaupun begitu, penerapan paling umum dari REST adalah pada World Wide Web dan HTTP. Mau tidak mau, hal ini mengakibatkan konstrain dan guidelines tidak diturunkan dari tesis Fielding. Sehingga, prinsip-prinsip yang akan dijelaskan nantinya merupakan bagian dari REST yang didefinisikan oleh Fielding tersebut.
REST merupakan penyederhanaan dari HTTP. Dengan pertumbuhan web yang semakin popular, banyak keputusan desain asli yang memandu HTTP diabaikan. Para pengembang aplikasi web cenderung melihat hal-hal seperti verb HTTP dan kode status respon sebagai sesuatu yang incidental untuk aplikasi, atau sebagai suatu hal tidak penting yang akan ditangani jika waktu masih mengijinkan. Penggunaan HTTP sebagaimana yang diharapkan, sering terlihat sebagai sesuatu yang tidak diperlukan atau menyulitkan. Namun, dalam beberapa tahun belakangan ini, dengan hadirnya kembali prinsip-prinsip REST telah mengindikasikan bahwasannya HTTP telah lebih dari cukup baik di atas segalannya. Para pengembang saat ini sedang mempelajari beberapa pelajaran berikut: a. Kebanyakan, walaupun tidak seluruhnya, setiap domain dapat dengan mudah dapat dimodelkan sebagai seperangkat operasi CRUD (Create, Read, Update, Delete). Operasi-operasi ini berhubungan dengan metoda POST, GET, PUT, dan DELETE dari HTTP. Dengan cara ini, seperangkat aksi telah distandarisasikan. b. Nama seharusnya mengidentifikasi resource, tidak lebih atau kurang. Nama-nama yang berhubungan dengan resource (contohnya /users/1) secara umum konsisten, robust dan dapat dimengerti. Nama-nama yang berhubungan dengan service endpoin (seperti /userService) cenderung terlalu luas di luar spesifikasi, sementara nama-nama yang berkaitan dengan RPC call (seperti
Universitas Sumatera Utara
/users/create, ketika diakses dengan POST) adalah redudan (berlebihan). HTTP POST dan create, kedua-duanya menyatakan pembuatan resource baru. Menurut prinsip-prinsip RESTful, frase tersebut seharusnya “POST /users/1”, dimana verb HTTP menspesifikasikan action dan URI menspesifikasikan objek dari action tersebut.
Tabel 2.2 Perbandingan RESTful dengan RESTless (Non REST) RESTful VERB
RESTless URI
VERB
HREF
POST
/users
POST
/users/create
GET
/users/1
GET
/users/1
PUT
/users/1
POST
/users/1/update
DELETE
/users/1
????
/users/1/delete
c. Sebuah resource dapat memiliki multi representasi, tetapi kesemuanya harus bisa diidentifikasi berasal dari recource yang sama (hal tersebut harus dapat direfleksikan dari namanya). GET
URL
PUT
POST
Representation
Resource
URL
Delete
Representation
URI
Gambar 2.1 Resource dengan Multi Representasi
2.3.2 Keuntungan Arsitektur RESTful
Beberapa keuntungan dengan diimplementasikannya Arsitektur REST diantaranya dapat dijelaskan sebagai berikut:
Universitas Sumatera Utara
2.3.2.1 Penyederhanaan Konsep
Dasar dari REST adalah kesederhaan. Keputusan untuk menggunakan seperangkat verb standar (apakah menggunakan verb HTTP ataupun seperangkat verb lainnya) secara virtual mengeleminasi seluruh daerah diskusi. Registrasi yang seragam dan sistem penamaan MIME type mungkin tidak memenuhi perdebatan, tapi secara pasti menyederhanakan.
Dengan demikian sudut dari segitiga tersebut mendapat perhatian, secara potensial area abu-abu terbesar adalah mengidentifikasi dan menamai resource. Penamaan adalah salah satu area dimana kesederhanaan benar-benar dibayar mahal, karena sangat mudah menjadikannya keliru. Akan tetapi, jika kita benar-benar mentaati pemakaian seperangkat verb standard dan tipe konten, maka hal itu akan membantu konstrain pemilihan noun.
Inilah yang dimaksud oleh desainer dan arsitek sebagai “konstrain yang membebaskan”. Prinsip-prinsip REST juga diturunkan dari pengamatan terhadap cara kerja web dan jaringan hypertext lain secara aktual. Ketimbang menetapkan pembatasan yang berubah-ubah, maka lebih baik menumbuhkan cara bagaimana web seharusnya beraksi.
Dengan bekerja menggunakan prinsip REST, maka setiap kesulitan yang dihadapi dapat diperlakukan sebagai petunjuk bahwa kita telah melawan butir-butir pembentuk arsitektur web yang alami. Tapi, sebenarnya masih memungkinkan bahwa kasus tertentu yang dihadapi merupakan kasus yang special. Beberapa domain aplikasi ada yang tidak cocok dengan paradigm REST akan memaksa seorang untuk menolak kekecualian apapun dan kasus-kasus spesial, dan dengan melakukannya maka akan terbukti kekecualian tersebut tidak diperlukan lagi.
Universitas Sumatera Utara
2.3.2.2 Ketahanan dari Perubahan
Keuntungan lainnya yang didapat dari desain RESTful adalah desain cendrung lebih tahan terhadap perubahan daripada antarmuka bergaya Remote Procedure Call (RPC). Desain RESTful membawa keputusan arsitektural ke dalam noun. Pemilihan noun cenderung bersifat domain-driven, sementara antarmuka RPC cenderung lebih implementation-driven, karena prosedurnya (detail implementasi) diperlihatkan sebagai bagian dari antarmuka. Manakala antarmuka RPC sering membutuhkan lapisan tambahan untuk memisahkan antarmuka dengan implementasi, REST mengusahakan pemisahan antarmuka dengan implementasi dengan pengajuran antarmuka yang lebih abstrak.
Juga, dikarenakan REST membedakan ide “resource” dari “representasi”, adalah mudah untuk menambah tipe konten baru yang mempresentasikan resource yang sama sebagai format baru yang diperlukan. Tidak ada perubahan arsitektural yang diperlukan, karena REST didasarkan pada pemisahan antara resource abstrak dan representasinya.
2.3.2.3 Keseragaman
Salah satu keuntungan yang diberikan oleh REST adalah antarmuka yang seragam. Verb (metode HTTP) secara universal seragam, di seluruh domain aplikasi. Tipe konten, walaupun tidak universal (akan berbeda di sepanjang domain), sudah distandarisasi dan relatif terkenal.
Fakta bahwa pengembang dibatasi pada seperangkat kecil metode mungkin terlihat memaksa, tetapi dalam prakteknya bukanlah hal yang perlu menjadi perhatian. Apa saja yang ingin dimodelkan dapat dengan mudah disusun dalam bentuk operasi CRUD. Dengan cara berpikir seperti ini, membantu untuk mendorong kompleksitas yang esensi ke dalam salah satu bagian arsitektur dimana mudah memperlakukannya. Biasanya, ketika nampak diperlukan lebih dari metode dasar, akan ada entri resource lain yang tersembunyi di dalam model yang menunggu untuk diekstrak.
Universitas Sumatera Utara
Tipe konten distandarisasi dengan cara yang berbeda. Tipe konten biasanya sesuatu aplikasi yang spesifik, sehingga tidak akan ada gunannya bersifat universal. Meskipun demikian, untuk memfasilitasi komunikasi, tipe konten biasanya bersifat standar. Dalam dunia HTTP, ini diimplementasikan sebagai Multippurpose Internet Mail Extension (MIME), sebuah standar internet yang mendefinisikan framework untuk tipe konten. Seperangkat MIME type bersifat extensible, sehingga aplikasi baru dapat mendefinisikan tipe lokal dan bahkan mendaftarkannya pada Internet Assigned Numbers Authority (IANA) manakala telah meluas penggunaanya.
Keseragaman yang diberikan REST sangat membantu usaha standarisasi. Ketika mengadakan multi sistem secara bersama-sama (sebagaimana terjadi ketika mengembangkan sebuah standar), semakin sedikit perbedaan yang ada, akan semakin sedikit pertentangan. Jika setiap orang menstandarisasi pada seperangkat verb (yang secara universal telah standar ketika menggunakan HTTP), lalu perbedaan yang tersisa hanya tipe konten (yang secara wajar akan standar di dalam sebuah domain aplikasi) dan noun.
Oleh karena itu, dengan menyetujui penggunaan antarmuka RESTful membantu mengurangi masalah yang dapat lebih diatur melalui representasi data (tipe konten) dan penamaan sesuatu (noun).
2.3.3 Komponen REST
Kombinasi dari noun, verb dan tipe konten ini sering disebut sebagai segitiga REST. Ketiganya, membentuk
tiga sudut dari segitiga yang mendefinisikan arsitektur.
Sebuah desain yang berorientasi REST sering bisa didekomposisikan dengan menentukan noun (pengidentifikasian dan penamaan sesuatu), memilih seperangkat verb yang seragam (ini mudah dilakukan jika menggunakan HTTP), dan memilih tipe konten.
Universitas Sumatera Utara
2.3.3.1 Verb
Verb berhubungan dengan aksi terhadap resource. Sebuah verb akan mengirimkan suatu representasi dari sebuah resource dari server ke klien atau memperbaharui resource di server dengan informasi dari klien.
Di dalam REST, verb merupakan daerah yang penuh dengan konstrain. Sementara seperangkat tipe konten terbuka untuk revisi dan ekspansi, dan nama-nama resource dapat diekspansi sampai tak berhingga, sedangkan seperangkat verb sudah fix (tetap). Namun, setiap konstrain yang diletakkan pada ruang lingkup verb mengijinkannya untuk bersifat universal, verb apapun dapat diterapkan kepada setiap noun.
Disebutkan informasi tentang apa yang harus dilakukan dengan data informasi metode. Salah satu cara untuk menyampaikan informasi metode dalam layanan web adalah untuk memasukkannya ke dalam metode HTTP. Sejak ini adalah bagaimana layanan web tenang melakukannya, saya akan memiliki lebih banyak untuk mengatakan tentang hal ini nanti. Untuk Sekarang, perhatikan bahwa lima metode yang paling umum adalah GET HTTP, HEAD, PUT, DELETE, dan POST. Hal ini cukup untuk membedakan antara "mengambil beberapa data" (GET), "hapus bahwa data yang sama "(DELETE), dan" menimpa dengan data yang berbeda "(PUT) [13]. HTTP mendefinisikan serangkaian metode; yang bisa diperluas oleh protokol lain seperti WebDAV, tetapi seperangkat dasar sudah cukup untuk REST. Empat metode yang paling umum adalah GET, PUT, DELETE, POST. Namun, jika ingin menggunakan lebih banyak metode lagi juga tidak masalah.
Untuk menjelaskan dapat dibuat bebrapa analogi linguistic sebagai simplikasi dari empat metode umum.”Ini” akan menunjuk pada request body, dan “di sana” menunjuk kepada URI dimana ia beraksi. a. GET: “Berikan saya yang ada di sana” b. PUT: “Simpan ini di sana” c. DELETE: “Hapus yang ada di sana” d. POST: “Hey yang ada disana, proses ini”
Universitas Sumatera Utara
2.3.3.1.1 GET
Metode GET mengirim representasi resource dari server ke klien. Ini digunakan hanya untuk mengakses resource secara read-only. Sejauh ini, GET adalah verb paling umum pada web statis yang sering mempergunakan metode ini. GET
Representation
Representation
Resource
Resource
Before
After
Gambar 2.2 Metode GET
Kesalahan yang umum dilakukan adalah mempergunakan GET untuk aksi yang memperbaharui resource (update). GET didefinisikan sebagai metode safe yang seharusnya digunakan untuk pengambilan (fetching), bukan update. Penggunaan GET untuk update dapat menyebabkan banyak masalah karena ia telah merusak asumsi klien dan proxy-proxy yang dilewati terhadap sifat asli request GET.
2.3.3.1.2 PUT
Meotoda PUT meng-update resource dengan representasi yang dinyatakan di dalam body request PUT. Jika resource tidak ditemukan, request akan membuat resource yang baru dengan representasi yang diberikan.
Satu hal umum yang membingungkan adalah bagaimana menentukan namanama resource (URI) apakah diterapkan pada request PUT dan POST. Request PUT digunakan jika klien mengetahui URI dari resource, yang apabila tidak ada maka akan dibuat resource yang baru sebagai mana yang sudah ditetapkan pada URI. Jika klien tidak mengetahui URI dari resource (contohnya, jika diambil dari ID yang
Universitas Sumatera Utara
dibangkitkan secara otomatis oleh server), maka request POST yang seharusnya digunakan. PUT
Representation
Representation
Resource
Resource
Before
After
Gambar 2.3 Metode PUT
2.3.3.1.3 DELETE
Sebagaimana diimplementasikan dari namanya, metoda DELETE menghapus resource yang diidentifikasikan oleh URInya. Jika penghapusan ditolak oleh server yang tidak mengijinkan penghapusan, subsequent query GET ke URI yang sama harus mengembalikan kode status 410 (Gone) atau 404 (Not Found). DELETE
Representation Resource Before
After
Gambar 2.4 Metode DELETE
2.3.3.1.4 POST
POST disebutkan belakangan karena merupakan perhentian terakhir. Metoda ini tidak safe, tidak juga idempotent, sehingga ada sedikit pembatasan teknis pada kekuatannya.
Universitas Sumatera Utara
Sehingga, sebaliknya tidak menggunakannya untuk operasi-operasi yang dapat lebih baik direpresentasikan dengan verb lainnya. Secara teoritis, POST bisa digunakan untuk setiap aksi terhadap web tanpa merusak RPC.
Walaupun POST powerful, ia tidak seharusnya digunakan, karena GET, PUT, atau DELETE sebenarnya sudah mencukupi. Semantik dari tiga metoda tersebut lebih sederhana, dan konstrain-konstrain yang diletakkan padanya mengijinkan caching yang memudahkan dan skalabilitas. POST secara teori bisa di-cache menggunakan header Cache-Control dan Expires, tetapi pada praktiknya ini jarang diimplimintasikan.
POST utamanya digunakan pada salah satu dari dua cara yaitu, penciptaan objek baru dan pemberian anotasi objek yang sudah ada. Pada kedua kasus tersebut, URI dari POST adalah container objek tersebut pada induknya. RPC menggambarkannya dengan sebuah analogi dari struktur direktori dimana untuk membuat atau mengupdate sebuah objek, harus mem-POST pada direktori penampungnya. POST
Representation
Representation
Representation
Resource
Resource
Resource
Before
After
Gambar 2.5 Metode POST
Untuk membuat sebuah resource, representasinya dikirim via POST ke sebuah URI yang bertanggung jawab untuk pembuatan resource dengan tipe tersebut. Jika request untuk pembuatan sukses maka server akan melakukan redirect via header location yang menuju URI resource yang sudah dibuat tersebut.
Ketika memberikan anotasi sebuah resource, URI dari POST adalah resource yang akan dianotasi (“parent” dari entiti yang akan dikirim). Ini berarti dari request
Universitas Sumatera Utara
PUT, dimana resource yang dituliskan tidak akan di-update dengan representasi yang baru, melainkan dianotasi dengan informasi tambahan saja.
2.3.3.2 Resource
Konsep paling sederhana dari REST adalah resource. Definisi paling umum resource adalah sesuatu dengan identitas. Dalam pemakaian yang popular digunakan, istilah “resource” biasanya berarti sesuatu yang dapat dialamati jaringan pada internet. Tetapi sebuah resource dapat berupa apa saja, baik itu nyata ataupun yang tidak dapat diraba, asalkan dapat dinamai. Sebagaimana dijelaskan IETF [5]:
Sebuah resource dapat berarti apa saja yang memiliki identitas. Contoh yang familiar termasuk sebuah dokumen elektronik, sebuah gambar, service (contohnya, “laporan cuaca hari ini untuk Indonesia), dan koleksi dari resource lain. Tidak semua resource bisa diambil via jaringan; contohnya, manusia, perusahaan, dan setumpuk buku di dalam perpustakaan dapat juga dikatakan resource.
Tersembunyi di dalam definisi resource ini adalah bahwa resource mempunyai state (resource bisa saja mempunyai state kosong pada kasus degenerasi, tetapi ini jarang di jumpai). Salah satu dari konstrain yang menempatkan REST pada interaksi dengan resource adalah bahwa setiap RESTful resource memiliki antarmuka yang seragam. Tidak ada klien yang memiliki akses ad-hoc (baca atau tulis) pada sebuah resource menyangkut state resource, hal tersebut hanya diketahui oleh internal resource. Setiap akases didapat dengan melalui transfer representasi dari state resource via seperangkat metoda yang seragam (dalam hal ini HTTP).
2.3.3.3 Representasi dan Tipe Konten
Resource di web “hidup” dan menjaga statenya di server, tetapi mereka hanya akan diakses melalui representasi yang diberikan. Klien tidak pernah melihat resource itu sendiri, semua yang dilihat itu merupakan representasi dari resource tersebut.
Universitas Sumatera Utara
Sebuah resource dapat memiliki representasi yang berbeda berdasarkan tipe kontennya. Resource yang sama dapat tersedia melalui user/1.html, user/1.xml, user/1.js. Format nama ini menyatakan bahwa ketiganya adalah representasi dari
resource yang sama.
2.3.3.3.1 Memilih Representasi
Salah satu rincian yang tidak terspesifikasikan oleh REST adalah bagaimana klien meminta tipe konten tertentu. Dari banyaknya representasi yang mungkin tersedia dari resource yang sama, bagaimana cara server mengetahui yang mana yang dikirim.
Dalam praktiknya, jawabannya adalah dengan menggunakan ekstensi URI atau negosiasai konten. Ekstensi mudah dimengerti dan diimplementasikan, karena URI diuji untuk ekstensi nama file seperti .js, .html, atau .xml. Lalu representasi yang paling cocok kemudian akan dipilih berdasarkan pada type map (struktur yang memetakan ekstensi nama file ke tipe konten). Sebagai contoh, permintaan URI orders/124.html akan mengembalikan:
Viewing Order #124 Order #124
Items:
Tetapi, permintaan kepada resource yang sama dengan URI berbeda, orders/124.xml, dapat menghasilkan versi XML yang lebih machine-readable:
Office Chair, Medium Ergonomic Keyboard
Universitas Sumatera Utara
Representasi Javascript orders/124.js mungkin menggunakan JSON: {"order": { "id": 124, "items": [ {"id": 1, "href": "/orders/124/items/1", "description": "Office Chair, Medium"}, {"id": 2, "href": "/orders/124/items/2", "description": "Ergonomic Keyboard"}] }}
Pengubahan tipe konten berdasarkan pada ekstensi URI adalah dengan cara yang baik dan mudah, dan ini berjalan baik seiring dengan cara kita memandang web bekerja secara tradisional. Selain itu, ini membuat URI terlihat seperti nama file, dan bertindak layaknya filesystem path. Akan tetapi, ini tidak selalu optimal dalam model REST.
Semua ini merupakan representasi yang berbeda dari resource yang sama, dan dengan URI yang berbeda pula. Banyak yang berpendapat bahwa URI seharusnya hanya menamai resource, dan tidak representasi. Tetapi bagaimana mungkin menggunakan nama yang sama untuk mengacu pada semua representasi dari resource ini.
Jawabannya adalah negosiasi konten. Ini adalah bagian dari request dan response HTTP dimana client dan server bernegosiasi mengenai parameter yang digunakan sehingga mereka dapat berkomunikasi.
Secara keseluruhan, negosiasi konten HTTP sangat fleksibel dimana ia dapat menegosiasikan representasi berdasarkan bahasa (melalui request header AcceptLanguage), karakter encoding (melalui header Accept-Charset), encoding konten
(Accept-Encoding), atau tipe konten (Accept). Biasanya yang terakhir yang sering digunakan.
Ketimbang menetapkan tipe konten secara eksplisit pada URI, maka lebih baik menentukan header Accept pada request HTTP. Header ini berisi daftar tipe konten yang diinginkan untuk diterima, yang prioritasnya dalam urutan menurun. Dengan menggunakan negosiasi konten, request ini akan mengembalikan versi HTML: GET /orders/124 HTTP/1.1
Universitas Sumatera Utara
Host: www.example.com Accept: text/html, application/xhtml+xml, text/*, image/png, image/*, */*
Klien dapat memvariasikan header Accept untuk menerima representasi berbeda dari resource yang diminta, dan server akan berusaha memenuhi request dengan representasi yang dapat dilayaninya.
Pemilihan representasi menggunakan ekstensi URI atau negosiasi konten memvariasikan header Accept adalah keputusan yang benar. Keduanya mempunyai keuntungan dan kekurangan masing-masing.
2.4 Graf dan Analisis Jejaring Sosial
Banyak istilah-istilah teori graf yang dipakai pada analisis jejaring sosial. Simpul pada teori graf bisa dilambangkan sebagai individu, kelompok, komunitas, dan sebagainya. Sedangkan sisi sebagai “hubungan” antar individu. Misalnya apabila ada sisi antara A dan B , berarti mereka sudah saling berkenalan[10].
Manfaat sisi pada graf pada analisis jejaring sosial ini lebih mendalam pada graf berbobot. Justru graf berbobot ini lebih banyak digunakan daripada graf tanpa bobot. Bobot pada sisi digunakan sebagai berbagai ukuran dalam analisis jejaring sosial. Ukuran tersebut bisa “kedekatan”, “tingkat permusuhan”, prestige, “tingkat kecintaan”, dan sebagainya.
2.4.1 Terminologi Pengukuran
Berikut terminologi pengukuran penting yang dipakai analisis jejaring sosial. Ternyata banyak yang sama dengan terminologi teori graf: 1.
Keantaraan. Keantaraan mengukur banyaknya koneksi suatu individu. Pada teori graf, keantaraan ini adalah sentralitas suatu simpul pada suatu jejaring. Keantaraan ini juga mengukur konektifitas tetangga suatu simpul.
Universitas Sumatera Utara
2.
Jembatan. Yang dimaksud jembatan pada analisis jejaring sosial adalah suatu sisi yang apabila sisi tersebut diputus maka akan menimbulkan pemisahan satu graf menjadi dua graf. Konsepnya sama seperti jembatan pada teori graf.
3.
Kedekatan. Kedekatan adalah derajat bagaimana individu dekat dengan anggota jejaring lainnya. Kedekatan ini menggunakna graf berbobot dalam aplikasinya. Kedekatan ini adalah kebalikan dari jumlah bobot terpendek antara individu ke semua individu lain. Makin tinggi kedekatan artinya suatu individu mempunyai ikatan erat dengan antar temannya.
4.
Koefisien cluster. Koefisien ini mengukur derajat bagaimana kenalan-kenalan individu ternyata kenal satu sama lain dan membentuk cluster.
5.
Derajat. Seperti derajat pada teori graf, derajat pada analisis jejaring sosial juga merupakan jumlah hubungan ke simpul lain. Di sini bisa disebut sebagai jumlah ”teman langsung”.
6.
Kepadatan. Kepadatan adalah tingkat bagaiamana suatu jejaring sosial kenal semua anggota di dalamnya. Jejaring yang padat memiliki jumlah sisi yang mendekat jumlah sisi yang memungkinkan dalam jejaring tersebut.
7.
Sentralitas eigenvektor. Ini adalah ukuran pentingnya suatu simpul dalam suatu jejaring. Derajat ini memberi nilai relatif pada suatu simpul berdasarkan prinsip bahwa koneksi ke simpulsimpul yang memiliki skor tinggi lebih berkontribusi pada skor simpoul yang ingin kita ukur dibandingkan koneksi ke simpul yang memiliki skor kecil.
8.
Radialitas. Derajat lingkupan kenalan suatu simpul sehingga memiliki pengaruh pada jejaring sosial tersebut.
9.
Kohesi struktural. Jumlah simpul minimal yang apabila dihilangkan dapat memisahkan satu graf menjadi dua graf. Bisa diartikan jumlah orangorang penghubung antar komunitas, dll.
10. Ekuivalensi struktural. Derajat bagaimana suatu simpul-simpul memiliki koneksi-koneksi yang sama di jejaring tersebut. Misal A ekivalen struktural dengan B karena A dan B memiliki teman-teman yang sama. 11. Lubang struktural. Lubang statis yang dapat diisi secara strategis. Digunakan dalam ide social capital, yaitu ide bagaimana kita bisa mengontrol komunikasi antar dua orang lain apa bila kita terhubung dengan dua orang tersebut.
Universitas Sumatera Utara
2.4.2 Pengukuran dalam Analisis Jejaring Sosial
Setelah mengerti maksud terminologi di atas, mari kita masuk ke matematika dan teknik bagaimana cara menghitung atau mengukur pengukuran-pengukuran di atas.
2.4.2.1 Keantaraan
Keantaraan adalah pengukuran sentralitas suatu simpul. Keantaraan bisa sebagai simbol ”kekuatan” atau ”pengaruh” satu individu dalam jejaring sosial. Keantaraan individu X secara matematis adalah perbandingan antara jalan terpendek antar semua anggota jejaring yang melewati X dibandingkan jalan terbentuk antar semua individu (dengan dan tanpa melewati X).
……. (1)
Di atas adalah persamaan matematis formal dari keantaraan. Pembilang dari persamaan di atas adalah semua jalan terpendek antar semua simpul, kecuali a, di jejaring yang melewati a, sedangkan penyebutnya adalah semua jalan terpendek antar semua simpul kecuali a. Coba kita hitung keantaraan di contoh sampel berikut. A
2
3
F
1 1
B
1 2
D
C
3
2
E
G
Gambar 2.6 Contoh Graf Jejaring Sosial.
Bobot pada graf di gambar 2 adalah derajat “kedekatan” atau “mudahnya berkomunikasi” antar individu yang terhubung pada sisi tersebut. Misalnya A lebih
Universitas Sumatera Utara
dekat dengan B daripada C karena bobot sisi antar individu tersebut lebih tinggi. Maka “jalan terpendek” yang dimaksud di sini harus diubah dulu. Karena makin dekat antar individu artinya makin pendek. Bobot-bobot pada sisi graf di atas harus dibalik dulu baru kita bisa menentukan jalan terpendek antar individu. Pembalikan bobot ini sering digunakan dalam analisis jejaring sosial. Daftar jalan terpendek antar simpul (setelah dibalik bobotnya): 1.
A-B
2.
A-C
3.
A-F-D
4.
A-F-D-E
5.
A-F
6.
A-B-G
7.
B-C
8.
B-A-F-D
9.
B-A-F-D-E
10. B-A-F 11. B-G 12. C-D 13. C-D-E 14. C-A-F 15. C-G 16. D-E 17. D-F 18. D-C-G 19. E-D-F 20. E-D-C-G 21. F-A-B-G
Kita akan membandingkan keantaraan A, C, F dan D. Kita mulai dulu dengan simpul C. Pembilang pada persamaan keantaraan (1) untuk C adalah 2, di dapat dari jumlah jalan terpendek dari 21 jalan di antas yang melewati C, namu C bukan ujungnya. Jalan tersebut adalah 18 dan 20. Sedangkan penyebutnya adalah 15, yaitu jumlah jalan terpendek yang ujungnya bukan C. Artinya keantaraan C adalah
Universitas Sumatera Utara
Sekarang mari kita cek keantaraan D. Pembilang di persamaan keantaraan (1) adalah 5, yaitu 4, 9, 13, 19, dan 20. Penyebutnya adalah 15. Maka keantaraan D adalah
Lalu kita coba cek keantaraan A. Pembilangnya adalah 5, yaitu jalan 8, 9, 10, 14, dan 21. Keantaraan A adalah
Lanjut ke keantaraan F. Pembilangnya adalah 4, yaitu 3,4,8, dan 9. Keantaraan F adalah
Dapat dilihat jelas bahwa D dan A punya keantaraan lebih tinggi daripada F dan C, dan C punya keantaraan lebih kecil daripada yang lainnya. Misal A ingin berkomunikasi dengan D, namun karena mereka belum saling kenal, maka F dibutuhkan sebagai pengantara. Contoh lain adalah apabila F ingin berkomunikasi dengan E. Karena F dan E belum saling kenal butuh D sebagai pengantara komunikasi antar kedua individu tersebut.
Anehnya, C, yang memiliki koneksi lebih banyak dibanding A, D, dan F malah punya keantaraan lebih kecil. Hal ini disebabkan keantaraan ini bukan derajat koneksi yang paling banyak, tapi pentingnya suatu individu dalam komunikasi orang yang tidak saling kenal, atau orang yang kenal namun tidak terlalu dekat.
Bobot pada sisi graf dapat kita jadikan sebagai derajat ”mudahnya berkomunikasi” atau ”kedekatan” suatu individu. Ini penting dalam kefektifan dan kelancaran berkomunikasi dalam suatu jejaring sosial.
Universitas Sumatera Utara
Mari kita jadikan gambar 2 sebagai contoh dari ilustrasi ini. Misal D ingin menyampaikan suatu berita kepada A, atau ingin meminta pertolongan A. Ternyata D tidak kenal dengan A (tidak ada sisi yang menghubungkannya secara langsung). Nah, D ingin menggunakan kenalannya D, F, dan C untuk menyampaikan berita ini pada A.
D melihat kedekatan ketiga temannya ini dengan A. Ternyata C punya kedekatan 1 dengan A, F punya kedekatan 2 dengan A, dan E (walaupun dekat dengan D) tidak kenal dengan A. Tentu D akan memilih berkomunikasi dengan F, lalu meminta F menyampaikannya pada A. Hal ini bisa dilakukan karena F lebih mudah berkomunikasi dengan A daripada C berkomunikasi dengan A. Oleh karena itu, F dianggap lebih penting sebagai pengantara daripada C. C memang memiliki banyak koneksi, namun C tidak terlalu dekat dengan koneksinya, sedangkan F lebih dekat, sehingga banyak orang yang memilih jalur lewat F daripada C dalam berkomunikasi.
Keantaraan ini bisa sebagai derajat kekuatan atau pengaruh suat individu pada jejaring sosial. Bayangkan apabila A hilang dari jejaring sosial itu, maka tiap individu pada jejaring sosial sulit untuk berkomunikasi satu sama lain, karena A adalah pengantara yang hebat jejaring tersebut.
2.4.2.2 Derajat
Istilah derajat pada teori graf juga diaplikasikan pada analisis jejaring sosial. Yap arti dari derajat adalah jumlah hubungan simpul ke simpul lain secara langsung. Pada Gambar 2, dapat dilihat bahwa simpul A memiliki derajat 3, simpul G 2, simpul F 2, simpul C 4, dan simpul E 1. Derajat pada analisis jejaring sosial digunakan sebagai tingkat ”popularitas” atau ”keselebritian” seseorang. Makin tinggi derjaat suatu simpul, maka makin banyak kenalan individu yang direpresentasikan simpul tersebut.
Di Gambar 2, yang paling tinggi derajatnya adalah C yaitu dengan derajat 4. Tingginya derajat ini dibutuhkan dalam analisis jejaring sosial sebagai ukuran orang yang populer, punya banyak koneksi, dan kenalan. Bisa juga individu yang derajat tinggi adalah orang yang aktif dalam bersosialisasi. Dalam menangkap jaringan
Universitas Sumatera Utara
kriminal, orang yang berderajat tinggi ini penting untuk ditangkap, karena dia paling banyak tahu tentang anggota jaringan lain (paling banyak kenalan) sehingga polisi dapat mengetahui letak atau jejak banyak anggota lain dengan menginvestigasi orang ini.
Namun, tingginya derajat suatu individu tidak selalu berarti individu itu paling penting pada suatu jejaring sosial. Seperti yang telah dibuktikan sebelumnya, bahwa yang berkekuatan adalah A dan D karena keantaraannya. C dapat memiliki derajat tinggi tapi keantaraannya rendah. Hal ini disebabkan C memang kenal dengan banyak orang, namun orang-orang yang Ia kenal sudah kenal banyak orang yang C kenal sehingga tidak butuh C sebagai perantara. D sebaliknya, G hanya kenal dengan D, sehingga walaupun kenalannya tidak sebanyak C, D penting karena tanpa D, G tidak dapat ikut berkomunikasi dalam jejaring sosial tersebut.
2.4.2.3 Kedekatan
Kedekatan yang dimaksud pada subab ini bukanlah kedekatan antar simpul seperti yang dibicarakan pada subab-subab sebelumnya, yaitu bobot sisi. Sekarang kedekatan tidak diasosiasikan pada sisi tapi pada simpul. Bagaimana caranya? Kedekatan sebuah simpul adalah derajat dekatnya simpul tersebut kepada simpul-simpul yang lain.
Derajat individu dalam jejaring sosial memang mengartikan individu tersebut banyak kenal dengan anggota lain, namun belum tentu dekat dan mengetahui detil anggota lain. Nah, ukuran kedekatan global inilah sebagai derajat bagaimana ”baik” sesorang berteman, misalnya, dengan teman-temannya.
Secara matematis, kedekatan adalah (2) dG adalah jarak geodesi dari v ke t. Yang dimaksud jarak geodesi ini sebenaranya adalah jumlah bobot dari sisi yang menghubungkan v dan t pada jarak terdekat. n adalah jumlah seluruh simpul. Inti atau ikhtisar dari rumus di atas adalah kebalikan
Universitas Sumatera Utara
rata-rata jarak ke seluruh simpul lain. Artinya bila rata-rata jarak dengan simpul lain besar, maka kedekatan simpul tersebut kecil, dan sebalikya.
Mari kita tes gambar 2 dengan mengecek siapakah yang paling dekat dengan orang-orang lain. Sekali lagi kita harus membalikkan bobot di gambar tersebut karena bobot tersebut merupakan nilai ”kemudahan berkomunikasi” bukan ”jarak”. Berikut tabel hubungan terpendek tiap simpul. Tabel 2.3 Hubungan Terpendek Tiap Simpul. Simp A B C D E F G
A 0.33 1 1.5 1.83 0.5 0.83
Simpul yang ingin dihubungkan B C D E F 0.33 1 1.5 1.83 0.5 1 2 2.33 0.3 1 1 1.33 1.5 2 1 0.33 1 2.33 1.33 0.33 1.33 0.83 1.5 1 1.33 0.5 0.5 1.5 1.83 1.33
G 0.83 0.5 0.5 1.5 1.83 1.33 -
Jumlah Kedekatan 6 7 6.33 7.33 8.98 6.5 6.5
1 0.86 0.95 0.82 0.67 0.92 0.92
Ternyata A punya kedakatan yang paling tinggi dibandingkan yang lain. Karena bobot dalam graf sampel kita adalah nilai “kemudahan berkomunikasi”, bisa diartikan A paling mudah berkomunikasi dengan anggota jejaring sosial lainnya. Sedangkan E, yang punya kedakatan paling rendah berarti paling sulit untuk berkomunikasi dengan anggota lainnya. Jelas kita lihat pada graf E harus melewati D terlebih dahulu untuk berkomunikasi dengan anggota lainnya.
Universitas Sumatera Utara