BAB IV IMPLEMENTASI
Seperti yang sudah dijelaskan pada bab sebelumnya bahwa pada bab IV ini akan dijlelaskan mengenai rancangan awal dari aplikasi pengaturan lampu
lalulintas berdasarkan logika fuzzy menggunakan delphi 7.0 sampai dengan pengujian simulasi.
4.1 Implementasi
Simulasi pengaturan lampu lalulintas adalah program yang digunakan untuk melakukan pengaturan lampu lalulintas berdasarkan masukan jumlah
kendaraan yang lewat pada jalur satu dan jalur dua. Program ini memerlukan alat berupa miniatur perempatan jalan yang di hubungkan ke aplikasi pengaturan
lampu lalulintas menggunakan port paralel untuk menjalankannya.miniatur perempatan jalan dapat di lihat di bawah ini.
Gambar 4.1 Miniatur Perempatan Jalan
Pada aplikasi ini terdapat 2 antarmuka yaitu : 4.2
Antarmuka login Dapat kita lihat pada gambar dibawah.antarmuka pertama dari 2
antarmuka yang ada.fungsi dari antarmuka ini adalah tampilan awal dari aplikasi pengaturan lampu lalulintas.antarmuka ini akan meminta operator untuk login
dengan memasukan password agar dapat mengakses program pengaturan lampu lalulintas.jika password yang dimasukan sesuai maka operator dapat
mengaksesprogram pengaturan lampu lalulintas, jika password yang dimasukan tidak sesuai maka akan keluar pesan ’password anda salah, anda tidak
diperkenankan mengakses sistem ini’.
Gambar 4.2 Antarmuka Login Pada form ini terdapat dua even yaitu even run dan clear, dengan kode program
seperti dibawah ini. Kode 4.1 Form Login
if tombolButton.click {
if input_password == password {
formLogin = sembunyi; formLogin = nonaktif;
buka.formControl formControl;
} Pada kode program diatas, jika edit.text1 di isi dengan password yang
sesuai maka form simulasi akan tampil dan jika password tidak sesuai, maka akan tampil pesan” wrong password”.
Untuk kode program berikutnya adalah untuk kembali mengisi password, jika password yang dimasukan tidak sesuai.
4.3 Antarmuka simulasi
Antarmuka simulasi adalah antarmuka yang terdiri dari tiga proses pengaturan lampu lalulintas yang dapat di lakukan oleh operator, dalam
antarmuka ini ada tiga pilihan proses yang harus dipilih oleh operator.pertama, proses pengaturan lampu lalulintas secara otomatis, yang pengaturannya
berdasarkan jumlah kendaraan yang lewat pada jalur satu dan jalur dua dari masukan sensor, sehingga operator tidak lagi menentukan lama waktu lampu
lalulintas untuk menyala pada jalur satu dan jalur dua.pada proses ini, kepadatan jalur dan waktu jalan akan ditampilkan pada kotak parameter.peletakan sensor
terdapat pada jalur satu dan jalur duayang menuju lampu lalulintas.proses kedua adalah proses pengaturan lampu lalulintas secara manual yang pengaturannya
dengan menentukan lama waktu lampu lalulintas untuk menyela pada jalur satu dan jalur dua.proses ketiga adalah proses interupsi, proses yang dapat dilakukan
dengan cara memilih jalur mana yang akan di interupsi.proses ini digunakan untuk
keadaan darurat atau mendesak, misalnya seperti pelayanan mobil pemadam kebakaran atau mobil ambulance.jika lebih dari satu jalur memberi interupsi,
maka yang dilayani dulu adalah yang pertama menekan tombol interupsi itu.jalur yang mendapat interupsi akan menerima nyala lampu berwarna hijau dan jalur
yang lainnya akan menerima nyala lampu berwarna merah sampai proses interupsi berakhir.dapat di lihat dibawah ini.
Gambar 4.3 Antarmuka Simulasi Untuk menjalankan form diatas di butuhkan koneksi antara program
dengan miniatur perempatan lampu lalulintas alat dengan menggunakan port paralel untuk menghubungkannya.
Kode 4.2 koneksi dengan alat
if fYellow1 {
WarnaLampuKuningJalur1 = Kuning; fYellow1 = false;
SetPortBit888,4; out 1 ke address 0x378 bit ke 4 }
Else
{ WarnaLampuKuningJalur1 = hitam;
fYellow1 = true; ClrPortBit888,4; out 0 ke address 0x378 bit ke 4
} }
Prosedur di atas berfungsi untuk memanggil alamat pada port parallel LPT1 yaitu data, control, dan status.
Kode 4.3 koneksi dengan sensor
i
f buffIn 64 == 64 fSensor1 == false fSensor1 = true;
else if buffIn 64 == 0 fSensor1 == true {
count1 = count1 + 1; fSensor1 = false;
} if buffIn 32 == 32 fSensor2 == false
fSensor2 = true else if buffIn 32 == 0 fSensor2 == true
{ count2 = count2 + 1;
fSensor2 = false;
Kode program di atas merupakan masukan dari alat ke program, jika status di AND kan dengan 40 hexadesimal sama dengan 40 hexadesimal maka s1
sensor1 berwarna merah aktif, jika tidak s1 berwarna putih tidak aktif.untuk s2 sensor2 jika status di AND kan dengan 80 hexadesimal sama dengan 00
hexadesimal, maka s2 sensor2 berwarna merah aktif, jika tidak s2 berwarna putih tidakaktif.
Untuk kode program pengaturan secara otomatis terdapat kode program untuk identifikasi kepadatan jalur, identifikasi kondisi jalan, dan indikator nilai
kepadatan jalur. Kode 4.4 identifikasi kepadatan jalur satu dan jalur dua
if fLampu == false kepadatan1 = 60waktu_jalur1 count1;
fuzzyfikasikepadatan1,persen1,kondisi1; fuzzyfikasikepadatan2,persen2,kondisi2;
total_persen = persen1 + persen2 2;
Program di atas untuk mengidentifikasi kepadatan jalur satu dan jalur dua dengan menggunakan sensor, jika h1 berwarna hijau, maka s1 berwarna merah,
maka sj1 sensor jalur1 sama dengan 1, jika sj1 sama dengan 1 berwarna putih, maka j1 jalur1 sama dengan j1+1. begitu juga untuk kode program jalur dua.
Kode 4.5 identifikasi kondisi jalan jalur satu
Program di atas untuk mengidentifikasi kondisi jalan pada jalur satu, jika man1 counter sama dengan 0, maka autoyellow lampu kuning aktif, maka
man1 sama dengan man1 minus 1, h1 berwarna hijau, m2 berwarna merah, koj1 kondisi jalur1 jalan, koj2 kondisi jalur 2 berhenti.
Kode 4.6 identifikasi kondisi jalan jalur dua
Kode program di atas untuk mengidentifikasi kondisi jalan jalur dua, jika man2 counter sama dengan 0 maka autoyellow lampu kuning aktif, maka
man2 sama dengan man2 minus 1, h2 berwarna hijau, m1 berwarna merah, koj2 kondisi jalur2 jalan, koj1 kondisi jalur1 berhenti.
Kode 4.7 indikator nilai kepadatan jalur
Program di atas untuk menghitung kepadatan jalur, dengan rumus output1 = 60 string menjadi float adalah wj1 waktu jalan1 kj1 kondisi jalur1 sama
dengan output j12, untuk mengkategorikan jumlah kendaraan apakah sangat padat, padat, cukup padat, kurang padat, tidak padat.
Kode 4.8 pengaturan secara manual pada jalur satu
if buttonOk.click temp_waktu1 := strtointeditjalur1.Text;
Program di atas untuk pengaturan manual, jika man1 counter sama dengan 0 maka autoyellow lampu kuning aktif, maka man1 sama dengan man1
minus1, h1 berwarna hijau, m2 berwarna merah, koj1 kondisi jalur1 jalan, koj2 kondisi jalur2 berhenti.Untuk pengaturan jalur dua, maka man2 sama dengan
man2 minus 2, h2 berwarna hijau, m1 berwarna merah, koj2 kondisi jalur2 jalan, koj1 kondisi jalur1 berhenti.
Kode 4.9 indikator lampu kuning
if fLampu == false {
timerYellow1 = nonaktif; warnaLampuKuningJalur1 = hitam;
ClrPortBit888,4; timerYellow2 = aktif;
WarnaAngkaJalur2 = kuning;
nyala_lampu1false; if fManual == false
{
Kode program di atas untuk indicator lampu kuning, pada saat lampu hijau ke lampu merah ataupun sebaliknya maka lampu kuning akan menyala.
Kode 4.10 interupsi pada jalur satu
if buttonOk.click {
if panelJalur1 == terpilih {
warnaLampuMerahJalur1 = merah; warnaLampuKuningJalur1 = hitam;
warnaLampuHijauJalur1 = hitam; warnaLampuMerahJalur2 = hitam;
warnaLampuKuningJalur2 = hitam; warnaLampuHijauJalur2 = hijau
fInterupsi = false; }
Kode program di atas untuk melakukan interupsi pada jalur satu, h1 berwarna hijau, m2 berwarna merah berarti lampu hijau untuk jalur satu, lampu
lalulintas jalur dua berwarna merah.untuk interupsi pada jalur dua, h2 berwarna hijau, m1 berwarna merah berarti lampu hijau untuk jalur dua, maka lampu
lalulintas jalur satu berwarna merah.
BAB V UJI COBA DAN EVALUASI