SI1633493863

Dari widuri
Lompat ke: navigasi, cari

PENGEMBANGAN SISTEM CONTROL DENGAN METODE

REVERSE ENGINEERING PADA AIR CONDITIONER

WATER COOLED PACKAGED DI PT

MANDIRI CIPTA TEKINDO


SKRIPSI





Disusun Oleh :


NIM
: 1633493863
NAMA


FAKULTAS SAINS DAN TEKNOLOGI

PROGRAM STUDI SISTEM KOMPUTER

KONSENTRASI CREATIVE COMMUNICATION AND INNOVATIVE TECHNOLOGY

UNIVERSITAS RAHARJA

TANGERANG

TA. 2019/2020





UNIVERSITAS RAHARJA


LEMBAR PENGESAHAN SKRIPSI



PENGEMBANGAN SISTEM CONTROL DENGAN METODE

REVERSE ENGINEERING PADA AIR CONDITIONER

WATER COOLED PACKAGED DI PT

MANDIRI CIPTA TEKINDO



Disusun Oleh :


NIM
: 1633493863
Nama
Fakultas
Program Pendidikan
: Strata 1
Program Studi
Konsentrasi



Disahkan Oleh :

Tangerang, 22 Januari 2020


Rektor
       
Ketua Program Studi
       
Program Studi Sistem Komputer
           
           
           
           
       
NIP : 000603
       
NID : 13001






UNIVERSITAS RAHARJA


LEMBAR PERSETUJUAN PEMBIMBING


PENGEMBANGAN SISTEM CONTROL DENGAN METODE

REVERSE ENGINEERING PADA AIR CONDITIONER

WATER COOLED PACKAGED DI PT

MANDIRI CIPTA TEKINDO


Dibuat Oleh :


NIM
: 1633493863
Nama



Telah disetujui untuk dipertahankan di hadapan Tim Penguji Ujian Komprehensif


Fakultas Sains Dan Teknologi

Program Studi Sistem Komputer

Konsentrasi Creative Communication and Innovative Technology

Disetujui Oleh :


Tangerang, 22 Januari 2020


Pembimbing I
 
Pembimbing II
         
         
         
         
 
NID : 02010
 
NID : 05061






UNIVERSITAS RAHARJA


LEMBAR PERSETUJUAN DEWAN PENGUJI



PENGEMBANGAN SISTEM CONTROL DENGAN METODE

REVERSE ENGINEERING PADA AIR CONDITIONER

WATER COOLED PACKAGED DI PT

MANDIRI CIPTA TEKINDO


Dibuat Oleh :


NIM
: 1633493863
Nama



Disetujui setelah berhasil dipertahankan dihadapan Tim Penguji Ujian Komprehensif

Fakultas Sains Dan Teknologi

Program Studi Sistem Komputer

Konsentrasi Creative Communication and Innovative Technology

Tahun Akademik 2018/2019


Disetujui Penguji :

Tangerang, Februari 2020


Ketua Penguji
 
Penguji I
 
Penguji II
         
         
         
         
(........................................)
 
(............................................)
 
(....................................................)
NID : .....
 
NID : .....
 
NID : .....






UNIVERSITAS RAHARJA


LEMBAR KEASLIAN SKRIPSI


PENGEMBANGAN SISTEM CONTROL DENGAN METODE

REVERSE ENGINEERING PADA AIR CONDITIONER

WATER COOLED PACKAGED DI PT

MANDIRI CIPTA TEKINDO


Dibuat Oleh :


NIM
: 1633493863
Nama
Fakultas
Program Pendidikan
: Strata 1
Program Studi
Konsentrasi



Menyatakan bahwa Skripsi ini merupakan karya tulis saya sendiri dan bukan merupakan tiruan, salinan, atau duplikat dari Skripsi yang telah dipergunakan untuk mendapatkan gelar Sarjana baik di lingkungan Universitas Raharja maupun di Universitas lain, serta belum pernah dipublikasikan.

Pernyataan ini dibuat dengan penuh kesadaran dan rasa tanggung jawab, serta bersedia menerima sanksi jika pernyataan diatas tidak benar.


Tangerang, 22 Januari 2020


Farhan Rosyadi
NIM. 1633493863


)*Tandatangan dibubuhi materai 6.000;





ABSTRAK

Perkembangan teknologi saat ini berkembang maju sudah sangat pesat, khususnya dalam bidang penggunaan alat elektronik. Perkembangan tersebut tentu merupakan hal yang sangat digencarkan, mulai dari banyaknya penelitian teknologi baru hingga penyempurnaan yang sudah ada. Contoh kasusnya adalah mengembangkan sistem kontrol mesin pendingin di PT Mandiri Cipta Tekindo. Proses pengembangan tersebut bisa melalui banyak cara, salah satunya ada dengan cara Reverse Engineering dari teknologi yang sudah ada. Oleh karena itu perlu adanya sebuah sistem yang mempermudah pengguna dengan mengembangkan sistem yang sudah ada dengan menggunakan Arduino sebagai otak untuk memproses sensor dan perangkat pengaman, Relay untuk menghubungkan perintah dari sistem kontrol ke Fan dan Compressor, LCD display digunakan untuk menampilkan informasi pada layar, modul SIM800L yang berfungsi mengirim notifikasi berupa SMS peringatan ketika terjadi kesalahan pada bagian pengaman seperti flow switch atau compressor yang error, dan Sensor suhu DS18B20 yang dimanfaatkan untuk membaca suhu pada ruangan. Metode yang digunakan dalam penelitian ini adalah observasi langsung. Kesimpulan dari penelitian ini adalah setiap teknologi yang sudah diciptakan memiliki alur dan cara kerjanya masing-masing, meskipun dengan metode Reverse Engineering bisa didapatkan hasil serupa, namun sistem kontrol asli dan yang dibuat berdasarkan Reverse Engineering tidak bisa dipastikan sama.

Kata Kunci : Air Conditioner Water Cooled Packaged, Arduino, Reverse Engineering


ABSTRACT

The development of technology is currently developing very rapidly, especially in the field of use of electronic devices. This development is certainly a very intense thing, starting from the many new technological studies to the existing improvements. An example of a case is developing a cooling engine control system at PT Mandiri Cipta Tekindo. The development process can go through many ways, one of which is by Reverse Engineering from existing technology. Therefore it is necessary to have a system that facilitates the user by developing an existing system using Arduino as the brain to process sensors and security devices, relays to connect commands from the control system to the Fan and Compressor, LCD displays are used to display information on the screen, modules SIM800L which functions to send notifications in the form of SMS warnings when an error occurs in the safety section such as a flow switch or compressor error, and temperature sensor DS18B20 which is used to read the temperature in the room. The method used in this study is direct observation. The conclusion of this research is that every technology that has been created has the flow and the way it works, although with the Reverse Engineering method, similar results can be obtained, but the original control system and those made based on Reverse Engineering cannot be ascertained the same.

Keywords : Air Conditioner Water Cooled Packaged, Arduino, Reverse Engineering






KATA PENGANTAR


Dengan memanjatkan puji syukur kehadirat Allah SWT karena atas berkat, rahmat, dan Anugerah-Nya yang telah melancarkan seribu jalan, sejuta langkah, Serta dukungan kedua orang tua sehingga penulis dapat berjalan dengan baik dan dapat menyelesaikan dan menyusun Skripsi ini, dengan judul “PENGEMBANGAN SISTEM CONTROL DENGAN METODE REVERSE ENGINEERING PADA AIR CONDITIONER WATER COOLED PACKAGED DI PT MANDIRI CIPTA TEKINDO”..

Tujuan penulisan laporan Skripsi ini sebagai syarat dalam menyelesaikan Program Pendidikan Strata 1 Program Studi Sistem Komputer pada Universitas Raharja.

Penulis menyadari bahwa tanpa adanya bimbingan dan dorongan dari berbagai pihak, penulis tidak dapat menyelesaikan laporan penelitian ini dengan baik dan tepat pada waktu yang telah ditentukan. Pada kesempatan ini, penulis ingin menyampaikan rasa terima kasih kepada pihak-pihak yang telah membantu serta mendukung penulis dalam menyelesaikan laporan penelitian ini, diantaranya:

  1. Bapak Dr. Po. Abas Sunarya, M.Si selaku Rektor Universitas Raharja
  2. Bapak Dr. Henderi, S.Kom., M.Kom. selaku Dekan Fakultas Universitas Raharja.
  3. Bapak Padeli, M.Kom selaku wakil Dekan Fakultas Sains dan Teknologi Universitas Raharja.
  4. Ibu Ageng Setiani Rafika, S.Kom., M,Si. selaku Ketua program Studi Sistem Komputer dan selaku stakeholder yang telah berkenan memberikan bimbingan dan pengarahan kepada penulis.
  5. Bapak Mukti Budiarto, Ir., M.T.I selaku Dosen Pembimbing I yang telah berkenan memberikan bimbingan dan pengarahan serta motivasi dan dukungan kepada penulis sehingga skripsi ini dapat diselesaikan dengan baik.
  6. Bapak Indrianto, M.T. selaku Dosen Pembimbing II yang telah berkenan memberikan berbagai masukan, bimbingan dan pengarahan kepada penulis.
  7. Bapak dan Ibu Dosen Universitas Raharja yang telah memberikan ilmu pengetahuan kepada penulis.
  8. Kedua Orang Tua tercinta yang telah banyak memberikan dukungan moril dan materil serta doa bagi keberhasilan penulis sehingga skripsi ini dapat terselesaikan dengan baik.
  9. Bapak Dedi Supriatna selaku stakeholder yang telah memberikan kontribusi besar di dalam lancarnya proses penelitian skripsi ini.

Laporan penelitian ini masih jauh dari sempurna. Oleh sebab itu, penulis mengharapkan kritik dan saran yang membangun, sebagai pemicu agar berkarya lebih baik lagi. Semoga laporan penelitian ini dapat bermanfaat bagi semua pihak khususnya bagi Universitas Raharja.


Tangerang, Januari 2020
Farhan Rosyadi
NIM. 1633493863






DAFTAR GAMBAR



DAFTAR TABEL









DAFTAR SIMBOL

DAFTAR SIMBOL FLOWCHART





BAB I

PENDAHULUAN

Latar Belakang

Perkembangan teknologi industri modern semakin pesat. Salah satu contohnya adalah teknologi di bidang robotika. Dimana hampir semua pekerjaan manusia sudah bisa digantikan oleh robot. Sistem kontrol digunakan dalam beberapa hal. Contohnya, pada suatu mesin pendingin yang membutuhkan sistem untuk mengontrol kinerja kompresor yang sedang digunakan secara waktu nyata.

Berawal dari hal tersebut penulis ingin membuat alat sistem control air conditioner water cooled packaged menggunakan arduino sebagai pusat kendalinya, sensor DS18B20 sebagai sensor suhu, LCD sebagi penampilnya, dan modul SMS sebagai pengirim notifikasi jika terjadi error pada sistem. Hasil menunjukan Arduino mempunyai input berupa sensor suhu, flow switch, high pressure or low pressure compressor. Kemudian data tersebut ditampilkan pada LCD serta SMS sebagai notifikasi jarak jauh.

Sistem ini dibuat menggunakan metode Reverse Engineering, dimana penulis melakukan penelitian terhadap modul asli bawaan AC yang sudah digunakan dan dibuat ulang menggunakan arduino sebagai mikrokontrolernya serta menambahkan fitur tambahan yaitu berupa SMS notifikasi yang mana fitur tersebut belum terdapat di modul bawaan AC.

