rancang bangun aplikasi deteksi kerusakan jalan

64
RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN MENGGUNAKAN ALGORITMA YOLO LAPORAN SKRIPSI MUHAMMAD RAFLY THARHAN 4616010024 PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA DAN KOMPUTER POLITEKNIK NEGERI JAKARTA 2020

Upload: others

Post on 16-Oct-2021

25 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

RANCANG BANGUN APLIKASI DETEKSI

KERUSAKAN JALAN MENGGUNAKAN ALGORITMA

YOLO

LAPORAN SKRIPSI

MUHAMMAD RAFLY THARHAN

4616010024

PROGRAM STUDI TEKNIK INFORMATIKA

JURUSAN TEKNIK INFORMATIKA DAN KOMPUTER

POLITEKNIK NEGERI JAKARTA

2020

Page 2: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

RANCANG BANGUN APLIKASI DETEKSI

KERUSAKAN JALAN MENGGUNAKAN ALGORITMA

YOLO

LAPORAN SKRIPSI

Dibuat untuk Melengkapi Syarat-Syarat yang Diperlukan untuk Memperoleh

Diploma Empat Politeknik

MUHAMMAD RAFLY THARHAN

4616010024

PROGRAM STUDI TEKNIK INFORMATIKA

JURUSAN TEKNIK INFORMATIKA DAN KOMPUTER

POLITEKNIK NEGERI JAKARTA

2020

Page 3: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

iii

HALAMAN PERNYATAAN ORISINALITAS

Skripsi ini adalah hasil karya saya sendiri, dan semua sumber baik yang

dikutip maupun dirujuk telah saya nyatakan dengan benar

Nama : Muhammad Rafly Tharhan

NIM : 4616010024

Tanggal : 1 September 2020

Tanda Tangan :

Page 4: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

iv

LEMBAR PENGESAHAN

Skripsi diajukan oleh:

Nama : Muhammad Rafly Tharhan

NIM : 4616010024

Program Studi : Teknik Informatika

Judul Skripsi : Rancang Bangun Aplikasi Deteksi Kerusakan Jalan

Menggunakan Algoritma YOLO

Telah diuji oleh tim penguji dalam Sidang Skripsi pada Hari Jum’at, Tanggal 28,

Bulan Agustus, Tahun 2020 dan dinyatakan LULUS.

Disahkan oleh:

Pembimbing I : Mauldy Laya, S.Kom., M.Kom. (.....................)

Penguji I :

Dr. Dewi Yanti Liliana S.Kom., M.Kom. (.....................)

Penguji II : Anggi Mardiyono, S.Kom., M.Kom. (.....................)

Penguji III : Asep Taufik Muharram, S.Kom., M.Kom. (.....................)

Page 5: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

v

KATA PENGANTAR

Segala puji dan syukur kepada kehadirat Allah SWT yang telah memberikan segala

nikmat dan karunia-Nya, sholawat dan salam selalu tercurah untuk keharibaan

junjungan semesta alam Nabi Muhammad SAW dengan demikian Laporan Skripsi

ini akhirnya dapat diselesaikan. Penulisan laporan ini dilakukan sebagai salah satu

syarat untuk mencapai gelar Diploma Empat Politeknik Negeri Jakarta. Di dalam

laporan ini, masih banyak kekurangan dalam penulisan dan penggunaan diksi kata.

Oleh karena itu, tak luput ucapan terima kasih diberikan kepada berbagai pihak

dalam memberikan bimbingan, bantuan, dan dukungan sehingga terselesaikannya

laporan ini. Oleh karena itu, ucapan terima kasih ini diberikan untuk:

a. Bapak Mauldy Laya, S.Kom., M.Kom., selaku dosen pembimbing yang telah

menyediakan waktu, pikiran, dan tenaganya dalam mengarahkan penyusunan

Laporan Skripsi ini.

b. Orang tua dan keluarga yang telah memberikan bantuan berupa dukungan

moral dan material.

c. Jallu Ramadhan, Vidi Ayuningtyas, Muhammad Rafi Nugroho, Fahira

Maharani, Rio Anggara Sufilin, sahabat dan teman-teman yang tidak bisa

disebutkan satu-persatu yang telah banyak membantu dalam menyelesaikan

Laporan Skripsi ini.

Semoga Allah SWT membalas segala kebaikan semua pihak yang telah membantu.

Akhir kata, Laporan Skripsi ini diharapkan dapat bermanfaat bagi pembaca.

Depok, Juli 2020

Muhammad Rafly Tharhan

Page 6: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

vi

HALAMAN PERNYATAAN PERSETUJUAN PUBLIKASI

SKRIPSI UNTUK KEPENTINGAN AKADEMIS

Sebagai sivitas akademik Politeknik Negeri Jakarta, saya yang bertanda tangan di

bawah ini:

Nama : Muhammad Rafly Tharhan

NIM : 4616010024

Program Studi Jurusan : Teknik Informatika dan Komputer

Jenis Karya : Skripsi

Demi pengembangan ilmu pengetahuan, menyetujui untuk memberikan kepada

Politeknik Negeri Jakarta Hak Bebas Royalti Nonekslusif (Non-exclusive

Royalty-Free Right) atas karya ilmiah saya berjudul:

RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

MENGGUNAKAN ALGORITMA YOLO

beserta perangkat yang ada (jika diperlukan). Dengan Hak Bebas Royalti

Noneklusif ini Politeknik Negeri Jakarta berhak menyimpan, mengalihmedia /

format-kan, mengelola dalam bentuk pangkalan data (database), merawat, dan

mempublikasikan skripsi saya selama tetap mencantumkan nama saya sebagai

penulis / pencipta dan sebagai pemilik Hak Cipta.

Demikian pernyataan ini saya buat dengan sebenarnya.

Dibuat di : Depok, Pada tanggal : 7 Juli 2020

Yang menyatakan

(Muhammad Rafly Tharhan)

Page 7: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

vii

Rancang Bangun Aplikasi Deteksi Kerusakan Jalan Menggunakan

Algoritma YOLO

Abstrak

Jalan merupakan sarana untuk menunjang segala aktivitas masyarakat guna memenuhi

kebutuhan seperti bekerja, pendidikan, wisata, dan lain-lain. Sebagai salah satu faktor

untuk menunjang kehidupan sehari-hari, jalan seharusnya diperhatikan dan dirawat agar

tidak terjadi kerusakan, seperti halnya jalan berlubang. Mirisnya, kerusakan pada jalan

terjadi di mana-mana dan menjadi permasalahan yang serius. Menurut data dari Dinas

PUPR, dari total 458 ruas jalan di Kabupaten Bogor hanya 89 ruas jalan yang kondisinya

dalam keadaan baik. Salah satu penyebab lamanya perbaikan pada jalan karena masih

dilakukan dengan pencatatan secara manual oleh tenaga kerja manusia yang

membutuhkan waktu dua pekan untuk jalan sepanjang satu kilometer dengan tingkat

keakuratan yang masih rendah. Dari permasalahan tersebut, aplikasi WATCH OUT! hadir

yang merupakan aplikasi berbasis Android dengan tujuan untuk membantu dalam

penanganan kerusakan jalan dan masyarakat ikut berperan dengan melaporkan

keberadaan pada kerusakan jalan. Aplikasi WATCH OUT! memanfaatkan pengolahan

citra digital dengan pendekatan deep learning untuk mendeteksi kerusakan jalan secara

real-time.

Kata kunci: kerusakan jalan, Android, pengolahan citra digital, deep learning,

real-time

Page 8: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

viii

DAFTAR ISI

HALAMAN PERNYATAAN ORISINALITAS ............................................... iii

LEMBAR PENGESAHAN ................................................................................. iv

KATA PENGANTAR ........................................................................................... v

HALAMAN PERNYATAAN PERSETUJUAN PUBLIKASI SKRIPSI

UNTUK KEPENTINGAN AKADEMIS ........................................................... vi

Abstrak ................................................................................................................. vii

DAFTAR ISI ....................................................................................................... viii

DAFTAR TABEL ................................................................................................. x

DAFTAR GAMBAR ............................................................................................ xi

BAB I PENDAHULUAN ...................................................................................... 1

1.1 Latar Belakang ......................................................................................... 1

1.2 Perumusan Masalah ................................................................................ 2

1.3 Batasan Masalah ...................................................................................... 2

1.4 Tujuan dan Manfaat ................................................................................ 2

1.5 Metode Pelaksanaan ................................................................................ 3

BAB II TINJAUAN PUSTAKA ........................................................................... 5

2.1 Penelitian Terdahulu ............................................................................... 5

2.2 Rancang Bangun ...................................................................................... 5

2.3 Pengolahan Citra Digital ......................................................................... 6

2.4 Kerusakan Jalan ...................................................................................... 6

2.5 Deep Learning ........................................................................................... 7

2.6 Convolutional Neural Network (CNN) .................................................... 7

2.7 Konsep You Only Look Once (YOLO) ................................................. 10

2.8 Darknet ................................................................................................... 11

2.9 Python ..................................................................................................... 12

2.10 Tensorflow .............................................................................................. 12

2.11 Flask ........................................................................................................ 13

Page 9: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

ix

2.12 Aplikasi ................................................................................................... 14

2.13 Android ................................................................................................... 14

2.14 Software Pendukung Android ............................................................... 14

2.15 API ........................................................................................................... 17

2.16 Web Service ............................................................................................. 17

BAB III PERENCANAAN DAN REALISASI ................................................. 19

3.1 Perancangan Program Aplikasi............................................................ 19

3.1.1 Deskripsi Program Aplikasi ......................................................... 19

3.1.2 Cara Kerja Program Aplikasi ..................................................... 19

3.1.3 Rancangan Program Aplikasi ...................................................... 21

