BAB II TINJAUAN PUSTAKA 2.1 Telaah Penelitian Telaah ini

advertisement
BAB II
TINJAUAN PUSTAKA
2.1 Telaah Penelitian
Telaah ini digunakan sebagai bahan perbandingan antara penelitian yang
sudah dilakukan dan yang akan dirancang oleh peneliti. Beberapa telaah penelitian
tersebut diantaranya:
LU’LU’UN NISA KURNIA PUTRI (2011) dalam penelitian berjudul ANALISIS,
PERANCANGAN DAN IMPLEMENTASI APLIKASI CHATTING BERBASIS
OBJEK mengatakan bahwa komunikasi adalah bagian yang tidak dapat dipisahkan
dengan kehidupan manusia. Bentuk dan media untuk berkomunikasi juga
mengalami
perubahan
seiring
dengan
berkembangnya
teknologi.
Bentuk
komunikasi dimulai dengan komunikasi bertatap muka dan melalui surat, kemudia
setelah ditemukannya jaringan computer dan koneksi internet, komunikasi semakin
berkembang sehingga dapat dilakukan dimana saja dan kapan saja tanpa harus
bertemu langsung pada satu tempat.
Penelitian ini mengembangkan sebuah system komunikasi teks antarmuka melalui
protocol internet. System komunikasi ini dikhususkan untuk digunakan pada
jaringan local atau LAN dan ditulis menggunakan bahasa pemrograman Java (J2SE)
dengan memanfaatkan teknologi multicast (MulticastSocket) yang telah didukung
dalam pemrograman Java. Metode penelitian yang dipakai adalah metode RAD
(Rapid Application Development). Metode RAD adalah metode pengembangan
system linier sekuensial yang menekankan siklus perkembangan yang sangat
5
pendek dengan menggunakan pendekatan konstruksi berbasis komponen yang
meliputi pemodelan bisnis, pemodelan data, pemodelan proses, pembuatan aplikasi
dan pengujian.
Berdasarkan pengujian, aplikasi chatting ini dapat berjalan dengan baik.
Komunikasi teks yang didukung adalah komunikasi public, komunikasi private dan
komunikasi grup. Aplikasi chatting ini menggunakan koneksi peer to peer yang
artinya masing-masing komputer berada pada tingkat yang sama. Aplikasi chatting
ini dapat dikembangkan lebih lanjut dengan menambah fitur-fitur lain seperti proses
login, komunikasi suara, video atau transfer file.
LISDA (2011) dalam penelitian berjudul PEMBUATAN APLIKASI CHATTING
CLIENT-SERVER
JARINGAN
LOKAL
MENGGUNAKAN
JAVA
2
STANDARD EDITION PI mengatakan bahwa Perkembangan teknologi terus
berkembang seiiring dengan berjalannya waktu. Banyak aplikasi-aplikasi yang
dikembangkan oleh seorang programmer agar aplikasinya berjalan dengan
dukungan internet. Aplikasi yang terhubung dengan internet tentu saja akan selalu
diperbaharui
namun
ada
juga
yang tidak
diperbaharui
karena
masalah
kompatibilitas. Penulis tertarik untuk membuat aplikasi chatting client-server
jaringan lokal yang tidak terhubung dengan internet, dimana dalam pembuatan
aplikasi ini penulis menggunakan bahasa pemrograman Java 2 Standard Edition
(J2SE) dan memanfaatkan penomoran IP, soket, serta port yang dimiliki komputer
dalam suatu jaringan lokal. Aplikasi chating client-server ini adalah aplikasi yang
memungkinkan pengguna saling berkomunikasi antara satu komputer dengan
komputer lain didalam suatu jaringan lokal dimana syarat utamanya adalah harus
6
ada minimal dua komputer yang terhubung untuk dapat berkomunikasi. Pada
penulisan ini berisi mengenai cara pembuatan aplikasi chatting client-server
jaringan lokal menggunakan Java 2 Standard Edition. Konsep pembuatan juga
dijelaskan secara bertahap dimulai dari perancangan aplikasi hingga pengujian serta
dilengkapi dengan lampiran source code dan gambar dari langkah-langkah yang
dilakukan.
2.2 Landasan Teori
Beberapa teori yang perlu dikaji dalam penelitian ini, diantaranya
pengertian chat, websocket, android, XML, java, jquery, JSON, apache-tomcat,
android SDK, client server
2.2.1 Pengertian Chat
Chat adalah suatu feature atau suatu program di Internet untuk
berkomunikasi langsung sesama pengguna internet yang sedang online / yang
sedang sama-sama menggunakan Internet. Komunikasi ini dapat berupa teks
(text chat) ataupun suara (voice chat). Atau definisi chatting adalah suatu
pesan instant ataupun instant messaging di sebuah teknologi jaringan
komputer yang mengijinkan pemakainya untuk mengirimkan pesan ke
pengguna lain yang tersambung dalam sebuah jaringan komputer ataupun
internet.
Chatting tidak hanya populer dikalangan kaum remaja atau anak
muda saja tetapai jaman sekarang ini, sudah merambah kekalangan orang tua
sekalipun. Dengan adanya chatting, kita dapat dengan bebas mengobrol
7
mengenai apa saja mulai dari persahabatan, pekerjaan, pelajaran disekolah,
mata kuliah, sampai masalah percintaan dan perjodohan, bahkan sampai
dengan hal-hal bersifat pribadi sekali pun. beberapa fungsi dan manfaat
chatting yang bisa kita diperoleh, diantaranya seperti:
a.
Sarana murah serta mudah untuk berkomunikasi.
b.
Sebagai sarana konsultasi dengan dokter (Beberapa situs tertentu
menyediakan jasa konsultasi dengan dokter, & kita dapat memanfaatkan
layanan tersebut)
c.
Sebagai sarana untuk berhubungan dengan para pakar.
d.
Mengetahui isi buku.
e.
Dapat mendapatkan teman yang baru.
f.
Sebagai sarana belajar dan juga berdiskusi, dan yang lainnya
(Sora N, 2015)
2.2.2 WebSocket
WebSocket adalah standar baru untuk komunikasi realtime pada Web
dan aplikasi mobile. WebSocket dirancang untuk diterapkan di browser web
dan server web, tetapi dapat digunakan oleh aplikasi client atau server.
WebSocket adalah protokol yang menyediakan saluran komunikasi
full-duplex melalui koneksi TCP tunggal. Websocket termasuk dalam lapisan
OSI layer 7 yaitu Apliccation. WebSocket sudah di standarisasi oleh IETF
8
sebagai RFC 6455 pada tahun 2011, dan API WebSocket di Web IDL sedang
distandarisasi oleh W3C.
Perbedaan websocket dengan HTTP adalah jika didalam protocol
HTTP client harus merequest ke server untuk meminta data baru, setelah itu
server akan merespon permintaan client dan koneksi tertutup, begitu
seterusnya client harus merequest terlebih dahulu ke server untuk
mendapatkan data-data terbaru di server. Sedangkan websocket jika client
telah terhubung dengan server maka koneksi akan tetap terbuka selama yang
diinginkan client, dan keduanya akan mengirim dan menerima pesan secara
terus menerus.
2.2.2.1 Manfaat WebSocket
1. Websocket memungkinkan server untuk mendorong data kepada client
yang terhubung
2. Mengurangi traffic atau lalu lintas jaringan yang tidak perlu dan
latency menggunakan full duplex melalui koneksi tunggal (bukan dua).
3. Streaming melalui proxy dan firewall, mendukung komunikasi
simultan hulu dan hilir.
4. Kompatibel dengan pre-WebSocket dunia dengan cara beralih dari
koneksi HTTP ke WebSockets.
2.2.2.2 Aplikasi Yang Harus Menggunakan WebSocket
1. Aplikasi dengan banyak pengguna atau Multi-User Apps
9
2. Aplikasi langsung atau Realtime Apps
3. Aplikasi dimana data live sangat dibutuhkan, seperti pasar saham, atau
kurs.
2.2.2.3 WebSocket Client
1. Di website, WebSocket didukung oleh browser seperti Google Chrome,
Firefox, Opera
2. Pada ponsel, WebSocket support di iOS dan Android
3. WebSocket client menggunakan Javascript untuk meminta atau
merequest ke serve
2.2.2.4 WebSocket Server
Pada server, WebSocket sudah support di Ruby, Java, Objective-C, PHP,
.NET, Node.js, ActionScript dan banyak bahasa lainnya, bisa dicoba pada
website-website berikut ini Ruby, Java, Objective-C(iOS), PHP, .NET,
node.js. (JurnalWeb, 2015)
2.2.3 Android
Android adalah sistem operasi berbasis linux untuke mobile seperti
smartphone dan tablet PC. Android termasuk sistem operasi open source
sehingga semua pengguna dapat mengembangkan dan membuat aplikasi
sendiri.
Awalnya, Google Inc. membeli Android Inc, pendatang baru yang
membuat peranti lunak untuk ponsel. Kemudian untuk mengembangkan
10
Android, dibentuklah Open Handset Alliance, konsorsium dari 34 perusahaan
peranti keras, peranti lunak, dan telekomunikasi, termasuk Google, HTC,
Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia. Pada saat perilisan
perdana Android, 5 November 2007, Android bersama Open Handset Alliance
menyatakan mendukung pengembangan standar terbuka pada perangkat
seluler. Di lain pihak, Google merilis kode–kode Android di bawah lisensi
Apache, sebuah lisensi perangkat lunak dan standar terbuka perangkat seluler.
(aingindra, 2013)
2.2.4 XML
XML (eXtensible Markup Language) merupakan bahasa web turunan
dari SGML (Standart Generalized Markup Language) yang ada sebelumnya.
XML hampir sama dengan HTML, dimana keduanya sama-sama turunan dari
SGML. Teknologi XML dikembangkan mulai tahun 1966 dan mendapatkan
pengakuan dari Worl Wide Web Consortium (W3C) pada bulan Februari 1998.
Sedangkan SGML sendiri telah dikembangkan pada awal tahun 1980-an. Pada
saat HTML dikembangkan pada tahun 1990, para penggagas XML
mengadopsi bagian paling penting SGML dan dengan berpedoman pada
pengembangan HTML menghasilkan bahasa markup yang tidak kalah
hebatnya dengan SGML.
Secara sederhana XML adalah suatu bahasa yang digunakan untuk
mendeskripsikan dan memanipulasi dokumen secara terstruktur. Secara teknis
XML didefinisikan sebagai suatu bahasa meta-markup yang menyediakan
format tertentu untuk dokumen-dokumen yang mempunyai data terstruktur.
Bahasa markup adalah mekanisme untuk mengenal secara terstruktur di
11
dokumen. XML adalah suatu aplikasi profil dari SGML. Seperti yang
didefinisikan dari ISO 8879, SGML adalah cara standart dan vendorindependent.
XML tidak mempunyai definisi secara tepat karena ada yang
berpendapat
XML
bukanlah
bahasa
pemograman
melainkan
XML
merupakan sintaks yang digunakan untuk menjelaskan bahasa markup lain
(Dournaee,2002), sehingga dinamakan meta-language. Meskipun demikian
pendapat yang XML bukan merupakan bahasa markup, didasarkan bahwa
XML merupakan bahasa markup terpisah untuk tujuan terpisah. Selain itu
XML bukanlah solusi semua hal untuk tujuan semua user. Sedangkan peran
dari markup itu sendiri berupa:
1. Markup dapat menambah maksud arti (semantic) suatu data.
2. Dapat memisahkan data.
3. Dapat mendefinisikan peran data.
4. Dapat mendefinisikan batasan data.
5. Dapat menfenisikan keterhubungan data.
XML merupakan sebuah himpunan bagian (subset) dari SGML yang
bertujuan agar SGML secara generik dapat melayani, menerima, dan
memproses di dalam web dengan cara seperti yang dimungkinkan HTML saat
ini. XML didesain untuk kemudahan implementasi dan interoperabilitas
dengan SGML maupun HTML. XML adalah bahasa markup yang dirancang
untuk penyampaian informasi melalui World Wide Web (www) atau sering
disebut web saja. (W3C,2000)
12
XML
merubah
cara
kita
berpikir
untuk
mengembangkan
suatu software terutama aplikasi web. Masalah yang kita sekarang adalah
bagaimana caranya untuk bertukar informasi antar satu aplikasi dengan
aplikasi lain. Kadang kolaborasi antara satu aplikasi dengan aplikasi yang lain
masih harus ditentukan dengan spesifikasi aplikasi tersebut. Padahal
seharusnya kita hanya perlu mendapatkan informasi data bukan mengerti cara
kerja aplikasi lain itu, disinilah visi internet yang belum tercapai. Visi ini
adalah dunia internet dimana PC, server, smart devices dan internet-based
device dapat berkolaborasi tanpa ada halangan. Bisnis-bisnis akan dapat
bertukar data menyediakan customized dan comprehensive solusi kepada
customer. Dan yang paling utama adalah informasi yang dibutuhkan dapat
diakses dari mana saja dan dengan computing device, platform, atau aplikasi
yang kita gunakan. XML dapat memungkinkan pertukaran informasi atau data
antar device (server, PCs, smart device, aplikasi, dan situs web). Data ini akan
menjadi
independent
(unlocked),
memudahkannya
untuk
diorganisir,
diprogram, dan dirubah, dan ditukar antar situs web atau aplikasi apa saja.
Karena kebutuhan ini, maka makin banyak teknologi berbasis XML yang
keluar.
( Yogi Erlangga, 2012)
2.2.5 Java
Java adalah bahasa pemrograman yang multi platform dan multi
device. Sekali anda menuliskan sebuah program dengan menggunakan Java,
13
anda dapat menjalankannya hampir di semua komputer dan perangkat lain
yang support Java, dengan sedikit perubahan atau tanpa perubahan sama
sekali dalam kodenya. Aplikasi dengan berbasis Java ini dikompulasikan ke
dalam p-code dan bisa dijalankan dengan Java Virtual Machine.
Fungsionalitas dari Java ini dapat berjalan dengan platform sistem
operasi yang berbeda karena sifatnya yang umum dan non -spesifik.
Slogan Java adalah “Tulis sekali, jalankan di manapun”. Sekarang ini
Java menjadi sebuah bahasa pemrograman yang populer dan dimanfaatkan
secara luas untuk pengembangan perangkat lunak. Kebanyakan perangkat
lunak yang menggunakan Java adalah ponsel feature dan ponsel pintar atau
smartphone.
Kelebihan Java yang pertama tentu saja multiplatform. Java dapat
dijalankan dalam beberapa platform komputer dan sistem operasi yang
berbeda. Hal ini sesuai dengan slogannya yangs udah dibahas sebelumnya.
Yang kedua adalah OOP atau Object Oriented Programming. Java memiliki
library yang lengkap. Library disini adalah sebuah kumpulan dari program
yang disertakan dalam Java. Hal ini akan memudahkan pemrograman menjadi
lebih mudah. Kelengkapan library semakin beragam jika ditambah dengan
karya komunitas Java.
Setiap hal pasti memiliki kelebihan dan kekurangan. Kekurangan yang
dimiliki oleh Java adalah pada satu slogannya, yakni “Tulis sekali dan
jalankan dimana saja” ternyata tidak sepenuhnya benar. Beberapa hal harus
14
disesuaikan jika dijalankan pada platform yang berbeda. Misalnya untuk J2SE
dengan platform SWT-AWT bridge tidak dapat berfungsi di Mac OS X.
Kekurangan lainnya adalah kemudahan aplikasi Java didekompilasi.
Dekompilasi adalah suatu proses membalikkan sebuah aplikasi menjadi kode
sumbernya. Hal ini memungkinkan terjadi pada Java karena berupa bytecode
yang menyimpan bahasa tingkat tinggi. Hal ini terjadi pula pada platform
.NET dari Microsoft sehingga program yang dihasilkan mudah dibajak
kodenya karena sulit untuk disembunyikan.
Kekurangan Java yang lain adalah penggunaan memori yang cukup
banyak, lebih besar daripada bahasa tingkat tinggi sebelum generasi Java.
Namun hal ini memang sesuai dengan fitur beragam yang dimiliki oleh Java.
Masalah memori ini juga tidak dialami oleh semua pengguna aplikasi Java.
Mereka yang sudah menggunakan perangkat keras dengan teknologi terbaru
tidak merasakan kelambatan dan konsumsi memori Java yang tinggi. Lain
halnya dengan mereka yang menggunakan teknologi lama atau komputer yang
sudah berumur tua lebih dari empat tahun akan merasakan adanya
kelambatan. Namun apapun kelemahan yang dimiliki Java, faktanya adalah
Java merupakan bahasa pemrograman yang populer dan digunakan di seluruh
dunia saat ini.(vicky, 2012)
2.2.6 Jquery
JQuery adalah javascript library, jQuery mempunyai semboyan
“write less, do more”. jQuery dirancang untuk memperingkas kode-kode
15
javascript. JQuery adalah javascript library yang cepat dan ringan untuk
menangani dokumen HTML, menangani event, membuat animasi dan
interakasi ajax. Library jQuery mempunyai kemampuan, yaitu:
a. Kemudahan mengakses elemen-elemen HTML
b. Memanipulasi elemen HTML
c. Memanipulasi CSS
d. Penanganan event HTML
e. Efek-efek javascript dan animasi
f. Modifikasi HTML DOM
g. AJAX
h. Menyederhanakan kode javascript lainnya
(Adhie, 2011)
2.2.7 JSON
JSON (JavaScript Object Notation) adalah format pertukaran data
yang ringan, mudah dibaca dan ditulis oleh manusia, serta mudah
diterjemahkan dan dibuat (generate) oleh komputer. Format ini dibuat
berdasarkan bagian dari Bahasa Pemprograman JavaScript, Standar ECMA262 Edisi ke-3 - Desember 1999. JSON merupakan format teks yang tidak
bergantung pada bahasa pemprograman apapun karena menggunakan gaya
bahasa yang umum digunakan oleh programmer keluarga C termasuk C, C++,
C#, Java, JavaScript, Perl, Python dll. Oleh karena sifat-sifat tersebut,
menjadikan JSON ideal sebagai bahasa pertukaran-data.
16
JSON terbuat dari dua struktur:
a. Kumpulan pasangan nama/nilai. Pada beberapa bahasa, hal ini dinyatakan
sebagai objek (object), rekaman (record), struktur (struct), kamus
(dictionary), tabel hash (hash table), daftar berkunci (keyed list), atau
associative array.
b. Daftar nilai terurutkan (an ordered list of values). Pada kebanyakan
bahasa, hal ini dinyatakan sebagai larik (array), vektor (vector), daftar
(list), atau urutan (sequence).
Struktur-struktur data ini disebut sebagai struktur data universal. Pada
dasarnya, semua bahasa pemprograman moderen mendukung struktur data ini
dalam bentuk yang sama maupun berlainan. Hal ini pantas disebut demikian
karena
format
data
mudah
dipertukarkan
dengan
bahasa-bahasa
pemprograman yang juga berdasarkan pada struktur data ini. (JSON.org)
2.2.8 Apache-Tomcat
Menurut (Vukotic & Goodwill, 2011) “The Apache Tomcat server is
an open source, Java-based web application container that was created to run
servlet and JavaServer Pages (JSP) web applications. It was created under
the Apache-Jakarta subproject; however, due to its popularity, it is now
hosted as a separate Apache project, where it is supported and enhanced by a
group of volunteers from the open source Java community”.
17
Dijelaskan bahwa apache tomcat open source merupakan suatu
wadah aplikasi web berbasis java yang diciptakan untuk menjalankan servlet
dan JSP (Java Server Pages) aplikasi web. Apache tomcat dibuat oleh
Apache-Jakarta namun, karena popularitasnya sekarang proyek apache tomcat
terpisah dimana apache tomcat didukung dan kembangkan oleh sekelompok
relawan dari open source java komunitas. (Vukotic & Goodwill, 2011)
Web server Apache berbasiskan Open Source dan mulai populer di
internet sejak tahun 1996 karena Open Source. Apache bebas didistribusikan
oleh siapa saja dan ke siapa saja. Software ini dapat diunduh pada situs
http://www.apache.org dan tersedia untuk berbagai platform, diantaranya
Windows, Linux, dan Unix. Agar dokumen-dokumen web yang berekstensi
HTML ataupun PHP bias diakses oleh browser maka dokumen-dokumen
tersebut perlu diletakkan dalam direktori khusus yang diatur oleh Apache.
Tugas utama Apache adalah menghasilkan halaman web yang benar kepada
user berdasarkan kode PHP yang dituliskan oleh pembuat halaman web. Jika
diperlukan, berdasarkan kode PHP yang dituliskan maka dapat saja suatu
database diakses terlebih dahulu (misalnya dalam MySQL) untukmendukung
halaman web yang dihasilkan. (Dwiartara, 2010)
2.2.9 Android SDK
Android-SDK merupakan tools bagi para programmer yang ingin
mengembangkan aplikasi berbasis google android. Android SDK mencakup
seperangkat alat pengembangan yang komprehensif. Android SDK terdiri
18
dari debugger, libraries,handset
emulator,dokumentasi,
contoh
kode,
dan tutorial.
Saat ini Android sudah mendukung arsitektur x86 pada Linux
(distribusi Linux apapun untuk desktopmodern), Mac OS X 10.4.8 atau lebih,
Windows XP atau Vista. Persyaratan mencakup JDK, Apache Ant dan Python
2.2 atau yang lebih baru. IDE yang didukung secara resmi adalah Eclipse 3.2
atau lebih dengan menggunakanpluginAndroid Development Tools (ADT),
dengan ini pengembang dapat menggunakan teks editor untuk mengedit file
Java
dan
XML
menciptakan,
pengendalian
serta
menggunakan
membangun,
perangkat
peralatan command
melakukan debugaplikasi
Android
(misalnya, reboot,
line untuk
Android
dan
menginstal
paket
perangkat lunak dengan jarak jauh).
(haidibarasa, 2013)
2.2.10 Client – Server
Client-server merupakan sebuah arsitektur dimana ada yang
bertindak sebagai server dan client, disini server berperan sebagai penyedia
layanan dan pengelola baik aplikasi, data dan keamananya. Sedangkan client
adalah penerima layanan yang telah disediakan oleh server.
Dalam hubungan ini semua berpusat pada server, sehingga lebih
aman dan lebih cepat, karena server bertugas menyediakan layanan saja
tidak seperti per to per yang semua dapat menjadi server dan client. (eko,
2012)
19
2.2.11 TCP/IP
Pengertian TCP/IP adalah sebuah perangkat lunak jaringan komputer
yang terdapat dalam satu sistem dan memungkinkan komputer satu dengan
komputer
lain
dapat
mentransfer
data
dalam
satu
grup
network/jaringan. TCP singkatan dari Transmission Control Protocol dan IP
singkatan dari Internet Protocol. TCP/IP menjadi satu nama karena
fungsinya selalu bergandengan satu sama lain dalam komunikasi data.
Fungsi dari TCP/IP adalah sebagai berikut :

