Perancangan Aplikasi Lelang Online Sederhana Berbasis Android

50

Universitas Sumatera Utara

51

Universitas Sumatera Utara

52

Universitas Sumatera Utara

53



clientThread.java Class

Universitas Sumatera Utara

54


Universitas Sumatera Utara

55

Universitas Sumatera Utara

56

Universitas Sumatera Utara

57

Universitas Sumatera Utara

58

Universitas Sumatera Utara

59


Universitas Sumatera Utara

60

Universitas Sumatera Utara

61

Universitas Sumatera Utara

62

Universitas Sumatera Utara

63

Universitas Sumatera Utara

64


Universitas Sumatera Utara

65

Universitas Sumatera Utara

66

Universitas Sumatera Utara

67

Lampiran 2. Source Code Aplikasi Client


Menu.java Class

Universitas Sumatera Utara


68

Universitas Sumatera Utara

69

Universitas Sumatera Utara

70



MainActivity.java Class

Universitas Sumatera Utara

71

Universitas Sumatera Utara


72

Universitas Sumatera Utara

73

Universitas Sumatera Utara

74



Client.java Class

Universitas Sumatera Utara

75

Universitas Sumatera Utara


76

Universitas Sumatera Utara

77

Universitas Sumatera Utara

78



MyCustomAdapter.java Class

Universitas Sumatera Utara

79

Universitas Sumatera Utara


80

Universitas Sumatera Utara

81

Universitas Sumatera Utara

48

DAFTAR PUSTAKA
[1]

Deitel, Paul dan Harvey Deitel. 2012. Java™ for Programmers Second
Edition (Deitel® Developer Series). New Jersey: Prentice Hall.

[2]

Hariyanto, Bambang. 2014. Esensi-esensi Bahasa Pemrograman Java
(Revisi Keempat). Bandung: Informatika Bandung.


[3]

Burd, Barry. 2014. Java® Programming for Android™ Developer For
Dummies®. New Jersey: John Wiley & Sons, Inc.

[4]

Murphy, Mark L. 2016. The Busy Coder’s Guide to Android Development.
Pennsylvania: CommonsWare, LLC.

[5]

Oaks, Scott dan Henry Wong. 2004. Java Threads Third Edition. California:
O’Reilly Media, Inc.

[6]

Roy, Uttam K. 2015. Advanced Java Programming. New Delhi: Oxford
University Press.


[7]

Phillips, Bill, Chris Stewart, Brian Hardy dan Kristin Marsicano. 2015.
Android Programming: The Big Nerd Ranch Guide – 2nd Edition. Atlanta:
Big Nerd Ranch, LLC.

[8]

Murach, Joel dan Michael Urban. 2015. Murach’s Beginning Java with
NetBeans. California: Mike Murach & Associates, Inc.

[9]

Schneller, Daniel dan Udo Schwedt. 2010. MySQL Admin Cookbook.
Birmingham: Packt Publishing Ltd.

Universitas Sumatera Utara

49


[10]

Bell, Charles. 2012. Expert MySQL: Second Edition. New York: Apress
Media, LLC.
LAMPIRAN

Lampiran 1. Source Code Aplikasi Server


Sync.java Class

Universitas Sumatera Utara

16

BAB III
PERANCANGAN SISTEM
3.1. Umum
Aplikasi Lelang Online Sederhana Berbasis Android ini terdiri atas dua

bagian, yaitu server dan client. Aplikasi server bertugas sebagai pengelola dan
pengatur sistem yang berjalan, sebagai mesin yang menyimpan informasi dan
menunggu untuk menyampaikannya kepada client. Aplikasi client yang merupakan
aplikasi yang dijalankan oleh end-user langsung. User dapat memberikan input
untuk meminta atau mendapatkan informasi yang dibutuhkan dari server. Client
harus terlebih dahulu terhubung dengan server untuk meminta dan memeroleh
informasi.

Gambar 3.1 Gambaran aplikasi secara umum

Universitas Sumatera Utara

17

Gambar 3.2 Gambaran hubungan Client/Server
Sumber: Introduction to Sockets Programming in C using TCP/IP
3.2.Perancangan Aplikasi Server
Saat pertama kali server dijalankan, server akan membuka koneksi dan
menunggu client yang akan membuka koneksi pada server. Server dapat menerima
lebih dari satu client yang akan membuka koneksi. Setelah terdapat lebih dari satu
client yang terhubung dengan server, maka server akan menjalankan sebuah fungsi
untuk membuat ID setiap client dan mendaftarkan client-client tersebut dalam
database yang berfungsi sebagai leaderboard untuk nantinya menentukan siapa
client yang memenangkan lelang. Pemberian nomor ID ini berurut sesuai client
yang terlebih dahulu terhubung ke server.

Universitas Sumatera Utara

18

Antar-muka server hanya berupa JTable yang berisi data-data setiap user
yang terdaftar. Admin berhak merubah bahkan menghapus data setiap client (jika
diperlukan) dan credit yang dimiliki user hanya dapat diisikan oleh admin melalui
JTable tersebut. Aplikasi server ini dijalankan pada sebuah perangkat komputer
ataupun notebook yang telah diatur menjadi sebuah server host jaringan.