3.2 Realisasi Program Aplikasi ................................................................... 28

3.2.1 Implementasi User Interface User ............................................... 28

3.2.2 Implementasi Model Tensorflow ................................................. 35

BAB IV PEMBAHASAN .................................................................................... 39

4.1 Pengujian ................................................................................................ 39

4.2 Deskripsi Pengujian ............................................................................... 39

4.3 Prosedur Pengujian ............................................................................... 39

4.4 Data Hasil Pengujian ............................................................................. 40

4.4.1 Unit Testing .................................................................................... 40

4.4.2 Model Testing ................................................................................. 43

4.5 Analisis Data / Evaluasi ......................................................................... 46

4.5.1 Evaluasi Model .............................................................................. 46

4.5.2 Evaluasi Aplikasi ........................................................................... 47

BAB V PENUTUP ............................................................................................... 48

5.1 Kesimpulan ............................................................................................. 48

5.2 Saran ....................................................................................................... 48

DAFTAR PUSTAKA .......................................................................................... 50

RIWAYAT HIDUP PENULIS ........................................................................... 52

Page 10: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

x

DAFTAR TABEL

Tabel 1 Prosedur Pengujian .................................................................................. 39

Tabel 2 Hasil Unit Testing Aplikasi ...................................................................... 41

Tabel 3 Hasil Pengujian Pada Kelas Lubang Jalan ............................................... 44

Tabel 4 Hasil Pengujian Pada Kelas Retak Jalan .................................................. 45

Page 11: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

xi

DAFTAR GAMBAR

Gambar 1. 1 Metode waterfall ................................................................................ 3

Gambar 2. 1 Proses Convolutional Neural Network ............................................... 8

Gambar 2. 2 Convolutional Layer ........................................................................... 8

Gambar 2. 3 Pooling Layer ..................................................................................... 9

Gambar 2. 4 Fully Connected Layer ....................................................................... 9

Gambar 2. 5 Sebelum dan sesudah Dropout ......................................................... 10

Gambar 2. 6 Contoh deteksi objek ........................................................................ 11

Gambar 2. 7 Layer Darknet-53 ............................................................................. 11

Gambar 2. 8 Arsitektur Tensorflow ...................................................................... 13

Gambar 3. 1 Flowchart aplikasi ............................................................................ 20

Gambar 3. 2 Diagram use case ............................................................................. 21

Gambar 3. 3 Arsitektur YOLOV3 ......................................................................... 22

Gambar 3. 4 Contoh citra kerusakan jalan ............................................................ 22

Gambar 3. 5 Kelas untuk labeling ........................................................................ 23

Gambar 3. 6 Labeling citra ................................................................................... 23

Gambar 3. 7 Hasil labeling citra ........................................................................... 23

Gambar 3. 8 Mengaktifkan OpenCV, GPU, dan cuDNN ..................................... 24

Gambar 3. 9 Build darknet .................................................................................... 24

Gambar 3. 10 Mengatur batch, subdivisions, width, dan height ........................... 24

Gambar 3. 11 Mengatur max batches, policy, dan steps ....................................... 25

Gambar 3. 12 Mendefinisikan jumlah kelas Yolo Layer ....................................... 25

Gambar 3. 13 Mendefiniskan jumlah kelas dan backup path ............................... 25

Gambar 3. 14 generate_train.py ............................................................................ 26

Gambar 3. 15 Perintah untuk menjalankan training ............................................. 26

Gambar 3. 16 Hasil training ................................................................................. 26

Gambar 3. 17 Diagram class ................................................................................. 27

Gambar 3. 18 Splash screen aplikasi WATCH OUT! .......................................... 28

Gambar 3. 19 Halaman register ............................................................................ 28

Gambar 3. 20 Halaman login ................................................................................ 29

Page 12: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

xii

Gambar 3. 21 Halaman home................................................................................ 30

Gambar 3. 22 Menu............................................................................................... 30

Gambar 3. 23 Halaman lapor kerusakan jalan ...................................................... 31

Gambar 3. 24 Halaman home dengan informasi citra kerusakan jalan ................. 32

Gambar 3. 25 Halaman detail informasi citra kerusakan jalan ............................. 32

Gambar 3. 26 Logout dari user ............................................................................. 33

Gambar 3. 27 Halaman home admin..................................................................... 33

Gambar 3. 28 Halaman detail informasi citra kerusakan jalan ............................. 34

Gambar 3. 29 Logout dari admin .......................................................................... 34

Gambar 3. 30 Darknet Layer ................................................................................ 35

Gambar 3. 31 Darknet Block Layer ...................................................................... 35

Gambar 3. 32 YoloV3 Layer .................................................................................. 36

Gambar 3. 33 Darknet Convolutional Layer ........................................................ 36

Gambar 3. 34 Implementasi menyamakan format bobot dan dimensi.................. 37

Gambar 4. 1 Hasil pengujian data training ........................................................... 43

Gambar 4. 2 Hasil pengujian data training ........................................................... 46

Gambar 4. 3 Contoh retak jalan yang tidak terdeteksi .......................................... 46

Gambar 4. 4 Contoh retak jalan yang terdeteksi ................................................... 47

Page 13: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

1

BAB I

PENDAHULUAN

1.1 Latar Belakang

Jalan merupakan sarana untuk menunjang segala aktivitas masyarakat guna

memenuhi kebutuhan seperti bekerja, pendidikan, wisata, dan lain-lain. Sebagai

salah satu faktor untuk menunjang kehidupan sehari-hari, jalan seharusnya

diperhatikan dan dirawat agar tidak terjadi kerusakan, seperti halnya jalan

berlubang. Mirisnya, kerusakan pada jalan terjadi di mana-mana dan menjadi

permasalahan yang serius.

Ada sekitar 438.909 kilometer ruas jalan di Kabupaten Bogor yang kondisinya

masih rusak. Jumlah jarak rusak tersebut terbagi dari berbagai kategori kerusakan:

246.180 kilometer rusak sedang, 114.342 kilometer rusak ringan, dan 123.387

kilometer rusak berat dari total ruas jalan yang ada di Kabupaten Bogor sepanjang

1.748.915 kilometer. Dari total 458 ruas jalan, hanya 89 ruas yang kondisinya

dalam keadaan baik. Data dari Dinas Pekerjaan Umum dan Penataan Ruang

(PUPR) diambil dari akhir Desember 2018 hingga Mei 2019. Kerusakan permukaan

jalan berupa lubang sangat mengganggu arus transportasi darat, bahkan tidak

sedikit yang mengalami kecelakaan akibat terkena lubang jalan. Menurut Dinas

Pekerjaan Umum (DPU), salah satu penyebab lamanya perbaikan pada jalan karena

masih dilakukan dengan pencatatan secara manual oleh tenaga kerja manusia.

Pencatatan seperti ini membutuhkan waktu dua pekan untuk jalan sepanjang satu

kilometer, belum lagi tingkat keakuratan yang masih rendah.

Sistem untuk melaporkan masalah, seperti kerusakan jalan, sudah tersedia dengan

masyarakat sebagai user dalam memposting laporan. Namun, laporan tersebut

terkadang masih tidak dianggap masalah yang mendesak bagi pengelola jalan. Ini

disebabkan karena setiap laporan perlu menampilkan informasi secara visual

(Hiroya et al., 2016).

Berdasarkan penelitian yang sudah dipaparkan sebelumnya, informasi mengenai

kerusakan jalan belum ditampilkan secara visual dengan tingkat kerusakannya.

Page 14: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

2

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

Informasi yang didapatkan belum dapat menjadi landasan pengambilan keputusan

perbaikan jalan atau evaluasi mengenai jalan. Penelitian ini memiliki sasaran

membangun sebuah aplikasi deteksi kerusakan jalan menggunakan pendekatan

deep learning dan pembangunan user interface berbasis Android secara realtime.

Aplikasi ini diharapkan dapat menjadi acuan dari pengambilan keputusan perbaikan

jalan, baik dalam jangka pendek maupun jangka panjang.

1.2 Perumusan Masalah

Perumusan masalah dalam penelitian ini adalah bagaimana membangun aplikasi

deteksi kerusakan jalan menggunakan algoritma YOLO?

1.3 Batasan Masalah

Batasan masalah dalam penelitian ini sebagai berikut.

1. Sistem ini diimplementasikan pada aplikasi berbasis Android

2. Pengumpulan citra jalan diambil dari situs Kaggle

3. Kerusakan jalan berfokus pada lubang jalan dan retak jalan

1.4 Tujuan dan Manfaat

Tujuan dari penelitian ini adalah membangun aplikasi deteksi kerusakan jalan

menggunakan algoritma YOLO.

Manfaat yang diperoleh dari penelitian ini sebagai berikut.

1. Pengguna mendapatkan informasi mengenai kerusakan jalan

2. Pengguna dapat melaporkan keadaan jalan

3. Pemda dapat memutuskan penanganan lanjutan untuk perbaikan pada

kerusakan jalan

4. Pemantauan kondisi jalan secara realtime

Page 15: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

3

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

1.5 Metode Pelaksanaan

Gambar 1. 1 Metode waterfall

Berdasarkan Gambar 1.1, pengembangan sistem yang akan digunakan adalah

pengembangan metode waterfall. Metode waterfall merupakan model

pengembangan sistem informasi sistematik dan sekuensial. Metode waterfall

memiliki tahapan-tahapan sebagai berikut.

1. Requirements analysis and definition

Layanan sistem, kendala, dan tujuan ditetapkan oleh hasil konsultasi dengan

pengguna yang kemudian didefinisikan secara rinci dan berfungsi sebagai

spesifikasi sistem.

2. System and software design

Tahapan perancangan sistem mengalokasikan kebutuhan-kebutuhan sistem baik