Umumnya TCP / IP digunakan untuk pengiriman file dalam satu jaringan.

TCP / IP juga sering dimanfaatkan untuk keperluan “Remote login”

Computer mail.

Telnet, dll.
2.2.11.1 Ketentuan Kelas Alamat IP
Sebuah alamat IP berisi satu bagian network dan satu bagian host, tetapi
formatnya tidak sama pada setiap alamat IP. Sejumlah bit alamat dipakai
disini
untuk
mengidentifikasi
network,
dan
angka
dipakai
untuk
mengidentifikasi host, dan beragam kelas alamat IP. Alamat IP memiliki tiga
kelas utama yaitu kelas A, kelas B, dan kelas C. Ketentuan kelas alamat IP
itu berupa :
20
a. Jika bit pertama dari sebuah alamat IP adalah angka 0, ini menunjukan
network kelas A. Tujuh bit berikutnya menunjukan identitas network, dan
24 bit terakhir menunjukan identitas host. Ada 128 buah network kelas ,
tetapi didalam setiap kelas A bisa terdapat jutaan host.
b. Jika bit pertama dari dua angka alamat IP adalah 10, ini menunjukan
alamat IP network kelas B. Angka Bit pertama kelas, kemudian 24 bit
berikutnya menunjukan identitas alamat network, dan 10 bit berikutnya
untuk host. Ada ribuan angka network kelas B dan setiap kelas B dapat
berisi ribuan host.
c. Jika bit pertama dari tiga bit alamat IP adalah 110, ini merupakan alamat
IP kelas C. Tiga bit pertama berupa alamat kelas. 21 bit berikutnya sebagai
alamat network, dan 8 bit selanjutnya merupakan identitas host. Ada jutaan
network kelas C, dan didalam tiap kelas C ada 254 host. (Hardianto. 2013)
Download