Professional Documents
Culture Documents
THESIS
By
THESIS
By
2016
Bina Nusantara University
Thesis Statement
We, Monica Elizabeth
Billy Gani
Maretta Anggun Safitri,
Herewith stating that the Thesis with title:
Is our original work and has not previously been submitted as a scientific result,
as a whole or parts, and contains no materials previously published or written
except where due acknowledgements are made.
4
A5
ABSTRACT
ABSTRAK
Aplikasi navigasi untuk transportasi umum di Jakarta, JalanYuk! ini dibuat untuk
web, Android, dan iOS, dengan tujuan memudahkan pengguna dalam mendapatkan
informasi transportasi umum dalam bepergian di Jakarta. JalanYuk! mempunyai
beberapa fitur, diantaranya navigasi rute terbaik beserta rute alternatif untuk
Transjakarta, Commuter Line, dan angkot, perkiraan waktu perjalanan, kalkulasi total
harga, informasi jadwal dan rute kendaraan, informasi tempat-tempat menarik
disekitar pemberhentian, dan menampilkan laporan-laporan dari sesama pengguna.
Metodologi penelitian yang digunakan dalam skripsi ini adalah metode studi literatur
dengan menggunakan buku, jurnal, dan teori-teori yang digunakan untuk menunjang
skripsi ini. Metodi analisa pengguna dengan menggunakan kuesioner dan analisa
aplikasi sejenis juga digunakan untuk mendapatkan data valid tentang kondisi yang
ada sekarang di kehidupan sehari-hari dalam hal transportasi umum dan aplikasi
transportasi umum. Hasil akhir dari penelitian ini adalah sebuah aplikasi navigasi
kendaraan umum yang juga menyediakan informasi tambahan seperti informasi
jarak, harga, durasi, jadwal, rute, lokasi tempat menarik, dan laporan-laporan
pengguna.
Kata Kunci: web, Android, iOS, layanan pemetaan, transportasi umum, navigasi
6
A7
PREFACE
First of all, we would like to thank God for giving His blessing and strength
for the authors to finish this thesis report entitled JALANYUK! : NAVIGATION
APPLICATION FOR PUBLIC TRANSPORTATION IN JAKARTA ON WEB AND
MOBILE PLATFORM on time. This thesis report was made as the requirement in
completing study of Undergraduate Program Computer Science in Bina Nusantara
University, Jakarta.
This thesis report could not be done without the help from many parties. That
is the reason the authors team expresses our sincere gratitude to:
1. Mr. Prof. Dr. Ir. Harjanto Prabowo, MM, as the Rector of Binus
University
2. Mr. Fredy Purnomo, S.Kom., M.Kom., as the Dean of School of
Computer Science Binus University.
3. Mrs. Yen Lina Prasetio, S.Kom., M.CompSc., as the Head of Computer
Science Program Binus University.
4. Mrs. Rini Wongso, S.Kom., M.T.I. as the Deputy Head of Computer
Science School - Academic and Operation
5. Mrs. Violitta Yesmaya, S.Kom, M.T.I as the Deputy Head of Computer
Science Program Binus University Alam Sutera
6. Mrs. Lusiana Citra Dewi, S.Kom., M.M. as an advisor who has given a lot
of guidance and patience to the authors in writing this thesis.
7. Our Families who have given moral and financial support to the authors
8. Our Friends who have given motivation and feedback to the authors
The authors realize that this thesis report is still far from perfect because of
limited time and the authors ability. The authors are open to all critics and
suggestion that may be useful to improve this report. May God repay the kindness
and sincerity of all people who help the authors finish this project. May this project
become useful to many parties in current and future times.
Writers
A8
TABLE OF CONTENTS
Cover Page.....................................................................................................................
Title Page
ABSTRACT................................................................................................................iv
ABSTRAK....................................................................................................................v
PREFACE....................................................................................................................vi
TABLE OF CONTENTS............................................................................................vii
TABLE OF TABLES...................................................................................................xi
TABLE OF FIGURES...............................................................................................xiii
TABLE OF APPENDICES......................................................................................xvii
CHAPTER 1 INTRODUCTION............................................................................1
1.1 Background.....................................................................................................1
8
A9
2.1 Android..................................................................................................19
2. iOS.........................................................................................................20
2.3 Java........................................................................................................21
2.6 HTML....................................................................................................22
2.7 CSS........................................................................................................23
2.8 Javascript...............................................................................................23
2.9 jQuery....................................................................................................23
2.10 AJAX.....................................................................................................24
2.1 PHP........................................................................................................24
2.1 MySQL..................................................................................................25
2.13 Bootstrap................................................................................................25
3.1 Planning........................................................................................................29
3.2 Design...........................................................................................................44
3.3 Coding..........................................................................................................74
3.1 Refactoring............................................................................................74
3.4 Testing..........................................................................................................83
4.2 Evaluation...................................................................................................101
10
A11
5.1 Conclusion..................................................................................................127
5.2 Suggestion..................................................................................................128
BIBLIOGRAPHY...................................................................................................129
APPENDIX...............................................................................................................A1
CURRICULUM VITAE
SURVEY LETTER
A12
TABLE OF TABLES
12
A13
TABLE OF FIGURES
14
A15
Figure 4.5 Home Screen of Device Running iOS with JalanYuk! Installed..............89
Figure 4.6 JalanYuk! Website Homepage..................................................................89
Figure 4.7 Get Current Location in JalanYuk!...........................................................90
Figure 4.8 Get Current Location and Switch Location Icon in JalanYuk!.................90
Figure 4.9 Autocomplete on JalanYuk! Website........................................................91
Figure 4.10 Suggested Routes in JalanYuk! Website.................................................91
Figure 4.11 Summary of the Route and Route Path in JalanYuk! Website................92
Figure 4.12 View Nearby Location in JalanYuk! Website.........................................92
Figure 4.13 Using Gmail Account to Login to JalanYuk! Website............................93
Figure 4.14 Reporting an Event in JalanYuk! Website..............................................93
Figure 4.15 Report an Incident in JalanYuk! Website...............................................94
Figure 4.16 JalanYuk! Icon on iOS............................................................................94
Figure 4.17 JalanYuk! Icon on Android.....................................................................95
Figure 4.18 JalanYuk! Mobile Application................................................................95
Figure 4.19 Autocomplete on JalanYuk! Mobile Application...................................96
Figure 4.20 Route Suggestions on JalanYuk! Mobile Application............................97
Figure 4.21 Route Summary in JalanYuk! Mobile Application.................................98
Figure 4.22 View Nearby Location in JalanYuk! Mobile Application......................99
Figure 4.23 Dropdown Menu of JalanYuks Mobile Application..............................99
Figure 4.24 Login with Gmail Account...................................................................100
Figure 4.25 Reporting an Event in JalanYuk! Mobile Application..........................100
Figure 4.26 Report an Event in JalanYuk! Mobile Application...............................101
Figure 4.27 Questionnaire Result for Question Number 1......................................102
Figure 4.28 Questionnaire Result for Question number 2.......................................103
Figure 4.29 Questionnaire Result for Question Number 3......................................103
Figure 4.30 Questionnaire Result for Question Number 4......................................104
Figure 4.31 Questionnaire Result for Question Number 5......................................105
Figure 4.32 Questionnaire Result for Question Number 6......................................106
Figure 4.33 Questionnaire Result for Question Number 7......................................107
Figure 4.34 Questionnaire Result for Question Number 8......................................108
Figure 4.35 Questionnaire Result for Question Number 1......................................109
Figure 4.36 Questionnaire Result for Question Number 2......................................109
Figure 4.37 Questionnaire Result for Question Number 3......................................110
16
A17
TABLE OF APPENDICES
18
A1
CHAPTER 1
INTRODUCTION
1.1 Background
Jakarta is the Capital City of Indonesia, located in the Java Island. Traffic jam
has becoming a probem that keeps growing at an alarming rate in Jakarta. According
to survey conducted by Castrol, Jakarta is ranked number 1 on the most congested
cities with highest number of stops and starts, with an average of 33,240 per driver
per year (Castrol Start Stop Index, 2015). This has become a huge issue that goes
around Jakarta in last few decades. To tackle this problem, Jakartas Governor Basuki
Tjahaja Purnama via metro.sindonews.com stated that the only working theory to
dissolve the congestion in Jakarta, is to make people willing to commute using public
transportation (Ahok Minta Warga Jakarta Beralih ke Kendaraan Umum, 2013).
There are a lot of public mass transportation in Jakarta, from systematized
ones, Transjakarta Busway and Commuter Line, and the ones that is not systematized
such as angkot. One problem that surfaces is, people still prefers to use their private
vehicle to commute.
With the advance development of Information Technology, human are living in
convenient where Information Technology helps human in many ways. Technology
is considered as one of the term that can be applied in any sector.The growing
population of smartphone users has changed how people react to a missing
information in transportation as cited in following statement. Information and
transportation are so intricately intertwined that smartphones and other
technologies have reshaped how urban dwellers get around in cities all over the
world. (Kaufman, 2012). With the booming of smartphone in society, people starts
integrating smartphone and internet to their everyday life. When the need of
information emerged, internet is the way for people to get the information almost
instantly. People in Indonesia is no exception, from a survey conducted by emarketer
in 2015, 55.4 milions of smartphone users are reported in Indonesia. In 2016,
smartphone users in Indonesia is predicted to reach 65.2 millions (Asia-Pacific
Boasts More Than 1 Billion Smartphone Users, 2015).
A2
As table above depicted, Android is taking the lead for operation systems in the
world for second quartal in 2015, while iOS placed 2nd. The trend is the same in
Indonesia. Sharing Visions founder Dimitri Mahayana via sidomi.com said from
survey conducted by Sharing Vision in 2013, 60% of smartphone user in Indonesia is
using Android as their operating system (60% Smartphone di Indonesia Pakai OS
Android, 2014). While Android still dominates the market, from a survey conducted
by NetApplications, iOS users are seven times more active from Android users in
term of data usage. It occurs because Android targets the low end market, especially
in developing countries. Users in developing countries are using Android device only
to replace their regular phone and not for being active in the internet (Nistanto,
2014).
Based of arguments above, the application JalanYuk! will be developed in
web, android, and iOS platform to ease users when they want to travel in Jakarta with
public transportation, and to increase users interest in taking public transportation in
Jakarta. JalanYuk!s core functionality is to take user to their destination using public
transportation, with approximate duration of travel, calculation of total cost,
suggestion of routes based on duration and distance, added functionality of reporting
situations based on location, and also shows places of interest to look at for tourist or
for those who are visiting that wanted to see interesting places near the stops.
The current state-of-art of the topics regarding navigation no doubt is Google
Map. With its current technology, Google Map features include direction searching,
earth imagery view, real time traffic coloring, transit point, bicycle route, private map
making tool, real time accident information, place recommendation, place name
information, real imagery street view, travel direction, cost and time calculation,
2
A3
terrain view and level information, borders and even the earth and its surrounding
universe imagery. Further explanation of the state-of-art will be explained in second
chapter.
a. The development of the application is for web, Android, and iOS platform. The
mobile application currently has not been released in Google Play Store and
Apple App Store.
c. The development of this application uses external resources and APIs, which
include Google Maps Directions API, Google Maps Javascript API, and
Foursquare API. Due to usage limits of Google Maps Directions API Free Plan,
several functionalities will have limitations and may not work as expected.
A4
4
A5
6
A7
CHAPTER 2
LITERATURE REVIEW
Agility means rapid. These days business are changing rapidly, customers are
demanding the fast delivery of a product. Ivar Jacobson provides a useful discussion
for defining agility. In Jacobsons view, an agile team is a team that able to responds
to change quickly with appropriate actions. Change is something that is not unusual
in software development. Support for change should be something that a team should
embrace. The ability to collaborate for each member of the team is the core of the
success in the project (Pressman, 2015, p. 68).
Agile Development is a philosophy and set of guidelines for developing
information systems in an unknown, rapidly changing environment (Satzinger,
Jackson, & Burd, 2012, p. 226). The Agile development answers the questions
surrounding the unpredictability of a software development. In order to manage
unpredictability, an agile process must be adaptable (Pressman, 2015, p. 70).
The Manifesto for Agile Software Development (Satzinger, Jackson, & Burd,
2012) identifies four basic values, which represent the core philosophy of Agile
development:
a) Value responding to change over following a plan
b) Value individuals and interactions over processes and tools
c) Value working software over comprehensive documentation
d) Value customer collaboration over contract negotiation
1. Planning
Planning activity begins with a requirements gathering activity that
enables member of XP team to understand the context of the software, the
required output, and major features and functionality of the software from the
customer. This activity leads to the creation of a set of user stories.
2. Design
XP design principle is to keep it simple. A simple design is always
preferred over a complex representation. The design contains implementation
guidance for the user stories as it is.
A9
3. Coding
After stories are developed and preliminary design work is done, the
team develops a series of unit tests that will be implemented from the stories
that is to be included in the current release.
A key concept in coding activity in XP is pair programming. Pair
programming is when two people work together at one computer workstation
to create code for a story. These practices are good for real-time problem
solving and real-time quality assurance. The role of each person is different in
pair programming. For example, one person is focused on the coding details,
and the other ensures that the code will satisfy the user story.
4. Testing
Once the code is complete, a unit test is to be conducted and feedback
can be obtained immediately. Integration and validation testing of the system
can occur on a daily basis. XP acceptance tests are focused on overall system
features and functionality that are visible by the customer.
Taken from System Analysis and Design Method (Whitten & Bentley, System
Analysis and Design Methods, 2007, p. 246), use case diagram is a diagram which
graphically depicts the system as a collection of use cases, actors (users), and their
relationships. This diagram communicates at a scope of the business events that must
be processed by the system. In constructing use case diagram, the first step that needs
to be done is the process called functional decomposition, which is the act of
breaking a system apart into its subcomponents.
There are three components of use case diagram (Whitten & Bentley, System
Analysis and Design Methods, 2007, pp. 246-250):
1. Use Cases
Use cases describe the system functions from the perspective of external
users. It is represented graphically by a horizontal ellipse with the name of the
use case appearing above, below, or inside the ellipse. A use case represents a
single goal of the system and describes a sequence of activities and user
interactions in trying to accomplish the goal.
9
A10
2. Actors
Actors are external users that initiate or trigger use cases for the purpose of
completing some business task that produces something of measurable value. An
actor is not limited to human, it can be an organization, another information
system, and external device, or the concept of time. An actor is represented
graphically as a stick figure labeled with the name of the role.
3. Relationships
A relationship is represented by a line between two symbols on the use
case diagram. The following is the types of relationship in use case diagram:
1. Associations
An association is a relationship between an actor and a use case. It is
represented by a solid line connecting the actor and the use case. An association
can contain an arrowhead that indicates the use case was initiated by the actor on
the other end of the line, meanwhile if there is no arrowhead on the line, it
indicates interaction between receiver actor.
2. Extends
When the functionality becomes more complex, oftentimes it is difficult to
understand. For the purpose of making it easier to understand, another use case can
be extracted from the complex steps, and is called as an extension use case.
Extension use case extends the functionality of the use case. To represent an
extension of a use case, arrowhead line labeled as <<extends>> is used. The
A11
arrowhead is pointing to the use case its extending, and the tail is from the extension
use case.
3. Uses(or Includes)
Uses or Includes is the form of relationship between a use case and an abstract
use case. Abstract use case represents the steps taken by several use case that is
identical. An abstract use case is available for referencing steps that another use cases
require. To represents uses or includes, arrowhead line labeled as <<uses>> begins at
its original use case and points to an abstract use case that is used.
4. Depends On
11
A12
In several cases, a use case has a dependency on another use case to execute
itself. A use case diagram modeling the systems use case dependencies using the
depends on relationship provides a model that is an excellent tool for planning and
scheduling purposes. Depends On relationship is represented by arrowhead line
labeled as <<depends on>> and begins at one use case and points to a use case that it
is dependent on.
5. Inheritance
Inheritance is applied when two or more actors share the same activity or use
the same use case. It is can be achieved by creating an abstract actor in order to
eliminate such redundancy. Inheritance relationship is depicted using a line with an
arrowhead, beginning from the actor, and pointing to the abstract actor in which the
actor inherited from.
A13
Use case narrative is first documented at a high level to paint the picture of a
system. Then for each high-level use case identified, it is expanded to a fully
documented business requirement narrative to include use cases typical course of
events and its alternate courses. (Whitten & Bentley, System Analysis and Design
Methods, 2007, pp. 256-258).
Use case narrative describes the event of a business, which is (Whitten &
Bentley, System Analysis and Design Methods, 2007, p. 258):
1. Author names of the one who write
the use case and whose provide a contact when someone requires additional
information about the use case.
2. Date the date the use case was last
modified.
3. Version the current version of the use
case.
4. Use-case name the use case name
should represent the goal that the use case is trying to accomplish. The name
should begin with a verb.
5. Use-case type in performing use case
modeling, business requirement use cases are constructed first. This type of use
case is business-oriented and reflects a high-level view of the desired behavior
13
A14
of the system. It is free from technical details and may include manual as well
as automated activities.
6. Use-case ID an identifier that
uniquely identifies the use case.
7. Priority communicates the
importance of the use case with the term high, medium, or low.
8. Source defines the entity that
triggered the creation of the use case. This could be a requirement, a specific
document, or a stakeholder.
9. Primary business actor the
stakeholder that primarily benefits from the execution of the use case by
receiving something of measurable or observable value.
10. Other participating actors other
actors that participate in the use case.
11. Interested stakeholder(s) a person
(other than actor) who has a vested interest in the goal of the use cases.
12. Description a short summary
description that consists of a couple of sentences outlining the purpose of the
use case and its activities.
13. Precondition a constraint on the state
of the system before the use case can be executed.
14. Trigger the event that initiated the
execution of the use case.
15. Typical course of events a normal
sequence of activities performed by the actor and the system in order to satisfy
the goal of the use case. These include the interactions between the system and
the actor and the activities performed by the system in response to the
interactions.
16. Alternate courses documents the
behaviors of the use case if an exception or variation to the typical course
occurs.
17. Conclusion specifies when the use
case successfully ends.
18. Postcondition a constraint on the
state of the system after the use case has been successfully executed.
19. Business rules specify policies and
procedures of the business that the new system must follow.
A15
Figure 2.8 Use Case Narrative Example (Whitten & Bentley, 2007, p. 259)
15
A16
Figure 2.9 (cont.) Use Case Narrative Example (Whitten & Bentley, 2007, p. 260)
5. Merge the diamond shapes with two or more flows coming in and one flow
going out. This combines flows that were previously separated by decisions.
Processing continues with any one flow coming into the merge.
6. Fork a black bar with two or more flows coming in and two more flows going
out. Actions on parallel flows beneath the fork can occur in any order or
concurrently.
7. Join a black bar with two or more flows coming in and one flow going out,
noting the end of concurrent processing. All actions coming into the join must be
completed before processing continues.
8. Activity final the solid circle inside the hollow circle representing the end of
the process.
9. Subactivity indicator the rake symbol in an action indicates that this action is
broken out in another separate activity diagram.
10. Connector a letter inside a circle gives you another tool for managing
complexity. A flow coming into a connector jumps to the flow coming out of a
connector with a matching letter
Taken from Designing the User Interface (Shneiderman, Designing the User
Interface, 2008, pp. 74-75), to improve the usability of an application, it is important
to have a well designed interface.
For an application to have a well designed interface, the followings are the
criteria:
1. Strive for Consistency
Consistent sequences of actions such as using identical terminology are used
in menus, prompts, etc. The commands should be applied consistently throughout
the application.
2. Cater To Universal Usability
Variety of users are expected to use the interface, hence the importance of
recognizing various users from novice to expert, various age range, and
technological diversity needs to be evaluated to enrich the requirements of the
design.
3. Offer informative feedback
For every action initiated by user, there should be a feedback from the
system
17
A18
Taken from Designing the User Interface (Shneiderman & Plaisant, 2010, pp.
88-89) there are five measurable human factor for interface usability:
1. Time to learn.
The time taken for a typical user to learn how to use the application, thus
reducing the amount of time to relearn the features.
2. Speed of performance.
The amount of time needed to carry out a benchmark task
The satisfaction for the application may be different for each user.
Satisfaction factors may include various aspects of the interface. The answer of
subjective satisfaction can be obtained via survey or interview.
Android possesses several features that makes it distinguishable from the rest
of mobile operating system. According to (Burnette, 2010, pp. 14-15), these are the
features that makes Android special:
A truly open, free development platform based on Linux and
open source: Handsetmakers can use and customize the platform without paying a
royalty. Developers like it because the platform is not locked into any one vendor
that may go under or be acquired.
A component-based architecture inspired by Internet mashups:
Parts of one application can be used in another in ways not originally envisioned
by the developer.
Tons of built-in services out of the box: Developers can use
whatever service they want such as location-based services using GPS, an SQL
Database to use local storage, or browser and map views that can be embedded
directly to your applications to help raise the bar on functionality while lowering
the budget.
Automatic management of the application life cycle: The end
user will no longer have to worry about what applications are active or close some
programs so that others can run. Android is optimized for low-power, low-
memory devices in a fundamental way that no previous platform has attempted.
High-quality graphics and sound: To support application that
relies heavily on graphics, Android supports them with smooth, antialiased 2D
19
A20
vector graphics and animation inspired by Flash, and the graphics are melded with
3D accelerated OpenGL graphics to enable new kinds of gmes and business
applications.
Portability across a wide range of current and future hardware:
Android applications are written in Java, so the code will be portable across other
architectures.
2.2.3Java
Taken from Introduction to Java Language Comprehensive Edition (Liang,
2012, p. 13), Java was developed by a team led by James Gosling at Sun
Microsystems. Sun Microsystems was purchased by Oracle in 2010. Originally
called Oak, Java was designed in 1991 for use in embedded chips in consumer
electronic appliances. In 1995, renamed Java, it was redesigned for developing Web
applications.
The Java Programming Language is a general-purpose, concurrent, strongly
typed, class-based object-oriented language. Javas syntax is similar to C and C++.
Because Java is an interpreted language, the typical C or C++ compile-link-load-test-
debug cycle is reduced. Java development environments actually let the entire
software-development life cycle take place within a Web browser (Singh &
Rajasthan, 2013).
2.2.4Google Maps API
Taken from Beginning Google Maps API 3 (Svennerberg, 2010, pp. 1-4),
Google Maps application programming interface(API) allows developers to utilize
the potentials of Google Maps to use in their applications to display customized data
in an efficient and usable manner. The public API enables mashup of information
from multiple sources to be incorporated into a single mapping solution.
Despite the dynamic complexity that can be observed from the API, Google
Maps actually works with only HTML, CSS, and JavaScript. Initially, as user
navigates throughout the map, the API sends Ajax calls to communicate new
coordinates and zoom levels. A new API, the Google Maps JavaScript v3, was then
developed by Google in response to more extensive JavaScript libraries and
requirements for a better performance on mobile and desktop platforms. Beside the
JavaScript API, Google also developed Google Maps Android v3 for development on
Android platform, with some powerful capabilities such as 3D rendering, vector tiles,
and gesture control.
21
A22
2.2.5Foursquare API
Foursquare API enables programmer to discover places in an area, connecting
with Foursquare users, get global streaming check-in data, and knowing when
another Foursquare users check in. To be able to use Foursquare API, programmer
needs to create an app on Foursquare, so that client ID and client secret can be
obtained in order to use the API (How Do You Want To Use the Foursquare API?).
2.2.6HTML
HTML is a markup language for describing web documents. HTML stands for
Hyper Text Markup Language and is consisted of markup tags. HTML documents
are described by HTML tag and each HTML tag describes different document
content (HTML(5) Tutorial).
The original intent of HTML is different from other language which dictates all
of the presentation details such as font size, font style, and color. HTML is more
designed to specify documents at a higher level, because HTML documents needs to
be displayed in variety of computer systems using different browsers. With the
appearance of style sheets that could be used with HTML in late 1990, HTML
advanced its capabilities by providing ways to include the specification of
presentation details (Sebesta, 2008, p. 34). The newest revision of HTML is HTML5,
which was finalized and published on 28 October 2014 by the World Wide Web
Consortium (HTML(5) Tutorial).
Basic syntax in HTML uses tags as a syntactic units. Tags are used to specify
categories of content. For each tag, browsers have their own way in displaying the
content. The syntax of tag is the tags name surrounded by angle brackets (< and >)
and tags must be written in lowercase letters. Most tags appears in pairs, which has
an opening tag and closing tag. The name of closing tag, when required, is the name
of its corresponding tag with a slash attached to the beginning. For example, if the
tag name is p, its closing tag is </p>. Whatever apperars between an opening and a
closing tag is the content of the tag. Not all tags can have content (Sebesta, 2008, pp.
37-38).
A23
2.2.7CSS
Cascading Style Sheets(CSS) is used to take control of the style of web pages,
by allowing programmers to set rules to the document so that programmers can
control on how the elements within the document appears. CSS works by allowing
programmers to associate rules with the elements that appear in a web page. These
rules govern how the content of the elements should be rendered (Duckett, 2010, pp.
233-244).
CSS can be placed either inside the HTML document, or in a separate file
known as an external style sheet. When placed inside the HTML document, it is
placed inside a <style> element, which sits inside the <head> element of a document,
or as a value of a style attribute on any element that carry the style attribute (Duckett,
2010, p. 250).
2.2.8Javascript
JavaScript is the programming language of the Web. It is a high-level,
dynamic, untyped interpreted programming language that is well-suited to object-
oriented and functional programming syles. The majority of modern websites use
JavaScript, and all modern web browsers include JavaScript interpreters. JavaScript,
alongside HTML and CSS is the essentials on the production of web content.
(Flanagan, 2001, p. 1).
2.2.9jQuery
jQuery is a fast, small, and feature-rich JavaScript library. It makes things like
HTML document traversal and manipulation, event handling, animation, and Ajax
much simpler with an easy-to-use API that works across a multitude of browsers
(What is jQuery).
2.2.10 AJAX
AJAX has several key features, which is update a web page without reloading
the page, request data from a server after the page has loaded, receive data from a
server after the page has loaded, and send data to a server in the background (AJAX
Introduction).
23
A24
2.2.11 PHP
PHP is a server scripting language, and a powerful tool for making dynamic
and interactive Web pages. PHP first developed in 1994, when a developer named
Rasmus Lerdorf created a set of CGI scripts to monitor page views for his online
resume. The current version of PHP is PHP 5.3.
PHP has unique features that differs from its competing alternatives like
ASP.NET or JSP. Unique features that is present in PHP are (Vaswani, 2008, pp. 5-6):
1. Performance
The PHP 5.0 engine was completely redesigned with an optimized memory
manager to improve performance, and is noticeably faster than previous versions.
2. Portability
PHP is available on UNIX, Microsoft Windows, Mac OS, and OS/2, and
PHP programs are portable between platforms.
3. Ease of Use
PHPs syntax is clear and consistent, and it comes with documentation for
the functions included with the core distribution. This significantly reduces the
learning curve for both novice and experienced programmers.
4. Open Source
PHP is an open source project, it can be used without payment of licensing
fees or investments in expensive hardware or software. The open source nature of
the code means that any developer can inspect the code tree, spot errors, and
suggest possible fixes.
5. Community Support
PHP is a community-supported language and gives access to the creativity and
imagination of hundreds of developers across the world.
2.2.12 MySQL
MySQL is the 2nd most popular Open Source SQL database management
system. It is developed, distributed, and supported by Oracle Corporation. SQL
stands for Structured Query Language, which is the most common standardized
language for accessing databases. There are several ways to use SQL for different
programming environment, such as: direct use, embed SQL statement into code in
another language, or by using language-specific API that hides the SQL syntax (DB-
Engines).
2.2.13 Bootstrap
Bootstrap is the most popular HTML, CSS, and JS framework for developing
responsive, mobile first projects on the web. Bootstrap is open source and can be
downloaded for free from the website, and it provides the means for making a front
end web development faster and easier by giving out the modifiable design template
and features. Bootstrap is available with only normal CSS, but if user wanted it,
bootstrap can also gives CSS processor, Less and Sass (Bootstrap).
According to sitepoint (sitepoint), Bootstrap is indeed the most popular
framework and the main strength of Bootstrap comes from the fact that so a lot of
people use it, thus in response, a lot of tutorials and resources are available. Popular
brand that created that utilize Bootstrap for their website includes Twitter, NBA,
Wallmart and Vogue.
25
A26
Korf, & Kraus, 2003, pp. 19-39), a solution is said to be optimal if it is a lowest-cost
path from the initial state to a goal state, otherwise it is suboptimal.
GBFS is intended to be use to find a good enough solutions in order to shorten
the calculating time and the path-finding decision made is entirely based on the
current heuristic value, thus while not closing the probability of GBFS finding the
best possible path, it also opens the probability of GBFS finding the worst possible
path, or even stuck on an endless loop.
Google Map is a web mapping service developed by Google Inc. As quoted
from (Hu & Dai, 2013, p. 102), Google Maps launched in 2015 has revolutionized
online mapping service application on the World Wide Web. With over a billion
monthly active users and dozens of function it is no doubt one of the most used and
most famous mapping service as well as one of the most state-of-the art.
The journey of Google Map start of as a C++ program designed by two Danish
brothers, whose company, Where 2 Technologies, later on propose the idea of a
purely web based mapping service to Google. In 2004 the said company is acquired
by Google Inc along with Keyhole, a geospatial data visualization company, and
ZipDash, a traffic analysis provider company, later on.
From its first announcement at 2005, Google Map has evolved tremendously
and has also give birth to many extraordinary application. Google Map incorporate
the imagery of the Moon to its map interface to create Google Moon and Marss
imagery to create Google Mars. Using real time traffic data, Google created Google
Traffic which gives real time traffic speed coloring on Google Map. Google also
created Google My Maps, which let users to create their own costume map. For users
that wanted to see the world, Google created Google Street View, which offers views
of various locations on land, Google Underwater Street View, which showcase the
sea, Google Aerial View, to see the cities on bird eye view, and Google Sky to goes
through the map of the visible universe, and many more.
Current, the short explanation of some of Google Map functions are; direction
searching, earth imagery view, real time traffic coloring, transit point, bicycle route,
private map making tool, real time accident information, place recommendation,
place name information, real imagery street view, travel direction, cost and time
A27
calculation, terrain view and level information, borders and even the earth and its
surrounding universe imagery.
With all of those features, it is no doubt that Google Map can be called one of
the most state-of-the-art web mapping service.
27
A28
CHAPTER 3
SYSTEM ANAYSIS AND DESIGN
3.1 Planning
Public Transportation; 45
Private Vehicle; 76
29
A30
0 5 10 15 20 25 30
3. If you choose private vehicle, why do you rarely use public transportation?
0 5 10 15 20 25 30 35 40 45 50
Based on the results above, respondents that use private vehicle on daily life
are reluctant on using public transportation because of the lack of information
regarding routes, price, duration, and schedule of public transportation. This
application will help user to tackle off these problems to encourage private vehicle
user to take on public transportation.
31
A32
Everyday; 121
The purpose of this question is to find out whether the respondent has internet
access with them. This application requires internet connection, which is not a
problem since 100% of the respondents use internet everyday.
This question proves that majority of respondents are accessing internet via
smartphone and PC/Laptop. This application is available both in mobile and web
platform.
33
A34
No; 11
Yes; 110
This question is asked to find out about users familiarity on using application
for navigation. Majority of the respondents(91.7%) are already familiar on using
navigation application.
0 10 20 30 40 50 60 70 80 90 100
A35
The purpose of this question is to find out what navigation application that user
mostly use, and if there is any other similar application that they use. Majority of the
respondents are familiar with Google Maps(83.6%) and Waze(61.8%). Some
respondents also answer with another application such as Daum map, Naver map,
Hyperdia, and Ovi map.
35
A36
0 20 40 60 80 100 120
The purpose of this question is to find out whether the proposed feature of this
application is useful for the prospective customer. The result suggests that all
proposed features are essential and will be developed in the application.
A37
On KIRIs main screen, there are two blank text box fields labeled as From
and To, which allow user to input their initial location and destination to reach into
the text box. Once the text box has been filled, another field will appear to allow user
to select the exact location.
The search result will show the route which will be taken and what
transportation to use. The application will also give step by step directions and which
transportation to take for every step.
37
A38
Route menu will give information about Transjakartas route. It will show two
tabs, busses and bus stops. Tab corridor shows a list of corridors of Transjakarta.
When one of the corridor is selected, the application will show the bus stop list of the
corridor and estimated time on busses arrival. Tab bus stop shows the list of bus stops
and if one of the bus stop is selected, the information of what corridor that goes
through the bus stop and estimated time for reaching each end of the following
corridor is shown.
39
A40
Navigation menu will show a map with two blank fields labeled by Current
Location and Where do you want to go? in which user fill with the desired location.
A41
The application then shows the routes to take, total price, time to reach destination,
and the summary of what transportation to take.
41
A42
Navigation using -
Commuter Line
Navigation using -
angkot
Alternative routes to - -
reach destination
Approximation of
duration to arrive at
destination
Calculation of total -
price
Navigation for - -
interesting places near
station / bus shelter
Live update on event - -
reported by users
A43
1. The main features for JalanYuk! application based on user requirement analysis
are:
Navigation using public transportation, with suggestions of route based on the
duration and distance, and the calculation of total cost
Scheduling for Commuter Line and Transjakarta Buses
Nearby places that surrounds transportation stops
2. What lacks from other navigation application is interaction from users. The
feature added beside the ones defined on user requirement analysis is this
application will show user the live update of event reported based on location
of public transportation stops that is shared from JalanYuk! users.
3. This application requires internet connection in order to work properly. Two
most used device to access the internet is PC / Laptop and smartphone. Current
market leader for mobile Operating System is Android, and then followed by
iOS. This application will be available on web, Android and iOS, so that more
users can access the application despite the differences on the devices.
3.2 Design
In this step, the design of application consisting of interface design for web and
mobile platform is created. The system design such as use case, use case narrative,
activity diagram, and entity relationship diagram is also created.
43
A44
Home Page
The home page displays users current location in the map. Three links are
provided to navigate around the website: Home, Route and Schedule, and Login to
Submit Report. A search button is provided on the left side of the screen. Above the
search button, there are two blank fields to type in initial location and destination
location. On the bottom side of the screen, there is live update which shows the
incident reported from users. There are three dropdown menu for filtering the
reports: transportation filter, route filter, and time filter.
A45
Search result on routes found will be shown on the right side of the screen. The
summary of suggested routes such as route with shortest duration and other
alternative routes, will be found along with duration approximation and total cost.
Each route available can be clicked to reveal the details of the route which contain
step by step navigation, what vehicle to take, estimated duration, and fare for each
step.
45
A46
When user clicked a location on the map which has icon, be it their current
location, the stops between, or their destination, the window for showing nearby
location is shown. The window contains list of places near the location. There are
two buttons, navigate and website. Navigate is used for showing user navigation to
the place, while website button only shown when the place selected has a website.
When clicked, website button will redirect user to places website.
A47
To search for route path for each public transportation, user can head to Route
and Schedule page that is available via navigation bar. User can choose their desired
transportation then the application will show the list of routes available for the public
transportation.
47
A48
User can log in to the website by choosing login from the menu. Submit report
and logout button is only available after user logged in with their account. User must
log in first before they can write a report. There are 4 fields that need to be filled,
which is vehicle type, route, report type, and report.
Home
After application starts, the screen will show user current location and also
several boxes to type in initial location and destination location. On the bottom of the
screen, live update is shown and updated at real time to show user incidents reported
in a location.
49
A50
From the home screen of JalanYuk!, there is a menu button on the upper left
side of the screen. When clicked, a dropdown menu will be shown under the menu
button.
A51
Search Result
When searching for route, the search result will be displayed on the bottom
side of the screen. The route suggestions will be shown along with duration and
distance estimation. When a route is clicked, the route summary will be displayed.
Route summary consisted of step by step navigation with cost for each step.
51
A52
When a user selected either their initial location or destination location on the
map, a window of nearby location will be shown to user. From the list of location
shown, user can choose a location and get direction to reach the place. If a place has
a website, the website button will redirect user to the website.
Route and schedule can be accessed via menu button on upper left side of the
screen. To display the route, user needs to select the transportation type from the
dropdown menu. After that, another box containing the list of route of public
transportation is displayed and if user selected one, the route details will be shown on
the map.
53
A54
User can log in to the application by choosing login from the menu on the
upper left side of the screen. Submit report and logout button is only available after
user logged in with their account. User must log in first before they can write a
report. There are 4 fields that need to be filled, which is vehicle type, route, report
type, and report.
1. Transportation type types of public transportation that wants to be reported
2. Line route of the public transportation
3. Type of Incident type of the incident that will be reported, there are 4 options,
late report, damaged road report, accident report, crowdedness report, and
cleanliness report
4. Message write the incident report on the text box.
A55
55
A56
3.2.2System Design
3.2.2.1 Use Case
Table 3.10 View Map and Problem Report Use Case Narrative
Use-Case
View Map and Problem Report
Name
Use-Case ID USI-01
This use case describes the event of a user using the website's main
Description
page then use the search route function or problem report filter
User must access the website's home page or open the application
Precondition
and the device is connected to the internet
Trigger User open the website's main page
Typical
Course of
Events User's Action System Response
Step 2 - System generate the
Step 1 - User input the initial
valid location which name is
location
most similar to user's input
Step 3 - User choose one valid
location
Step 5 - System generate the
Step 4 - User input the destination
valid location which name is
location
most similar to user's input
Step 6 - User choose one valid
location
Step 8 - System take both
Step 7 - User click search button source and destination
location
Step 9 - System generate the
route from initial to
destination location
Step 10 - System show the
route detail
Step 12 - System show the
Step 11 - User click one route route and it's information
detail
Step 14 - System will clear
Step 13 - User click repeat search
the field
57
A58
Step 1 and 4 - System cannot find the route if the user did not input
Alternate
both location, system generate error message and user can either
Courses
input the location or abandons the search
59
A60
Trigger User click the link from the list of nearby location
Typical
Course of
Events User's Action System Response
Step 1 - User click a link
from the list of nearby Step 2 - System open the location's
location website on a new page
Alternate Step 1 - Some places does not have a website, thus it is impossible
Courses to click them
Postcondition The clicked location's website is opened at a new page
Foursquare API service will always works, user has access to
Assumptions
internet and web browser
A61
Trigger User click the location space from the list of nearby location
Typical Course
User's Action System Response
of Events
Step 1 - User click the Step 2 - System generate a path
location space from the list of from the clicked location to the
nearby location clicked nearby location
Step 3 - System show the
generated path and it's
information detail
Alternate
-
Courses
System will display the route from source to destination and
Postcondition
also it's information detail
Google map API service and Foursquare API service will
Assumptions
always works, user has access to internet and web browser
61
A62
Precondition User must access the view route and schedule webpage
Trigger User open the webpage
Typical
Course of User's Action System Response
Events
Step 2 - User
choose the Step 1 - System generate the list of public
type of public transportation type
transportation
Step 3 - System generate the list of public
transportation route detail according to the type
Step 4 - User
choose one of Step 5 - System generate the map of the chosen
the route public transportation route and show it's detail
detail
Alternate Step 2 and 4 - User did not choose one, system won't be able to
Courses generate the route and show the detail
Postcondition System will display the route and show it's detail
Google map API service will always works, user has access to
Assumptions
internet and web browser
A63
63
A64
65
A66
67
A68
69
A70
A71
71
A72
73
A74
3.3 Coding
The coding takes place in this step. Each feature is implemented to the program
using selected programming language. Coding is done based on each feature. One
feature is coded after another iteratively.
Pair Programming
One of the key element of Extreme Programming is Pair programming. When a
developer coding the application, there is also another person sitting side by side to
give feedback and ensuring the developer that coded the program does not stray from
the user stories. Then the role can be reserved as needed.
3.3.1Refactoring
Another element needed in XP is refactoring. In each iteration, there will be
continuous improvement on the application whether it is visual design or algorithm
in the core system and it means the existing code will be improved. Rework and
modifying existing code is also called refactoring. Refactoring is needed to enable
developers to maintain and extend the code easily in the recent future. The more
developer get to know the part of the code, the more they will be able to predict
which part of the code will probably be refactored in the next iteration. Therefore, to
make it convenient in future, developers are responsible to code in a way that could
be maintained and extended in the very least effort.
In JalanYuk!, developers also have refactored the source code number of times.
The figure below is the code to add Get Current Location Feature in Jalan Yuk,The
green lines are new codes that are added for the feature. Developers added
geolocation function to get users location based on their IP address.
A75
75
A76
Figure below is a refactor code to improve the find route in JalanYuk! app.
77
A78
79
A80
81
A82
3.4 Testing
Testing is conducted after the coding process has done. The testing process
consisted of three processes:
Unit Testing
Unit testing is conducted after each feature is coded. Unit testing tests each
feature before implemented into the actual system.
Integration Testing
Integration testing is conducted after unit testing has been done. After being
tested in unit test, the code is implemented into the actual application and integration
testing is conducted.
User Acceptance Testing
User plays a big part in Agile development, once the application has been
through the previous process, the output of the process is given to the customer to get
their response by trying the application and filling the questionnaires regarding the
performance of the application. Further explanation on User Acceptance Test is
explained in Chapter 4.
83
A84
A85
CHAPTER 4
IMPLEMENTATION AND EVALUATION
85
A86
1. To install JalanYuk! in android, first you need to locate and open the .apk file.
2. To install the application, tap install, to cancel the installation, tap cancel.
A87
3. Wait for the installation process to finish and tap done to finish the installation, or
open to open JalanYuk! application.
87
A88
For iOS installation, it requires PC/Mac with iTunes installed. Apple is very
strict on regulations. To be able to mass distribute JalanYuk!, the application need to
be submitted to the Apple App Store. For the time being, JalanYuk! on iOS can only
be distributed via connecting the desired iOS device to the developers Mac
Computer.
3. Choose Device
4. Click play button to install it in the device
5. JalanYuk! icon will be displayed in the home screen
A89
Figure 4.64 Home Screen of Device Running iOS with JalanYuk! Installed
4.1.3Application Manual
4.1.3.1 Web Application Manual
89
A90
3. User can get their current location by clicking the icon on the right side of the map
4. User can also get their current location by clicking the icon between From
Mana and Mau Kemana field. The icon on the left side represents user current
location, and the icon on the right side is for switching the contents in From
Mana and Mau Kemanafield. If user clicked get current location, JalanYuk!
will automatically get user location and set it as the initial location on the From
Mana field. User can also fill From Mana field by themself.
5. Now, type the destination location in the Mau Kemana field. Example: Grand
Indonesia, Ancol, Monas, Central Park Mall, etc.
6. There will be an autocomplete list to confirm your destination place. Choose and
click your desired destination place from the list.
A91
10. Click one of the routes, the routes path will be displayed on the map and
summary of the route will be displayed. The summary of the routes tells the
approximate duration of the route, number of transit needed, distance, and cost.
The green pin indicates the initial location, while the blue pin indicates the
destination location. The blue dashed lines indicates a walking path and the
brown line is a representation of Commuter Line path.
91
A92
11. To view nearby places, click one of the icon (Commuter Line station,
Transjakarta bus shelter, and location pin). Nearby places is in the radius of
100m from the point clicked. To get navigation to the nearby place selected,
click Petunjuk. If a website for the place is available, a button called
Website is displayed. When user clicks Website button, user will be
redirected to the website of the place. To view other routes, click the leftward
arrow beside Ringkasan Perjalanan and repeat the steps. To look for other
routes, click Mulai Pencarian Baru on the bottom of the Summary or refresh
the page.
13. Click Login untuk Lapor, and then login via Google and Gmail account. Click
allow and the website will be redirected back to JalanYuk!.
15. You can help fellow user by reporting incidents that you encounter by first,
select the type of transportation (Commuter Line, Transjakarta Bus, or Angkot).
Then, select the line (for example Tangerang - Duri, Kalideres - Harmoni), and
then select the location. Next, choose the type of incident (hygiene, accident,
late/delay, etc) and last, type in your message to notify other users. Click
Lapor to post your report.
93
A94
2. To search for routes, user can type in their initial location in From Mana field
and their destination location in Mau Kemana field. There are two buttons
between From Mana and Mau Kemana field. The left button is to get users
current location and set it to From Mana field. The button on the right side is to
switch the contents in From Mana and Mau Kemana field.
95
A96
3. When typing in the field, there will be an autocomplete list to confirm the
location. Choose and tap your desired location from the list.
4. Tap the rounded red button Cari. JalanYuk! will process the request and find the
best possible routes and three other alternative routes. The route suggestions will
be displayed below the map.
A97
5. Click one of the routes, the route path will be displayed on the map and summary
of the route will be displayed. The summary of the routes tells the approximate
duration of the route, number of transit needed, distance, and cost. The green pin
is the initial location and blue pin is the destination location. Blue dashed lines is a
walking path and the brown line is a representation of the Commuter Line path.
97
A98
6. To view nearby places, click one of the icon (Commuter Line station, Transjakarta
bus shelter, and location pin). Nearby places is in the radius of 100m from the
point clicked. To get navigation to the nearby place selected, click Petunjuk. If a
website for the place is available, a button called Website is displayed. When
user clicks Website button, user will be redirected to the website of the place. To
view other routes, click the leftward arrow beside Ringkasan Perjalanan and
repeat the steps. To look for other routes, click Mulai Pencarian Baru on the
bottom of the Summary or refresh the page.
A99
7. To Report an Event in JalanYuk!, tap Login untuk Lapor from JalanYuk!s menu
that is located in upper left side of the screen.
8. Login via Google and Gmail account. Tap allow and the website will be redirected
back to JalanYuk!.
99
A100
10. You can help fellow user by reporting problems that you know or see by first,
select the type of transportation(Commuter Line, Transjakarta Bus, or Angkot).
Then, select the line (for example Tangerang - Duri, Kalideres - Harmoni), and
then select the particular station that has the problem. Next, choose the type of
incident(hygiene, accident, late/delay, etc) and last, type in your message to
notify other users. Tap Lapor to post your report.
A101
4.2 Evaluation
4.2.1User Evaluation
4.2.1.1 User Acceptance Test
101
A102
41 out of 50 respondents say that the total cost given by this application is
accurate. The results indicates that most of the respondents believe that the total cost
by JalanYuk! is accurate and is satisfied with it.
103
A104
32 out of 50 respondents say that the approximate travel time given by this
application is accurate. The results indicates that more than half of the respondents
believe that the approximate travel time given by JalanYuk! is accurate and is
satisfied with it.
41 out of 50 respondents say that the alternative route given by this application
is accurate. The results indicates that most of the respondents believe that the
alternative route by JalanYuk! is accurate and is satisfied with it.
A105
105
A106
40 out of 50 respondents say that the live update report given by this
application is accurate. The results indicates that most of the respondents believe that
the live update report by JalanYuk! is accurate and is satisfied with it.
7. Is the information about interesting place around the station/stops given by this
application accurate?
107
A108
36 out of 50 respondents say that they open JalanYuk! from website and the
rest open them from mobile application. The result might be due to the fact that
mobile application user might also open the website instead of having the application
installed.
29 out of 36 respondents say that they did not need a long time to understand
how to use this application. The results indicates that most of the respondents feels
that JalanYuk! is easy to use.
3. According to you, does this application need a long time to show the route
calculation?
109
A110
30 out of 36 respondents say that JalanYuk! does not need a long time to show
route calculation. The result indicates that most of the respondents are satisfied with
the route calculation speed.
A111
4. According to you, does the method to use this application is easy to remember?
111
A112
1 out of 36 respondents say that they are very unsatisfied with JalanYuk! 4 out
of 36 respondents says that they are unsatisfied with JalanYuk! probably due to the
fact that JalanYuk! has limited information on the database thus unable to give out a
very accurate calculations. 24 out of 36 respondents says that they are satisfied with
JalanYuk! and 7 out of 36 says theyre very satisfied. Overall most of the respondents
are satisfied with JalanYuk!.
A113
13 out of 14 respondents say that they did not need a long time to understand
how to use this application. The results indicates that most of the respondents feels
that JalanYuk! is easy to use.
113
A114
3. According to you, does this application need a long time to show the route
calculation?
12 out of 14 respondents say that JalanYuk! does not need a long time to show
route calculation. The result indicates that most of the respondents are satisfied with
the route calculation speed.
4. According to you, does the method to use this application is easy to remember?
115
A116
0 out of 14 respondents say that they are very unsatisfied with JalanYuk! 1 out
of 14 respondents says that they are unsatisfied with JalanYuk! probably due to the
fact that JalanYuk! has limited information on the database thus unable to give out a
very accurate calculations. 11 out of 14 respondents says that they are satisfied with
JalanYuk! and 2 out of 14 says theyre very satisfied. Overall most of the respondents
are satisfied with JalanYuk!.
1. Time to learn
84 percent of all respondents stated that they can quickly learn how to use
JalanYuk! according to question number 1. That means most of the respondents
does not require a long time to learn how to navigate and use JalanYuk!.
2. Speed of performance
66 percent of all respondents stated that JalanYuk! does not need a long time
to show route calculation according to question number 2. That means more than
half of the respondents feel that the time between search function triggered and
the result displayed is not significant enough to cause discomfort. The rest of the
117
A118
respondents answer might come from the fact that JalanYuk! is an online
application that highly depends on the internet connection speed.
3. Rate of errors by users
64 percent of all respondents stated that the error handling in JalanYuk! is
good enough. That means more than half of respondents feel that there is no
annoying or disruptive error on JalanYuk!. The rest of the respondents answer
might come from several reasons, the first being that respondent cannot find any
error thus they cannot measure the error handling, the second one comes from the
fact that JalanYuk! does not give error message for every single action, and the
third comes from the fact that JalanYuk! only have a limited amount of stops info
on the database which cause JalanYuk! to sometimes fail in displaying the correct
route which the respondent might confused with error/bug.
4. Retention over time
96 percent of all respondents stated that JalanYuk! usage method is easy to
remember. That means almost all respondents feel that JalanYuk! is not
complicated and have enough visual clues/help text, thus making it easy to
remember how to use it.
5. Subjective satisfaction
70 percent of all respondents stated that they are satisfied with JalanYuk!
while 18 percent said they are very satisfied, 10 percent said they are unsatisfied,
and 2 percent said they are very unsatisfied. That means most of the respondents
feels that JalanYuk! is satisfying enough, while the rest of the respondents answer
might comes from the the fact that JalanYuk! only have a limited amount of stops
info on the database which cause JalanYuk! to sometimes fail in displaying the
correct route which the respondent might be unhappy with.
A119
119
A120
A121
Figure 4.107 JalanYuk! Redo Search Button at the End of User Search
Action
5. Prevent errors
121
A122
JalanYuk! is build with the ability to handle errors and in case of error types
which involves the user, JalanYuk! will provide the user with suitable feedback.
Figure 4.112 Side by Side Comparison Which Shows Same Color Scheme and Size
123
A124
5. Prevent errors
JalanYuk! is build with the ability to handle errors and in case of error types
which involves the user, JalanYuk! will provide the user with suitable feedback.
125
A126
Figure 4.118 JalanYuk! Only Showing the Route After User Has Chosen the Public
Transportation Type
Figure 4.119 Shows JalanYuk! Not Closing the Map When Displaying
the Route Detail
127
A128
CHAPTER 5
CONCLUSION AND SUGGESTIONS
5.1 Conclusion
Based on the two survey conducted, the first being used to analyze the user
requirement for public transportation navigation service and the second one to review
JalanYuk! finished application, the second survey has shown that JalanYuk!
positively able to fulfill user requirement from the first survey.
The feature of JalanYuk! which represents the solution to the requirement such
as:
1. Generating navigation route with alternatives and giving information about the
route such as distance, travel duration, and total cost. According to the user
evaluation survey, on table 4.1, 90 percent of respondent says that the navigation
information is accurate, on table 4.3, 64 percent of respondent says the
approximate travel time given is accurate, and on table 4.2, 82 percent of
respondent says that the total cost given is accurate.
2. Giving a list of nearby location based on each stop and providing the navigation
to the nearby location. According to the user evaluation survey, on table 4.7, 88
percent of respondent says that the information about interesting place around
the station/stops given by this application is accurate.
3. Letting user read and post public transportation review and event report.
According to the user evaluation survey, on table 4.6, 80 percent of respondent
says that the live update report given by this application is accurate.
4. Making the application available on web, Android, and iOS. According to the
user evaluation survey, on table 4.8, 72 percent of respondent open JalanYuk!
from website and 28 percent open from mobile application.
A129
5.2 Suggestion
JalanYuk! has been made to the best of abilities but due to time constriction, it
is still far from perfect. In response to that, on the next development, the respondent
wishes that:
1. The navigation route, distance, travel time and cost to be made more accurate.
According to the user evaluation survey, on table 4.1, 10 percent of respondent
says that the navigation information is not accurate, on table 4.3, 36 percent of
respondent says the approximate travel time given is not accurate, and on table
4.2, 18 percent of respondent says that the total cost given is not accurate.
2. The public transportation problem report to be made more accurate. According
to the user evaluation survey, on table 4.6, 20 percent of respondent says that the
live update report given is not accurate.
Here are the future works for further refinement and research:
1. Further improvement of the path finding algorithm to produce a more accurate
navigation and information
2. Increasing the number of available public transportation
3. Releasing the mobile application in Google Play Store and Apple App Store.
129
A130
BIBLIOGRAPHY
60% Smartphone di Indonesia Pakai OS Android. (2014, June 10). Retrieved January
08, 2016, from SIDOMI: http://sidomi.com/296610/60-smartphone-di-
indonesia-pakai-os-android/
Ahok Minta Warga Jakarta Beralih ke Kendaraan Umum. (2013, June 11). Retrieved
January 8, 2016, from Sindonews:
http://metro.sindonews.com/read/748446/31/ahok-minta-warga-jakarta-beralih-
ke-kendaraan-umum-1370931551
Asia-Pacific Boasts More Than 1 Billion Smartphone Users. (2015, September 16).
Retrieved January 10, 2016, from eMarketer:
http://www.emarketer.com/Article/Asia-Pacific-Boasts-More-Than-1-Billion-
Smartphone-Users/1012984
Castrol Start Stop Index. (2015). Retrieved January 8, 2015, from Castrol Web site:
http://www.castrol.com/en_au/australia/products/cars/engine-oils/castrol-
magnatec-brand/stop-start-index.html
Felner, A., Korf, R. E., & Kraus, S. (2003). KBFS: K-best-first search. Annals of
Mathematics and Artificial Intelligence Journal , 19-39.
A131
How Do You Want To Use the Foursquare API? (n.d.). Retrieved January 23, 2016,
from Foursquare for developers: https://developer.foursquare.com/start
Hu, S., & Dai, T. (2013). Online Map Application Development Using Google Map
API, SQL Database, and ASP.NET. International Journal of Information and
Communication Technology Research , 102.
Nistanto, R. K. (2014, August 6). Menang Jumlah, Android Kalah Eksis ketimbang
iOS. Retrieved January 12, 2016, from
http://tekno.kompas.com/read/2014/08/06/12480067/Menang.Jumlah.Android.
Kalah.Eksis.Ketimbang.iOS
Richter, S., & Westphal, M. (2010). The LAMA Planner: Guiding Cost-Based
Anytime Planning with Landmarks. Journal of Artificial Intelligence
Research , 127-177.
Rouse, M. (2011, December). iOS definition. Retrieved January 24, 2016, from
TechTarget: http://searchmobilecomputing.techtarget.com/definition/iOS
Satzinger, J. W., Jackson, R. B., & Burd, S. D. (2012). Systems Analysis and Design
in a Changing World, 6th Edition. Course Technology.
131
A132
Sebesta, R. W. (2008). Programming the World Wide Web. Pearson Addison Wesley.
Shneiderman, B., & Plaisant, C. (2005). Designing the User Interface: Strategies for
Effective Human-Computer Interaction. Addison Wesley.
Singh, T., & Rajasthan, J. (2013). New Software Development Methodology for
Student of Java Programming Language. International Journal of Computer
and Communication Engineering, Vol. 2, No. 2 , 194.
Smartphone OS Market Share, 2015 Q2. (2015). Retrieved January 8, 2016, from
IDC.
What is jQuery. (n.d.). Retrieved January 24, 2016, from jQuery: https://jquery.com/
Whitten, J., & Bentley, L. (2007). System Analysis and Design Methods. McGraw-
Hill/Irwin.
Whitten, J., & Bentley, L. (2007). System Analysis and Design Methods. McGraw-
Hill/Irwin.
A1
APPENDIX
2
A3
3. According to you, does this application need a long time to show the route
calculation?
o Yes
o No
4. According to you, do the method to use this application is easy to remember?
o Yes
o No
5. How satisfied are you with this application?
o Yes
o No
4
A5
<html lang="en">
<head>
<title><?=$seo['title-home'];?></title>
<meta name="keywords" content="<?=$seo['keyword-home'];?>">
<meta name="description" content="<?=$seo['desc-home'];?>">
<?php include("packages/head.php");?>
<!-- Link Swiper's CSS-->
<link rel="stylesheet" href="<?=$global['absolute-url'];?
>css/swiper.min.css">
<!--Swiper JS-->
<script src="<?=$global['absolute-url'];?>js/swiper.min.js"></script>
</head>
<body>
<!--START HEADER -->
<?php include("part-header.php");?>
<!-- END HEADER-->
6
A7
function get_route(){
var type = $("#header-type").val();
var url = "https://www.eannovate.com/dev/map/api/api_route.php?
action=route&type="+type;
$.ajax({url: url, success:function(result){
$("#header-route").html(replace_route(result.data));
function validRoute(){
var type = $("#header-type").val();
var route = $("#header-route").val();
var content = $("#header-content").val();
var type_content = $("#header-type-content").val();
if(type != ""){
$("#header-valid-route").text("");
$("#header-valid-route").hide;
} else {
$("#header-valid-route").text("pilih jenis angkutan terlebih dahulu!");
$("#header-valid-route").show();
$("#header-valid-route").fadeOut(5000);
return false;
}
if(route != ""){
$("#header-valid-route").text("");
$("#header-valid-route").hide();
} else {
$("#header-valid-route").text("pilih jalur yang anda cari!");
$("#header-valid-route").show();
$("#header-valid-route").fadeOut(5000);
return false;
}
}
if(type_content != ""){
$("#header-valid-route").text("");
$("#header-valid-route").hide("");
} else {
$("#header-valid-route").text("pilih tipe laporan anda terlebih dahulu!");
$("#header-valid-route").show();
$("#header-valid-route").fadeOut(5000);
return false;
}
if(content != ""){
$("#header-valid-route").text("");
$("#header-valid-route").hide("");
} else {
A8
$("#header-valid-route").text("isi pesan anda terlebih dahulu!");
$("#header-valid-route").show("");
$("#header-valid-route").fadeOut(5000);
return false;
}
return true;
}
function get_station(){
var route_station = $("#header-route").val();
var url = "https://www.eannovate.com/dev/map/api/api_station.php?
action=stationn&line_id="+route_station; $.ajax({url:
url,success:function(result){
$("#header-station").html(replace_station(result.data));
function replace_station(datas){
var resultHTML='';
if(datas != null){
var obj = datas;
for(var i=0;i < obj.length ; i++){
if(obj[i].station_id != '' && obj[i].station_name != ''){
resultHTML += "<option
value='"+obj[i].station_id+"'>"+obj[i].station_name+"</option>";
}
}
}
return resultHTML;
}
$("#header-btn-route").click(function(){
if(validRoute()){
var typeInput = $("#header-type").val();
if(typeInput=="mikrolet"){
var stationInput = 0;
} else {
var stationInput = $("#header-station").val();
}
var routeInput = $("#header-route").val();
var contentInput = $("#header-content").val();
var typeContentInput = $("#header-type-content").val();
var data = {
user_id : "<?+$_SESSION['userData']['id'];?>",
auth_code : "<?=$_SESSION['userData']['auth_code'];?>",
type : typeInput,
line_id : routeInput,
station_id : stationInput,
content : contentInput,
type_content : typeContentInput
}
8
A9
$("#modalReport").modal('hide');
$("#header-type").val("");
$("#header-station").val("");
$("#header-route").val("");
$("#header-content").val("");
$("#header-type-content").val("");
$("#row-station").hide("");
location.reload();
php code for displaying map
function initMap() {
10
A11
$("#desLocation-lng").val("");
$("#desLocation-name").val("");
}
A12
//start draw marker and line here
function printMap(num,to_transit){
var url = "https://www.eannovate.com/dev/map/api/api_route2.php?action=get_route";
var data = {
from_lat : origin_lat,
from_lang : origin_lng,
to_lat : destination_lat,
to_lang : destination_lng
}
$.ajax({url: url,data : data, success:function(result){
var obj = result.data[num];
var obj2 = result.summary[num];
$("#route-choice").hide();
$('#summary-
map').html(add_summary(obj,obj2,origin_name,destination_name,to_transit));
document.getElementById('detail-map').style.width='30%';
document.getElementById('detail-map').style.height='450px';
$("#detail-map").show();
if(obj[i].color != ""){
var transColor = obj[i].color;
} else {
var transColor = "green";
}
linePath.push(point);
lineColor.push(transColor);
lineType.push(transType);
lineIcon.push(transIcon);
lineName.push(transName);
12
A13
if(this.content != null){
var marker_name = this.content;
get_places(marker_lat,marker_long,marker_name);
infoWindow.setContent("<strong>"+marker_name+"</strong>");
} else {
var latlngGeo = {lat: parseFloat(marker_lat), lng:
parseFloat(marker_long)};
geocoder.geocode({'location': latlngGeo}, function(results, status) {
if (status === google.maps.GeocoderStatus.OK) {
var placeID = results[1].place_id;
serviceDetail.getDetails({ placeId: placeID }, function(place, status)
{
if (status === google.maps.places.PlacesServiceStatus.OK) {
var marker_name = place.name;
get_places(marker_lat,marker_long,marker_name);
infoWindow.setContent("<strong>"+marker_name+"</strong>");
}
});
}
A14
});
}
infoWindow.open(this.getMap(), this);
map.setCenter(point);
map.fitBounds(bounds);
}});//end on success api result
}
//end create marker and line on map
14
A15
if(b.length != 0){
var transit = b.length;
} else {
var transit = 1;
}
//console.log(transit);
resultHTML += "<div class='choice-content'>";
resultHTML += "<a href='javascript:;' onclick='printMap("+s+","+transit+")'
class='choice-link'>";
resultHTML += "<img src='<?=$global['absolute-url'];?>img/icon-rute.png'
alt='rute' class='icon-csearch'>";
resultHTML += "<img src='<?=$global['absolute-url'];?>img/next.png' alt='rute'
class='icon-clink'>";
resultHTML += "<div class='choice-title'>"+ruteText+"</div>";
resultHTML += "<div class='choice-time'>";
resultHTML += "<span class='ctime-min'><img src='<?=$global['absolute-url'];?
>img/plus-minus.png' alt='min'>"+obj2[s].total_elt+" min, </span>";
resultHTML += "<span class='ctime-transit'>"+transit+" kali transit, </span>";
resultHTML += "<span class='ctime-transit'>"+obj2[s].total_toEnd+" km</span>";
resultHTML += "</div>";
resultHTML += "</a>";
resultHTML += "</div>";
}
}
return resultHTML;
}
// end create route choice
if(type == "krl"){
//create type of krl line
var travel_mode = google.maps.DirectionsTravelMode.TRANSIT;
var opacity = 1;
var iconLine = "";
} else if(type == "transjakarta"){
//create type of transjakarta line
var travel_mode = google.maps.DirectionsTravelMode.TRANSIT;
var opacity = 1;
var iconLine = "";
} else if(type == "mikrolet"){
//create type of mikrolet line
var travel_mode = google.maps.DirectionsTravelMode.DRIVING;
var opacity = 1;
var iconLine = "";
} else if(type == "walk"){
//create type of walk line
var travel_mode = google.maps.DirectionsTravelMode.WALKING;
var opacity = 0;
var iconLine = [{icon: lineSymbol,offset: '0',repeat: '20px'}];
} else {
var travel_mode = google.maps.DirectionsTravelMode.WALKING;
var color = "#0008FF";
var opacity = 0;
var iconLine = [{icon: lineSymbol,offset: '0',repeat: '20px'}];
A16
}
//Intialize the Direction Service
var service = new google.maps.DirectionsService();
service.route({
origin: ori,
destination: des,
travelMode: travel_mode
}, function (result, status) {
//console.log(status);
if (status == google.maps.DirectionsStatus.OK) {
//Intialize the Path Array
var path = [];
for (var i = 0; i < result.routes[0].overview_path.length; i++) {
path.push(result.routes[0].overview_path[i]);
}
//Set the Path Stroke Color
var polyOptions = {
strokeColor: color,
strokeOpacity: opacity,
strokeWeight: 5,
path: path,
scale: 3,
icons: iconLine,
map: map
}
poly = new google.maps.Polyline(polyOptions);
poly_array.push(poly);
poly.setMap(map);
} else {
if (status == google.maps.GeocoderStatus.OVER_QUERY_LIMIT) {
var reason = "Reason Over Query "+status;
} else {
var reason = "Reason error "+status;
}
}
});
}
//end creating lines here
16
A17
$("#origin-lng").val(lng);
$('#modalPlaces').modal('show');
}});
}
function getDetail(param){
var gplace_name = $('#place-'+param).data('name');
var gdestination_lat = $('#place-'+param).data('lat');
var gdestination_lng = $('#place-'+param).data('lng');
var gorigin_lat = $('#origin-lat').val();
var gorigin_lng = $('#origin-lng').val();
$("#guide-list").html("");
$("#guide-name").text(gplace_name);
var serviceDirection= new google.maps.DirectionsService;
var displayDirection = new google.maps.DirectionsRenderer;
displayDirection.setPanel(document.getElementById('guide-list'));
serviceDirection.route({
origin: origin_point,
destination: destination_point,
travelMode: google.maps.TravelMode.TRANSIT,
provideRouteAlternatives: false
}, function(response, status) {
if (status === google.maps.DirectionsStatus.OK) {
displayDirection.setDirections(response);
} else {
window.alert('Directions request failed due to ' + status);
}
});
}