• Tidak ada hasil yang ditemukan

Perancangan Aplikasi Lelang Online Sederhana Berbasis Android

N/A
N/A
Protected

Academic year: 2017

Membagikan "Perancangan Aplikasi Lelang Online Sederhana Berbasis Android"

Copied!
94
0
0

Teks penuh

(1)
(2)

51

(3)
(4)

53

 clientThread.java Class

(5)
(6)

55

(7)
(8)

57

(9)
(10)

59

(11)
(12)

61

(13)
(14)

63

(15)
(16)

65

(17)
(18)

67

Lampiran 2. Source Code Aplikasi Client

 Menu.java Class

(19)
(20)

69

(21)

70

(22)

71

(23)
(24)

73

(25)

74

(26)

75

(27)
(28)

77

(29)

78

(30)

79

(31)
(32)

81

(33)

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.

(34)

49

[10] Bell, Charles. 2012. Expert MySQL: Second Edition. New York: Apress Media, LLC.

LAMPIRAN

Lampiran 1. Source Code Aplikasi Server

 Sync.java Class

(35)

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

[image:35.595.120.504.429.681.2]
(36)
[image:36.595.121.505.93.407.2]

17

Gambar 3.2Gambaran 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.

(37)

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 serverhost jaringan.

Mulai

Membuka koneksi dan Menunggu koneksi dari client

Menerima Koneksi dari client (Client Thread)

Apakah jumlah client yang terhubung sudah sampai daya tampung

maksimal ?

Menunggu input dari client dalam countdown yang

telah ditentukan

Menerima dan mendistribusikan data ke

seluruh client Tentukan pemenang dan informasikan ke seluruh client YA TIDAK

Apakah countdown sudah berakhir ?

[image:37.595.124.508.237.728.2]
(38)

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 Wi-Fi 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

(39)

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

[image:39.595.244.374.273.642.2]
(40)

21

3.3.1. Perancangan Struktur Navigasi

Struktur navigasi merupakan gambaran dari menu pilihan yang akan dijalankan.

SESI LOGIN

MENU

UTAMA REGISTRASISESI

PETUNJUK

MULAI TENTANG

MEMULAI

[image:40.595.195.429.186.382.2]

LELANG PETUNJUKHALAMAN 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.

(41)

22

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

3.4. Diagram Aktivitas Aplikasi

Membuka Koneksi

Mulai

Menunggu Koneksi dari Client

Menerima Koneksi dari Client (create thread)

Tidak

Apakah jumlah client

yang terhubung sudah sampai daya tampung

maksimal ?

Mendaftarkan User pada Leaderboard

Memberikan Inputan ke Server Membuat Permintaan

Koneksi ke Server Melakukan Login

Mulai

Menerima Inputan dari Client

Mengisikan Penawaran

pada Leaderboard Mendistribusikan Penawaran Tertinggi ke Seluruh Client Menerima Inputan dari

Server

Ya

Apakah countdown

sudah berakhir ?

[image:41.595.115.510.190.626.2]

Tidak Ya Ya Tidak Apakah penawaran tersebut memenuhi persyaratan ?

(42)

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.

[image:42.595.137.488.349.652.2]

4.1.1. Hasil pada Aplikasi Server

Gambar 4.1 Tampilan awal aplikasi server untuk memilih login sebagai server

atau client

(43)

24

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

[image:43.595.115.512.160.398.2]

server.

Gambar 4.2Tampilan setelah admin memilih login sebagai server

Saat admin login sebagai server, aplikasi server akan menggunakan port

[image:43.595.140.485.572.676.2]
(44)

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.4Daftar 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

(45)

26

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

[image:45.595.224.402.187.492.2]

4.1.2. Hasil pada Aplikasi Client

Gambar 4.6 Tampilan awal saat aplikasi client dijalankan

(46)
[image:46.595.221.403.97.404.2]

27

Gambar 4.7Halaman 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”.

(47)
[image:47.595.221.401.94.406.2]

28

Gambar 4.8Halaman 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.

(48)
[image:48.595.221.403.95.400.2]

29

Gambar 4.9Halaman 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.

(49)

30

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

(50)

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.

[image:50.595.221.403.96.405.2]
(51)
[image:51.595.221.403.95.399.2]

32

Gambar 4.11Tampilan setelah otentikasi

Aplikasi ini dapat menerima hubungan client hingga 7 client. Pemberian nomor ID diberikan berdasarkan urutan client yang lebih dahulu terhubung ke

(52)

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-input -kan user. Pesan ini disertakan dalam aplikasi karena penawaran yang diberikan user

yang sudah diterima oleh server tidak dapat dibatalkan.

[image:52.595.222.401.96.404.2]
(53)
[image:53.595.222.403.96.404.2]

34

Gambar 4.13 Tampilan setelah user memberikan penawaran

(54)
[image:54.595.222.403.96.409.2]

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.

(55)

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