Alat atau sistem kontrol ini dibuat sebagai penunjang informasi dan keputusan yang dikemas dalam bentuk rakitan modul. Dengan adanya sistem kontrol pada air conditioner water cooled packaged tersebut, hasil yang didapat adalah AC dapat beroperasi secara optimal dan penggunaan lebih.

Rumusan Masalah

Berdasarkan latar belakang masalah tersebut di atas, maka dapat dirumuskan beberapa permasalahan pada penelitian yaitu :

  1. Bagaimana cara membuat sistem kontrol AC dengan notifikasi sms menggunakan metode reverse engineering pada modul bawaan AC?
  2. Bagaimana cara kerja sistem kontrol AC dengan notifikasi sms menggunakan arduino?
  3. Bagaimana cara pengguna mendapatkan notifikasi berupa SMS ketika terjadi masalah pada AC?

Tujuan Penelitian

Adapun tujuan pokok dari penelitian ini yaitu untuk menjelaskan fakta–fakta yang telah ditemukan, serta menerapkan berbagai teori yang telah didapatkan selama ini adalah sebagai berikut :

  1. Dapat menghasilkan alat yang bisa memonitoring kinerja Air Conditioner Water Cooled Packaged secara waktu nyata dan mengirimkan informasi kepada pengguna ketika kondisi Air Conditioner Water Cooled Packaged sedang mengalami masalah.
  2. Dapat membuat kompresor menjadi lebih awet sekaligus bekerja lebih efisien.
  3. Merancang suatu sistem kontrol yang memberikan informasi dari beberapa komponen safety AC ke arduino lalu mengirimkan data tersebut ke LCD dan modul SMS.


Manfaat Penelitian

Adapun manfaat yang dihasilkan dari penelitian adalah sebagai berikut :

  1. Bagi Pengguna, sistem yang dibuat dapat mempermudah pengguna untuk menjaga kinerja Air Conditioner Water Cooled Packaged agar selalu prima.
  2. Bagi Perusahaan, umur atau masa pakai kompresor menjadi lebih panjang sehingga menghemat anggaran penggantian suku cadang.
  3. Bagi Peneliti, peneliti dapat mengimplementasikan program yang dibuat serta mendapatkan data untuk membuat sistem yang lebih baik dan profesional lagi dari sebelumnya.


Ruang Lingkup Penelitian

Penelitian yang dilakukan meliputi kinerja Arduino dengan sensor suhu serta beberapa komponen safety pada Air Conditioner Water Cooled Packaged kepada Kompresor yang digunakan pada AC. Adapun ruang lingkupnya yaitu :

  1. Pembahasan Arduino dan sistem kontrol Air Conditioner Water Cooled Packaged.
  2. Sensor suhu yang digunakan adalah DS18B20.
  3. Pembahasan hanya meliputi cara kerja modul bawaan AC dan pembuatan ulang menggunakan arduino dan sensornya.
  4. Pembahasan program terbatas di Arduino, User Interface pada LCD, dan SMS sebagai bentuk notifikasi.


Manfaat Penelitian

Adapun manfaat yang dihasilkan dari penelitian adalah sebagai berikut :

  1. Bagi Pengguna, sistem yang dibuat dapat mempermudah pengguna untuk menjaga kinerja Air Conditioner Water Cooled Packaged agar selalu prima.
  2. Bagi Perusahaan, umur atau masa pakai kompresor menjadi lebih panjang sehingga menghemat anggaran penggantian suku cadang.
  3. Bagi Peneliti, peneliti dapat mengimplementasikan program yang dibuat serta mendapatkan data untuk membuat sistem yang lebih baik dan profesional lagi dari sebelumnya.


Metodologi Penelitian

Dalam menyelesaikan pembuatan alat dan penulisan skripsi ini, maka dilaksanakan suatu penelitian sehingga bisa memperoleh suatu hasil yang maksimal dan sesuai dengan tujuannya. Adapun metodologi penelitian yang digunakan adalah Metode Reverse Engineering yaitu dengan menganalisa sistem yang berjalan dan mengembangkannya.


Langkah-Langkah Analisa Sistem Berjalan

Penulis melakukan analisa dengan membuat Wiring Diagram dan flowchart tentang sistem kontrol yang sedang berjalan dengan cara membuka mesin dan melihat bagaimana sistem kontrol dan Air Conditioner Water Cooled Packaged bekerja.

Pembuatan Wiring Diagram berdasarkan koneksi kabel pada Sistem Kontrol, Box Panel, Fan, dan Kompresor. Dari Wiring Diagram dapat diketahui bahwa pengaman yang terdapat pada Air Conditioner Water Cooled Packaged yaitu berupa Saklar ON OFF pada Flow Switch, High Pressure Compressor, dan Low Pressure Compressor. Dimana masing-masing saklar akan OFF / terputus jika terjadi error atau masalah pada bagiannya.

Kemudian flowchart sistem yang berjalan dibuat berdasarkan rutinitas program yang dicoba oleh penulis kepada sistem dan AC yang sedang tidak bekerja. Dengan menggunakan jumper dan alat tes sebagai pengganti safety dan beban yaitu Fan & Compressor, penulis mendapatkan sebuah flowchart sistem yang dapat memberikan data bagaimana rutinitas program berikutnya dapat dibuat dengan memodifikasi beberapa bagiannya.


Pengembangan Sistem

Setelah penulis mendapatkan Wiring Diagram dan Flowchart dari sistem yang sedang berjalan, Berikutnya penulis melakukan beberapa perubahan pada Flowchart untuk menambahkan fitur notifikasi berupa SMS.

Kemudian dari flowchart yang sudah dimodifikasi, penulis membuat Program dan Wiring Diagram yang baru menggunakan arduino dan modul lainnya. Setelah perakitan alat selesai maka penulis mencoba sistem kontrol yang baru tersebut menggunakan metode black box testing untuk mengetahui kinerjanya.


Sistematika Penulisan

Untuk memahami dan mengerti lebih jelas tentang penulisan penelitian ini, maka dikelompokkan materi penulisan menjadi 5 (lima) bab yang menjelaskan masing-masing bagiannya, yaitu:


BAB I PENDAHULUAN

Bab ini berisi tentang uraian latar belakang masalah, perumusan masalah, tujuan dan manfaat penelitian, ruang lingkup penelitian, metode penelitian dan sistematika penulisan.


BAB II LANDASAN TEORI

Bab ini berisi tentang teori-teori yang digunakan dalam penelitian. Selain itu bab ini juga menjelaskan metode reverse engineering yang digunakan untuk menyelesaikan rancangan program yang akan dibuat. Teori dan referensi tersebut didapatkan dari buku, internet, jurnal, dan laporan-laporan sebelumnya.


BAB III PEMBAHASAN

Bab ini berisi tentang informasi struktur perusahaan tempat penulis melakukan penelitian serta penjelasan sistem lama bawaan AC yang telah berjalan melalui wiring diagram dan flowchart.


BAB IV RANCANGAN SISTEM YANG DIUSULKAN

Bab ini merupakan bagian pembuatan alat yang dibuat dengan menggunakan metode reverse engineering. Dimana peneliti memodifikasi flowchart dan mengimplementasikannya ke arduino dengan wiring diagram dan program yang baru.


BAB V PENUTUP

Bab ini berisi tentang kesimpulan dan saran dari hasil pengamatan, dan penelitian yang dilakukan pada penulisan skripsi.


DAFTAR PUSTAKA

LAMPIRAN - LAMPIRAN




BAB II

LANDASAN TEORI

Teori Umum

Bagian ini berisi tentang teori umum yang mempelajari tentang ilmu sistem kontrol, notifikasi, konsep Air Conditioner Water Cooled Packaged, dan metode penelitian yang digunakan.


Sistem Kontrol

Menurut Kamus Besar Bahasa Indonesia (KBBI) daring[1], sistem adalah perangkat unsur yang secara teratur saling berkaitan sehingga membentuk suatu totalitas.

Menurut Kamus Besar Bahasa Indonesia (KBBI) daring[2], kontrol adalah pengawasan, pemeriksaan, pengendalian.

Menurut Website Wikipedia[3], Sistem kendali atau sistem kontrol (control system) adalah suatu alat (kumpulan alat) untuk mengendalikan, memerintah, dan mengatur keadaan dari suatu sistem. Istilah sistem kendali ini dapat dipraktekkan secara manual untuk mengendalikan stir mobil pada saat kita mengendarai/menyetir mobil kita, misalnya, dengan menggunakan prinsip loloh balik. Dalam sistem yang otomatis, alat semacam ini sering dipakai untuk peluru kendali sehingga peluru akan mencapai sasaran yang diinginkan. Banyak contoh lain dalam bidang industri / instrumentasi dan dalam kehidupan kita sehari-hari di mana sistem ini dipakai. Alat pendingin (AC) merupakan contoh yang banyak kita jumpai yang menggunakan prinsip sistem kendali, karena suhu ruangan dapat dikendalikan sehingga ruangan berada pada suhu yang kita inginkan.

Sesuai dengan informasi diatas, sistem kontrol berarti sebuah perangkat yang bekerja untuk mengendalikan sesuatu sehingga membentuk suatu totalitas.


Notifikasi

Notifikasi atau pemberitahuan yang digunakan pada sistem kontrol ini adalah pemberitahuan melalui SMS (Short Message Service) berisi informasi jika terjadi error atau masalah pada bagian safety seperti kondisi kompresor yang High Pressure atau Low Pressure atau pada saat flow switch mati ketika tidak ada air yang mengalir. Sehingga pengguna dapat mengetahuinya secara waktu nyata melalui handphone.


Definisi Metode Testing

Menurut Rahardja, et al dalam tulisannya di Technomedia Journal (2017 : 54)[4], Metode testing adalah metode yang memfokuskan pada pengujian logika internal pada software, guna mencari segala kemungkinan adanya kesalahan dan memeriksa input yang dimasukan sehingga dapat memberikan hasil yang sesuai, dan dapat meminimalisir error yang terjadi pada program.

Menurut Mustaqbal, et al dalam jurnalnya (2015 : 33)[5], Metoda Testing menyediakan cara terakhir dari tingkat kualitas mana yang dapat dicapai dan dengan praktis dapat mengetahui letak error.


Definisi Black Box Testing

Menurut Sunarya, et al dalam jurnalnya (2015 : 3)[6], Metode Testing merupakan sebuah metode untuk melakukan verifikasi dalam rangka mencari sebuah kesalahan sebuah aplikasi dan untuk mendeteksi kondisi sistem.

Menurut Maimunah, et al dalam jurnalnya (2016 : 33)[7], Black Box Testing adalah pengujian program yang mengutamakan pengujian terhadap kebutuhan fungsi dari sebuah program. Metode blackbox testing memiliki tujuan guna menemukan kesalahan fungsi dari program yang dirancang. Pengujian dengan menggunakan blackbox testing dilakukan dengan cara memberikan beberapa inputan pada program. Input tersebut kemudian diproses sesuai dengan kebutuhan fungsionalnya guna memastikan apakah program tersebut dapat menghasilkan output yang sesuai dengan yang diinginkan dan sesuai dengan fungsi dasar program tersebut. Apabila inputan yang diberikan menghasilkan output yang sesuai maka program yang dibuat sudah benar, tetapi apabila output yang dihasilkan tidak sesuai maka masih terdapat kesalahan pada program tersebut, dan selanjutnya akan dilakukan perbaikan guna memperbaiki kesalahan yang terjadi pada sistem.

Menurut Aisyah, et al dalam jurnalnya (2016 : 17)[8], BlackBox Testing adalah metodologi uji coba yang memfokuskan pada keperluan fungsional perangkat untuk menguji kesesuaian rancangan fungsional aplikasi dengan tampilan dan jalannya aplikasi apakah aplikasi sesuai dengan rancangan fungsional dan memiliki error atau tidak.