Mulai

Membuka koneksi dan
Menunggu koneksi dari client

Menerima Koneksi dari client
(Client Thread)
TIDAK

Menunggu input dari client
dalam countdown yang
telah ditentukan

YA

Apakah jumlah client
yang terhubung sudah
sampai daya tampung
maksimal ?

YA

Tentukan
pemenang dan
informasikan ke
seluruh client

TIDAK

Apakah countdown sudah
berakhir ?

Menerima dan
mendistribusikan data ke
seluruh client

Gambar 3.3 Diagram Aktivitas Aplikasi Server

Universitas Sumatera Utara

19

3.3.Perancangan Aplikasi Client
Aplikasi client di sini merupakan sebuah aplikasi yang dijalankan pada
smartphone Android di mana smartphone tersebut terhubung melalui jaringan WiFi dengan server pada komputer yang menjalankan aplikasi server seperti yang
telah dijelaskan pada perancangan aplikasi server di atas. Pada aplikasi client,
terdapat alamat IP dan nomor port yang digunakan untuk meminta hubungan
dengan server. Alamat IP yang terdapat pada aplikasi client sama dengan alamat IP
jaringan di mana aplikasi server terhubung dengannya. Begitu pula dengan nomor
port yang juga harus sama dengan nomor port yang telah ditentukan oleh server
untuk membuka koneksi.
Saat aplikasi client pertama kali dijalankan, user akan dibawa ke halaman
login. Apabila user belum terdaftar dalam database, user akan diarahkan ke
halaman register untuk mendaftar. Halaman login dan register ini terhubung
dengan port MySQL dengan nomor port 3306. Setelah user berhasil melakukan
login, user akan dibawa ke halaman menu utama aplikasi ini.
Saat user akan memulai proses perlelangan, koneksi akan berpindah dari
nomor port 3306 (MySQL) ke nomor port aplikasi lelang yang telah ditentukan
oleh server. Setelah aplikasi client telah terhubung dengan aplikasi server, aplikasi
client dapat memberikan input data kepada server dengan aturan yang telah
ditetapkan oleh server.
User akan diinformasikan tentang harga barang yang akan dilelang dan user
diminta menginputkan nominal yang ingin ditambahkan pada harga barang sebagai
penawaran. Harga barang yang telah ditambahkan dengan penawaran tersebut akan

Universitas Sumatera Utara

20

dibandingkan dengan credit yang dimiliki oleh user tersebut. Jika nilai credit lebih
kecil dari penawaran, maka sistem akan memberitahu user bahwa penawaran tidak
dapat dilakukan. Sebaliknya, jika nilai credit lebih besar atau sama dengan jumlah
penawaran, maka nilai penawaran tersebut akan dimasukkan ke dalam database
leaderboard yang nantinya akan dibandingkan dengan nilai penawaran dari client
lain dan akan ditentukan pemenangnya saat proses perlelangan berakhir.

Mulai

Koneksi ke server

Memberikan input
ke server

Menunggu respon
dari server

Gambar 3.4 Diagram Aktivitas Aplikasi Client

Universitas Sumatera Utara

21

3.3.1. Perancangan Struktur Navigasi
Struktur navigasi merupakan gambaran dari menu pilihan yang akan
dijalankan.

SESI LOGIN

MENU
UTAMA

SESI
REGISTRASI

MULAI

PETUNJUK

TENTANG

MEMULAI
LELANG

HALAMAN
PETUNJUK

HALAMAN
TENTANG

Gambar 3.5 Struktur Navigasi
Gambar di atas menunjukkan proses alur aplikasi client pada aplikasi lelang
online sederhana berbasis Android ini. Adapun keterangan gambar di atas adalah:


Sesi Login: merupakan menu untuk user melakukan login.



Sesi Registrasi: merupakan menu untuk user melakukan registrasi.



Menu Utama: merupakan tampilan awal saat user selesai melakukan
login.



Mulai: merupakan menu untuk memulai perlelangan yang akan
membuat user melakukan hubungan ke aplikasi server.



Petunjuk: merupakan menu untuk mendeskripsikan bagaimana tata
cara perlelangan pada aplikasi ini.

Universitas Sumatera Utara

22



Tentang: merupakan menu yang berisi tentang uraian singkat dari
aplikasi ini.

3.4. Diagram Aktivitas Aplikasi

Mulai
Membuka Koneksi

Mulai
Melakukan Login

Menunggu Koneksi dari
Client
Menerima Koneksi dari
Client
(create thread)

Membuat Permintaan
Koneksi ke Server

Mendaftarkan User pada
Leaderboard
Apakah countdown
sudah berakhir ?

Memberikan Inputan ke
Server

Ya

Tidak

Apakah jumlah client
yang terhubung sudah
sampai daya tampung
maksimal ?
Ya

Tidak
Menerima Inputan dari
Client

Tidak

Ya
Menerima Inputan dari
Server

Apakah
penawaran
tersebut
memenuhi
persyaratan ?

