## JURNAL MEDIA INFORMATIKA BUDIDARMA
ISSN 2614-5278 (media cetak), ISSN 2548-8368 (media online) Available Online at https://ejurnal.stmik-budidarma.ac.id/index.php/mib DOI 10.30865/mib.v4i3.2115

## Traffic Light Signal Detector using Average Light Intensity Method
Benediktus Anindito 1 , Slamet Winardi 2 , Moh Noor Al Azam 3,*
1 Fakultas Ilmu Komputer, Program Studi Sistem Informasi, Universitas Narotama, Surabaya, Indonesia
2 Fakultas Ilmu Komputer, Program Studi Sistem Komputer, Universitas Narotama, Surabaya, Indonesia
3 Fakultas Ilmu Komputer, Program Studi Teknik Informatika, Universitas Narotama, Surabaya, Indonesia Email: 1 benediktus.anindito@narotama.ac.id, 2 slamet.winardi@narotama.ac.id 3,* noor.azam@narotama.ac.id Email Penulis Korespondensi: noor.azam@narotama.ac.id
Abstrak− Electronic Traffic Law Enforcement (ETLE) atau Penegakan Hukum Lalu Lintas berbasis Elektronik adalah suatu cara penggunaan teknologi informasi untuk mencatat suatu pelanggaran dalam berlalu lintas. ETLE ini dikembangkan untuk mendukung  keamanan,  ketertiban,  dan  keselamatan  dalam  berlalu  lintas.  Beberapa  kota  atau  kabupaten  di  Indonesia  sudah mulai memberlakukan  ETLE ini pada beberapa  lokasi, yang  biasanya  terdapat lampu pengatur  lalu lintas  dan sering terjadi pelanggaran pada lokasi tersebut. Dalam tulisan ini diujicoba salah satu elemen dalam ETLE, yaitu detektor isyarat lampu lalu lintas yang nantinya akan dijadikan sebagai dasar apakah sebuah kendaraan melanggar lampu lalu lintas atau tidak. Detektor ini menggunakan kamera  CCTV  yang  terpasang  di lokasi  dan  dilakukan  analisa intensitas suatu  area tepat  pada lampu lalu lintas  warna  merah,  kuning,  dan  hijau.  Hasil  pengujian,  metode  ini  dapat  menentukan  kondisi  lampu  lalu  lintas  dengan ketepatan 100%.
Kata Kunci: Computer Vision, Python, OpenCV, ETLE, eTilang
Abstract− Electronic Traffic Law Enforcement (ETLE) is a way of using information technology to record a violation of traffic. This ETLE was developed to support security, order, and safety in traffic. Some cities or districts in Indonesia have started to apply this ETLE in several locations, which usually have traffic lights and frequent violations at these locations. In this paper, one of the elements in ETLE is tested, which is a traffic light signal detector, which will be used as a basis for whether a vehicle violates  a traffic light  or  not.  This  detector  uses  a  CCTV  camera mounted on  the location.  It  then  analyzed the intensity  of several image areas on the traffic lights in red, yellow, and green. From the test results, this method can determine the conditions of the traffic lights with 100% accuracy.
Keywords : Computer Vision, Python, OpenCV, ETLE, eTilang

## 1. PENDAHULUAN
Menurut  UU  no.  22/2009  tentang  lalu  lintas  dan  angkutan  jalan,  bahwa  kecelakaan  lalu  lintas  adalah  suatu peristiwa di jalan yang tidak diduga dan tidak disengaja melibatkan kendaraan dengan atau tanpa pengguna jalan lain yang mengakibatkan korban manusia dan/atau kerugian harta benda[1]. Oleh karenanya, jumlah kecelakaan lalu lintas adalah indikator utama tingkat keselamatan di jalan pada suatu wilayah.
Berdasarkan  rilis  resmi  dari  Kepolisian  Republik  Indonesia  (Polri)  dalam  berita  di  kompas  tanggal  28 Desember  2019,  angka  kecelakaan  lalu  lintas  di  Indonesia  pada  tahun  2019  meningkat  sebesar  3%  bila dibandingkan dengan tahun sebelumnya. Total kecelakaan lalu lintas pada tahun 2019 sebesar 107.500 kejadian, sementara pada tahun 2018 terjadi 103.672 kecelakaan[2].
Menurut  Hobbs  dalam  penyebab  kecelakaan lalu  lintas  dapat  dikelompokkan menjadi  tiga  faktor  utama penyebab,  yaitu  faktor  manusia  -faktor  terjadinya  kecelakaan  disebabkan  dari  pengguna  kendaraan,  misalkan mengendarai  dengan  kecepatan  tinggi,  tidak  tertib,  melanggar  rambu  lalu  lintas  dan  lain  sebagainya.  Faktor berikutnya  adalah  faktor  kendaraan,  yaitu  faktor  yang  dapat  dilihat  dari  kendaraan,  misalkan  ban meletus,  rem blong, dan lain sebagainya. Dan faktor terakhir adalah faktor lingkungan fisik jalan, faktor ini berhubungan dengan kondisi  fisik  jalan  tempat  terjadinya  kecelakaan,  misalkan  jalan  rusak,  berlubang,  tergenang  air,  gelap,  tanpa marka/rambu jalan, tikungan tajam, dan sebagainya[3].
Sementara dalam rilis resmi Polri di atas disebutkan, faktor penyebab meningkatnya kecelakaan pada tahun 2019, terbesar adalah karena kesalahan manusia[2], dan pelanggaran peraturan atau rambu-rambu lalu lintas adalah awal dari terjadinya kecelakaan dengan faktor manusia ini.
Ketidak disiplinan pengguna jalan ini sudah biasa terlihat dalam keseharian. Tidak disiplin ini berkaitan erat dengan pengawasan para penegak hukum atau dalam hal ini adalah polisi lalu lintas. Sudah menjadi rahasia umum  bahwa  saat  ada  polisi  di  jalanan  atau  saat  ada  operasi  lalu  lintas,  pengguna  jalan  akan  tertib  mematuhi peraturan.  Namun  saat  tidak  ada  polisi  yang  mengawasi,  pengguna  jalan  cenderung  akan  kembali  ke  pada kebiasaan semula, yaitu melanggar peraturan[4].
Karena  polisi  tidak  mungkin  setiap  saat  mengawasi  jalanan,  maka  peran  Teknologi  Informasi  (TI) kemudian  membantu  pengawasan.  Oleh  karenanya  kemudian  dikenalkan Electronic  Traffic  Law  Enforcement (ETLE) atau Penegakan Hukum Lalu Lintas berbasis Elektronik. ETLE ini dapat menggantikan peran polisi dalam melakukan  pengawasan  di jalanan. Jika  ada pelanggaran,  sistem ETLE  akan  memberikan informasi  pada  yang berwenang lengkap dengan bukti-bukti berupa foto dan/atau video saat pelanggaran terjadi.
Penelitian ini adalah satu bagian dari sistem ETLE. Penelitian ini berkonsentrasi pada pencarian bukti di lapangan, apakah lampu pengatur lalu lintas pada posisi isyarat lampu merah, lampu kuning, atau lampu hijau.

