BAB II DASAR TEORI. bersifat umum/non-spesifik (general purpose), dan secara khusus dirancang untuk

dokumen-dokumen yang mirip
BAB II LANDASAN TEORI

Protokol. Pemrograman Client/Server dengan Java Socket. Protokol TCP/IP. Tipe pemrograman jaringan. Java Socket

BAB III LANDASAN TEORI

BAB II. KAJIAN PUSTAKA

bahasa pemrograman, yaitu language software, yang dapat berbentuk assembler, compiler maupun interpreter. Jadi language software merupakan

PENGENALAN ANDROID AHMAD ZAINUDIN. Politeknik Elektronika Negeri Surabaya

PEMROGRAMAN SOCKET TUGAS SISTEM TERDISTRIBUSI

BAB II KAJIAN PUSTAKA. bimbingan kepada dosen pembimbing tugas akhir, kartu konsultasi digunakan

PEMROGRAMAN JARINGAN

BAB II KAJIAN PUSTAKA. berbasis linux yang mencakup sistem operasi, middleware dan aplikasi.

Tugas Jaringan Komputer

PROSES. Sistem Terdistribusi

NETWORK PROGRAMMING. Yuliana Setiowati Politeknik Elektronika Negeri Surabaya D4 PENS-ITS

BAB II KAJIAN PUSTAKA

BAB II LANDASAN TEORI. dihubungkan untuk berbagi sumber daya (Andi Micro, 2011:6). Jaringan Komputer

PERTEMUAN KE 1 Pengenalan Aplikasi Mobile. Mahasiswa diharapkan dapat memahami dan mengetahui tentang aplikasi mobile.

BABI II DASAR TEORI DAN TINJAUAN PUSTAKA

BAB II DASAR TEORI II-1

BAB IV IMPLEMENTASI DAN EVALUASI

Network Programming 2010 Jaringan & Aplikasinya. Husni Husni.trunojoyo.ac.id

Pemrograman Jaringan

BAB 2 DASAR TEORI. Iklan berasal dari sebuah kata dalam bahasa melayu, yaitu i lan atau i lanun

BAB III ANALISIS DAN PERANCANGAN

Lapisan Transport. Menjamin komunikasi yang handal antara dua buah komputer yang terhubung Terdiri atas :

Gambar 1. Perangkat mobile Android

PENGANTAR TEKNOLOGI INFORMASI 2

Instalasi Android SDK Maret 2012 Tingkat: Oleh : Feri Djuandi Pemula Menengah Mahir Platform : Windows XP, Eclipse

PENERAPAN METODE BINARY SEARCH (PENCARIAN BINER) PADA BUKU RESEP MASAKAN BERBASIS ANDROID MOBILE

BAB II DASAR TEORI DAN TINJAUAN PUSTAKA. Judul Platform Deskripsi

Cara kerja aplikasi yang menggunakan TCP dapat digambarkan oleh di bawah ini :

BAB 2 LANDASAN TEORI

SISTEM PENYIMPANAN DIGITAL BERBASIS ANDROID PADA PT. TELEKOMUNIKASI INDONESIA, Tbk.

BAB III METODE PENELITIAN. ini, diantaranya adalah dengan langkah-langkah sebagai berikut :

IMPLEMENTASI APLIKASI CHEPPYCHAT UNTUK JARINGAN KOMPUTER PADA LOCAL AREA NETWORK

BAB II TINJAUAN PUSTAKA DAN DASAR TEORI. mendefenisikan penelitian yang sebelumnya hampir sama dilakukan

BAB II KAJIAN PUSTAKA. Fitnes adalah kegiatan olahraga pembentukan otot-otot tubuh/fisik yang

3. 3 Application Layer Protocols and Services Examples

BAB II LANDASAN TEORI

Dasar Pemrograman Web. Pemrograman Web. Adam Hendra Brata

linux yang mencakup sistem operasi, middleware dan aplikasi. Andorid mereka. Awalnya, Google Inc. Membeli Android Inc.

APPLICATION LAYER. Oleh : Reza Chandra

BAB II KAJIAN PUSTAKA. lengkap, terbuka, dan bebas.

BAB II LANDASAN TEORI

BAB 1 PENDAHULUAN. terutama dengan munculnya beberapa smartphone yang masuk ke Indonesia.

Fungsi Lapis Transport

Mobile Programming. Rendra Gustriansyah, S.T., M.Kom., MCP

BAB 3 LANDASAN TEORI

BAB II TINJAUAN PUSTAKA DAN DASAR TEORI. Tinjauan pustaka yang dipergunakan dalam penelitian disajikan melalui