Mengisikan Penawaran
pada Leaderboard

Mendistribusikan Penawaran
Tertinggi ke Seluruh Client

Gambar 3.6 Diagram Aktivitas

Universitas Sumatera Utara

23

BAB IV
HASIL DAN ANALISIS
Bab ini menjelaskan tentang hasil dari aplikasi yang telah diuji melalui
penggunaan aplikasi.
4.1. Hasil Perancangan Aplikasi
Berikut hasil dari perancangan aplikasi Lelang Online Sederhana Berbasis
Online.
4.1.1. Hasil pada Aplikasi Server

Gambar 4.1 Tampilan awal aplikasi server untuk memilih login sebagai server
atau client

Universitas Sumatera Utara

24

Pada tampilan ini, admin dapat memilih untuk login sebagai client atau
server.

Gambar 4.2 Tampilan setelah admin memilih login sebagai server
Saat admin login sebagai server, aplikasi server akan menggunakan port
dengan nomor 2222 sebagai jalur komunikasi untuk hubungan client/server pada
aplikasi ini.

Gambar 4.3 Aplikasi menggunakan port 2222 untuk komunikasi

Universitas Sumatera Utara

25

Setelah membuka jalur komunikasi, aplikasi akan menampilkan tabel yang
berisi tentang informasi user yang telah terdaftar untuk mengikuti lelang dalam
aplikasi ini.

Gambar 4.4 Daftar user yang telah terdaftar untuk mengikuti lelang
Melalui tabel ini, admin dapat membuat dan menghapus akun user. Melalui
tabel ini pula, admin akan mengisikan credit yang dimiliki user sebagai uang
elektronik yang akan digunakan selama proses perlelangan berlangsung.

Gambar 4.5 Tampilan saat admin memilih salah satu akun user

Universitas Sumatera Utara

26

Antar-muka admin hanya dibuat sebatas tentang tabel akun user karena
proses perlelangan terjadi “di belakang layar” secara independen.
4.1.2. Hasil pada Aplikasi Client

Gambar 4.6 Tampilan awal saat aplikasi client dijalankan
Tampilan awal akan berjalan selama 3 detik sebagai perkenalan aplikasi
sebelum masuk ke halaman login.

Universitas Sumatera Utara

27

Gambar 4.7 Halaman login
Pada halaman login, user diharuskan untuk mengisi username dan password
sesuai dengan yang telah didaftarkan sebelumnya. Jika user belum memiliki akun
di aplikasi ini, user dapat mendaftar melalui tombol “Sign up now”.

Universitas Sumatera Utara

28

Gambar 4.8 Halaman register
Pada halaman register, user diharuskan mengisikan username, password
dan nama. Jika proses registrasi berhasil berjalan dengan baik, user akan kembali
diarahkan ke halaman login. Proses registrasi dapat gagal oleh berbagai faktor
seperti username yang tidak unik, kegagalan koneksi, dan sebagainya. Setiap
kegagalan tersebut akan memberikan pesan error dalam bentuk toast message.
Setelah proses login berhasil, user akan dibawa ke halaman menu utama.
Pada halaman menu utama, terdapat 3 tombol menu, yaitu Start untuk memulai
lelang, Help untuk menampilkan halaman petunjuk penggunaan aplikasi dan About
untuk menampilkan halaman deskripsi singkat tentang aplikasi ini.

Universitas Sumatera Utara

29

Gambar 4.9 Halaman Menu Utama
Pertama akan dibahas mengenai menu Start untuk memulai lelang. Di
bawah ini merupakan penggalan source code program untuk koneksi client ke
server dengan menggunakan socket. Setiap ada user yang terhubung, akan dibuat
thread untuk mengatur aktivitas user tersebut.

Universitas Sumatera Utara

30

Untuk memulai proses lelang, user diminta untuk melakukan otentikasi.
Halaman lelang menyediakan tombol Authenticate sebagai inisialisasi bahwa user
siap melakukan lelang.

Universitas Sumatera Utara

31

Gambar 4.10 Tampilan sebelum otentikasi
Setelah proses otentikasi, user akan dikirimkan pesan selamat datang,
nomor ID dan harga barang yang akan dilelang. Nomor ID sendiri baru akan
diberikan setelah user melakukan otentikasi.

Universitas Sumatera Utara

32

Gambar 4.11 Tampilan setelah otentikasi
Aplikasi ini dapat menerima hubungan client hingga 7 client. Pemberian
nomor ID diberikan berdasarkan urutan client yang lebih dahulu terhubung ke
server.

Universitas Sumatera Utara

33

Gambar 4.12 Pesan untuk meyakinkan user akan penawaran yang akan diberikan
Setelah user menekan tombol SUBMIT, aplikasi akan mengirimkan pesan
untuk meyakinkan user akan penawaran yang akan diberikannya. Pesan ini
ditampilkan berupa AlertDialog yang juga menyertakan nilai yang baru di-inputkan user. Pesan ini disertakan dalam aplikasi karena penawaran yang diberikan user
yang sudah diterima oleh server tidak dapat dibatalkan.