Definisi Mesin Pendingin

Menurut Daniel (2013:4)[9] dalam tulisannya berjudul Mesin Pendingin Dengan Pemanasan dan Pendinginan Lanjut Pada Siklus Kompresi Uap, Mesin pendingin atau yang disebut juga dengan refrigerator adalah suatu mesin yang di dalamnya terjadi siklus dari bahan pendingin sehingga terjadi perubahan panas dan tekanan. Perubahan panas dan tekanan terjadi pada siklus dari kerja mesin pendingin.

Menurut Fitri (2019:4)[10] dalam tulisannya berjudul Termoskop Dan Pendingin Udara Sederhana: Pengembangan Alat Peraga Fisika Untuk Pembelajaran Fisika, Mesin pendingin adalah mesin yang berfungsi untuk mendinginkan suatu zat sehingga suhunya lebih rendah daripada suhu lingkungan. Komponen utama mesin pendingin adalah kompresor, kondensor, alat ekspansi, evaporator dan refrigerant.

Menurut Jenny dkk (2016:51)[11] dalam jurnalnya berjudul Studi Penggunaan Modul Thermoelektrik Sebagai Sistem Pendingin Portable, Salah satu mesin pendingin adalah refrigerator atau kulkas. Komponen refrigerator terdiri dari kompresor, kondensor, evaporator, pipa kapiler atau katup ekspansi, filter, thermostat, heater, dan kipas.

Berdasarkan beberapa definisi tadi maka penulis menyimpulkan bahwa mesin pendingin adalah sebuat alat yang bisa menurunkan suhu menggunakan kompresor refrigeran untuk mencapai temperatur yang diinginkan.



Definisi Analisis Sistem

Berikut ini definisi analisis sistem yang penulis gunakan sebagai acuan untuk menganalisa sistem yang berjalan untuk membantu merangkai sistem usulan yang baru.

Menurut Sunarya, et al(2015:4)[12], Sistem adalah penelitian atas sistem yang telah ada dengan tujuan untuk merencanakan sistem yang baru atau diperbarui.

Menurut Mulyani (2017:38)[13], Analisis sistem merupakan suatu teknik penelitian terhadap sebuah sistem dengan menguraikan komponen-komponen pada sistem tersebut dengan tujuan untuk mempelajari komponen itu sendiri serta keterkaitannya dengan komponen yang membentuk sistem sehingga didapat sebuah keputusan atau kesimpulan mengenai sistem tersebut baik itu kelemahan ataupun kelebihan.

Menurut Muslihudin (2016:27)[14]mengatakan, “bahwa analisis sistem adalah teknik pemecahan masalah yang menguraikan bagian-bagian komponen tersebut bekerja dan berinteraksi untuk mencapai tujuan mereka”.

Berdasarkan beberapa pendapat yang dikemukakan oleh para peneliti tentang analisis sistem di atas bisa ditarik kesimpulan bahwa analisa sistem merupakan suatu cara yang digunakan untuk memecahkan masalah dengan cara menguraikan komponen-komponen pada sistem dan dipelajari dari cara kerja serta hubungannya dengan komponen lain yang membentuk suatu sistem tersebut sehingga kita memahami setiap bagian-bagiannya.


Teori Khusus

Bagian ini berisi tentang teori khusus yang mempelajari tentang pengertian dari arduino, mikrokontroler, modul-modul yang digunakan bersama arduino, serta konsep dasar literature review yang digunakan pada penelitian ini.


Definisi Arduino

Gambar 2.1 Arduino UNO.

Satu dari sekian banyaknya alat open source adalah platform prototyping arduino dimana bisa membuat pekerjaan dengan komponen elektronik menjadi murah, mudah, dan cepat. (Albaitish et al 2018:236)[15]. Pendekatan pemrograman yang paling umum adalah dengan menggunakan Arduino IDE, yang memanfaatkan pemrograman bahasa C. Ini memberi Anda akses ke Perpustakaan Arduino yang sangat besar yang terus tumbuh berkat komunitas open-source. (Monk, S 2018:1)[16]. Berikut ini ada definisi mengenai arduino yang penulis kutip dari beberapa peneliti lainnya antara lain menurut Jauhari Arifin (2016:90)[17], Arduino adalah platform pembuatan prototipe elektronik yang bersifat open source hardware yang berdasarkan pada perangkat keras dan perangkat lunak yang fleksibel dan mudah digunakan. Arduino ditujukan bagi para seniman, desainer, dan siapapun yang tertarik dalam menciptakan objek atau lingkungan yang interaktif.

Menurut Habibi Ramdani Safitri (2019:30)[18], Arduino adalah kit elektronik atau papan rangkaian open source yang di dalamnya terdapat komponen utama, yaitu sebuah chip mikrokontroler jenis AVR dari perusahaan Atmel. Mikrokontroler itu sendiri adalah IC yang biasanya di program agar rangkaian elektronik dapat membaca input, memproses input tersebut dan kemudian menghasilkan output sesuai yang diinginkan.

Menurut Silvia dkk (2014:2)[19], Arduino Uno adalah sebuah rangkaian yang dikembangkan dari mikrokontroler berbasis ATmega328.

Berdasarkan beberapa definisi diatas maka penulis mengambil kesimpulan bahwa arduino merupakan sebuah perangkat mikrokontroler yang open source / bebas digunakan yang mudah serta dapat digunakan untuk berbagai kebutuhan kontrol elektronik saat ini.


Definisi Mikrokontroler

Berikut ini adalah beberapa definisi mikrokontroler yang penulis kutip dari beberapa penelitian sebelumnya antara lain menurut Dharmawan dalam bukunya berjudul Mikrokontroler: Konsep Dasar dan Praktis (2017:1)[20], Mikrokontroler merupakan chip mikrokomputer yang secara fisik berupa IC (integrated circuit). Mikrokontroler berisikan bagian-bagian utama, yaitu CPU (Central Processing Unit), RAM (Random-Access Memory), ROM (Read-Only Memory), dan port I/O (input/output). Mikrokontroler bekerja berdasarkan program (perangkat lunak) yang dibenamkan di dalamnya.

Menurut Rochman dkk dalam tulisannya (2017:1)[21], Mikrokontroler adalah sebuah circuit elektronik atau mikroprosesor yang telah dilengkapi prosesor, memory, dan antarmuka Input/Output, tidak seperti mikroprosesor yang biasanya hanya memiliki CPU saja.

Menurut Kusumah et al. (2016:170)[22], Mikrokontroler adalah IC yang dapat diprogram berulang kali, baik ditulis atau dihapus. Biasanya digunakan untuk pengontrolan otomatis dan manual pada perangkat elektronika.


Modul Arduino

Modul-modul yang digunakan dalam penelitian ini yaitu  :

1. DS18B20

Gambar 2.2 Sensor Suhu D18B20.

DS18B20 adalah sensor suhu digital yang mampu membaca suhu dengan ketelitian 9 hingga 12-Bit, rentang -55°C hingga 125°C dengan ketelitian (+/-0.5°C ). Setiap sensor memiliki kode unik sebesar 64-Bit yang disematkan ke masing-masing chip, sehingga memungkinkan pengguna menggunakan banyak sensor dalam satu kabel ( Single Wire Data Bus / 1 Wire Protocol ).

Sensor ini digunakan untuk mengetahui suhu pada ruangan yang akan didinginkan oleh Air Conditioner, serta suhu pada pipa evaporator untuk menghindari pembekuan pada pipa yang bisa berdampak buruk bagi kompresor dan Air Conditioner secara keseluruhan.


2. SIM800L Ver 2.0

Gambar 2.3 SIM800L Ver 2.0

SIM800L Ver 2.0 merupakan versi update dari versi sebelumnya yang hanya memiliki jarak toleransi tegangan dari 3.4 Volt hingga 4.4 Volt, kini di versi terbarunya module ini bisa menggunakan voltase 5.0 Volt (4.8V - 5.2V). Modul ini bisa digunakan untuk menerima atau mengirim SMS, telepon, atau bahkan bisa menyambungkan modul mikrokontroler dengan internet melalui jaringan GPRS (General Packet Radio Service).

Dengan modul ini, Sistem dapat mengirim dan menerima informasi yang berguna untuk menghubungkan pengguna dan alat secara waktu nyata meskipun dengan jarak yang jauh. Informasi yang dikirim berupa SMS yang berisi data peringatan saat muncul kendala seperti flow switch error karena tidak ada air yang mengalir atau compressor yang mengalami high or low pressure.


3. Relay 2 Saluran

Gambar 2.4 Modul Relay 2 Channel

Modul relay 2 saluran dengan sumber tegangan 5 Volt ini memiliki 2 keluaran yang dapat digunakan sebagai saklar pada komponen elektronik untuk mengendalikan perangkat listrik yang membutuhkan arus yang cukup besar.

Rating maksimal arus pada relay biasanya bervariasi antara 10A 250VAC, 10A 30VDC, 10A 125VAC, 10A 28VDC, dan lainnya. Dimana rating tersebut merupakan batas maksimal listrik yang dapat dialirkan secara Peak / Seketika pada relay tersebut, ketika arus tersebut sudah melebihi dari kapasitasnya, bisa dipastikan relay akan rusak hangus terbakar.

Pada sistem ini, 2 relay tersebut akan digunakan untuk mengatur perangkat berupa fan indoor dan Compressor. Fan Indoor diatur untuk menyala ketika Air Conditioner beroperasi normal, dan Compressor akan menyala untuk mendinginkan ruangan ketika semua kondisi keamanan sudah sesuai dengan yang diharuskan.


4. DC to DC Adjustable Step Down

Gambar 2.5 Modul DC Step Down

Modul dengan IC LM2596S ini dapat menerima tegangan DC input dari 3 Volt hingga 40 Volt, lalu menurunkannya menjadi tegangan DC yang lebih rendah antara 1.5 Volt hingga 35 Volt. Dengan arus maksimal 3 ampere, modul ini sangat cukup untuk digunakan pada sistem kontrol yang akan penulis buat.

Penulis menggunakan modul step down ini untuk menurunkan tegangan DC 12 Volt yang diberikan dari Power Supply diluar menjadi tegangan DC 5 Volt dengan Ampere memadai yang akan dipakai sebagai catu daya eksternal oleh Modul Relay 2 Channel dan Modul SIM800L Ver 2.0 secara bersamaan.


5. LCD Serial I2C 20x4 / 2004

Gambar 2.6 Modul LCD 20x04 Blue Display

LCD Blue Display dengan ukuran 2004 ini merupakan layar yang bisa menampilkan teks maupun gambar dan dapat dikontrol melalui koneksi I2C (Inter-Integrated Circuit).

Modul LCD 2004 ini tersedia juga dalam ukuran 1602, dimana angkat yang tersebut menunjukan jumlah karakter dalam urutan kolom dan baris. Contohnya 2004 berarti memiliki 20 kolom dari kiri ke kanan, dan 4 baris dari atas ke bawah.

LCD ini akan digunakan untuk menampilkan informasi berupa suhu dan keadaan sistem kontrol yang bekerja. Dengan adanya layar ini, dapat memudahkan pengguna untuk mengetahui status AC apakah sedang beroperasi normal atau terjadi suatu kerusakan pada bagian pengamannya.


Literature Review