## JURNAL MEDIA INFORMATIKA BUDIDARMA
ISSN 2614-5278 (media cetak), ISSN 2548-8368 (media online) Available Online at https://ejurnal.stmik-budidarma.ac.id/index.php/mib DOI 10.30865/mib.v4i3.2115
Dari kondisi lampu lalu lintas yang sedang terjadi ini, nantinya sistem akan menentukan apakah kendaraan yang tertangkap kamera melanggar isyarat lampu pengatur lalu lintas atau tidak.

## 2. METODE PENELITIAN
Agar  penelitian  ini  bisa  terarah  dengan  baik,  peneliti  menggunakan  metode  penelitian  pengembangan  aplikasi seperti pada gambar 1.
Penelitian akan diawali dengan studi literatur. Kegiatan ini untuk mengetahui beberapa hal yang diperlukan dalam  penelitian  ini,  diantaranya  bagaimana  aplikasi  bisa  mengambil  data  gambar  dari  kamera,  bagaimana memproses data tersebut sehingga dapat diketahui kondisi sinyal lampu lalu lintas, dan beberapa hal yang lain.
Setelah  beberapa  hal  diketahui  dari  studi  pustaka,  maka  akan  dibuat  sebuah  purwarupa  aplikasi  untuk menguji informasi yang didapat apakah benar-benar dapat digunakan atau tidak. Pengujian purwarupa ini akan menggunakan data sekunder, yaitu gambar atau still image lampu pengatur lalulintas dalam berbagai kondisi, yang diambil dari kamera HP atau gambar yang didapat dari internet.
Jika pada purwarupa ini dapat menghasilkan informasi yang memadai, maka tahapan selanjutnya adalah mengembangkan sistem secara penuh. Sistem ini harus dapat mengambil gambar langsung dari kamera secara live dan saat  itu juga dilakukan pemrosesan gambar hingga dapat diambil kesimpulan pada saat itu lampu pengatur lalu lintas dalam kondisi merah, kuning, atau hijau.
Pengembangan sistem ini dilanjutkan dengan pengujian di lapangan dengan menggunakan data live dari Closed Circuit Television (CCTV) yang didapatkan dari salah satu kabupaten di Jawa Timur.
Pada awal pengembangan, ditentukan terlebih dahulu kriteria yang diperlukan untuk sistem deteksi sinyal lampu pengatur lalu lintas, yaitu:
1. Data yang didapatkan dari CCTV harus berupa data live dan realtime , oleh karenanya diperlukan pengambilan data secara langsung dari CCTV.
2. Pengambilan  video  menggunakan  protokol Real  Time  Streaming  Protocol (RTSP)[5]  dengan  data  dalam format H.264 sesuai dengan rekomendasi ITU[6].
3. Data  yang  didapat  dari  CCTV  akan  diproses  di  dalam  server  dengan  lama  proses  secepat-cepatnya  dan diusahakan tidak lebih dari 1 detik untuk mendapatkan kesimpulan data yang mendekati realtime di lapangan.
4. Hasil kesimpulan pemrosesan data adalah kondisi lampu yang menyala saat gambar diterima oleh sistem dan dilengkapi dengan timestamp saat gambar diterima oleh sistem.
5. Semua hasil akan disimpan di dalam server. Data kesimpulan disimpan dalam database agar mudah diakses oleh sub-sistem ETLE yang lain dan data gambar disimpan dalam bentuk file.
Hasil pengujian di lapangan akan memberikan gambaran apakah sistem deteksi sinyal lampu pengatur lalu lintas ini sudah memberikan informasi yang valid atau tidak. Jika dirasakan sistem belum memberikan hasil yang valid dengan data live di lapangan, maka pengembangan sistem akan terus dilanjutkan hingga sistem ini dinyatakan dapat diandalkan untuk mengetahui kondisi sinyal lampu pengatur lalu lintas di lapangan.
Era Internet of Things (IoT) saat ini telah merevolusi cara perangkat/benda berinteraksi antara satu dengan yang lainnya.  Yang  dahulu  sebuah  perangkat  lebih  banyak berinteraksi  dengan  manusia  sebelum  ke  perangkat yang lain, maka  dalam  era  IoT  ini perangkat  bisa  berinteraksi  dengan  banyak  perangkat lain tanpa  melibatkan manusia sama sekali[7]. Pengembangan perangkat IoT dapat menggunakan banyak macam bahasa pemrograman. Namun dengan menggunakan bahasa pemrograman  Python, pengembang sistem IoT  akan dapat  lebih interaktif dan disain peralatan Machine-to-Machine (M2M) dengan lebih komprehensif. Melalui Python -dan modul-modul pendukungnya,  aplikasi  dapat  berinteraksi  dengan  dunia,  melalui  sensor,  kamera,  media  komunikasi,  dan perangkat keras lainnya[8].
Gambar  1. Flowchart Penelitian