perangkat keras maupun perangkat lunak dengan membentuk arsitektur sistem

secara keseluruhan. Perancangan perangkat lunak melibatkan identifikasi dan

penggambaran abstraksi sistem dasar perangkat lunak dan hubungannya.

3. Implementation

Pada tahap ini, perancangan perangkat lunak direalisasikan sebagai serangkaian

program atau unit program. Pengujian melibatkan verifikasi bahwa setiap unit

memenuhi spesifikasinya.

Page 16: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

4

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

4. Integration and system testing

Unit-unit individu program atau program digabung dan diuji sebagai sebuah sistem

lengkap untuk memastikan apakah sesuai dengan kebutuhan perangkat lunak atau

tidak. Setelah pengujian, perangkat lunak dapat dikirimkan ke customer.

5. Operation and maintance

Biasanya (walaupun tidak selalu), tahapan ini merupakan tahapan yang paling

panjang. Sistem dipasang dan digunakan secara nyata. Maintance melibatkan

pembetulan kesalahan yang tidak ditemukan pada tahapan-tahapan sebelumnya,

meningkatkan implementasi dari unit sistem, dan meningkatkan layanan sistem

sebagai kebutuhan baru.

Page 17: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

5

BAB II

TINJAUAN PUSTAKA

2.1 Penelitian Terdahulu

Penelitian terdahulu pernah dilakukan oleh Anggita Mahardika, Yuita Arum Sari,

dan Dewi Candra (2018) berupa membuat sistem temu kembali citra lubang jalan

aspal. Sistem temu kembali ini merupakan sistem yang berguna sebagai deteksi

kerusakan jalan berdasarkan tingkat kerusakannya. Penelitian ini memanfaatkan

ekstrasi fitur tekstur Gray Level Co-occourrence Matrix (GLCM). Fitur yang

digunakan sebanyak 52 fitur yang berasal dari 13 fitur dengan sudut 0°, 45°, 90°,

dan 135°. Dari 52 fitur tersebut dilakukan seleksi fitur menggunakan metode

Wrapper dan CFS (Correlation Based Feature Selection).

Penelitian yang dilakukan oleh Prima Yusuf Budiarto dan Sukitno (2017) dengan

judul ”Deteksi Objek Lubang pada Citra Jalan Raya menggunakan Pengolahan

Citra Digital” dengan memanfaatkan perhitungan menggunakan jaringan saraf

tiruan. Penelitian ini mengimplementasikan jaringan saraf tiruan backpropagation

dan pengolahan citra.

Penelitian dengan memanfaatkan deep learning pernah dilakukan oleh Vishal

Mandal, Lan Uong, dan Yaw Adu-Gyamfi (2019) untuk otomasi kerusakan jalan.

Penelitian ini menggunakan sistem analisis yang berbasis pada YOLO v2 deep

learning framework. Sistemnya dilatih menggunakan 7.240 gambar yang diperoleh

dari kamera ponsel dan diuji pada 1.813 gambar jalan. Harapan dari penerapan studi

ini dapat membantu mengindentifikasikan anomali jalan yang membutuhkan

perbaikan segera.

2.2 Rancang Bangun

Rancang bangun adalah suatu istilah umum untuk membuat atau mendesain suatu

objek dari awal pembuatan sampai akhir pembuatan. Rancang bangun berawal dari

kata desain yang artinya perancangan, rancang, desain, bangun. Sedangkan

Page 18: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

6

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

merancang artinya mengatur, mengerjakan, atau melakukan sesuatu dan

perancangan artinya proses, cara, perbuatan merancang.

Dapat disimpulkan arti kata desain adalah proses, cara, perbuatan dengan mengatur

segala sesuatu sebelum bertindak atau merancang. Rancang bangun adalah

kemampuan untuk membuat beberapa alternatif pemecahan masalah. Adapun dari

pendapat lain rancang bangun adalah spesifikasi secara umum dan terinci dari

pemecahan masalah berbasis komputer yang telah dipilih selama tahap analisis

(Ariansyah et al., 2017).

2.3 Pengolahan Citra Digital

Pengolahan citra bertujuan memperbaiki kualitas citra agar mudah diinterpretasi

oleh manusia atau mesin (dalam hal ini komputer). Teknik-teknik pengolahan citra

mentransformasikan citra menjadi citra lain. Jadi, masukannya adalah citra dan

keluarannya juga citra, namun citra keluaran mempunyai kualitas lebih baik

daripada citra masukan (Umam & Negara, 2016).

Salah satu library yang mendukung pengembangan pengolahan citra yang cukup

populer adalah OpenCV. OpenCV (Open Source Computer Vision Library) adalah

open source computer vision dan library perangkat lunak machine learning.

OpenCV dibangun untuk menyediakan infastruktur umum pada aplikasi computer

vision.

2.4 Kerusakan Jalan

Kerusakan jalan merupakan masalah yang sering dijumpai. Banyak ruas jalan di

kota besar dengan kondisi rusak atau sedang dalam proses mengalami kerusakan.

Kondisi demikian merupakan masalah bagi hampir setiap kota besar di Indonesia.

Ruas jalan dengan kerusakan kecil sering tidak mendapat perhatian sehingga

kerusakan tersebut semakin parah dan mengakibatkan kapasitas jalan menjadi

berkurang. Diperlukan suatu cara untuk mendeteksi kerusakan jalan sebelum

kerusakan tersebut menjadi parah. Upaya tersebut dapat dilakukan dengan

mengadakan pemeriksaan kondisi jalan secara periodik (Angreni et al., 2019).

Page 19: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

7

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

2.5 Deep Learning

Deep learning adalah sebuah bidang keilmuan baru dalam bidang machine

learning. Deep learning memiliki kemampuan yang sangat baik dalam visi

computer. Salah satunya adalah pada kasus klasifikasi objek pada citra. Dengan

mengimplemantasikan salah satu metode machine learning yang dapat digunakan

untuk klasifikasi citra objek, yaitu Convolution Neural Network (CNN) (Marifatul

Azizah et al., 2018).

Metode pendekatan deep learning mengklasifikasi data dalam dua sesi, yaitu sesi

training dan testing. Pada sesi training mempelajari ekstrasi fitur dari setiap data

supaya bisa membedakan suatu label dengan label yang lain. Pada sesi testing data-

data yang diuji dapat dianalisis dari hasil sesi training.

Ada beberapa framework yang mendukung pengembangan aplikasi berbasis deep

learning, salah satunya yang sangat populer adalah Tensorflow. Tensorflow

adalah sebuah framework komputasional untuk membuat model machine

learning. TensorFlow menyediakan berbagai toolkit yang memungkinkan untuk

membuat model sesuai dengan tingkat abstraksi user.

2.6 Convolutional Neural Network (CNN)

Convolutional Neural Network merupakan salah satu jenis neural network yang

biasanya digunakan dalam pengolahan data image. Konvolusi atau biasa yang

disebut dengan convolution adalah matriks yang memiiki fungsi melakukan filter.

Convolutional Neural Network memiliki beberapa layer yang difungsikan untuk

melakukan filter pada setiap prosesnya. Prosesnya disebut dengan proses training.

Pada proses training terdapat 3 tahapan, yaitu Convolutional Layer, Pooling Layer,

dan Fully Connected Layer (Santoso & Ariyanto, 2018).

Page 20: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

8

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

Gambar 2. 1 Proses Convolutional Neural Network

1. Convolutional Layer

Seluruh data yang menyentuh lapisan konvolusional akan mengalami proses

konvolusi. Lapisan akan mengkonversi setiap filter ke seluruh bagian data masukan

dan menghasikan sebuah activation map atau feature map 2D. Filter yang terdapat

pada Convolutional Layer memiliki panjang, tinggi (pixels) dan tebal sesuai dengan

channel data masukan. Setiap filter akan mengalami pergeseran dan operasi “dot”

antara data masukan dan nilai dari filter. Lapisan konvolutional secara signifikan

mengalami kompleksitas model melalui optimalisasi outputnya. Hal ini

dioptimalkan melalui tiga parameter: depth, stride, dan pengaturan zero padding.

Gambar 2. 2 Convolutional Layer

2. Pooling Layer

Pooling Layer merupakan tahap setelah Convolutional Layer. Pooling Layer terdiri

dari sebuah filter dengan ukuran dan stride tertentu. Setiap pergeseran akan

ditentukan oleh jumlah stride yang akan digeser pada seluruh area feature map atau

Page 21: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

9

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

activation map. Dalam penerapannya, Pooling Layer yang biasa digunakan adalah

Max Pooling dan Average Pooling.

Gambar 2. 3 Pooling Layer

3. Fully Connected Layer

Feature map yang dihasilkan oleh tahap sebelumnya berbentuk multidimensional

array. Sehingga, Sebelum masuk pada tahap Fully Connected Layer, Feature Map

tersebut akan melalui proses “flatten” atau reshape. Proses flatten menghasilkan

sebuah vektor yang akan digunakan sebagai input dari Fully Connected Layer.

Fully Connected Layer memiliki beberapa Hidden Layer, Action Function, Output

Layer, dan Loss Function.

Gambar 2. 4 Fully Connected Layer

4. Dropout

Dropout merupakan salah satu usaha untuk mencegah terjadinya overfitting dan

juga mempercepat proses learning. Overfitting adalah kondisi dimana hampir

semua data yang telah melalui proses training mencapai persentase yang baik,

tetapi terjadi ketidaksesuaian pada proses prediksi. Dalam sistem kerjanya, Dropout

Page 22: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

10

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

menghilangkan sementara suatu neuron yang berupa Hidden Layer maupun Visibe

Layer yang berada didalam jaringan.

Gambar 2. 5 Sebelum dan sesudah Dropout

2.7 Konsep You Only Look Once (YOLO)

