BAB 2 TINJAUAN PUSTAKA
Pada bab ini akan diuraikan landasan teori yang mencakup pengertian dan konsep tentang teori umum dan teori khusus. Teori umum mencakup Interaksi Manusia dan Komputer (IMK), Rekayasa Piranti Lunak, Extreme Programming (XP), Pemrograman Web (Web Programming), dan Unified Modeling Language (UML). Teori khusus mencakup Intelligent Transportation Systems (ITS), Advanced Traveler Information Systems (ATIS), Floating Car Data (FCD), Bus Rapid Transit (BRT), TransJakarta, Sistem Koordinat Geografis, Kelajuan, Global Positioning System (GPS), Google Maps API, Model-View-Controller (MVC), PHP, MySQL, CodeIgniter, JavaScript, jQuery, Ajax, HTML, CSS, Peramalan (Forecasting), dan Exponential Smoothing. Selain itu akan dipaparkan pula related works yang mengulas tentang konten jurnal/proceeding/artikel internasional ataupun lokal.
2.1
Teori Umum Teori umum berisi teori-teori pokok yang dijadikan sebagai landasan untuk
teori-teori lainnya yang digunakan dalam skripsi ini.
2.1.1 Interaksi Manusia dan Komputer (IMK) Menurut Shneiderman & Plaisant (2010: 4-5), interaksi manusia komputer adalah disiplin ilmu yang mempelajari hubungan antara manusia dan komputer yang meliputi perancangan, evaluasi, dan implementasi antarmuka pengguna komputer agar mudah digunakan oleh manusia. Sebuah sistem yang interaktif adalah sistem yang dapat berkomunikasi dengan pengguna serta memberikan manfaat bagi pengguna. Dalam perancangan desain antarmuka (interface) terdapat delapan aturan emas yang perlu diperhatikan (Shneiderman & Plaisant, 2010: 88-89): 1.
Berusaha untuk konsisten. Konsistensi urutan aksi pada situasi yang sama harus dijaga. Konsistensi juga harus diterapkan pada prompts, menus, dan layar bantu.
2.
Memungkinkan penggunaan yang universal. Kebutuhan pengguna yang beragam mulai dari pengguna pemula (novice) sampai pengguna ahli (expert) harus terpenuhi dengan merancang konten yang 7
8 beragam, misalnya penjelasan untuk pengguna pemula sampai shortcut untuk pengguna yang sudah ahli. 3.
Memberikan umpan balik yang informatif. Diharapkan adanya umpan balik dari sistem untuk setiap tindakan yang dilakukan oleh pengguna (user). Umpan balik dapat dibuat sederhana untuk tindakan yang sering terjadi dan tidak membutuhkan banyak aksi, sedangkan umpan balik untuk tindakan yang jarang dilakukan dan memerlukan banyak aksi harus lebih ditonjolkan.
4.
Merancang dialog yang memberikan penutupan (keadaan akhir). Urutan aksi harus disusun ke dalam kelompok awal, tengah, dan akhir. Suatu umpan balik yang informatif pada akhir pekerjaan sebaiknya dibuat untuk mengindikasikan bahwa pekerjaan tersebut telah selesai dan siap melanjutkan ke aksi berikutnya.
5.
Memberikan pencegahan kesalahan dan penanganan kesalahan sederhana. Sistem yang dibuat diharapkan tidak memungkinkan user untuk membuat kesalahan serius. Jika terjadi kesalahan, sistem harus dapat mendeteksi kesalahan tersebut dan menawarkan penanganan kesalahan yang sederhana.
6.
Memungkinkan pengembalian aksi yang sebelumnya. Fitur untuk mengurangi kekhawatiran user karena user tahu bahwa jika ada kesalahan yang dibuat maka keadaan sistem dapat dikembalikan lagi ke keadaan sebelumnya.
7. Mendukung pusat kendali internal. Menjadikan user sebagai pengendali sistem, bukan yang dikendalikan oleh sistem. 8.
Mengurangi beban ingatan jangka pendek. Mengingat keterbatasan manusia dalam pemrosesan informasi jangka pendek, sebuah sistem diharapkan dibuat dengan tampilan sesederhana mungkin, beberapa halaman dijadikan satu, frekuensi transisi window dikurangi, dan harus ada waktu yang cukup bagi user untuk mempelajari kode-kode, singkatan, serta urutan aksi. Informasi seperti singkatan atau kode sebaiknya tersedia. Selain delapan aturan emas (Eight Golden Rules) dalam perancangan desain
antarmuka terdapat juga lima faktor manusia terukur yang digunakan untuk mengevaluasi perancangan desain antarmuka, yaitu (Shneiderman & Plaisant, 2010: 32):
9 1.
Waktu pembelajaran (time to learn). Berapa lama waktu yang dibutuhkan oleh anggota dari sekelompok komunitas pengguna untuk mempelajari cara menggunakan perintah-perintah yang digunakan untuk menyelesaikan sebuah tugas.
2.
Kecepatan kinerja (speed of performance). Berapa lama waktu yang diperlukan untuk menyelesaikan suatu tugas.
3.
Tingkat kesalahan pengguna (rate of errors by users). Mengukur berapa banyak kesalahan yang terjadi saat aplikasi menyelesaikan suatu tugas. Meskipun waktu untuk membuat dan memperbaiki kesalahan mungkin dimasukkan ke dalam kecepatan kinerja, penanganan kesalahan merupakan hal yang penting dalam penggunaan antarmuka dan membutuhkan pembelajaran yang luas.
4.
Daya ingat jangka panjang (retention over time). Bagaimana pengguna menjaga pengetahuan mereka setelah beberapa jam, hari, atau minggu. Daya ingat sering dikaitkan dengan waktu pembelajaran dan biasanya frekuensi penggunaan juga memainkan peran penting.
5.
Kepuasan subjektif (subjective satisfaction). Mengukur seberapa jauh pengguna menyukai berbagai aspek dari antarmuka pengguna.
2.1.2 Rekayasa Piranti Lunak Piranti lunak atau software adalah instruksi-instruksi yang jika dijalankan akan menyediakan fitur, fungsi, dan performa yang diinginkan, struktur data yang memungkinkan program untuk memanipulasi informasi, dan dokumen yang menyatakan operasi dan kegunaan program (Pressman, 2011: 4). Rekayasa piranti lunak merupakan bagian penting dalam pembuatan sebuah sistem. Definisi di atas menjelaskan bahwa pendekatan yang digunakan dalam pembuatan piranti lunak harus sistematis, disiplin, dan terukur. Menurut Pressman (2011: 14), rekayasa piranti lunak dapat dikelompokkan dalam beberapa lapisan layers, yaitu:
10
Gambar 2.1 Software Engineering Layers (Pressman, 2011: 14)
Landasan yang mendukung rekayasa piranti lunak adalah fokus terhadap kualitas atau a quality focus. Dalam rekayasa piranti lunak lapisan a quality focus adalah landasan dari suatu rekayasa piranti lunak. Semua proses dalam rekayasa piranti lunak mengacu pada kualitas yang dihasilkan. Dalam rekayasa piranti lunak lapisan process adalah fondasi dasar yang berfungsi sebagai penghubung lapisan teknologi, pengembangan rasional, dan pengembangan piranti lunak yang teratur. Process mendefinisikan kerangka kerja untuk satu set key process areas (KPAs) yang harus dibentuk agar penyampaian teknologi rekayasa piranti lunak dapat berjalan dengan efektif. Key process areas menjadi dasar dalam kontrol manajemen proyek piranti lunak dan menetapkan konteks yang mengizinkan agar metode teknis yang diterapkan dan pekerjaan produk (model, dokumen, data, laporan, formulir, dan lainnya) dapat diproduksi, diterapkan, dipastikan kualitasnya, dan dikelola dengan baik. Methods pada rekayasa piranti lunak menyediakan teknis bagaimana membangun sebuah piranti lunak. Methods mencakup array yang luas dari tugastugas yang mencakup analisis kebutuhan, desain, konstruksi program, pengujian, dan dukungan. Piranti lunak bergantung pada sekumpulan prinsip dasar yang mengatur setiap area teknologi termasuk aktivitas modeling dan teknik deskriptif lainnya. Tools pada rekayasa piranti lunak menyediakan dukungan otomatis atau semiotomatis untuk methods dan process. Ketika tools terintegrasi sehingga informasi yang dihasilkan suatu alat dapat digunakan oleh yang lain, sebuah sistem untuk mendukung pengembangan piranti lunak yang disebut computer-aided software engineering diterapkan (Pressman, 2011: 13-14).
11 2.1.3 Extreme Programming (XP) Kent Beck dan 16 orang pengembang aplikasi, penulis, dan konsultan lainnya pada tahun 2001 menyepakati “Manifesto for Agile Software Development” yang berisi bahwa: individual dan interaksi lebih penting daripada proses dan alat, software yang berfungsi lebih penting daripada dokumentasi yang lengkap, kolaborasi dengan pengguna lebih penting daripada negosiasi kontrak, dan sikap tanggap terhadap perubahan lebih penting daripada mengikuti rencana (Pressman, 2011: 65). Metode agile mementingkan keluaran atau hasil dari proses pengembangan software, pengerjaan software, dan memaksimalkan nilai untuk pengguna. Metode agile ini dapat didefinisikan sebagai aturan yang berorientasi pada penggunaan manusia dan komunikasi dalam hubungannya dengan aturan prosedur proyek yang sifatnya ringan namun sesuai. Salah satu metode agile yang banyak digunakan adalah extreme programming (XP). Ide pengembangan dengan extreme programming pertama kali dilakukan pada akhir era 1980an dan diperkenalkan oleh Kent Beck. Kent Beck mendefinisikan lima nilai yang menjadi dasar dari semua pekerjaan sebagai bagian dari extreme programming adalah komunikasi, penyederhanaan, umpan balik, keberanian, dan menghormati. Setiap nilai ini digunakan sebagai pendorong bagi aktivitas, aksi, dan tugas extreme programming secara spesifik (Pressman, 2011: 7273). 1. Komunikasi Untuk mencapai komunikasi yang efektif antara pembuat software dan pemegang kepentingan lainnya, extreme programming menekankan pada komunikasi yang dekat dan informal antara pengguna dan pengembang. Pembentukan komunikasi yang penting ini berfungsi untuk mengkomunikasikan konsep-konsep penting, umpan balik terus menerus, dan menghindari dokumentasi tebal sebagai media komunikasi. 2. Penyederhanaan Extreme programming membatasi pengembang untuk mendesain hanya pada apa yang dibutuhkan sekarang, dibandingkan dengan memikirkan apa yang akan dibutuhkan pada masa depan. Ini bertujuan untuk membuat desain yang sederhana yang dapat diimplementasikan pada kode (code) dengan mudah. Jika desain harus ditingkatkan, refactoring dapat dilakukan di kemudian hari.
12 3. Umpan balik Umpan balik didapat dari tiga sumber: software yang telah diimplementasikan itu sendiri, pengguna, dan tim pengembang software yang lain. Extreme programming menggunakan unit test sebagai taktik untuk melakukan tes awal. Dengan berkembangnya setiap class, setiap tim mengembangkan unit test untuk melakukan tes sesuai dengan fungsinya secara spesifik. Setiap perkembangan yang dikirim ke pengguna akan memunculkan kebutuhan baru yang akan menjadi bagian dari perencanaan secara iterasi. Tim pengembang menyediakan penggunaan dengan umpan balik yang cepat berkaitan dengan biaya dan jadwal. 4. Keberanian Keberanian di sini lebih menekankan bahwa setiap anggota tim dari extreme programming harus berani melakukan desain untuk saat ini dibandingkan dengan memikirkan kebutuhan masa depan yang dapat berubah secara drastis. 5. Menghormati Dengan mengikuti setiap nilai-nilai yang ada, setiap tim extreme programming saling menghormati satu sama lain, baik itu tim pengembang, anggota tim lainnya, dan pemegang kepentingan lainnya. Proses dalam extreme programming secara garis besar dapat dibagi menjadi empat kerangka kerja. Gambar 2.2 mengilustrasikan proses pengembangan dengan extreme programming (Pressman, 2011: 73-77):
13
Gambar 2.2 Langkah-langkah Extreme Programming (Pressman, 2011: 74)
1. Perencanaan (Planning) Tahap
perencanaan
yaitu
sebuah
cara pengumpulan
kebutuhan
yang
memungkinkan anggota teknikal tim extreme programming (XP) mengerti konteks bisnis untuk piranti lunak dan mendapatkan wawasan yang luas untuk hasil yang dibutuhkan dan fitur utama serta fungsionalitas. Proses mendengarkan akan mengarahkan pada pembuatan “cerita” (user stories) yang menggambarkan kebutuhan akan hasil, fitur, dan fungsionalitas piranti lunak yang akan dibuat. 2. Perancangan (Design) Perancangan XP mengikuti prinsip “Keep It Simple” (KIS). Desain yang sederhana selalu lebih dipilih dibandingkan dengan yang kompleks. Apabila ditemukan masalah perancangan yang sulit sebagai bagian dari perancangan cerita, XP merekomendasikan untuk membuat prototype operasional dari perancangan tersebut dengan segera. Dikenal sebagai spike solution, rancangan prototype diimplementasikan dan dievaluasi. Tujuannya adalah agar mengurangi risiko saat pengimplementasian dan untuk memastikan perkiraan asli untuk cerita yang mengandung masalah perancangan.
14 3. Pengkodean (Coding) Tahap ini akan dilakukan setelah pembuatan user stories dan perancangan pendahuluan selesai dibuat, serta dilanjutkan dengan pengembangan urutan pengujian unit pada user stories yang akan dimasukkan ke dalam rilis. Pengembang sebaiknya memfokuskan pada hal yang akan diimplementasikan untuk melewati pengujian setelah pengujian unit dibuat, sehingga akan dihasilkan umpan balik langsung bagi pengembang. Konsep utama selama coding adalah pair programming, yaitu proses pembuatan code untuk user stories yang dilakukan oleh dua orang secara bersama-sama. Hal ini menyediakan mekanisme untuk pemecahan masalah, penjaminan kualitas pada saat pengerjaan, dan membuat pengembang tetap fokus pada permasalahan yang ada. Pada tahap ini juga dilakukan refactoring. Refactoring memungkinkan pengembang aplikasi untuk meningkatkan struktur internal dari desain (source code) tanpa mengubah sifat atau fungsionalitas eksternal. Dengan kata lain refactoring dapat digunakan untuk meningkatkan efisiensi, kemampuan untuk dibaca, atau performa dari desain atau code yang mengimplementasikan desain. 4. Pengujian (Testing) Pengujian unit yang dibuat sebelum coding dimulai adalah elemen kunci untuk pendekatan dalam XP. Pengujian unit yang dibuat harus diimplementasikan menggunakan framework yang memungkinkan pengujian unit dilakukan secara otomatis. Hal ini mendorong sebuah strategi pengujian regresi setiap saat code diubah. Integrasi dan pengujian validasi dari sistem dapat terjadi secara harian karena pengujian unit secara individu diorganisasikan menjadi “universal testing suite”. Hal ini menyediakan indikasi dari kemajuan yang didapat dan juga memberikan peringatan dini terhadap kesalahan yg terjadi kepada tim XP. XP acceptance tests, yang disebut juga pengujian klien ditentukan oleh klien dan berfokus pada keseluruhan fitur sistem dan fungsionalitas yang terlihat dan dapat diulas kembali oleh klien. Acceptance tests diperoleh dari user stories yang telah diimplementasikan sebagai bagian dari piranti lunak yang dirilis. Metode ini ideal untuk digunakan karena sistem yang akan dikembangkan memiliki karakteristik antara lain: 1. Fungsionalitas sistem diduga akan berubah setiap beberapa bulan karena kebutuhan (requirement) akan fungsionalitas dapat berubah secara dinamis.
15 2. Sistem dikembangkan oleh tim berukuran kecil beranggotakan dua orang pengembang, yaitu peneliti dan seorang mahasiswa Universitas Bina Nusantara sebagai pengembang salah satu komponen sistem. Hal ini mengizinkan adanya pair programming yang menyediakan mekanisme untuk pemecahan masalah, penjaminan kualitas pada saat pengerjaan, dan membuat tim tetap fokus pada permasalahan yang ada. 3. Adanya keterlibatan pengguna secara langsung yang menciptakan komunikasi yang dekat dan informal antara pengguna dan pengembang.
2.1.4 Pemrograman Web (Web Programming) Organisasi web umumnya terdiri dari tiga bagian utama yaitu front-end browser, middle tier server, dan back-end database. Pemrograman pada middle tier server dikenal dengan istilah server side programming, yang mengizinkan script dijalankan di server yang akan mengambil dan memproses data dari back-end database, kemudian hasil dari pemrosesan itu dikirimkan ke client (browser) sehingga bisa ditampilkan. Sedangkan pemrograman pada front-end browser dikenal dengan istilah client side programming, yang mengizinkan script dijalankan pada komputer client, tanpa berinteraksi dengan server (Cooper, Lindley, Wadler, & Yallop, 2006).
2.1.4.1 Web Server Web server adalah tulang belakang dari World Wide Web (WWW). Web server menunggu permintaan dari client yang menggunakan browser seperti Internet Explorer, Mozilla Firefox, Google Chrome, dan program browser lainnya. Jika ada permintaan dari browser, maka web server akan memproses permintaan itu kemudian memberikan hasil prosesnya berupa data yang diinginkan kembali ke browser. Data ini mempunyai format yang standar, disebut dengan format Standard General Markup Language (SGML). Data yang berupa format ini kemudian akan ditampilkan oleh browser sesuai dengan kemampuan browser tersebut. Web server berkomunikasi dengan client-nya (web browser) menggunakan protokol HyperText Transfer Protocol (HTTP) (Khairil, 2013).
16 2.1.4.2 Web Browser Web browser menampilkan konten yang diambil dari web server menggunakan HyperText Transfer Protocol (HTTP). Web pages (halaman web) ditulis menggunakan HyperText Markup Language (HTML). HTML bisa dilengkapi dengan Cascading Style Sheets (CSS) yang digunakan untuk mengatur tampilan page dan JavaScript yang mengizinkan komputasi pada client side (Grosskurth & Godfrey, 2005).
2.1.5 Unified Modeling Language (UML) Menurut Whitten & Bentley (2007: 371), UML (Unified Modeling Language) versi 2.0 adalah sekumpulan konvensi pemodelan yang digunakan untuk menentukan atau menggambarkan sebuah sistem piranti lunak yang terkait dengan objek. Berdasarkan perspektif dalam memodelkan suatu sistem, UML dapat dikelompokkan menjadi empat kelompok diagram, yaitu: Use Case Diagram, Activity Diagram, Class Diagram, dan Sequence Diagram.
2.1.5.1 Use Case Diagram Use case diagram adalah sebuah diagram yang menggambarkan interaksi antara sistem dengan sistem eksternal dengan pengguna. Dengan kata lain, secara grafis menggambarkan siapa yang akan menggunakan sistem dan dengan cara apa pengguna berinteraksi dengan sistem (Whitten & Bentley, 2007: 246). Use case diagram memiliki dua elemen penting yaitu skenario dan aktor. Skenario adalah suatu urutan langkah-langkah yang menjelaskan interaksi antara user dengan sistem. Aktor adalah segala sesuatu yang berinteraksi dengan sistem untuk bertukar informasi (Whitten & Bentley, 2007: 247).
17
Gambar 2.3 Contoh Use Case Diagram
Dalam use case diagram terdapat hubungan. Hubungan yang digunakan dalam use case diagram adalah (Whitten & Bentley, 2007: 248-250): 1. Association Association menggambarkan adanya interaksi antara sebuah use case dengan aktor. Association dimodelkan dengan simbol garis dengan atau tanpa tanda panah. Association dibagi menjadi dua yaitu unidirectional association dan bidirectional association. Unidirectional association adalah asosiasi yang berlaku satu arah, dilambangkan dengan garis lurus berarah seperti (1), sedangkan bidirectional association adalah asosiasi yang berlaku dua arah, dilambangkan dengan garis lurus seperti (2). Association dengan tanda panah menunjukkan bahwa aktor sebagai inisiator use case tersebut. Sedangkan asosiasi tanpa anak panah menandakan interaksi antara use case dengan aktor penerima.
Gambar 2.4 Contoh Asosiasi pada Use Case Diagram
18 2. Extends Extends digunakan ketika sebuah use case terdiri dari beberapa tahap sehingga sulit dimengerti. Dengan menggunakan extends, use case akan menghasilkan use case baru yang mewakili fungsi tertentu dari use case awal. Hasil dari extends disebut dengan extended use case.
Gambar 2.5 Extended Use Case
3. Uses (atau Includes) Uses (atau includes) digunakan ketika terdapat dua atau lebih use case yang melakukan langkah yang sama. Langkah tersebut akan dipisahkan menjadi use case terpisah yang disebut abstract use case. Abstract use case berfungsi untuk mengurangi redundansi pada use case.
Gambar 2.6 Contoh Uses pada Use Case Diagram
19 4. Depends on Depends on menunjukkan hubungan keterkaitan antara use case. Depends on digunakan ketika ada use case yang tidak dapat dijalankan jika use case lainnya belum dilakukan.
Gambar 2.7 Contoh Hubungan Depends on
5. Inheritance Inheritance digunakan ketika di antara dua atau lebih aktor terdapat langkah yang sama. Inheritance akan membentuk aktor abstrak (abstract actor) yang berfungsi untuk menyederhanakan use case.
Gambar 2.8 Contoh Inheritance Dalam Use Case
20 2.1.5.2 Activity Diagram Activity diagram adalah diagram yang digunakan untuk menggambarkan rangkaian aliran aktivitas baik proses bisnis, langkah-langkah use case, dan logika perilaku dari objek. Diagram ini digunakan untuk memodelkan action yang akan dilakukan ketika operasi dieksekusi dan hasil dari action tersebut (Whitten & Bentley, 2007: 390-391).
Gambar 2.9 Contoh dan Notasi Activity Diagram
21 Dalam activity diagram terdapat beberapa notasi yang berfungsi untuk mengilustrasikan diagram, yaitu (Whitten & Bentley, 2007: 391): 1. Initial node Lingkaran padat yang merepresentasikan awal dari proses. 2. Actions Kotak bulat yang merepresentasikan langkah. 3. Flow Panah dalam diagram yang mengindikasikan perkembangan sepanjang action. 4. Decision Bentuk permata dengan satu flow yang masuk dan dua atau lebih flow yang keluar. Aliran yang keluar ditandai untuk mengidentifikasikan kondisi. 5. Merge Bentuk permata dengan dua atau lebih flow yang masuk dan satu flow yang keluar. Notasi ini mengkombinasikan flow yang sebelumnya dipisahkan oleh decision menjadi satu flow. 6. Fork Balok hitam dengan satu flow masuk dan dua atau lebih flow keluar. Tindakan pada flow paralel di bawah fork dapat terjadi dalam urutan apapun atau bersamaan. 7. Join Kotak hitam dengan dua atau lebih flow yang masuk dan satu flow keluar. Tindakan yang masuk ke dalam join harus selesai sebelum proses dilanjutkan. 8. Activity final Lingkaran padat di dalam lingkaran kosong merepresentasikan akhir dari proses.
22 2.1.5.3 Class Diagram Class diagram adalah sebuah diagram yang menggambarkan struktur objek statis dari suatu sistem. Diagram ini menunjukkan kelas-kelas objek yang menyusun sebuah sistem dan juga yang menghubungkan antar kelas objek tersebut (Whitten & Bentley, 2007: 400).
Gambar 2.10 Contoh Class Diagram
23 Notasi-notasi yang terdapat pada class diagram, yaitu: 1. Class Class adalah rancangan dari suatu objek. Objek yang diciptakan dari suatu class akan memiliki semua attribute dan behavior yang dimiliki oleh class tersebut. Secara umum class digambarkan dengan sebuah kotak yang terdiri dari 3 bagian, yaitu (Whitten & Bentley, 2007: 372-374): a. Bagian atas: class name. b. Bagian tengah: attribute. c. Bagian bawah: behavior.
24 2. Relationship a. Association Hubungan yang terjadi antara class yang ada. Association memungkinkan suatu class untuk menggunakan atau mengetahui attribute dan behavior yang dimiliki oleh class lain. Association juga menggambarkan interaksi yang mungkin terjadi antara satu class dengan class yang lain. Pada association terdapat notasi multiplicity yang menyatakan jumlah minimum dan maksimum kelas objek untuk satu kelas objek yang berhubungan. Association digambarkan dengan sebuah garis tanpa tanda panah (Whitten & Bentley, 2007: 377).
Gambar 2.11 Association dan Notasi Multiplicity (Whitten & Bentley, 2007: 377)
25 b. Aggregation Aggregation adalah suatu bentuk relasi yang jauh lebih kuat dari association. Aggregation dapat diartikan bahwa suatu class merupakan bagian dari class yang lain namun bersifat tidak wajib. Aggregation digambarkan dengan sebuah garis yang memiliki bentuk diamond kosong di salah satu ujung garisnya (Whitten & Bentley, 2007: 379).
Gambar 2.12 Notasi Aggregation (Whitten & Bentley, 2007: 379)
26 c. Composition Relasi ini merupakan relasi yang paling kuat dibandingkan dengan association maupun aggregation. Pada composition diartikan bahwa suatu class merupakan bagian wajib dari class yang lain. Composition digambarkan dengan sebuah garis yang memiliki bentuk diamond utuh di salah satu ujung garisnya (Whitten & Bentley, 2007: 379).
Gambar 2.13 Notasi Composition (Whitten & Bentley, 2007: 379)
27 d. Generalization Generalization memungkinkan suatu class mewarisi attribute dan behavior yang dimiliki oleh base class. Generalization digambarkan dengan garis yang memiliki tanda panah tertutup kosong pada salah satu ujungnya yang mengarah ke base class (Whitten & Bentley, 2007: 376).
Gambar 2.14 Notasi Generalization (Whitten & Bentley, 2007: 381)
Attribute dan behavior dalam class diagram dapat memiliki salah satu sifat berikut (Whitten & Bentley, 2007: 650): 1. Private (-), tidak dapat dipanggil di luar class yang bersangkutan. 2. Protected (#), hanya dapat dipanggil oleh class yang bersangkutan dan anakanak yang mewarisinya. 3. Public (+), dapat dipanggil oleh semua class lain.
28 2.1.5.4 Sequence Diagram Sequence diagram adalah diagram UML yang memodelkan logika dari sebuah use case dengan cara menggambarkan bagaimana objek berinteraksi satu sama lain. Diagram ini mengilustrasikan bagaimana pesan dikirim dan diterima di antara objek (Whitten & Bentley, 2007: 659).
Gambar 2.15 Contoh dan Notasi Sequence Diagram
Dalam sequence diagram terdapat beberapa notasi yang berfungsi untuk mengilustrasikan diagram, yaitu (Whitten & Bentley, 2007: 660): 1. Actor Actor berinteraksi dengan objek kelas interface. 2. Interface class Interface class adalah kotak yang mengidentifikasikan kode kelas dari tampilan antarmuka. 3. Controller class Setiap use case akan memiliki satu atau lebih controller class, digambar dengan notasi yang sama dengan interface class. 4. Entity classes Entity classes adalah kotak tambahan untuk setiap kesatuan yang membutuhkan kolaborasi dalam tahap-tahap sequence.
29 5. Messages Messages dinyatakan dengan garis horizontal utuh yang memanggil behavior dari class yang ditunjuk. 6. Activation bars Activation bars adalah kotak yang berfungsi untuk mengidentifikasikan waktu keberadaan dari setiap objek yang ada. 7. Return messages Return messages adalah jawaban atas pesan yang disampaikan oleh suatu objek. 8. Self-call Self-call mengizinkan sebuah objek mengirimkan pesan ke objek itu sendiri. 9. Frame Frame digunakan untuk menandakan area pada diagram yang mengalami perulangan (looping), mengalami seleksi (alternative), atau memiliki sebuah ketentuan (optional).
2.2
Teori Khusus Teori khusus adalah teori yang berhubungan dengan topik yang dibahas
dalam skripsi ini.
2.2.1 Intelligent Transportation Systems (ITS) Menurut Mandaku & Tukan (2010), Intelligent Transportation Systems (ITS) mempunyai tujuan dasar yakni membuat sistem transportasi yang dapat membantu pengguna transportasi untuk: •
Mendapatkan informasi.
•
Mempermudah transaksi.
•
Meningkatkan kapasitas prasarana dan sarana transportasi.
•
Mengurangi kemacetan atau antrian.
•
Meningkatkan keamanan dan kenyamanan.
•
Mengurangi polusi lingkungan.
•
Mengefisiensikan pengelolaan transportasi. ITS pada prinsipnya adalah penerapan teknologi maju di bidang elektronika,
komputer, dan telekomunikasi yang dipadu dengan prinsip manajemen strategi untuk meningkatkan fungsi transportasi secara keseluruhan. Sistem ini mampu memberikan
30 informasi kepada pemilik kendaraan atau penumpang serta operator angkutan sedemikian sehingga proses transportasi dapat berjalan secara efektif dan efisien. Beberapa contoh aplikasi ITS yang telah terbukti mampu meningkatkan efektivitas dan efisiensi transportasi adalah transit system, vehicle or fleet management system, emergency and security system, electronic payment, traffic management system, dll. ITS dapat diterapkan dalam beberapa ruang lingkup seperti: 1. Advanced Traveller Information System Sistem ini secara prinsip adalah sistem yang menyediakan informasi bagi pengguna jalan berupa keadaan lalu lintas. 2. Advanced Traffic Management System Sistem ini digunakan oleh pengelola jalan untuk memantau lalu lintas dan memberikan informasi real-time kepada pengguna jalan. 3. Incident Management System Sistem ini adalah sistem informasi yang digunakan untuk berbagai kejadian darurat, misalnya kecelakaan, longsor, atau bencana lainnya. 4. Electronic Toll Collection System Sistem ini dirancang untuk mengatasi persoalan klasik pada jalan tol, yaitu mengurangi lama waktu yang diperlukan untuk transaksi pengguna di gerbang tol. 5. Assistance for Safe Driving Sistem ini adalah bentuk dari ITS yang sangat maju. Kendaraan dilengkapi dengan sejumlah sensor yang dapat mengarahkan pengemudi unuk berkendara dengan aman. 6. Support for Public Transportation Sistem ini diterapkan pada mode transpotasi umum, misalnya bus/truk, kapal laut, ferri, dan pesawat terbang.
2.2.2 Advanced Traveler Information Systems (ATIS) Menurut Kumar, Singh, & Reddy (2005), Advanced Traveler Information Systems (ATIS) adalah salah satu aplikasi Intelligent Transportation Systems (ITS) yang mengimplementasikan teknologi komputer, komunikasi, dan teknologi informasi untuk menyediakan informasi bagi pengguna jalan berupa keadaan lalu lintas, petunjuk rute dan lokasi, pengenalan situasi berbahaya dan saran keselamatan, dan pesan peringatan. ATIS membutuhkan banyak data untuk diproses, dianalisis,
31 dan disimpan untuk memungkinkan penyebaran informasi ke pengguna lalu lintas secara efektif. Geographical Information System (GIS) memungkinkan banyak data untuk diproses, disimpan, dianalisis, dan ditampilkan dalam bentuk grafis secara efektif. Oleh karena itu, ATIS yang didukung oleh GIS merupakan alat yang handal untuk menyimpan informasi dan menampilkannya dalam bentuk grafis, sehingga bermanfaat bagi pengguna lalu lintas. ATIS mengimplementasikan berbagai teknologi, seperti Internet, telepon, telepon selular, televisi, radio, dll. untuk membantu pengguna jalan dan pengemudi dalam membuat keputusan mengenai keberangkatan, rute optimum, dan mode perjalanan yang tersedia. ATIS menyediakan informasi sebelum dan saat perjalanan kepada pengguna jalan. Beberapa contoh produk ATIS adalah sebagai berikut. 1. Informasi melalui telepon (pesan yang sudah direkam untuk area atau koridor tertentu). 2. Sistem navigasi pada kendaraan (Global Positioning Systems (GPS) dan panduan rute dinamik). 3. Tanda pesan dinamik (sistem pada saat mengemudi). 4. Internet (peta kemacetan dan aplikasi client-server). 5. Siaran radio dan televisi (sebelum dan saat perjalanan).
2.2.3 Floating Car Data (FCD) Menurut Gühnemann, Schäfer, Thiessenhusen, & Wagner (2004), metode Floating Car Data (FCD) menentukan waktu perjalanan dan rute perjalanan secara langsung dari pemantauan kendaraan-kendaraan yang "mengambang" pada lalu lintas dan yang posisinya ditentukan dari teknologi navigasi seperti GPS (Global Positioning System). Kendaraan harus dilengkapi dengan alat komunikasi yang mengizinkan pengoleksian data secara luas dan transmisi data lalu lintas dalam skala besar. FCD ditujukan untuk memperbaiki atau menggantikan sensor tradisional dalam pengoleksian data lalu lintas (Ehmke, Meisel, & Mattfeld, 2010). Belakangan ini, unit penerima sinyal GPS yang terdapat pada kendaraan atau smartphone banyak digunakan untuk mengaplikasikan metode FCD. Tidak seperti sensor stasioner, data pergerakan kendaraan yang memiliki smartphone dengan unit penerima sinyal GPS dapat dikoleksi dari semua rute yang dilalui oleh kendaraan. Oleh karena itu, FCD dapat digunakan sebagai pelengkap untuk sistem stasioner
32 guna melakukan pengamatan penggunaan jalan dalam jaringan yang lebih luas (Rahmani, Jenelius, & Koutsopoulos, 2013). Smartphone digunakan sebagai sarana untuk mengumpulkan data lalu lintas yang nantinya digunakan untuk estimasi keadaan lalu lintas perkotaan secara realtime. Sistem ini menggunakan mobile application yang berjalan pada setiap smartphone dan server pusat yang menyediakan algoritma seperti pemrosesan data lokasi, estimasi keadaan lalu lintas, dll. yang berjalan secara real-time. Komponen lain dalam sistem adalah location service provider seperti satelit dan jaringan selular yang digunakan untuk memfasilitasi komunikasi antara satu komponen dengan yang lainnya dan juga untuk menentukan lokasi smartphone. Lokasi smartphone ditentukan oleh unit penerima sinyal GPS yang terdapat di dalamnya, kemudian mobile application mengirim data lokasi tersebut ke server. Komunikasi antara server dan client diimplementasikan melalui jaringan selular. Server mengoleksi dan memproses data lokasi untuk mengestimasi keadaan lalu lintas, lalu mengirimkan informasi dinamis ke setiap client (Tao, 2012). Infrastruktur sistem FCD terdiri dari tiga komponen utama, yaitu probe client, web server, dan web client. Probe client menggunakan smartphone yang mempunyai unit penerima sinyal GPS. Probe client diletakkan pada kendaraan dan digunakan untuk mengukur posisi dari kendaraan, kelajuan, dan arah pergerakan. Setelah itu, data tersebut beserta waktu pengukurannya akan dikirimkan ke server melalui jaringan nirkabel. Web server menerima, memproses, menyimpan, dan menyediakan informasi lalu lintas. Web server akan menginstruksikan web client untuk memuat peta digital, contohnya Google Maps API dan menyajikan informasi lalu lintas pada peta digital (Gunawan, Gunawan, Chandra, & Glann, 2014).
33
Gambar 2.16 Infrastruktur Sistem FCD (Gunawan, Gunawan, Chandra, & Glann, 2014)
Beberapa penerapan metode FCD antara lain (Graser et al., 2012): 1. Peringatan kemacetan jalan otomatis dan panduan jalan dinamis secara real-time. Sistem FLEET di Vienna mengoleksi data dari ± 3,000 taksi dengan jarak tempuh tahunan lebih dari 90 juta kilometer untuk pusat lalu lintas Vienna. Sistem ini memperkirakan kecepatan rata-rata tiap jalur dan tiap interval waktu untuk menentukan keadaan lalu lintas dan untuk menghitung prediksi jangka pendek dan menengah. 2. Kontrol kualitas untuk infrastruktur sensor statis. Terdapat banyak aplikasi ITS yang sangat bergantung pada data lalu lintas yang dihasilkan dari loop detector. Penentuan detector yang tidak berfungsi merupakan bagian vital dari kontrol kualitas ITS. FCD sudah digunakan sebagai sumber informasi independen untuk kontrol kualitas loop detector. 3. Penaksiran kualitas sistem pesan lalu lintas. Informasi kejadian yang didapat dari sumber FCD dapat dibandingkan dengan taraf spasial dan sementara dari pesan lalu lintas relevan. 4. Evaluasi ukuran yang mempengaruhi lalu lintas. Informasi keadaan lalu lintas yang didapat dari FLEET telah digunakan dalam analisis keadaan lalu lintas untuk mengevaluasi keefektifan ukuran kontrol lalu lintas seperti optimasi pemberian sinyal lalu lintas.
34 2.2.4 Bus Rapid Transit (BRT) Menurut Wright (2007: 11-15), Bus Rapid Transit (BRT) adalah sistem transit bus yang menghasilkan mobilitas penumpang yang cepat, nyaman, dan dengan harga terjangkau melalui kebijakan untuk menyediakan jalur terpisah dari infrastruktur jalan utama, operasi yang cepat, dan pemasaran dan pelayanan pengguna yang baik. BRT dapat didefinisikan secara lebih jelas melalui analisis fitur yang ditawarkan. Berikut ini adalah fitur-fitur yang perlu terdapat pada BRT dan informasi mengenai kota dengan sistem BRT. 1. Jalur busway yang terpisah atau jalan yang hanya diperuntukkan untuk bus. 2. Keberadaan "jaringan" rute dan koridor yang terintegrasi. 3. Stasiun yang mudah dijangkau, nyaman, aman, dan terlindung dari cuaca. 4. Stasiun memungkinkan akses antara lantai stasiun (platform) dan lantai kendaraan. 5. Lokasi jalur busway yang umumnya berada di tengah infrastruktur jalan. 6. Pembayaran tiket sebelum menggunakan bus. 7. Stasiun dan terminal spesial yang memfasilitasi integrasi fisik yang mudah antara bus utama, feeder, dan sistem transportasi massal lainnya. 8. Integrasi biaya antara rute, koridor, dan feeder. 9. Akses ke dalam sistem tidak diizinkan untuk operator tertentu di bawah struktur administrasi (closed system). 10. Identitas pemasaran tersendiri untuk sistem. 11. Teknologi kendaraan emisi rendah. 12. Manajemen sistem melalui pusat kontrol terpusat, memanfaatkan aplikasi dari Intelligent Transportation Systems (ITS) seperti lokasi kendaraan otomatis. 13. Ketentuan spesial untuk memudahkan akses untuk anak-anak, orang lanjut usia, dan penyandang cacat. 14. Peta rute, tanda, dan tampilan informasi real-time yang terdapat dalam stasiun dan kendaraan.
35 Tabel 2.1 Kota dengan Sistem BRT (Wright, 2007: 15) Benua
Negara
Kota dengan Sistem BRT
Asia
China
Beijing, Hangzhou, Kunming
India
Pune
Indonesia
Jakarta (TransJakarta)
Jepang
Nagoya (Yurikamome Line)
KorSel
Seoul
Taiwan
Taipei
Perancis
Caen (Twisto), Clermont Ferrand (Léo 2000),
Eropa
Lyon, Nancy (TVR line 1), Nantes (Line 4), Nice (Busway), Paris (RN305 busway, Mobilien, dan Val de Marne busway), Rouen (TEOR), Toulouse (RN88) Belanda
Amsterdam (Zuidtangent), Eindhoven, Utrecht
Inggris
Bradford (Quality Bus), Crawley (Fastway), Edinburgh (Fastlink), Leeds (Superbus dan Elite)
Amerika
Jerman
Essen (O-Bahn)
Brasil
Curitiba (Rede Integrada), Goiânia
Latin
(METROBUS), Porto Alegre (EPTC), São Paulo
dan
(Interligado)
Karibia
Chili
Santiago (Transantiago)
Kolombia
Bogotá (TransMilenio), Pereira (Megabus)
Ekuador
Quito (Trolé, Ecovía, dan Central Norte), Guayaquil (Metrovía)
Guatemala
Guatemala City (Transmetro)
Meksiko
León (Optibus SIT), Mexico City (Metrobús)
Amerika
Kanada
Ottawa (Transitway)
Utara
Amerika
Boston (Silver Line Waterfront), Eugene (EmX),
Serikat
Los Angeles (Orange Line), Miami (South Miami-Dade Busway), Orlando (Lynx Lymmo), Pittsburgh (Busway)
Oseania
Australia
Adelaide (O-Bahn), Brisbane (Busway), Sydney (T-Ways)
36 2.2.5 TransJakarta Menurut Ningtyas & Joewono (2009), TransJakarta adalah sebuah sistem Bus Rapid Transit (BRT) yang dirancang untuk menyediakan sistem transportasi publik yang cepat bagi warga Jakarta. Di Jakarta, koridor pertama direncanakan dan diimplementasikan selama kurun waktu 9 bulan, dari Mei 2003 sampai Januari 2004. Koridor pertama yang memiliki panjang 12.9 km dioperasikan pertama kali pada 15 Januari 2004. Koridor ini membentang dari Terminal Bus Blok M sampai Stasiun Kota. Pada tahun operasional pertama (2004), tercatat 15.9 juta penumpang menggunakan TransJakarta (± 44,000 penumpang per hari atau 3,600 orang/jam/dua arah). Keberadaan TransJakarta memiliki tujuan untuk menyediakan transportasi publik yang aman, cepat, dan nyaman. TransJakarta juga mempunyai intensi untuk menginspirasi penduduk Jakarta untuk mengubah mode transportasi mereka yang semula adalah kendaraan pribadi menjadi kendaraan umum serta untuk mengurangi kepadatan lalu lintas. Perencanaan awal untuk TransJakarta dilakukan pada tahun 2001 tetapi pembangunan sistemnya dilakukan dengan cepat pada tahun 2003, setelah Gubernur Jakarta waktu itu, Sutiyoso, melakukan kunjungan ke Bogota dan terpukau dengan sistem BRT yang ada di sana. Selanjutnya, ia bersama stafnya menyelesaikan desain dan melakukan implementasi koridor pertama. TransJakarta mempunyai total 545 bus yang melayani lebih dari 8 juta penumpang setiap bulannya (2012). Selama 2011, bus TransJakarta membawa lebih dari 100 juta penumpang. Mayoritas bus di Koridor 1 menggunakan diesel namun hampir semua bus lainnya menggunakan Compressed Natural Gas (CNG) atau Bahan Bakar Gas (BBG), sebuah opsi yang ramah lingkungan. Bus TransJakarta memiliki kapasitas sekitar 85 orang dan untuk bus gandengnya memiliki kapasitas sekitar 160 orang. Halte TransJakarta menyediakan lantai halte (platform) yang mengizinkan penumpang untuk naik ke bus dan turun dari bus dengan mudah. Pada umumnya, halte terhubung dengan trotoar melalui jembatan penyeberangan yang menyediakan akses yang relatif mudah ke halte. Sistem koridor TransJakarta yang tersambung satu sama lainnya mengizinkan pengguna untuk berganti bus selama bepergian di dalam jaringan bus TransJakarta dengan hanya membayar Rp 3,500 untuk satu tiket.
37 TransJakarta mulai beroperasi pukul 05.00 WIB sampai pukul 22.00 WIB setiap harinya. TransJakarta dioperasikan oleh Unit Pengelola TransJakarta Busway (UPTB) di bawah Dinas Perhubungan Provinsi DKI Jakarta, yang bertanggungjawab penuh kepada Gubernur Provinsi DKI Jakarta. UPTB adalah pengelola TransJakarta yang awalnya bernama Badan Layanan Umum (BLU) TransJakarta. UPTB memiliki kewenangan atas operasional seluruh koridor dan area kerja TransJakarta serta melakukan pengawasan dan koordinasi dengan operator koridor, penyedia armada bus, dan pengelola Stasiun Pengisian Bahan Bakar Gas (SPBG). Pada tahun 2011, TransJakarta digunakan oleh 360,000 orang per hari, sebuah kenaikan 32% dari tahun sebelumnya. Ini menyebabkan pengurangan emisi CO2 sebesar lebih dari 54,000 ton, ekuivalen dengan menarik 10,000 kendaraan dari jalan. Estimasi penghematan bahan bakar oleh pengguna TransJakarta sebesar 117 milyar Rupiah. Berdasarkan kisah sukses TransJakarta ini yang mampu mengurangi emisi gas rumah kaca, United Nations Environment Program memilih Institute for Transportation and Development Policy (ITDP) untuk bekerja bersama Pemerintah Provinsi DKI Jakarta dalam mengembangkan sistem TransJakarta lebih lanjut (NYC Global Partners, 2012). Berikut adalah informasi tambahan mengenai TransJakarta yang diperoleh dari (Unit Pengelola TransJakarta Busway, 2012) dan (Institute for Transportation and Development Policy, 2014).
Gambar 2.17 Rata-rata Jumlah Penumpang TransJakarta (UPTB, 2012)
38 Tabel 2.2 Koridor dan Rute TransJakarta (UPTB, 2012) Koridor
Rute
Panjang Rute
Spesifikasi Jumlah
Jarak Antar
Halte
Halte
1
Blok M – Kota
12.9 km
20
650 m
2
Pulo Gadung – Harmoni
14 km
23
700 – 800 m
3
Kalideres – Harmoni
19 km
13
700 – 800 m
4
Pulo Gadung – Dukuh
11.85 km
17
400 – 1600 m
Atas 5
Ancol – Kp. Melayu
13.5 km
17
400 – 2250 m
6
Ragunan – Dukuh Atas
13.3 km
18
400 – 1000 m
7
Kp. Rambutan – Kp.
12.8 km
13
500 – 1500 m
Melayu 8
Lebak Bulus – Harmoni
26 km
21
500 –1500 m
9
Pinang Ranti – Pluit
28.8 km
24
500 –1500 m
10
Tanjung Priok –
19.4 km
18
500 – 1000 m
11.76 km
14
300 –1000 m
Cililitan 11
Pulo Gebang – Kp. Melayu
39
Gambar 2.18 Peta Rute TransJakarta (ITDP, 2014)
2.2.6 Sistem Koordinat Geografis Menurut Natalia et al. (2005), sistem koordinat geografis merupakan kesepakatan tata cara menentukan posisi suatu tempat di muka bumi ini. Sistem koordinat geografis terdiri dari dua komponen yang menentukan, yaitu: 1. Garis mendatar (horizontal) yang sejajar dengan garis khatulistiwa (equator) disebut garis lintang (latitude). 2. Garis dari atas ke bawah (vertikal) yang menghubungkan kutub utara dengan kutub selatan bumi dan sejajar dengan garis prime meridian disebut garis bujur (longitude).
40 Untuk membagi wilayah dunia menjadi bagian utara dan selatan, maka ditentukan sebuah garis yang tepat berada di tengah yaitu garis khatulistiwa (equatorial plane). Untuk membagi wilayah timur dan barat, ditentukan sebuah garis prime meridian yang melewati Royal Observatory, Greenwich, Inggris. Titik lintang menandakan sudut antara garis khatulistiwa (equatorial plane) dengan garis horizontal yang melintang melalui titik tersebut. Titik bujur menandakan sudut ke arah timur atau barat dari prime meridian ke meridian yang melalui titik tersebut. Garis yang melalui Royal Observatory, Greenwich, Inggris dipilih sebagai patokan dengan sudut 0° yang diakui secara internasional.
Gambar 2.19 Sistem Koordinat Geografis (Natalia et al., 2005)
2.2.7 Kelajuan Menurut Saripudin, Rustiawan, & Suganda (2007), kelajuan adalah bilangan positif yang menyatakan jarak yang ditempuh dalam selang waktu tertentu dan merupakan besaran skalar. Ketika sebuah mobil bergerak dengan kelajuan tertentu, besarnya kelajuan mobil tersebut dapat dilihat pada speedometer.
2.2.8 Global Positioning System (GPS) Menurut Pratomo (2004), Global Positioning System (GPS) adalah sistem radio navigasi dan penentuan posisi dengan menggunakan satelit yang dimiliki dan dikelola oleh Departemen Pertahanan Keamanan Amerika Serikat. Sistem ini didesain untuk memberikan posisi dan kecepatan tiga dimensi dan informasi
41 mengenai waktu secara kontinu. GPS terdiri dari tiga segmen utama: segmen angkasa (space segment) yang terdiri dari satelit-satelit GPS, segmen sistem kontrol (control segment) yang terdiri dari stasiun-stasiun pemonitor dan pengontrol satelit, dan segmen pemakai (user segment) yang terdiri dari pemakai GPS termasuk alatalat penerima dan pengolah sinyal data GPS.
Gambar 2.20 Segmen Utama Dalam GPS (Pratomo, 2004)
Unit penerima sinyal GPS mengoleksi sinyal yang dikirimkan dari sistem 24 satelit. Sistem ini bernama NAVSTAR dan dikelola oleh Departemen Pertahanan Keamanan Amerika Serikat. Setiap saat, lima sampai delapan sinyal satelit GPS dapat ditangkap oleh unit penerima sinyal GPS di permukaan bumi. Penentuan posisi dapat dilakukan dengan trilateration. Untuk menentukan posisi dengan tepat maka diperlukan tiga nilai jarak antara unit penerima sinyal GPS dengan tiga satelit GPS. Ketiga jarak tersebut membentuk lingkaran pada masingmasing satelit dengan titik potong ketiga lingkaran tersebut mendefinisikan posisi dari unit penerima sinyal GPS (United Nations, 2000: 50-51).
42
Gambar 2.21 Trilateration Menggunakan Tiga Satelit (United Nations, 2000: 51)
Perlu diketahui bahwa tingkat akurasi GPS dipengaruhi oleh beberapa hal antara lain (United Nations, 2000: 51-52): •
Teknik pengukuran dengan GPS yang dilakukan (misalnya Autonomous, WADGPS, DGPS, RTK, dll.)
•
Kondisi lingkungan (visibilitas satelit dan multipath)
•
Jumlah satelit yang terlihat
•
Geometri satelit (HDOP, GDOP, PDOP, dll.)
•
Jarak dari Reference Receiver(s) (GPS non-autonomous misalnya: WADGPS, DGPS, RTK)
•
Kondisi ionosfer
•
Kualitas penerima sinyal GPS
•
Ketersediaan selektif (selective availability, gangguan yang dihasilkan oleh Departemen Pertahanan Keamanan Amerika Serikat pada sinyal GPS)
43 2.2.9 Google Maps API Menurut Google Developers (2014), Google Maps API yang berbasis JavaScript
dalam
(maps.google.com)
penggunaannya digunakan
pada
memungkinkan
peta
halaman-halaman
digital web.
Google
Application
Programming Interface (API) ini memberikan fungsi-fungsi untuk memanipulasi peta. Google Maps API membantu developer untuk merancang aplikasi berbasis Maps. Dengan API ini aplikasi dapat dibuat pada berbagai platform seperti web, Android, iOS, server, dan GIS software.
Gambar 2.22 Google Maps (Google Developers, 2014)
2.2.10 Model-View-Controller (MVC) Menurut Pitt (2012: 1), Model-View-Controller (MVC) adalah pola desain piranti lunak yang melibatkan tiga komponen utama yang saling terhubung, umumnya digunakan dalam bahasa pemrograman PHP dengan fokus pada objectoriented programming (OOP). Tiga komponen utama tersebut dinamakan model, view, dan controller. Model adalah tempat semua logika bisnis (business logic) dari aplikasi disimpan. Business logic adalah hal tentang bagaimana aplikasi berinteraksi dengan
44 data. Jika aplikasi harus mengakses informasi dari database maka code untuk melakukannya akan disimpan dalam model. View adalah tempat semua elemen user interface dari aplikasi disimpan. View dapat berupa HTML, CSS, dan JavaScript. Semua hal yang dilihat oleh user dapat disimpan dalam view. Controller adalah komponen yang menghubungkan model dan view. Controller memisahkan business logic model dari elemen user interface view dan mengatur bagaimana aplikasi merespon interaksi user pada view. Controller adalah komponen pertama yang diakses ketika terjadi request dari aplikasi. Controller kemudian akan menyiapkan model dan view yang dibutuhkan untuk memenuhi request.
Gambar 2.23 Model-View-Controller (MVC) (Pitt, 2012: 2)
2.2.11 PHP Menurut Welling & Thomson (2005: 2), PHP adalah server-side scripting language yang didesain secara spesifik untuk web. Dalam halaman HTML, code PHP dapat ditambahkan yang akan dieksekusi setiap kali halaman tersebut dikunjungi. Code PHP tersebut akan diinterpretasikan di web server dan akan menghasilkan HTML atau output lain yang dapat dilihat oleh pengunjung. PHP adalah produk Open Source, yang artinya pengunjung memiliki akses ke source code dan dapat menggunakan, mengubah, dan mendistribusikan ulang code tersebut tanpa biaya.
45 PHP awalnya adalah singkatan dari Personal Home Page, tetapi kemudian diubah sesuai dengan konvensi penamaan GNU (Gnu’s Not Unix) rekursif sehingga sekarang adalah singkatan dari PHP Hypertext Preprocessor.
2.2.12 MySQL Menurut Welling & Thomson (2005: 3), MySQL adalah relational database management system (RDBMS) yang sangat cepat dan kuat. Basis data memungkinkan pengguna untuk menyimpan, mencari, mengurutkan, dan mengambil data secara efisien. Server MySQL mengontrol akses pada data untuk memastikan bahwa beberapa user dapat bekerja secara bersamaan, terdapat akses cepat, dan memastikan bahwa hanya user yang berwenang yang dapat memperoleh akses. MySQL menggunakan Structured Query Language (SQL), bahasa query basis data standar di seluruh dunia.
2.2.13 CodeIgniter Menurut Upton (2007: 7), CodeIgniter (CI) membantu secara lebih baik dan lebih mudah dalam penulisan code PHP. CI akan mengurangi jumlah aktual code yang diperlukan. Code PHP akan menjadi lebih mudah untuk dibaca dan diperbarui karena CI mengizinkan adanya koherensi struktur pada website. Menurut Upton (2007: 16-17), CI adalah framework yang berukuran kecil dan ringan. CI membuat pemrograman dengan bahasa PHP menjadi lebih mudah dan lebih cepat. Selain itu, dengan CI maka developer dapat menyusun website secara terstruktur dan membantu mereka untuk membuat keputusan yang berkaitan dengan arsitektur website dengan baik. CI menangani manajemen session dan cookies, akses basis data dan queries, dan aspek-aspek HTML seperti halaman, form, dan validasi entri form.
2.2.14 JavaScript Menurut Negrino & Smith (2012: 2), JavaScript adalah bahasa pemrograman yang dapat digunakan untuk menambahkan interaktivitas ke dalam suatu halaman web. JavaScript juga disebut sebagai scripting language, yang artinya JavaScript ketika digunakan untuk scripting, dapat berupa sebuah program yang terdapat secara internal pada halaman HTML atau terdapat pada file terpisah (eksternal).
46 2.2.15 jQuery Menurut Chaffer & Swedberg (2013: 8), jQuery menyediakan layer abstraksi untuk web scripting, dan oleh karena itu jQuery bermanfaat dalam hampir setiap situasi scripting. jQuery mengizinkan pengguna untuk mengakses elemen dalam dokumen, mengubah tampilan halaman web, mengubah konten dari dokumen, merespon terhadap interaksi user, melakukan animasi perubahan yang dilakukan terhadap dokumen, mengambil informasi dari server tanpa melakukan refresh pada halaman, dan menyederhanakan tugas umum JavaScript.
2.2.16 Ajax Menurut Zakas, McPeak, & Fawcett (2007: 5), Asynchronous JavaScript + XML (Ajax) adalah pendekatan terhadap interaksi web. Pendekatan ini melibatkan transmisi informasi berukuran kecil ke dan dari server untuk memberi user pengalaman penggunaan web yang paling responsif yang memungkinkan. Ajax adalah objek atau fungsi JavaScript yang dipanggil kapan pun informasi dibutuhkan dari server. Tidak seperti model tradisional yang menyediakan link ke resource lain (seperti ke halaman lain), setiap link memanggil Ajax yang menjadwal dan mengeksekusi request. Request dilakukan secara asynchronous, yang berarti bahwa eksekusi code tidak menunggu respon sebelum dilanjutkan.
2.2.17 HTML Menurut West (2013: 7-8), Hyper Text Markup Language (HTML) adalah code dasar yang menjadi fondasi setiap website dalam World Wide Web (WWW). HTML digunakan untuk marking up teks dan konten halaman lainnya dan untuk mendefinisikan bagaimana halaman web terstruktur. Halaman web dibangun dari banyak konten, seperti teks, gambar, dan video. Marking up setiap konten ini dilakukan dengan sintaks HTML. HTML juga digunakan untuk mendeskripsikan struktur halaman dan mendefinisikan setiap bagian yang berbeda (seperti header, area konten, dan footer).
47 2.2.18 CSS Menurut Pouncey & York (2011: 3), Cascading Style Sheets (CSS) adalah bahasa yang didesain untuk menggambarkan tampilan dokumen yang ditulis dalam bahasa markup seperti HTML. Dengan CSS, pengguna dapat mengontrol warna teks, gaya huruf, jarak antar paragraf, ukuran kolom, gambar atau warna latar belakang yang digunakan, dan berbagai efek visual lainnya. Keuntungan dari CSS adalah CSS yang sama dapat digunakan oleh lebih dari satu halaman, yang berarti bahwa style dari website secara keseluruhan dapat diatur tanpa harus mengubah setiap halaman secara individual.
2.2.19 Peramalan (Forecasting) Menurut Hyndman (2009: 1), peramalan (forecasting) adalah kegiatan statistik yang umum dalam bisnis untuk memberitahukan keputusan yang tepat bagi penjadwalan produksi dan transportasi, serta menyediakan panduan perencanaan strategis jangka panjang. Peramalan adalah hal tentang memprediksi masa depan seakurat mungkin dengan diberikan semua informasi yang tersedia mencakup data historis dan pengetahuan tentang kejadian masa depan yang mungkin mempengaruhi peramalan.
2.2.20 Exponential Smoothing Menurut Render, Stair, & Hanna (2012: 164-166), exponential smoothing adalah metode forecasting (peramalan) yang mudah untuk digunakan dan dapat ditangani secara efisien oleh komputer. Metode ini melibatkan penyimpanan record yang sedikit dari data lampau. Formula exponential smoothing dasar adalah sebagai berikut. New forecast = Last forecast + α (Last actual data – Last forecast) dengan α adalah sebuah bobot (konstanta smoothing) yang mempunyai nilai antara 0 dan 1, inklusif. Formula tersebut juga dapat ditulis secara matematika sebagai berikut. Fx +1 = Fx + α (Yx − Fx ) di mana Fx +1 adalah perkiraan baru (untuk indeks x + 1 ), Fx adalah perkiraan terakhir (untuk indeks x ), α adalah konstanta smoothing (0 ≤ α ≤ 1), dan Yx adalah data aktual terakhir (untuk indeks x ).
48 Konsep ini tidak kompleks. Perkiraan baru ditentukan dari perkiraan terakhir yang disesuaikan dengan pecahan error (data aktual terakhir dikurangi dengan perkiraan terakhir). Pendekatan exponential smoothing mudah untuk digunakan dan telah berhasil digunakan oleh bank, pabrik, grosir, dan organisasi lainnya. Nilai yang sesuai untuk konstanta smoothing, α , meskipun demikian, dapat membuat perbedaan antara perkiraan yang akurat dengan perkiraan yang tidak akurat. Dalam memilih nilai α , perlu diingat bahwa tujuan utamanya adalah untuk memperoleh perkiraan yang paling akurat. Berbagai nilai dari α dapat dicoba, dan satu nilai α dengan nilai mean absolute deviation (MAD) terkecil dapat dipertimbangkan untuk dipilih. Formula untuk MAD adalah sebagai berikut.
MAD =
∑ deviation n
dengan deviation = error pada satu indeks (data aktual dikurangi dengan perkiraan pada indeks yang sama). MAD adalah rata-rata dari nilai absolut deviation. MAD adalah faktor penting dalam memilih model forecasting karena MAD adalah ukuran akurasi model
forecasting untuk memperkirakan data yang baru berdasarkan pada data lampau.
2.3
Penelitian Lainnya Pada tahun 2010, Ehmke, Meisel, & Mattfeld dengan paper berjudul
“Floating Car Data Based Analysis of Urban Travel Times for the Provision of
Traffic Quality” melakukan penelitian mengenai pengoleksian data lalu lintas dengan menggunakan metode Floating Car Data (FCD). Penelitian ini didasarkan pada sistem Taxi-FCD yang dioperasikan oleh German Aerospace Center (GAC). TaxiFCD mengimplementasikan ide untuk menggunakan taksi sebagai sumber data
mobile untuk koleksi FCD. Data posisi kendaraan yang didapat dari GPS dikirimkan ke control room, di mana lintasan individual dari kendaraan didapat dari data posisi GPS. Lintasan ini diletakkan pada peta digital dan waktu perjalanan bisa ditentukan. Data tersebut kemudian digunakan untuk menggambarkan situasi lalu lintas. Penelitian yang dilakukan di Stuttgart, Jerman mendapatkan sekitar 9 juta data perjalanan setiap harinya. Sampai tahun 2010, arus lalu lintas di Stuttgart meningkat sekitar 18% ke tingkat 119 juta pengemudi per kilometer per hari kerja. Profil kelajuan kendaraan di jalan Cannstatter Straße menunjukkan bahwa kelajuan rata-
49 rata sebesar 40 km/jam menurun secara drastis pada pukul 08.00-09.00 dan pukul 17.00-18.00 waktu setempat pada setiap hari kerja kecuali hari Jumat. Pada tahun 2013, Archana & Navin dengan paper berjudul “Vehicle-Based
Traffic Monitoring Via Virtual Trip Lines” melakukan penelitian mengenai sistem pemantauan lalu lintas dengan metode Virtual Trip Lines (VTL). VTL adalah penanda geografis yang terletak pada mobile phone, yang memicu update data posisi dan kelajuan ketika kendaraan melalui VTL tersebut. Setiap kendaraan mempunyai
mobile phone yang dilengkapi dengan unit penerima sinyal GPS beserta aplikasi yang berfungsi untuk mengambil kumpulan data VTL dari server, mendeteksi adanya VTL yang telah dilalui, dan mengirim data pengukuran berdasarkan VTL tersebut ke server. Server mengumpulkan data pengukuran dari semua kendaraan dan menggunakan data tersebut untuk mengestimasi keadaan lalu lintas. Akurasi estimasi keadaan lalu lintas meningkat sebesar 7% dibandingkan dengan teknik sampling periodik dan error sebesar 5% untuk estimasi waktu perjalanan. Pada tahun 2011, Biagioni, Gerlich, Merrifield, & Eriksson dengan paper berjudul “EasyTracker: Automatic Transit Tracking, Mapping, and Arrival Time
Prediction Using Smartphones” melakukan penelitian mengenai sistem pendeteksi rute & halte, penjadwalan, dan prediksi waktu kedatangan pada halte. EasyTracker terdiri dari empat komponen utama: (a) smartphone yang terdapat pada setiap bus untuk menyediakan data posisi kendaraan, (b) pengolahan pada server yang mengubah lintasan kendaraan menjadi peta rute, jadwal, dan parameter prediksi, (c) pengolahan online pada server yang menggunakan lokasi real-time dari kendaraan untuk memproduksi prediksi waktu kedatangan, dan (d) user interface yang mengizinkan user untuk mengakses lokasi kendaraan dan prediksi waktu kedatangan. Sistematika penjadwalan yang ditawarkan adalah proses mengubah waktu kedatangan mentah pada semua halte pada rute tertentu menjadi jadwal service untuk setiap halte. Sistematika prediksi waktu kedatangan dilakukan berdasarkan sistem penjadwalan dan rata-rata waktu perjalanan dengan secara terus-menerus mengestimasi waktu kedatangan berikutnya dari sebuah kendaraan yang bekerja pada rute r menuju halte si yang diberikan estimasi jadwal dan posisi semua kendaraan lain di rute yang sama (jika tersedia). Jika tidak ada kendaraan lain di rute r yang menuju halte si, estimasi waktu kedatangan dilakukan berdasarkan waktu keberangkatan selanjutnya dari halte pertama s1 menurut jadwal yang telah diperoleh, ditambah dengan travel time yang dihitung dari sistem penjadwalan. Jika terdapat
50 kendaraan lain, maka waktu kedatangan untuk halte si diestimasi berdasarkan ratarata berpasangan waktu perjalanan antara posisi saat ini dengan si. Hasilnya, median waktu tunggu untuk penumpang berkurang secara signifikan dari 8 menit menjadi 1 menit.