## JURNAL MEDIA INFORMATIKA BUDIDARMA
ISSN 2614-5278 (media cetak), ISSN 2548-8368 (media online) Available Online at https://ejurnal.stmik-budidarma.ac.id/index.php/mib DOI 10.30865/mib.v4i3.2115
Salah  satu  bidang  yang  berkembang  dalam  IoT  dewasa  ini  adalah computer  vision .  Tujuan  utama  dari computer  vision adalah  untuk  memahami  sesuatu  yang  terjadi  dalam  sebuah  gambar  atau image[9] .  Sebagai manusia, hal ini sebenarnya cukup sederhana. Tetapi untuk komputer, tugasnya menjadi sangat sulit. Jadi mengapa repot-repot menggunakan computer vision ? Karena, image ada di mana-mana! Dan secara alamiah, sebenarnya kita mengenal sesuatu juga berdasarkan pada image yang diterima oleh mata dan disimpulkan oleh otak kita. Dalam penelitian pengenalan sinyal lampu pengatur lalu lintas ini, juga akan diterapkan sebuah computer vision dalam  dalam  aplikasi  yang  mengambil image dari  kamera  pengawasan  atau surveilance .  Kamera pengawasan ini sudah tersedia, dan aplikasi penelitian ini akan mengenali kondisi sinyal lampu pengatur lalu lintas, apakah sedang dalam berwarna merah,  kuning, atau hijau. Dan seperti telah dijelaskan sebelumnya, aplikasi ini akan menggunakan bahasa pemrograman Python 3 dan modul OpenCV.

## 2.1 Real Time Streaming Protocol (RTSP)
RTSP adalah  protokol  komunikasi  yang  mengendalikan  aliran  media  kontinu  yang  disinkronkan  ( synchronized streaming media ) seperti audio dan video atau yang lebih dikenal dengan konten multimedia, pada seluruh jaringan berbasis IP.
Session RTSP  sama  sekali  tidak  terikat  dengan  koneksi  level  transportasi  seperti Transmission  Control Protocol (TCP) atau User Data Protocol (UDP). Selama session RTSP dengan TCP, klien RTSP dapat membuka dan menutup banyak koneksi transportasi ke server untuk mengeluarkan permintaan RTSP.  Namun RTSP juga memungkinkan penggunaan protokol transport tanpa koneksi seperti UDP.
Streaming yang  dikendalikan  oleh  RTSP  dapat  menggunakan Real  Time  Protocol (RTP)[10],  tetapi pengoperasian RTSP tidak tergantung pada mekanisme transportasi yang digunakan untuk membawa streaming media .  Protokol  RTSP  sengaja  dibuat  mirip  dalam  sintaks  dan  operasi  dengan Hypertext  Transfer  Protocol (HTTP),  oleh  karenanya  mekanisme  ekstensi  ke  HTTP  dapat  ditambahkan  ke  RTSP  dalam  banyak  kasus[5]. Namun tetap saja RTSP berbeda dalam sejumlah aspek penting dari HTTP[5]: a. RTSP memiliki sejumlah method baru dan menggunakan identifikasi protokol yang berbeda.
b. Server RTSP perlu mempertahankan status secara default pada beberapa kasus, berbeda dengan HTTP yang selalu bersifat stateless .
c. Baik server maupun klien dalam protokol RTSP dapat mengeluarkan permintaan.
d. RTSP didefinisikan dalam ISO 10646 (UTF-8).

## 2.2 Real Time Protocol (RTP)
RTP  adalah  protokol  yang  digunakan  untuk transportasi  dan  pengiriman  data audio/video  secara realtime[11] . Karena pengiriman data secara realtime untuk audio dan video biasanya sensitif terhadap delay , maka penggunaan protokol UDP -yang lebih ringan digunakan, lebih banyak dipakai dalam pengiriman pada Layer 4. Alur RTP pada saat mengirimkan konten adalah searah dari server ke klien.
Salah satu bagian yang menarik dari operasi RTP adalah bahwa port sumber yang digunakan oleh server saat mengirim data UDP selalu genap -walaupun ditetapkan secara dinamis. Port tujuan (mis., Port UDP tempat klien mendengarkan) dipilih oleh klien dan dikomunikasikan melalui koneksi kontrol RTSP.

