TransTrip: A Shortest Path Finding Application for Jakarta Public Transportation using Dijkstra Algorithm

: Government of Jakarta, the capital of Indonesia, highlighted congestion as one of the issues that must be addressed immediately. The high population of Jakarta increases the number of vehicles operating on the streets and causes congestion that leads to a loss of 67.5 trillion rupiah. The development of adequate public transport facilities is expected to be one of the solution, such as TransJakarta which has flat and low price. The bus fleets of TransJakarta are also equipped with air-conditioning. However, the level of public transport users is still quite low because the use of public transport is considered ineffective as it usually cost longer time to reach a destination. Based on the factors, the authors are encouraged to develop an Android-based application, “TransTrip”, to provide clear information about the shortest path using Dijkstra algorithm and the type of public transportation that can be used to reach a destination, form a source location, with TransJakarta as the main transport and other public transport such as Angkot and Metromini to complete the routes. Notification to stop and transit features are included in TransTrip to answer the current needs of the community.


Introduction
Jakarta, as the capital city of Indonesia, is the most populated province in Indonesia with more than 5,000 inhabitants per km 2 . The rapid increase in population number is mostly due to migration and high birth rate. Badan Pusat Statistik (BPS) Jakarta project the population of Jakarta's to be 9.97 million inhabitans in 2013 and increased to 10.08 million inhabitants in 2014. The high number of population has caused the increasing mobility which leads to traffic in most area in Jakarta, especially commercial areas. It has also been reported that the traffic has caused Jakarta a loss of 65.7 trillions rupiah (Putri, 2017). According to BPS Jakarta (2016), the number of vehicles in Jakarta is increasing around 9.93% annually since 2010 until 2014. These vehicles is dominated by motorcycles which is around 10.54% and followed by car which is around 8.75%. In the other hand, public transportation growth is quite low, which is only around 1.74% (Singgih, 2016).
The total number of public transportation users in Jakarta in 2015 is still very low which is only around 20% of the population (Putra, 2015). Jakarta's government realizes that the growth number of private transportation must be surpressed and encourage the use of public transportation by providing alternatives other than public buses, such as Train (KRL) and TransJakarta. which connects Jabodetabek area (Jakarta, Bogor, Depok, Tangerang, Bekasi). KRL is a popular option for residents as it has it's own path and so it is free from congestion, but unfortunately, the number of train stations in Jakarta are still very limited. TransJakarta which connects Jabodetabek area (Jakarta, Bogor, Depok, Tangerang, Bekasi) is available with flat rate and equipped with facilities such as air conditioner and a special lane in Jakarta's main roads. Yet, according to CNN Indonesia (Putra, 2015), there are only around 350,000 users of TransJakarta each day. The low use of public transportation may be caused by several things such as facilities and services that are still poor, uncertain busway shelter's condition such as whether there is a long queue for transiting and the confusion in finding the shortest path to reach the destination or which type of public transportation should be used efficiently, as we realize that each bus or any other public transportation has different routes that are mostly unclear.
Several applications are developed to provide public transportation information for the residents such as Tuntun, Trafi and TransJakarta Busway and JalanYuk! in the hope of increasing number of users. Tuntun is a public transportation routes' application on Android-based smartphones that aims to assist users in finding public transportation of buses. TransJakarta Busway is an Andorid application developed by TransJakarta to provide more detail information about TransJakarta's routes, but unfortunately TransJakarta only provide information of route from source shelter to destination shelter, which means that user must have well knowledge about areas in Jakarta to be able to determine the source and destination shelter. JalanYuk! is an application that can be accessed by mobile and webiste which integrates KRL and TransJakarta (Elizabeth et al., 2017). It is a simple application with details information including cost, distance and time. Unfortunately, it is still difficult for communities to reach the KRL's station or TransJakarta's shelter from their location as the shelters and locations are located on main road and Jakarta has so many small streets and the area is too wide. Meanwhile, Trafi is an Android-based smartphones which connects and compares city mobility options and always shows them in real-time. Trafi provides information to track the bus and to estimate bus time arrival for TransJakarta, but it didn't provide other information that seems to be a concern to some user, such as waiting time for queue.
This study aims to develop "TransTrip", an Android based application which provides features that can determine the shortest path in using TransJakarta, transit information and other public transportation (Angkot and Metromini) that can be used from source location to the first busway shelter and from the last busway shelter to the destination. In addition, TransTrip application also provides information about the shelter's condition, shopping center near destination and notifications when the user has reached the destination or when the user should do a transit. Android is chosen as the operating system as it holds 85% of Indonesia's mobile market in 2017 (Tempo.co, 2017).