You Only Look Once (Yolo) adalah sebuah algoritma yang dikembangkan untuk

mendeteksi sebuah objek secara real-time. Sistem pendeteksian yang dilakukan

adalah dengan menggunakan repurpose classifier atau localizer untuk melakukan

deteksi. Sebuah model diterapkan pada sebuah citra di beberapa lokasi dan skala.

Daerah dengan citra yang diberi score paling tinggi akan dianggap sebagai sebuah

pendeteksian.

Yolo menggunakan pendekatan jaringan saraf tiruan (JST) untuk mendeteksi objek

pada sebuah citra. Jaringan ini membagi citra menjadi beberapa wilayah dan

memprediksi setiap kotak pembatas dan probabilitas untuk setiap wilayah. Kotak-

kotak pembatas ini kemudian dibandingkan dengan setiap probabilitas yang

diprediksi. Yolo memiliki beberapa kelebihan dibandingkan dengan sistem yang

berorientasi pada classifier, terlihat dari seluruh citra pada saat dilakukan test

dengan prediksi yang diinformasikan secara global pada citra. Hal tersebut juga

membuat prediksi dengan sintesis jaringan saraf ini tidak seperti sistem

RegionConvolutional Neural Network (R-CNN) yang membutuhkan ribuan untuk

sebuah citra sehingga membuat Yolo lebih cepat hingga beberapa kali daripada R-

CNN (Jupiyandi et al., 2019). Pada Gambar 2.6 merupakan contoh hasil deteksi

beberapa objek dengan menggunakan Yolo-Darknet.

Page 23: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

11

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

Gambar 2. 6 Contoh deteksi objek

2.8 Darknet

Darknet-53 adalah kisaran ketiga dari lapisan 0 sampai lapisan 74, ada 53

convolutional layers dan tingkat sisanya dikatakan sebagai resident layer (Redmon

et al., 2016), seperti Gambar 2.7 di bawah ini.

Gambar 2. 7 Layer Darknet-53

Page 24: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

12

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

2.9 Python

Python adalah bahasa pemrograman interpretatif multiguna dengan filosofi

perancangan yang berfokus pada tingkat keterbacaan kode. Python diklaim sebagai

bahasa yang menggabungkan kapabilitas, kemampuan, dengan sintaksis kode yang

sangat jelas, dan dilengkapi dengan fungsionalitas pustaka standar yang besar serta

komprehensif. Python juga didukung oleh komunitas yang besar.

Python mendukung multi paradigma pemrograman, utamanya; namun tidak

dibatasi; pada pemrograman berorientasi objek, pemrograman imperatif, dan

pemrograman fungsional. Salah satu fitur yang tersedia pada python adalah sebagai

bahasa pemrograman dinamis yang dilengkapi dengan manajemen memori

otomatis. Seperti halnya pada bahasa pemrograman dinamis lainnya, python

umumnya digunakan sebagai bahasa script meski pada praktiknya penggunaan

bahasa ini lebih luas mencakup konteks pemanfaatan yang umumnya tidak

dilakukan dengan menggunakan bahasa script. Python dapat digunakan untuk

berbagai keperluan pengembangan perangkat lunak dan dapat berjalan di berbagai

platform sistem operasi (Syahrudin & Kurniawan, 2018).

2.10 Tensorflow

Tensorflow adalah open source library untuk machine learning yang diperkenalkan

oleh Google dan mendukung beberapa bahasa pemrograman. Saat ini tensorflow

sangat berperan pada penelitian skala besar dalam machine learning dan penelitian

deep neural network yang membutuhkan komputasi paralel secara masif. Dengan

cara melakukan penggabungan atas suatu bentuk aljabar komputasi dan teknik

kompilasi optimal, pemanfaatan tensorflow akan memberikan kemudahan dalam

proses penghitungan ekspresi matematika yang majemuk, dimana permasalahan

yang kerap terjadi adalah lamanya waktu proses yang dibutuhkan dalam

menyelesaiakn bentuk perhitungan matematika (Sutjiadi & Pattiasina, 2020).

Tensorflow sendiri dapat digunakan pada semua sistem operasi. Fitur utama yang

dimiliki oleh tensorflow meliputi:

1. Pendefinisian, pengoptimalan serta proses perhitungan yang dilakukan secara

efisien dalam bentuk ekspresi matematis yang juga melibatkan bentuk

multidimensional array atau disebut dengan istilah tensors.

Page 25: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

13

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

2. Fitur pembelajaran mesin serta fitur pemrograman yang mendukung

komputasi jaringan syaraf dalam. Tensorflow dapat menarik pengetahuan

yang diberikan kedalamnya untuk dipergunakan dalam proses penyelesaian

tugas perhitungan ekpresi matematika.

3. Graphics Processing Unit (GPU) yang transparan, serta kemampuan

optimalisasi dan otomatisasi manajemen memori yang sama dengan data

yang dipakai. Dimana tensorflow memiliki kemampuan untuk menuliskan

similarity code serta dapat menjalankan dengan maksimal pada bagian

Central Processing Unit (CPU) ataupun pada bagian GPU. Lebih khususnya

lagi, tensorflow dapat mengetahui mana saja bagian perhitungan yang akan

dan harus ditransfer ke dalam GPU.

4. Large data sets serta high computing scalability pada seluruh bagiannya,

sehingga memberikan akurasi yang baik dalam pemanfaatannya. Arsitektur

umum dari Tensorflow dapat dilihat pada Gambar 2.8 di bawah ini.

Gambar 2. 8 Arsitektur Tensorflow

2.11 Flask

Flask adalah sebuah web framework yang ditulis dengan bahasa Python dan

tergolong sebagai jenis microframework. Flask berfungsi sebagai kerangka kerja

aplikasi dan tampilan dari suatu web. Dengan menggunakan Flask dan bahasa

Python, pengembang dapat membuat sebuah web yang terstruktur dan dapat

mengatur behaviour suatu web dengan lebih mudah (Irsyad, 2018).

Page 26: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

14

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

Flask termasuk pada jenis microframework karena tidak memerlukan suatu alat atau

pustaka tertentu dalam penggunaannya. Sebagian besar fungsi dan komponen

umum seperti validasi form, database, dan sebagainya tidak terpasang secara

default di Flask. Hal ini dikarenakan fungsi dan komponen-komponen tersebut

sudah disediakan oleh pihak ketiga dan Flask dapat menggunakan ekstensi yang

membuat fitur dan komponen-komponen tersebut seakan diimplementasikan oleh

Flask sendiri.

2.12 Aplikasi

Aplikasi adalah suatu program yang siap untuk digunakan yang dibuat untuk

melaksanakan suatu fungsi bagi pengguna jasa aplikasi serta penggunaan aplikasi

lain yang dapat digunakan oleh suatu sasaran yang akan dituju. Menurut kamus

computer eksekutif, aplikasi yaitu pemecahan masalah yang menggunakan salah

satu teknik pemrosesan data aplikasi yang biasanya berpacu pada sebuah komputasi

yang diinginkan maupun pemrosesan data yang diharapkan (Juansyah, 2015).

2.13 Android

Android merupakan sistem operasi yang dikembangkan untuk perangkat mobile

berbasis Linux. Pada awalnya sistem operasi ini dikembangkan oleh Android Inc.

yang kemudian dibeli oleh Google pada tahun 2005.

Dalam usaha mengembangkan Android, pada tahun 2007 dibentuklah Open

Handset Alliance (OHA), sebuah konsorsium dari beberapa perusahaan, yaitu

Texas Instruments, Broadcom Corporation, Google, HTC, Intel, LG, Marvell

Technology Group, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint

Nextel, dan T-Mobile dengan tujuan untuk mengembangkan standar terbuka untuk

perangkat mobile. Pada tanggal 9 Desember 2008, diumumkan bahwa 14 orang

anggota baru akan bergabung dengan proyek Android, termasuk PacketVideo,

ARM Holdings, Atheros Communications, Asustek Computer Inc, Garmin Ltd,

Softbank, Sony Ericsson, Toshiba Corp, dan Vodafone Group Plc (Maiyana, 2018).

2.14 Software Pendukung Android

Software yang diperlukan dalam pembuatan aplikasi Android sebagai berikut.

Page 27: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

15

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

1. Android Studio

Android Studio merupakan sebuah IDE (Integrated Development Environment)

untuk pengembangan aplikasi Android, aplikasi ini dipublikasikan oleh Google

pada tanggal 16 Mei 2013 dan tersedia secara gratis dibawah lisensi Apache 2.0,

Android Studio ini menggantikan software pengembangan Android sebelumnya,

yakni Eclipse.

2. Integrated Development Environment (IDE)

Integrated Development Environment merupakan aplikasi pengembang perangkat

lunak dengan fungsi-fungsi terintegrasi yang dibutuhkan untuk membangun sebuah

perangkat lunak seperti code editor, debugger, compiler, dan sebagainya.

3. Android Software Development Kit (Android SDK)

Android SDK adalah tools API (Application Programming Interface) yang

diperlukan untuk memulai pengembangan aplikasi pada platform Android

menggunakan bahasa pemrograman Java. Pada Android SDK ini terdiri dari

debugger, libraries, handset emulator, dokumentasi, kode contoh, dan tutorial.

SDK memungkinkan pengembang membuat aplikasi untuk platform Android SDK,

Android mencakup proyek sampel dengan kode sumber, perangkat pengembangan,

emulator, dan perpustakaan yang diperlukan untuk membangun aplikasi Android.

Aplikasi yang ditulis dengan bahasa pemrograman Java dan berjalan di Dalvik,

mesin virtual yang dirancang khusus untuk penggunaan embedded yang berjalan di

atas kernel Linux.

4. Java Development Kit (JDK)

JDK (Java Development Kit) adalah paket fungsi API untuk bahasa pemrograman