Menurut Handayani et al (2018:190)[23], Studi Pustaka merupakan metode yang digunakan untuk mengumpulkan informasi yang relevan sesuai dengan topik dan permasalahan yang menjadi objek penelitian. Beberapa literature review diantaranya sebagai berikut:


  1. Dalam penelitian Muhammad Ali Imron, Jamaaluddin (2017)[24] dengan judul Rancang Bangun Sistem Informasi Parkir Mobil Otomatis Pada Gedung Bertingkat Berbasis Arduino Mega 2560. Pada penelitian ini controller dibuat untuk mengotomatisasi perangkat-perangkat dengan tujuan mendapatkan efisien dan kemudahan. Berdasarkan dari hasil pengamatan di area parkir mobil gedung-gedung bertingkat seperti mall, sekarang masih banyak kekurangan dan kendala terutama di setiap libur akhir pekan atau libur panjang sekolah. Karena tempat parkir yang tersedia dengan jumlah mobil yang ada tidak seimbang, sehingga pengguna parkir sering kesulitan dan kebingungan ketika mencari tempat parkir yang kosong, sampai harus mengelilingi area parkir tersebut berkali-kali. Dengan adanya permasalahan di atas maka diperlukan inovasi dalam bentuk sebuah sistem informasi dalam memberikan kemudahan kepada pengguna parkir, untuk mencari tempat parkir yang kosong.
  2. Dalam penelitian Dwiki Darmawan, Setya Permana Sutisna, Edi Sutoyo (2018)[25] dengan judul Sistem Kontrol Pada Robot Pemindah Barang Tipe Cartesian Coordinat Menggunakan Arduino Uno R3. Penelitian ini mengembangkan sistem kontrol pemindah barang tipe cartesian coordinate menggunakan pengendali mikrokontroler arduino uno R3 sebagai pembantu kerja manusia tanpa ada rasa lelah, dan menganalisis persentase keberhasilan robot yang dibutuhkan untuk memindahkan barang dari tempat satu ke tempat yang lainnya yg sudah di tentukan.
  3. Dalam penelitian Beny Firman, Teguh Hariyadi, Muhammad Suyanto (2018)[26] dengan judul Perancangan Sistem Telemetri Dan Kendali jarak Jauh Peranti Variable Speed Drive Via Protokol MODBUS Berbasis Aplikasi Virtuino Pada Android. Pada penelitian ini PLC akan digantikan dengan platform Arduino Uno, komputer digantikan dengan android serta software HMI digantikan dengan aplikasi virtuino sehingga diharapkan dapat membuat sistem telekontrol dan telemetri yang lebih ekonomis dari sistem sebelumnya. Selain itu sifat arduino yang open source sehingga dapat dipergunakan oleh setiap orang dan dapat dimodifikasi secara bebas dari segi software maupun hardware sehingga dapat menciptakan peluang untuk pengembangan lebih lanjut.
  4. Dalam penelitian Moch. Adib Musyafa, Susijanto Tri Rasmana, Pauladie Susanto (2015)[27] dengan judul Rancang Bangun Sistem Prabayar Pada PDAM Berbasis Arduino Uno R3. Penelitian ini menerapkan sistem prabayar di PDAM. Dengan pemakaian sistem prabayar, PDAM dan pelanggan sama-sama diuntungkan. Untuk PDAM adalah efisiensi petugas karena tidak perlu pencatatan langsung ke pelanggan dan juga tidak akan terjadi kesalahan pencatatan. Sedangkan untuk pelanggan akan lebih mudah untuk memantau pengeluaran pada penggunaan air PDAM.
  5. Dalam penelitian Fatmah Rizkidiniah, Muh. Yamin, Nur Fajriah Muchlis (2016)[28] dengan judul Perancangan dan Implementasi Prototype Sistem GPS (Global Positioning System) Dan SMS Gateway Pada Pencarian Kendaraan Bermotor Berbasis Arduino Uno. Penelitian ini bertujuan untuk melacak posisi kendaraan sehingga pemilik dapat mengetahui lokasi kendaraan tersebut serta memberhentikan mesin kendaraan menggunakan relay dalam bentuk simulasi. Penulis memanfaatkan teknologi GPS (Global Positioning System), Arduino, dan Smartphone Android. GPS berfungsi untuk memberikan posisi dimana kendaraan berada. Arduino berfungsi sebagai alat pengendali dari alat ini dimana jenis Arduino yang digunakan adalah Arduino Uno yang berfungsi mengontrol dan menyimpan segala perintah yang akan dijalankan oleh GPS Shield dan GSM Shield.
  6. Dalam penelitian Bambang Tri Wahjo Utomo, Dharmawan Setya Saputra (2016)[29] dengan judul Simulasi Sistem Pendeteksi Polusi Ruangan Menggunakan Sensor Asap Dengan Pemberitahuan Melalui SMS (Short Message Service) Dan Alarm Berbasis Arduino. Penelitian ini merancang dan membuat suatu perangkat berbasis Arduino yang berfungsi untuk mengetahui kadar asap di sekitar secara jarak jauh. Untuk dapat menghindari adanya hal-hal yang tidak diinginkan dan mendeteksi adanya sumber api maka diperlukan sensor api. Sensor Asap MQ2 merupakan Semiconductor yang difungsikan untuk mengamati tingkat kontaminasi udara yang disebabkan oleh asap rokok. Gas H2S yang disebabkan dari asap hasil pembakaran material rumah tangga dan perkantoran. Pada sensor MQ2 Sensor MQ2 mempunyai tingkat sensitivitas yang tinggi terhadap perubahan gas.
  7. Dalam penelitian Dias Prihatmoko (2018)[30] dengan judul Perancangan Dan Implementasi Pengontrol Suhu Ruangan Berbasis Mikrokontroler Arduino Uno. Penelitian ini bertujuan untuk membuat prototype berupa sistem pengontrol suhu ruangan berbasis mikrokontroler arduino uno. Sistem akan membaca suhu ruangan, apabila suhu yang dibaca sudah melebihi batas atas suhu yang direkomendasikan maka pendingin ruangan akan menyala. Alasan digunakan mikrokontroler arduino karena arduino mempunyai beberapa kelebihan diantaranya adalah low power dan banyak tersedia di pasaran jadi mudah untuk mencari alat dan bahannya.
  8. Dalam penelitian Leonard Tambunan, Diki Dwi Putra (2019)[31] dengan judul Sistem Kontrol Kendaraan Berbasis IoT. Penelitian ini menggunakan teknologi GSM (Global System for Mobile Communications), yang dapat digunakan untuk mendapatkan data GPS yang berada pada kendaraan, dapat mempergunakan GSM sebagai pengirim data. Pemilik kendaraan dapat mengirimkan pesan berupa SMS (Short Message Service) ke alat dan selanjutnya modul GSM pada alat tersebut akan mengirimkan pesan balasan berupa koordinat lintang dan bujur dari lokasi kendaraannya. Untuk mendapatkan gambaran peta lokasi kendaraan, pemilik kendaraan dapat menggunakan aplikasi peta dunia pada smartphone. Salah satunya adalah aplikasi Google Earth / Google Maps. Pemilik kendaraan juga dapat mengontrol kendaraan dengan mematikan kendaraan dari jarak jauh melalui SMS (Short Message Service). Hal ini berguna agar kendaraan yang dicuri tidak dibawa terlalu jauh dari posisi kendaraan semula. Dengan ini maka penulis membuat “Sistem Kontrol Kendaraan Berbasis IOT”.
  9. Dalam Penelitian Adhi Cahyono (2019)[32] dengan judul Rancang Bangun Sistem Kontrol Penyiram Tanaman Berdasarkan Sensor Soil Moisture Dengan Menggunakan Arduino. Pada penelitian ini dibuat sistem kontrol yang diharapkan dapat meningkatkan kegiatan pertanian, dengan sistem penyiraman tanaman secara otomatis akan semakin diminati. Karena alat ini dibuat mampu menyiram tanaman secara otomatis berdasarkan nilai kelembaban tanah yang terdeteksi oleh sensor kelembaban tanah. Dengan sistem kontrol menggunakan Arduino sebagai mikrokontroler dan juga instruktur pompa air.
  10. Dalam Penelitian Ahmad Roihan, Angga Permana, dan Desy Mila (2016)[33] dengan judul “MONITORING KEBOCORAN GAS MENGGUNAKAN MIKROKONTROLER ARDUINO UNO DAN ESP8266 BERBASIS INTERNET OF THINGS”. Pada penelitian ini modul ESP8266 diprogram sebagai alat monitoring menggunakan sensor MQ-2, sehingga data sensor tersebut dapat dikirimkan melalui ESP8266 yang disebut dengan IOT (Internet Of Things). Dengan IOT, data tersebut bisa dikirim kemana dan kapan saja secara real-time.

Berdasarkan beberapa sumber literature diatas, diketahui telah banyak penelitian yang membahas tentang control dan monitoring jarak jauh. Maka dari itu, penulis mengambil acuan tersebut untuk menambahkan fitur Notifikasi jarak jauh melalui SMS Gateway pada Sistem Kontrol Air Conditioner.


BAB III

PEMBAHASAN

Sejarah Perusahaan

PT. Mandiri Cipta Tekindo merupakan perusahaan yang bergerak di bidang mesin pendingin dalam hal pengadaan dan jasa. Dibentuk sejak 12 Juli tahun 2019, PT. Mandiri Cipta Tekindo termasuk perusahaan baru namun sudah berpengalaman di bidang tersebut. Dengan memberikan pelayanan yang baik serta penawaran harga yang bersaing, PT. Mandiri Cipta Tekindo di umurnya yang baru mendekati 1 tahun ini sudah mampu mendapatkan proyek hingga ke pelosok negeri.

Sejarah Perusahaan

Berikut adalah struktur organisasi perusahaan pada PT. Mandiri Cipta Tekindo.

Gambar 3.1 Struktur Perusahaan.


Tujuan Perancangan

Berikut ini merupakan list tujuan perancangan yang penulis buat menurut kebutuhan perusahaan yaitu :


1. Kompatibel

Sistem usulan yang akan dibuat harus bisa menggantikan sistem sebelumnya dan berjalan sebagaimana mestinya tanpa harus merubah wiring panel pada air conditioner water cooled packaged, ini bertujuan untuk memudahkan teknisi untuk penggantian modul, karena jika tidak kompatibel dan plug & play, maka teknisi harus mengatur ulang semua perkabelan dan akan memakan waktu yang cukup lama serta biaya yang lumayan besar.


2. Reliabel

Tentu sistem usulan tersebut harus reliabel atau konsisten cara kerjanya meskipun banyak gangguan dari sistem AC secara keseluruhan. Seperti hentakan listrik HVAC (High Voltage Alternating Current) dan getaran mesin tersebut sangat riskan untuk semua komponen elektronik, termasuk sistem usulan yang akan penulis buat.

3. Future Proof

Dapat dikembangankan lagi, merupakan fitur spesial yang dimiliki oleh ekosistem Arduino. Selain karena programnya yang Open Source, Modul serta Sensor yang dimilikinya juga sangat beragam. Hal ini tentu membuat sistem usulan yang penulis buat menggunakan Arduino tersebut dapat terus dikembangkan lebih jauh lagi.


Analisa Sistem Berjalan

Penulis melakukan analisa sistem yang berjalan di lokasi implementasi alat secara langsung. Dengan metode reverse engineering, Penulis membuat gambar wiring diagram dan flowchart program dari sistem yang berjalan.

Gambar 3.2 Panel Mesin AC.

Wiring Diagram

Berikut adalah sketsa wiring diagram yang penulis buat dari proses Reverse Engineering pada panel mesin air conditioner water cooled packaged.

Gambar 3.3 Wiring Sistem Berjalan.


Flowchart Sistem Berjalan

Berikut adalah flowchart yang penulis buat dari proses Reverse Engineering pada sistem control mesin air conditioner water cooled packaged.

Gambar 3.4 Flowchart Sistem Berjalan.


Cara Kerja Alat