[image:55.595.222.402.97.401.2]
(56)

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-nyaselama 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

[image:56.595.222.403.96.408.2]
(57)

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

[image:57.595.116.507.185.467.2]
(58)

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.

[image:58.595.221.403.95.408.2]
(59)
[image:59.595.222.401.96.405.2]

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

(60)

41

Gambar 4.20 Tampilan halaman menu Help

(61)

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.

[image:61.595.222.403.93.410.2]
(62)

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

[image:62.595.144.481.159.391.2] [image:62.595.145.480.446.660.2]
(63)

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)

(64)

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

[image:64.595.113.512.161.389.2]

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.

(65)

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:

(66)

47

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

(67)

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

(68)

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

(69)

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.

(70)

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

(71)

9

2.3.1. Arsitektur Android

[image:71.595.125.502.299.546.2]

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

(72)

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.

(73)

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.

(74)

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

(75)

13

Client adalah mesin yang membutuhkan beberapa jenis informasi, sedangkan

server adalah mesin yang menyimpan informasi dan menunggu untuk

[image:75.595.229.393.268.401.2]

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

(76)
[image:76.595.177.450.88.285.2]

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

(77)

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.

(78)

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 :

(79)

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

(80)

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 threading -nya 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:

(81)

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

(82)

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

(83)

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

(84)

i

(85)

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.

(86)

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

(87)

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.

(88)

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

(89)

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

(90)

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. Perancangan Struktur Navigasi ... 21

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

(91)

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

Gambar 3.5 Struktur Navigasi ... 21

Gambar 3.6 Diagram Aktivitas ... 22

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

Gambar 4.2 Tampilan setelah admin memilih login sebagai server ... 24

Gambar 4.3 Aplikasi menggunakan port 2222 untuk komunikasi ... 24

Gambar 4.4 Daftar user yang telah terdaftar untuk mengikuti lelang ... 25

Gambar 4.5 Tampilan saat admin memilih salah satu akun user ... 25

(92)

viii

Gambar 4.10 Tampilan sebelum otentikasi... 31

Gambar 4.11 Tampilan setelah otentikasi ... 32

Gambar 4.12 Pesan untuk meyakinkan user akan penawaran yang akan diberikan ... 33

Gambar 4.13 Tampilan setelah user memberikan penawaran ... 34

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

Gambar 4.15 Tampilan saat user memberikan penawaran yang lebih rendah dari penawaran tertinggi pada leaderboard ... 36

Gambar 4.16 Tampilan saat user memberikan penawaran yang melebihi jumlah credit yang dimiliki ... 37

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

Gambar 4.18 Tampilan saat sistem mendistribusikan informasi pemenang dan pesan kepada pemenang lelang ... 39

Gambar 4.19 Pesan yang ditampilkan saat user menekan tombol EXIT ... 40

Gambar 4.20 Tampilan halaman menu Help ... 41

Gambar 4.21 Tampilan halaman menu About ... 42

Gambar 4.22 Tampilan login pada masing-masing client saat proses pengujian 43 Gambar 4.23 Tampilan Menu Utama pada masing-masing client setelah berhasil login ... 43

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

(93)

ix

(94)

x

DAFTAR TABEL

Tabel 4.1 Tabel Tundaan Waktu ... 45

Gambar

Gambar 3.1 Gambaran aplikasi secara umum
Gambar 3.2 Gambaran hubungan Client/Server
Gambar 3.3 Diagram Aktivitas Aplikasi Server
Gambar 3.4 Diagram Aktivitas Aplikasi Client
+7

Referensi

Dokumen terkait

Aplikasi Analisis Multivariat Badan dengan Program Spss.. Semarang: Badan Penerbit Universitas

Sehingga diharapkan masyarakat semakin ditingkatkan pemahaman mengenai hukum pernikahan serta kerjasama dalam peningkatan ekonomi, bimbingan mengenai kesehatan

Oleh karena itu agar siswa berperan aktif dalam kegiatan belajar, guru dapat memilih Pembelajaran kooperatif tipe problem possing diterapkan pada kelas VII A sebagai

JUDUL : 60 PERSEN PENDERITA TAK SADAR IDAP DIABETES. MEDIA : KEDAULATAN RAKYAT TANGGAL : 7

Batu Karas merupakan salah satu pantai di Jawa Barat yang memiliki potensi besar terhadap wisata pantainya khususnya untuk olahraga surfing , namun

Rata-rata orang yang tinggal di daerahku ini adalah pendatang, baik dari luar daerah Palembang seperti dari OI, OKI, Banyuasin,dll maupun juga luar Provinsi seperti dari

kehandalan model infiltrasi sederhana dalam mengurangi limpasan permukaan akibat hujan sangat deras diindikasikan oleh adanya selisih antara tingginya kenaikan muka

belajar siswa antar siklus dan sangat bermakna. Korelasi, dengan membandingkan nilai r tab (0.05)  (0.320) dan r tabel (0.01)