Java, meliputi Java Runtime Environment (JRE) dan Java Virtual Machine (JVM).

5. Android Virtual Device (AVD)

Android Virtual Device merupakan emulator untuk menjalankan program aplikasi

Android yang dibuat. AVD ini selanjutnya akan digunakan sebagai tempat untuk

mengetes dan menjalankan aplikasi Android tanpa harus menggunakan perangkat

Android yang sebenarnya. Sebelum menggunakan AVD, harus menentukan

Page 28: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

16

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

karakteristiknya, misalnya dalam menentukan versi Android, jenis dan ukuran

layar, serta besarnya memori.

6. Java

Java merupakan bahasa pemrograman berorientasi objek yang diperkenalkan pada

tahun 1995 oleh Sun Microsystem Inc., saat Java diciptakan dipimpin oleh James

Gosling. Bahasa pemrograman Java tercipta berawal dari sebuah perusahaan Sun

Microsystem yang ingin membuat sebuah bahasa pemrograman yang dapat berjalan

di semua device tanpa harus terikat oleh platform yang digunakan oleh device

tersebut, terlaksanalah sebuah proyek yang dipelopori oleh Patrick Naughton,

James Gosling, Mike Sheridan dan Bill Joy pada tahun 1991, maka terciptalah

bahasa pemrograman Java yang awalnya bernama “Oak”. Java adalah sebuah

teknologi yang pada teknologi tersebut mencakup Java sebagai bahasa

pemrograman yang memiliki sintaks dan aturan pemrograman tersendiri, juga

mencakup Java sebagai platform yang teknologi ini memiliki virtual machine dan

library yang diperlukan untuk menulis dan menjalankan program yang ditulis

dengan bahasa pemrograman Java, alasan terbesar dalam pembuatan bahasa

pemrograman Java adalah keinginan akan terbentuknya suatu bahasa pemrograman

yang bisa berjalan di berbagai perangkat tanpa harus terikat oleh platform, sehingga

Java ini bersifat portable dan platform independent (tidak tergantung mesin atau

sistem operasi).

7. Firebase Realtime Database

Firebase Realtime Database merupakan database yang tersimpan di cloud dan

support multiplatform seperti Android, iOS, dan Web (Sudiartha et al., 2018). Data

pada firebase akan disimpan dalam struktur JSON (Java Script Object Notation).

Beberapa kemampuan firebase yang ditawarkan ke pengguna dan pengembang

sistem:

a. Realtime database. Firebase akan melakukan proses update dan sinkronisasi

data, setiap ada data yang berubah. Sinkronisasi dilakukan dalam milidetik di

mana proses ini sebagai ganti penggunaaan permintaan HTTP biasa pada saat

request data ke server.

Page 29: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

17

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

b. Responsif walaupun saat offline. Database Realtime Firebase dilengkapi SDK

untuk menyimpan data ke disk local. Sehingga pada saat offline pengguna tetap

dapat menyimpan data ke dalam aplikasi, dan akan melakukan update data

setelah jaringan terhubung ke server. Server melakukan update data ke setiap

perangkat yang terhubung secara otomatis.

c. Firebase dapat diakses langsung dari perangkat client. Firebase menyediakan

fasilitas untuk melakukan akses langsung melalui perangkat selular atau dapat

juga melalui web browser. Aturan keamanan firebase akan melakukan validasi

data yang dapat diakses pada saat data dibaca dan ditulis.

d. Dapat dibuat skala ukuran database. Pada paket tertentu yang berbayar, Google

sebagai owner firebase memberikan keleluasaan bagi pengembang untuk

membagi penyimpanan menjadi beberapa database sesuai dengan kebutuhan.

2.15 API

API adalah sekumpulan perintah, fungsi, dan protokol yang dapat digunakan saat

membangun perangkat lunak untuk sistem operasi tertentu. API memungkinkan

programmer untuk menggunakan fungsi standar untuk berinteraksi dengan sistem

operasi. API atau Application Programming Interface juga merupakan suatu

dokumentasi yang terdiri dari antar muka, fungsi, kelas, struktur untuk membangun

sebuah perangkat lunak. (Afrianto & Atin, 2017)

Dengan adanya API, maka memudahkan seorang programmer untuk membongkar

suatu software untuk kemudian dapat dikembangkan atau diintegrasikan dengan

perangkat lunak yang lain. API dapat dikatakan sebagai penghubung suatu aplikasi

dengan aplikasi lainnya. Suatu rutin standar yang memungkinkan developer

menggunakan system function. Proses ini dikelola melalui sistem operasi.

Keunggulan dari API ini adalah memungkinkan suatu aplikasi dengan aplikasi

lainnya untuk saling berinteraksi.

2.16 Web Service

Web service merupakan suatu sistem yang dirancang untuk mendukung aktivitas

antar sistem pada suatu jaringan. Berisi kumpulan operasi yang dapat diakses

dengan jaringan, misalnya melalui internet dengan formati XML.

Page 30: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

18

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

Web service terdiri dari kumpulan fungsi dan method yang berpusat pada sebuah

server yang dapat dipanggil oleh pengguna, dimana kita dapat mengakses method-

method tersebut meskipun dengan bahasa pemrograman maupun platform yang

berbeda (Paramartha et al., 2017).

Page 31: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

19

BAB III

PERENCANAAN DAN REALISASI

3.1 Perancangan Program Aplikasi

Perancangan program aplikasi terdiri dari deskripsi program aplikasi, cara kerja

program aplikasi, dan rancangan program aplikasi. Deskripsi program aplikasi

menjelaskan tentang pemaparan mengenai aplikasi. Cara kerja program aplikasi

menjelaskan tentang alur proses sistem saat membuka aplikasi sampai selesai

penggunaan. Rancangan program aplikasi menjelaskan tentang pemodelan desain

aplikasi.

3.1.1 Deskripsi Program Aplikasi

Aplikasi citra digital kerusakan jalan yang dibuat untuk mendeteksi kerusakan jalan

yang berfokus pada lubang jalan dan retak jalan. Aplikasi ini berbasis Android yang

di dalamnya pengguna dapat melakukan capture citra pada jalan. Hasil dari capture

tersebut akan diupload kemudian diproses oleh sistem untuk mendeteksi lubang

jalan atau retak jalan yang terdapat pada citra tersebut. Pengguna juga dapat melihat

informasi hasil capture dari citra yang diupload.

3.1.2 Cara Kerja Program Aplikasi

Gambar 3.1 merupakan flowchart pada aplikasi. Saat membuka aplikasi, user

diharuskan melakukan login dengan memasukkan email dan password. Bila belum

memiliki akun, user dapat melakukan registrasi terlebih dahulu dengan

memasukkan data diri pengguna. Setelah berhasil melakukan login atau registrasi,

user ditujukan ke halaman Home. Untuk melakukan proses lapor, user memilih

menu halaman Lapor Kerusakan Jalan yang akan ditujukan ke halaman tersebut. Di

halaman Lapor Kerusakan Jalan terdapat tombol Capture Gambar yang akan

ditujukan ke kamera untuk melakukan capture terhadap citra jalan dan tombol

Ambil Dari Galeri untuk mengambil citra jalan yang sudah ada dari galeri. Hasil

citra jalan akan keluar dan tombol Upload Gambar akan muncul. Tombol Upload

Gambar ini untuk mengupload hasil citra jalan yang nantinya akan diproses oleh

Page 32: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

20

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

sistem untuk mengolah citra jalan. Setelah sistem mengolah citra jalan, informasi

mengenai citra akan ditampilkan.

Gambar 3. 1 Flowchart aplikasi

Page 33: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

21

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

3.1.3 Rancangan Program Aplikasi

1. Diagram Use Case

Gambar 3. 2 Diagram use case

Gambar 3.2 menjelaskan mengenai diagram use case pada aplikasi ini melibatkan

dua aktor, yakni user dan pemda.

a. User adalah aktor utama pada aplikasi ini. User dapat melakukan login apabila

sudah memiliki akun. Apabila belum memiliki akun, user dapat mendaftar atau

melakukan register. Jika sudah memiliki akun, user dapat melakukan capture

untuk mengambil citra jalan atau mengambil citra jalan dari galeri. User dapat

melakukan upload citra jalan dan mendapatkan informasi citra jalan tersebut.

Page 34: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

22

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

b. Pemda adalah aktor sebagai admin yang menindaklanjuti dalam penanganan

lanjutan. Sama seperti pengguna, pemda dapat melakukan login dan

mendapatkan informasi mengenai citra jalan.

2. Arsitektur Model

Gambar 3. 3 Arsitektur YOLOV3

Arsitektur model dari penelitian ini sudah disesuaikan dengan arsitektur model

YOLOV3 yang dikembangkan oleh Redmon, Divvala, Girshick, dan Farhadi.

3. Persiapan Data

Langkah pertama adalah mempersiapkan dataset citra yang dibutuhkan pada

penelitian ini. Berdasarkan batasan masalah, dataset bersumber dari situs Kaggle

dengan hanya mengambil 200 citra kerusakan jalan.

Gambar 3. 4 Contoh citra kerusakan jalan

Page 35: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

23

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

Setelah dataset citra dipersiapkan, kelas atau label perlu ditentukan pada citra. Kelas

berjumlah dua sesuai dengan batasan masalah pada penelitian ini berupa lubang

jalan dan retak jalan.

Gambar 3. 5 Kelas untuk labeling

Setelah menentukan kelas, citra yang sudah disiapkan akan masuk ke proses

labeling. Labeling dimaksudkan untuk membuat bagian-bagian yang termasuk ke

dalam kelas yang sudah dipersiapkan. Labeling citra menggunakan LabelImg yang

merupakan salah satu modul pada Python.

Gambar 3. 6 Labeling citra