Universitas Sumatera Utara

34

Gambar 4.13 Tampilan setelah user memberikan penawaran
Saat user diminta untuk memberikan penawaran, penawaran yang dimaksud
adalah nominal yang ingin ditambahkan pada harga barang. Sistem secara otomatis
akan menambahkan penawaran tersebut pada harga barang dan pada harga yang
telah ditawarkan sebelumnya. Setelah penawaran berhasil dilakukan, sistem akan
mendistribusikan nomor ID penawar tertinggi saat itu beserta harga penawarannya.
Sistem akan mendistribusikan Leaderboard setiap kali ada user yang memasukkan
penawarannya. Dan Leaderboard ini didistribusikan ke seluruh client melalui
metode broadcast.

Universitas Sumatera Utara

35

Gambar 4.14 Tampilan saat ada user lain yang memberikan penawaran yang
mengimbangi penawaran sebelumnya
Client

yang

ingin

memberikan

penawarannya

haruslah

mampu

mengimbangi penawaran tertinggi. Apabila harga yang ditawarkan oleh user
tersebut masih lebih rendah atau sama dengan penawaran tertinggi, sistem akan
menolak penawaran tersebut dan meminta user untuk mengimbangi penawaran
sebelumnya.

Universitas Sumatera Utara

36

Gambar 4.15 Tampilan saat user memberikan penawaran yang lebih rendah dari
penawaran tertinggi pada leaderboard
Untuk mengimbangi penawaran sebelumnya, user pastinya harus memiliki
credit yang mencukupi. Apabila harga yang ditawarkan oleh user lebih tinggi dari
jumlah credit yang ia miliki, maka sistem akan menolak penawaran tersebut dan
tidak memasukkan penawaran tersebut ke dalam leaderboard.

Universitas Sumatera Utara

37

Gambar 4.16 Tampilan saat user memberikan penawaran yang melebihi jumlah
credit yang dimiliki
Proses lelang akan terus berjalan selama ada user yang memberikan
penawaran. Setiap kali ada user yang memberikan penawarannya, user lainnya
akan diberi kesempatan untuk mengimbangi penawaran tersebut dengan batas
waktu yang sudah ditentukan (10 detik). Apabila user-user tersebut tidak
memberikan penawarannya sampai batas waktu yang telah ditentukan tersebut,
maka sistem akan melakukan countdown sebanyak 3 kali dengan interval untuk tiap
count-nya selama 10 detik. Sistem akan mendistribusikan hitungan mundurnya ke
setiap client. Apabila tidak ada input-an sampai hitungan mundur berakhir, maka
lelang akan ditutup dan sistem akan mendistribusikan pesan yang berisi nomor ID
pemenang beserta jumlah harga yang ditawarkannya ke seluruh client. Dan kepada

Universitas Sumatera Utara

38

pemenang, akan dikirimkan pesan yang menyatakan bahwa ia memenangkan lelang
tersebut. Sistem akan memotong jumlah credit yang dimiliki pemenang sejumlah
harga yang ditawarkan saat memenangkan lelang secara otomatis.

(a)

(b)

(c)

(d)

Gambar 4.17 Tampilan pada saat penawaran terakhir diterima (a) dan pada saat
countdown didistribusikan (b, c dan d)

Universitas Sumatera Utara

39

Gambar 4.18 Tampilan saat sistem mendistribusikan informasi pemenang dan
pesan kepada pemenang lelang
Aplikasi client juga menyediakan tombol EXIT yang dapat digunakan bagi
user yang ingin meninggalkan lelang. Saat user menekan tombol EXIT, user akan
diyakinkan kembali melalui pesan berupa AlertDialog. User yang meninggalkan
lelang akan dibawa kembali ke halaman menu utama dan server akan menghapus
nomor ID yang digunakan oleh user tersebut agar nomor ID tersebut dapat dipakai
kembali oleh user yang akan bergabung nantinya.

Universitas Sumatera Utara

40

Gambar 4.19 Pesan yang ditampilkan saat user menekan tombol EXIT
Setelah membahas menu Start, maka akan dibahas mengenai menu Help
dan menu About. Seperti yang telah diterangkan sebelumnya, menu Help akan
membawa user ke halaman petunjuk penggunaan aplikasi yang mana berisi
penjelasan tentang bagaimana menggunakan aplikasi ini. Sedangkan menu About
akan membawa user ke halaman yang berisi tentang deskripsi singkat aplikasi ini.

Universitas Sumatera Utara

41

Gambar 4.20 Tampilan halaman menu Help

Universitas Sumatera Utara

42

Gambar 4.21 Tampilan halaman menu About
4.2. Analisis Aplikasi
Analisis aplikasi menjelaskan tentang pengujian yang dilakukan terhadap
aplikasi. Berikut uraian mengenai analisis dari pengujian aplikasi Lelang Online
Sederhana Berbasis Android.
a. Aplikasi server dan mysqld.exe harus dijalankan terlebih dahulu
sebelum aplikasi client dijalankan.
b. Jumlah client yang digunakan selama pengujian adalah sebanyak 7
client.
c. Beberapa client akan mencoba memasukkan penawarannya secara
bersamaan.