BAB III ANALISA DAN DESAIN SISTEM

BAB II TINJAUAN PUSTAKA DAN DASAR TEORI. mengangkat kasus dan penggunaan teknologi yang berbeda-beda, pada table 2.1

BAB 2 LANDASAN TEORI

LAPORAN RESMI ADMINISTRASI & MANAGEMENT JARINGAN. PRAKTIKUM 3 Pemrograman Socket dengan TCP

Transport Layer. Oleh : Akhmad Mukhammad

BAB IV HASIL DAN UJI COBA

JARINGAN KOMPUTER Layanan Dari TCP dan UDP Protocol

JURUSAN SISTEM KOMPUTER FAKULTAS ILMU KOMPUTER UNIVERSITAS SRIWIJAYA

BAB II TINJAUAN PUSTAKA DAN DASAR TEORI. Beberapa acuan yang digunakan dalam pengembangan sistem dan aplikasi

Minggu 6 Transport Layer

BAB I PENDAHULUAN 1.1 Latar Belakang

Pemrograman Berorientasi Obyek Lanjut (IT251) Ramos Somya, S.Kom., M.Cs.

TASK 5 JARINGAN KOMPUTER

Struktur Sistem Komputer

BAB V IMPLEMENTASI DAN PENGUJIAN SISTEM

BAB III ANALISIS DAN DESAIN SISTEM

BAB II TINJAUAN PUSTAKA DAN DASAR TEORI. sebuah sistem pencarian lokasi kuliner berbasis mobile web untuk wilayah

BAB 2 LANDASAN TEORI. Android adalah sistem operasi berbasisi java yang berjalan pada kernel 2.6 Linux.

AMALIA ZAKIYAH 1 D4LJ-TI

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB III DESAIN DAN IMPLEMENTASI SISTEM

Pemrograman Berbasis Objek. Pengenalan Java. Entin Martiana. Politeknik Elektronika Negeri Surabaya

Tugas Rekayasa Perangkat Lunak Berorientasi Obyek Review IDE untuk Java (NetBeans, Eclipse, Intellij IDEA)

KOMUNIKASI PENGANTAR DATA TERDISTRIBUSI. Materi: 1. Komunikasi Data 2. Protocol 3. Remote Procedure Call 4. Object Remote

GAME BELAJAR MATEMATIKA UNTUK SISWA SEKOLAH DASAR PADA MOBILE DEVICE BERBASIS ANDROID

BAB II TINJAUAN PUSTAKA DAN DASAR TEORI

SISTEM OPERASI TERDISTRIBUSI

- Topologi Jaringan. - Rancangan Agent

BAB III ANALISIS PRAKTEK KERJA LAPANGAN. bagian-bagian komponennya dengan maksud untuk mengidentifikasikan dan

BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI

Sistem Terdistribusi Penanganan Proses

KUMPULAN APLIKASI JAVA J2ME

BAB II TINJAUAN PUSTAKA. Implementasi Kampanye Pariwisata Museum Sangiran di Kabupaten Sragen

Remote Execution. Oleh: Idris Winarno

Arsitektur Web Service Web service memiliki tiga entitas dalam arsitekturnya, yaitu: 1. Service Requester (peminta layanan)

CAPTURE DAN ANALISIS PAKET PROTOKOL MENGGUNAKAN WIRESHARK

BAB II KAJIAN PUSTAKA

Sistem Operasi Mobile

SOFTWARE DEVELOMENT KIT (SDK) & DASAR PENGEMBANGAN APLIKASI MOBILE

P a g e 1. A. Perkenalan

BAB III LANDASAN TEORI

Cara mengakses internet bisa bermacam-macam, contohnya yaitu menggunakan komputer, notebook, dan juga ponsel. Namun banyak yang mengakses internet mel

Billy Pramboro Putra Dosen Pembimbing: Umi Laili Yuhana S.Kom M.Sc

BAB II ANALISIS DAN PERANCANGAN

Sistem operasi. Contoh sistem operasi modern adalah Linux, Android, ios, Mac OS X, dan Microsoft Windows

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM

TUTORIAL INSTALASI ANDROID SDK

TCP dan Pengalamatan IP

BAB 1 Pengenalan Aplikasi Perangkat Bergerak

Bab 2: Struktur Sistem Operasi. Komponen Sistem Secara Umum

MODUL 1 INSTALASI PAKET JAVA DAN PROGRAM SEDERHANA

Pemrograman Berbasis Objek. Pengenalan Java. Yuliana Setiowati. Politeknik Elektronika Negeri Surabaya

Transkripsi:

5 BAB II DASAR TEORI 2.1. Java Java adalah bahasa pemrograman yang dapat dijalankan di berbagai komputer termasuk telepon genggam. Java merupakan bahasa pemrograman yang bersifat umum/non-spesifik (general purpose), dan secara khusus dirancang untuk memanfaatkan dependensi implementasi seminimal mungkin. Karena fungsionalitasnya yang memungkinkan aplikasi Java mampu berjalan di beberapa platform sistem operasi yang berbeda, Java dikenal pula dengan slogannya, Tulis sekali, jalankan di manapun. Tahap kompilasi: 1. Tulis/ubah. Pemrogram menulis program dan menyimpannya di media dalam bentuk berkas.java. 2. Kompilasi. Compiler membentuk bytecodes dari program menjadi bentuk berkas.class. 3. Muat. Pemuat kelas memuat bytecodes ke memori. 4. Verifikasi. Peng-verifikasi memastikan bytecodes tidak mengganggu sistem keamanan Java. 5. Jalankan. Penerjemah menerjemahkan bytecodes ke bahasa mesin [2]. Bahasa pemrograman Java menyediakan library-library standar yang telah di-compile dan dapat langsung digunakan dalam implementasi pembuatan sebuah aplikasi. Pada library, terdapat berbagai macam class yang dapat digunakan dan telah dikelompokkan di dalam package [2]. Dalam hal ini, penulis hanya akan membahas 2 package yaitu package IO (java.io) dan Network (java.net), yang mana

6 class-class pada kedua package ini merupakan komponen utama yang dipakai dalam pembuatan aplikasi lelang online berbasis Java. 2.1.1. Java.io Package java.io pada java class library menyediakan class-class yang mendukung untuk sistem input dan output melalui data stream, serialisasi dan sistem file [1]. 2.1.2. Java.net Package java.net menyediakan class untuk implementasi aplikasi network. Paket ini berisi kelas yang memperbolehkan program untuk berkomunikasi melalui jaringan. Package java.net dapat dibagi dalam 2 bagian, yaitu: A Low-Level API, yang berkaitan dengan masalah berikut: 1. Addresses, yaitu pengidentifikasian jaringan, seperti IP Addresses. 2. Sockets, yang merupakan dasar mekanisme data dua arah. 3. Interfaces, menggambarkan interface dari jaringan tersebut. A High-Level API, yang berkaitan dengan masalah berikut: 1. URI, yang mewakili Universal Resource Identifier. 2. URL, yang mewakili Universal Resource Locators. 3. Connections, yang merupakan koneksi ke sumber daya yang ditunjukkan oleh URL. Salah satu keunggulan Java adalah dukungannya terhadap pengembangan aplikasi multithread sebagai bagian terpadu bahasa Java. Java merupaka bahasa pemrograman yang pertama kali memiliki dukungan intensif operasi-operasi thread di bahasanya. Semantiks java.lang.object di mana semua instance merupakan

7 instance java.lang.object memiliki monitor locking terhadap objek atau metode (notify(), notifyall(), wait()) hanya memiliki arti di konteks aplikasi multithreading. Java menyediakan kata kunci synchronized untuk mengendalikan perilaku di lingkungan multithreading [5]. 2.2. Thread Thread adalah prinsip yang memperbolehkan sebagian dari program untuk berjalan secara independen dengan berbagai program lainnya. Dalam threading dapat dijalankan beberapa pointer ataupun tugas/metode tertentu secara sekaligus [5]. Artinya dua atau lebih bagian dari kode dapat dijalankan secara simultan. Sebuah thread merupakan sebuah pengontrol aliran program. Dengan kata lain, thread menyatakan program komputer untuk melakukan lebih dari satu tugas di satu waktu yang sama. Sebelumnya perlu dibedakan antara thread dan proses. Thread dan proses sama-sama merupakan urutan kode yang dieksekusi. Pada Android, yang dasarnya adalah Linux, setiap aplikasi yang dijalankan berada di proses yang terpisah. Satu proses kemudian dapat memiliki satu atau lebih thread. Thread-thread di dalam proses yang sama berbagi memori, walaupun setiap thread punya register dan stack sendiri. Proses independen satu sama lain, sedangkan thread-thread pada proses yang sama saling terkait. Thread merupakan cara di Java untuk menjalankan banyak bagian secara kongruen. Thread merupakan lightweight process yang tidak banyak menghabiskan banyak overhead layaknya proses normal. Thread-thread dapat saling mengakses data. Pengaksesan memori bersama mempermudah komunikasi antar-thread,

