PROGRAM BANTU PENGATURAN LAMPU LALU LINTAS
MENGGUNAKAN LOGIKA FUZZY
( Studi Kasus : Perempatan Ringroad UPN Yogyakarta )
TUGAS AKHIR
Diajukan untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Informatika
Oleh:
Verania Puspitaning Tyas Cipta Putri NIM : 045314043
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
FINAL PROJECT
Presented as Partial Fulfillment of The Requirements
To Obtain Bachelor Degree
in Informatics Engineering
By:
Verania Puspitaning Tyas Cipta Putri NIM : 045314043
INFORMATICS ENGINEERING STUDY PROGRAM
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2009
tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka sebagaimana layaknya karya ilmiah.
Yogyakarta, ……… Penulis
Verania Puspitaning Tyas Cipta Putri
Karya kecil ini kupersembahkan untuk :
Tuhan Yesus Kristus yang Maha Pengasih
Bunda Maria atas keajaiban yang diberikan
Bapak , Ibu dan Mbah ‘Ti atas segala doa dan pengorbanannya
Mbak Tia dan ade’ku Sita Tersayang
Lolik Terkasih
jadilah belukar yang indah di tepi parit
Bila engkau tidak bisa menjadi belukar,
jadilah rumput yang membuat jalan-jalan semarak.
Bila engkau tidak bisa menjadi gurami,
jadilah teri yang terindah di tambak.
Bila engkau tidak bisa menjadi komandan,
jadilah prajurit yang tangguh.
Bukan kebesaran yang menentukan menang atau kalah,
yang penting jadilah wajar, apa adamu dan menjadi dewasa.
( Douglas Malloch)
ABSTRAKSI
Pengaturan lampu lalu lintas pada perempatan ringroad UPN Yogyakarta pada saat ini masih menggunakan sistem pewaktuan yang tetap dan tidak memperhitungkan kepadatan pada tiap jalurnya. Salah satu faktor yang mempengaruhi pengaturan lampu lalu lintas adalah besarnya volume kendaraan atau kepadatan pada perempatan tersebut. Kepadatan lalu lintas yang bersifat tidak tegas (kabur) mengakibatkan asumsi yang berbeda-beda. Menanggapi hal tersebut, maka dibuat program bantu pengaturan lampu lalu lintas dengan menggunakan logika fuzzy.
Pada program bantu ini, user diminta untuk menginputkan jumlah kendaraan untuk masing-masing jalurnya. Selain memperhatikan kepadatan lalu lintas pada jalur yang diatur, program ini juga memperhatikan kepadatan lalu lintas pada jalur yang menunggu. Nilai batas-batas himpunan diambil dari hasil pengamatan di perempatan ringroad UPN Yogyakarta. Pengambilan data dilakukan pada tanggal 31 Maret 2008 sampai 6 April 2008 dengan waktu yang berbeda-beda. Program bantu ini dibangun dengan menggunakan bahasa pemrograman Java dan database
MySQL untuk menyimpan batas-batas himpunannya.
Hasil yang diberikan dari program berupa waktu lampu hijau menyala untuk setiap jalurnya sehingga diharapkan kepadatan pada perempatan ringroad UPN Yogyakarta dapat berkurang atau bahkan dapat melintas seluruhnya. Keluaran program juga dipengaruhi oleh batas-batas himpunan.
In the recent time, traffic lights system at ringroad intersection of UPN Yogyakarta using constant timing system and counting system is not measured by the density for each traffic lanes. One of influenced factors of traffic lights system is the volume of unit of vehicles or the density of the intersection. The characteristic of traffic density is not distinctive (vague) arising the different assumptions. Responding on this problem, invented the assistance program of traffic lights system using fuzzy logic.
By the assistance program, user ask for inputting the volume unit vehicles for each traffic lanes. Additionally, concerning on the traffic density for well organized traffic lane, the program also concerns on the traffic density for waiting traffic lane. The gathering of limitation values taken from observation result at ringroad intersection of UPN Yogyakarta. Data gathering was held during March 31 2008 until April 6 2008 with different time frame. The assistance program is built with java programming language and MySQL database for storing the limitation of gathering.
The result of the program showed when the green light for each traffic lanes, so it could be expected that the traffic density at ringroad intersection of UPN Yogyakarta could be decreased, moreover could be fully crossed. The output of the program is also influenced by the limitation of gathering.
KATA PENGANTAR
Puji dan syukur penulis panjatkan kepada Tuhan Yang maha Esa yang telah melimpahkan berkat dan rahmat-Nya sehingga dapat terselesaikannya penulisan tugas akhir dengan judul PROGRAM BANTU PENGATURAN LAMPU LALU LINTAS MENGGUNAKAN LOGIKA FUZZY.
Selesainya tugas akhir ini juga tidak luput dari peran serta berbagai pihak yang dengan caranya tersendiri memberikan dukungan dan bantuan. Oleh karena itu penulis ingin mengucapkan terima kasih kepada :
1. Bapak Ir. Gregorius Heliarko SJ, SS, BST, MA, M.Sc selaku Dekan Fakultas Sains dan Teknologi Universitas Sanata Dharma.
2. Bapak Drs. Jong Jek Siang, M.Sc. yang telah meluangkan waktu, tenaga dan pikiran untuk membimbing penulis dari awal sampai terselesaikannya penulisan tugas akhir ini.
3. Bapak Puspaningtyas Sanjoyo Adi, S.T., M.T. selaku Ketua Jurusan teknik Informatika sekaligus dosen penguji yang telah memberikan banyak kritik dan saran yang membangun demi sempurnanya tugas akhir ini.
4. Bapak St. Eko Hari Parmadi, S.Si, M.Kom. selaku dosen penguji yang telah memberikan banyak kritik dan saran yang membangun demi sempurnanya tugas akhir ini.
5. Seluruh Dosen, Laboran, Staf Sekretariat, dan karyawan Jurusan Teknik Informatika Universitas Sanata Dharma Yogyakarta.
6. Bapak dan ibu yang telah mencurahkan kasih sayang serta doa-doa yang tak pernah berhenti mengiringi setiap langkah-langkah kami. Dan untuk pengorbanan bapak dan ibu yang tidak akan pernah tergantikan dengan apapun.
7. Mbah Ti Dwijo Susanto yang turut membesarkan dan merawatku.
8. Mbak Tia dan ade’ku Sita yang selalu bersedia mendengar keluh kesahku dan selalu memberi semangat. Mas seno untuk terjemahannya.
dukungannya selama ini.
11.Ina, Vera Sala, Lusi dan Teman-teman TI’04, terimakasih atas bantuan, dukungan dan kebersamaan kalian selama ini.
12.Temanku suci, terimakasih sudah menjadi sahabatku.
13.Semua pihak yang telah membantu penulis dalam penyelesaian Tugas Akhir, terima kasih.
Dengan rendah hati penulis menyadari bahwa karya ilmiah ini masih sangat jauh dari sempurna. Oleh karena itu kritik dan saran sangat penulis harapkan untuk perbaikan tugas akhir ini. Akhir kata, semoga tugas akhir ini bermanfaat bagi semua pihak. Terima kasih.
Penulis
DAFTAR ISI
HALAMAN JUDUL--- i
HALAMAN PERSETUJUAN --- iii
HALAMAN PENGESAHAN --- iv
HALAMAN PERNYATAAN --- vi
HALAMAN PERSEMBAHAN --- vii
MOTTO --- viii
1.4. Tujuan Penyusunan Skripsi--- 3
1.5. Metode Penelitian--- 3
1.6. Sistematika Penulisan --- 3
BAB II. LANDASAN TEORI 2.1. Logika Fuzzy 2.1.1. Pengenalan Logika Fuzzy--- 5
2.1.2. Variabel Linguistik dan Pengubah Linguistik --- 5
2.1.3. Fungsi Keanggotaan --- 7
2.1.4. Operator Dasar Zadeh Untuk Operasi Himpunan Fuzzy --- 9
2.2. Java --- 19
2.3. Arus Lalu Lintas --- 21
BAB III. ANALISIS DAN PERANCANGAN 3.1.Pembentukan Variabel Linguistik 3.1.1. Variabel Jalur S --- 24
3.1.2. Variabel Jalur B --- 25
3.1.3. Variabel Jalur U--- 27
3.1.4. Variabel Jalur T --- 28
3.1.5. Variabel LampuHijau S --- 29
3.1.6. Variabel LampuHijau B --- 31
3.1.7. Variabel LampuHijau U --- 32
3.1.8. Variabel LampuHijau T --- 34
3.6. Perancangan Struktur Data --- 43
3.7. Rancangan Antar Muka 3.7.1. Form Utama --- 43
3.7.2. Form Perhitungan--- 44
3.7.3. FormMaintenance Batas Himpunan--- 46
3.7.4. Form Detail Perhitungan --- 47
BAB IV. IMPLEMENTASI DAN ANALISA HASIL 4.1. Implementasi
4.1.1. Implementasi Fungsi Keanggotaan--- 49
4.1.2. Implementasi Aturan Kabur --- 51
4.1.3. Implementasi Hitung Rata-Rata Terbobot--- 52
4.2Hasil Implementasi 4.2.1. Form Utama --- 53
4.2.2. Form Perhitungan --- 54
4.2.3. Form Maintenance Batas Himpunan --- 56
4.2.4. Form Detail Perhitungan --- 57
4.3Analisa Hasil --- 58
BAB V. PENUTUP 5.1 Kesimpulan --- 63
5.2 Saran --- 64
DAFTAR PUSTAKA LAMPIRAN
Gambar Keterangan Halaman
2.1 Representasi Linear Naik 8
2.2 Representasi Linear Turun 8
2.3 Representasi Kurva Segitiga 9
2.4 Representasi Kurva Bentuk Bahu 9
2.5 Struktur dasar suatu sistem kendali kabur 12
2.6 Contoh Fungsi Keanggotaan Segitiga 14
2.7 Fungsi Pengaburan Gauss 14
3.1 Fungsi keanggotaan pada Variabel jalur S 24 3.2 Fungsi keanggotaan pada Variabel jalur B 26 3.3 Fungsi keanggotaan pada Variabel jalur U 27 3.4 Fungsi keanggotaan pada Variabel jalur T 28 3.5 Fungsi keanggotaan pada Variabel LampuHijau S 30 3.6 Fungsi keanggotaan pada Variabel LampuHijau B 31 3.7 Fungsi keanggotaan pada Variabel LampuHijau U 33 3.8 Fungsi keanggotaan pada Variabel LampuHijau T 34
3.9 Flowchart Untuk Halaman Perhitungan 39
3.10 Use Case Diagram 40
3.11 Context Diagram 41
3.12 Decompotition Diagram 41
3.13 Data Flow Diagram 42
3.14 Rancangan Antar Muka Form Utama 44
3.15 Rancangan Antar Muka Form Perhitungan 46
3.16 Rancangan Antar Muka Form Maintenance Batas Himpunan
47
3.17 Rancangan Antar Muka Form Detail Perhitungan 48
4.1 Form Utama 53
4.2 Form Perhitungan 55
4.3 FormMaintenance Batas Himpunan untuk Variabel Jalur 56 4.4 FormMaintenance Batas Himpunan untuk Variabel
Lampu Hijau
56
4.5 FormDetail Perhitungan 57
Tabel Keterangan Halaman 2.1 Tabel Ekivalen Mobil Penumpang 21
3.1 Tabel aturan jika-maka 36
3.2 Tabel Data Mentah Jumlah Kendaraan 36 3.3 Tabel Data Jumlah Kendaraan yang sudah
dikonfersikan ke dalam smp
36
3.4 Derajat Keanggotaan 37
3.5 α-predikat dan z 37
3.6 Nilai Z 38
3.7 Tabel BatasHimp 43
4.1 Tabel Data Mentah Jumlah Kendaraan 58 4.2 Tabel Data Jumlah Kendaraan
yang sudah dikonversikan ke dalam smp
59
4.3 Tabel perbandingan lampu hijau 59 4.4 Tabel batas himpunan variabel jalur 60 4.5 Tabel batas himpunan variabel lampu hijau 60
4.6 Tabel Keluaran Program 60
4.7 Tabel batas himpunan variabel jalur yang diubah
61
4.8 Tabel batas himpunan variabel lampu hijau yang diubah
61
4.9 Tabel Keluaran Program 61
BAB I PENDAHULUAN
1.1Latar Belakang Masalah
Kelancaran lalu lintas sangat diperlukan di kota-kota besar seperti di Yogyakarta. Untuk mendukung hal tersebut maka di setiap persimpangan jalan dipasang lampu lalu lintas. Lampu lalu lintas memegang peranan penting dalam menentukan kelancaran sebaran kendaraan di jalan-jalan di sekitar persimpangan tersebut.
Pengaturan lampu lalu lintas yang baik, sebaiknya dapat menyesuaikan diri dengan kepadatan lalu lintas pada tiap-tiap jalur. Namun pengaturan lampu lalu lintas pada perempatan ringroad UPN Yogyakarta yang ada saat ini masih menggunakan sistem pewaktuan yang tetap atau tidak berubah-ubah dalam satu siklusnya dan tidak memperhitungkan kepadatan pada tiap jalurnya, hal ini dapat menyebabkan antrian kendaraan yang panjang.
Salah satu faktor yang mempengaruhi kelancaran lalu lintas adalah kepadatan lalu lintas. Jumlah kepadatan lalu lintas bersifat tidak tegas ( kabur ), oleh karena itu Logika Fuzzy cocok diterapkan dalam pengaturan lampu lalu lintas. Logika
Fuzzy dapat mengubah sifat tidak tegas tersebut ke dalam model matematis yang mendasari penalaran fuzzy sangat sederhana dan mudah dimengerti sehingga dapat diproses lebih lanjut untuk dapat diterapkan dalam sistem pengaturan lampu lalu lintas. Dengan menggunakan Logika Fuzzy, dapat di prediksi waktu lampu hijau menyala sesuai dengan kepadatan pada tiap-tiap jalur sehingga antrian dapat
diminimalkan. Kepadatan lalu lintas dihitung menggunakan satuan mobil penumpang (SMP), yaitu koefisien dari berbagai jenis kendaraan yang beragam kedalam satu satuan tertentu untuk mempermudah dalam perhitungan arus lalu lintas.
1.2Rumusan Masalah
Dari latar belakang masalah di atas dapat dirumuskan menjadi beberapa masalah sebagai berikut:
a. Bagaimana mengimplementasikan logika fuzzy dalam pengaturan lampu lalu lintas ?
b. Bagaimana mengatur waktu lampu hijau menyala sehingga antrian kendaraan dapat berkurang atau bahkan dapat melintas seluruhnya?
1.3Batasan Masalah
Adapun masalah yang akan diselesaikan dibatasi oleh hal-hal sebagai berikut: a. Model persimpangan jalan yang di pakai adalah simpang empat atau
perempatan. Studi lapangan dilakukan di perempatan Ringroad UPN Yogyakarta.
b. Kepadatan lalu lintas dihitung berdasarkan SMP (Satuan Mobil Penumpang). c. Fasilitas ke kiri jalan terus, tidak masuk ke dalam perhitungan.
d. Pengaturan lampu lalu lintas diberikan searah jarum jam.
e. Metode yang digunakan untuk sistem penalaran kabur adalah metode
3
f. Bahasa pemrograman yang digunakan adalah Java.
1.4Tujuan Penyusunan Skripsi
Menerapkan logika fuzzy untuk membantu pengaturan lampu lalu lintas yang akan memprediksi waktu lampu hijau menyala sehingga dapat meminimalkan antrian atau kepadatan lalu lintas.
1.5Metode Penelitian
Metode yang digunakan dalam penelitian meliputi: a. Studi pustaka
Dengan mempelajari buku referensi yang berkaitan dengan logika fuzzy. b. Observasi lapangan
Dengan melakukan pengamatan lapangan di perempatan ringroad UPN. c. Perancangan
Tahap ini digunakan untuk mengubah model matematika menjadi sebuah representasi perangkat lunak.
d. Implementasi program.
Hasil dari tahap perancangan diterjemahkan ke dalam program.
1.6Sistematika Penulisan
BAB I : PENDAHULUAN
BAB II : LANDASAN TEORI
Bab ini berisi tentang penjelasan dasar teori Logika Fuzzy, Java dan Satuan Mobil Penumpang (SMP).
BAB III : ANALISIS DAN PERANCANGAN
Bab ini berisi tentang analisa sistem, gambaran umum perancangan program, pembentukan himpunan fuzzy, dan rancangan antar muka yang digunakan dalam pembuatan program bantu, dan contoh penerapan logika fuzzy.
BAB IV : IMPLEMENTASI DAN ANALISA HASIL
Bab ini berisi tentang pengimplementasian dari analisis dan desain sistem pada bab sebelumnya serta analisa hasil implemantasi.
BAB V : PENUTUP
BAB II
LANDASAN TEORI
2.1 Logika Fuzzy (Logika Kabur) 2.1.1 Pengenalan Logika Fuzzy
Teori himpunan logika fuzzy dikembangkan oleh Prof Lofti Zadeh pada
tahun 1965. Tidak seperti logika boolean, logika fuzzy mempunyai nilai yang
kontinu. Fuzzy dinyatakan dalam derajat dari suatu keanggotaan dan derajat dari
kebenaraan (Trivita, 2006).
Kalau pada himpunan tegas, nilai keanggotaan hanya ada 2 kemungkinan,
yaitu 0 atau 1, pada himpunan fuzzy nilai keanggotaan terletak pada rentang 0
sampai 1. Bila x memiliki nilai keanggotaan fuzzyµA[x]=0 berarti x tidak menjadi anggota himpunan A, demikian pula bila x memiliki nilai keanggotaan fuzzy
µA[x]=1 berarti menjadi anggota penuh pada himpunan A.
2.1.2 Variabel Linguistik dan Pengubah Linguistik (Linguistic Hedge)
Suatu variabel adalah suatu lambang atau kata yang menunjuk kepada
sesuatu yang tidak tertentu dalam semesta wacananya. Misalnya dalam kalimat :
“Mahasiswa itu lulus dengan pujian”, kata “mahasiswa” adalah suatu variabel
karena menunjuk kepada orang yang tidak tertentu dalam semesta wacananya
yaitu himpunan manusia. Suatu variabel dapat diganti oleh unsur-unsur dalam
semesta wacananya, misalnya variabel “ mahasiswa” dapat diganti dengan
“Anton”. Kata “Anton” menunjuk pada unsur yang tertentu pada masing-masing
semesta wacananya, dan disebut konstanta. Kalau semesta wacananya adalah
himpunan bilangan-bilangan, maka variabelnya disebut variabel numeris,
sedangkan kalau semesta wacananya adalah himpunan kata-kata atau
istilah-istilah dari bahasa sehari-hari (misalnya:tinggi, cepat, muda), maka variabelnya
disebut variabel linguistik (Susilo, F, 2006). Secara formal variabel linguistik
didefinisikan sebagai berikut.
Suatu variabel linguistik adalah suatu rangkap-5 (x, T, X, G, M) di mana :
− x adalah lambang variabelnya.
− T adalah himpunan nilai-nilai linguistik yang dapat menggantikan x.
− X adalah semesta wacana (numeris) dari nilai-nilai linguistik dalam T (jadi juga dari variabel x).
− G adalah himpunan aturan-aturan sintaksis yang mengatur pembentukan istilah-istilah anggota T.
− M adalah himpunan aturan-aturan semantik yang mengaitkan setiap istilah dalam T dengan suatu himpunan kabur dalam semesta X.
Contoh : Bila variabel linguistiknya adalah “umur”, maka sebagai himpunan
nilai-nilai linguistik dapat diambil himpunan istilah-istilah T={muda,sangat muda, agak
muda, tidak muda, tidak sangat muda, tidak muda dan tidak tua, agak tua, tua,
tidak sangat tua}, dengan semesta X = [0,100], aturan sintaksis yang mengatur
pembentukan istilah-istilah dalam T, dan aturan semantik yang mengaitkan setiap
7
Pengubah linguistik (linguistic hedge/modifier) adalah suatu kata yang
dipergunakan untuk mengubah suatu kata/istilah menjadi kata/istilah yang baru
dengan makna yang baru pula. Dua pengubah linguistik yang paling sering
dipakai adalah “sangat” dan “agak”.
Jika suatu istilah A dikaitkan dengan himpunan kabur Ãdalam semesta X,
maka istilah “sangat A” dikaitkan dengan himpunan kabur konsentrasi dari Ã,
dengan lambang Kon(Ã) dan fungsi keanggotaan
µKon(Ã)(x) = (µÃ(x))2
untuk setiap x ЄX, sedangkan istilah “agak A” dikaitkan dengan himpunan kabur
dilasi dari Ã, dengan lambang Dil(Ã) dan fungsi keanggotaan
µDil(Ã)(x) = (µÃ(x))1/2 untuk setiap x ЄX.
2.1.3 Fungsi Keanggotaan
Fungsi keanggotan (membership function) adalah suatu kurva yang
menunjukkan pemetaan titik-titik input data ke dalam nilai keanggotanya (sering
juga disebut dengan derajat keanggotaan) yang memiliki interval antara 0 sampai
1. salah satu cara yang dapat digunakan untuk mendapatkan nilai keanggotaan
adalah dengan melalui pendekatan fungsi (Kusumadewi & Purnomo, 2004). Ada
beberapa fungsi yang bisa digunakan, yaitu :
a. Representasi Linear
Pada representasi linear, pemetaan input ke derajat keanggotaanya
linear. Pertama, kenaikan himpunan dimulai pada nilai domain yang memiliki
derajat keanggotaan nol [0] bergerak ke kanan menuju ke nilai domain yang
memiliki derajat keanggotaan lebih tinggi (Gambar 2.1). Kedua, merupakan
kebalikan yang pertama. Garis lurus di mulai dari nilai domain dengan derajat
keanggotaan tertinggi pada sisi kiri, kemudian bergerak menurun ke nilai yang
memiliki derajat keanggotaan lebih rendah (Gambar 2.2).
Gambar 2.1 Representasi Linear Naik
Gambar 2.2 Representasi Linear Turun
Fungsi Keanggotaan :
b. Representasi Kurva Segitiga
Kurva Segitiga pada dasarnya merupakan gabungan antara garis (linear)
seperti terlihat pada Gambar 2.3. domain b µ[x]
9
Fungsi Keanggotaan :
0; x ≤ a atau x ≥ c
µ[x] = (x-a)/(b-a) a ≤ x ≤ b
(c-x)/(c-b) b ≤ x ≤ c
Gambar 2.3 Representasi Kurva Segitiga 1
c. Representasi Kurva Bentuk Bahu
Daerah yang terletak di tengah – tengah suatu variabel yang
direpresentasikan dalam bentuk segitiga, pada sisi kanan dan kirinya akan naik
dan turun. Himpunan fuzzy ‘bahu’, bukan segitiga, digunakan untuk mengakhiri
variable suatu daerah fuzzy. Bahu kiri bergerak dari benar ke salah, demikian juga
bahu kanan bergerak dari salah ke benar.
Gambar 2.4 Representasi Kurva Bentuk Bahu
2.1.4 Operator Dasar Zadeh untuk Operasi Himpunan Fuzzy
Seperti halnya himpunan konvensional, ada beberapa operasi yang
didefinisikan secara khusus untuk kombinasi dan memodifikasi himpunan fuzzy.
Nilai keanggotaan sebagai hasil dari operasi 2 himpunan sering dikenal dengan domain
c a
µ[x]
0
fire strength atau α-predikat. Ada 3 operator dasar yang diciptakan oleh Zadeh,
yaitu :
a. Operator AND
berhubungan dengan operasi intersection pada himpunan. α
-predika
µA
∩B = min (µA
[x], µB[y])b. Operator O
ni berhubungan dengan operasi union pada himpunan. α
-predika
µAuB = max (
µA
[x], µB[y])c. Operator N
berhubungan dengan operasi komplemen pada himpunan. α
-predika
µA'
= 1-µA
[x] Operator init sebagai hasil operasi dengan operator AND diperoleh dengan mengambil
nilai keanggotaan terkecil antar elemen pada himpunan-himpunan yang
bersangkutan.
R
Operator i
t sebagai hasil operasi dengan operator OR diperoleh dengan mengambil
nilai keanggotaan terbesar antar elemen pada himpunan-himpunan yang
bersangkutan.
OT
Operator ini
t sebagai hasil operasi dengan operator NOT diperoleh dengan
mengurangkan nilai keanggotaan elemen pada himpunan yang bersangkutan dari
11
2.1.5 Aturan Jika-Maka
merupakan suatu keadaan yang dapat dinyatakan
dengan
IF <fuzzy proposition 1> THEN < fuzzy proposition 2>
Suatu fuzz sitio
nggal
alah nilai dari variable linguistic a.
.
dari atomic proposition mempergunakan
nilai dari varaibel linguistic a, dan Y
2.1.6 Fungsi Implikasi
(proposisi) pada basis pengetahuan fuzzy akan
berhub
is B
Secara umu ng dapat digunakan, yaitu :
emotong output himpunan fuzzy. Aturan kabur if-then
penghubung “dan”, “atau”, dan “tidak”
Contoh : a adalah X dan b adalah Y, X
adalah nilai dari variable linguistic b.
Tiap-tiap aturan
ungan dengan suatu relasi fuzzy. Bentuk umum dari aturan yang digunakan
dalam fungsi implikasi adalah :
IF x is A THEN y
m ada 2 fungsi implikasi ya
a. Min (minimum)
b.
menskala output himpunan fuzzy.
2.1.7 Sistem kendali Logika Kabur
Kendali Logika Kabur (Fuzzy Logic Control) merupakan suatu piranti
yang d
Dot (product)
Fungsi ini akan
ipergunakan untuk mengendalikan suatu proses tertentu berdasarkan aturan
penarikan kesimpulan hampiran (Susilo, 2003). Struktru dasar suatu sistem
kendali kabur (Susilo, 2003) adalah :
Gambar 2.5. Struktur dasar suatu sistem kendali kabur 1. Unit Pen
ika kabur bekerja dengan kaidah dan masukan kabur.
Lan
gaburan Sistem kendali log
gkah pertama adalah mengubah masukan tegas yang diterima menjadi
masukan kabur. Untuk setiap variabel masukan ditentukan suatu fungsi
13
pendekatan yang kabur. Fungsi pengaburan itu biasanya ditentukan berdasarkan
beberapa kriteria :
a. Fungsi pengaburan diharapkan mengubah suatu nilai tegas, misalnya a Єà, ke
suatu himpunan kabur à dengan µA(a) = 1, atau sekurang-kurangnya a mempunyai derajat keanggotaan yang tinggi.
b. Bila nilai masukannya cacat karena derau, diharapkan fungsi pengaburan
dapat menekan sejauh mungkin derau itu.
c. Fungsi pengaburan diharapakan dapat membantu menyederhanakan
komputasi yang harus dilakukan oleh sistem tersebut dalam proses
inferensinya.
Contoh fungsi pengaburan :
Fungsi Pengaburan Segitiga memetakan suatu nilai a Є à ke himpuan
kabur à dengan fungsi keanggotaan segitiga. Suatu fungsi keanggotaan
himpunan kabur disebut fungsi keanggotaan segitiga jika mempunyai tiga
buah parameter, yaitu a, b, c Є à dengan a, b, c, dan dinyatakan dengan
Gambar 2.6 Contoh fungsi Keanggotaan Segitiga (x;5,7,9)
Fungsi Pengaburan Gauss memetakan a Є à ke himpunan kabur à dengan
fungsi keanggotaan Gauss, yaitu
Di mana b adalah suatu parameter berupa bilangan positif.
Gambar 2.7 Fungsi Pengaburan Gauss
µÃ(x) = Gauss(x;a,b) =
2. Basis Pengetahuan
Basis pengetahuan dari suatu sistem kendali logika kabur terdiri dari basis
15
himpunan-himpunan kabur yang terkait dengan nilai-nilai linguistik dari
variabel-variabel yang terlibat dalam sistem itu.
Misalkan dalam suatu sistem kendali logika kabur, variabel kecepatan x
dengan semesta selang tertutup [0,140] mempunyai tiga nilai linguistik sebagai
berikut : Lambat, yang dikaitkan dengan himpunan kabur L
Sedang, yang dikaitkan dengan himpunan kabur S
Cepat, yang dikaitkan dengan himpunan kabur C
Maka basis data dari sistem itu memuat fungsi keanggotaan dari
himpunan-himpunan kabur yang terkait itu.
Basis kaidah adalah himpunan implikasi-implikasi kabur yang berlaku sebagai
kaidah dalam sistem itu.
Contoh kaidah dalam suatu sistem kendali kabur :
Jika jumlah kendaraan yang akan melintas SANGAT BANYAK dan
jumlah kendaraan pada arah lain yang mengantri SEDIKIT, maka lama
waktu nyala lampu hijau LAMA.
Jika jumlah kendaraan yang akan melintas SEDANG dan jumlah
kendaraan yang mengantri SEDANG, maka lama waktu nyala lampu hijau
menjadi SEDANG.
3. Unit Penalaran Kabur
Masukan kabur hasil pengolahan unit pengaburan diterima oleh unit penalaran
untuk disimpulkan berdasarkan kaidah-kaidah yang tersedia dalam basis
ponens rampat multikondisonal. Secara umum, bentuk modus ponens pada logika
klasik adalah :
Premis 1 (aturan) : Jika x adalah A, maka y adalah B
Premis 2 (fakta) : x adalah A
Kesimpulan : y adalah B
Aturan penarikan kesimpulan ini dapat digeneralisasi menjadi aturan
penarikan kesimpulan yang diberlakukan untuk premis-premis yang berpredikat
kabur. Secara umum, bentuk modus ponens rampat adalah :
Premis 1 (aturan) : jika x adalah A, maka y adalah B
(merupakan relasi/implikasi kabur → di X x Y) Premis 2 (fakta) : x adalah A′
(dapat dinyatakan dengan himpunan kabur Ã′ dalam X) Kesimpulan : y adalah B′
Diperoleh dengan menetukan himpunan kabur
4. Unit Penegasan
Kesimpulan/keluaran dari sistem kendali kabur adalah suatu himpunan kabur.
Karena suatu sistem hanya dapat mengeksekusikan nilai yang tegas, maka
diperlukan suatu mekanisme untuk mengubah nilai kabur keluaran itu menjadi
17
penegasan dalam sistem itu. Pemilihan fungsi penegasan biasanya ditentukan oleh
beberapa kriteria :
a. Masuk akal, artinya secara intuitif bilangan tegas t(Ã) dapat diterima sebagai
bilangan yang mewakili himpunan kabur Ã, misalnya t(Ã) kuran lebih berada
di tengah-tengah pendukung dari Ã, atau t(Ã) mempunyai derajat keanggotaan
yang tinggi dalam himpunan kabur Ã. Pendukung dari suatu himpunan kabur
Ã, yang dilambangkan dengan Pend (Ã), adalah himpunan tegas yang memuat
semua unsur dari semesta yang mempunyai derajat keanggotaan taknol dalam
Ã.
b. Kemudahan komputasi , yaitu diharapkan fungsi penegasan itu cukup mudah
dan sederhana dalam proses komputasinya untuk menghasilkan bilangan tegas
keluarannya.
c. Kontiyu, artinya perubahan kecil pada à tidak akan mengakibatkan perubahan
besar pada t(Ã).
Dalam literatur dikenal beberapa fungsi penegasan, di antaranya adalah :
Purata Maksimum (Mean of Maximum) : Himpunan kabur à dalam semesta à
diubah menjadi bilangan tegas t(Ã) yang merupakan purta dari semua nilai
yang mencapai nilai maksimum dalam µÃ, yaitu
Di mana M = { x Єà| µÃ(x) = Tinggi(Ã)}.
Apabila M = [a,b], maka t(Ã) = Bila himpunan kabur à terdefinisi
pada semesta berhingga X = {x1,x2,...,xn}, maka bilangan tegas t(Ã) a + b
didefinisikan sebagai rerata dari semua nilai dalam himpunan tegas M = {x, Є
X | µÃ(xi)} = Tinggi (Ã)}, yaitu
di mana | M | menyatakan banyaknya anggota dari himpunan tegas M.
Rerata Pusat (Center Average) : Kalau himpunan kabur à dalam semesta à
merupakan gabungan dari m buah himpunan kabur, yaitu
maka à diubah menjadi bilangan tegas t(Ã) yang merupakan rerata terbobot
dari pusat-pusat m buah himpunan kabur tersebut, dengan tinggi
masing-masing himpunan kabur itu sebagai bobotnya. Jadi
di mana xi adalah pusat dari himpunan kabur Ãi dan bi = Tinggi (Ãi).
2.1.8 Variasi Sistem Kendali Kabur Tsukamoto
Tsukamoto (1979) mengembangkan variasi sistem kendali himpunan
kabur yang dipakai untuk menyatakan predikat kabur pada bagian konsekuen dari
kaidah-kaidah sistemnya mempunyai fungsi keanggotaan yang monoton (naik
atau turun), misalnya fungsi keanggotaan sigmoid. Akibatnya, masing-masing
kaidah akan menghasilkan keluaran berupa nilai tegas yang diimbas oleh daya
sulut pada kaidah yang bersangkutan. Bentuk umum kaidah ke-i sistem tersebut
19
Bila x1 adalah Ai1 dan ... dan xn adalah Ain, maka y adalah Bi
di mana Bi adalah predikat kabur yang direpresentasikan dengan himpunan kabur
Bi dengan fungsi keanggotaan yang monoton untuk i = 1, ..., m (dengan m adalah
banyaknya kaidah dalam sistem itu). Maka setiap masukan x = (xi,...,xn) akan
menghasilkan daya sulut wi yang mengimbas keluaran tegas yi untuk kaidah ke-i .
kesimpulan akhir y diperoleh dengan menghitung rerata terbobot dari semua
keluaran yi tersebut dengan bobot daya sulutnya, yaitu :
∑
di mana wi adalah daya sulut untuk kaidah ke-i. Sistem ini seringkali disebut
sistem kabur Tsukamoto. Sistem Tsukamoto juga menyederhanakan komputasi
karena tidak memerlukan fungsi penegasan (Susilo, 2006).
2.2 Java
Java adalah bahasa pemrograman serbaguna (Abdul Kadir, 2004). Java
mendukung sumber daya Internet yang saat ini populer, yaitu World Wide Web.
Java juga mendukung aplikasi klien/server, baik dalam jaringan lokal (LAN)
maupun jaringan berskala luas (WAN). Java dikembangkan oleh Sun Microsistem
pada Agustus 1991, dengan nama semula Oak.
Program java bersifat tidak bergantung pada platform, artinya, Java dapat
dijalankan pada sembarang komputer dan bahkan pada sembarang sistem operasi.
portabilitas. Yang menarik, tingkat portabilitas Java tidak hanya sebatas pada
program sumber (source code), melainkan juga pada tingkat kode biner yang
disebut bytecode.
Kode yang disebut bytecode dapat dijalankan pada berbagai sistem operasi
karena kode ini berbeda dengan kode mesin. Kode mesin sangat bergantung pada
platform, sedangkan bytecode dapat dimengerti oleh semua platform yang telah
dilengkapi dengan interpreter Java.
Java juga merupakan bahasa pemrograman berorientasi objek, Java
menggunakan kelas untuk membentuk suatu objek. Pewarisan adalah salah satu
sifat yang ada pada bahasa pemrograman berorientasi objek, yang memungkinkan
sifat-sifat suatu objek diturunkan dengan mudah ke objek lain.
Program Java dapat dibedakan menjadi dua jenis, yaitu applet dan aplikasi.
• Applet adalah program yang dibuat dengan Java, dapat diletakkan pada
Web server dan diakses melalui Web browser. Browser yang digunakan
adalah yang memiliki kemampuan Java (misalnya Netscape Navigator,
Internet Explorer, dan HotJava).
• Aplikasi adalah program yang dibuat dengan Java yang bersifat umum. Aplikasi dapat dijalankan secara langsung, tidak perlu perangkat lunak
21
2.3 Arus Lalu Lintas
Perhitungan dilakukan per satuan jam untuk satu atau lebih periode,
misalnya didasarkan pada kondisi arus lalu lintas rencan jam puncak pagi, siang,
dan sore (MKJI, 1997).
Arus lalu lintas untuk setiap gerakan dikonversi dari kendaraan per jam
menjadi menjadi satuan mobil penumpang perjam dengan menggunakan ekivalen
kendaraan penumpang.
Satuan mobil penumpang adalah satuan arus lalu lintas dari berbagai tipe
kendaraan yang diubah menjadi kendaraan ringan (termasuk mobil penumpang)
dengan menggunakan faktor emp. Ekivalen mobil penumpang (emp) adalah faktor
dari berbagai tipe kendaraan sehubungan dengan keperluan waktu lampu hijau
untuk keluar dari antrian apabila dibandingkan dengan sebuah kendaraan ringan.
Tabel 2.1. Tabel Ekivalen Mobil Penumpang
Jenis kendaraan emp
Kendaraan bermotor dua as beroda 4 dengan jarak as 2,0 - 3,0 m
(termasuk mobil penumpang, opelet, mikrobis, pick-up dan truk kecil
• HV ( Kendaraan Berat )
Kendaraan bermotor dengan jarak as lebih dari 3,50 m, biasanya beroda
lebih dari 4 (termasuk bis, truk 2 as, truk 3 as dan truk kombinasi sesuai
sistem klasifikasi Bina Marga).
• MC ( Sepeda Motor )
Kendaraan bermotor beroda dua atau tiga (termasuk sepeda motor dan
BAB III
ANALISIS DAN PERANCANGAN
3.1 Pembentukan Variabel Lingusitik
Dalam Program Pengaturan Lampu Lalu Lintas ini ada 3 variabel linguistik
yaitu 2 variabel input dan 1 variabel output. Variabel input yaitu variabel jumlah
kepadatan / kendaraan dalam satuan smp/antrian, ada 2 variabel input yaitu
variabel jalur yang diatur dan variabel jalur yang menunggu. Untuk variabel input
dibagi menjadi 4 variabel sesuai dengan jalurnya. Masing-masing variabel terbagi
atas 4 himpunan yaitu TIDAK PADAT (TP), CUKUP PADAT (CP), PADAT (P),
dan SANGAT PADAT (SP) dalam semesta pembicaraan (nilai yang
diperbolehkan untuk dioperasikan dalam suatu variabel) yaitu [0,80].
Sedangkan variabel output yaitu variabel keluaran waktu lampu hijau
menyala pada jalur yang diatur dalam satuan detik. Variabel waktu lampu hijau
menyala dibagi menjadi 4 variabel sesuai dengan jalurnya. Variabel output terbagi
atas 4 himpunan yaitu CEPAT (C), AGAK CEPAT (AC), AGAK LAMA (AL),
dan LAMA (L) dalam semesta pembicaraan [0,60].
Nilai batas-batas himpunan untuk masing-masing variabel di dapat dari data
hasil pengamatan lapangan yang sudah diolah. Pengamatan lapangan dilakukan
pada tanggal 31 Maret 2008 sampai 6 April 2008, dengan waktu pengambilan
data yang berbeda-beda. Untuk menentukan nilai batas himpunan variabel jalur
yaitu dari data hasil pengamatan lapangan dikonfersikan terlebih dahulu ke dalam
satuan smp/antrian menurut jenis-jenis kendaraan. Lalu di dapat data jumlah
kendaraan terkecil dan terbesar. Data jumlah kendaraan terkecil dijadikan batas
himpunan TIDAK PADAT (TP) sedangkan data jumlah kendaraan terbesar
dijadikan batas himpunan SANGAT PADAT (SP). Setelah itu data terbesar tadi
dikurangi data terkecil, lalu hasilnya dibagi 3. Hasil pembagiannya ditambahkan
dengan batas TIDAK PADAT (TP) dan akan diperoleh batas himpunan CUKUP
PADAT (CP), selanjutnya batas CP ditambahkan dengan hasil pembagiannya tadi
dan akan diperoleh batas himpunan PADAT (P).
3.1.1Variabel Jalur S (xS)
Yang dimaksud jalur S di sini adalah jumlah kendaraan pada jalur selatan.
Variabel jalur S dibagi menjadi 4 himpunan Fuzzy yaitu TIDAK PADAT (TP),
CUKUP PADAT (CP), PADAT (P), SANGAT PADAT (SP). Untuk himpunan
TIDAK PADAT (TP) dan SANGAT PADAT (SP) menggunakan pendekatan
fungsi keanggotaan berbentuk bahu, sedangkan himpunan CUKUP PADAT (CP)
dan PADAT (P) menggunakan pendekatan fungsi keanggotaan berbentuk
segitiga.
25
Fungsi keanggotaan pada jalur S dapat dirumuskan sebagai berikut :
1 xS ≤ 2,2
Yang dimaksud jalur B di sini adalah jumlah kendaraan pada jalur barat.
Variabel jalur B dibagi menjadi 4 himpunan Fuzzy yaitu TIDAK PADAT (TP),
CUKUP PADAT (CP), PADAT (P), SANGAT PADAT (SP). Untuk himpunan
TIDAK PADAT (TP) dan SANGAT PADAT (SP) menggunakan pendekatan
dan PADAT (P) menggunakan pendekatan fungsi keanggotaan berbentuk
segitiga.
Gambar 3.2 Fungsi keanggotaan pada Variabel jalur B
Fungsi keanggotaan pada jalur B dapat dirumuskan sebagai berikut :
1 xB ≤ 13,4
µTP[xB] = 29,7 - xB 13,4 ≤xB≤ 29,7 16,3
0 xB≥ 29,7
0 xB ≤ 13,4 atau xB ≥ 46
µCP[xB] = xB– 13,4 13,4≤ xB ≤ 29,7 16,3
46– xB 29,7 ≤ xB≤ 46 16,3
0 xB≤ 29,7 atau xB ≥ 62,4
µP[xB] = xB– 29,7 29,7 ≤ xB ≤ 46 16,3
62,4– xB 46 ≤ xB ≤ 62,4 16,3
0 xB≤ 46
µSP[xB] = xB– 46 46 ≤xB≤ 62,4 16,3
27
3.1.3 Variabel Jalur U (xU)
Yang dimaksud jalur U di sini adalah jumlah kendaraan pada jalur utara.
Variabel jalur U dibagi menjadi 4 himpunan Fuzzy yaitu TIDAK PADAT (TP),
CUKUP PADAT (CP), PADAT (P), SANGAT PADAT (SP). Untuk himpunan
TIDAK PADAT (TP) dan SANGAT PADAT (SP) menggunakan pendekatan
fungsi keanggotaan berbentuk bahu, sedangkan himpunan CUKUP PADAT (CP)
dan PADAT (P) menggunakan pendekatan fungsi keanggotaan berbentuk
segitiga.
Gambar 3.3 Fungsi keanggotaan pada Variabel jalur U
Fungsi keanggotaan pada jalur U dapat dirumuskan sebagai berikut :
1 xU≤ 3
µTP[xU] = 7,2 - xU 3 ≤xU≤ 7,2 4,2
0 xU≥ 7,2
0 xU ≤ 3 atau xU ≥ 11,4
µCP[xU] = xU– 3 3 ≤xU≤ 7,2 4,2
0 xU≤ 7,2 atau xU ≥ 15,6
µP[xU] = xU – 7,2 7,2 ≤ xU ≤ 11,4 4,2
15,6 – xU 11,4 ≤ xU ≤ 15,6 4,2
0 xU ≤ 11,4
µSP[xU] = xU – 11,4 11,4 ≤xU≤ 15,6 4,2
1 xU≥ 15,6
3.1.4 Variabel Jalur T (xT)
Yang dimaksud jalur T di sini adalah jumlah kendaraan pada jalur timur.
Variabel jalur T dibagi menjadi 4 himpunan Fuzzy yaitu TIDAK PADAT (TP),
CUKUP PADAT (CP), PADAT (P), SANGAT PADAT (SP). Untuk himpunan
TIDAK PADAT (TP) dan SANGAT PADAT (SP) menggunakan pendekatan
fungsi keanggotaan berbentuk bahu, sedangkan himpunan CUKUP PADAT (CP)
dan PADAT (P) menggunakan pendekatan fungsi keanggotaan berbentuk
segitiga.
29
Fungsi keanggotaan pada jalur T dapat dirumuskan sebagai berikut :
1 xT≤ 9,9
3.1.5 Variabel LampuHijau S (zS)
Yang dimaksud LampuHijau S disini adalah waktu lampu hijau menyala
pada jalur selatan. Variabel LampuHijau S dibagi menjadi 4 himpunan Fuzzy
yaitu CEPAT (C), AGAK CEPAT (AC), AGAK LAMA (AL) dan LAMA (L).
Untuk himpunan CEPAT (C) dan LAMA (L) menggunakan pendekatan fungsi
AGAK LAMA (AL) menggunakan pendekatan fungsi keanggotaan berbentuk
segitiga.
Gambar 3.5 Fungsi keanggotaan pada Variabel LampuHijau S
Fungsi keanggotaan pada Variabel LampuHijau S dapat dirumuskan sebagai
berikut :
1 zS ≤ 11
µC[zS] = 15 - zS 11 ≤zS≤ 15 4
0 zS ≥ 15
0 zS ≤ 11 atau zS ≥ 19
µAC [zS] = zS – 11 11 ≤ zS ≤ 15 4
19 – zS 15 ≤ zS≤ 19 4
0 zS≤ 15 atau zS ≥ 23
µAL[zS] = zS – 15 15 ≤ zS ≤ 19
4
31
0 zS≤ 19
µL[zS] = zS – 19 19≤ zS ≤ 23 4
1 zS ≥ 23
3.1.6 Variabel LampuHijau B (zB)
Yang dimaksud LampuHijau B di sini adalah waktu lampu hijau menyala
pada jalur barat. Variabel LampuHijau B dibagi menjadi 4 himpunan Fuzzy yaitu
CEPAT (C), AGAK CEPAT (AC), AGAK LAMA (AL) dan LAMA (L). Untuk
himpunan CEPAT (C) dan LAMA (L) menggunakan pendekatan fungsi
keanggotaan berbentuk bahu, sedangkan himpunan AGAK CEPAT (AC) dan
AGAK LAMA (AL) menggunakan pendekatan fungsi keanggotaan berbentuk
segitiga.
Gambar 3.6 Fungsi keanggotaan pada Variabel LampuHijau B
Fungsi keanggotaan pada Variabel LampuHijau B dapat dirumuskan sebagai
berikut :
1 zB ≤ 32
µC[zB] = 36 - zB 32 ≤zB≤ 36 4
0 zB≤ 32 atau zB ≥ 40
µAC[zB] = zB – 32 32 ≤ zB ≤ 36 4
40 – zB 36≤ zB ≤ 40
4
0 zB≤ 36 atau zB ≥ 44
µAL[zB] = zB – 36 36 ≤ zB ≤ 40 4
44 – zB 40 ≤ zB ≤ 44 4
0 zB≤ 40
µL[zB] = zB– 40 40 ≤zB≤ 44 4
1 zB ≥ 44
3.1.7 Variabel LampuHijau U (zU)
Yang dimaksud LampuHijau U di sini adalah waktu lampu hijau menyala
pada jalur utara. Variabel LampuHijau U dibagi menjadi 4 himpunan Fuzzy yaitu
CEPAT (C), AGAK CEPAT (AC), AGAK LAMA (AL) dan LAMA (L). Untuk
himpunan CEPAT (C) dan LAMA (L) menggunakan pendekatan fungsi
keanggotaan berbentuk bahu, sedangkan himpunan AGAK CEPAT (AC) dan
AGAK LAMA (AL) menggunakan pendekatan fungsi keanggotaan berbentuk
33
Gambar 3.7 Fungsi keanggotaan pada Variabel LampuHijau U
Fungsi keanggotaan pada Variabel LampuHijau U dapat dirumuskan sebagai
berikut
1 zU≤ 14
µC[zU] = 18 - zU 14 ≤ zU ≤ 18 4
0 zU ≥ 18
0 zU≤ 14 atau zU ≥ 22
µAC[zU] = zU – 14 14 ≤ zU ≤ 18 4
22 – zU 18 ≤ zU ≤ 22
4
0 zU ≤ 18 atau zU ≥ 26
µAL[zU] = zU – 18 18 ≤zU ≤ 22 4
26 – zU 22≤ zU≤ 26 4
0 zU≤ 22
µL[zU] = zU – 22 22 ≤ zU ≤ 26 4
3.1.8 Variabel LampuHijau T (zT)
Yang dimaksud LampuHijau T di sini adalah waktu lampu hijau menyala
pada jalur timur. Variabel LampuHijau T dibagi menjadi 4 himpunan Fuzzy yaitu
CEPAT (C), AGAK CEPAT (AC), AGAK LAMA (AL) dan LAMA (L). Untuk
himpunan CEPAT (C) dan LAMA (L) menggunakan pendekatan fungsi
keanggotaan berbentuk bahu, sedangkan himpunan AGAK CEPAT (AC) dan
AGAK LAMA (AL) menggunakan pendekatan fungsi keanggotaan berbentuk
segitiga.
Gambar 3.8 Fungsi keanggotaan pada Variabel LampuHijau T
Fungsi keanggotaan pada Variabel LampuHijau T dapat dirumuskan sebagai
berikut :
1 zT ≤ 22
µC[zT] = 26 - zT 22 ≤zT≤ 26 4
0 zT ≥ 26
0 zT ≤ 22 atau zT ≥ 30
µAC [zT] = zT– 24 22 ≤zT≤ 26 4
35
0 zT≤ 26 atau zT ≥ 34
µAL[zT] = zT – 26 26 ≤ zT ≤ 30
4
34 – zT 30 ≤ zT ≤ 34
4
0 zT ≤ 30
µL[zT] = zT– 30 30 ≤zT≤ 34 4
1 zT≥ 34
3.2 Aturan Logika Fuzzy
Dalam program ini terdapat 16 aturan setiap jalurnya. Jalur yang
mempengaruhi waktu lampu hijau menyala pada tiap jalur adalah jalur yang
menunggu yaitu jalur sebelah kirinya. Jalur selatan dipengaruhi jalur barat, jalur
barat dipengaruhi jalur utara, jalur utara dipengaruhi jalur timur, dan jalur timur
dipengaruhi jalur selatan. Aturan-aturan tersebut diterjemahkan ke dalam aturan
JIKA – MAKA. Contoh pembacaan tabel aturan logika Fuzzy :
R1 : JIKA jumlah kendaraan pada jalur yang diatur TIDAK PADAT dan
jumlah kendaraan pada jalur yang menunggu TIDAK PADAT MAKA
Aturan-aturan yang di pakai dapat di lihat dalam tabel di bawah.
Tabel 3.1 Tabel aturan jika-maka
Jalur yang diatur TP CP P SP
3.3 Contoh Penerapan Logika Fuzzy
Dimisalkan data inputan diambil dari pengambilan data jumlah kendaraan
pada hari senin tanggal 31 Maret 2008 ( data dapat dilihat pada lampiran ) .
Tabel 3.2 Tabel Data Mentah Jumlah Kendaraan
Jalur Selatan Jalur Barat Jalur Utara Jalur Timur I II III IV I II III IV I II III IV I II III IV
LV 5 5 5 4 15 12 16 17 4 4 2 2 13 9 5 6
HV 1 0 1 0 5 3 8 6 0 0 1 3 5 2 5 4
MC 25 29 25 31 79 74 72 54 26 28 36 17 64 50 51 58
Tabel 3.3 Tabel Data Jumlah Kendaraan yang sudah dikonfersikan ke dalam smp
Jalur Selatan Jalur Barat Jalur Utara Jalur Timur I II III IV I II III IV I II III IV I II III IV
Dari hasil rata-rata tiap jalur tersebut selanjutnya ditentukan derajat
37
Tabel 3.4 Derajat Keanggotaan
Jalur S Jalur B Jalur U Jalur T
µ[TP] 0 0 0 0
µ[CP] 0,59 0,61 0,42 0,40
µ[ P] 0,40 0,39 0.58 0,59
µ[SP] 0 0 0 0
Setelah masing-masing mendapatkan derajat keanggotaanya, kemudian
dicari nilai α-predikat (fire strength) melalui operasi AND yaitu dengan
mengambil derajat keanggotaan terkecil untuk setiap aturan.
µA
∩B = min (µA
[x], µB[y])Selanjutnya nilai α-predikat (fire strength) digunakan untuk menentukan
nilai z untuk setiap aturan. Untuk lebih jelasnya terlihat dalam Tabel 3.6.
Tabel 3.5 α-predikat dan z
Jalur Selatan Jalur Barat Jalur Utara Jalur Timur
-R13 0 19 0 40 0 22 0 30
R14 0 19 0 40 0 22 0 30
R15 0 23 0 44 0 26 0 34
R16 0 23 0 44 0 26 0 34
Setelah masing-masing variabel mendapatkan nilai α-predikat dan z untuk
setiap aturan, maka Z untuk setiap jalur dapat dicari dengan cara sebagai berikut :
∑
=Maka diperoleh nilai Z untuk setiap jalur, terlihat dalam Tabel 3.7
Tabel 3.6 Nilai Z
Output waktu lampu hijau menyala yang diperoleh kemudian dibulatkan
yaitu untuk jalur selatan = 15 detik, jalur barat = 36 detik, jalur utara =18 detik,
dan jalur timur = 26 detik.
3.4 Perancangan Sistem
Program bantu pengaturan lampu lalu lintas ini mengambil studi kasus
pada perempatan jalan. Inputan dari program ini adalah jumlah kepadatan
39
mempunyai jumlah kepadatan yang berbeda-beda. Jumlah kepadatan saling
mempengaruhi waktu lampu hijau menyala pada jalur lain. Setelah semua inputan
dimasukkan lalu inputan akan dikonfersikan berdasarkan satuan mobil
penumpang. Setelah itu dihitung derajat keanggotaan dan fire-strenght untuk
masing-masing jalur. Keluaran dari program ini adalah waktu lampu hijau
menyala dalam satuan detik pada tiap-tiap jalur agar antriannya dapat
diminimalkan. Gambar 3.9 berisi tentang flowchart yang digunakan untuk
memahami jalannya program.
3.5 Analisis Sistem
Analisis sistem adalah suatu teknik penyelesaian masalah yang membagi
sistem ke dalam bagian-bagian komponen kecil dengan tujuan agar bagian-bagian
dari komponen tersebut dapat bekerja dan berinteraksi dengan baik untuk
melengkapi tujuannya. Tujuan dari analisis sistem adalah membuat pemetaan
awal mengenai perilaku yang diisyaratkan dalam sistem aplikasi ke dalam
elemen-elemen pemodelan.
3.5.1Use Case Diagram
Gambar 3.10Use Case Diagram
Gambar 3.10 merupakan Use Case Diagram dari Program Bantu
Pengaturan Lampu Lalu Lintas. Penggunan use case ditujukan untuk
menggambarkan secara keseluruhan mengenai peran user yang terlibat dalam
41
terdapat 1 aktor saja yaitu user. User dapat melakukan semua proses yaitu input
data, lihat data, ubah data, hitung lampu hijau, lihat detail perhitungan, dan ubah
batas himpunan. Proses lihat data, ubah data, hitung lampu hijau, lihat detail
perhitungan dapat dijalankan apabila proses input data sudah selesai dijalankan.
3.5.2 Context Diagram
Gambar 3.11Context Diagram
Diagram konteks sistem terlihat pada gambar 3.11. Terdapat 1 entitas luar
yaitu user. Program mendapat inputan dari user berupa data-data jumlah
kendaraan untuk masing-masing jalur dan batas himpunan. Dan keluaran dari
program berupa informasi detail batas himpunan dan waktu lampu hijau menyala
untuk masing-masing jalurnya.
3.5.3 Decompotition Diagram
Program Bantu Pengaturan Lalu Lintas terbagi menjadi 6 proses yang
semuanya terdapat pada level 1 yaitu input data, lihat data, ubah data, hitung
lampu hijau, lihat detail perhitungan, dan ubah batas himpunan.
3.5.4 Data Flow Diagram
Gambar 3.13Data Flow Diagram
Pada Data Flow Diagram (DFD) pada gambar 3.13 terdapat 4 proses yaitu
proses input data, ubah data, hitung lampu hijau dan ubah batas himpunan. Pada
proses input data, user menginputkan jumlah kendaraan yang nantinya akan
dikonfersikan dalam satuan mobil penumpang (smp). Proses ubah data inputan
berfungsi untuk mengubah data yang sudah di inputkan. Pada proses ubah batas
himpunan, user menginputkan nilai batas himpunan untuk setiap variabelnya,
data-data batas himpunan tersebut disimpan dalam database BatasHimp. Proses
43
dikonfersikan ke dalam satuan mobil penumpang (smp) dan data batas himpunan
yang diambil dari database BatasHimp. Pada proses hitung lampu hijau ini akan
di hitung derajat keanggotaan dan fire strength, dan hasil akhirnya di dapat waktu
lampu hijau menyala untuk masing-masing jalur.
3.6 Perancangan Struktur Data
Tabel yang diperlukan dalam Program Bantu Pengaturan Lampu Lalu
Lintas yaitu tabel BatasHimp. Tabel BatasHimp digunakan untuk menyimpan
batas himpunan masing-masing variabel.
Tabel 3.7. Tabel BatasHimp
Nama Field Type Keterangan
NamaVar Varchar(15) Nama Variabel
Batas1 Double Nilai batas 1
Batas2 Double Nilai batas 2
Batas3 Double Nilai batas 3
Batas4 Double Nilai batas 4
3.7 Rancangan Antar Muka
3.7.1 Form Utama
Pertama kali user masuk, akan ditampilkan form utama. Dalam form utama
terdapat tombol masuk yang digunakan untuk masuk ke dalam halaman
MASUK PROGRAM BANTU
PENGATURAN LAMPU LALU LINTAS MENGGUNAKAN LOGIKA FUZZY
gambar
Gambar 3.14 Rancangan Antar Muka Form Utama
3.7.2 Form Perhitungan
Dalam form perhitungan terdapat 2 menu utama yaitu File dan Help. Menu
File mempunyai sub menu yaitu sub menu Aturan Logika Fuzzy berfungsi untuk
menuju form Aturan Logika Fuzzy yang menampilkan aturan-aturan fuzzy yang di
pakai dalam perhitungan program. Dan sub menu keluar berfungsi untuk keluar
dari program. Menu Help mempunyai sub menu yaitu Petunjuk dan About. Sub
menu petunjuk berfungsi untuk menuju ke form petunjuk yang menampilkan
petunjuk penggunaan program. Sub menu About untuk menampilkan profile
penulis. Di form ini, user diminta memasukkan inputan yaitu jumlah kendaraan
berdasarkan jenisnya yaitu LV, HV, dan MC. Sebelum memasukkan inputan
jumlah kendaraan, user di minta untuk memilih jumlah inputan (jumlah putaran
lampu merah) terlebih dahulu. Tombol input berfungsi untuk memasukkan
inputan data. Kotakan output untuk menampilkan hasil perhitungan yaitu waktu
lampu hijau menyala setiap jalurnya. Setelah semua data dimasukkan, tombol
45
yang telah di inputkan. Tombol ubah berfungsi untuk megubah data inputan.
Tombol (<) dan (>) berfungsi untuk bergeser ke data sebelumnya dan sesudahnya.
Tombol proses untuk melakukan perhitungan dan menampilkan output. Tombol
proses akan aktif apabila data inputan sudah dimasukkan semua. Tombol detail
perhitungan untuk menampilkan derajat keanggotaan dan α-predikat (fire
strength) setiap jalur. Tombol detail perhitungan akan aktif apabila tombol proses
sudah ditekan. Tombol ubah batas himpunan digunakan untuk menuju ke form
maintenance batas himpunan. Tombol refresh untuk menampilkan halaman
File Help
PERHITUNGAN WAKTU LAMPU HIJAU MENYALA
LV : Kendaraan ( mobil penumpang ) HV : Kendaraan Berat (Bis, Truk, dll) MC : Sepeda Motor
Waktu Lampu Hijau Menyala :
JALUR SELATAN detik
Gambar 3.15 Rancangan Antar Muka Form Perhitungan
3.7.3 FormMaintenance Batas Himpunan
Form ini berfungsi untuk mengubah batas-batas himpunan untuk
47
tabbedPane yaitu tab variabel jalur dan tab variabel lampu hijau. Dalam setiap tab
terdapat combobox untuk memilih variabel-variabel dan textfield untuk
mengisikan inputan batas himpunan masing-masing variabel. Tombol Ubah untuk
mengaktifkan textfield dan meng-edit data batas-batas himpunan. Tombol Simpan
untuk menyimpan hasil perubahan ke dalam database dan menampilkan
perubahan pada tabel yang terdapat pada form Maintenance Batas Himpunan.
Nama Variabel
Gambar 3.16 Rancangan Antar Muka Form Maintenance Batas Himpunan
3.7.4 FormDetail Perhitungan
Form detail perhitungan berfungsi untuk menampilkan data inputan, derajat
... ...
R16 … ... … ... … … … … R2 … ... … ... … … … … R1 … ... … ... … … … …
Aturan predikat z predikat z predikat z predikat z Jalur Selatan Jalur Barat Jalur Utara Jalur Timur Alfa Predikat
Nilai Z ... ... ... ... Jalur Selatan Jalur Barat Jalur Utara Jalur Timur Nilai Z
miu_SangatPadat … … … ... miu_Padat … … … … miu_CukupPadat … … … … miu_TidakPadat ... … … …
Jalur Selatan Jalur Barat Jalur Utara Jalur Timur Derajat Keanggotaan
DETAIL PERHITUNGAN
Jalur Timur : … smp/jam
Jalur Utara : … smp/jam
Jalur Barat : … smp/jam
Jalur Selatan : … smp/jam Data Inputan
BAB IV
IMPLEMENTASI DAN ANALISA HASIL
4.1 Implementasi
Perancangan sistem yang sudah dilakukan selanjutnya diimplementasikan ke dalam program. Program dibuat dengan menggunakan bahasa pemrograman
Java.
4.1.1 Implementasi Fungsi Keanggotaan
51
Listing program di atas digunakan untuk mencari derajat keanggotaan untuk setiap fungsi keanggotaan dari suatu masukan jml_S. Variabel S_1, S_2, S_3, S_4 merupakan variabel-variabel batas himpunan untuk jalur selatan yang diambil dari database.
4.1.2 Implementasi Aturan Kabur
Implementasi aturan kabur setiap variabel untuk menghitung nilai z untuk setiap aturan dengan menggunakan fungsi MIN pada aplikasi fungsi implikasinya. Untuk aturan jalur selatan di pengaruhi oleh jalur sebelah kirinya yaitu jalur barat. Sebagai contoh aturan untuk jalur selatan dapat dilihat pada potongan program di bawah ini :
double LampuS_1 = BatasHimp.LampuHijauS_Batas1(); double LampuS_2 = BatasHimp.LampuHijauS_Batas2(); double LampuS_3 = BatasHimp.LampuHijauS_Batas3(); double LampuS_4 = BatasHimp.LampuHijauS_Batas4(); output_rule_s = new double[16];
u_output_s = new double[16]; // R1
output_rule_s[0] = Find_Min(u_jalur_s_tp, u_jalur_b_tp); u_output_s[0] = LampuS_2 - (2 * output_rule_s[0]); // R2
output_rule_s[1] = Find_Min(u_jalur_s_tp, u_jalur_b_cp); u_output_s[1] = LampuS_2 - (2 * output_rule_s[1]); // R3
output_rule_s[2] = Find_Min(u_jalur_s_tp, u_jalur_b_p); u_output_s[2] = LampuS_2 - (2 * output_rule_s[2]); // R4
output_rule_s[3] = Find_Min(u_jalur_s_tp, u_jalur_b_sp); u_output_s[3] = LampuS_2 - (2 * output_rule_s[3]); // R5
output_rule_s[4] = Find_Min(u_jalur_s_cp, u_jalur_b_tp); u_output_s[4] = LampuS_1 + (2 * output_rule_s[4]); // R6
output_rule_s[6] = Find_Min(u_jalur_s_cp, u_jalur_b_p); u_output_s[6] = LampuS_2 - (2 * output_rule_s[6]); // R8
output_rule_s[7] = Find_Min(u_jalur_s_cp, u_jalur_b_sp); u_output_s[7] = LampuS_2 - (2 * output_rule_s[7]); // R9
output_rule_s[8] = Find_Min(u_jalur_s_p, u_jalur_b_tp); u_output_s[8] = LampuS_2 + (4 * output_rule_s[8]); // R10
output_rule_s[9] = Find_Min(u_jalur_s_p, u_jalur_b_cp); u_output_s[9] = LampuS_2 + (4 * output_rule_s[9]); // R11
output_rule_s[10] = Find_Min(u_jalur_s_p, u_jalur_b_p); u_output_s[10] = LampuS_3 - (4 * output_rule_s[10]); // R12
output_rule_s[11] = Find_Min(u_jalur_s_p, u_jalur_b_sp); u_output_s[11] = LampuS_3 - (4 * output_rule_s[11]); // R13
output_rule_s[12] = Find_Min(u_jalur_s_sp, u_jalur_b_tp); u_output_s[12] = LampuS_3 + (3 * output_rule_s[12]); // R14
output_rule_s[13] = Find_Min(u_jalur_s_sp, u_jalur_b_cp); u_output_s[13] = LampuS_3 + (3 * output_rule_s[13]); // R15
output_rule_s[14] = Find_Min(u_jalur_s_sp, u_jalur_b_p); u_output_s[14] = LampuS_4 - (3 * output_rule_s[14]); // R16
output_rule_s[15] = Find_Min(u_jalur_s_sp, u_jalur_b_sp); u_output_s[15] = LampuS_4 - (3 * output_rule_s[15]);
Pada listing program di atas, variabel LampuS_1, LampuS_2, LampuS_3, LampuS_4 merupakan variabel-variabel batas himpunan untuk LampuHijauS yang diambil dari database.
4.1.3 Implementasi Hitung Rata-Rata Terbobot
53
Sebagai contoh implementasi hitung rata-rata terbobot untuk jalur selatan dapat dilihat pada potongan program di bawah ini :
double s = 0;
Waktu lampu hijau menyala yang ditampilkan pada program merupakan hasil pembulatan.
4.2 Hasil Implementasi 4.2.1 Form Utama
Pertama kali user masuk program, akan ditampilkan form utama. Pada form Utama terdapat tombol Masuk yang berfungsi untuk menuju ke form Perhitungan.
4.2.2 Form Perhitungan
Form Perhitungan merupakan tampilan yang berfungsi untuk menginputkan data jumlah kendaraan, memprosesnya dan menampilkan output waktu lampu hijau menyala. Pada form perhitungan terdapat 2 menu yaitu menu File dan menu Help. Menu File terdiri dari 2 sub menu yaitu Aturan Logika Fuzzy yang berfungsi untuk menuju ke form aturan logika fuzzy yang menampilkan aturan-aturan logika fuzzy yang dipakai dalam program serta cara pembacaan aturan-aturan tersebut. Serta sub menu keluar yang berfungsi untuk keluar dari program. Menu Help terdiri dari 2 sub menu yaitu sub menu petunjuk berfungsi untuk menuju ke form petunjuk yang menampilkan petunjuk penggunaan program. Sub menu
55
berfungsi untuk bergeser ke data sebelumnya dan sesudahnya. Tombol proses untuk melakukan perhitungan dan menampilkan output. Tombol proses akan aktif apabila data inputan sudah dimasukkan semua. Tombol detail perhitungan untuk menampilkan derajat keanggotaan dan α-predikat (fire strength) setiap jalur. Tombol detail perhitungan akan aktif apabila tombol proses sudah ditekan. Tombol ubah batas himpunan digunakan untuk menuju ke form maintenance batas himpunan. Tombol refresh untuk menampilkan halaman perhitungan yang baru. Dan tombol keluar berfungsi untuk keluar dari program.
4.2.3 Form Maintenance Batas Himpunan
Form Maintenance Batas Himpunan digunakan untuk menset-up nilai batas himpunan untuk masing-masing variabel yang nantinya digunakan untuk menghitung nilai derajat keanggotaan. Pada Form Maintenance Batas Himpunan terdapat 2 TabbedPane yaitu TabbedPane Variabel Jalur untuk menampilkan dan menset-up batas himpunan untuk variabel jalur dan TabbedPane Variabel Lampu Hijau menampilkan dan menset-up batas himpunan untuk variabel lampu hijau. Tombol Ubah berfungsi untuk mengubah textfield menjadi editable sehingga data dalam textfield dapat diubah dengan data yang baru. Tombol Simpan berfungsi untuk menyimpan perubahan data ke dalam tabel batas himpunan. Tombol simpan akan aktif apabila tombol ubah sudah di tekan. Tombol kembali berfungsi untuk menuju ke form perhitungan.
57
Gambar 4.4 FormMaintenance Batas Himpunan untuk Variabel Lampu Hijau
4.2.4 Form Detail Perhitungan
Form detail perhitungan berfungsi untuk menampilkan detail perhitungan dari program. Form ini menampilkan data inputan, derajat keanggotaan ,α-predikat (fire strength) dan nilai Z untuk setiap jalur.
4.3 Analisa Hasil
Pengaturan lampu lalu lintas yang baik, sebaiknya dapat menyesuaikan diri dengan kepadatan lalu lintas pada tiap jalurnya. Jumlah kepadatan lalu lintas bersifat tidak tegas ( kabur ) mengakibatkan munculnya asumsi-asumsi yang berbeda-beda, oleh karena itu Logika Fuzzy cocok diterapkan dalam pengaturan lampu lalu lintas. Logika Fuzzy dapat mengubah sifat tidak tegas tersebut ke dalam model matematis. Dengan menggunakan Logika Fuzzy, dapat di prediksi waktu lampu hijau menyala sesuai dengan kepadatan pada tiap-tiap jalur sehingga kepadatan atau antrian dapat diminimalkan. Hal ini dapat terlihat pada contoh perbandingan berikut :
Misalkan data jumlah kendaraan di ambil dari pengambilan data pada hari senin tanggal 31 Maret 2008 ( data dapat dilihat pada lampiran ) :
Tabel 4.1 Tabel Data Mentah Jumlah Kendaraan
Jalur Selatan Jalur Barat Jalur Utara Jalur Timur I II III IV I II III IV I II III IV I II III IV
LV 5 5 5 4 15 12 16 17 4 4 2 2 13 9 5 6
HV 1 0 1 0 5 3 8 6 0 0 1 3 5 2 5 4
59
Tabel 4.2 Tabel Data Jumlah Kendaraan yang sudah dikonfersikan ke dalam smp
Jalur Selatan Jalur Barat Jalur Utara Jalur Timur I II III IV I II III IV I II III IV I II III IV
Dari rata-rata kepadatan tiap-tiap jalur di atas, maka dapat dilihat perbandingan lampu hijau yang sebenarnya dengan lampu hijau hasil perhitungan dari program, dapat dilihat pada tabel 4.3 berikut :
Tabel 4.3 Tabel perbandingan lampu hijau
Jalur Lampu Hijau
berkurang atau bahkan dapat melintas seluruhnya harus dilakukan pengujian terlebih dahulu pada perempatan UPN Yogyakarta.
Keluaran yang dihasilkan program juga dipengaruhi oleh pendefinisian fungsi keanggotaan masukan, pendefinisian aturan fuzzy yang sudah ditetapkan dan pendefinisian fungsi keanggotaan keluaran.
Tabel 4.4 Tabel batas himpunan variabel jalur Nama
Tabel 4.5 Tabel batas himpunan variabel lampu hijau Nama Variabel Batas
Apabila batas-batas himpunan di-set seperti pada tabel 4.4 dan tabel 4.5 di atas dan dengan data inputan jumlah kendaraan pada tabel 4.1, maka keluaran program dapat dilihat pada tabel 4.6 berikut :
Tabel 4.6 Tabel Keluaran program
61
Dan apabila batas-batas himpunan diubah seperti terlihat di bawah ini : Tabel 4.7 Tabel batas himpunan variabel jalur yang diubah
Nama
Tabel 4.8 Tabel batas himpunan variabel lampu hijau yang diubah Nama Variabel Batas
Batas-batas himpunan di-set seperti pada tabel 4.7 dan tabel 4.8 di atas dan dengan data inputan jumlah kendaraan pada tabel 4.1, maka keluaran program dapat dilihat pada tabel 4.9 berikut :
Tabel 4.9 Tabel Keluaran program
Jalur
maka keluaran program berupa waktu lampu hijau menyala juga akan bertambah. Dan sebaliknya, apabila nilai batas-batas himpunan fungsi keanggotaan dikurangi maka waktu lampu hijau menyala juga akan berkurang.
BAB V PENUTUP
5.1 Kesimpulan
Dari Program Bantu Pengaturan Lampu Lalu Lintas Menggunakan Logika Fuzzy maka dapat ditarik kesimpulan yaitu :
1. Logika Fuzzy membantu mengatasi kondisi ketidaktegasan (kabur) jumlah kepadatan lalu lintas akibat pemahaman yang berbeda-beda.
2. Dengan menggunakan Logika Fuzzy, keluaran waktu lampu hijau menyala sesuai dengan jumlah kepadatan pada tiap-tiap jalur dengan memperhatikan juga jalur yang menunggu sehingga antrian kendaraan pada perempatan UPN Yogyakarta dapat berkurang atau bahkan dapat melintas seluruhnya. Keluaran program juga dipengaruhi oleh pendefinisian fungsi keanggotaan masukan, pendefinisian aturan fuzzy dan pendefinisian fungsi keanggotaan keluaran.
5.2 Saran
Beberapa saran untuk mendapatkan Program Bantu Pengaturan Lampu Lalu Lintas yang lebih baik dan bermanfaat, yaitu :
1. Program diharapkan dapat dikembangkan dengan metode-metode fuzzy yang lain sehingga dapat dihasilkan output yang lebih optimal.
2. Program diharapkan dapat dikembangkan untuk persimpangan-persimpangan lain seperti pertigaan.