Universitas Sumatera Utara

43

d. Salah satu client akan memasukkan penawarannya dan dilihat
bagaimana client lain menerima pesan tersebut.

Gambar 4.22 Tampilan login pada masing-masing client saat proses pengujian

Gambar 4.23 Tampilan Menu Utama pada masing-masing client setelah berhasil
login

Universitas Sumatera Utara

44

Salah satu pengujian yang dilakukan adalah dengan mengirimkan input-an
dari beberapa user secara serempak. Dan timestamp dari database MySQL
menunjukkan selisih waktu input-an hanya selama ±50ms dan dapat dianggap
sebagai human error saat menekan tombol “YA” secara serempak.

Gambar 4.24 Hasil yang ditampilkan oleh MySQL saat beberapa user mengirim
input-an secara serempak (Pengujian Pertama)

Gambar 4.25 Hasil yang ditampilkan oleh MySQL saat beberapa user mengirim
input-an secara serempak (Pengujian Kedua)
Pengujian lainnya adalah pengujian untuk melihat semua client menerima
pesan dari server saat salah satu client memasukkan penawarannya. Hasil pengujian

Universitas Sumatera Utara

45

menunjukkan bahwa setiap client dapat menerima pesan dari server dengan tundaan
yang berkisar antara 20 – 40ms antar client.
CLIENT

DELAY TIME (ms)

0 (Pengirim)

107

1

169

2

211

3

228

4

263

5

291

6

325
Tabel 4.1 Tabel Tundaan Waktu

4.2.1. Poin Penting dari Aplikasi
Berikut adalah beberapa poin penting dari aplikasi Lelang Online Sederhana
Berbasis Android:
a. Aplikasi Lelang Online Sederhana ini dapat berjalan dengan baik di
beberapa smartphone berbasis Android.
b. Aplikasi ini merupakan pengembangan dari aplikasi chat dan forum.
c. Dengan threading, aplikasi server dapat menangani input-an yang
dilakukan secara serempak oleh client.
d. Perintah synchronized akan mengatur penyerempakan penerimaan
data pada tiap thread saat proses pengiriman pesan leaderboard.

Universitas Sumatera Utara

46

BAB V
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Dari hasil pengujian dan analisis yang telah dilakukan pada bab
sebelumnya, maka dapat diperoleh kesimpulan sebagai berikut:
1. Pengiriman perintah-perintah khusus dapat digantikan dengan tombol
namun pada prinsipnya tetap mengirimikan pesan teks dengan jalur
komunikasi yang sama.
2. Threading memungkinkan server untuk melayani input-an yang
datang dari client secara serempak (selisih waktu ±50ms dianggap
sebagai human error).
3. Keadilan (fairness) dalam pengiriman pesan kepada setiap client
tercapai dengan tundaan waktu antar client hanya sekitar 20 sampai
40ms.
5.2. Saran
Beberapa saran yang dapat diberikan sehubungan dengan pelaksanaan tugas
akhir ini adalah:
1. Untuk perancangan selanjutnya diharapkan dapat diaplikasikan untuk
jaringan internet (worldwide).
2. Untuk perancangan selanjutnya diharapkan dapat membuat beberapa
sesi yang dapat berjalan secara simultan namun independen satu
terhadap lainnya.

Universitas Sumatera Utara

47

3. Untuk perancangan selanjutnya diharapkan dapat memanfaatkan
fungsi-fungsi lain pada threading secara optimal seperti sleep, wait,
dan sebagainya.

Universitas Sumatera Utara

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

Universitas Sumatera Utara

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

Universitas Sumatera Utara

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,

Universitas Sumatera Utara

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].

Universitas Sumatera Utara

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

Universitas Sumatera Utara

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.

Universitas Sumatera Utara

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.

Universitas Sumatera Utara

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].

Universitas Sumatera Utara

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.

Universitas Sumatera Utara

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

Universitas Sumatera Utara

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.

Universitas Sumatera Utara

1

BAB I
PENDAHULUAN
1.1. Latar Belakang
Threading dalam bidang komputasi dan jaringan telah digunakan sejak lama
dan dikembangkan dalam berbagai aplikasi. Aplikasi ini biasanya berkaitan dengan
chat atau forum di mana setiap client akan menerima informasi yang dikirimkan
dari salah satu client dan proses dapat bekerja serempak untuk masing-masing client
yang terhubung.
Lelang melalui internet muncul seiring dengan perkembangan internet itu
sendiri. Barang atau jasa yang diperjualbelikan dipasang di situs dan peserta lelang
dapat mengikuti acara lelang secara daring (online). Perusahaan lelang yang
berhasil menggunakan sarana internet salah satunya adalah Ebay. Di Indonesia,
lelang melalui internet (online) sudah dipelopori oleh pemerintah dengan situs
lelang online.
Lelang online yang umum dikembangkan saat ini adalah lelang yang
dijalankan melalui situs yang tersedia. Hal ini melatarbelakangi penulis untuk
mereancang dan membuat sebuah aplikasi lelang online berbasis Android dengan
memanfaatkan multithreading sebagai poin utama dari aplikasi tersebut. Penulis
menggunakan library yang disediakan oleh Java untuk mendukung proses
multithreading ini dan MySQL untuk pengelolaan database.
1.2. Rumusan Masalah
Adapun rumusan masalah dari Tugas Akhir ini adalah sebagai berikut :

