11
BAB III
METODOLOGI PENELITIAN
Pada bab ini dijelaskan uraian metode yang digunakan dalam tugas akhir ini. Sistem yang dirancang berbasis aplikasi android yang digunakan untuk memonitoring kecepatan dan lokasi agar keamanan berkendara tetap terjaga, oleh karena itu dengan adanya sistem peringatan dini dapat menekan jumlah kecelakaan lalu lintas. Karena hal tersebut peneliti mengangkat judul
“perancangan smart vehicle system untuk peringatan dini resiko kecelakaan lalu lintas berdasarkan kecepatan dan pemetaan lokasi rawan kecelakaan”. Penelitian ini bertujuan untuk membuat vehicle system berbasis mobile android yang berfungsi sebagai peringatan dini resiko kecelakaan menggunakan aplikasi android. Aplikasi android ini diberi nama Vehicle System. Adapun perancangan system sebagai berikut
Gambar 3.1 Diagram Blok sistem
Dari diagram blok sistem di atas, dibagi menjadi beberapa bagian blok sistem. Bagian yang pertama adalah data kecepatan dan data lokasi dari pengguna. Data tersebut diperoleh dari hasil pembacaan GPS internal dari perangkat smartphone dan dikonversikan dengan sebuah algoritma sehingga bisa menjadi data kecepatan dan data lokasi. bagian kedua yaitu mengaplikasikan sebuah algoritma yang mengabungkan data kecepatan dan lokasi sehingga dapat menjadi sebuah informasi yang bernilai. Bagian yang ketiga yaitu sebuah keluaran dari algoritma pada bagian diagram blok sebelumnya yaitu peringatan resiko kecelakaan. Bagian yang keempat adalah sebuah tampilan antar muka yang mencakup tampilan menu utama yang menampilkan peta, kecepatan
12 pengguna, lokasi, status rawan kecelakaan dan riwayat perjalanan. Keterangan rinci dapat dilihat pada sub bab 3.2
3.1 Lokasi penelitian
Lokasi penelitian ini dilakukan di Kota Malang. Kota Malang merupakan kota yang terletak di provinsi Jawa Timur. Kota ini berada di ketinggian 440-667 meter di atas permukaan laut. Kota ini merupakan kota terbesar ke dua di Jawa Timur dan terbesar ke 12 di Indonesia.
Gambar 3.2 Peta Rawan kecelakaan Kota Malang[5]
Kota malang memiliki ruas jalan sebanyak 2960 dengan panjang jalan keseluruhan 1.027.110 meter. Jalan ini tidak termasuk ruas jalan provinsi dan negara. Kota Malang terhubung dengan jalan provinsi yang menghubungkan kota dan kabupaten di Jawa Timur. Kota Malang dihubungkan oleh Jalan Tol Pandaan- Malang yang menghubungkan Malang dengan kota besar lainya di Pulau Jawa seperti Surabaya, Semarang, Jakarta dan Banyuwangi.
13 3.2 Perancangan Software Aplikasi
Pada tahap perancangan dan pembuatan program aplikasi ini, dijelaskan pembuatan setiap program yang dijalankan pada aplikasi android. Dibutuhkan sebuah software dan hardware.pembuat aplikasi seperti Android Studio, visual studio code dan react native. React native memungkinkan pengembangan aplikasi antar platform dengan menggunakan basis kode yang sama. Adapun proses yang dijelaskan pada perancangan aplikasi adalah, perancangan user interface menu utama, perancangan algoritma system peringatan kecelakaan, pembacaan kecepatan dan lokasi jalan, dan perancangan histori perjalanan. Adapun flowchat software aplikasi sebagai berikut
Gambar 3.3 Flowchart Software Aplikasi
14 Dari flowchart di atas, langkah pertama ialah mengakses fitur GPS internal pada smartphone, untuk mendapatkan titik koordinat yang akurat. nilai kecepatan didapat dengan fungsi geolocation yang berguna untuk mendapatkan kecepatan berdasarkan titik koordinat. Untui menampilkan nama jalan digunakan fungsi geocoder untuk mendapatkan informasi naman jalan berdasarkan titik koordinat.
Algoritma resiko kecelakaan pada subflowchart di atas dijelaskan pada sub bab 3.2.2
Adapun kebutuhan software dan hardware yang dibutuhkan pada penelitian ini adalah sebagai berikut.
Table 3.1 Kebutuhan Perangkat Lunak
No Kebutuhan fungsi
1 Android OS OS untuk instalasi Apk
2 Android Studio Install JDK
3 Google Maps API key Menampilkan Maps
4 Reac Native Membangun User interface
Table 3.2 Kebutuhan Perangkat Keras
No Bahan Fungsi
1 Perangkat smartphone Media instalasi apk Android 2 Komputer leonvo core i5 Media Pembuatan Aplikasi 3 Sepeda motor Honda Vario Pengujian di jalan raya
15 3.2.1. Perancangan Antar Muka Menu Utama
Pada tampilan menu utama antar muka menu utama, terdapat tampilan Maps, informasi posisi jalan yang sedang dilalui, kecepatan yang ditempuh, notifikasi rawan kecelakaan yang meliputi status jalan dan status resiko kecelakaan, dan tombol riwayat perjalanan. Pengguna bisa melihat histori data perjalanan pada menu histori dengan data yang di tampilkan yaitu kecepatan kendaraan, lokasi dan waktu. Jalan yang berpotensi tinggi rawan kecelakaan ditandai dengan warna merah. Jalan yang berpotensi sedang rawan kecelakaan ditandai dengan warna kuning. Jalan yang cukup aman berpotensi kecelakaan di tandani dengan warna hijau.
Gambar 3.4 Perancangan User interface
Cara kerja dari interface yang dirancang yaitu ketika terjadi pergerakan pada perangkat android, maka sistem akan mendeteksi kecepatan dan lokasi dari perangkat tersebut serta menampilkan informasi yang telah deprogram sebelumnya. Adapun source code program dapat dilihat di bawah ini.
16
<View style={styles.container}>
/// untuk menampilkan map <MapView
ref={ map => { this.map = map }}
initialRegion={this.state.region}
onRegionChange={ region=> { this.setState({
region: {
...this.state.region,
latitudeDelta: region.longitudeDelta, longitudeDelta: region.longitudeDelta, },
});
} }
onRegionChangeComplete={ region => { this.setState({
region: {
...this.state.region,
latitudeDelta: region.longitudeDelta, longitudeDelta: region.longitudeDelta, },
});
} }
style={styles.container}
showsUserLocation={true}
followUserLocation={true}
maxZoomLevel={20}
provider={PROVIDER_GOOGLE}
>
Fungsi dari MapView adalah menampilkan peta ke dalam user interface dengan provider Google.
17 3.2.2 Perancangan Flowchart Resiko Kecelakaan
Alur kerja dari sistem yang bekerja menggunakan alur sesuai flowchart di bawah ini.
Gambar 3.5 Flowchart Peringatan Dini Kecelakaan
Pada flowchart di atas dapat di lihat, ada dua data masukan yaitu data kecepatan dan data lokasi. Saat data lokasi jalan sudah terbaca, sistem akan
18 mengkategorikan jalan tersebut dalam tiga kelas aman, rawan dan sangat rawan.
Ketika jalan berada pada kelas”aman” dan data kecepatan <60 km/ jam. Output dari sistem tersebut bernilai “resiko rendah” dan ketika kecepatan >=60 km/jam output dari sistem bernilai “resiko sedang”.
Ketika jalan pada kelas rawan dan data kecepatan <40 km/jam makan output bernila “resiko rendah, ketika kecepatan >=40 – 60 km/jam maka output bernilai “Resiko Sedang” dan ketika kecepatan >60 km/jam maka output bernilai
“Resiko Tinggi”.
Pada saat jalan berada pada kelas sangat rawan dan data kecepatan <40 maka output bernilai “Resiko Sedang”. Saat kecepatan >=40-60 km/jam maka output bernilai “resiko Tinggi”. Saat kecepatan >60 maka outpu bernilai “Resiko Sangat Tinggi”. Berikut adalah cuplikan source code dari algoritma yang telah dijelaskan.
this._interval = setInterval(() => {
var value= true;
var speed2 = (this.state.speed/1000)*3600;
for(var i=0;i<4;i++){
console.log(this.state.jalan[i].jalan+" & "+this.state.street);
if(this.state.jalan[i].jalan!=this.state.street){
this.setState({status:''}) }
else if(this.state.jalan[i].jalan==this.state.street){
console.log(this.state.street+' '+this.state.jalan[i].status) this.setState({condition:this.state.jalan[i].status}) }
}
console.log(this.state.condition) if(this.state.condition=='Aman'){
//console.log(this.state.speed) if(speed2<60){
song.stop();
song2.stop();
19 song3.stop();
Vibration.cancel();
//this.setState
if(this.state.modalColor!='green'||this.state.modalColor==null ||
this.state.color!='green'){
this.setState({modalVisible:true}) this.setState({modalColor:'green'}) this.setState({risk:'resiko rendah'}) }
//console.log(this.state.colorMarker) }
else if(speed2>=60){
//console.log('resiko sedang') Vibration.vibrate(PATTERN,true) song2.stop();
song3.stop();
song.play();
if(this.state.modalColor!='green'||this.state.modalColor==null ||
this.state.color!='green'){
this.setState({modalVisible:true}) this.setState({modalColor:'green'}) this.setState({risk:'resiko sedang'}) }
} }
3.2.3 Pembacaan Kecepatan
Data kecepatan diperoleh dari data perubahan longitude dan latitude GPS internal perangkat android. Geolocation.getCurrentPosition((info)merupakan code Pacakge yang digunakan untuk memperoleh longitude dan latitude yang kemudian diubah ke dalam bentuk variable mark. this.setState ({speed:Math.round (info.coords.speed) berfungsi memasukan informasi kecepatan ke dalam bentuk variable speed.
20 Geolocation.getCurrentPosition((info) => {
/// memasukkan nilai latitude longitude ke dalam variable region this.setState({
region: {
...this.state.region,
latitude: info.coords.latitude, longitude: info.coords.longitude, },
});
//Memasukkan nilai latitude longitude ke dalam variable mark this.setState({
mark: {
...this.state.mark, coordinate:{
latitude: info.coords.latitude, longitude: info.coords.longitude, }
}, });
const region = {
latitude: info.coords.latitude, longitude: info.coords.longitude, latitudeDelta: 0.02,
longitudeDelta: 0.02, };
this.map.animateToRegion(this.state.region, 10);
//memasukkan informasi kecepatan ke dalam variable speed this.setState({speed:Math.round(info.coords.speed)})
}, error => console.log(), { enableHighAccuracy: true, timeout: 20000, maximumAge: 1000 }
);
3.2.4 Pembacaan Lokasi
Fungsi dari pembacaan lokasi adaalah mengetahui di mana posisi pengguna berada. Untuk bisa mendapatkan titik lokasi yang akurat dibutuhkan
21 akses ke GPS internal pada perangkat Android dan mengambil data longitude dan latitide dengan source code berikut.
RNAndroidLocationEnabler.promptForEnableLocationIfNeeded({
interval: 10000, fastInterval: 5000, }).then((data) => { }).catch((err) => { });
Setelah akses GPS internal Android sudah didapatkan, maka digunakan sebuah Package coding untuk bisa mendapat nama Jalan dan alamat sesuai pada titik berdasarkan latitude dan longitude. Dengan Source code di bawah ini
var NY = {
lat: this.state.region.latitude, lng: this.state.region.longitude };
//Fungsi untuk mendapatkan nama jalan
Geocoder.geocodePosition(NY).then(res => { //console.log(res[0].streetName)
this.setState({address:res[0].formattedAddress}) this.setState({street:res[0].streetName}) })
.catch(err => console.log(err))
this.setState({time:Moment(Date.now()).format('YYYY-MM- DD hh:mm:ss')})
Geocoder.geocodePosition(NY) adalah perintah berfungsi menampilkan data berdasarkan latitude dan longitude. this.setState ({address:res[0]
.formattedAddress}) berfungsi menampilkan alamat lengap dari titik loasi.
this.setState ({street:res[0].streetName}) berfungsi menampilkan nama jalan.
22 3.2.5 Menu Riwayat Perjalanan
Menu riwayat perjalanan dibuat untuk mengetahui riwayat perjalanan selama pengendara memakai aplikasi. Adapun tampilan user interface dapat di lihat pada gambar di bawah ini.
Gambar 3.6 Tampilan Menu Riwayat Perjalanan
Pada menu riwayat perjalanan, menampilkan sebuah data perjalanan yang sudah dilakukan sebelumya. Adapun data yang dapat dilihat pada menu histori adalah data kecepatan, lokasi jalan dan waktu. Data tesebut tersimpan dalam penyimpanan internal pada perangkat telepon. Adapun source code sebagai berikut.
23 try {
const granted = await PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE );
if (granted === PermissionsAndroid.RESULTS.GRANTED) { console.log("Permission granted");
const dir = RNFetchBlob.fs.dirs.DocumentDir+"/datatraining.txt";
const FILE_PATH = '/storage/emulated/0/VS/datatraining.txt';
const FILE_PATH2 = '/storage/emulated/0/VS/data.txt';
RNFetchBlob.fs.appendFile(dir, '', 'utf8')
//RNFetchBlob.fs.appendFile(FILE_PATH2, '', 'utf8') }
}
Fungsi Dari PermissionsAndroid.PERMISSION.WRITE.EXTERNAL Storage untuk meminta ijin akses pada penyimpanan internal. Ketika permintaan disetujui, makan system akan membuat folder penyimpanan dan meyimpan data di dalam internal storage.
3.3 Data Acuan Pengujian
Dalam perancangan ini dilakukan pengujian pada kendaraan yang melakukan aktivitas berkendara di jalan raya. Dalam metode ini dikombinasikan antara kecepatan dan lokasi kendaraan yang telah di dapat datanya dari penelitian sebelumnya. Berikut perancangan pengujiannya:
Tabel 3.3 Pemetaan Status Tingkat Resiko Kecelakaan
Kecepatan\ststus jalan Aman Rawan Sangat rawan
<40 km/jam Resiko rendah Resiko rendah Resiko sedang 40-60 km/jam Resiko rendah Resiko sedang Resiko tinggi
>60 km/jam Resiko sedang Resiko tinggi Resiko tinggi
3.3.1 Pemetaan Uji Kecepatan
Pada penelitian yang sudah dilakukan sebelumnya, pengendara yang berkendara dengan kecepatan diatas 60 km/jam memiliki tingkat resiko kecelakaan sebesar 1,941 kali lipat dibanding berkendara dengan kecepatan
24 berkendara dengan kecepatan ≤ 60 km/jam. Kendaraan yang melaju dengan kecepatan dengan diatas 40 km/jam berpeluang meningkatkan resiko kecelakaan lalu lintas[2].
Tabel 3.4 Perancangan Pengujian[2]
Aktivitas Status Kecepatan
Berkendara
Aman 0 - 40 Km/H
Rawan kecelakaan
40 - 60 Km/H Sangat rawan kecelakaan >60 Km/H
3.3.2 Pemetaan Lokasi Rawan Kecelakaan
Berdasarkan data kerawanan kecelakaan lalu lintas yang diperoleh dari hasil analisis pada penelitian sebelumnya[5], kecelakaan lalu lintas banyak terjadi di Jalan Tlogomas dengan skor sebesar 28, Jalan Supriadi dengan skor sebesar 28 dan Jalan Ki Ageng Gribig dengan skor sebesar 32. Parameter yang digunakan untuk mengetahui daerah yang rawan kecelakan adalah parameter yang dihasilkan oleh citra worldview-2, data skunder dan data lapangan. Parameter tersebut memiliki harkat antara 1 sampai 5 yang menjadi pengaruh terhadap penyebab kecelakaan lalu lintas. Adapun parameter-parameter tersebut antara lain, radius belokan, penyebrangan jalan, perlintasan kreta api, jarak pandang bebeas, marka jalan, rambu lalu lintas, pengunaan lahan di sepanjang jalan. Adapun data kecelakaan di kota malang dari penelitian sebelumnya dan data Polresta Malang dapat di lihat pada Tabel 3.4 berikut ini.
Tabel 3.5 Lokasi Rawan Kecelakaan di kota Malang[5]
No Nama Jalan Harkat
(Skoring)
Kelas
1 Jl. Ki Ageng Gribig 32 Sangat Rawan
2 Jl. Supriadi 28 Sangat Rawan
3 Jl. Tlogomas 28 Sangat Rawan
4 Jl. Aipda Satsuit tubun 25 Rawan
5 Jl. Basuki Rahmad 21 Rawan
25
6 Jl. Bendungan Sigura-gura 24 Rawan
7 Jl. Bendungan Sutami 21 Rawan
8 Jl. Bridgent Katamso 21 Rawan
9 Jl. Brigjen Slamet Riadi 21 Rawan
10 Jl. Candi Panggung 25 Rawan
11 Jl. Galunggung 26 Rawan
12 Jl. Hasyim As’ari 23 Rawan
13 Jl. Ikan Tombro 20 Rawan
14 Jl. Jendral Ahmad Yani 22 Rawan
15 Jl. Kyai Tamin 24 Rawan
16 Jl. Kawi Atas 17 Rawan
17 Jl. Kolonel Sugiono 18 Rawan
18 Jl. Laksamana Adi Sucipto 23 Rawan
19 Jl. Letjen Sutoyo 25 Rawan
20 Jl. Mayjen Panjaitan 24 Rawan
21 Jl. Mayjen Sungkono 24 Rawan
22 Jl. Mertojoyo 23 Rawan
23 Jl. Mt. Haryono 21 Rawan
24 Jl. Panji Suroso 24 Rawan
25 Jl. Pattimura 20 Rawan
26 Jl. Raya Dieng 23 Rawan
27 Jl. Raya Kepuh 21 Rawan
28 Jl. Raya Sawojajar 25 Rawan
29 Jl. Sunan Kali Jaga 19 Rawan
30 Jl. Semeru 24 Rawan
31 Jl. Sulfat 23 Rawan
32 Jl. Sumbersari 24 Rawan
33 Jl. Sunandar P. Sudarmo 26 Rawan
34 Jl. Terusan Sulfat 20 Rawan
35 Jl. Terusan Surabaya 23 Rawan
36 Jl. Ade Irma Suryani 16 Aman
37 Jl. Arief Rahman Hakim 16 Aman
38 Jl. Arif Mugono 16 Aman
39 Jl. Arismunandar 16 Aman
40 Jl. Bunga Cengkeh 13 Aman
41 Jl. Bunga Coklat 16 Aman
42 Jl. Bandung 15 Aman
26
43 Jl. Besar Ijen 15 Aman
44 Jl. Bondowoso 16 Aman
45 Jl. Borobudur 16 Aman
46 Jl. Ciliwung 15 Aman
47 Jl. Danau Toba 16 Aman
48 Jl. Gajayana 16 Aman
49 Jl. Ijen 16 Aman
50 Jl. Jaksa Agung Suprapto 16 Aman
51 Jl. Jendral Gatot Subroto 16 Aman
52 Jl. Kahuripan 16 Aman
53 Jl. Kalpataru 12 Aman
54 Jl. Kapten Piere Tendean 16 Aman
55 Jl. Kauman 16 Aman
56 Jl. Kawi 16 Aman
57 Jl. Kedawung 12 Aman
58 Jl. Kertanegara 13 Aman
59 Jl. Kh. Ahmad Dahlan 16 Aman
60 Jl. Kh. Agus Salim 16 Aman
61 Jl. Laksamana Martadinata 16 Aman
62 Jl. Letjen S. Parman 12 Aman
63 Jl. Mayjen M. Wiyono 13 Aman
64 Jl. Merdeka Barat 16 Aman
65 Jl. Merdeka Selatan 12 Aman
66 Jl. Merdeka Timur 12 Aman
67 Jl. Merdeka Utara 16 Aman
68 Jl. Mgr. Sugiopranoto 16 Aman
69 Jl. Muharto 16 Aman
70 Jl. Pahlawan Trip 14 Aman
71 Jl. Panglima Sudirman 12 Aman
72 Jl. Pasar Besar 16 Aman
73 Jl. Pulosari 16 Aman
74 Jl. R. Tumenggung Suryo 12 Aman
75 Jl. Raden Intan 13 Aman
76 Jl. Ranugrati 12 Aman
77 Jl. Raya Langsep 13 Aman
78 Jl. Raya Tidar 16 Aman
79 Jl. Retawu 16 Aman
27
80 Jl. Soekarno Hatta 16 Aman
81 Jl. Surabaya 16 Aman
82 Jl. Terusan Kawi 14 Aman
83 Jl. Tugu 10 Aman
84 Jl. Urip Sumaharjo 16 Aman
85 Jl. Veteran 16 Aman
86 Jl. Wilis 15 Aman
87 Jl. Wr. Supratman 16 Aman
88 Jl. Yulius Usman 16 Aman
89 Jl. Zaenal Zakse 16 Aman