## 2.3 Real Time Control Protocol (RTCP)
RTCP  adalah  protokol  pelengkap  untuk  RTP  dan  merupakan  mekanisme  berbasis  UDP  dua  arah  yang memungkinkan  klien  melakukan  komunikasi  informasi  kualitas  aliran  ke  server  yang  melayaninya[12]. Komunikasi RTCP UDP selalu menggunakan port sumber UDP satu angka lebih tinggi dari yang digunakan oleh aliran RTP yang berkorelasi dengannya. Gambar 2 menunjukkan bagaimana protokol-protokol RTSP, RTP, dan RTCP bekerja bersama.

## JURNAL MEDIA INFORMATIKA BUDIDARMA
ISSN 2614-5278 (media cetak), ISSN 2548-8368 (media online) Available Online at https://ejurnal.stmik-budidarma.ac.id/index.php/mib DOI 10.30865/mib.v4i3.2115

## 2.4 ITU-T H.264 dan Gambar Digital
H.264 adalah standar kompresi video untuk video digital definisi tinggi. H.264 juga dikenal sebagai MPEG-4 part 10 Advanced Video Coding (MPEG-4 AVC). Standar kompresi video H.264 menggunakan basis-blok, sehingga kompensasi yang mendefinisikan berupa beberapa profil (alat) dan level (bitrate dan resolusi maksimal)[6]. Format ini dapat mendukung 4K dan hingga 8K Ultra High-Definition (UHD). Codec yang  didasarkan  pada  standar  H.264 memampatkan  data  video  digital  (atau  streaming)  sehingga hanya  membutuhkan  setengah  dari  ruang  penyimpanan  -atau  kalau  dikirimkan  melalui  jaringan  dapat  berupa bandwidth  jaringan,  dari  standar  MPEG-2.  Melalui  pemampatan  ini, codec mampu  mempertahankan  kualitas video yang sama meskipun hanya menggunakan setengah dari ruang penyimpanan.
H.264 juga cukup fleksibel untuk diterapkan pada berbagai aplikasi, jaringan, dan sistem, termasuk yang dengan bit rate rendah dan tinggi, video resolusi rendah, broadcast , penyimpanan, jaringan berbasis IP, jaringan dengan  banyak  jenis  media,  seperti  internet,  MPLS,  satelit,  kabel,  dan  juga  sistem  telepon  multimedia[10]. Protokol ini sudah diadopsi secara luas dalam berbagai macam perangkat -mulai dari decoder profesional, hingga browser dan perangkat mobile .
Metode pengiriman dan pemampatan gambar di atas, pada akhirnya akan diterima oleh aplikasi sebagai sebuah rentetan kode-kode warna dasar sebuah gambar -biru (B), merah (R), dan hijau (G). kode-kode ini memiliki nilai 0 -untuk menandakan tidak ada warna tersebut sama sekali, sampai dengan 255 -yang menandakan intensitas maksimal  pada  warna  tersebut[13].  Semakin  terang  warna  dasar  itu,  maka  semakin  besar  intensitas  warna cahayanya[14]. Warna-warna itulah yang kemudian direpresentasikan oleh sistem operasi dan ditampilkan sebagai gambar yang dapat kita lihat secara visual di layar komputer.
Oleh karenanya, analisa  yang dilakukan dalam penelitian ini adalah mencari nilai intensitas cahaya pada sebuah  lokasi,  yaitu  dengan  membaca  nilai  pixel-nya.  Semakin  tinggi  nilainya,  maka  bisa  disimpulkan  bahwa intensitas cahaya  pada  koordinat tersebut  semakin terang  dan  nilai yang  paling  terang  dari  tiga  koordinat yang dianalisa (lampu warna merah, kuning, dan hijau) menandakan lampu tersebut dalam kondisi yang menyala[15].
Dalam penelitian ini, yang dilakukan adalah  akses ke kamera menggunakan  protokol RTSP, memproses gambar, dan kemudian menyimpulkan kondisi gambar tersebut,  dengan digunakan bahasa pemrograman Python 3 dan dengan bantuan modul OpenCV[16]. OpenCV adalah modul pemrosesan gambar dan video yang digunakan untuk semua jenis analisis gambar dan video[17]. Selain modul dalam pemrosesan gambar dan video, OpenCV juga dilengkapi kemampuan untuk mengambil dan mengirimkan gambar dan video, baik dari file maupun secara langsung berkoneksi jaringan melalui beberapa protokol -salah satunya dengan menggunakan protokol RTSP[18].

## 3. HASIL DAN PEMBAHASAN
Sistem deteksi sinyal lampu pengatur lalu lintas ini mengikuti urutan logis seperti pada gambar 3.
Pada  gambar  3  dapat  dilihat,  saat  pertamakali  dijalankan  aplikasi  pendeteksi  sinyal  lampu  pengatur  lalu lintas  akan  membaca setting yang  berisi  koordinat  lokasi  lampu  merah,  kuning,  dan  hijau  dalam  gambar  dan standar luasan area yang akan dilakukan analisa.
Koneksi dari aplikasi ke kamera digunakan protokol komunikasi RTSP. Pada saat koneksi RTSP berhasil dilakukan oleh aplikasi ke kamera, maka aplikasi akan request ke kamera satu buah frame gambar. Namun bila
Gambar  3. Flowchart Program