Universitas Sumatera Utara

2

a.

Bagaimana merancang dan membuat aplikasi lelang online berbasis Android
dengan threading.

b.

Bagaimana

pengelolaan

database

untuk

login/register

session

dan

leaderboard.
c.

Bagaimana peran server (sekaligus admin) dalam manajemen program yang
dijalankan.

1.3. Tujuan
Tujuan dari penulisan Tugas Akhir ini adalah memodifikasi sistem yang
umumnya digunakan dalam chat dan forum untuk diterapkan dalam aplikasi lelang
online berbasis Android.
1.4. Batasan Masalah
Untuk menghindari pembahasan yang meluas dalam tugas akhir ini, maka
penulis menetapkan batasan-batasan masalah sebagai berikut :
a.

Sistem operasi yang digunakan oleh smartphone adalah Android.

b.

Pemrograman untuk server dibangun menggunakan NetBeans Java IDE.

c.

Jumlah client dibatasi sebanyak 7 client.

d.

Alamat IP server sudah ditetapkan di dalam program.

e.

Koneksi yang digunakan adalah WLAN.

f.

Nilai credit (uang elektronik) yang dimiliki client diisikan secara manual oleh
admin.

g.

Pengujian dilakukan dalam waktu 1 menit.

h.

Tidak menyediakan database barang (barang yang diperjualbelikan hanya 1).

i.

Tidak membahas tentang security dalam login/register session.

Universitas Sumatera Utara

3

1.5. Manfaat
Adapun manfaat dari penelitian ini adalah untuk menciptakan aplikasi
lelang online dengan sistem yang sederhana agar dapat dikembangkan oleh calon
enterpreneur sebagai aplikasi start-up-nya.
1.6. Tahapan Penelitian
Untuk dapat meyelesaikan penelitian tugas akhir ini, maka penulis
menerapkan beberapa metode penelitian diantaranya:
1. Studi Literatur
Studi literatur dilakukan dengan mengumpulkan buku dan jurnal yang
berhubungan dengan Threading pada Java dan Android yang menjadi bahan
pada penulisan serta sebagai referensi bagi penulis.
2. Perancangan dan Membangun Sistem
Dilakukan perancangan perangkat lunak dengan membuat algoritma
threading dan proses perlelangan untuk server, algoritma client untuk
smartphone berbasis Android dan membuat activity diagram-nya.
3. Ujicoba dan Analisis Data
Pada tahap ini dilakukan pengujian aplikasi terhadap algoritma threadingnya lalu pengujian aplikasi client terhadap beberapa smartphone, pengujian
terhadap database, hingga pengujian proses perlelangan.
4. Sistematika Penulisan
Untuk memberikan gambaran mengenai Tugas Akhir ini, maka penulis
menyusun sistematika penulisan sebagai berikut:

Universitas Sumatera Utara

4

BAB I PENDAHULUAN
Bab ini menguraikan tentang latar belakang masalah, rumusan masalah,
tujuan penulisan, batasan masalah, manfaat penelitian, metodologi
penulisan, serta sistematika penulisan
BAB II DASAR TEORI
Bab ini membahas sekilas mengenai beberapa teori Java, thread, Android,
socket, alamat IP, port dan paradigma client/server.
BAB III PERANCANGAN SISTEM
Bab ini membahas tentang gambaran umum aplikasi, perancangan aplikasi
server dan perancangan aplikasi client sesuai metodologi penelitian.
BAB IV HASIL DAN ANALISIS
Bab ini membahas tentang hasil dan analisis aplikasi yang dibuat. Baik
pengujian pada server maupun pada client.
BAB V KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan dan saran dari hasil pembahasan-pembahasan
sebelumnya.

Universitas Sumatera Utara

i

ABSTRAK
Threading merupakan prinsip yang memperbolehkan sebagian dari program
untuk berjalan secara independen dengan berbagai program lainnya. Threading
pada umumnya diimplementasikan pada aplikasi chat atau forum diskusi. Dalam
perancangan aplikasi Lelang Online Berbasis Android ini, penulis mengembangkan
prinsip threading sebagai dasar untuk membangun komunikasi antara client dan
server dengan dasar pemrograman java socket programming. Pembuatan aplikasi
ini menggunakan NetBeans Java IDE untuk membangun aplikasi server-nya dan
Android Studio untuk aplikasi client. Aplikasi server akan dijalankan pada
NetBeans Java IDE sementara aplikasi client akan dijalankan pada beberapa
smartphone Android.
Sistem ini berjalan independen satu dengan yang lainnya dan penawaran
dari setiap client disimpan dalam sebuah database, sementara informasi tentang
user disimpan dalam database lainnya. Hasil pembuatan aplikasi ini dapat
dijalankan pada smartphone berbasis Android dengan berbagai versi. Pembuatan
aplikasi ini diharapkan dapat memberikan inspirasi untuk mengembangkan sistem
threading pada aplikasi lainnya.

