Simulasi Penggunaan Logika Fuzzi Pada Pengendalian Lampu Lalu Lintas Djasli Djamarus dan Yuliana L Tjanggulung Laboratorium Informatika Dasar Jurusan Teknik Informatika – FTI USAKTI
Abstract One of the major we faced in a big city is a traffic jam problem. Usually it is happened around traffic junctions controlled by a traffic light system. In a conventional traffic light, the traffic is controlled by giving a constant number of seconds for each direction at any time for the traffics to pass the junction. Even though the aim of the traffic light is to avoid or at least to reduce the traffic jam, in fact in a very dense traffic, the conventional traffic light is fail to comply with this situation. This paper addresses the design, implementation and analysis of an intelligent traffic light controller based on fuzzy logic technology to overcome the traffic problem. Graphical software is developed to simulate the situation of the traffic light junction based on this technology. The software allows simulation at a junction while cars from each junction can go straight or turn right controlled by fuzzy or conventional controller. The simulation results show that performance of fuzzy logic controller is better than traditional controller.
1
01 Latar Belakang Salah satu cara untuk menghindari kemacetan dan kecelakaan yang mungkin terjadi di suatu persimpangan adalah dengan menggunakan lampu lalu lintas yang mengatur kapan suatu kendaraan dapat melaju (lampu hijau) dan kapan kendaraan tersebut harus berhenti (lampu merah). Pada umumnya pengaturan dengan menggunakan lalu lintas tersebut dilakukan secara statik, yaitu memberikan slot waktu tertentu untuk lampu merah dan lampu hijau pada setiap arah tanpa memperhatikan kondisi lalu lintas yang ada. Cara pengaturan yang demikian mempunyai kelemahan, yaitu bila frekuensi arus lalu lintas tidak seimbang dengan slot waktu yang diberikan sehingga dapat menyebabkan lalu lintas pada arah tertentu sangat lengang, namun sangat padat pada arah yang lain. Pengaturan yang lebih baik dari pengaturan yang bersifat statik tersebut adalah dengan pengaturan yang bersifat dinamik. Dengan pengaturan yang bersifat dinamik, slot waktu yang diberikan dapat berubah-ubah sesuai dengan kondisi pada saat tersebut. Hal ini berarti bahwa pada arah dimana arus lalu lintas sangat padat akan diberikan waktu yang lebih lama dibandingkan dengan pada arah dimana arus lalu lintas lengang atau kurang padat. Untuk dapat merealisasikan pengaturan tersebut diperlukan peralatan tambahan yang dapat mengetahui kondisi lalu lintas pada setiap arah untuk kemudian dievaluasi dan ditentukan berapa lama waktu lampu hijau yang perlu diberikan pada arah tersebut. Penelitian ini merupakan usaha untuk membandingkan kinerja pengaturan lalu lintas yang menggunakan pengaturan statis dengan pengaturan dinamis. Untuk itu dibuat suatu model yang merepresentasikan sistem pengaturan lampu lalu lintas di suatu persimpangan jalan. Selanjutnya model tersebut diimplementasikan sebagai suatu perangkat lunak untuk mensimulasikan model tersebut yang dibangun dengan menggunakan logika fuzzi.
02 Perumusan Masalah Dalam mengkaji sistem yang dimaksud dibuat suatu model pengaturan di persimpangan jalan dengan batasan-batasan sebagai berikut: Persimpangan adalah simpang empat dengan arah menuju Utara, Timur, Selatan dan Barat. Lalu lintas yang akan berbelok ke arah kiri diperbolehkan langsung (tidak diatur dalam model) Pengaturan waktu untuk melintas persimpangan (lurus) dan belok kanan diatur dengan lampu yang berbeda. Pengaturan secara dinamik yang dilakukan merupakan perbaikan dari pengaturan cara statik dimana dimungkinkan untuk diberikan perpanjangan waktu yang
2
tergantung pada kepadatan arus lalu lintas. Dalam hal ini kepadatan diukur dari banyaknya kendaraan yang sedang menunggu giliran jalan (antrian) dan jumlah kedatangan kendaraan pada setiap sisi. Untuk dapat menggunakan logika fuzzi dalam permasalah ini maka jumlah kendaraan yang sedang menunggu giliran jalan dikategorikan dalam 4 kategori, yaitu: Sangat Pendek (SP), Pendek (PD), Sedang (SD) dan Panjang (PJ), sedangkan jumlah kedatangan kendaraan juga dikategorikan dalam 4 kategori, yaitu: Sangat Jarang (SJ), Jarang (JR), Sering (SR) dan Sangat Sering (SS). Dari kedua hal tersebut dicari lama perpanjangan waktu yang perlu diberikan. Dalam hal ini perpanjangan waktu tersebut dikategorikan dalam 4 kategori, yaitu: Nihil (Ni), Sebentar (Sb), Sedang (Sd) dan Lama (La).
03 Tinjauan Pustaka 03.1
Logika Fuzzi
Logika fuzzi merupakan superset dari logika konvensional (Boolean) yang dibuat untuk menangani konsep kebenaran parsial, yaitu nilai kebenaran antara “100% benar” dan “100% salah”. Logika ini dapat dipergunakan untuk menyimpulkan sesuatu berdasarkan data masukan yang bersifat meragukan yang seringkali dialami oleh manusia dalam mengambil keputusan. Sebagai superset dari logika boolean, logika fuzzi memiliki beberapa sifat yang menyerupai logika boolean. Karena logika boolean memiliki hubungan yang sangat erat dengan konsep subhimpunan, maka antara logika fuzzi dengan teori subhimpunan terdapat juga relasi yang sangat kuat. Dalam teori himpunan klasik, sebuah subhimpunan U dari himpunan S dapat didefinisikan sebagai pemetaan dari elemen-elemen S ke elemen-elemen himpunan {0, 1}, dan dapat ditulis sebagai: U: S {0, 1} Pemetaan ini dapat direpresentasikan sebagai sebuah himpunan pasangan berurutan, dimana tepat 1 pasangan berurut mempresentasikan tiap elemen S. Elemen pertama dari pasangan berurutan ini adalah sebuah elemen dari himpunan S dan elemen kedua adalah elemen dari himpunan {0, 1}. Nilai nol digunakan untuk merepresentasikan ketidakanggotaan (non-membership), dan nilai satu digunakan untuk merepresentasikan keanggotaan (membership). Jadi nilai kebenaran atau kesalahan dari pernyataan : x adalah anggota U
3
ditentukan dengan mencari elemen kedua dari pasangan berurut yang elemen pertamanya adalah x. Pernyataan ini benar apabila elemen kedua dari pasangan berurutan adalah satu, dan pernyataan salah jika bernilai nol. Subhimpunan fuzzi F dari himpunan S dapat didefinisikan sebagai sebuah himpunan pasangan berurutan dengan elemen pertama dari masing-masing pasangan berasal dari S dan elemen ke dua berasal dari interval [0,1], dimana setiap pasangan mempresentasikan tepat satu elemen. Nilai nol digunakan untuk menyatakan ketidakanggotaan (complete non-membership), nilai satu digunakan untuk menyatakan keanggotaan (complete membership), dan nilai di antaranya digunakan untuk merepresentasikan derajat keanggotaan di antara complete membership dengan complete non-membership (intermediate degrees of membership). Himpunan S merupakan universe of discourse untuk subhimpunan fuzzi F. Pemetaan ini digambarkan sebagai sebuah fungsi, yaitu fungsi keanggotaan dari F (membership function of F). Derajat kebenaran dari pernyataan x adalah anggota F ditentukan dengan mencari elemen kedua dari pasangan berurutan dengan elemen pertama dari pasangan berurutan adalah x. Derajat kebenaran (degree of truth) dari pernyataan di atas adalah elemen kedua dari pasangan berurutan. Jika S adalah himpunan dengan elemen x, S = {x} Maka himpunan fuzzi F pada S adalah himpunan pasangan : F = {(x, F (x)) | x S} dimana F adalah fungsi keanggotaan dengan nilai real yang berada pada interval [0,1] yang menunjukkan derajat keanggotaan di dalam F. Berbagai fungsi keanggotaan yang dikenal antara lain adalah: fungsi keanggotaan segitiga, trapesium, gaussian [6]. Seperti halnya dalam logika boolean, dalam logika fuzzi juga terdapat operasi not, and dan or yang masing-masing didefinisikan sebagai:
(not x) = 1.0 - (x) (x and y) = minimum ( (x), (y)) (x or y) = maximum ( (x), (y)) Apabila hanya digunakan nilai nol dan satu pada persamaan di atas, maka akan didapatkan hasil yang sama dengan hasil pada tabel kebenaran logika boolean.
4
Variabel fuzzi merupakan suatu variabel lingustik yang menggunakan kata sifat untuk. Contoh dari variabel ini antara lain adalah: “banyak”, “sedikit” , “tidak ada”, atau dapat juga disederhanakan menjadi “ada” dan “tidak ada”. Dari variabel fuzzi tersebut dapat dibentuk berbagai aturan fuzzi, seperti misalnya IF X AND Y then Z, dimana X adalah nilai dari variabel input pertama, Y adalah nilai dari variabel input kedua, dan Z adalah variabel output yang diharapkan untuk kondisi-kondisi input (X dan Y) yang diberikan. Seperti terlihat pada gambar 1, dalam proses pengontrolan dengan logika fuzzi, ada 3 tahap yang perlu dilakukan secara berurutan, dimana keluaran dari tahap sebelumnya merupakan masukan bagi tahap berikutnya[7]. Tahap tersebut adalah: 1.
Fuzzification (Fuzzifikasi) Dalam tahap ini didefinisikan derajat keanggotaan berdasarkan nilai aktual dari variabel-variabel masukan yang diterapkan pada fungsi keanggotaan pada setiap sub himpunan fuzzi.
2.
Inferrence (Penarikan Kesimpulan) Dalam tahap ini, derajat kebenaran ditentukan berdasarkan aturan-aturan yang diterapkan kepada nilai-nilai fuzzi. Apabila subhimpunan fuzzi memiliki nilai lebih dari satu pada tahap inference maka perlu dilakukan reduksi sampai hanya memiliki satu nilai fuzzi saja. Cara ini disebut penggubahan (composition). Penggubahan ini dilakukan pada subhimpunan fuzzi tersebut dengan perata-rataan(average).
3.
Defuzzification (Defuzzifikasi) Hasil kesimpulan dari aturan-aturan fuzzi adalah subhimpunan-subhimpunan fuzzi juga. Oleh karena itu perlu dilakukan penerjemahan untuk mengubah nilai-nilai fuzzi menjadi bentuk crisp. Berbagai metoda pencarian crisp yang dapat dilakukan antara lain adalah: metoda perhitungan centroid of area dan bisector of area.
Gambar 1:
Bagan proses pengendalian dengan logika fuzzi
5
03.2
Simulasi dan Antrian
Simulasi adalah suatu metode yang digunakan untuk mempelajari dinamika dari suatu sistem. Sistem yang dimaksud itu adalah sekumpulan objek yang saling berhubungan dan berinteraksi serta memiliki tujuan yang sama. Simulasi dapat pula dikatakan sebagai suatu proses perancangan suatu model dari sistem yang sebenarnya dan melakukan eksperimen terhadap model ini dengan tujuan memahami prilaku dari sistem atau mengevaluasi bermacam-macam strategi untuk pengoperasian sistem[8]. Alasan utama untuk melakukan simulasi adalah adanya banyak model yang tidak bisa dianalisa hanya dengan menggunakan teknik matematika standar. Ini terjadi pada sistem-sistem yang dipengaruhi oleh input-input yang acak atau tidak tentu (stokastik). Untuk masukan-masukan yang bersifat stokastik, distribusi kedatangan antrian harus bersifat acak. Salah satu jenis distribusi yang sering digunakan dalam melakukan simulasi adalah distribusi seragam. Pada distribusi seragam, frekuensi kejadian setiap nilai adalah sama. Dalam suatu sistem yang mensimulasikan kinerja pelayanan, antrian dapat terjadi apabila ada pengguna ingin menggunakan suatu fasilitas layanan, namun pengguna tersebut mendapati bahwa fasilitas itu sedang sibuk melayani pengguna lain.
04 Pemodelan Sistem Berdasarkan batasan yang telah ditetapkan, maka dibuat model persimpangan seperti pada gambar 2. Pada model ini terdapat terdapat 4 lintasan lalu lintas lurus, yaitu: Selatan – Utara, Barat – Timur, Utara – Selatan dan Timur – Barat, serta 4 lintasan belok kanan, yaitu: Selatan – Timur, Barat – Selatan, Utara – Barat dan Timur – Utara. Lintasan lurus masing-masing diberi nomor 0,1,2 dan 3, sedangkan lintasan belok kanan masing-masing diberi nomor 4,5,6,dan 7. Berdasarkan model tersebut, maka dalam waktu yang bersamaan dimungkinkan pengaktifan 2 lintasan lalu lintas yang tidak saling berpotongan. Berdasarkan hal tersebut, maka giliran pengaktifan lintasan pada persimpangan diatur sebagai suatu siklus yang terlihat pada gambar 3. Kondisi persimpangan dimonitor melalui dua buah sensor pada setiap arah, yaitu sensor kedatangan (SD) untuk mendeteksi jumlah kedatangan kendaraan dan sensor kepergian (SP) untuk mendeteksi kendaraan yang meninggalkan antrian (telah mendapat giliran lampu hijau).
6
SD U SD
SP
SP
0 4
SP
SP
SD
SD
Gambar 2:
Model persimpangan lalu lintas
Gambar 3:
Siklus Pengaktifan Lintasan di Persimpangan
7
04.1
Fungsi Keanggotaan variabel fuzzi
Berdasarkan model yang telah dibuat, maka perlu ditentukan fungsi keanggotaan (membership function) dari setiap variabel fuzzi yang diperlukan. Dalam model ini dipergunakan fungsi keanggotaan segitiga, baik untuk variabel antrian (jumlah kendaraan yang sedang menunggu), variabel kedatangan dan variabel perpanjangan waktu yang diberikan untuk setiap lintasan, yang masing-masing dapat dilihat pada gambar 3, 4 dan 5.
1
PD
SD
PJ
Keanggotaan
SP
0 0
4
Gambar 3:
1
8
12
Jumlah Antrian
Fungsi Keanggotaan Antrian Kendaraan
J
S
SS
Keanggotaan
SJ
0 0
Gambar 4:
4
8
12
Jumlah Kedatangan
Fungsi Keanggotaan Kedatangan Kendaraan
8
1
Sb
Sd
La
Keanggotaan
Ni
0 0
Gambar 5:
04.2
2
4
6
Waktu Perpanjangan
Fungsi Keanggotaan Waktu Perpanjangan
Aturan Fuzzi
Berdasarkan variabel fuzzi masukan antrian dan kedatangan dibuat aturan fuzzi untuk pengalokasian perpanjangan waktu yang perlu diberikan pada setiap lalu lintas. Aturan yang dibuat adalah mengikuti kenyataan bahwa perpanjangan waktu merupkana fungsi dari jumlah antrian yang ada dan frekuensi kedatangan pada setiap jalur. Dengan demikian dibuat aturan fuzzi dalam bentuk tabel pada gambar 6.
Antrian
Gambar 6:
SP PD SD PJ
SJ Ni Ni Ni Ni
Kedatangan J Sb Sb Ni Ni
S Sd Sd Sb Ni
SS La Sd Sd Sb
Fungsi Keanggotaan Waktu Perpanjangan
Nilai membership dari seriap variabel fuzzi waktu kedatangan dihitung berdasarkan aturan: if X and Y then Z yang diimplementasikan sebagai (Z) = (X and Y) = minimum ( (X), (Y))
9
Dengan kombinasi x dan y, maka didapat beberapa pasang nilai z, (z) , yang selanjutnya dalam proses defuzzifikasi dipergunakan metoda perhitungan centroid of area untuk mendapatakan perpanjangan waktu yang perlu diberikan pada setiap jalur lalu lintas.
M . i
W
i
i
i
i
dimana Mi adalah nilai maksimum dari fungsi setiap variabel fuzzi z ke – i dan i adalah nilai keanggotaan setiap variabel fuzzi z ke-i tersebut.
05 Hasil Penelitian Untuk mendapatkan hasil penelitian yang diinginkan, dibuat suatu program simulasi dengan menggunakan bahasa Java yang penampilan terlihat pada gambar 7. Selanjutnya dilakukan beberapa kali percobaan untuk melihat waktu tunggu rata-rata setiap kendaraan dengan menggunakan waktu kedatangan yang seragam. Hasil percobaan tersebut dicatat dalambentuk tabel seperti pada gambar 8.
Gambar 7:
Penampilan program simulasi
10
Waktu Simulasi
(detik) Pengendali
Pengendali
Tradisional
Fuzzi
36.000
18,04
11,19
3.600
18,16
11,43
1.800
18,26
11,07
1.200
17,77
11,48
6.00
18,13
11,32
3.00
16,98
10,83
(detik)
Gambar 8:
Waktu Tunggu Rata-rata
Catatan waktu hasil simulasi
06 Kesimpulan Dari hasil percobaan yang dilakukan terlihat bahwa waktu tunggu rata-rata kendaraan pada simulasi lampu lalu lintas dengan pengendalian tradisional adalah 17.89 detik, sedangkan rata-rata waktu tunggu kendaraan pada simulasi lampu lalu lintas dengan pengendali fuzzi adalah 11.22 detik. Hal ini berarti bahwa pengendalian secara fuzzi mampu memperkecil waktu tunggu rata-rata selama 6,67 detik atau 37,3 % lebih cepat. Berdasarkan hal tersebut dapat ditarik kesimpulan bahwa dengan pengaturan lalu lintas dengan menggunakan pengendalian secara fuzzi mempunyai kinerja yang lebih baik dibanding dengan pengendalian tradisional. Dalam kehidupan seharihari hal ini berarti bahwa metoda pengendalian fuzzi diharapkan dapat dipergunakan untuk mengurangi penyebab kemacetan lalu lintas yang disebabkan karena panjangnya antrian pada suatu persimpangan jalan. Dalam penelitian yang dilakukan ini, distribusi kedatangan kendaraan yang digunakan dalam program simulasi adalah distribusi seragam, yang hanya merupakan perkiraan peneliti. Bila hasil penelitian ini akan diujicobakan pada suatu kondisi nyata di lapangan, maka perlu dilakukan pengamatan lapangan untuk melihat pola distribusi kedatangan pada setiap arah, untuk kemudian dilakukan penyesuaian terhadap program simulasi yang telah dibuat.
11
DAFTAR PUSTAKA 1.
Bennet, S., McRobb, S., Farmer, R., “Object Oriented System Analysis And Design using UML (2nd Ed.)”, New York: McGraw-Hill, 2002. 2. Booch, G., Rumbaugh, J., Jacobson, I., “The Unified Modeling Language User Guide”, Massachusetts, Addison-Wesley, 1999. 3. Geoffrey Gordon, “System Simulation”, New Delhi J.S.R.: Prentice-Hall, 1980. 4. Horstmann, C. S., Cornell, G., “Core Java 2 Volume I-Fundamentals”, NJ: Sun Microsystems Press, 2000. 5. Horstmann, C. S., Cornell, G., “Core Java 2 Volume II-Advance Features”, NJ: Sun Microsystems Press, 2000. 6. Jang, J-S. Roger, Chuen-Tsai Sun, Eiji Mizutani, “Neuro-Fuzzy and Soft Computing”, Prentice Hall, 1997. 7. Kantrowitz, M, “FAQ : Fuzzy Logic and Fuzzy Expert Systems”, http://www.cs.cmu.edu/Web/Groups/AI/html/faqs/ai/fuzzy/part1/faq.html 8. Payne, James A., “Introduction to Simulation: Programming Techniques and Methods of Analysis”, McGraw-Hill, 1988. 9. R.B. Coats, A. Parkin, “Computer Models in the Social Sciences”, Winthrop Publications, 1977. 10. Shahariz Abdul Aziz, “Case Study: Fuzzy Traffic Light Controller”, http://www.doc.ic.ac.uk/.
12