Hasil dari labeling citra akan menghasilkan txt file yang berisi koordinat pada citra.

Gambar 3. 7 Hasil labeling citra

Page 36: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

24

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

Setelah labeling citra, aktifkan GPU pada device yang memerlukan beberapa

depedency, seperti OpenCV dan library untuk melakukan build Darknet-53 yang

akan digunakan untuk training model data.

Gambar 3. 8 Mengaktifkan OpenCV, GPU, dan cuDNN

Gambar 3. 9 Build darknet

Setelah melakukan build Darknet-53, selanjutnya diperlukan beberapa konfigurasi

untuk menyiapkan model. Untuk melakukan training data, perlu mengatur

banyaknya data sebanyaknya 64 batch dan mengubah subdivisions tergantung pada

device yang memadai. Pada tahap konfigurasi model pertama, perlu juga ditentukan

banyaknya data per training. Setelah itu, ubah ukuran semua citra yang ada menjadi

416x416 sesuai dengan ketentuan YoloV3.

Gambar 3. 10 Mengatur batch, subdivisions, width, dan height

Jumlah banyaknya pelatihan yang dibutuhkan bersama data perlu ditentukan.

Jumlah yang direkomendasikan oleh YoloV3 adalah 2000*jumlah kelas yang ada.

Maka didapatkan 4000 batch. Kemudian menentukan akurasi dari training model,

yaitu 80%—90%. Untuk steps minimum 4000*80% dan steps maksimum

4000*90% (Redmon et al., 2016).

Page 37: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

25

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

Gambar 3. 11 Mengatur max batches, policy, dan steps

Selanjutnya, konfigurasi jumlah kelas pada Yolo Layer dan filtering seperti pada

Gambar 3.12 dengan terdapat dua kelas dan cara menentukan filter pada layer

convolutional: (jumlah kelas+5)*3 yang berarti (2+5)*3 menghasilkan 21 untuk

filter (Redmon et al., 2016).

Gambar 3. 12 Mendefinisikan jumlah kelas Yolo Layer

Setelah konfigurasi jumlah kelas dan filtering, masuk pada tahap mendefinisikan

jumlah kelas dan backup path. Gambar 3.13 mendefinisikan kelas yang akan di-

training dan folder backup untuk menyimpan hasil dari training.

Gambar 3. 13 Mendefiniskan jumlah kelas dan backup path

Gambar 3.14 adalah file konfigurasi terakhir yang diperlukan sebelum memulai

training. File konfigurasi ini dengan file train.txt yang menahan path relatif pada

semua gambar pelatihan. Ini bermaksud untuk melakukan iterasi pada setiap

gambar dengan ekstensi jpeg untuk menjadi data train. Kemudian, melakukan

generate txt file untuk menuliskan setiap path gambar yang telah diiterasi.

Page 38: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

26

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

Gambar 3. 14 generate_train.py

Setelah semua konfigurasi telah disiapkan, lakukan training data pada model yang

sudah disiapkan seperti pada Gambar 3.15.

Gambar 3. 15 Perintah untuk menjalankan training

Hasil dari training akan masuk pada folder backup yang sudah dikonfigurasi

sebelumnya dengan menghasilkan file seperti pada Gambar 3.16.

Gambar 3. 16 Hasil training

Page 39: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

27

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

4. Diagram Class

Gambar 3. 17 Diagram class

Gambar 3.16 merupakan diagram class yang menggambarkan masing-masing class

berinteraksi dengan satu sama lain. Class yang menjadi pusat adalah class

ResponseImageRoad yang memiliki relasi agregat dengan ResultImage yang juga

memiliki relasi agregat dengan ResultDetection. Class UserInformation memiliki

class turunan, yakni Admin dan User.

Page 40: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

28

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

3.2 Realisasi Program Aplikasi

3.2.1 Implementasi User Interface User

Gambar 3. 18 Splash screen aplikasi WATCH OUT!

Splash screen pada aplikasi WATCH OUT! merupakan tampilan awal saat

membuka aplikasi.

Gambar 3. 19 Halaman register

Page 41: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

29

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

Halaman register akan tampil setelah splash screen. User yang belum memiliki

akun dapat melakukan registrasi atau mendaftar dengan memasukkan data diri

berupa nama, nomor telpon, email, dan password. Jika user sudah memiliki akun,

user dapat memilih opsi Masuk di sini yang terdapat di bagian bawah tombol daftar

agar diarahkan ke halaman login.

Gambar 3. 20 Halaman login

User yang sudah memiliki akun dapat memasukkan email dan password. Jika user

belum memiliki akun, user dapat memilih opsi Daftar di sini yang terdapat di bagian

bawah tombol masuk agar diarahkan ke halaman register.

Page 42: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

30

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

Gambar 3. 21 Halaman home

Halaman home nantinya akan menampilkan informasi mengenai citra kerusakan

jalan. Data Masih Kosong... bermaksud belum adanya informasi citra kerusakan

jalan yang masuk.

Gambar 3. 22 Menu

Page 43: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

31

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

Terdapat tiga menu utama, yakni halaman home, halaman lapor kerusakan jalan,

dan keluar.

Gambar 3. 23 Halaman lapor kerusakan jalan

User dapat capture citra kerusakan jalan dengan memilih tombol Capture Gambar

atau mengambil citra yang sudah ada dari galeri dengan memilih tombol Ambil

Dari Galeri dan mengupload hasil capture tersebut dengan memilih tombol Upload

Gambar yang secara otomatis akan muncul setelah capture citra.

Page 44: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

32

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

Gambar 3. 24 Halaman home dengan informasi citra kerusakan jalan

Setelah user mengupload, halaman home akan tampil kembali dengan

menampilkan list hasil upload citra kerusakan jalan.

Gambar 3. 25 Halaman detail informasi citra kerusakan jalan

User dapat melihat detail mengenai informasi citra kerusakan jalan dengan memilih

list yang terdapat pada halaman home.

Page 45: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

33

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

Gambar 3. 26 Logout dari user

Saat user ingin logout, akan ada pesan terlebih dahulu sebagai pemberitahuan untuk

logout.

Gambar 3. 27 Halaman home admin

Admin dapat masuk ke halaman home dengan login pada halaman login yang sama

dengan user. Pada halaman home, admin mendapatkan list informasi mengenai

kerusakan citra jalan yang diupload oleh user.

Page 46: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

34

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

Gambar 3. 28 Halaman detail informasi citra kerusakan jalan

Admin dapat melihat detail mengenai informasi citra kerusakan jalan dengan

memilih list yang terdapat pada halaman home admin. Admin juga dapat

melakukan tindakan dengan memilih tombol antara Diterima atau Ditolak.

Gambar 3. 29 Logout dari admin

Saat admin ingin logout, akan ada pesan terlebih dahulu sebagai pemberitahuan

untuk logout.

Page 47: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

35

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

3.2.2 Implementasi Model Tensorflow

Implementasi model tensorflow bertujuan agar model dapat digunakan dengan

lebih fleksibel oleh web Flask. Impelementasi ini memiliki dua tahap: implementasi

Model YoloV3 menggunakan Tensorflow dan implementasi menyamakan Format

Bobot dan Dimensi Model dari Model Yolov3 menggunakan Tensorflow.

1. Implementasi Model Yolov3 Menggunakan Tensorflow

Layer tersusun dari Input, melakukan Darknet Convolutional Layer, dan melakukan

Darknet Block Layer. Pada Darknet Block layer, terdapat residual layer. Selanjutnya

pada Yolo Convolutional Layer dilakukan penggabungan layer dari layer

sebelumnya dengan menambahkan Darknet Convolutional Layer. Terakhir,

mengembalikan data yang berisi box prediksi dan akurasi.

Gambar 3. 30 Darknet Layer

Gambar 3. 31 Darknet Block Layer

Page 48: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

36

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

Gambar 3. 32 YoloV3 Layer

Gambar 3. 33 Darknet Convolutional Layer

Page 49: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

37

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

2. Implementasi Menyamakan Format Bobot dan Dimensi Model Dari

Model Yolov3 Menggunakan Tensorflow

Gambar 3. 34 Implementasi menyamakan format bobot dan dimensi

Menyamakan format bobot dan dimensi dilakukan agar nilai bobot dan dimensi dari

model menjadi sesuai sehingga nilai bias yang dihasilkan menjadi kecil. Kemudian

Page 50: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

38

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

melakukan normalisasi untuk menormalkan lapisan input dengan memusatkan

kembali dan penskalaan ulang. Hal ini diperlukan untuk meningkatkan kecepatan,

kinerja, dan stabilitas dari model.

Page 51: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

39

BAB IV

PEMBAHASAN

4.1 Pengujian

Pengujian adalah suatu tahapan yang dirancang untuk memastikan kualitas dari

program sehingga dapat berjalan dengan semestinya dan memastikan program agar

tidak melakukan hal yang tidak diharapkan.

4.2 Deskripsi Pengujian

Pengujian sistem aplikasi pengolahan citra digital kerusakan jalan dilakukan

melalui pengujian sistem untuk mengetahui sistem dapat digunakan dan berjalan

sesuai dengan semestinya. Teknik pengujian yang digunakan adalah black box

testing. Black box testing adalah salah satu teknik pengujian yang tidak terlalu

memperhatikan struktur internal (source code) dari sistem, namun lebih kepada

menemukan kesalahan pada sistem dalam segi fungsionalitas. Selain itu, dilakukan

pengujian terhadap data menggunakan teknik Hold-Out Testing.

4.3 Prosedur Pengujian

Prosedur dari pengujian sistem dilakukan untuk menjelaskan teknik pengujian yang

digunakan pada sistem aplikasi pengolahan citra digital kerusakan jalan. Pengujian