Kata kunci: java, java socket programming, lelang online, threading, Android

Universitas Sumatera Utara

TUGAS AKHIR

PERANCANGAN APLIKASI LELANG ONLINE SEDERHANA
BERBASIS ANDROID
Diajukan untuk memenuhi salah satu persyaratan dalam menyelesaikan
Pendidikan Sarjana (S-1) pada Departemen Teknik Elektro

Oleh
Winner Roedily
NIM : 110402044

DEPARTEMEN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS SUMATERA UTARA
MEDAN
2017

Universitas Sumatera Utara

i

Universitas Sumatera Utara

i

ABSTRAK
Threading merupakan prinsip yang memperbolehkan sebagian dari program
untuk berjalan secara independen dengan berbagai program lainnya. Threading
pada umumnya diimplementasikan pada aplikasi chat atau forum diskusi. Dalam
perancangan aplikasi Lelang Online Berbasis Android ini, penulis mengembangkan
prinsip threading sebagai dasar untuk membangun komunikasi antara client dan
server dengan dasar pemrograman java socket programming. Pembuatan aplikasi
ini menggunakan NetBeans Java IDE untuk membangun aplikasi server-nya dan
Android Studio untuk aplikasi client. Aplikasi server akan dijalankan pada
NetBeans Java IDE sementara aplikasi client akan dijalankan pada beberapa
smartphone Android.
Sistem ini berjalan independen satu dengan yang lainnya dan penawaran
dari setiap client disimpan dalam sebuah database, sementara informasi tentang
user disimpan dalam database lainnya. Hasil pembuatan aplikasi ini dapat
dijalankan pada smartphone berbasis Android dengan berbagai versi. Pembuatan
aplikasi ini diharapkan dapat memberikan inspirasi untuk mengembangkan sistem
threading pada aplikasi lainnya.

Kata kunci: java, java socket programming, lelang online, threading, Android

Universitas Sumatera Utara

ii

KATA PENGANTAR
Segala puji dan syukur penulis panjatkan kehadirat Tuhan Yang Maha Esa,
karena atas berkat rahmat dan berkat-Nya Tugas Akhir ini dapat disusun dan
diselesaikan.
Tugas Akhir ini merupakan bagian dari kurikulum yang harus diselesaikan
untuk memenuhi persyaratan dalam menyelesaikan pendidikan Sarjana Strata Satu
di Departemen Teknik Elektro, Universitas Sumatera Utara. Adapun judul Tugas
Akhir ini adalah :
“PERANCANGAN APLIKASI LELANG ONLINE SEDERHANA
BERBASIS ANDROID”
Tugas Akhir ini penulis persembahkan kepada orangtua yang teristimewa
yaitu Ayahanda Rudy Sukiran beserta Ibunda Lilyana dan Kakanda Wenly Roedily
serta Winstein Roedily yang selalu memberikan semangat dan mendoakan penulis
selama masa studi hingga menyelesaikan Tugas Akhir ini.
Selama masa kuliah hingga penyelesaian Tugas Akhir ini, penulis juga
banyak mendapatkan dukungan maupun bantuan dari berbagai pihak. Untuk itu
penulis ingin menyampaikan rasa terima kasih yang mendalam kepada:
1.

Bapak Ir. Surya Tarmizi Kasim, M.Si., selaku Ketua Departemen
Teknik Elektro.

2.

Bapak Ir. Kasmir Tanjung, M.T., selaku dosen Pembimbing Tugas
Akhir yang telah banyak meluangkan waktu dan pikirannya untuk

Universitas Sumatera Utara

iii

selalu memberikan bantuan, bimbingan, dan pengarahan kepada
penulis selama perkuliahan hingga penyusunan Tugas Akhir ini.
3.

Bapak Dr. Ir. Fahmi, S.T., M.Sc., IPM, selaku Dosen Penguji Tugas
Akhir yang telah memberikan banyak masukan demi perbaikan Tugas
Akhir ini.

4.

Bapak Emerson Pascawira Sinulingga, S.T., M.Sc., Ph.D., selaku
Dosen Penguji Tugas Akhir yang telah memberikan banyak masukan
demi perbaikan Tugas Akhir ini.

5.

Bapak Emerson Pascawira Sinulingga, S.T., M.Sc., Ph.D., selaku dosen
wali penulis yang telah banyak memberikan bimbingan selama
perkuliahan.

6.

Seluruh Bapak dan Ibu dosen, khususnya kepada bapak Ir. T. Ahri
Bahriun, M.Sc., bapak Ir. Pernantin Tarigan, M.Sc., bapak Fakhruddin
Rizal Batubara, ST, MTI., yang telah mendidik serta memberikan
pengalaman hidup yang berharga selama masa perkuliahan kepada
penulis.

7.