## JURNAL MEDIA INFORMATIKA BUDIDARMA
ISSN 2614-5278 (media cetak), ISSN 2548-8368 (media online) Available Online at https://ejurnal.stmik-budidarma.ac.id/index.php/mib DOI 10.30865/mib.v4i3.2115
koneksi  RTSP  ke  kamera  tidak  berhasil,  maka  aplikasi  akan  menulis  error  message  -untuk  mengetahui  status ketidak-berhasilan tersebut, dan berhenti.
Jika  aplikasi  sudah  mendapatkan  satu  frame  gambar,  aplikasi  akan  menganalisa  dengan  menggunakan metode pembandingan intensitas cahaya pada masing-masing lampu (merah, kuning, dan hijau) berdasarkan value pixel yang ada di dalam gambar. Seperti diketahui, warna pixel di dalam sebuah gambar dihasilkan dari perpaduan tiga  warna  dasar  (BRG)  .  Oleh  karenanya,  semakin  besar  nilai  pixel  tersebut  artinya  semakin  tinggi  intensitas cahaya yang diterima oleh kamera pada titik pixel tersebut. Dan karena sebuah lampu lalu lintas di dalam gambar tidak berupa satu pixel, maka dilakukan proses rata-rata pada area yang sudah ditentukan.
Cara  yang  dilakukan  untuk  mendapatkan  kesimpulan  intensitas  lampu  mana  yang  lebih  terang,  adalah dengan membaca semua nilai pixel dalam luasan area koordinat yang sudah ditentukan. Nilai yang dibaca adalah semua warna dasar -BRG. Nilai semua pixel dan semua warna dasar itu, kemudian dihitung berdasarkan rumus 1.
𝑣𝑃 = 1 𝑛 ∑ 𝑣𝑅 𝑖 +   𝑣𝐺 𝑖 +   𝑣𝐵 𝑖 𝑛−1 𝑖=0 (1)
𝑣𝑃 adalah hasil nilai pixel dalam luasan koordinat yang dianalisa. 𝑣𝑅 𝑖 adalah nilai pixel warna merah, 𝑣𝐺 𝑖 adalah nilai pixel warna hijau, dan 𝑣𝐵 𝑖 adalah nilai pixel warna biru. Iterasi ini dilakukan mulai pixel ke-0 sampai dengan pixel ke 𝑛 − 1 , sesuai dengan luasan yang dianalisa. Perhitungan ini, akan didapatkan nilai hasil sebesar 0 sampai dengan 255.
Setelah didapatkan ketiga nilai pixel masing-masing lampu lalu lintas tersebut, maka analisa terakhir adalah membandingkan  ketiganya.  Nilai  terbesar  adalah  lampu  yang  menyala  saat  gambar  itu  diambil,  dan  hasil  itu disimpan dalam sebuah table dalam database lengkap dengan timestamp -nya.
Aplikasi ini kemudian akan kembali ke awal untuk melakukan koneksi RTSP ke kamera dan mengulangi untuk kondisi lampu lalu lintas pada waktu yang berbeda.

## 4.1 Inisialisasi
Aplikasi  ini  diawali  dengan  definisi  konstanta  yang  akan  digunakan  dalam  analisa.  Karena  setiap  kamera  akan memiliki koordinat lokasi lampu pengatur lalu lintas di dalam gambar yang berbeda, maka kamera akan dikodekan dalam sebuah kode unik dan informasi koordinat yang akan dianalisa disimpan dalam table tersebut. Pada penelitian ini digunakan MySQL sebagai database server sehingga koneksi dan query informasi yang diperlukan dalam pengambilan koordinat lampu lalu lintas yang akan dianalisa seperti pada gambar 4.
Return  value dari  fungsi initProgram ini  adalah  sebuah array yang  diperlukan  untuk  melakukan  akses RTSP ke kamera (IP Address, username, dan password) serta koordinat (y, x)  pada still-image yang ditangkap dari kamera untuk masing-masing lampu merah, kuning, dan hijau.

## 4.2 Koneksi Kamera dan Pengambilan Image
Setelah mendapatkan data-data yang diperlukan untuk mengambil gambar dan lokasi tempat perhitungan intensitas ( 𝑣𝑃) , maka bisa dimulai proses pengambilan gambar. Proses pertama kali adalah melakukan koneksi ke kamera dengan menggunakan IP Address yang sudah didapatkan dalam persiapan sebelumnya. Koneksi ini menggunakan
def initProgram(cameraCode): mydb = mysql.connector.connect( host="localhost", user="MySQL_user", passwd="MySQL_password", database="trafficlightStatus" ) query = mydb.cursor() sql = "SELECT * FROM camera WHERE status = 1 AND id LIKE '" + str(cameraCode) + "'" query.execute(sql) row = query.fetchone() mydb.shutdown() if row: return(row[1], row[2], row[3], row[7], row[8], row[9], row[10], row[11], row[12], row[13]) else: return(None)
Gambar  4. Fungsi Pengambilan Koordinat Lampu Pengatur Lalu Lintas

## JURNAL MEDIA INFORMATIKA BUDIDARMA
ISSN 2614-5278 (media cetak), ISSN 2548-8368 (media online) Available Online at https://ejurnal.stmik-budidarma.ac.id/index.php/mib DOI 10.30865/mib.v4i3.2115
protokol RTSP dengan menyertakan username dan password yang juga sudah didapatkan pada  tahap persiapan (gambar 5).
Hasil dari fungsi ini adalah sebuah frame image yang nantinya akan diproses dengan fungsi pengecekan intensitas masing-masing warna lampu pengatur lalu lintas.