8 namun menimbulkan permasalahan sinkronisasi pengaksesan data. Java menyediakan kata kunci synchronized untuk mengendalikan perilaku thread di lingkungan multithreading [5]. 2.3. Android Android adalah sistem operasi berbasis Linux yang dirancang untuk perangkat bergerak (mobile) layar sentuh seperti smartphone dan komputer tablet. Android merupakan sistem operasi yang opensource, dan Google merilis kodenya di bawah lisensi Apache. Kode opensource dan lisensi perizinan pada Android memungkinkan perangkat lunak untuk dimodifikasi secara bebas dan didistribusikan oleh para pembuat perangkat, operator nirkabel, dan pengembang aplikasi. Android merupakan subset perangkat lunak untuk perangkat mobile yang meliputi sistem operasi, middleware dan aplikasi inti yang dirilis oleh Google. Android dilengkapi dengan Android SDK (Software Development Kit) yang menyediakan tools dan mendukung kebutuhan API (Application Programming Interface) yang diperlukan untuk mengembangkan aplikasi pada platform Android dengan menggunakan bahasa pemrograman Java. Aplikasi Android ditulis dalam bahasa pemrograman Java, yaitu kode Java yang terkompilasi bersama-sama dengan data dan file resources yang dibutuhkan oleh aplikasi yang digabungkan oleh app tools menjadi paket Android, menjadi sebuah file yang ditandai dengan ekstensi.apk. File ini didistribusikan sebagai aplikasi dan diinstal pada perangkat mobile [4].

9 2.3.1. Arsitektur Android Arsitektur Android diibaratkan seperti sebuah tumpukan software. Pendapat tersebut dikemukakan oleh Open Handset Alliance yang mengasuh Google sebagai pencipta Android, yang mana setiap lapisan dari tumpukan ini menghimpun beberapa program yang mendukung fungsi-fungsi spesifik dari sistem operasi. Pada Gambar 7.1 di bawah ini akan menggambarkan arsitektur Android dari setiap arasnya yang mana diibaratkan seperti tumpukan software. Gambar 2.1 Arsitektur Android Sumber: Android Anatomy and Physiology. Google I/O. 28 Mei 2008 Tumpukan paling bawah adalah kernel. Google menggunakan kernel Linux versi 2.6 untuk membangun Android, yang mencakup memory management, security setting, power management, dan beberapa driver hardware. Bertempat di level yang sama dengan library adalah lapisan runtime yang mencakup serangkaian inti library Java. Dengan ini, programmer dapat mengembangkan aplikasi untuk

10 Android menggunakan bahasa pemrograman Java. Lapisan selanjutnya adalah application framework, yang mencakup program untuk mengatur fungsi-fungsi dasar smartphone [3]. 2.3.2. Android SDK Android SDK mencakup seperangkat alat pengembangan yang komperhensif. Android SDK terdiri atas debugger, libraries, handset emulator, dokumentasi, contoh kode dan tutorial. Saat ini Android sudah mendukung arsitektur x86 pada Linux (distribusi Linux apapun untuk desktop modern), MacOS 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 menggunakan plug-in Android Development Tools (ADT), dengan ini pengembang dapat menggunakan teks editor untuk meng-edit file Java dan XML serta menggunakan peralatan command line untuk menciptakan, membangun, melakukan debug aplikasi Android dan pengendalian perangkat Android (misalnya reboot, menginstal paket perangkat lunak dari jarak jauh) [3]. 2.4. Socket Socket adalah sebuah abstraksi perangkat lunak yang digunakan sebagai suatu terminal dari suatu hubungan antara dua mesin atau proses yang saling berinterkoneksi [6]. Socket adalah suatu class yang digunakan oleh aplikasi untuk saling berhubungan. Komunikasi socket terutama diciptakan untuk tujuan menjembatani komunikasi antara dua buah program yang dijalankan pada mesin yang berbeda. Namun tentu saja berarti dua program pada mesin yang sama juga dapat saling berkomunikasi.

11 Socket merupakan fasilitas IPC (Inter Process Communication) untuk aplikasi jaringan. Agar suatu socket dapat berkomunikasi dengan socket lainnya, maka socket perlu diberi suatu alamat unik sebagai identifikasi. Alamat socket terdiri atas Alamat IP dan Nomor Port. Contoh alamat socket adalah 192.168.29.30: 3000, di mana angka 3000 adalah nomor port-nya. Alamat IP dapat menggunakan alamat jaringan lokal (LAN) maupun alamat internet [6]. Jadi socket dapat digunakan untuk IPC pada LAN maupun internet. Logika dasar dari pemrograman socket adalah sebagai berikut: 1. Jika ada 2 node yang ingin berkomunikasi, maka mereka harus menentukan port mana yang akan digunakan untuk berkomunikasi dan membuka port tersebut melalui deklarasi socket. 2. Jika sudah membuka port untuk berkomunikasi, yang perlu dilakukan adalah membuat jalur untuk berkomunikasi yang menghubungkan kedua port tersebut. 3. Jalur tersebut terbagi atas: 1 jalur untuk client mengirim data. 1 jalur untuk client menerima data. 1 jalur untuk server mengirim data. 1 jalur untuk server menerima data. 4. Jika keempat jalur tersebut sudah dibuat, maka server dan client sudah dapat melakukan komunikasi. Jika komunikasi sudah selesai, client dapat menutup jalur-jalur komunikasi yang telah dibuat sebelumnya.

