BAB 4 METODE PENELITIAN 15
J. Analisis Data 22
4.4 Pengaturan Isyarat Lalu-Lintas 25
APILL yang dikembangkan mempunyai empat fase untuk empat arah kedatangan yang ditempatkan di keempat mulut persimpangan. Di setiap arah kedatangan terdapat tampilan penghitung mundur. Nilai inisial penghitung mundur harus selalu disesuaikan dengan waktu merah atau hijau yang berlaku slot itu.
Pada saat penghitungan mundur sedang berjalan, dimungkinkan adanya perubahan nilai waktu merah atau hijau pada arah tersebut. Hal ini terjadi karena sistem harus menggunakan slot waktu yang lain. Jika hal ini terjadi, maka nilai hitungan mundur saat itu harus segera disesuaikan agar akhir penghitungan mundur selalu memberikan hasil nol. Hal ini merupakan salah satu perbedaan algoritma penghitungan mundur sistem pengatur lalu-lintas pada penelitian ini dengan algoritma penghitung
mundur di sistem yang lain. Bekerjanya pengaturan isyarat lalu-lintas didasarkan pada proses penghitungan mundur setiap arah ini. Proses penghitungan mundur mengikuti diagram waktu pada Gambar 9.
Gambar 9 Proses pengaturan isyarat lalu-lintas sebuah APILL
Untuk keperluan proses penghitungan mundur di setiap arah, telah dialokasikan empat variabel khusus dengan format data integer 8 bit. Variabel tersebut adalah: count1 untuk penghitung mundur fase 1, count2 untuk penghitung mundur fase 2, count3 untuk penghitung mundur fase 3, dan count4 untuk penghitung mundur fase 4. Untuk realisasi sistem ini, sistem juga mengatur lampu apa yang dihidupkan untuk setiap hitungannya. Jenis nyala lampu tampilan penghitung mundur ada dua, yaitu merah dan hijau.
Pengaturan isyarat lalu-lintas didasarkan pada urutan state (keadaan). Terdapat dua belas state pada APILL yang mengatur sebuah simpang empat. Pada saat sebuah APIL diaktifkan, prosesor akan menjalankan subrutin inisialisasi. Kemudian pengaturan isyarat lalu-lintas segera memasuki state 1. Pada state ini, APILL memberikan isyarat hijau untuk fase 1 dan isyarat merah untuk fase yang lain. Urutan dapat dilihat pada diagram keadaan transisi pada Gambar 10. Di setiap state, prosesor selalu menghitung mundur nilai hitungan setiap arah, yaitu: count1, count2, count3, dan count4. Hitungan tersebut dilaksanakan satu kali per detik. Subrutin penghitungan mundur ini dijalankan setelah adanya interupsi yang dipicu oleh sisi naik pulsa gelombang kotak dari RTC.
27
Gambar 10 Diagram keadaan transisi pengaturan isyarat lalu-lintas
Nilai state berubah secara berurutan dari nomor 1 hingga 12. Secara umum, suatu state tidak akan berubah jika semua nilai hitungan mundur masih lebih besar dari nol. Jika terdapat sebuah nilai hitungan mundur sama dengan nol, maka nilai state akan berubah.
Setiap state memberikan isyarat lampu (Li) dengan warna berbeda atau warna lampu penghitung mundur (Ci) berbeda. Warna isyarat lampu adalah: merah, kuning, atau hijau; sedangkan warna lampu penghitung mundur adalah: merah atau hijau. Subrutin yang dijalankan prosesor pada siklus ke-j mengikuti urutan state pada Tabel 3.
Tabel 3 Subrutin yang dijalankan prosesor dan kondisi lampu pada sebuah siklus
State Aktifitas Lampu
L1 C1 L2 C2 L3 C3 L4 C4 1 Hitung mundur: count1, count2, count3, dan count4
Jika count1 = 0, maka state = 2, count1 = k1 H H M M M M M M 2
Hitung mundur: count1, count2, count3, dan count4 Jika count1 = 0, maka state = 3, hitung m1,j, count1 = m1,j
K - M M M M M M
3
Hitung mundur: count1, count2, count3, dan count4 Jika count2 = 0, maka state = 4, count2 = h2,j-
Δhi:j+1, hitung m3,j’, count3 = m3,j’
M M M M M M M M
4 Hitung mundur: count1, count2, count3, dan count4
Jika count2 = 0, maka state = 5, count2 = k2 M M H H M M M M 5
Hitung mundur: count1, count2, count3, dan count4 Jika count2 = 0, maka state = 6, hitung m2,j, count2 = m2,j
M M K - M M M M
6
Hitung mundur: count1, count2, count3, dan count4 Jika count3 = 0, maka state = 7, count3 = h3,j, hitung m4,j’, count4 = m4,j’
M M M M M M M M
7 Hitung mundur: count1, count2, count3, dan count4
Jika count3 = 0, maka state = 8, count3 = k3 M M M M H H M M 8
Hitung mundur: count1, count2, count3, dan count4 Jika count3 = 0, maka state = 9, hitung m3,j, count3 = m3,j
M M M M K - M M
9
Hitung mundur: count1, count2, count3, dan count4 Jika count4 = 0, maka state = 10, count4 = h4,j, hitung m1,j’, count1 = m1,j’
M M M M M M M M
10 Hitung mundur: count1, count2, count3, dan count4
Jika count4 = 0, maka state = 11, count4 = k4 M M M M M M H H
11
Hitung mundur: count1, count2, count3, dan count4 Jika count4 = 0, maka state = 12, hitung m4,j, count4 = m4,j, baca data waktu dari RTC, baca data h1,j, h2,j, h3,j, dan h4,j dari basis data.
M M M M M M K -
12
Hitung mundur: count1, count2, count3, dan count4 Jika count1 = 0, maka: state = 1, count1 = h1,j, hitung m2,j’, count2 = m2,j’.
Master : kirim data sinkronisasi ke slave. Slave : jalankan subrutin sinkronisasi
29
Keterangan: Li = warna lampu isyarat arah i
Ci = warna lampu penghitung mundur arah i M = nyala merah
K = nyala kuning H = nyala hijau - = lampu padam
Sebuah siklus selalu dimulai dari state 1 dan dimulai dari pemberian isyarat hijau fase 1. Urutan fase selalu urut dari 1 hingga 4. Fase 4 merupakan fase yang disinkronkan. Data sinkronisasi dari master selalu dikirim pada akhir state 12 yaitu setelah pemberian isyarat hijau untuk fase 4; sementara itu bagi slave, subrutin sinkronisasi dijalankan juga pada akhir state 12 yaitu setelah pemberian isyarat hijau untuk fase 4. Penentuan arah mana yang akan dijadikan fase 1, 2, 3, dan 4 dapat ditentukan sesuai kebutuhan.
State 1 memberikan isyarat hijau pada fase 1 (L1= H) dan isyarat merah pada fase lain (L2= L3= L3= H). Pada state ini, nilai penghitung mundur isyarat hijau fase 1 yang tersimpan di count1 dideteksi. Nilai hitungan ditampilkan dalam tampilan dengan lampu warna hijau (C1 = H). State ini berakhir saat nilai count1 = 0. Kemudian nilai state dinaikkan menjadi 2, nilai count1 diisi dengan k1 dan lampu penghitung mundur L1dipadamkan.
Pada state 2, sistem menghitung mundur isyarat kuning arah 1 (k1) yang telah tersimpan di count1. Namun selama proses penghitungan, nilai count1tidak ditampilkan di tampilan penghitung mundur. Tampilan penghitung mundur dimatikan. Sistem menghidupkan isyarat lampu kuning untuk fase 1 (L1= K). State ini berakhir saat nilai count1 = 0. Ini berarti penghitung mundur isyarat kuning telah bernilai nol. Kemudian nilai state dinaikkan menjadi 3, nilai count1 diisi dengan m1 dan sistem memberikan isyarat merah pada arah 1 (L1 = M). Nilai m1 untuk siklus ke-j dihitung menggunakan Persamaan 2.
m1,j = 1 + h2,j + k2 + 2 + h3,j + k3 + 2 + h4,j + k4 + 4 (2) dengan : mi,j = waktu merah fase ke-i siklus ke-j
i = waktu jeda fase ke-i
hi,j = waktu hijau fase ke-i siklus ke-j ki = waktu kuning fase ke-i
Berdasar Persamaan 1 yang menyatakan bahwa satu siklus merupakan hasil penjumlahan dari semua waktu merah, kuning, hijau, dan delta, maka 0 di atas dapat disederhanakan menjadi Persamaan 3 berikut.
m1,j = Tj – h1,j + k1 (3)
dengan : Tj = waktu siklus ke-j
Penghitung mundur arah 1 akan terus menghitung mundur isyarat merah arah 1 hingga akhir state 12 sebagaimana Gambar 9. Di akhir state 9 atau th:4,1, arah 4 mulai mendapat isyarat hijau pada siklus ke-1. Pada saat tersebut, nilai count1 diperbarui dengan diisi nilai m1,j’. Nilai m1,j’ ini dihitung menggunakan Persamaan 4 sebelum disalin ke count1.
m1,j’ = h4,j + k4 + 4 (4)
Pembaruan nilai count1 ini menjamin bahwa hitungan mundur count1 selalu tepat meskipun telah terjadi perubahan waktu siklus (Tj) pada Persamaan 1. Perubahan waktu siklus dapat terjadi jika ada perubahan waktu hijau pada sebuah atau beberapa arah karena telah terjadi pergantian slot yang aktif.
Proses penghitung mundur isyarat hijau dan merah ini juga terjadi pada arah lain. Nilai waktu isyarat merah arah 2, 3, dan 4 juga dihitung di setiap permulaan isyarat merah diberikan. Pada setiap arah permulaan isyarat merah pada arah i siklus ke-j, nilai counti diisi dengan nilai m2,jyang telah dihitung menggunakan Persamaan 5, Persamaan 6, dan Persamaan 7.
m2,j = Tj – h2,j + k2 (5)
m3,j = Tj – h3,j + k3 (6)
m4,j = Tj – h4,j + k4 (7)
Sebelum bernilai nol, ketiga nilai tersebut diperbarui dengan nilai m2,j’, m3,j’, dan m4,j’ pada akhir state 12, sebagaimana Gambar 9. yang dihitung menggunakan Persamaan 8, Persamaan 9, dan Persamaan 10.
31
m2,j’ = h1,j + k1 + 1 (8)
m3,j’ = h2,j + k2 + 2 (9)
m4,j’ = h3,j + k3 + 3 (10)
Dengan demikian awal hitungan isyarat merah akan ditentukan otomatis oleh sistem. Dengan metode penghitungan mundur ini, meskipun ada perubahan nilai waktu hijau, akhir hitungan mundur waktu merah setiap arah selalu bernilai nol. Setiap adanya perubahan pewaktuan di waktu mendatang tidak perlu mengubah lagi nilai awal hitungan mundur setiap isyarat. Metode ini juga diharapkan dapat mengakomodasi pengembangan sistem menuju sistem sinkron dan adaptif.
Kasus khusus terjadi pada saat APILL beralih dari kondisi non-aktif ke aktif. Jika APILL yang tadinya berada pada slot waktu yang mengaruskan non-aktif beralih ke slot waktu yang mengharuskan aktif, maka APILL akan membaca data waktu hijau dari EEPROM. Pada APILL slave, kegiatan ini dilanjutkan dengan mengeksekusi subrutin sinkronisasi. Setelah itu, baru APILL akan aktif mengatur isyarat lalu-lintas dengan menjalankan state 1 hingga 12 sesuai Tabel 3.