Pages

Thursday, May 15, 2014

Idea 1: Transjakarta Route Planner

Sorry for spoiling the mood of readers that are expecting a lesson on programming (if there are any readers at all here), but this post is not going to be that. This will be just an idea that I just came up with, and I think I should take note of it somewhere that the future me will see in the future. So here goes.

As you may have known, I am an Indonesian, and I came from Jakarta. I usually go back to Jakarta every long holiday (those that last for a month or more) and do not spend my time travelling much. This summer, however, I decided to take up a challenge by interning in a university (Universitas Siswa Bangsa Internasional or USBI, if you are an Indonesian and want to know the name). It is really far from my house and my mother does not really allow me to find a place to stay somewhere nearby ("nge-kos", for the Indonesians out there). Of course, I can drive there, but the problem is, I've got no spare car to use as both my parents are using them everyday. (If you think I am rich or something just because my family owned 2 cars, it is actually quite common for the middle class in Indonesia to have 2 cars, but of course not luxury cars. For the record, my cars are a faithful Toyota "Kijang" (since ~2001!) and a Daihatsu Xenia (since ~2006). As you can see, both are not exactly expensive cars, and they are already quite old.) Thus, I need to find out a way to get there by public transport. Since it is impossible to find out the service route for most public transport in Jakarta (believe me, it is impossible), I tried to just use the best one, Transjakarta.

Transjakarta is basically like a normal bus, but with a better and more organized (though still extremely messy) service route. It is supposedly a solution the Jakarta government came up with to mitigate traffic congestion (though all it does is actually to worsen it). Nevertheless, I find that the website is not really informative (see it for yourself). The first thing I would need, of course, a feature that can tell me how to get to one stop to another. It is not available anywhere in the website, as far as I look. (If there actually is such a feature, please tell me!). Second, I want to check what stop is close to a certain place. Such an information is also not available! Even Google Maps let me down! (On their defense, Jakarta's public transport is indeed so chaotic that it is impossible to compile an accurate data to represent all the possible way to use public transport to get around Jakarta).

This idea of mine would be to solve the first problem. I wonder why hasn't it been implemented by anyone at all, since the idea behind it is quite simple. It is basically a graph's shortest path problem. Of course, I am oversimplifying things by ignoring distance between stops, travelling time, traffic, etc etc but hey, it's a start, right? 

Initially, the program can assume that the distance to adjacent station is the same, so to calculate the shortest path, it will simply be the least number of hops (so we can use BFS). If successful, I will try to extend it to include a weight in the graph, which will be the travelling time/distance (I don't know which one would be better, any idea, readers?) Then if I've got the time (and knowledge), it can be merged with traffic information so that the accuracy of the travelling time will be better.

Just an idea. I think I can make the most basic version soon, but not sure about the most advanced one haha. Anyway, if you happen to be an Indonesian, and a programmer at that, and want to implement this too, feel free to do so! No obligation to credit me or something; I am sure I'm not the only one annoyed by this. =D

Edit: Found an app in the Play Store that has that functionality: finding a way to go to one stop to another for TransJakarta. Kommuta Komutta is the name. You can try finding it in the Play Store too. They decided to go for the pre-processed method, so any query by the user will be responded instantaneously, which I think is really good. I just thought their UI can be improved; such as by giving a map with pins on stops instead of a auto-complete text field, or perhaps even better, a combination of both.

Edit2: Komutta not Kommuta! Sorry!

Edit3: Here's the dev's webpage if you are interested to learn more about them. Apparently they are a mobile-based start up company in Indonesia. May want to work with them regarding the first project, but I think I am still too noob for them.