Fakultas Ilmu Komputer
7225
Impelementasi
Hardware
Redundancy
Pada
Switching
Pintu Otomatis
Dengan Metode
Cold
Standby
Dan
Watchdog
Muhammad Rifqi Muzaki1, Sabriansyah Rizqika Akbar 2, Widhi Yahya3
Program Studi Teknik Komputer, Fakultas Ilmu Komputer, Universitas Brawijaya Email: 1[email protected], 2[email protected], 3[email protected]
Abstrak
Perangkat elektronik pasti memiliki batas masa pakai dan sewaktu – waktu dapat mengalami kerusakan. Sebuah sistem yang terdiri dari beberapa perangkat elektronik akan mengalami kegagalan jika komponen yang krusial mengalami kerusakan. Oleh karena itu komponen krusial dalam sebuah sistem harus lebih handal. Untuk meningkatkan kehandalan sistem sebuah mekanisme seperti Hardware
Redundancy bisa diterapkan. Hardware Redundancy merupakan sebuah mekanisme meningkatkan
kehandalan dengan cara menduplikat komponen penting sebagai cadangan. Terdapat beberapa jenis dari mekanisme Hardware Redundancy yang salah satunya adalah Cold Standby Redundancy yang menggunakan konsep cadangan tanpa catu daya. Konsep Cold Standby adalah menambahkan duplikat komponen penting yang standby tanpa catu daya dan akan aktif ketika komponen penting tersebut mengalami kerusakan. Pada penelitian ini Cold Standby Redundancy diterapkan pada sebuah sistem kunci pintu otomatis berbasis Arduino Uno dan RFID. Komponen penting pada sistem tersebut adalah Arduino Uno yang bertindak sebagai kontroler dalam sistem. Implementasi cold standby redundancy
pada sistem ini menggunakan perangkat pihak ketiga (Arduino Nano) sebagai fault detector pada Arduino Uno yang utama (master). Melalui komunikasi serial I2C master mengirimkan keep-alive
status secara periodik kepada fault detector sebagai tanda apakah masih beroperasi atau sedang
mengalami kerusakan. Selain itu terdapat perangkat switch yang bertugas mengalihkan kontrol sistem
ke master atau slave. Fault detector akan mengirimkan trigger untuk melakukan peralihan kepada
perangkat switch ketika mendeteksi kerusakan pada master. Berdasarkan hasil pengujian yang telah dilakukan, kehandalan sistem meningkat setelah menerapkan mekanisme Cold Standby Redundancy. Nilai kehandalan sistem meningkat sebesar 15.45% untuk satu tahun waktu beroperasi.
Kata kunci: Fault Tolerant, Reliability, Hardware Redundancy, Cold Standby Redundancy
Abstract
Electronic devices must have a lifetime limit and may be damaged at any time. A system consisting of several electronic devices will fail if the crucial component is damaged. Therefore, crucial components in a system should be more reliable. To improve system reliability a mechanism such as Hardware Redundancy can be applied. Hardware Redundancy is a mechanism to improve reliability by duplicating important components as backup. There are several types of Hardware Redundancy mechanisms, one of which is Cold Standby Redundancy which uses the unpowered backup concept. The Cold Standby concept is to add a duplicate of an important component that standby without a power supply and will be active when the component is damaged. In this study Cold Standby Redundancy is applied to an automatic door lock system based on Arduino Uno and RFID. An important component of the system is Arduino Uno which acts as a controller in the system. Implementation of cold standby redundancy on this system uses a third party device (Arduino Nano) as the fault detector of main Arduino Uno (master). Through I2C serial communication the master sends keep-alive status periodically to the fault detector as a sign of whether it is still operating or is being damaged. In addition there is a switch device in charge of switching the system control to master or slave. The fault detector sends the trigger to make a switch to the switch device when it detects damage to the master. Based on the results of tests that have been done, system reliability increases after applying the Cold Standby Redundancy mechanism. System reliability value increased by 15.45% for a year operating time.
1. PENDAHULUAN
Sebuah sistem otomatis dalam segi penggunaan memiliki sisi fungsional dan non-fungsional. Sisi fungsional adalah bagaimana sistem bekerja berdasarkan tujuannya. Sedangkan sisi non fungsional adalah bagaimana sistem dapat tetap berjalan dengan adanya faktor – faktor yang dapat mengakibatkan sisem mengalami kegagalan. Kegagalan yang terjadi pada sistem critical seperti sistem control pesawat akan berdampak buruk. Adanya cacat di sistem ini kemungkinan akan menyebabkan kehancuran pesawat, seperti yang terjadi pada peluncuran Lewis spacecraft milik NASA pada tanggal 23 agustus 1997 (NASA, 2000).
Salah satu sistem otomatis yang diteliti dalam penelitian ini adalah sistem pengunci pintu otomatis. Diantara beberapa teknologi kunci pintu otomatis yang paling banyak dikembangkan saat ini adalah kunci pintu otomatis berbasi RFID (Radio Frequency
Identification). Dimana sistem ini bekerja
berdasarkan pembacaan kartu RFID yang didekatkan pada RFID reader, data pada kartu akan dicocokkan dengan data yang tersimpan pada memori program Arduino untuk menentukan otorisasi dari pemilik kartu (Nehete, et al., 2016). Meskipun demikian perangkat kunci pintu otomatis adalah perangkat elektronik yang pasti akan mengalami kesalahan atau kerusakan.
Apabila hal ini terjadi maka akan
berdampak pada pintu yang tidak bisa
dibuka dan tentunya itu merugikan.
Oleh karena itu sebuah sistem pengunci pintu otomatis harus dependable. Terdapat beberapa atribut dari dependability sebuah sistem. Salah satu atribut utamanya adalah reliability(kehandalan). Reliability atau jika disimbolkan menjadi R(t) merupakan probabilitas jalannya sebuah sistem tanpa adanya kegagalan dalam interval waktu tertentu atau [0, t], dimana sistem mulai beroperasi pada waktu ke 0 (Dubrova, 2013).
Redundansi merupakan salah satu metode yang umum digunakan untuk meningkatkan kehandalan (reliability) dan ketersersediaan
(availability) pada sebuah sistem. Ada beberapa
jenis redundansi yang ada saat ini, yaitu
hardware redundancy, software redundancy, information redundancy, dan time redundancy.
Untuk penelitian ini jenis redundansi yang digunakan adalah hardware redundancy.
Hardware Redundancy adalah teknik
redundansi yang dilakukan pada level hardware
atau komponen fisik (Dubrova, 2013). Salah satu jenis hardware redundancy adalah standby
redundancy, yaitu unit spare bersifat standby
dan aktif ketika komponen utama mengalami kerusakan. Standby redundancy sendiri memiliki dua metode yaitu cold standby dan hot
standby. Pada cold standby unit standby yang
tidak tercatu daya, sedangkan pada hot standby
unit standby tercatu daya.
Metode redundansi yang akan diimplementasikan pada sistem kunci pintu otomatis ini adalah cold standby redundancy.
Cold standby redundancy adalah sebuah
mekanisme menambahkan duplikat dari suatu komponen dalam keadaan mati sebagai pengganti yang akan aktif ketika komponen tersebut mengalami kegagalan. Cold standby
memiliki keunggulan dari segi konsumsi energi dan keandalan unit lebih terjaga karena unit
standby tidak tercatu daya (National
Instruments, 2008).
Pada penelitian ini perangkat yang akan diredundansi adalah controller unit (Arduino Uno) karena controller unit merupakan critical
component dari sistem. Pada sistem ini
digunakan pendekatan mekanisme Keep-alive
dengan memanfaatkan komunikasi serial yang ada pada Arduino. Slave controller dipasang dalam keadaan mati (tidak tercatu daya) dan akan dinyalakan oleh perangkat fault detector
yang secara periodik menerima sinyal dari
master controller. Ketika sinyal Keep-alive yang
diterima perangkat fault detector dari master
controller berhenti, maka diasumsikan master
controller mengalami fault atau mati. Ketika itu
terjadi maka proses switching dari perangkat
fault detector untuk menghidupkan slave
controller dan menggantikan master controller
akan terjadi.
2. PERANCANGAN SISTEM
Master controller
Gambar 1. Blok diagram sistem
Berdasarkan Gambar 1 berikut detil hubungan secara hardware antar komponen :
1. Master Controller (Arduino Uno) dan Fault
detector (Arduino Nano) terhubung melalui
antarmuka komunikasi serial I2C dengan alamat 42.
2. Digital pin output dari fault detector
terhubung dengan perangkat switch dimana seluruhnya merupakan digital output
trigger untuk mengalihkan sistem ke slave
controller.
3. Digital pin I/O master controller dan slave
controller (Arduino Uno) terhubung
dengan perangkat Switch (Relay module).
4. Switch (Relay Module) terhubung dengan
master controller, slave controller, fault
detector dan perangkat I/O sistem. Semua
terhubung dengan antarmuka digital kecuali
power source. Relay module yang
digunakan masing 8 channel untuk input dan 4 channel untuk output.
5. Konfigurasi jalur relay Normally Close
(NC) dipasangkan untuk master controller, sedangkan Normally Open (NO) dipasangkan untuk slave controller. Jalur COM dipasangkan untuk perangkat Input dan Output.
Berdasarkan Gambar 1 berikut detil hubungan secara hardware antar komponen :
1. Kode program master controller
dimodifikasi untuk mengirim keep-alive
status kepada fault detector melalui
komunikasi serial I2C dengan Fungsi
Wire.requestFrom().
2. Fungsi Wire.requestFrom() dijalankan di dalam fungsi VirtualDelay dari library
VirtualDelay. Tujuannya adalah agar
pengiriman keep-alive status berjalan secara multitask dan tidak mengganggu jalannya program yang sudah ada.
3. Keep-alive dibaca berkala oleh fault
detector menggunakan fungsi
Wire.onRequest() dari library wire.h yang
mana fungsi tersebut bekerja dengan fungsi berbasis event yaitu requestEvent().
4. Slave controller di berikan duplikat kode
program dari master controller sebelum dimodifikasi.
Alur kerja sistem dibuat berdasarkan blok diagram pada Gambar 1. Alur kerja sistem dapat dilihat pada Gambar 2.
Mulai
Gambar 2. Diagram alir sistem
2.1 Perancangan pada Master Controller
Master controller mengirimkan keep-alive
status kepada fault detector seacara periodik. Unit ini bekerja berdasarkan Keep-alive status dari master. Pengiriman dilakukan menggunakan komunikasi serial I2C dan
VirtualDelay library agar pengiriman berjalan
secara multitask. Diagram alir pada master
Mulai
kirim Keep-alive
Power off / infinite loop
Berhenti kirim Keep-alive
Selesai
Gambar 3. Diagram alir master controller
2.2 Perancangan pada Fault Detector
Fault detector atau fault detector bertugas
mendeteksi kegagalan yang terjadi pada master.
Faultdetector harus mampu membedakan antara
kegagalan yang memerlukan failover atau tidak. Hal ini karena Fault detector juga bertanggung jawab atas keputusan switch modul untuk melakukan failover maupun failback. Diagram alir faultdetector dapat dilihat pada Gambar 4.
Dari master
Master Keep-alive status
Selesai Fail over berhenti
Y
N
pressed
Y
Failback Tombol Reset
N
Reset
Gambar 4. Diagram alir fault detector
2.3 Perancangan pada Switch
Switch module bertanggung jawab
mengalihkan dari master ke slave (fail over) maupun dari slave ke master (fail back). Perangkat switch merupakan actuator dari perangkat fault detector berupa relay module.
Switch bekerja berdasarkan output trigger dari
Faultdetector.
2.4 Perancangan pada Slave Controller
Slavecontroller bertugas sebagai pengganti
ketika mastercontroller mengalami kegagalan.
Slave bekerja dibawah kendali switch yang
mengalihkan catu daya serta I/O dari master. Diagram alir slave controller dapat dilihat pada Gambar 5.
Gambar 5. Diagram alir slave controller
3. IMPLEMENTASI SISTEM
Sub bab ini menjelaskan bagaimana proses implementasi dari desain dan perancangan sistem terhadap kebutuhan-kebutuhan yang sudah dikumpulkan. Perangkat keras dari analisis kebutuhan di rancang konfigurasi hubungan pin antar perangkan hingga membentuk prototipe alat.
Berdasarkan desain rancangan yang telah dilakukan hasil implementasi perangkat keras dapat dilihat pada Gambar 6.
Mulai
Trigger switch
Power Up
Selesai On atau Off
On
Gambar 6. Implementasi perangkat keras
Keterangan masing-masing komponen
dari Gambar 6 :
1. Arduino Uno (Master)
2. Arduino Uno (Slave)
3. Arduino Nano (Fault Detector)
4. Relay 8 channel (Switch untuk input)
5. Relay 4 channel (Switch untuk output)
6. RFID reader
7. Relay 1 channel sebagai kontrol solenoid
8. Solenoid door lock
9. I2C LCD 16x2
10. Buzzer
4. PENGUJIAN DAN ANALISIS
4.1 Pengujian Fungsional
Pengujian fungsional yang pertama adalah pengujian terhadap transaksi keep-alive status yang dilakukan untuk melihat apakah pengiriman dan pembacaan keep alive status berjalan dengan benar atau tidak. Pengujian ini dilakukan dengan memantau transaksi melalui
serial monitor dari sisi penerima (fault detector).
Hasil pengujian transaksi keep-alive status yang dilakukan pada master controller dan fault
detector ini dapat dilihat pada gambar 7.
Gambar 7. Hasil pengujian transaksi keep alive
Melihat hasil dari pengujian tersebut dapat dilihat bahwa transaksi keep-alive status
berjalan dengan baik. Jika diperhatikan hasil pengujian pada Gambar 7 terdapat dua jenis pesan yang diterima fault detector. “Master
Status : ONLINE” merupakan pesan yang mengindikasikan bahwa master controller
beroperasi dengan normal. Sedangkan “Master Status : OFFLINE” mengindikasikan bahwa
master controller mati atau error.
Mulai
Fail over ke Slave
Selesai Hidupkan Sistem
Matikan perangkat master
Hidupkan kembali perangkat master
Reset Fault Detection Unit
Mulai
Fail over ke Slave
Selesai Hidupkan Sistem
Tambahkan infinite loop pada program
Hilangkan infinite loop pada program
Fail back ke master Fail back ke master
Reset Fault Detection Unit
Gambar 8. Skenario pengujian switching secara
hardware (kiri) dan software (kanan)
Selanjutnya adalah pengujian switching
redundansi secara fisik. Pada pengujian ini akan terlihat apakah sistem redundansi mampu melakukan switching dan sistem kunci pintu otomatis tetap berjalan normal atau tidak. Pengujian dilakukan dengan menjalankan skenario pada Gambar 8 sebanyak 10 kali. Skenario pengujian switching terdiri dari dua skenario yaitu power off (secara hardware) dan
infinite loop (secara software).
Hasil dari pengujian switching dengan skenario power off dapat dilihat pada Tabel 1.
Tabel 1. Hasil pengujian power off
Pengujian
ke- Failover Failback
Fungsi
hasil dari pengujian dengan skenario infinite loop dapat dilihat pada Tabel 2.
Tabel 2. Hasil pengujian infinite loop
Pengujian
ke- Failover Failback
Fungsi
4.2 Pengujian Non Fungsional
Pengujian non fungsional dilakukan untuk menguji kebutuhan sistem diluar dari fungsi tujuan sistem. Dalam hal ini penulis menguji akurasi dari pengiriman serta pembacaan
Keep-alive status antara perangkat masterdengan fault
detector. Selain akurasi penulis juga menguji
jeda waktu error dengan switchingfail over dan jeda waktu hingga sistem siap dioperasikan.
Pengujian akurasi Keep-alive status dilakukan dengan menampilkan nilai dua variabel yang menyimpan nilai Keep-alive status
yg selalu berubah – ubah. Nilai akurasi ditentukan dengan melihat nilai kedua variabel tersebut. Jika nilainya berbeda maka artinya akurat, jika sama maka tidak akurat. . Hasil pengujian dapat dilihat pada Gambar 9.
Gambar 9. Hasil pengujian akurasi keep-alive
Hasil tersebut menunjukkan 7 dari 10 transaksi yang akurat. Angka tersebut menandakan bahwa dari 5 detik operasi sistem redundansi terdapat 1,5 detik (3 kali 0,5 detik tidak berturut – turut) transaksi yang tidak akurat. Namun dengan tingkat akurasi tersebut sudah membuat sistem redundansi tidak mengalami kegagalan switching sama sekali dalam 10 kali percobaan.
Pengujian jeda switching dilakukan untuk mengetahui berapa lama jeda switching dan berapa lama jeda yang dibutuhkan setelah switching sampai sistem dapat berfungsi normal. Jeda yang diberikan pada program adalah 5 detik untuk mempertimbangkan keputusan
switching.
Pengujian dilakukan dengan bantuan fitur
stopwatch pada ponsel genggam untuk
menghitung waktu sebenarnya. Setelah dilakukan pengujian waktu stopwatch
menunjukkan 1 detik lebih lambat dari waktu jeda yang disematkan pada program yaitu 6 detik. Sedangkan untuk jeda waktu setelah
switching sampai sistem siap digunakan adalah 2
detik. Dengan demikian waktu jeda total dari saat error terjadi hingga perangkat slave siap beroperasi adalah 8 detik.
4.3 Analisis Reliability
Hasil pengujian yang sudah dilakukan akan dianalisis untuk membuktikan apakah reliability
Dengan pemodelan dependability akan dapat diketahui peningkatan reliability pada sistem.
Langka awal analisis adalah melalui pemodelan Reliability Block Diagram (RBD). RBD sistem dapat dilihat pada Gambar 7.
Gambar 10. Hasil Pemodelan RBD sistem
Failure rate Arduino Uno dibutuhkan untuk
menganalisis reliability. Dengan menggunakan failure rate Arduino Uno
2.0559 x 10
-5per jam
reliability Arduino Uno adalah sebagai berikut.
𝑅(𝑡) = 𝑒
−𝜆𝑡𝑅(𝑡) = 𝑒
−2.0559×10−5×8760𝑅(𝑡) = 0.8351
Berdasarkan RBD yang sudah dimodelkan pada Gambar 10 dapat dilihat bahwa sistem tersebut adalah parallel. Dalam sistem yang parallel dibutuhkan setidaknya satu komponen bekerja. Berikut persamaan reliability yang didapatkan untuk mengevaluasi reliability.
𝑅(𝑡) = 1 − ∏(1 − 𝐶𝑖(𝑡))
Dari hasil perhitungan diatas didapatkan nilai R(t) = 0.9896 atau dengan kata lain sistem kunci pintu otomatis berbasis Arduino Uno dengan cold standby redundancy memiliki nilai
reliability 98.96%.
Apabila sistem kunci pintu otomatis tanpa
cold standby redundancy maka akan menjadi
sistem seri dan akan menghasilkan perhitungan sebagai berikut.
Dari perhitungan tersebut menghasilkan nilai R(t) = 0.8351 atau dengan kata lain dengan sistem seri nilai reliability sistem adalah 83.51%.
5. KESIMPULAN
Perancangan perangkat keras sistem
hardware redundancy dengan metode cold
standby membutuhkan 3 komponen utama yaitu
redundant unit (slave), fault detector, dan juga
switch. Ketiga komponen tersebut harus
dikonfigurasi sesuai fungsi masing masing.
Faultdetector berperan sangat penting sehingga
harus memiliki reliability yang sangat tinggi karena harus memantau dan memutuskan untuk
switching ketika sistem fail. Switch (relay) yang
bertugas merubah jalur digital I/O dari master ke slave dan sebaliknya juga harus dikonfigurasi dengan teliti karena terdapat banyak sekali
wiring yang rawan terjadi kesalahan.
Untuk melakukan transaksi keep-alive
tersebut keduanya membutuhkan library wire
dan di sisi master ditambahkan library
VirtualDelay agar pengiriman keep-alive status
berjalan secara multitask. Berdasarkan hasil pengujian akurasi dan timeout switching ternyata terjadi perbedaan jeda dimana konfigurasi pada program jeda hanya 5 detik namun switching
baru terjadi pada detik ke 6. Hal ini mungkin disebabkan oleh tingkat akurasi transaksi
keep-alive yang masih belum maksimal yaitu 70%.
Namun hasil tersebut tidak mengganggu sistem redundansi yang berjalan lancar selama 20 kali pengujian (secara hardware dan software) tanpa ada kegagalan satu pun.
Hasil analisis perhitungan reliability
sistem tanpa redundansi dengan sistem yang menggunakan redundansi dapat disimpulkan bahwa sistem dengan redundansi memiliki nilai
reliability yang lebih tinggi. Hal ini
membuktikan bahwa sistem paralel lebih
reliable daripada sistem seri. Hasil analisis
menunjukkan peningkatan reliability sebesar 15.45% dengan nilai failure rate Arduino Uno
2.0559 x 10
-5per jam
.C
1C
2DAFTAR PUSTAKA
Dubrova, E., 2013. Fault-Tolerant Design. New York: Springer Science+Business Media.
NASA, 2000. The Role of Small Satellites in NASA and NOAA Earth Observation Programs. .Space Studies Board, National Research Council, National Academy of Sciences, Washington, USA .
National Instruments, 2008. Redundant System Basic Concepts. [Online]
Tersedia di: http://www.ni.com/white-paper/6874/en/ [Diakses pada 8 September 2017].
Nehete, P. R., Chaudhari, J., Pachpande, S. & Rane, K., 2016. Literature Survey on Door Lock Security Systems. International
Journal of Computer Applications, Volume