Method
We conduct surveys to 100 respondents in Jakarta area to get more information about their concerns in using public transportation and how we may help them. According to the result, they often missed the correct shelter as they could not see or hear the information clearly when the bus is too crowded. They also often spend too much time in queueing for the bus. Existing applications such as Tuntun, Trafi and TransJakarta Busway, which have been discussed in the previous section, have their own advantages and disadvantage and we provide the comparison analysis in Table 1.
Acording to the result of survey, we concluded that Android application is still recommeded as 90% of the respondents need an application that has more features than it is already provided. Hence, Transtrip will have the following features: (1) finding public transportation from source location to the first TransJakarta's shelter using Angkot or Metromini, (2) finding the shortest TransJakarta's routes, (3) finding public transportation (Angkot and Metromini) from the last TransJakarta's shelter to the destination location, (4) notification of when to do a transit, (5) notification of reaching the destination, (6) information about shelter's condition by adding feature of comments, (7) information about shopping malls near the destination location. In addition, source location may be determined both manually or automatically by detecting location based on GPS while the routing of shortest path will be done using Dijkstra algorithm. Dijsktra algorithm is chosen as it is widely used in shortest path problem for transportation and although it is one of the oldest algorithm, it is still widely used in recent research, such as done by Ojekudo and Akpan (2017) where they use this algorithm for choosing effective route for distribution of goods and services. Dijkstra is used by Mardana et al. (2017) to determine the shortest tower Base Transceiver System (BTS) distance in the purpose of making the use of fiber optic cable to be more efficient, while Wang et al. (2017) use Dijkstra for creating a system to manage parking lot in China. Dijsktra is also used in finding shortest path for a single USV (Unmaned Surface Vehicle) in Marine Environment (Singh et al., 2017). Sanan et al. (2013) define shortest path problem as an important problem in graph theory and often used for applications such as in communication, transportation and electronic problems. One of the algorithm that can be used is Dijkstra, a greedy-based algorithm which solve singlesource shortest path problems. Dijkstra is often used in map navigation system, such as done by Ruan et al. (2014). Singal Dcsa and Chhillar (2014) combined Dijkstra with Global Positioning System (GPS) to determine distance from a node to another node and use it for finding the shortest path.

Dijkstra Algorithm
Dijkstra algorithm is a graph-based searching algorithm which is used to solve single-source shortest path problem and commonly used for routing. The algorithm is also based on a greedy method and can be applied only on positive weights graphs. Dijkstra uses weighted graph, distance function or array and priority queue. It works by finding the lowest cost between the source node and every other node presents in the network (Gupta et al., 2016).
The steps below explain how Dijkstra is implemented in the research: (1) Form a graph: The graph is created according to the recorded shelters in the database. Number of shelters will represent number of nodes, where each shelter is represented by a node. The nodes will be connected to each other based on the routes defined by TransJakarta and the distance is computed based on the longitude and latitute using Google Maps API. The representation can be seen in the following Fig. 1. (2) Define source node: The source node is defined by searching the shortest node to the source location that has been defined. The source not is also known as initial node. (3) Define destination node: The destination node is defined according to the nearest shelter (node) to destination location defined by user. The following Fig. 2 below represents node A as source node and node D as destination node. (4) Set current node as source node: As the initial node is located, it will be considered as the current node with weight of 0 while the other nodes will have initial default value of infinity (~).
(5) Finding the shortest path: (i) For current node, look for all unvisited nodes that are associated with current node and calculate the distance from initial node. For example, current node (A) is associated with node (B) with distance 20. Hence, total distance will become 0+20 = 20, which is described in Fig. 3. (ii) If all nodes that are associated with current node have been computed, the lowest cost distance will be chosen and the node will be marked as visited and that node will not be checked and the value that has been saved are final and minimal. In Fig. 4, node B will be chosen as it is the only one associated with node A, hence having 20 as cost is the lowest. (iii) Set unvisited node that has the smallest distance from initial node as next current node and repeat step (i) until current node reach the final node. Fig. 5 represents the graph with node B, C and E as nodes that have been visited. (6) Display routing result: Routing result will be the shortest path, the path with the lowest cost, that can be seen in Fig. 6.

Results and Discussion
TransTrip is developed based on Android platform with minimum version of 4.1 (JellyBean) and uses Google Maps API for the map and routing display of the travel plan. Transtrip requires user to enable GPS system in the phone to be used. Figure 7 above from left to right represents Home of TransTrip and the feature provided for user to define the source and destination location. The source can be defined manually such as shown in the above Fig. 7 (right) or automatically, by tapping on the dot button. Automatic detection of source location will get the current location of user using GPS. The route result will be displayed as the following Fig. 8 where the routing is processed based on the explained method in the previous section. In the routing result screen as shown in Fig. 8, there are some icons available for details such as red marker that shows source location, green marker that shows destination location. The blue bus icons are representing the shelters to be passed by users to reach the destination. The path is displayed by the red lines and the nearby shopping malls, in the radius of 1 km are displayed, which can be seen in Fig. 9 (left).
Each marker can be clicked and more information in details can be seen, such as information about other public transportations (Angkot and Metromini) that can be used from the last TransJakarta's shelter to reach the destination, as can be seen in Fig. 10. User can also see information about transit which is displayed in Fig. 11. User will receive notification of when they are near the destination shelter or when they are near the transit shelter. The notification will be a notification of text information with vibration and sound, when they are in the radius of 500 m to the corresponding shelter. TransTrip will check the user's real-time location using GPS every 5 seconds. User may define whether they want to enable this feature in Notification Settings which is displayed in Fig. 9 (right).
User can see the situation of a shelter by viewing other user's comments about the shelter in the comments section, displayed in Fig. 12. All registered users may give information or comments about the shelter conditions when they are in the radius of 5 m.

Conclusion
According to the survey conducted by interviewing 50 respondents in Jakarta area that have tried to use TransTrip, we concluded that users are satisfied with TransTrip application as: (1) they can obtain clear information about how to get to the nearest shelter of TransJakarta from their location by using other public transportation, (2) they can obtain clear information of TransJakarta routes' along with the names of shelters they have to passed, (3) they can obtain extra information of when to stop or do a transit as TransTrip gives notification using their phones, with sound and vibration, when it is near the corresponding shelter, so they do not have to be afraid of passing the correct transit shelter without noticing, (4) they can obtain information about the other public transportation to reach the destination from the last TransJakarta's shelter, (5) they can obtain information about the shelters's real-time condition. 100% of the respondents agree that these features are very helpful for mobility in Jakarta. The respondents suggest an improvement for TransTrip to be able to show arrival time and estimation time to reach destination for further development.