black box meliputi semua skenario yang terdapat pada aplikasi sedangkan

pengujian data menggunakan teknik Hold-Out Testing.

Tabel 1 Prosedur Pengujian

No Item Uji Detail Pengujian Jenis

Pengujian

1 Halaman Register Mengisi semua form data diri Black Box

2 Halaman Login Mengisi email dan password Black Box

Page 52: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

40

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

No Item Uji Detail Pengujian Jenis

Pengujian

3

Halaman Home

List informasi citra kerusakan

jalan

Black Box 4 List kosong

5 Membuka Halaman Detail

6

Halaman Lapor

Kerusakan Jalan

Mengaktifkan GPS

Black Box 7 Capture citra

8 Upload citra

9

Halaman Home Admin

List informasi citra kerusakan

jalan

Black Box 10 Membuka Halaman Detail

11 Memilih tombol Diterima

atau Ditolak

12 Keluar Logout dari akun Black Box

4.4 Data Hasil Pengujian

4.4.1 Unit Testing

Metode pengujian yang dilakukan adalah black box testing untuk memastikan

aplikasi berjalan dengan baik. Tabel 2 adalah hasil pengujian black box testing.

Page 53: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

41

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

Tabel 2 Hasil Unit Testing

No Detail

Pengujian

Realisasi yang

Diharapkan Hasil Pengujian Kesimpulan

1 Mengisi semua

form data diri

Jika form terisi

semua, akan tampil

Halaman Home.

Jika tidak, akan

tampil peringatan

untuk mengisi form

yang tidak terisi

Jika form terisi

semua, akan tampil

Halaman Home.

Jika tidak, akan

tampil peringatan

untuk mengisi form

yang tidak terisi

Sesuai

2 Mengisi email

dan password

Jika form terisi

semua, akan tampil

Halaman Home.

Jika tidak, akan

tampil peringatan

untuk mengisi form

yang tidak terisi

Jika form terisi

semua, akan tampil

Halaman Home.

Jika tidak, akan

tampil peringatan

untuk mengisi form

yang tidak terisi

Sesuai

3

List informasi

citra kerusakan

jalan

Menampilkan list

informasi citra

kerusakan jalan

berupa citra,

kerusakan jalan,

dan persentase

Menampilkan list

informasi citra

kerusakan jalan

berupa citra,

kerusakan jalan,

dan persentase

Sesuai

4 List kosong Tidak adanya list

Tidak adanya list,

hanya

menampilkan Data

Masih Kosong...

Sesuai

Page 54: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

42

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

No Detail

Pengujian

Realisasi yang

Diharapkan Hasil Pengujian Kesimpulan

5

Membuka

Halaman

Detail

Menampilkan

detail informasi

beruapa citra,

kerusakan jalan,

persentase, lokasi,

dan status

Menampilkan

detail informasi

beruapa citra,

kerusakan jalan,

persentase, lokasi,

dan status

Sesuai

6 Mengaktifkan

GPS

Dapat menemukan

current location

Dapat menemukan

current location Sesuai

7 Capture citra

Kamera terbuka

dan dapat

melakukan capture

citra

Kamera terbuka

dan dapat

melakukan capture

citra

Sesuai

8 Upload citra

Citra dapat

diupload dan akan

muncul pada list

informasi yang ada

di halaman home

Citra dapat

diupload dan akan

muncul pada list

informasi yang ada

di halaman home

Sesuai

9

List informasi

citra kerusakan

jalan

Menampilkan list

informasi citra

kerusakan jalan

berupa citra,

kerusakan jalan,

dan persentase

Menampilkan list

informasi citra

kerusakan jalan

berupa citra,

kerusakan jalan,

dan persentase

Sesuai

10

Membuka

Halaman

Detail

Menampilkan

detail informasi

beruapa citra,

Menampilkan

detail informasi

beruapa citra,

Sesuai

Page 55: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

43

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

No Detail

Pengujian

Realisasi yang

Diharapkan Hasil Pengujian Kesimpulan

kerusakan jalan,

persentase, lokasi,

status, dan tombol

Diterima & Ditolak

kerusakan jalan,

persentase, lokasi,

status, dan tombol

Diterima & Ditolak

11

Memilih

tombol

Diterima atau

Ditolak

Status akan

berubah sesuai

dengan tombol

yang dipilih

Status akan

berubah sesuai

dengan tombol

yang dipilih

Sesuai

12 Logout dari

akun

Menampilkan alert

dialog dan menuju

halaman login

Menampilkan alert

dialog dan menuju

halaman login

Sesuai

4.4.2 Model Testing

a. Pengujian Data Training

Pengujian data training dilakukan dengan cara melihat proses akhir hasil data

training. Berdasarkan pengujian tersebut, diperoleh rata-rata lossnya 0.19 atau

dibawah 50% sehingga seharusnya gambar sudah dapat terdeteksi dengan baik.

Learning rate yang digunakan adalah 0.001 yang berarti dengan learning rate kecil

sudah dapat menghasilkan data loss yang sangat sedikit sehingga lubang jalan atau

retak jalan terdeteksi dengan baik.

Gambar 4. 1 Hasil pengujian data training

b. Pengujian Data Testing

Pengujian model dilakukan dengan menggunakan teknik Hold-Out Testing. Hold-

Out Testing merupakan pengambilan data yang sebelumnya tidak pernah diolah

Page 56: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

44

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

menggunakan data training atau dalam proses pembuatan model. Jumlah data yang

diambil untuk melakukan teknik Hold-Out Testing adalah 10 data berupa gambar-

gambar lubang jalan maupun retak jalan sehingga total data testing yang diuji pada

sistem adalah 20. Threshold atau batasan yang digunakan pada pengujian data

tersebut adalah 0.5. Tabel 3 menyatakan hasil pengujian data lubang jalan yang

tidak pernah digunakan dalam proses pembuatan model.

Tabel 3 Hasil Pengujian Pada Kelas Lubang Jalan

No Kelas Gambar Kelas Hasil Prediksi Confidence Rate

1. Lubang Jalan Lubang Jalan 81.05

2. Lubang Jalan Lubang Jalan 99.56

3. Lubang Jalan Lubang Jalan 97.62

4. Lubang Jalan Lubang Jalan 99.88

5. Lubang Jalan Lubang Jalan 92.65

6. Lubang Jalan Lubang Jalan 99.68

7. Lubang Jalan Lubang Jalan 99.98

8. Lubang Jalan Lubang Jalan 99.87

9. Lubang Jalan Lubang Jalan 99.62

10. Lubang Jalan Lubang Jalan 99.58

Berdasarkan Tabel 3, maka dapat disimpulkan bahwa model sudah dapat

memprediksi lubang jalan dengan baik. Confidence rate yang dihasilkan sudah

bagus atau diatas 50%. Selain itu, tidak ada gambar-gambar yang tidak terdeteksi

pada hasil pengujian lubang jalan. Pengujian lain dilakukan pada gambar-gambar

yang retak untuk memastikan bahwa retak jalan sudah terdeteksi. Jumlah data

Page 57: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

45

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

pengujian retak jalan berjumlah 10 gambar. Tabel 4 merupakan hasil pengujian

gambar retak jalan.

Tabel 4 Hasil Pengujian Pada Kelas Retak Jalan

No Kelas Gambar Kelas Hasil Prediksi Confidence Rate

1. Retak Jalan Tidak Terdeteksi -

2. Retak Jalan Tidak Terdeteksi -

3. Retak Jalan Tidak Terdeteksi -

4. Retak Jalan Tidak Terdeteksi -

5. Retak Jalan Retak Jalan 64.55

6. Retak Jalan Retak Jalan 81.0

7. Retak Jalan Tidak Terdeteksi -

8. Retak Jalan Retak Jalan 68.76

9. Retak Jalan Tidak Terdeteksi -

10. Retak Jalan Retak Jalan 97.3

Pengujian yang dilakukan pada Tabel 4 menunjukkan bahwa retak jalan belum

dapat terdeteksi dengan baik. Persentase pengujian data retak jalan menunjukkan

bahwa dari 10 data yang terdeteksi hanya 4 data. Hal ini disebabkan karena pada

saat proses labeling data, jumlah retak jalan lebih sedikit dibandingkan jumlah

lubang jalan. Setiap gambar rata-rata memiliki jumlah label lubang jalan yang lebih

banyak daripada jumlah label retak jalan.

Page 58: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

46

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

4.5 Analisis Data / Evaluasi

4.5.1 Evaluasi Model

Analisis data atau evaluasi dilakukan guna mengevaluasi hasil pengujian model.

Analisis dilakukan dengan cara melihat hasil dari 200 data training yang

mendapatkan loss sebesar 0.19 dan learning rate yang diperoleh sebesar 0.001. IoU

(Intersection over Union) pada hasil deteksi adalah 0.75 yang berarti hasil boundary

prediksi menunjukkan sebagai prediksi True Positive (IoU>50%). (Redmon et al.,

2016)

Gambar 4. 2 Hasil pengujian data training

Selanjutnya analisis dilakukan dengan membandingkan hasil dari deteksi lubang

jalan dan retak jalan. Hasil pengujian diperoleh dari tabel 3 dan 4 dengan data

berjumlah 20 yang masing-masing terbagi menjadi 10 data lubang jalan dan 10 data

retak jalan. Diperoleh hasil deteksi dengan lubang jalan memiliki tingkat

keberhasilan yang lebih tinggi dibandingkan dengan retak jalan. Sebagai contoh

pada Gambar 4.3 dan 4.4.

Gambar 4. 3 Contoh retak jalan yang tidak terdeteksi

Page 59: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

47

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

Gambar 4. 4 Contoh retak jalan yang terdeteksi

Saat pengujian Gambar 4.3 menunjukkan bahwa retak jalan tidak dapat terdeteksi