Menurut wiring diagram flowchart yang penulis buat, cara kerja sistem yang berjalan adalah sebagi berikut :

  1. Sistem kontrol bekerja sebagai pengatur temperatur ruangan dengan cara membaca suhu udara yang berada di bagian saluran angin masuk pada indoor unit.
  2. Terdapat perangkat pengamanan berupa Flow Switch pada saluran air masuk yang berguna untuk memindahkan panas kondensor ke luar ruangan menuju outdoor unit serta High Pressure Switch dan Low Pressure Switch yang terintegrasi pada unit kompresor yang berfungsi sebagai pengaman sistem AC secara keseluruhan, yaitu dengan cara memutuskan arus listrik jika terjadi suatu kesalahan pada bagian tertentu.
  3. Teknisi dapat menyalakan atau mematikan sistem AC dari Master Control Switch ruang teknisi yang lokasinya cukup jauh dari unit menggunakan saklar yang memutus aliran listrik utama pada sistem.




BAB IV

RANCANGAN SISTEM YANG DIUSULKAN

Perbedaan Antara Sistem Berjalan dan Sistem Usulan

Berikut ini beberapa poin yang membedakan sistem yang sudah berjalan dengan sistem usulan yang sudah dikembangkan oleh penulis yaitu :

Tabel 4.1 Perbedaan Sistem Berjalan Dan Sistem Usulan.


Pembuatan Sistem Usulan

Setelah penulis mendapatkan data yang cukup dari observasi langsung ke mesin yang menggunakan sistem berjalan, penulis membuat wiring diagram dan flowchart baru yang sudah dimodifikasi. Kemudian penulis merakit alat dengan membuat source code program dan mengunggahnya ke modul arduino.

Wiring Diagram Usulan

Berikut adalah sketsa wiring diagram yang penulis buat untuk diimplementasikan pada mesin air conditioner water cooled packaged.

Gambar 4.1 Wiring Sistem Usulan.


Flowchart Sistem Berjalan

Berikut adalah flowchart yang penulis buat dari proses Reverse Engineering pada sistem control mesin air conditioner water cooled packaged.

Gambar 4.2 Flowchart Sistem Usulan.


Spesifikasi Hardware

Pada Spesifikasi perangkat keras (hardware) dibawah ini merupakan perangkat keras atau komponen yang digunakan untuk membuat sistem kontrol air conditioner water cooled packaged, setiap komponen memiliki fungsi dan kegunaannya masing-masing. Adapun perangkat keras (hardware) sebagai berikut:

  1. Arduino UNO
  2. LCD 20x4 Display
  3. Sensor Suhu DS18B20
  4. Kabel Rakit isi 4
  5. Kabel LAN
  6. Kabel Printer
  7. Adaptor 12V DC
  8. Kipas DC
  9. Saklar ON / OFF
  10. Tombol Push ON
  11. Resistor 5K7 ohm
  12. Resistor 330 ohm
  13. Relay 2 Channel
  14. Lampu LED
  15. Buzzer Pasif
  16. DC Step Down
  17. SIM800L V.2
  18. SIM CARD
  19. Terminal Block
  20. Casing Plastik
  21. Baut Spacer


Spesifikasi Software

Pada spesifikasi perangkat lunak (software) dibawah ini merupakan aplikasi yang digunakan dalam proses perancangan dan pembuatan source code yaitu sebagai berikut:

  1. Arduino IDE 1.8.10


Source Code Program

Source code yang penulis buat dan di upload ke modul Arduino Uno menggunakan software Arduino IDE. Berikut ini listing program keseluruhannya.

  1. include <OneWire.h>
  2. include <DallasTemperature.h>
  3. include <EEPROM.h>
  4. include <Wire.h>;
  5. include <LiquidCrystal_I2C.h>;
  6. include <avr/wdt.h>
  7. include <SoftwareSerial.h>
  1. define ONE_WIRE_BUS 10 //sensor suhu di pin 10

OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensorSuhu(&oneWire); LiquidCrystal_I2C lcd (0x3F, 20, 4); SoftwareSerial mySerial(4, 5); //(rx,tx)SIM800L Tx & Rx ke Arduino #4 & #5 char incomingByte; String inputString;

float suhuRuangan; float suhuPipa; float suhuAtas; float suhuBawah; float errorSensorBawah=-50.00; float suhuTarget=25.00; float suhuBeku=3.00;

float ambilSuhuA(){

 sensorSuhu.requestTemperatures();
 float suhu = sensorSuhu.getTempCByIndex(0);
 return suhu; }

float ambilSuhuB(){

 sensorSuhu.requestTemperatures();
 float suhu = sensorSuhu.getTempCByIndex(1);
 return suhu; }

int alamatSuhuTarget=5; //alamat eeprom suhu atas

int ledNotif=A0; //pin led notif di casing int tombolPOWER=A2; // pin A1 power(3 detik) / ok int tombolUP=A1; //pin A2 pilihan UP int tombolDOWN=A3; //pin A3 pilihan DOWN

int speak=11; //pin 11 buzzer int kunci=7; //pin 7 unlock server int flow=6; //pin 6 flow switch normal int compHigh=9; //pin 9 highpress kondisi normal int compLow=8; //pin 8 lowpress kondisi normal int relay1=2; //pin 2 relay fan indoor int relay2=3; //pin 3 relay kompressor

int lastSMSflow=0; // sms flow int lastSMSlow=0; // sms low press compressor int lastSMShigh=0; // sms high press compressor int lastSMSflowNormal=0; // sms flow normal jika error sudah diperbaiki int lastSMScompNormal=0; // sms comp normal jika error sudah diperbaiki int lastrelay1=0; //kondisi fan int lastrelay2=0; //kondisi kompressor int lastUP=0; //kondisi up int lastDOWN=0; //kondisi down int lastPOWER=0; //kondisipower int lastMENU=0; int lastflow=1; int lastflowNotif=1; int lastsuhuNotif=1; int lastcompNotif=1; int lastSuhu=1; int lastkunci=1; int lastcompHigh=1; int lastcompLow=1; int powerNotif=0; int switchNotif=0; int power=1; //kondisi power controler

int delayComp=5; // waktu delay compresor nyala int timeOut=300; // time out menu 1 menit untuk keluar tanpa save apapun

int lastStatus=0; int StatusComp=0;

int hidup=1; int mati=0; int idle=3;

void setup() {

 wdt_disable();
 lcd.begin();
 lcd.backlight();
 // SETUP PIN BUAT OUTPUT
 pinMode (relay1, OUTPUT);
 pinMode (relay2, OUTPUT);
 pinMode (speak, OUTPUT);
 pinMode(ledNotif, OUTPUT);
 // SETUP PIN BUAT INPUT
 pinMode (compLow, INPUT_PULLUP);
 pinMode (compHigh, INPUT_PULLUP);
 pinMode (flow, INPUT_PULLUP);
 pinMode (kunci, INPUT_PULLUP);
 pinMode (tombolPOWER, INPUT_PULLUP);
 pinMode (tombolUP, INPUT_PULLUP);
 pinMode (tombolDOWN, INPUT_PULLUP);
 //===
 digitalWrite(relay1, HIGH);
 digitalWrite(relay2, HIGH);
 digitalWrite(ledNotif, LOW);
 sensorSuhu.begin();    // MODUL SENSOR SUHU
 mySerial.begin(9600); // SERIAL DENGAN SIM800L (MODUL SMS)
 wdt_enable(WDTO_8S); // WATCHDOG 8 DETIK !!

}

