BAB 2 LANDASAN TEORI
Bab ini berisikan definisi serta teori-teori dari algoritma yang digunakan dalam pembuatan program aplikasi. Definisi serta teori-teori pendukung yang dipakai dalam pembuatan program aplikasi ini juga diuraikan dalam bab ini.
2.1. Algoritma A* A* merupakan bentuk yang paling dikenal dari Best First Search. A* mengevaluasi node dengan menggabungkan g(n), yaitu cost untuk mencapai node, dan h(n), yaitu cost yang diperlukan dari node untuk mencapai tujuan, sehingga: f(n) = g(n) + h(n) g(n) merupakan cost suatu path dari node awal ke node n, dan h(n) adalah perkiraan cost terendah dari node n ke tujuan. f(n) adalah perkiraan solusi dengan cost termurah melalui n. Dengan demikian, untuk menemukan solusi termurah, hal yang pertama yang dicoba adalah node dengan nilai g(n)+h(n) terendah. Strategi ini jelas lebih baik dengan disediakannya fungsi heuristik h(n) yang dapat memenuhi kondisi tertentu sehingga A* menjadi optimal. (Russel dan Norvig, 2010, p93) Perlu disadari bahwa algoritma Dijkstra adalah subset dari algoritma A*. Dalam A*, akan dihitung perkiraan total cost dari node dengan menambahkan nilai heuristik pada cost sejauh ini. A* kemudian memilih sebuah node untuk diproses berdasarkan nilai tersebut.
8
9
Jika heuristik selalu menghasilkan 0, maka perkiraan total cost selalu akan sama dengan cost sejauh ini. Saat A* memilih node dengan perkiraan total cost terkecil, node dengan cost sejauh ini terkecil dipilih. Hal ini sangat mirip dengan Dijkstra. A* dengan heuristik 0 adalah versi pathfinding dari Dijkstra.
2.1.1. Sejarah Algoritma A* Algoritma A* yang menggabungkan cost path saat ini dengan heuristic search, dikembangkan oleh Hart, Nilsson, dan Raphael, dengan beberapa koreksi lanjutan (Hart et al., 1972). Dechter dan Pearl mendemonstrasikan efisiensi secara optimal dari A*. Tulisan mengenai A* yang asli memperkenalkan kondisi konsistensi pada fungsi heuristik. Kondisi monoton diperkenalkan oleh Pohl sebagai pengganti yang lebih sederhana, namun Pearl menunjukkan bahwa keduanya ekuivalen (Pearl, 1984, p83-85). Pohl memelopori pembelajaran tentang hubungan antara galat (error) dalam fungsi heuristik dengan kompleksitas waktu dari A*. Hasil dasar yang diperoleh untuk tree search dengan unit steps costs dan node tujuan tunggal (Pohl, 1977; Gasching, 1979; Huyn et al., 1980; Pearl, 1984) serta dengan node tujuan jamak (Dinh et al., 2007). "Effective branching factor" diusulkan oleh Nilsson sebagai pengukuran empiris dari efisiensi; ekuivalen dengan mengasumsikan time cost dari O((b)d). Karena tree search diaplikasikan pada graph, Korf et al. menentang bahwa time cost lebih baik dimodelkan sebagai O(bd-k), dimana k bergantung pada akurasi heuristik; sehingga analisis ini mengasilkan beberapa kontroversi. Untuk graph search, Helmert dan Röger mencatat beberapa permasalahan yang terkenal yang mengandung banyak node secara eksponen dalam path solution optimal, menyiratkan kompleksitas waktu eksponen untuk A* bahkan dengan galat mutlak konstan pada h.
10
2.1.2. Langkah–Langkah Algoritma A* Algoritma ini bekerja dengan cara yang mirip dengan Dijkstra. Daripada mempertimbangkan open node dengan nilai cost sejauh ini terendah, node yang paling mungkin untuk menuju path terpendek secara keseluruhan dipilih, yang dikendalikan oleh heuristik. Jika heuristik akurat, maka algoritma tersebut akan efisien. Jika heuristik tidak tepat, maka algoritma akan bekerja lebih buruk dari Dijkstra. Berikut merupakan langkah-langkah algoritma A* (Millington dan Funge, 2009, p206): a. Memroses Current Node Selama iterasi, A* mempertimbangkan setiap koneksi yang keluar dari current node. Untuk setiap koneksi, A* menemukan end node dan menyimpan total cost dari path sejauh ini dan koneksi yang sampai ke sana, sama seperti sebelumnya. Sebagai tambahan, A* menyimpan satu nilai lagi: perkiraan dari cost total untuk sebuah path dari start node menuju current node dan menuju tujuan (selanjutnya disebut perkiraan total cost). Perkiraan ini merupakan jumlah dari dua nilai: cost sejauh ini dan seberapa jauh dari node tersebut hingga tujuan. Perkiraan ini dihasilkan dari potongan kode yang terpisah dan bukan bagian dari algoritma tersebut. Perkiraan-perkiraan ini disebut "nilai heuristik" dari suatu node, dan nilainya tidak dapat negatif (karena cost dalam graph tidak negatif, dan tidak masuk akal jika perkiraan negatif). Penggenerasian dari nilai heuristik adalah perhatian utama dalam mengimplementasikan algoritma A*. b. Node List Seperti sebelumnya, algoritma ini menyimpan daftar dari open node yang telah dikunjungi namun belum diproses dan closed node yang telah diproses. Node
11
dipindahkan ke open list saat mereka ditemukan pada ujung koneksi. Node dipindahkan ke closed list setelah diproses dalam iterasi masing-masing. Tidak seperti sebelumnya, node dari open list dengan perkiraan total cost terkecil dipilih pada setiap iterasi, yang hampir selalu berbeda dari node dengan cost terkecil sejauh ini. Perubahan ini mengijinkan algoritma tersebut memeriksa node yang lebih menjanjikan terlebih dahulu. Jika node memiliki perkiraan total cost yang kecil, maka node tersebut pasti memiliki cost sejauh ini yang relatif kecil dan perkiraan jarak ke tujuan yang relatif kecil pula. Jika perkiraannya akurat, maka nodes yang lebih dekat ke tujuan akan dipertimbangkan terlebih dahulu, mempersempit pencarian ke area yang paling menguntungkan. c. Menghitung Jarak Sejauh Ini untuk Open dan Closed Nodes Seperti sebelumnya, setelah sampai pada open atau closed node selama iterasi, dan nilai yang terekam harus direvisi. Nilai cost sejauh ini terhitung wajar, dan jika nilai baru lebih rendah dari nilai untuk node yang sudah ada, maka nilainya perlu di-update. Dilakukan perbandingan ini secara ketat berdasarkan nilai cost sejauh ini (hanya nilai yang dapat diandalkan, karena tidak mengandung nilai perkiraan apa pun), bukan perkiraan total cost. Tidak seperti Dijkstra, algoritma A* dapat menemukan rute yang lebih baik menuju node yang sudah ada pada closed list. Jika nilai sebelumnya sangat optimistis, maka node mungkin telah diproses untuk berpikir bahwa itu adalah pilihan terbaik, yang pada kenyataannya, bukan. Hal ini mengakibatkan knock-on problem. Jika node yang meragukan telah diproses dan dimasukkan dalam closed list, maka berarti semua koneksinya telah
12
dipertimbangkan. Mungkin saja seluruh himpunan node memiliki cost sejauh ini berdasarkan node sejauh ini dari node yang diragukan. Meng-update nilai dari node yang meragukan tidaklah cukup. Seluruh koneksinya juga harus diperiksa kembali untuk mendistribusikan nilai baru tersebut. Dalam kasus perevisian node dalam open list, hal ini tidak diperlukan, karena diketahui bahwa koneksi dari sebuah node dalam open list belum diproses. Namun, ada cara sederhana untuk memaksa algoritma untuk menghitung kembali dan menyebarkan nilai baru tersebut. Node dari closed list dapat dipindahkan kembali ke open list, yang kemudian akan menunggu sampai tertutup dan koneksinya telah dipertimbangkan kembali. Node yang bergantung pada nilainya kemudian akan diproses sekali lagi. Jadi, closed nodes yang nilainya telah direvisi dikeluarkan dari closed list dan ditempatkan ke open list. Open nodes yang memiliki nilai terevisi tetap pada open list, seperti sebelumnya. d. Mengakhiri Algoritma Dalam banyak implementasi, A* berakhir saat node tujuan adalah node terkecil pada open list. Namun node yang memiliki nilai perkiraan total cost terkecil (dan oleh karena itu akan diproses pada iterasi berikutnya dan dimasukkan dalam closed list) mungkin saja nilainya harus direvisi nanti. Tidak ada lagi jaminan bahwa hanya karena node tersebut paling kecil di open list, maka shortest path akan didapat di sana. Maka, mengakhiri A* saat node tujuan merupakan terkecil di open list tidak akan menjamin bahwa rute terpendek telah ditemukan. Oleh karena itu, wajar untuk bertanya apakah A* dapat dijalankan sedikit lebih lama untuk menghasilkan hasil yang terjamin optimal. Hal ini dapat dilakukan ini memerintahkan algoritma tersebut untuk berakhir hanya jika node di open list dengan
13
cost sejauh ini (bukan perkiraan total cost) terkecil memiliki nilai cost sejauh ini lebih besar dari cost path yang ditemui menuju tujuan. Dengan cara itu, dan hanya dengan cara itu dapat terjamin bahwa tidak ada path masa depan akan ditemukan yang membentuk shortcut. Ini merupakan kondisi pengakhiran efektif yang dapat dilihat pada Dijkstra, dan dapat ditunjukkan bahwa menerapkan kondisi ini akan menghasilkan jumlah fill yang sama selayaknya menggunakan algoritma pathfinding Dijkstra. Node mungkin saja dicari dengan urutan yang berbeda, dan mungkin saja ada sedikit perbedaan dalam himpunan node di open list, namun tingkat fill rata-rata sama. Dengan kata lain, Dijkstra mengambil seluruh kelebihan performa dari A* dan membuatnya tidak bernilai. Implementasi A* seluruhnya bergantung pada kenyataan bahwa A*
dapat
menghasilkan hasil yang tidak optimal secara teoritis. Untungnya, hal ini dapat dikendalikan dengan fungsi heuristik. Tergantung pada pemilihan fungsi heuristik, hasil optimal akan terjamin, atau hasil sub-optimal yang memberikan eksekusi yang lebih cepat dapat dengan sengaja diijinkan. Karena A* sering berhubungan dengan hasil sub-optimal, implementasi A* dalam jumlah besar malah berakhir saat node tujuan dikunjungi pertama tanpa menunggunya untuk menjadi terkecil di open list. Kelebihan performa A* tidak sebesar melakukan hal yang sama pada Dijkstra, namun banyak pengembang merasa setiap bit berharga, terutama saat algoritma tidak dibutuhkan untuk menjadi optimal. e. Mengambil Path Path terakhir didapat dengan cara yang benar-benar sama seperti sebelumnya: dengan memulai dari tujuan dan mengakumulasi koneksi saat bergerak mundur ke start
14
node. Koneksi-koneksi tersebut kemudian dibalikkan kembali untuk membentuk path yang benar.
2.1.3. Memilih Fungsi Heuristik Semakin akurat heuristik yang digunakan, semakin sedikit fill yang akan dialami oleh A*, dan semakin cepat dijalankan. Jika heuristik yang sempurna digunakan (yang selalu mengembalikan jarak path minimum antara 2 node yang sangat tepat), A* akan langsung mengarah pada jawaban yang tepat: algoritma akan menjadi O(p), di mana p adalah jumlah langkah dalam path (Millington dan Funge, 2009, p215). Sayangnya, untuk menemukan jarak yang tepat antara dua nodes, biasanya rute terpendek di antara kedua node tersebut harus ditemukan, yang mungkin berarti menyelesaikan permasalahan pathfinding. Untuk heuristik yang tidak sempurna, A* berlaku sedikit berbeda tergantung pada apakah heuristik tersebut terlalu rendah atau terlalu tinggi, berikut adalah penjelasannya: a. Heuristik yang Terlalu Rendah Jika heuristik terlalu rendah, maka A* memerkirakan terlalu rendah panjang path aktual, A* membutuhkan waktu lebih lama untuk dijalankan. Perkiraan total cost akan condong ke arah cost sejauh ini (karena nilai heuristik terlalu kecil dari kenyataan). Jadi A* lebih memilih untuk memeriksa node yang lebih dekat ke start node, daripada yang lebih dekat ke tujuan. Ini akan meningkatkan waktu yang diperlukan untuk menemukan rute menuju tujuan. Jika heuristik terlalu rendah, maka hasil yang dihasilkan A* akan menjadi path terbaik yang memungkinkan, dan akan menjadi path yang benar-benar sama dengan
15
yang dihasilkan oleh Dijkstra. Hal ini menghindarkan masalah mengenai path suboptimal. Jika heuristik terlalu tinggi, jaminan ini akan hilang. Dalam aplikasi-aplikasi dimana akurasi lebih penting daripada performa, sangat penting untuk memastikan bahwa heuristik yang digunakan rendah. Saat menghadapi permasalahan mengenai path planning di permasalahan komersial dan akademis, akurasi seringkali lebih penting, maka heuristik yang terlalu rendah dibatasi. b. Heuristik yang Terlalu Tinggi Jika heuristik terlalu tinggi, maka diperkirakan panjang path aktual terlalu panjang, A* mungkin tidak menghasilkan path terbaik. A* akan cenderung menghasilkan path dengan nodes yang lebih sedikit, bahkan jika koneksi di antara nodes terlalu tinggi. Nilai perkiraan total cost akan membias kepada heuristik. Algoritma A* akan lebih tidak memerhatikan secara proporsional cost sejauh ini dan akan cenderung lebih menyukai nodes yang memiliki sisa jarak yang lebih kecil. Hal ini akan menggeser fokus pencarian ke tujuan lebih cepat, namun dengan risiko kehilangan rute terbaik. Ini berarti bahwa panjang total dari path mungkin lebih besar dari panjang total dari path terbaik. Untungnya, tidak berarti bahwa akan langsung didapat path yang buruk. Dapat ditunjukan bahwa jika heuristik memandang terlalu tinggi oleh sebagian besar x (yakni x adalah pandangan terlalu tinggi terbesar untuk setiap node dalam graph), dan final path tidak akan lebih dari x lagi. Heuristik yang memandang terlalu tinggi terkadang disebut "heuristik yang tidak dapat diterima." Ini bukan berarti heuristik tersebut tidak dapat digunakan; ini merujuk pada fakta bahwa algoritma A* tidak lagi menghasilkan path terpendek.
16
Memandang terlalu tinggi dapat membuat A* semakin cepat jika hampir sempurna, karena dapat mencapai tujuan dengan lebih cepat. Jika heuristik sedikit memandang terlalu tinggi, A* akan cenderung menghasilkan paths yang seringkali mirip dengan path terbaik, jadi kualitas dari hasil bukanlah hal besar. Namun batas untuk kesalahan adalah kecil. Seiring heuristik lebih memandang terlalu tinggi, sehingga dengan cepat membuat A* berjalan dengan lebih buruk. Kecuali heuristik secara konsisten dekat dengan sempurna, dapat lebih efisien untuk memandang terlalu rendah, dan didapat kelebihan untuk mencapai jawaban yang tepat.
2.2. Peta Peta adalah suatu alat peraga untuk menyampaikan suatu ide berupa suatu gambaran mengenai tinggi rendahnya suatu daerah (topologi), penyebaran penduduk, jaringan jalan, dan hal lainnya yang berhubungan dengan kedudukan dalam ruang. Peta digambarkan dalam skala tertentu dengan tulisan atau simbol sebagai keterangan yang dapat dilihat dari atas. Peta haruslah mewakili sebagian atau seluruh permukaan bumi sehingga fenomena yang ditampilkan harus benar-benar akurat sesuai dengan data di lapangan. Ilmu pengetahuan yang mempelajari peta adalah kartografi. Peta pada umumnya digunakan untuk mengetahui berbagai kenampakan pada suatu wilayah yang dipetakan, yakni: a. Memperlihatkan posisi suatu tempat di permukaan bumi. b. Mengukur luas dan jarak suatu daerah di permukaan bumi berdasarkan skala dan ukuran peta. c. Memperlihatkan bentuk suatu daerah yang sesungguhnya dengan skala tertentu. d. Menghimpun data suatu daerah yang disajikan dalam bentuk lukisan grafis.
17
2.3. Jalan dan Rute Pengertian jalan menurut Kamus Besar Bahasa Indonesia merupakan tempat untuk lalu lintas orang, kendaraan, dan lain sebagainya. Sedangkan menurut UU RI No. 13 tahun 1983 mengenai jalan, jalan adalah prasarana perhubungan darat yang diperuntukan bagi lalu lintas kendaraan dan orang atau prasarana perhubungan darat dalam bentuk apapun meliputi segala bentuk bagian jalan termasuk bagian pelengkap dan perlengkapan yang diperuntukan bagi lalu lintas. Bagian pelengkap yang dimaksud adalah bangunan yang tidak dapat dipisahkan dari jalan, antara lain jembatan overpass, underpass, tempat parkir, gorong-gorong, tembok penahan, dan saluran air. Sedangkan perlengkapan jalan adalah rambu-rambu lalu lintas, rambu-rambu jalan, tanda-tanda jalan, pagar pengaman lalu lintas, pagar daerah milik jalan, dan patok-patok daerah milik jalan. Pengertian rute menurut Kamus Besar Bahasa Indonesia adalah jalan atau arah yang harus ditempuh atau dilalui, atau jalur angkutan yg menghubungkan dua tempat.
2.4. Google Maps Google Maps adalah sebuah jasa peta online globe virtual gratis yang disediakan oleh Google. Google Maps dapat diakses di http://maps.google.com. Google Maps juga menawarkan perencana rute dan pencari letak bisnis di Amerika Serikat, Kanada, Jepang,
Hong
Kong,
Cina,
Inggris,
Irlandia,
[http://id.wikipedia.org/wiki/Google_Maps].
dan
beberapa
bagian
Eropa
18
2.5. Angkutan Kota dan Trayek Pengertian angkutan kota adalah sebuah model transportasi perkotaan yang merujuk kepada kendaraan umum untuk memindahkan penumpang dengan trayek yang sudah ditentukan. Pengertian trayek adalah lintasan kendaraan umum untuk pelayanan jasa angkutan orang dengan mobil bus yang mempunyai asal dan tujuan tetap, lintasan tetap, dan jadwal tetap maupun tidak terjadwal. Trayek dapat juga diartikan sebagai asal dan tujuan perjalanan angkutan umum yang melalui rute tertentu. Angkutan kota dibagi menjadi dua jenis berdasarkan rute yang dilaluinya, yaitu: a. Angkutan Luar Trayek Angkutan luar trayek adalah angkutan kota yang tidak memiliki rute yang ditentukan. Angkutan luar trayek dapat melalui semua lintasan yang diperlukan untuk mencapai tujuan yang ditentukan oleh penumpang. Contoh angkutan luar trayek adalah taksi dan bajaj. b. Angkutan Dalam Trayek Angkutan dalam trayek adalah angkutan kota yang telah ditentukan rutenya. Angkutan dalam trayek harus melalui lintasan yang telah ditentukan, dan jika tidak, dapat diberikan sanksi penilangan, pembekuan, sampai pencabutan izin operasi. Angkutan dalam trayek dibagi menjadi beberapa jenis berdasarkan ukuran armada yang beroperasi, yaitu: 1) Bus Besar, seperti Pahala Kencana dan Mayasari Bakti. 2) Bus Sedang, seperti Metromini dan Kopaja 3) Bus Kecil, seperti Mikrolet, KWK, dan APK 4) Bus Transjakarta
19
2.6. SQLite Menurut Owens (2006, p1), SQLite adalah sebuah open source relational database. Dirilis pada tahun 2000, SQLite didesain untuk menyediakan cara mudah bagi aplikasi untuk mengatur data tanpa overhead yang sering timbul dari dedicated relational database management systems. SQLite memiliki reputasi dalam hal portabilitas, mudah digunakan, efisien, dan reliable. SQLite memiliki arsitektur modular yang menggunakan pendekatan unik untuk relational database management. SQLite terdiri dari delapan grup modul yang terpisah dalam tiga subsistem utama. Modul ini membagi proses query menjadi beberapa diskrit yang bekerja seperti sebuah perakitan. Stack teratas meng-compile query, bagian tengah mengeksekusi, dan bagian bawah menangani penyimpanan dan interface dengan sistem operasi (Owens, 2006, p5).
2.7. Java Java bermula dari proyek penelitian perusahaan Sun Microsystems dengan nama sandi Green pada tahun 1991. Terdapat prediksi bahwa mikroprosesor akan digunakan luas pada peralatan-peralatan elektronik. Karena adanya bermacam tipe mikroprosesor, maka dibutuhkan sebuah bahasa pemograman yang dapat berjalan di semua mikroprosessor. Terciptalah sebuah bahasa pemograman baru oleh James Gosling, yaitu salah satu orang yang berperan besar dalam proyek tersebut, yang diberi nama Oak. Namun, karena sudah adan bahasa pemograman dengan nama Oak, maka namanya pun diubah menjadi Java. Sun Microsystem mengumumkan kehadiran bahasa Java secara resmi
20
pada tahun 1995. Bahasa ini mulai disambut hangat masyarakat luas seiring dengan meledaknya era internet. Java merupakan sebuah bahasa pemrograman berorientasi objek yang dapat berjalan di platform yang berbeda, baik di Windows, Linux, serta sistem operasi lainnya. Sun Microsystem menyediakan paket instalasi sesuai dengan kebutuhan dalam membangun suatu aplikasi. Berikut sedikit penjelasan mengenai paket aplikasi yang tersedia: a. J2ME (Java Micro Edition) Paket instalasi ini digunakan untuk mengembangkan software yang berjalan pada perangkat yang memiliki memori dan sumber daya yang kecil, seperti pada telepon selular, PDA, dan smartcard. b. J2SE (Java 2 Standard Edition) Paket instalasi ini digunakan untuk mengembangkan aplikasi desktop. c. J2EE (Java 2 Enterprise Edition) Paket instalasi ini digunakan untuk mengembangkan aplikasi pada lingkungan internet maupun aplikasi skala enterprise.
2.8. Android Konsep dan platform Android merupakan gagasan dari Android Inc., sebuah perusahaan kecil dari Palo Alto, California, yang kemudian diakuisisi oleh Google di tahun 2005. Tujuan tertulis dari Android adalah menciptakan sebuah sistem operasi yang kecil, stabil, fleksibel, dan mudah di-upgrade yang sangat menarik untuk produsen perangkat dan operator telepon.
21
Android adalah sistem operasi yang ditargetkan untuk perangkat mobile seperti telepon genggam dan perangkat lainnya seperti netbooks dan komputer tablet. Android, sebagai suatu sistem, adalah sistem operasi yang berbasis Java yang dijalankan pada kernel Linux 2.6. Sistem ini sangat ringan dan berfitur lengkap (DiMarzio, 2008, p6) . Aplikasi Android dikembangkan dengan menggunakan Java dan dapat dengan mudah diterapkan pada platform baru (DiMarzio, 2008, p7). Fitur-fitur lain dari Android termasuk accelerated 3-D graphic engine (berdasarkan kemampuan hardware), database support oleh SQLite, dan web browser yang terintegrasi. Android merupakan component-based platform. Aplikasi dibuat dari komponen yang reuseable, extendable, dan replacable yang datang dengan well-defined roles. Satu hal lain yang menarik mengenai fitur Android adalah, bahwa dikarenakan oleh arsitekturnya, aplikasi pihak ketiga dijalankan dengan prioritas yang sama dengan yang telah disertakan pada inti sistem. Inilah perbedaan besar dari sebagian besar sistem, yang memberikan prioritas lebih pada sistem aplikasi yang tertanam daripada aplikasi pihak ketiga. Juga, setiap aplikasi dijalankan oleh thread-nya masing-masing menggunakan mesin virtual yang sangat ringan.
2.9. Gambaran Umum Dinas Perhubungan Gambaran umum Dinas Perhubungan menjelaskan tentang Dinas Perhubungan. Gambaran tersebut meliputi sejarah singkat, latar belakang, tugas pokok dan fungsi, visi dan misi, tujuan dan sasaran, serta susunan organisasi Dinas Perhubungan.
22
2.9.1. Sejarah Singkat Dinas Perhubungan Dinas Perhubungan DKI Jakarta atau yang dikenal dulunya sebagai Direktorat Jendral (Dirjen) Perhubungan DKI Jakarta adalah instansi pemerintah daerah Jakarta yang bergerak di bidang perhubungan, baik itu perhubungan darat, laut, maupun udara. Di samping itu juga terdapat instansi pemerintah yang dinamakan Dinas Lalu Lintas Angkutan Jalan (DLLAJ) yang bertugas mengatur kegiatan lalu lintas. Namun, berdasarkan Surat Keputusan (SK) Menteri tahun 2003, Dirjen Perhubungan dan DLLAJ digabung menjadi Dinas Perhubungan yang berlokasi di Jalan Taman Jatibaru I, Tanahabang, Jakarta Pusat. Tugas dari Dinas Perhubungan dispesifikasi pada sistem angkutan umum dan trayeknya.
2.9.2. Latar Belakang Dinas Perhubungan Dinas Perhubungan provinsi DKI Jakarta merupakan unsur pelaksana Pemerintah Daerah di bidang perhubungan darat, laut, dan udara. Dinas Perhubungan dipimpin oleh seorang Kepala Dinas yang berada di bawah dan bertanggungjawab kepada Gubernur melalui Sekretaris Daerah (Sekda). Dalam menjalankan tugasnya, Dishub berkoordinasi dengan asisten pembangunan.
2.9.3. Tugas Pokok dan Fungsi Dinas Perhubungan Dinas Perhubungan memiliki beberapa tugas pokok dan fungsi. Tugas pokok dan fungsinya dijabarkan di bawah ini.
23
a. Tugas Pokok Tugas pokok dari Dinas Perhubungan adalah menyelengggarakan pembinaan, pembangunan, pengelolaan, pengendalian, dan pengoordinasian kegiatan di bidang perhubungan darat, laut, dan udara.
b. Fungsi Fungsi dari Dinas Perhubungan antara lain: 1) Perumusan kebijakan teknis pelaksanaan urusan perhubungan darat, laut, dan udara; 2) Pengumpulan dan pengolahan data, perencanaan program, evaluasi, dan pengembangan sistem perhubungan darat, laut, dan udara; 3) Penyusunan dan pelaksanaan rencana kerja dan anggaran Dinas Perhubungan; 4) Pelayanan, pembinaan, dan pengendalian perizinan, standarisasi/sertifikasi dan/atau rekomendasi di bidang perhubungan; 5) Pemberian dukungan teknis dan administratif di bidang perhubungan darat, laut, dan udara kepada masyarakat dan perangkat daerah; 6) Pengelolaan
kepegawaian,
keuangan,
barang,
dan
ketatausahaan
dinas
perhubungan; 7) Penyediaan, penatausahaan, penggunaan, pemeliharaan, dan perawatan sarana dan prasarana di bidang perhubungan darat, laut, dan udara; 8) Penetapan lokasi, pengelolaan, dan pembinaan usaha perparkiran; 9) Penyelenggaraan, pembinaan, pengawasan, pengaturan dan penetapan pedoman pengelolaan SAR Provinsi di bidang perhubungan darat, laut dan udara
24
10) Penyelenggaraan pengujian kendaraan bermotor dan pemeriksaan mutu karoseri kendaraan bermotor 11) Penentuan tarif ekonomi untuk angkutan jalan, angkutan penyeberangan, laut dan udara 12) Penyusunan, penetapan dan perencanaan jaringan angkutan jalan 13) Pemberian bimbingan dan penyuluhan di bidang perhubungan darat, laut dan udara 14) Pemungutan retribusi pelayanan di bidang perhubungan darat, laut dan udara 15) Pembinaan teknis pelaksanaan kegiatan Suku Dinas
2.9.4. Visi dan Misi Dinas Perhubungan Dinas Perhubungan memiliki visi dan misi yang akan dijabarkan seperti di bawah ini.
a. Visi Visi Dinas Perhubungan adalah terciptanya sistem transportasi yang terintregasi dan berkualitas yang sejajar dengan kota besar negara maju.
b. Misi Misi Dinas Perhubungan antara lain: 1)
Mewujudkan transportasi darat yang aman, tertib, terintregasi, dan terjangkau
2)
Mewujudkan
transportasi
laut
dengan
berstandar
internasional
memanfaatkan keunggulan teknologi serta pengembangan wilayah
dengan
25
3)
Mewujudkan transportasi udara dengan standar internasional serta untuk pengembangan wilayah
4)
Mewujudkan sistem pelayanan yang efisien dengan pelayanan prima.
2.9.5. Tujuan dan Sasaran Dinas Perhubungan Dinas Perhubungan memiliki tujuan dan sasaran yang akan dijabarkan seperti di bawah ini.
a. Tujuan Tujuan Dinas Perhubungan adalah sebagai berikut: 1)
Mengoptimalkan tingkat pelayanan jalan melalui pengembangan sarana dan fasilitas perhubungan
2)
Meningkatkan pelayanan angkutan umum serta sarana dan prasarana angkutan umum.
b. Sasaran Sasaran Dinas Perhubungan adalah sebagai berikut: 1)
Meningkatkan akses serta memperlancar arus transportasi dari satu wilayah ke wilayah lainnya
2)
Menurunkan tingkat kemacetan lalu lintas pada ruas-ruas jalan arteri
3)
Meningkatkan keselamatan lalu lintas
4)
Menurunkan pencemaran udara akibat emisi kendaraan bermotor
5)
Meningkatkan pelayanan angkutan umum
6)
Meningkatkan sarana dan prasarana angkutan umum
26
2.9.6. Susunan Organisasi Dinas Perhubungan
Gambar 2.1 Susunan Organisasi Dinas Perhubungan
Gambar 2.1 menjelaskan mengenai susunan organisasi yang ada pada Dinas Perhubungan yang terdiri dari bagian-bagian yang diawasi oleh Kepala Dinas.