## 4.3 Pengecekan Intensitas ( 𝒗𝑷)
Fungsi  terakhir  yang  kita  perlukan  adalah  fungsi  untuk  menghitung  rata-rata  intensitas  cahaya  dalam  gambar. Perhitungan  ini  kita  lakukan  langsung  dari frame  image yang  didapatkan  dari  fungsi getFrameImage dan berdasarkan koordinat-koordinat lampu lalu lintas yang sudah didefinisikan pada fungsi initProgram . Cara mencari intensitas adalah dengan mengambil nilai dari pixel pada koordinat tertentu lampu merah, kuning, dan hijau. Nilai pixel tersebut disimpan dalam sebuah array yang nanti dengan class array tersebut kita gunakan rata-ratanya (gambar 6).
Return value dari fungsi ini adalah sebuah array yang berisi nilai rata-rata intensitas pada koordinat lampu merah,  lampu  kuning  dan  lampu  hijau.  Nilai  rata-rata  intensitas  tertinggi  dari  ketiga  koordinat  tersebut  adalah lampu yang sedang menyala pada saat itu.
Dengan penggunaan koordinat dan area untuk menghitung rata-rata nilai intensitas sebuah lampu, sangat bergantung dengan koordinat yang dipilih dan area yang ditentukan. Koordinat haruslah benar-benar tepat ada di dalam sebuah lampu lalu lintas dan area yang ditentukan juga harus tepat berada di dalam area lampu tersebut. Pemilihan  yang  salah  akan  menyebabkan  bias  pada  hasil  perhitungannya,  yang  akan  mempengaruhi  hasil kesimpulan akhir (gambar 7).
Seperti pada contoh gambar 7, pemilihan koordinat dan area tepat pada masing-masing lampu lalu lintas. Pemilihan ini sangat tergantung pada posisi dan arah kamera, serta posisi lampu lalu lintas itu sendiri. Koordinat dan area ini juga perlu dilakukan pengecekan secara rutin, karena tidak menutup kemungkinan terjadi pergeseran arah kamera sehingga terjadi pergeseran koordinat lampu lalu lintas pada arah yang baru.
def getFrameImage(ip, user, password): ptzCamera = "rtsp://" + user + ":" + password + "@" + ip + "/sub"; vcap = cv2.VideoCapture(ptzCamera) ret, frame = vcap.read() if ret: return frame else: return null
Gambar  5. Fungsi Pengambilan Image melalui Koneksi RTSP
def lightValue(redPosition,yellowPosition,greenPosition,area,image): red = [] for x in range(redPosition[0],redPosition[0]+area): for y in range(redPosition[1],redPosition[1]+area): pix = image[y,x] red.append(sum(image[y,x])) yellow = [] for x in range(yellowPosition[0],yellowPosition[0]+area): for y in range(yellowPosition[1],yellowPosition[1]+area): pix = image[y,x] yellow.append(sum(image[y,x])) green = [] for x in range(greenPosition[0],greenPosition[0]+area): for y in range(greenPosition[1],greenPosition[1]+area): pix = image[y,x] green.append(sum(image[y,x])) return (mean(red), mean(yellow), mean(green))
Gambar  6. Fungsi Perhitungan Rata-rata Intensitas Cahaya (𝒗𝑷)
Gambar  7. Pemilihan Koordinat dan Area harus tepat

## JURNAL MEDIA INFORMATIKA BUDIDARMA
ISSN 2614-5278 (media cetak), ISSN 2548-8368 (media online) Available Online at https://ejurnal.stmik-budidarma.ac.id/index.php/mib DOI 10.30865/mib.v4i3.2115
Submitted: 16/04/2020 ; Accepted: 05/05/2020 ; Published: 20/07/2020