void loop() {

 suhuRuangan=ambilSuhuA();
 suhuPipa=ambilSuhuB();
 suhuAtas=(EEPROM.read(alamatSuhuTarget)+1.00);
 suhuBawah=(EEPROM.read(alamatSuhuTarget)-1.00);

 if (power==mati){
   lastflowNotif=hidup;
   lastcompNotif=hidup;
   lastStatus=mati;
   lastrelay2=mati;
   StatusComp=mati;
   if (powerNotif==mati){
     lcd.clear();
     powerNotif=hidup;
     delay(100);
   }
   digitalWrite(relay1, HIGH);
   digitalWrite(relay2, HIGH);
   lcd.setCursor(0,0);
   lcd.print(F("Power OFF"));
   lcd.setCursor(0,1);
   digitalWrite(ledNotif, LOW);
   lcd.print(F("Suhu Ruangan:")); // F()menyimpan string di flash memory
   lcd.print(suhuRuangan);
   lcd.print(F(" C"));
   lcd.setCursor(0,2);
   lcd.print(F("Untuk Menghidupkan"));
   lcd.setCursor(0,3);
   lcd.print(F("Tekan OK 3 Detik"));
   delay(1000);
   wdt_reset();
   if (digitalRead(tombolPOWER)==LOW){
     lcd.clear();
     lcd.setCursor(0,0);
     lcd.print(F("Untuk Menghidupkan."));
     lcd.setCursor(0,1);
     lcd.print(F("Tahan Selama 3 Detik"));
     delay(1000);
     wdt_reset();
     powerNotif=mati;
     if (digitalRead(tombolPOWER)==LOW){
       delay(1000);
       wdt_reset();
       if (digitalRead(tombolPOWER)==LOW){
         power=hidup;
         lastPOWER=mati;
         lcd.clear();
         lcd.setCursor(0,0);
         lcd.print(F("Mohon Menunggu.."));
         lcd.setCursor(0,3);
         lcd.print(F("Menyalakan Sistem."));
         delay(2000);
         wdt_reset();
       }
     }
   }
 }
 else if (power==hidup){
   if (lastPOWER==mati){
     lcd.clear();
     lcd.setCursor(0,0);
     lcd.print(F("WELCOME TO"));
     lcd.setCursor(2,1);
     lcd.print(F("FARROS CONTROLLER"));
     lcd.setCursor(0,3);
     lcd.print(F("Versi 3.0"));
     tone(speak, 2793);
     delay(210);
     tone(speak, 3136);
     delay(200);
     tone(speak, 3520);
     delay(190);
     tone(speak, 3951);
     delay(180);
     noTone(speak);
     wdt_reset();
     delay(1000);
     lastPOWER=hidup;
     wdt_reset();
   }
   else if (digitalRead(flow)==LOW&&lastflow==hidup){
     if (lastflowNotif==hidup){
       lcd.clear();
       lcd.setCursor(0,0);
       lcd.print(F("Flow Switch Normal!"));
       lastflowNotif=mati;
       lastsuhuNotif=hidup;
       lastcompNotif=hidup;
       lastStatus=mati;
       lastrelay2=mati;
       StatusComp=mati;
       delay(2000);
       wdt_reset();
       if (lastSMSflowNormal==1){
         MengirimNormalFLOW();
         lastSMSflowNormal=0;
         SuaraMengirimSMS();
        }
     }
     else if (lastflowNotif==mati){
       if (suhuRuangan>errorSensorBawah&&lastSuhu==hidup){
         if (lastsuhuNotif==hidup){
           lcd.clear();
           lcd.setCursor(0,0);
           lcd.print(F("Status Sensor Suhu"));
           lcd.setCursor(0,1);
           lcd.print(F("Suhu Saat ini"));
           lcd.setCursor(0,2);
           lcd.print(F("Ruangan  :"));
           lcd.print(suhuRuangan);
           lcd.print(F(".C"));
           lcd.setCursor(0,3);
           lcd.print(F("Pipa Evap:"));
           lcd.print(suhuPipa);
           lcd.print(F(".C"));
           lastsuhuNotif=mati;
           lastcompNotif==hidup;
           lastStatus=mati;
           lastrelay2=mati;
           StatusComp=mati;
           delay(2000);
           wdt_reset();
         }
         else if (lastsuhuNotif==mati){//=================SKIP ke comp
           if (digitalRead(compHigh)==digitalRead(compLow)&&digitalRead(compLow)==HIGH){ //low n high error
             digitalWrite(relay1, HIGH);
             digitalWrite(relay2, HIGH);
             lcd.clear();
             lcd.setCursor(0,0);
             lcd.print(F("Kondisi Compressor"));
             lcd.setCursor(0,1);
             lcd.print(F("Saat ini"));
             lcd.setCursor(0,3);
             lcd.print(F("ERROR"));
             lastcompHigh=hidup;
             lastcompLow=hidup;
             lastStatus=mati;
             lastrelay2=mati;
             StatusComp=mati;
             delay(2000);
             wdt_reset();
           }
           else if (digitalRead(compHigh)==digitalRead(compLow)&&lastcompHigh==lastcompLow){//lowHighNormal
             if (lastcompNotif==hidup){
               lcd.clear();
               lcd.setCursor(0,0);
               lcd.print(F("Kondisi Compressor"));
               lcd.setCursor(0,1);
               lcd.print(F("Saat ini"));
               lcd.setCursor(0,3);
               lcd.print(F("Ready"));
               lastcompNotif=mati;
               lastStatus=mati;
               StatusComp=mati;
               lastcompHigh=hidup;
               lastcompLow=hidup;
               delay(2000);
               wdt_reset();
               delay(1000);
               wdt_reset();
               if (lastSMScompNormal==1){
                 MengirimNormalCOMP();
                 lastSMScompNormal=0;
                 SuaraMengirimSMS();
               }
               }
             else if (lastcompNotif==mati){ //=======BERIKUTNYA KE SISTEM>>> --------------------------
               if (digitalRead(kunci)==HIGH){  //==MODE LOCK ( SISTEM DIMATIKAN DARI SERVER KARENA POSISI SWITCH TERBUKA / TIDAK TERHUBUNG )
                 lastStatus=mati;
                 lastrelay2=mati;
                 StatusComp=mati;
                 if (switchNotif==mati){
                   lcd.clear();
                   switchNotif=hidup;
                   delay(100);
                   }
                 digitalWrite(relay1, HIGH);
                 digitalWrite(relay2, HIGH);
                 lcd.setCursor(0,0);
                 lcd.print(F("Sistem OFF | Master"));
                 lcd.setCursor(0,1);
                 digitalWrite(ledNotif, LOW);
                 lcd.print(F("Suhu Saat ini"));
                 lcd.setCursor(0,2);
                 lcd.print(F("Ruangan  :"));
                 lcd.print(suhuRuangan);
                 lcd.print(F(".C"));
                 lcd.setCursor(0,3);
                 lcd.print(F("Pipa Evap:"));
                 lcd.print(suhuPipa);
                 lcd.print(F(".C"));
                 delay(1000);
                 wdt_reset();
               }
               // Diganti jadi switch untuk power . bukan kunci ///
               else {   // ======================================= MODE UNLOCK
                 switchNotif=mati;
                 if (suhuPipa<suhuBeku){
                   digitalWrite(relay1, LOW);
                   digitalWrite(relay2, HIGH);
                   lastStatus=mati;
                   lastrelay2=mati;
                   StatusComp=mati;
                   lcd.clear();
                   lcd.setCursor(0,0);
                   lcd.print(F("Sistem Idle !"));
                   lcd.setCursor(0,1);
                   lcd.print(F("EVAPORATOR MEMBEKU!"));
                   lcd.setCursor(0,2);
                   lcd.print(F("Menunggu Sistem"));
                   lcd.setCursor(3,3);
                   lcd.print(F("Kembali Normal."));
                   tone(speak, 1046);
                   delay(1000);
                   wdt_reset();
                   noTone(speak);
                   delay(1000);
                   wdt_reset();
                 }
                 else if (suhuPipa>suhuBeku) {   /////////// SISTEM MULAI BEKERJA <<<<<<<<<<<<<
                   digitalWrite(relay1, LOW);
                   suhuAtas=(EEPROM.read(alamatSuhuTarget)+1.00);
                   suhuBawah=(EEPROM.read(alamatSuhuTarget)-1.00);
                   if (lastStatus==mati){
                     lcd.clear();
                     lastStatus=hidup;
                     delay(100);
                   }
                   lcd.setCursor(0,0);
                   lcd.print(F("Sistem ON !"));
                   lcd.setCursor(0,1);
                   digitalWrite(ledNotif, HIGH);
                   lcd.print(F("Suhu Ruangan "));
                   lcd.print(suhuRuangan);
                   lcd.print(".C");
                   lcd.setCursor(0,2);
                   lcd.print(F("Suhu Target "));
                   lcd.print(EEPROM.read(alamatSuhuTarget));
                   lcd.print(".C");
                   if (StatusComp==mati){
                     lcd.setCursor(0,3);
                     lcd.print("Compressor OFF");
                   }
                   else if (StatusComp==hidup){
                     lcd.setCursor(0,3);
                     lcd.print(F("Compressor ON"));
                   }
                   else if (StatusComp==idle){
                     lcd.setCursor(0,3);
                     lcd.print(F("Delay ON "));
                     lcd.print(delayComp);
                     if (suhuRuangan<suhuBawah&&StatusComp==idle){
                       StatusComp=mati;
                       delayComp=5;
                       lastrelay2=mati;
                       lastStatus=mati;
                     }
                     else if (digitalRead(tombolPOWER)==LOW){
                     lastStatus=mati;
                     lcd.clear();
                     lcd.setCursor(0,0);
                     lcd.print(F("Untuk Mematikan."));
                     lcd.setCursor(0,2);
                     lcd.print(F("Tahan Selama 3 Detik"));
                     delay(1000);
                     wdt_reset();
                     if (digitalRead(tombolPOWER)==LOW){
                       delay(2000);
                       wdt_reset();
                       if (digitalRead(tombolPOWER)==LOW){
                         powerNotif=mati;
                         power=mati;
                         lcd.clear();
                         lcd.setCursor(0,0);
                         lcd.print(F("Mohon Menunggu.."));
                         lcd.setCursor(0,3);
                         lcd.print(F("MEMATIKAN SISTEM !"));
                         tone(speak, 588);
                         delay(500);
                         tone(speak, 524);
                         delay(280);
                         tone(speak, 494);
                         delay(230);
                         tone(speak, 440);
                         delay(190);
                         noTone(speak);
                         delay(2000);
                         wdt_reset();
                       }
                     }
                   }
                   }
                   wdt_reset();
                                                           ///// CLEAR LCD JIKA DELAY dari 100 ke 99
                   if (delayComp==100||delayComp==10){   
                     lastStatus=mati;
                     delayComp--;
                     delay(100);
                   }
                   else if  (suhuRuangan>suhuAtas&&lastrelay2==mati){ //=== BAGIAN COMPRESOR HIDUP ( DELAY )
                     lcd.clear();
                     lcd.setCursor(0,0);
                     lcd.print(F("Siap MENGAKTIFKAN"));
                     lcd.setCursor(0,1);
                     lcd.print(F("Compressor."));
                     lcd.setCursor(0,3);
                     lcd.print(F("Mohon Tunggu..."));
                     delay(2000);
                     wdt_reset();
                     StatusComp=idle;
                     lastStatus=mati;
                     lastrelay2=hidup;
                   }
                   else if (StatusComp==idle&&delayComp>0){   ///////// BAGIAN TIMER ON COUNT DOWN
                     delayComp--;
                   }
                   else if (StatusComp==idle&&delayComp==0){     ///// BAGIAN COMPRESOR NYALA
                     digitalWrite(relay2, LOW);
                     StatusComp=hidup;
                     lastStatus=mati;
                     delayComp=5;                                 //// BALIKIN DELAY KE NILAI ASAL
                     lcd.clear();
                     lcd.setCursor(0,0);
                     lcd.print(F("Compressor Sudah"));
                     lcd.setCursor(0,2);
                     lcd.print(F("DIAKTIFKAN !"));
                     tone(speak, 1046);
                     delay(1000);
                     noTone(speak);
                     wdt_reset();
                   }
                   else if (suhuRuangan<suhuBawah&&lastrelay2==hidup) { // BAGIAN COMPRESOR MATI ( TANPA DELAY )
                     lcd.clear();
                     lcd.setCursor(0,0);
                     lcd.print(F("Siap MEMATIKAN"));
                     lcd.setCursor(0,1);
                     lcd.print(F("Compressor."));
                     lcd.setCursor(0,3);
                     lcd.print(F("Mohon Tunggu..."));
                     delay(2000);
                     wdt_reset();
                     digitalWrite(relay2, HIGH);
                     lastrelay2=mati;
                     delay(1000);
                     wdt_reset();
                     lcd.clear();
                     lcd.setCursor(0,0);
                     lcd.print(F("Compressor Sudah"));
                     lcd.setCursor(0,2);
                     lcd.print(F("DIMATIKAN !"));
                     tone(speak, 1046);
                     delay(1000);
                     wdt_reset();
                     noTone(speak);
                     wdt_reset();
                     lastStatus=mati;
                     StatusComp=mati;
                   }
                   //////////////////////////////////////////////////////////Perintah MENU
                   else if (digitalRead(tombolPOWER)==LOW){
                     lastStatus=mati;
                     lcd.clear();
                     lcd.setCursor(0,0);
                     lcd.print(F("Untuk Mematikan."));
                     lcd.setCursor(0,2);
                     lcd.print(F("Tahan Selama 3 Detik"));
                     delay(1000);
                     wdt_reset();
                     if (digitalRead(tombolPOWER)==LOW){
                       delay(2000);
                       wdt_reset();
                       if (digitalRead(tombolPOWER)==LOW){
                         powerNotif=mati;
                         power=mati;
                         lcd.clear();
                         lcd.setCursor(0,0);
                         lcd.print(F("Mohon Menunggu.."));
                         lcd.setCursor(0,3);
                         lcd.print(F("MEMATIKAN SISTEM !"));
                         tone(speak, 588);
                         delay(500);
                         tone(speak, 524);
                         delay(280);
                         tone(speak, 494);
                         delay(230);
                         tone(speak, 440);
                         delay(190);
                         noTone(speak);
                         delay(2000);
                         wdt_reset();
                       }
                     }
                   }
                   while (digitalRead(tombolUP)!=digitalRead(tombolDOWN)||lastMENU==hidup){ //====== UNLOCK MENU POWER  =============
                     if (lastMENU==mati){
                       lastMENU=hidup;
                       lcd.clear();
                     }
                     lcd.setCursor(2,0);
                     lcd.print(F("PENGATURAN SUHU"));
                     lcd.setCursor(0,1);
                     lcd.print(F("Masukan Suhu Target"));
                     lcd.setCursor(6,2);
                     lcd.print(suhuTarget);
                     lcd.setCursor(0,3);
                     lcd.print(F("UP/DOWN | OK Close"));
                     delay(100);
                     timeOut--;
                     wdt_reset();
                     if (digitalRead(tombolUP)==LOW&&lastUP==mati){
                       lastUP=hidup;
                       if(suhuTarget<30.00){
                         suhuTarget=suhuTarget+1.00;
                         tone(speak, 1046);
                         delay(150);
                         noTone(speak);
                         wdt_reset();
                         timeOut=300;
                       }
                     }
                     else if (digitalRead(tombolUP)==HIGH&&lastUP==hidup){
                       lastUP=mati;
                     }
                     else if (digitalRead(tombolDOWN)==LOW&&lastDOWN==mati){
                       lastDOWN=hidup;
                       if(suhuTarget>16.00){
                         suhuTarget=suhuTarget-1.00;
                         tone(speak, 1046);
                         delay(150);
                         noTone(speak);
                         wdt_reset();
                         timeOut=300;
                       }
                     }
                     else if (digitalRead(tombolDOWN)==HIGH&&lastDOWN==hidup){
                       lastDOWN=mati;
                     }
                     else if (digitalRead(tombolPOWER)==LOW){
                       lastStatus=mati;
                       EEPROM.write(alamatSuhuTarget, suhuTarget);
                       lastMENU=mati;
                       lcd.clear();
                       lcd.setCursor(0,0);
                       lcd.print(F("Menyimpan Setting."));
                       lcd.setCursor(0,2);
                       lcd.print(F("Mohon Tunggu..."));
                       delay(2000);
                       wdt_reset();
                       timeOut=300;
                     }
                     else if (timeOut==0){
                       lastMENU=mati;
                       lastStatus=mati;
                       timeOut=300;
                     }
                   }
                 }
               }
             }
           }     //============================================================END SISTEM>>----------------------
           else if (digitalRead(compHigh)==HIGH&&lastcompHigh==hidup){
             digitalWrite(relay1, HIGH);
             digitalWrite(relay2, HIGH);
             lcd.clear();
             lcd.setCursor(0,0);
             lcd.print(F("Compressor HIGH Press!"));
             lcd.setCursor(0,1);
             lcd.print(F("Cek Compressor!"));
             lcd.setCursor(0,2);
             lcd.print(F("Jika Sudah Diperiksa"));
             lcd.setCursor(0,3);
             lcd.print(F("Tekan OK"));
             lastcompHigh=mati;
             lastcompNotif=hidup;
             lastStatus=mati;
             lastrelay2=mati;
             switchNotif=mati;
             SuaraError();
             wdt_reset();
             if (lastSMShigh==0&&StatusComp==hidup){
                MengirimStatusHIGH(); // MENGIRIM SMS HIGH PRESS COMPRESSOR
                lastSMShigh=1;
                StatusComp=mati;
                if (lastSMScompNormal==0){
                 lastSMScompNormal=1;
                 SuaraMengirimSMS();
               }
             }
           }
           else if (digitalRead(tombolPOWER)==LOW&&lastcompHigh==mati){
             lcd.clear();
             lcd.setCursor(0,0);
             lcd.print(F("Mengecek Kembali."));
             lcd.setCursor(0,2);
             lcd.print(F("Mohon Tunggu..."));
             lastcompHigh=hidup;
             lastcompLow=hidup;
             delay(1000);
             wdt_reset();
             if (lastSMShigh==1){
             lastSMShigh=0;
             }
             }
           else if (digitalRead(compLow)==HIGH&&lastcompLow==hidup){
             digitalWrite(relay1, HIGH);
             digitalWrite(relay2, HIGH);
             lcd.clear();
             lcd.setCursor(0,0);
             lcd.print(F("Compressor LOW Press!"));
             lcd.setCursor(0,1);
             lcd.print(F("Cek Compressor!"));
             lcd.setCursor(0,2);
             lcd.print(F("Jika Sudah Diperiksa"));
             lcd.setCursor(0,3);
             lcd.print(F("Tekan OK"));
             lastcompLow=mati;
             lastcompNotif=hidup;
             lastStatus=mati;
             lastrelay2=mati;
             switchNotif=mati;
             SuaraError();
             wdt_reset();
             if (lastSMSlow==0&&StatusComp==hidup){
                MengirimStatusLOW(); // MENGIRIM SMS HIGH PRESS COMPRESSOR
                lastSMSlow=1;
                StatusComp=mati;
                if (lastSMScompNormal==0){
                 lastSMScompNormal=1;
                 SuaraMengirimSMS();
               }
             }
           }
           else if (digitalRead(tombolPOWER)==LOW&&lastcompLow==mati){
             lcd.clear();
             lcd.setCursor(0,0);
             lcd.print(F("Mengecek Kembali."));
             lcd.setCursor(0,2);
             lcd.print(F("Mohon Tunggu..."));
             lastcompLow=hidup;
             lastcompHigh=hidup;
             delay(1000);
             wdt_reset();
             if (lastSMSlow==1){
              lastSMSlow=0;
             }
             }
           else if (lastcompHigh==mati){
             LedErrorKedip();
           }
           else if (lastcompLow==mati){
             LedErrorKedip();
           }
           wdt_reset();
         }
         wdt_reset();
       }
       else if (suhuPipa<errorSensorBawah&&lastSuhu==hidup){ //============end comp
         digitalWrite(relay1, HIGH);
         digitalWrite(relay2, HIGH);
         lcd.clear();
         lcd.setCursor(0,0);
         lcd.print(F("Sensor Suhu Error!"));
         lcd.setCursor(0,1);
         lcd.print(F("Cek Kabel Sensor!"));
         lcd.setCursor(0,2);
         lcd.print(F("Jika Sudah Diperiksa"));
         lcd.setCursor(0,3);
         lcd.print(F("Tekan OK"));
         lastSuhu=mati;
         lastsuhuNotif=hidup;
         lastcompNotif=hidup;
         lastStatus=mati;
         lastrelay2=mati;
         switchNotif=mati;
         StatusComp=mati;
         SuaraError();
         wdt_reset();
         }
       else if (digitalRead(tombolPOWER)==LOW&&lastSuhu==mati){
         lcd.clear();
         lcd.setCursor(0,0);
         lcd.print(F("Mengecek Kembali."));
         lcd.setCursor(0,2);
         lcd.print(F("Mohon Tunggu..."));
         lastSuhu=hidup;
         delay(1000);
         wdt_reset();
       }
       else if (lastSuhu==mati){
        LedErrorKedip();
       }
       wdt_reset();
     }
     wdt_reset();
   }
   else if (digitalRead(flow)==HIGH&&lastflow==hidup){
       digitalWrite(relay1, HIGH);
       digitalWrite(relay2, HIGH);
       lcd.clear();
       lcd.setCursor(0,0);
       lcd.print(F("Flow Switch Error!"));
       lcd.setCursor(0,1);
       lcd.print(F("Cek Air!"));
       lcd.setCursor(0,2);
       lcd.print(F("Jika Sudah Diperiksa"));
       lcd.setCursor(0,3);
       lcd.print(F("Tekan OK"));
       lastflow=mati;
       lastflowNotif=hidup;
       lastSuhu=hidup;
       lastcompNotif=hidup;
       lastStatus=mati;
       lastrelay2=mati;
       switchNotif=mati;
       SuaraError();
       wdt_reset();
       if (lastSMSflow==0&&StatusComp==hidup){
         MengirimStatusFLOW(); // MENGIRIM SMS FLOW SWITCH ERROR
         lastSMSflow=1;
         StatusComp=mati;
         if (lastSMSflowNormal==0){
         lastSMSflowNormal=1;
         SuaraMengirimSMS();
       }
       }
   }
   else if (digitalRead(tombolPOWER)==LOW&&lastflow==mati){
       lcd.clear();
       lcd.setCursor(0,0);
       lcd.print(F("Mengecek Kembali."));
       lcd.setCursor(0,2);
       lcd.print(F("Mohon Tunggu..."));
       lastflow=hidup;
       delay(1000);
       wdt_reset();
       if (lastSMSflow==1){
         lastSMSflow=0;
       }
   }
   else if (lastflow==mati){
     LedErrorKedip();
   }
   wdt_reset();
 }

} void LedErrorKedip(){

 digitalWrite(ledNotif, HIGH);
 delay(300);
 digitalWrite(ledNotif, LOW);
 delay(100);

} void SuaraError(){

 tone(speak, 2349);
 delay(600);
 noTone(speak);
 delay(10);
 tone(speak, 2349);
 delay(200);
 noTone(speak);
 delay(10);
 tone(speak, 2349);
 delay(200);
 noTone(speak);

} void SuaraMengirimSMS(){

 tone(speak, 2093);
 delay(200);
 noTone(speak);
 delay(50);
 tone(speak, 2093);
 delay(800);
 noTone(speak);

} void MengirimStatusFLOW() {

 mySerial.println("AT");
 updateSerial();
 mySerial.println("AT+CMGF=1");
 updateSerial();
 mySerial.println("AT+CMGS=\"+6281287757057\"");   // === GANTI NOMOR INI DENGAN NOMOR HP TUJUAN
 updateSerial();
 mySerial.print("Flow Switch Error! [FARROS 3.0]"); // === ISI SMS YANG DIKIRM
 updateSerial();
 mySerial.write(26);
 delay(1000);

} void MengirimStatusLOW() {

 mySerial.println("AT");
 updateSerial();
 mySerial.println("AT+CMGF=1");
 updateSerial();
 mySerial.println("AT+CMGS=\"+6281287757057\"");   // === GANTI NOMOR INI DENGAN NOMOR HP TUJUAN
 updateSerial();
 mySerial.print("Compressor LOW PRESSURE! [FARROS 3.0]"); // === ISI SMS YANG DIKIRM
 updateSerial();
 mySerial.write(26);
 delay(1000);

} void MengirimStatusHIGH() {

 mySerial.println("AT");
 updateSerial();
 mySerial.println("AT+CMGF=1");
 updateSerial();
 mySerial.println("AT+CMGS=\"+6281287757057\"");   // === GANTI NOMOR INI DENGAN NOMOR HP TUJUAN
 updateSerial();
 mySerial.print("Compressor HIGH PRESSURE [FARROS 3.0]"); // === ISI SMS YANG DIKIRM
 updateSerial();
 mySerial.write(26);
 delay(1000);

} void MengirimNormalFLOW() {

 mySerial.println("AT");
 updateSerial();
 mySerial.println("AT+CMGF=1");
 updateSerial();
 mySerial.println("AT+CMGS=\"+6281287757057\"");   // === GANTI NOMOR INI DENGAN NOMOR HP TUJUAN
 updateSerial();
 mySerial.print("Flow Sudah NORMAL! [FARROS 3.0]"); // === ISI SMS YANG DIKIRM
 updateSerial();
 mySerial.write(26);
 delay(1000);

} void MengirimNormalCOMP() {

 mySerial.println("AT");
 updateSerial();
 mySerial.println("AT+CMGF=1");
 updateSerial();
 mySerial.println("AT+CMGS=\"+6281287757057\"");   // === GANTI NOMOR INI DENGAN NOMOR HP TUJUAN
 updateSerial();
 mySerial.print("Compressor Sudah NORMAL! [FARROS 3.0]"); // === ISI SMS YANG DIKIRM
 updateSerial();
 mySerial.write(26);
 delay(1000);

}