Seluruh staf pegawai Departemen Teknik Elektro FT USU Kak Umi,
Bu Ester, Bang Martin , Pak Ponijan, dan Bang Divo yang telah
membantu penulis dalam pengurusan administrasi.

8.

Keluarga besar Elektro USU, khususnya Elektro Balak 1 atas 5 tahun
yang berharga.

9.

Abang Dwi Budi Prasetyo, bang Teguh, bang Arif, bang Reza, bang
Meikolin, bang Aras, bang Robin, bang Aditya yang telah memberi
ilmunya dan banyak masukan kepada penulis, teman-teman satu sub-

Universitas Sumatera Utara

iv

jurusan di Lab. Komputer yang bersedia membagi ilmunya kepada
penulis.
10. Kepada abang Friendly, S.T, M.T. yang telah memberi banyak bantuan
dan masukan kepada penulis selama mengerjakan Tugas Akhir.
11. Kepada rekan seperjuangan dari awal kuliah, KP hingga Tugas Akhir,
Harry Panjaitan dan Longser Tampubolon yang telah banyak
membantu penulis.
12. Kepada Fadhli Pratama, M. Saidul, Mian Martua, M. Harris, Anriadi
Sinaga, Stif Agrath, Esra Christian, Janrico dan Ifan Fadhlan yang telah
banyak membantu selama proses pengujian aplikasi pada Tugas Akhir
ini.
13. Serta semua keluarga, kerabat, dan teman lainnya yang telah banyak
membantu penulis dalam meyelesaikan studi yang tidak dapat
disebutkan satu persatu.

Saran

dan

kritik

dari

pembaca

sangat

penulis

harapkan

untuk

menyempurnakan dan mengembangkan kajian dalam bidang terkait Tugas Akhir
ini. Akhir kata, penulis berharap semoga Tugas Akhir ini dapat bermanfaat bagi
pembacanya.
Medan,

Januari 2017

Penulis,

Winner Roedily

Universitas Sumatera Utara

v

NIM. 110402044
DAFTAR ISI
ABSTRAK ............................................................................................................... i
KATA PENGANTAR ............................................................................................ ii
DAFTAR ISI ........................................................................................................... v
DAFTAR GAMBAR ............................................................................................ vii
DAFTAR TABEL ................................................................................................... x
BAB I

PENDAHULUAN ................................................................................... 1

1.1.

Latar Belakang ......................................................................................... 1

1.2.

Rumusan Masalah .................................................................................... 1

1.3.

Tujuan ....................................................................................................... 2

1.4.

Batasan Masalah ....................................................................................... 2

1.5.

Manfaat ..................................................................................................... 3

1.6.

Tahapan Penelitian ................................................................................... 3

BAB II DASAR TEORI ....................................................................................... 5
2.1.

Java ........................................................................................................... 5

2.1.1.

Java.io................................................................................................ 6

2.1.2.

Java.net .............................................................................................. 6

2.2.

Thread ....................................................................................................... 7

2.3.

Android ..................................................................................................... 8

Universitas Sumatera Utara

vi

2.3.1.

Arsitektur Android ............................................................................ 9

2.3.2.

Android SDK .................................................................................. 10

2.4.

Socket ..................................................................................................... 10

2.5.

Alamat IP ................................................................................................ 12

2.6.

Port ......................................................................................................... 12

2.7.

Paradigma Client/Server......................................................................... 12

BAB III PERANCANGAN SISTEM .................................................................. 16
3.1.

Umum ..................................................................................................... 16

3.2.

Perancangan Aplikasi Server.................................................................. 17

3.3.

Perancangan Aplikasi Client .................................................................. 19

3.3.1.
3.4.

Perancangan Struktur Navigasi ....................................................... 21

Diagram Aktivitas Aplikasi .................................................................... 22

BAB IV HASIL DAN ANALISIS ....................................................................... 23
4.1.

Hasil Perancangan Aplikasi.................................................................... 23

4.1.1.

Hasil pada Aplikasi Server .............................................................. 23

4.1.2.

Hasil pada Aplikasi Client .............................................................. 26

4.2.

Analisis Aplikasi .................................................................................... 42

4.2.1.

Poin Penting dari Aplikasi .............................................................. 45

BAB V KESIMPULAN DAN SARAN .............................................................. 46
5.1.

Kesimpulan ............................................................................................. 46

Universitas Sumatera Utara

vii

5.2.

Saran ....................................................................................................... 46

DAFTAR PUSTAKA ........................................................................................... 48
LAMPIRAN .......................................................................................................... 49
DAFTAR GAMBAR
Gambar 2.1

Arsitektur Android .......................................................................... 9

Gambar 2.2

Model Client/Server ...................................................................... 13

Gambar 2.3

Model Komunikasi Client/Server ................................................. 14

Gambar 3.1

Gambaran aplikasi secara umum .................................................. 16

Gambar 3.2

Gambaran hubungan Client/Server ............................................... 17

Gambar 3.3

Diagram Aktivitas Aplikasi Server ............................................... 18

Gambar 3.4

Diagram Aktivitas Aplikasi Client ..................................