## 4.4 Hasil
Hasil percobaan pada beberapa kondisi lampu lalu lintas, dapat dilihat pada gambar 8.
Pada gambar 8-A, perhitungan nilai rata-rata intensitas cahaya pada koordinat lampu merah adalah 493,4 yang merupakan nilai tertinggi dari koordinat lampu kuning (188,2) dan lampu hijau (180,81). Sedangkan pada gambar 8-C perhitungan nilai rata-rata intensitas cahaya pada koordinat lampu hijau adalah 443,5 yang merupakan nilai tertinggi dari koordinat lampu kuning (193,8) dan lampu merah (130,5). Dan terakhir pada saat lampu kuning dalam kondisi menyala atau pada gambar 8-B, perhitungan nilai rata-rata intensitas cahaya pada koordinat lampu kuning adalah 373,9 yang merupakan nilai tertinggi dari koordinat lampu merah (127,4) dan lampu hijau (163,6).
Selain  membandingkan  nilai  intensitas ( 𝒗𝑷) lampu  sebagai  dasar  untuk  menentukan  lampu  mana  yang sedang  menyala,  pada  penelitian  ini  juga  menemukan  adanya Δ𝑃 atau  selisih  antara 𝒗𝑷 lampu  yang  sedang menyala dengan rata-rata 𝒗𝑷 dua lampu lainnya yang perhitungannya ditentukan mengikuti rumus (2)
Δ𝑃 1 = 𝑣𝑃 1 − 1 2 (𝑣𝑃 2 +  𝑣𝑃 3 ) (2)
𝑣𝑃 1 adalah nilai intensitas lampu yang sedang dalam kondisi menyala, sedangkan 𝑣𝑃 2 dan 𝑣𝑃 3 adalah 2 lampu lainnya yang sedang dalam kondisi tidak menyala.
Dalam percobaan di atas, perhitungan 𝑣𝑃 𝑖 dan Δ𝑃 𝑖 masing-masing lampu lalu lintas dapat dilihat pada tabel 1 berikut ini:
Manfaat dari perhitungan Δ𝑃 ini adalah untuk mengecek kebenaran kesimpulan bahwa sebuah lampu lalu lintas sedang dalam kondisi menyala dan dua lampu lainnya tidak. Semakin kecil nilai Δ𝑃 maka semakin besar kemungkinan adanya false negative atau ada kemungkinan aplikasi kita membuat kesimpulan yang salah Δ𝑃 ini akan sangat dipengaruhi oleh kondisi sinar sekitar lampu lalu lintas. Pada saat siang hari dan posisi lampu lalu lintas melawan arah matahari, maka mata manusia atau kamera akan terdistorsi sehingga perbedaan intensitas cahaya antara lampu yang sedang menyala dan yang sedang padam tidak terlalu signifikan. Begitu juga saat  malam  namun  di  sekitar  lampu  lalu  lintas  terdapat  lampu  penerangan  jalan  yang  sangat  terang  dan mempengaruhi penangkapan sinar oleh kamera.
Berdasarkan dari pengamatan pada kondisi salah satu lampu lalu lintas dalam waktu yang lebih lama, kita mendapatkan kesimpulan bahwa Δ𝑃 selalu berada di atas 200 dan hasil kesimpulan sistem adalah benar (tabel 2).
Tabel  2. Perhitungan 𝒗𝑷 𝒊 dan 𝚫𝑷 𝒊 pada Pengamatan Lapangan
Jam Pengamatan Merah Kuning Hijau 𝒗𝑷 𝚫𝑷 𝒗𝑷 𝚫𝑷 𝒗𝑷 𝚫𝑷 06:01 – 08:00 453,4 319,3 363,9 300,3 403,9 302,9 08:01 – 10:00 461,9 306,8 369,4 253,6 429,6 280.1 (A) (B) (C)
Gambar  8. Hasil Perhitungan dalam Berbagai Kondisi Lampu Lalu Lintas
Tabel  1. Nilai 𝒗𝑷 𝒊 dan 𝚫𝑷 𝒊 Masing-masing Lampu Lalu Lintas
Lampu Menyala 𝒗𝑷 𝚫𝑷 Merah 493,4 308,9 Kuning 373,9 228,3 Hijau 443,5 281,3

## JURNAL MEDIA INFORMATIKA BUDIDARMA
ISSN 2614-5278 (media cetak), ISSN 2548-8368 (media online) Available Online at https://ejurnal.stmik-budidarma.ac.id/index.php/mib DOI 10.30865/mib.v4i3.2115
Dari  pengamatan  ini  terlihat  adanya  perbedaan  nilai 𝑣𝑃 𝑖 dan Δ𝑃 𝑖 pada  waktu-waktu  yang  berbeda. Perbedaan  ini terjadi  karena nilai  intensitas  cahaya tergantung  pada lingkungan cahaya  pada  saat frame image diambil oleh kamera.

## 4. KESIMPULAN
Computer Vision sebagai salah satu cabang ilmu dalam komputasi, memungkinkan kita melakukan proses pada sebuah gambar dan mengambilan kesimpulan seperti penglihatan mata manusia. Pengaplikasian dalam penelitian ini  adalah  untuk  mencari  kondisi  lampu  lalu  lintas  sedang  dalam  posisi  hijau,  kuning,  atau  merah.  Cara  yang dilakukan  pada  penelitian  ini  adalah  dengan  mengukur  nilai  intensitas  cahaya  ( 𝑣𝑃 )  masing-masing  lampu  dan membandingkannya. Lampu yang memiliki nilai 𝑣𝑃 tertinggi adalah lampu yang sedang menyala. Pada penelitian ini  juga  diusulkan  adanya  perhitungan  referensi  lain  untuk  menunjang  kesimpulan  yang  benar,  yaitu  dengan menghitung Δ𝑃 atau selisih antara 𝑣𝑃 lampu yang sedang menyala dengan rata-rata 𝑣𝑃 lampu yang sedang tidak menyala. Semakin besar nilai Δ𝑃 berarti semakin besar perbedaan intensitas sebuah lampu yang sedang menyala dengan lampu-lampu  lainnya.  Pada  percobaan  yang  dilakukan,  lampu  yang  sedang  menyala memiliki  nilai Δ𝑃 lebih dari 200. Nilai Δ𝑃 ini belumlah nilai baku yang harus dicapai, dan untuk itu diperlukan penelitian lebih lanjut untuk  mengetahui  kondisi  nyata  di  lapangan  dan  nilai Δ𝑃 terendah  yang  memungkinkan  mata  manusia  dapat melihat perbedaan lampu lalu lintas yang sedang menyala dan tidak.