void updateSerial()

{

 delay(200);
 while (Serial.available())
 {
   mySerial.write(Serial.read());
 }
 while(mySerial.available())
 {
   Serial.write(mySerial.read());
 }

}


Testing

Pada tahap ini akan dilakukan uji coba untuk memastikan fungsi dari alat yang dibuat apakah sesuai dengan apa yang diinginkan serta pengujian dilakukan untuk menemukan error atau kesalahan pada sisi program maupun perangkat keras.

Penulis menggunakan metode Black Box testing dengan hasil sebagai berikut.

1. Pengujian Master Control Switch

Pengujian ini untuk memastikan switch pada master control room bisa beroperasi untuk menonaktifkan sistem keseluruhan.

Tabel 4.2 Black Box Testing Fungsi Master Control Switch.

2. Pengujian Temperature Control

Pengujian ini untuk memastikan sistem kontrol pendingin bekerja sebagaimana mestinya.

Tabel 4.3 Black Box Testing Fungsi Temperature Control.

3. Pengujian Safety Flow Switch

Pengujian ini untuk memastikan safety flow switch bekerja untuk mematikan sistem dan mengirim notifikasi SMS.

Tabel 4.4 Black Box Testing Fungsi Safety Flow Switch.

4. Pengujian Safety High Pressure Switch

