Mengenal Komutta lebih dalam

Sepertinya setelah update masal di awal tahun 2011, orang-orang di MReunionLabs memutuskan break bersama tanpa janjian terlebih dulu🙂 Untuk mengisi kekosongan berita, juga untuk memperkenalkan MReunionLabs dan apa yang kami lakukan lebih jauh. Saya kali ini ingin membahas mengenai internal salah satu aplikasi kami, Komutta. Dan bagaimana proses pemikiran yang terjadi di belakangnya.

Bagi yang sudah menggunakan komutta, tentu familiar dengan fitur pencarian untuk menu transjakarta. Fitur ini memberikan rute terdekat yang akan di lewati dari shelter asal, ke shelter tujuan. Hasil pencarian ini lebih umum dikenal dengan istilah shortest path. Algoritma yang paling sederhana dan mudah diimplementasikan dalam mencari shortest path adalah Djikstra’s Shortest Path Algorithm. Komutta menggunakan algoritma ini dalam pencarian jalur rute yang kita bicarakan di atas.

Pada dasarnya, algoritma ini menghitung suatu nilai (weight) yang dibutuhkan untuk pergi dari satu node ke node lain. Nilai tersebut bisa berupa jarak, waktu, biaya, dan lain sebagainya. Rute dengan total nilai terendahlah yang kita namakan shortest path. Untuk lebih memahami algoritma djikstra lebih detil, bisa dilihat link mengenai algoritma tersebut di bagian referensi .

Kalau dilihat, algoritma tersebut sangat sederhana. Dan sejauh ini, ada beberapa hal yang belum bisa diatasi algoritma tersebut dengan baik. Yang pertama mengenai arah rute (pathway). Di jalur transjakarta, ada titik-titik dimana jalur yang dilalui untuk pergi, berbeda dengan jalur kembali. Kita ambil contoh sederhana, misalnya untuk berangkat dari Bidara Cina (koridor 7) ke Kebon Pala (koridor 5) kita perlu melewati Bidara Cina – Kampung Melayu – Kebon Pala. Tetapi jika kita ingin berangkat dari Kebon Pala ke Bidara Cina, maka shelter-shelter yang akan di lewati adalah Kebon Pala – Pasar Jatinegara – Kampung Melayu – Bidara Cina.

Permasalahan kedua adalah rute-rute dadakan yang kami sebut rute “Hack”. Ini adalah rute-rute yang timbul dan bisa berubah-ubah tanpa pemberitahuan yang luas. Hanya orang yang mempergunakan transjakarta sehari-hari dan setiap hari mengamati website/milis-nya saja yang tidak akan terjebak oleh perubahan rute ini.

Kalau dilihat dari segi algoritma, maka rute “Hack” ini semakin mempersulit pencarian rute tercepat. Karena kondisi-kondisi yang khusus yang diberikan, bisa rute yang ada untuk hari tertentu, jam tertentu bahkan kalau kondisi macet. Luar biasa.

Yang ketiga mungkin lebih cocok disebut requiremen dari pada permasalahan. Di komutta versi 1.0 kami ingin agar pencarian rute bisa melewati batas transportasi. Sehingga tidak sekedar transjakarta, tapi para pengguna juga bisa mendapat hasil pencarian yang memasukkan KRL atau bahkan MRT kedalam hasil pencarian rute.

Faktor-faktor inilah yang menjadi tantangan kami untuk release release komutta berikutnya. Harapan kami, kami bisa menemukan algoritma yang lebih baik dan efisien untuk mengatasi permasalahan kompleks ini. Sangat menyenangkan melihat hal-hal yang dipelajari di bangku kuliah bisa langsung diterapkan di dunia nyata🙂


Referensi :
http://renaud.waldura.com/doc/java/dijkstra/

This entry was posted in Komutta. Bookmark the permalink.

2 Responses to Mengenal Komutta lebih dalam

  1. Pingback: Pasukan Developer Android Indonesia : Ayo Merah Putihkan Android Market « ryandzhunter

  2. Pingback: Mengintip peluang bisnis IT saat mudik | Teman Hatta Rajasa

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s