## REFERENCES
[1] “Undang-Undang Republik Indonesia nomor 22 tahun 2009 tentang Lalu Lintas dan Angkutan Jalan.” Republik Indonesia, Jun. 22, 2009, Accessed: Mar. 10, 2020. [Online]. Available: https://pih.kemlu.go.id/files/uu_no_22_tahun_2009.pdf.
[2] Ardito Ramadhan, “Polri Sebut Jumlah Kecelakaan Lalu Lintas Meningkat pada 2019,” Kompas Cyber Media , Dec. 28, 2019.
[3] Muhammad Azizirrahman, Ellyn Normelani, and Deasy Arisanty, “Faktor Penyebab Terjadinya Kecelakaan Lalu Lintas pada Daerah Rawan Kecelakaan di Kecamatan Banjarmasin Tengah Kota Banjarmasin,” JPG , vol. 2, no. 3, pp. 20–37, May 2015, [Online]. Available: https://ppjp.ulm.ac.id/journal/index.php/jpg/article/view/1421/1224.
[4] E.  Purwaningsih,  “Analisis  Kecelakaan  Berlalu  Lintas  di  Kota  Jakarta  dengan  Menggunakan  Metode  K-Means,” JITK  (Jurnal  Ilmu Pengetahuan dan Teknologi Komputer) , vol. 5, no. 1, pp. 139–144, Aug. 2019, doi: 10.33480/jitk.v5i1.712.
[5] H.  Schulzrinne,  A.  Rao,  and  R.  Lanphier,  “Real  Time  Streaming  Protocol  (RTSP),”  RFC  Editor,  RFC2326,  Apr.  1998.  doi: 10.17487/rfc2326.
[6] ITU-T, “ITU-T Recommendation H.264: Advanced video coding  for generic audiovisual services.” International Telecommunication Union (ITU), Nov. 22, 2007, Accessed: Mar. 11, 2020. [Online]. Available: http://handle.itu.int/11.1002/1000/9226.
[7] M.  N.  Al-Azam,  D.  Rizaludin,  Y.  S.  Raharjo,  and  A.  Nugroho,  “Message  Queuing  Telemetry  Transport  dalam  Internet  of  Things menggunakan ESP-32,” JURNAL MEDIA INFORMATIKA BUDIDARMA , vol. 3, no. 3, p. 159, Jul. 2019, doi: 10.30865/mib.v3i3.1160.
[8] G. C. Hillar, Internet of Things with Python: Interact with the world and rapidly prototype IoT applications using Python . Birmingham Mumbai: Packt Publishing Limited, 2016.
[9] Adrian Rosebrock, Practical Python and OpenCV: An Introductory, Example Driven Guide to Image Processing and Computer Vision , 4th ed. Baltimore, MD: PyImageSearch.com, 2019.
[10]  G. Cattaneo, A. Bruno, and F. Petagna, “H-264/RTSP Multicast Stream Integrity,” in Image Analysis and Processing - ICIAP 2017 , vol. 10485, S. Battiato, G. Gallo, R. Schettini, and F. Stanco, Eds. Cham: Springer International Publishing, 2017, pp. 558–568.
[11]  Audio-Video Transport Working Group, H. Schulzrinne, S. Casner, R. Frederick, and V. Jacobson, “RTP: A Transport Protocol for Real- Time Applications,” RFC Editor, RFC1889, Jan. 1996. doi: 10.17487/rfc1889.
[12]  S.  Casner,  “Session  Description  Protocol  (SDP)  Bandwidth  Modifiers  for  RTP  Control  Protocol  (RTCP)  Bandwidth,”  RFC  Editor, RFC3556, Jul. 2003. doi: 10.17487/rfc3556.
[13]  A. G. Sooai, A. Nugroho, M. N. A. Azam, S.  Sumpeno, and M. H.  Purnomo, “Virtual artifact: Enhancing muse um exhibit using 3D virtual reality,” Dec. 2017, pp. 1–5, doi: 10.23919/TRONSHOW.2017.8275078.
[14]  B. Anindito, A. G. Sooai, M. M. Achlaq, M. N. Al-Azam, A. Winaya, and M. Maftuchah, “Indoor Agriculture: Measurement of The Intensity of LED for Optimum Photosynthetic Recovery,” in 2018 5th International Conference on Electrical Engineering, Computer Science and Informatics (EECSI) , Malang, Indonesia, Oct. 2018, pp. 356–361, doi: 10.1109/EECSI.2018.8752827.
[15]  Adrian Rosebrock, PhD, Dave Hoffman, MSc, David McDuffee, Abhishek Thanki, and Sayak Paul, Raspberry Pi for Computer Vision: Hacker Bundle - v1.0.1 . Baltimore, MD: PyImageSearch.com, 2019.
[16]  Adrian Rosebrock, PhD, Dave Hoffman, MSc, David McDuffee, Abhishek Thanki, and Sayak Paul, Raspberry Pi for Computer Vision: Hobbyist Bundle - v1.0.1 . Baltimore, MD: PyImageSearch.com, 2019.
[17]  R. Laganière, OpenCV computer vision application programming cookbook: over 50 recipes to help build computer vision applications in C++ using the OpenCV library , 2. ed. Birmingham: Packt Publ, 2014.
[18]  G. R. Bradski and A. Kaehler, Learning OpenCV: computer vision with the OpenCV library , 1. ed., [Nachdr.]. Beijing: O’Reilly, 2011.
10:01 – 12:00 493,4 308,9 373,9 228,3 443,5 281,3 12:01 – 14:00 499,1 289.4 389,1 210,7 452,7 260,1 14:01 – 16:00 480,5 310,4 380,4 289,7 450,5 290,7 16:01 – 18:00 465,0 324,5 371,8 301,2 448,1 300,1 18:01 – 20:00 455,8 388,6 361,7 359,5 450,9 375,7 20:01 – 22:00 460,1 385,1 369,3 350,8 455,8 370,2