padahal di citra tersebut terdapat retak jalan, sedangkan Gambar 4.4 menunjukkan

bahwa retak jalan dapat terdeteksi dengan confidence rate mencapai 97.30%. Ini

disebabkan karena pada saat labeling, jumlah label retak jalan lebih sedikit daripada

label lubang jalan. Setiap citra rata-rata memiliki jumlah label lubang jalan yang

lebih banyak daripada jumlah label retak jalan.

4.5.2 Evaluasi Aplikasi

Evaluasi dilakukan setelah mengetahui hasil pengujian aplikasi, diperoleh dari hasil

pengujian pada tabel 2. Rumus yang digunakan untuk perhitungan keberhasilan

sebagai berikut.

𝑃𝑒𝑟𝑠𝑒𝑛𝑡𝑎𝑠𝑒 𝑘𝑒𝑏𝑒𝑟ℎ𝑎𝑠𝑖𝑙𝑎𝑛 = 𝐽𝑢𝑚𝑙𝑎ℎ 𝑘𝑒𝑏𝑒𝑟ℎ𝑎𝑠𝑖𝑙𝑎𝑛 𝑠𝑘𝑒𝑛𝑎𝑟𝑖𝑜

𝐽𝑢𝑚𝑙𝑎ℎ 𝑠𝑒𝑙𝑢𝑟𝑢ℎ 𝑠𝑘𝑒𝑛𝑎𝑟𝑖𝑜 𝑥 100%

Skenario unit testing berjumlah 12 skenario dengan jumlah keberhasilan 12

skenario. Hasil persentase keberhasilan skenario ini sebagai berikut.

12

12 𝑥 100% = 100%

Hasil pengujian mendapatkan persentase keberhasilan 100%. Persentase ini

menunjukkan bahwa fungsional aplikasi dapat berjalan baik dengan informasi yang

ditampilkan berdasarkan hasil deteksi capture.

Page 60: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

48

BAB V

PENUTUP

5.1 Kesimpulan

Berdasarkan tujuan dari penelitian ini, membangun aplikasi deteksi kerusakan jalan

menggunakan algoritma YOLO telah berhasil dibuat. Pada penelitian ini juga telah

dilakukan pengujian berupa pengujian model dan pengujian aplikasi, dapat

disimpulkan sebagai berikut.

a. Aplikasi pengolahan citra digital kerusakan jalan memiliki model dengan

tingkat akurasi 100% untuk mendeteksi lubang jalan sedangkan dengan tingkat

akurasi 40% untuk mendeteksi retak jalan. Hal ini menandakan bahwa model

lubang jalan sudah berjalan dengan baik, tetapi model retak jalan masih belum

berjalan dengan baik. Ini disebabkan karena pada saat proses labeling data,

jumlah retak jalan lebih sedikit dibandingkan jumlah lubang jalan. Setiap

gambar rata-rata memiliki jumlah label lubang jalan yang lebih banyak

daripada jumlah label retak jalan.

b. Penelitian ini menghasilkan aplikasi pengolahan citra digital kerusakan jalan

yang dikembangkan berbasis Android sebagai bagian user interface untuk user

dan admin, pembuatan model menggunakan bahasa pemrograman Python

dengan arsitektur Model YOLOV3 dan framework Darknet-53, basis data

menggunakan Firebase Realtime Database, dan web service dengan

framework Flask untuk bagian back-end.

5.2 Saran

Berdasarkan dari pengujian model dan aplikasi, saran untuk pengembangan

aplikasi selanjutnya sebagai berikut.

a. Data yang digunakan pada penelitian ini masih terbilang sedikit. Maka,

penambahan data yang banyak, terutama retak jalan, akan mendapatkan hasil

yang lebih akurat sehingga objek dapat dikenali dengan baik.

b. Objek yang terdeteksi terkadang bukan bagian dari objek yang diinginkan. Ini

disebabkan karena masih menggunakan boundary box sebagai hasil prediksi.

Page 61: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

49

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

Dengan menggunakan metode lain dalam membuat label yang hanya memilih

bagian utama dari objek akan mempermudah dalam mengenali suatu objek

dalam hasil prediksi.

Page 62: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

50

DAFTAR PUSTAKA

Afrianto, I., & Atin, S. (2017). Rancang bangun model agregator jurnal online.

Seminar Nasional Aplikasi Teknologi Informasi (SNATi), 9–16.

Angreni, I. A., Adisasmita, S. A., Ramli, M. I., & Hamid, S. (2019). Pengaruh

Nilai K Pada Metode K-Nearest Neighbor (Knn) Terhadap Tingkat Akurasi

Identifikasi Kerusakan Jalan. Rekayasa Sipil, 7(2), 63.

https://doi.org/10.22441/jrs.2018.v07.i2.01

Ariansyah, Fajriyah, & Prasetyo, F. S. (2017). Rancang Bangun Sistem Informasi

Pendataan Alumni Pada Stie Prabumulih Berbasis Website Dengan

Menggunakan Bootstrap. Jurnal Informatika, 17(1), 1–10.

https://doi.org/10.30873/ji.v17i1.972

Irsyad, R. (2018). Penggunaan Python Web Framework Flask Untuk Pemula.

https://doi.org/10.31219/osf.io/t7u5r

Juansyah, A. (2015). Pembangunan Aplikasi Child Tracker Berbasis Assisted –

Global Positioning System ( A-GPS ) Dengan Platform Android. Jurnal

Ilmiah Komputer Dan Informatika (KOMPUTA), 1(1), 1–8.

elib.unikom.ac.id/download.php?id=300375

Jupiyandi, S., Saniputra, F. R., Pratama, Y., Dharmawan, M. R., & Cholissodin, I.

(2019). Pengembangan Deteksi Citra Mobil Untuk Mengetahui Jumlah

Tempat Parkir Menggunakan Cuda Dan Modified Yolo Development of Car

Image Detection To Find Out the Number of Parking Space Using Cuda and

Modified Yolo. Jurnal Teknologi Informasi Dan Ilmu Komputer (JTIIK),

6(4), 413–419. https://doi.org/10.25126/jtiik.201961275

Hiroya Maeda, Yoshihide Sekimoto, Toshikazu Seto (2016). Lightweight road

manager: smartphone-based automatic determination of road damage status

by deep neural network. MobiGIS '16: Proceedings of the 5th ACM

SIGSPATIAL International Workshop on Mobile Geographic Information

Systems, 37–45. https://doi.org/10.1145/3004725.3004729

Maiyana, E. (2018). Pemanfaatan Android Dalam Perancangan Aplikasi

Page 63: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

51

Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta

Kumpulan Doa. Jurnal Sains Dan Informatika, 4(1), 54–65.

https://doi.org/10.22216/jsi.v4i1.3409

Marifatul Azizah, L., Fadillah Umayah, S., & Fajar, F. (2018). Deteksi Kecacatan

Permukaan Buah Manggis Menggunakan Metode Deep Learning dengan

Konvolusi Multilayer. Semesta Teknika, 21(2), 230–236.

https://doi.org/10.18196/st.212229

Paramartha, A. A. G. Y., Suryaningsih, G. K., & Aryanto, K. Y. E. (2017).

Implementasi Web Service Pada Sistem Pengindeksan Dan Pencarian

Dokumen Tugas Akhir, Skripsi, Dan Praktik Kerja Lapangan. JST (Jurnal

Sains Dan Teknologi), 5(2), 818. https://doi.org/10.23887/jst-

undiksha.v5i2.8813

Redmon, J., Divvala, S., Girshick, R., & Farhadi, A. (2016). (YOLO) You Only

Look Once. Cvpr. https://doi.org/10.1109/CVPR.2016.91

Santoso, A., & Ariyanto, G. (2018). Implementasi Deep Learning Berbasis Keras

Untuk Pengenalan Wajah. Emitor: Jurnal Teknik Elektro, 18(01), 15–21.

https://doi.org/10.23917/emitor.v18i01.6235

Sudiartha, I. K. G., Indrayana, I. N. E., & Suasnawa, I. W. (2018). Membangun

Struktur Realtime Database Firebase Untuk Aplikasi Monitoring Pergerakan

Group Wisatawan. Jurnal Ilmu Komputer, 11(2), 96.

https://doi.org/10.24843/jik.2018.v11.i02.p04

Sutjiadi, R., & Pattiasina, T. J. (2020). Deteksi Objek menggunakan Dashboard

Camera untuk Sistem Peringatan Pencegah Kecelakaan pada Mobil. Jurnal

Teknologi Informasi Dan Ilmu Komputer.

https://doi.org/10.25126/jtiik.2020712520

Syahrudin, A. N., & Kurniawan, T. (2018). Input Dan Output Pada Bahasa. Jurnal

Dasar Pemrograman Python STMIK, 1–7.

Umam, K., & Negara, B. S. (2016). Deteksi Obyek Manusia Pada Basis Data

Video Menggunakan Metode Background Subtraction Dan Operasi

Morfologi. Jurnal CoreIT: Jurnal Hasil Penelitian Ilmu Komputer Dan

Teknologi Informasi, 2(2), 31. https://doi.org/10.24014/coreit.v2i2.2391

Page 64: RANCANG BANGUN APLIKASI DETEKSI KERUSAKAN JALAN

52

RIWAYAT HIDUP PENULIS

Muhammad Rafly Tharhan

Lahir di Bogor, 7 Mei 1998. Lulus dari SDN

Bojonggede 01 pada tahun 2010, SMPN 1 Bojonggede

pada tahun 2013, dan SMAN 1 Tajurhalang pada tahun

2016. Saat ini sedang menempuh pendidikan Diploma

IV Program Studi Teknik Informatika Jurusan Teknik

Informatika dan Komputer di Politeknik Negeri Jakarta.