12 2.5. Alamat IP Alamat IP (Internet Protocol Address) adalah sederetan angka biner antara 32-bit sampai 128-bit yang dipakai sebagai alamat identifikasi untuk tiap komputer host dalam jaringan internet. Panjang dari angka ini adalah 32-bit untuk IPv4 (IP versi 4) dan 128-bit untuk IPv6 (IP versi 6) yang menunjukkan alamat pada komputer agar komputer dapat saling terhubung dengan komputer lain. IP Address terdiri dari 4 blok di mana setiap blok diisi oleh angka 0-255. Contoh IP Address seperti 192.168.100.1 adalah IPv4. 2.6. Port Dalam protokol jaringan TCP/IP, sebuah port adalah mekanisme yang mengizinkan sebuah komputer untuk mendukung beberapa sesi koneksi dengan komputer lainnya dan program di dalam jaringan [6]. Port dapat mengidentifikasi aplikasi dan layanan yang menggunakan koneksi di dalam jaringan TCP/IP. Sehingga, port juga mengidentifikasi sebuah proses tertentu di mana sebuah server dapat memberikan sebuah layanan kepada client atau bagaimana sebuah client dapat mengakses sebuah layanan yang ada dalam server. Port dapat dikenali dengan angka 16-bit (2 byte) yang disebut dengan Port Number dan diklarifikasi dengan jenis protocol transport apa yang digunakan ke dalam Port TCP dan Port UDP. Karena memiliki bilangan 16-bit, maka total maksimum jumlah port untuk setiap protocol transport yang digunakan adalah 65536 buah. 2.7. Paradigma Client/Server Paradigma client/server adalah dasar untuk framework jaringan Java. Tentunya, penetapan ini terdiri dari dua elemen besar, yakni client dan server [6].

13 Client adalah mesin yang membutuhkan beberapa jenis informasi, sedangkan server adalah mesin yang menyimpan informasi dan menunggu untuk menyampaikannya pada client. Paradigma ini menjelaskan sebuah skenario sederhana. Tentunya, client terhubung dengan server dan meminta informasi. Kemudian server mengingat permintaan dan mengembalikan informasi yang tersedia kepada client. Gambar 2.2 Model Client/Server Sumber: JENI (Java Education Network Indonesia) Model komunikasi client-server adalah model komunikasi dua arah yang berjalan ketika client meminta sebuah layanan dari server. Model komunikasi client-server harus berjalan dengan aturan yang sama. Semua proses berjalan dua arah, client dan server saling berinteraksi, dan server hanya berjalan ketika client meminta layanan darinya.

14 Gambar 2.3 Model Komunikasi Client/Server Sumber: JENI (Java Education Network Indonesia) Gambar di atas adalah cara client dan server berkomunikasi. Secara sederhana, model komunikasi client-server adalah: 1. Pertama-tama, server berada dalam keadaan LISTEN. Dalam keadaan LISTEN ini, server menunggu dan siap menerima permintaan koneksi dari client. Dalam hal ini, server membuka port dengan nomor tertentu yang diketahui oleh client. Di sana ada service yang berjalan di pihak server atau ada daemon yang berjalan dan menunggu port tertentu di pihak server. 2. Hubungan antara client dengan server dimulai oleh client yang bertindak meminta suatu koneksi ke server. Paketnya berupa Request Connection pada gambar di atas. 3. Bila server menerima permintaan ini, server akan membalasnya dan memberitau client bahwa permintaannya diterima berupa Accept

15 Connection dari server seperti pada gambar di atas. Pada titik ini, koneksi antara client dan server sudah terjalin. 4. Setelah terjalinnya koneksi, client dapat mengirimkan data ke server. Begitu pula dengan sever boleh saling mengirimkan data antara satu dengan lainnya yang disebut Data Transfer. Setelah data selesai dikirim, client maupun server dapat saling mengakhiri koneksi tersebut. Hal ini dikatakan sebagi Close Connection seperti pada gambar di atas.