Pengujian ini untuk memastikan safety high pressure switch bekerja untuk mematikan sistem dan mengirim notifikasi SMS.

Tabel 4.5 Black Box Testing Fungsi High Pressure Switch.

5. Pengujian Safety Low Pressure Switch

Pengujian ini untuk memastikan safety low pressure switch bekerja untuk mematikan sistem dan mengirim notifikasi SMS.

Tabel 4.6 Black Box Testing Fungsi Low Pressure Switch.


Elisitasi

Elisitasi Tahap I

Elisitasi tahap I disusun berdasarkan analisis sistem yang sudah berjalan pada sistem kontrol air conditioner water cooled packaged, berikut penulis lampirkan gambar elisitasi tahap I.

Tabel 4.7 Elisitasi Tahap I.

Elisitasi Tahap II

Elisitasi tahap II dibentuk berdasarkan elisitasi tahap I dan kemudian diklasifikasikan kembali untuk diproses yang sesuai dengan metode MDI. Berikut penjelasan requirement yang diberi opsi (I) dan wajib dieliminasi.

Tabel 4.8 Elisitasi Tahap II.

M = Mandatory (yang diinginkan)

D = Desirable (diperlukan)

I = Inessential (yang tidak mutlak diinginkan)


Elisitasi Tahap III

Berdasarkan Elisitasi Tahap II di atas, dibentuklah elisitasi tahap III yang diklasifikasikan kembali menggunakan metode TOE dari opsi HML.

Tabel 4.9 Elisitasi Tahap III.

T = Technical

O = Operational

E = Economic

H = High

M = Middle

L = Low


Final Elisitasi

Tabel 4.10 Final Elisitasi.

Implementasi

Setelah Sistem kontrol air conditioner water cooled packaged selesai dirakit dengan mengikuti alur dari proses Reverse Engineering, maka hasil dari penelitian kali ini akan digunakan untuk menggantikan modul kontrol AC yang lama pada Proyek Giant Alam Sutera.

Schedule

Adapun jadwal yang dilakukan dalam proses mulai hingga selesai disajikan dalam tabel berikut :

Tabel 4.11 Jadwal Perakitan Dan Penerapan Sistem

Penerapan

Bagian ini merupakan bukti penerapan hasil penelitian yang telah dilakukan, adapun penerapannya sebagai berikut.

Gambar 4.3 Penerapan Modul Sistem Control 1.

Gambar 4.4 Penerapan Modul Sistem Control 2.

Estimasi Biaya

Berikut adalah rincian dalam pembuatan alat :

Tabel 4.12 Estimasi biaya yang dikeluarkan




BAB V

PENUTUP

Kesimpulan

  1. Metode Reverse Engineering bisa digunakan untuk mendesain ulang sebuah alat atau sistem.
  2. Merancang sebuah alat yang dapat mengontrol mesin pendingin menggunakan Arduino Uno dan sensor suhu DS18b20 untuk digunakan pada Air Conditioner Water Cooled Packaged.
  3. Merancang sebuah alat yang dapat beroperasi normal menggantikan alat sebelumnya dengan tambahan fitur Notifikasi SMS sebagai pencegahan kerusakan dini.

Saran

  1. Dapat ditambahkan fitur menerima SMS atau memasukan kustom nomor handphone penerima melalui menu.
  2. Dapat ditambahkan modul RTC (Real Time Clock) yang bisa digunakan untuk penjadwalan otomatisasi alat.
  3. Dapat ditambahkan modul Wifi atau LAN untuk bisa mengoperasikan sistem kontrol melalui internet.




DAFTAR PUSTAKA

  1. Kamus Besar Bahasa Indonesia (KBBI) Daring. https://kbbi.kemdikbud.go.id/entri/sistem . (diakses tanggal 15 Januari 2020).
  2. Kamus Besar Bahasa Indonesia (KBBI) Daring. https://kbbi.kemdikbud.go.id/entri/kontrol . (diakses tanggal 15 Januari 2020).
  3. Ensiklopedia Online - Wikipedia. https://id.wikipedia.org/wiki/Sistem_kendali (diakses tanggal 22 Januari 2020).
  4. Rahardja, Untung, Tejosuwito, N. J., dan Armansyah, F. S. 2017. “Perancangan Aplikasi Pen+ Berbasis Mobile untuk Memudahkan Kinerja Dosen pada Perguruan Tinggi”. Technomedia Journal, vol.1, no. 2.
  5. Mustaqbal, M. S., Firdaus, R. F., & Rahmadi, H. (2015). Pengujian aplikasi menggunakan black box testing boundary value analysis (studi kasus: Aplikasi prediksi kelulusan smnptn). Jurnal Ilmiah Teknologi Infomasi Terapan, 1(3).
  6. Sunarya, Abas, Andri Cahyo Purnomo, dan Muhamad Iqbal Wahib (2017:54). "PENERAPAN MIDTRANS PAYMENT PADA OFFICIAL SITE ASOSIASI PERGURUAN TINGGI SWASTA INDONESIA." CERITA Journal vol.5, no.1
  7. Maimunah, Ilamsyah, dan M. Ilham. 2016. “Rancang Bangun Aplikasi Penjualan Furniture Online Pada Mitra Karya Furniture”. CSRID (Computer Science Research and Its Development Journal), vol. 8, no. 1.
  8. Aisyah, Euis Sitinur, Padeli, dan Sumasih. 2016. “Penerapan Activity Based Costing System Dalam Laporan Keuangan Untuk Mempermudah Pengendalian Biaya”. SENSI Journal, Vol.2, No.2.
  9. Putra, D. F. S., & DHARMA, U. S. (2013). Mesin Pendingin dengan Pemanasan Lanjut dan Pendingin Lanjut pada Siklus Kompresi Uap.
  10. Marscella, F. A., Komikesari, H., Fakhri, J., & Dewi, P. S. (2019). Termoskop dan Pendingin Udara Sederhana: Pengembangan Alat Peraga Fisika Untuk Pembelajaran Fisika. Indonesian Journal of Science and Mathematics Education, 2(3), 333-343.
  11. Delly, J., Hasbi, M., & Alkhoirin, I. F. (2016). Studi penggunaan modul thermoelektrik sebagai sistem pendingin portable. ENTHALPY, 1(01).
  12. Sunarya, Abas., Ely Nuryani, dan Mochamad Yusuf Romdoni. 2015. “SISTEM INFORMASI MANAJEMEN PROGRAM KELUARGA HARAPAN PADA DINAS SOSIAL KABUPATEN SERANG”. CICES, vol. 1, no.1 .
  13. Mulyani, Sri. 2017. “Metode Analisis dan Perancangan Sistem”. Bandung: Abdi Sistematika.
  14. Muslihudin, Muhammad. 2016. “Analisis dan Perancangan Sistem Informasi Menggunakan Model Terstruktur dan UML”. Yogyakarta: Penerbit Andi.
  15. Albatish, I., Mosa, M. J., & Abu-Naser, S. S. (2018). ARDUINO Tutor: An Intelligent Tutoring System for Training on ARDUINO.
  16. Monk, S. (2018). Programming Arduino next steps: going further with sketches. McGraw-Hill Education.
  17. Arifin, J., & Zulita, L. N. (2016). Perancangan Murottal Otomatis Menggunakan Mikrokontroller Arduino Mega 2560. Jurnal Media Infotama, 12(1).
  18. Safitri, H. R. (2019). RANCANG BANGUN ALAT PEMBERI PAKAN DAN PENGGANTI AIR AQUARIUM OTOMATIS BERBASIS ARDUINO UNO. JITEKH, 7(01), 29-33.
  19. Silvia, A. F., Haritman, E., & Mulyadi, Y. (2014). Rancang Bangun Akses Kontrol Pintu Gerbang Berbasis Arduino Dan Android. Electrans, 13(1), 1-10.
  20. Dharmawan, Hari Arief. (2017). “Mikrokontroler: Konsep Dasar dan Praktis”. Malang: Universitas Brawijaya Press.
  21. Rochman, H. A., Primananda, R., & Nurwasito, H. (2017). Sistem Kendali Berbasis Mikrokontroler Menggunakan Protokol MQTT pada Smarthome. Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer e-ISSN, 2548, 964X.
  22. Kusumah, Hendra, Alfian Toro dan Muhammad Idris. (2016). “Sistem Pengukur Tinggi Dan Berat Badan Untuk Posyandu Menggunakan Mikrokontroler ATmega853”. CCIT Journal, vol. 9, no. 2.
  23. Handayani, I., Febriyanto, E., & Bachri, E. W. (2018). Statcounter Sebagai Alat Monitoring Aktivitas Website PESSTA+ Pada Perguruan Tinggi. SISFOTENIKA, 8(2), 188-197.
  24. Imron, A., & Jamaaluddin, J. (2017). Rancang Bangun Sistem Informasi Parkir Mobil Otomatis Pada Gedung Bertingkat Berbasis Arduino Mega 2560. Jurnal Teknik Elektro dan Komputer TRIAC, 4 (2).
  25. Darmawan, D., Sutisna, S. P., & Sutoyo, E. (2018). SISTEM KONTROL PADA ROBOT PEMINDAH BARANG TIPE CARTESIAN CORDINAT MENGGUNAKAN ARDUINO UNO R3. AME (Aplikasi Mekanika dan Energi): Jurnal Ilmiah Teknik Mesin, 4(2).
  26. Firman, B., Hariyadi, T., & Suyanto, M. (2018). PERANCANGAN SISTEM TELEMETRI DAN KENDALI JARAK JAUH PERANTI VARIABLE SPEED DRIVE VIA PROTOKOL MODBUS BERBASIS APLIKASI VIRTUINO PADA ANDROID.
  27. Musyafa, M. A., Rasmana, S. T., & Susanto, P. (2015). Rancang Bangun Sistem Prabayar Pada PDAM Berbasis Arduino UNO R3. Journal JCONES, 4(1).
  28. Rizkidiniah, F., Yamin, M., & Muchlis, N. F. (2016). Perancangan Dan Implementasi Prototype Sistem GPS (Global Positioning System) Dan SMS Gateway Pada Pencarian Kendaraan Bermotor Berbasis Arduino Uno. semanTIK, 2(2).
  29. Utomo, B. T. W., & Saputra, D. S. (2016). Simulasi Sistem Pendeteksi Polusi Ruangan Menggunakan Sensor Asap Dengan Pemberitahuan Melalui SMS (Short Message Service) Dan Alarm Berbasis Arduino. Jurnal Ilmiah Teknologi Informasi Asia, 10(1), 56-68.
  30. Prihatmoko, D. (2016). Perancangan dan implementasi pengontrol suhu ruangan berbasis mikrokontroller arduino uno. Simetris: Jurnal Teknik Mesin, Elektro dan Ilmu Komputer, 7(1), 117-122.
  31. Tambunan, L., Kom, M., & Putra, D. D. (2019). SISTEM KONTROL KENDARAAN BERBASIS IOT. Jaringan Sistem Informasi Robotik-JSR, 3(1), 152-160.
  32. Cahyono, A. (2019). RANCANG BANGUN SISTEM KONTROL PENYIRAM TANAMAN BERDASARKAN SENSOR SOIL MOISTURE DENGAN MENGGUNAKAN ARDUINO. EXPLORE IT!, 11(1), 7-12.
  33. Roihan, A., Permana, A., & Mila, D. (2016). Monitoring Kebocoran Gas Menggunakan Mikrokontroler Arduino UNO dan ESP8266 Berbasis Internet of Things. ICIT (Innovative Creative and Information Technology), 2(2), 170-183.

Contributors

Farhan rosyadi