BAB II KAJIAN PUSTAKA 2.1 Emisi Gas Buang Kendaraan Bermotor Emisi gas buang dari kendaraan bermotor merupakan salah satu polutan yang mencemari lingkungan. Meningkatnya jumlah kendaraan bermotor yang beredar di masyarakat menyebabkan emisi gas buang juga semakin meningkat. Emisi gas buang itu sendiri adalah sisa hasil dari suatu proses pembakaran bahan bakar di dalam mesin yang tidak sempurna. Komposisi emisi gas Karbon Monoksida (CO), senyawa Nitrogen Oksida (NOx), senyawa Hidrokarbon (HC) didalam Part Per Million (ppm) menunjukkan satu bagian per 1.000.000 bagian, satu bagian dalam 106, dan nilai 1 × 10-6. Part Per Million (ppm) merupakan salah satu satuan konsentrasi yang menyatakan perbandingan bagian dalam satu juta bagian yang lain. Satuan ini biasanya banyak dipakai dalam kimia analisa untuk menyatakan satuan konsentrasi senyawa. Zat-zat yang merugikan dalam udara antara lain : 1. Hidrokarbon (HC), merupakan pengisapan bensin dan bensin yang tidak terbakar. 2. Nitrogen Monoksida (NO). Gas ini dibentuk dalam mesin,khusus pada suhu tinggi (kira-kira diatas 2000oc). NO merupakan gas yang berbahaya karena mengganggu saraf pusat. Selain itu, dengan adanya O2, gas ini bereaksi sehingga terbentuk NO2. Gas tersebut juga mengeluarkan bau yang menyengat dan dapat menyebabkan edema paru-paru dan bronchitis.Selanjutnya di udara yang mengandung NO dan UHC, sinar matahari akan menyebabkan terbentuknya kabut asap fotokimia (Photochemical SMOG) 5 6 3. Karbon Monoksida / Uap Karbon (CO). Gas ini dalam badan manusia menyerang butir-butir darah merah yang bertugas membawa zat asam keseluruh badan. Di dalam ruang tertutup persentase volume CO 0,1% atau lebih tinggi sudah mematikan. 4. Asap Hitam. Asap ini hanya membahayakan karena mengeruhkan udara sehingga mengganggu pandangan, tetapi juga karena adanya kemungkinan mengandung karsinogen. (BAPEDAL. 1997). 2.1.1 Indeks Standard Pencemaran Udara (ISPU) Kualitas udara disampaikan ke masyarakat dalam bentuk indeks standard pencemar udara atau disingkat ISPU. ISPU adalah laporan kualitas udara kepada masyarakat untuk menerangkan seberapa bersih atau tercemarnya kualitas udara kita dan bagaimana dampaknya terhadap kesehatan kita setelah menghirup udara tersebut selama beberapa jam atau hari. Paramater yang ada pada ISPU meliputi: 1. Partikulat (PM10) Partikulat merupakan zat pencemar padat maupun cair yang terdispersi di udara. Partikulat ini dapat berupa debu, abu, jelaga, asap, uap, kabut, atau aerosol. Jenisjenis partikulat dibedakan berdasarkan ukurannya. Partikel yang sangat kecil dapat bergabung satu sama lain membentuk partikel yang lebih besar. 2. Karbon Monoksida (CO) Gas ini dihasilkan dari pembakaran bahan bakar yang tidak sempurna. Pembakaran tidak sempurna, salah satu sebabnya adalah kurangnya jumlah oksigen. Karbon Monoksida bersifat racun, mengakibatkan turunnya berat janin, meningkatkan jumlah kematian bayi, serta menimbulkan kerusakan otak. 7 3. Sulfur dioksida (SO2) Gas ini berasal dari hasil pembakaran bahan bakar yang mengandung sulfur. Selain dari bahan bakar, sulfur juga terkandung dalam pelumas. Gas sulfur dioksida sukar dideteksi karena merupakan gas tidak berwarna. Sulfur dioksida dapat menyebabkan gangguan pernapasan, pencernaan, sakit kepala, sakit dada, dan saraf. 4. Nitrogen dioksida (NO2) Zat nitrogen dioksida sangat beracun sehingga dapat menyebabkan iritasi pada mata, hidung, dan saluran pernapasan serta menimbulkan kerusakan paru-paru. Gas ini terbentuk dari hasil pembakaran tidak sempurna. Setelah bereaksi di atmosfer, zat ini membentuk partikel partikel nitrat sangat halus sehingga dapat menembus bagian terdalam paru-paru. 5. Ozon / Gas Natural (O2) Senyawa kimia ini tersusun atas tiga atom oksigen. Ozon merupakan gas yang sangat beracun dan berbau sangit. Ozon terbentuk ketika percikan listrik melintas dalam oksigen. Adanya ozon dapat dideteksi melalui bau (aroma) yang ditimbulkan oleh mesin-mesin bertenaga listrik. Secara kimiawi, ozon lebih aktif dibandingkan oksigen biasa dan juga merupakan zat pengoksidasi yang lebih baik. Agar lebih mudah dipahami, perhitungan di ISPU ditampilkan seperti penggaris angka 1 hingga 1000. Semakin tinggi nilai ISPU maka semakin tinggi tingkat pencemaran dan semakin berbahaya dampaknya terhadap kesehatan. (BAPEDAL. 1997). 8 Gambar 2.1.1 Papan ISPU (BAPEDAL) Berdasarkan Keputusan Badan Pengendalian Dampak Lingkungan (Bapedal) Nomor KEP-107/Kabapedal/11/1997, rentang semua Gas (PM10,CO,SO2,NO2,O2) yang terdapat pada Indeks Standar Pencemar Udara dengan ketentuan waktu sebagai berikut: Tabel 2.1.1 Rentang Indeks Standar Pencemar Udara (http://air666.weebly.com/indonesia.html) 2.1.2 Gas/Emission Analyzer Gas/Emission Analyzer merupakan salah satu device yang digunakan untuk uji emisi gas pada kendaraan bermotor. Emission Analyzer ini biasanya ada di bengkel resmi uji emisi yang nantinya akan melakukan uji kelayakan emisi pada kendaraan. 9 Gambar 2.1.2 Gas/Emission Analyzer (www.koeng.com) Paramater yang diukur antara lain HC, CO, CO2, O2, suhu, putaran. Ketentuan dari alat ini adalah sebelum digunakan sudah melalui proses pemanasan, penempatannya sebaiknya tidak langsung kena matahari, hujan atau angin serta secara rutin mendapatkan perawatan 6 bulan sekali. Suhu udara luar ketika melakukan pengujian kendaraan dan peralatan ukur (uji) berada sekitar 25 ±5oC. (BAPEDAL. 1997). 2.2 Mikrokontroller Mikrokontroler adalah sebuah sistem komputer fungsional dalam sebuah chip. Di dalamnya terkandung sebuah inti prosesor, memori (sejumlah kecil RAM, memori program, atau keduanya), dan perlengkapan input output. Dengan kata lain, mikrokontroler adalah suatu alat elektronika digital yang mempunyai masukan dan keluaran serta kendali dengan program yang bisa ditulis dan dihapus dengan cara khusus, cara kerja mikrokontroler sebenarnya membaca dan menulis data. Sekedar contoh, bayangkan diri Anda saat mulai belajar membaca dan menulis, ketika Anda sudah bisa melakukan hal itu Anda bisa membaca tulisan apapun baik buku, cerpen, artikel dan sebagainya, dan Andapun bisa pula menulis hal-hal sebaliknya. Begitu pula jika Anda sudah mahir membaca dan menulis data maka Anda dapat membuat program untuk membuat suatu sistem pengaturan otomatik menggunakan mikrokontroler sesuai keinginan Anda. 10 Mikrokontroler merupakan komputer didalam chip yang digunakan untuk mengontrol peralatan elektronik, yang menekankan efisiensi dan efektifitas biaya. Secara harfiahnya bisa disebut “pengendali kecil” dimana sebuah sistem elektronik yang sebelumnya banyak memerlukan komponen-komponen pendukung seperti IC TTL dan CMOS dapat direduksi/diperkecil dan akhirnya terpusat serta dikendalikan oleh mikrokontroler ini. Mikrokonktroler digunakan dalam produk dan alat yang dikendalikan secara automatis, seperti sistem kontrol mesin, remote controls, mesin kantor, peralatan rumah tangga, alat berat, dan mainan. Dengan mengurangi ukuran, biaya, dan konsumsi tenaga dibandingkan dengan mendesain menggunakan mikroprosesor memori, dan alat input output yang terpisah, kehadiran mikrokontroler membuat kontrol elektrik untuk berbagai proses menjadi lebih ekonomis. Dengan penggunaan mikrokontroler ini maka : Sistem elektronik akan menjadi lebih ringkas Rancang bangun sistem elektronik akan lebih cepat karena sebagian besar dari sistem adalah perangkat lunak yang mudah dimodifikasi Pencarian gangguan lebih mudah ditelusuri karena sistemnya yang kompak Agar sebuah mikrokontroler dapat berfungsi, maka mikrokontroler tersebut memerlukan komponen eksternal yang kemudian disebut dengan sistem minimum. Untuk membuat sistem minimal paling tidak dibutuhkan sistem clock dan reset, walaupun pada beberapa mikrokontroler sudah menyediakan sistem clock internal, sehingga tanpa rangkaian eksternal pun mikrokontroler sudah beroperasi. Yang dimaksud dengan sistem minimal adalah sebuah rangkaian mikrokontroler yang sudah dapat digunakan untuk menjalankan sebuah aplikasi. Sebuah IC mikrokontroler tidakakan berarti bila hanya berdiri sendiri. Pada dasarnya sebuah sistem minimal 11 mikrokontroler AVR "Alf (Egil Bogen) and Vegard (Wollan) 's Risc processor" memiliki prinsip yang sama. (Nalwan. 2003) 2.2.1 Fitur AVR ATMega328 ATMega328 adalah mikrokontroller keluaran dari atmel yang mempunyai arsitektur RISC (Reduce Instruction Set Computer) yang dimana setiap proses eksekusi data lebih cepat dari pada arsitektur CISC (Completed Instruction Set Computer). Mikrokontroller ini memiliki beberapa fitur antara lain : 130 macam instruksi yang hampir semuanya dieksekusi dalam satu siklus clock. 32 x 8-bit register serba guna. Kecepatan mencapai 16 MIPS dengan clock 16 MHz. 32 KB Flash memory dan pada arduino memiliki bootloader yang menggunakan 2 KB dari flash memory sebagai bootloader. Memiliki EEPROM (Electrically Erasable Programmable Read Only Memory) sebesar 1KB sebagai tempat penyimpanan data semi permanent karena EEPROM tetap dapat menyimpan data meskipun catu daya dimatikan. Memiliki SRAM (Static Random Access Memory) sebesar 2KB. Memiliki pin I/O digital sebanyak 14 pin 6 diantaranya PWM (Pulse Width Modulation) output. Master / Slave SPI Serial interface. Mikrokontroller ATmega 328 memiliki arsitektur Harvard, yaitu memisahkan memori untuk kode program dan memori untuk data sehingga dapat memaksimalkan kerja dan parallelism. Instruksi – instruksi dalam memori program dieksekusi dalam satu alur tunggal, dimana pada saat satu instruksi dikerjakan instruksi berikutnya sudah diambil 12 dari memori program. Konsep inilah yang memungkinkan instruksi – instruksi dapat dieksekusi dalam setiap satu siklus clock. 32 x 8-bit register serba guna digunakan untuk mendukung operasi pada ALU ( Arithmatic Logic unit ) yang dapat dilakukan dalam satu siklus. 6 dari register serbaguna ini dapat digunakan sebagai 3 buah register pointer 16bit pada mode pengalamatan tidak langsung untuk mengambil data pada ruang memori data. Ketiga register pointer 16-bit ini disebut dengan register X ( gabungan R26 dan R27 ), register Y ( gabungan R28 dan R29 ), dan register Z ( gabungan R30 dan R31 ). Hampir semua instruksi AVR memiliki format 16-bit. Setiap alamat memori program terdiri dari instruksi 16-bit atau 32-bit. Selain register serba guna di atas, terdapat register lain yang terpetakan dengan teknik memory mapped I/O selebar 64 byte. Beberapa register ini digunakan untuk fungsi khusus antara lain sebagai register control Timer/ Counter, Interupsi, ADC, USART, SPI, EEPROM, dan fungsi I/O lainnya. Register-register ini menempati memori pada alamat 0x20h – 0x5Fh. (Nalwan. 2003) Berikut ini adalah tampilan architecture ATmega 328 : 13 Gambar 2.2. Architecture ATmega328 (http://duinoworks.bakketti.com) 14 2.2.2 Konfigurasi PIN ATMega328 Gambar 2.2.1 Konfigurasi Pin ATMega3 (http://fandiajiputra.wordpress.com) Table 2.2.1a Konfigurasi Port B (http://fandiajiputra.wordpress.com) 15 Table 2.2.1b Konfigurasi Port C (http://fandiajiputra.wordpress.com) Table 2.2.1c Konfigurasi Port D (http://fandiajiputra.wordpress.com) 16 2.3 Arduino Uno Arduino adalah sebuah board mikrokontroller yang berbasis ATmega328. Arduino memiliki 14 pin input/output yang mana 6 pin dapat digunakan sebagai output PWM, 6 analog input, crystal osilator 16 MHz, koneksi USB, jack power, kepala ICSP, dan tombol reset. Arduino mampu men-support mikrokontroller; dapat dikoneksikan dengan komputer menggunakan kabel USB. Gambar 2.3 Board Arduino ATmega328(http://arduino.cc/en/Main/arduinoBoardUno) Arduino adalah merupakan sebuah board minimum system mikrokontroler yang bersifat open source. Didalam rangkaian board arduino terdapat mikrokontroler AVR seri ATMega 328 yang merupakan produk dari Atmel. Arduino memiliki kelebihan tersendiri dibanding board mikrokontroler yang lain selain bersifat open source, arduino juga mempunyai bahasa pemrogramanya sendiri yang berupa bahasa C. Selain itu dalam board arduino sendiri sudah terdapat loader yang berupa USB 17 sehingga memudahkan kita ketika kita memprogram mikrokontroler didalam arduino. Sedangkan pada kebanyakan board mikrokontroler yang lain yang masih membutuhkan rangkaian loader terpisah untuk memasukkan program ketika kita memprogram mikrokontroler. Port USB tersebut selain untuk loader ketika memprogram, bisa juga difungsikan sebagai port komunikasi serial Arduino menyediakan 20 pin I/O, yang terdiri dari 6 pin input analog dan 14 pin digital input/output. Untuk 6 pin analog sendiri bisa juga difungsikan sebagai output digital jika diperlukan output digital tambahan selain 14 pin yang sudah tersedia. Untuk mengubah pin analog menjadi digital cukup mengubah konfigurasi pin pada program. Dalam board kita bisa lihat pin digital diberi keterangan 0-13, jadi untuk menggunakan pin analog menjadi output digital, pin analog yang pada keterangan board 0-5 kita ubah menjadi pin 14-19. dengan kata lain pin analog 0-5 berfungsi juga sebagi pin output digital 14-16. Sifat open source arduino juga banyak memberikan keuntungan tersendiri untuk kita dalam menggunakan board ini, karena dengan sifat open source komponen yang kita pakai tidak hanya tergantung pada satu merek, namun memungkinkan kita bisa memakai semua komponen yang ada dipasaran. (Artanto. 2012). Bahasa pemrograman arduino merupakan bahasa C yang sudah disederhanakan syntax bahasa pemrogramannya sehingga mempermudah kita dalam mempelajari dan mendalami mikrokontrol Berikut ini adalah konfigurasi dari arduino duemilanove 328 : Mikronkontroler ATmega328 Beroperasi pada tegangan 5V Tegangan input (rekomendasi) 7 - 12V Batas tegangan input 6 - 20V 18 Pin digital input/output 14 (6 mendukung output PWM) Pin analog input 6 Arus pin per input/output 40 mA Arus untuk pin 3.3V adalah 50 mA Flash Memory 32 KB (ATmega328) yang mana 2 KB digunakan oleh bootloader SRAM 2 KB (ATmega328) EEPROM 1KB (ATmega328) Kecepatan clock 16 MHz 2.3.1 Power Arduino dapat diberikan power melalui koneksi USB atau power supply. Powernya diselek secara otomatis. Power supply dapat menggunakan adaptor DC atau baterai. Adaptor dapat dikoneksikan dengan mencolok jack adaptor pada koneksi port input supply. Board arduino dapat dioperasikan menggunakan supply dari luar sebesar 6 - 20 volt. Jika supply kurang dari 7V, kadangkala pin 5V akan menyuplai kurang dari 5 volt dan board bisa menjadi tidak stabil. Jika menggunakan lebih dari 12 V, tegangan di regulator bisa menjadi sangat panas dan menyebabkan kerusakan pada board. Rekomendasi tegangan ada pada 7 sampai 12 volt. Penjelasan pada pin power adalah sebagai berikut : Vin Tegangan input ke board arduino ketika menggunakan tegangan dari luar (seperti yang disebutkan 5 volt dari koneksi USB atau tegangan yang diregulasikan). 19 Pengguna dapat memberikan tegangan melalui pin ini, atau jika tegangan suplai menggunakan power jack, aksesnya menggunakan pin ini. 5V Regulasi power supply digunakan untuk power mikrokontroller dan komponen lainnya pada board. 5V dapat melalui Vin menggunakan regulator pada board, atau supply oleh USB atau supply regulasi 5V lainnya. 3V3 Suplai 3.3 volt didapat oleh FTDI chip yang ada di board. Arus maximumnya adalah 50mA Pin Ground berfungsi sebagai jalur ground pada arduino (Artanto. 2012). 2.3.2 Memori ATmega328 memiliki 32 KB flash memori untuk menyimpan kode, juga 2 KB yang digunakan untuk bootloader. ATmega328 memiliki 2 KB untuk SRAM dan 1 KB untuk EEPROM. (Artanto. 2012). 2.3.3 Input dan Output Setiap 14 pin digital pada arduino dapat digunakan sebagai input atau output, menggunakan fungsi pinMode(), digitalWrite(), dan digitalRead(). Input/output dioperasikan pada 5 volt. Setiap pin dapat menghasilkan atau menerima maximum 40 mA dan memiliki internal pull-up resistor (disconnected oleh default) 20-50 KOhms. Beberapa pin memiliki fungsi sebagai berikut : 20 Serial : 0 (RX) dan 1 (TX). Digunakan untuk menerima (RX) dan mengirim (TX) TTL data serial. Pin ini terhubung pada pin yang koresponding dari USB FTDI ke TTL chip serial. Interupt eksternal : 2 dan 3. Pin ini dapat dikonfigurasikan untuk trigger sebuah interap pada low value, rising atau falling edge, atau perubahan nilai. PWM : 3, 5, 6, 9, 10, dan 11. Mendukung 8-bit output PWM dengan fungsi analogWrite(). SPI : 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Pin ini men-suport komunikasi SPI, yang mana masih mendukung hardware, yang tidak termasuk pada bahasa arduino. LED : 13. Ini adalah dibuat untuk koneksi LED ke digital pin 13. Ketika pin bernilai HIGH, LED hidup, ketika pin LOW, LED mati. (Artanto. 2012). 2.3.4 Manfaat KIT Arduino Uno Arduino Uno adalah KIT Elektronik atau papan rangkaian elektronik open Source yang didalamnya terdapat komponen utama yaitu sebuah Chip. Mikrokontroller dengan jenis AVR dari Perusahaan Atmel. Arduino Uno adalah sebuah board Mikrokontroller yang berbaris Atmega 3288. Arduino Uno memiliki 4 PIN. Input/output yang mana 6 PIN dapat digunakan sebagai output PWM, 6 analog Input, crystal osilator 16 MHz, koneksi USB, Jack Power, Kepala ICSP, dan tombol Reset. Arduino Uno mampu men-suport Mikrokontroller, dapat dikoneksikan dengan komputer menggunakan kabel USB. (Artanto. 2012). 21 2.3.5 Komunikasi Arduino Uno Uno Arduino memiliki sejumlah fasilitas untuk berkomunikasi dengan komputer, Arduino lain, atau mikrokontroler lain. ATmega328 ini menyediakan UART TTL (5V) komunikasi serial, yang tersedia pada pin digital 0 (RX) dan 1 (TX). Sebuah ATmega16U2 pada saluran board ini komunikasi serial melalui USB dan muncul sebagai com port virtual untuk perangkat lunak pada komputer. Firmware 16U2 menggunakan USB driver standard COM, dan tidak ada driver eksternal yang dibutuhkan. Namun, pada Windows, file. Inf diperlukan. Perangkat lunak Arduino termasuk monitor serial yang memungkinkan data tekstual sederhana yang akan dikirim ke dan dari papan Arduino. RX dan TX LED di papan akan berkedip ketika data sedang dikirim melalui chip USB-to-serial dan koneksi USB ke komputer (tetapi tidak untuk komunikasi serial pada pin 0 dan 1). Sebuah perpustakaan Software Serial memungkinkan untuk komunikasi serial pada setiap pin digital Uno itu. ATmega328 ini juga mendukung komunikasi I2C (TWI) dan SPI. Perangkat lunak Arduino termasuk perpustakaan Kawat untuk menyederhanakan penggunaan dari bus I2C, Untuk komunikasi SPI, menggunakan perpustakaan SPI. (Artanto. 2012). 2.3.6 Tutorial Bahasa Pemograman Arduino Arduino menggunakan pemrograman dengan bahasa C. Berikut ini adalah sedikit penjelasan yang ditujukan kepada anda yang hanya mempunyai sedikit pengalaman pemrograman dan membutuhkan penjelasan singkat mengenai karakter bahasa C dan software Arduino. 22 Struktur Setiap program Arduino (biasa disebut sketch) mempunyai dua buah fungsi yang harus ada. void setup( ) { } Semua kode didalam kurung kurawal akan dijalankan hanya satu kali ketika program Arduino dijalankan untuk pertama kalinya. void loop( ) { } Fungsi ini akan dijalankan setelah setup (fungsi void setup) selesai. Setelah dijalankan satu kali fungsi ini akan dijalankan lagi, dan lagi secara terus menerus sampai catu daya (power) dilepaskan. Syntax Berikut ini adalah elemen bahasa C yang dibutuhkan untuk format penulisan. //(komentar satu baris) Kadang diperlukan untuk memberi catatan pada diri sendiri apa arti dari kodekode yang dituliskan. Cukup menuliskan dua buah garis miring dan apapun yang kita ketikkan dibelakangnya akan diabaikan oleh program. /* */(komentar banyak baris) Jika anda punya banyak catatan, maka hal itu dapat dituliskan pada beberapa baris sebagai komentar. Semua hal yang terletak di antara dua simbol tersebut akan diabaikan oleh program. { }(kurung kurawal) Digunakan untuk mendefinisikan kapan blok program mulai dan berakhir (digunakan juga pada fungsi dan pengulangan). 23 ;(titk koma) Setiap baris kode harus diakhiri dengan tanda titik koma (jika ada titik koma yang hilang maka program tidak akan bisa dijalankan). Variabel Sebuah program secara garis besar dapat didefinisikan sebagai instruksi untuk memindahkan angka dengan cara yang cerdas. Variabel inilah yang digunakan untuk memindahkannya. int (integer) Digunakan untuk menyimpan angka dalam 2 byte (16 bit). Tidak mempunyai angka desimal dan menyimpan nilai dari -32,768 dan 32,767. long (long) Digunakan ketika integer tidak mencukupi lagi. Memakai 4 byte (32 bit) dari memori (RAM) dan mempunyai rentang dari -2,147,483,648 dan 2,147,483,647. boolean (boolean) Variabel sederhana yang digunakan untuk menyimpan nilai TRUE (benar) atau FALSE (salah). Sangat berguna karena hanya menggunakan 1 bit dari RAM. float (float) Digunakan untuk angka desimal (floating point). Memakai 4 byte (32 bit) dari RAM dan mempunyai rentang dari -3.4028235E+38 dan 3.4028235E+38. char (character) 24 Menyimpan 1 karakter menggunakan kode ASCII (misalnya „A‟ = 65). Hanya memakai 1 byte (8 bit) dari RAM. (Artanto. 2012). Operator Matematika Operator yang digunakan untuk memanipulasi angka (bekerja seperti matematika yang sederhana). (Algoritma dan Pemrograman. 2012). = Membuat sesuatu menjadi sama dengan nilai yang lain (misalnya: x = 10 * 2, x sekarang sama dengan 20) % Menghasilkan sisa dari hasil pembagian suatu angka dengan angka yang lain (misalnya: 12 % 10, ini akan menghasilkan angka 2). + Penjumlahan Pengurangan * Perkalian / Pembagian 25 Operator Pembanding Digunakan untuk membandingkan nilai logika. == Sama dengan (misalnya: 12 == 10 adalah FALSE (salah) atau 12 == 12 adalah TRUE (benar)) != Tidak sama dengan (misalnya: 12 != 10 adalah TRUE (benar) atau 12 != 12 adalah FALSE (salah)) < Lebih kecil dari (misalnya: 12 < 10 adalah FALSE (salah) atau 12 < 12 adalah FALSE (salah) atau 12 < 14 adalah TRUE (benar)) > Lebih besar dari (misalnya: 12 > 10 adalah TRUE (benar) atau 12 > 12 adalah FALSE (salah) atau 12 > 14 adalah FALSE (salah)) (Suarga. 2012) Struktur Pengaturan Program sangat tergantung pada pengaturan apa yang akan dijalankan berikutnya, berikut ini adalah elemen dasar pengaturan. 1. if..else, dengan format seperti berikut ini: if (kondisi) { } else if (kondisi) { } else { } 26 Dengan struktur seperti diatas program akan menjalankan kode yang ada di dalam kurung kurawal jika kondisinya TRUE, dan jika tidak (FALSE) maka akan diperiksa apakah kondisi pada else if dan jika kondisinya FALSE maka kode pada else yang akan dijalankan 2. for, dengan format seperti berikut ini: for (int i = 0; i < #pengulangan; i++) { } Digunakan bila anda ingin melakukan pengulangan kode di dalam kurung kurawal beberapa kali, ganti #pengulangan dengan jumlah pengulangan yang diinginkan. Melakukan penghitungan ke atas dengan i++ atau ke bawah dengan i–. (Suarga. 2012) Digital 1. pinMode(pin, mode) Digunakan untuk menetapkan mode dari suatu pin, pin adalah nomor pin yang akan digunakan dari 0-19 (pin analog 0-5 adalah 14-19). Mode yang bisa digunakan adalah INPUT atau OUTPUT. 2. digitalWrite(pin, value) Ketika sebuah pin ditetapkan sebagai OUTPUT, pin tersebut dapat dijadikan HIGH (ditarik menjadi 5 volts) atau LOW(diturunkan menjadi ground). 3. digitalRead(pin) Ketika sebuah pin ditetapkan sebagai INPUT maka anda dapat menggunakan kode ini untuk mendapatkan nilai pin tersebut apakah HIGH (ditarik menjadi 5 volts) atau LOW (diturunkan menjadi ground). (Ibrahim. 1996). 27 Analog Arduino adalah mesin digital tetapi mempunyai kemampuan untuk beroperasi di dalam alam analog (menggunakan trik). Berikut ini cara untuk menghadapi hal yang bukan digital. 1. AnalogWrite(pin, value) Beberapa pin pada Arduino mendukung PWM (pulse width modulation) yaitu pin 3, 5, 6, 9, 10, 11. Ini dapat merubah pin hidup (on)atau mati (off) dengan sangat cepat sehingga membuatnya dapat berfungsi layaknya keluaran analog. Value (nilai) pada format kode tersebut adalah angka antara 0 ( 0% duty cycle ~ 0V) dan 255 (100% duty cycle ~ 5V). 2. AnalogRead(pin) Ketika pin analog ditetapkan sebagai INPUT anda dapat membaca keluaran voltase-nya. Keluarannya berupa angka antara 0 (untuk 0 volts) dan 1024 (untuk 5 volts). (Ibrahim. 1996). 2.4 Sensor Gas Sensor adalah sesuatu yang digunakan untuk mendeteksi adanya perubahan lingkungan fisik atau kimia. Sedangkan sensor gas adalah suatu perangkat yang dibuat untuk mendeteksi salah satu jenis atau lebih dari satu jenis gas. Sensor gas befungsi untuk mengukur senyawa gas polutan yang ada di udara, seperti Karbon Monoksida, Hidrokarbon, Nitrooksida, dan lain-lain. sensor gas yang digunakan seperti sensor gas untuk mendeteksi gas CO yaitu type MQ-7, sensor untuk mendeteksi gas CO, HC yaitu type TGS 2201, dan lain-lain. Pada thesis ini digunakan sensor MQ-4, MQ-7 dan MQ-135. (Heri Ardianto. 2008). 28 2.4.1 MQ-4 MQ-4 memiliki kemampuan mendeteksi konsentrasi gas metana (CH4) di udara. Sensor dapat digunakan untuk mendeteksi gas yang mudah terbakar. Sensor ini membutuhkan suplai daya sebesar 5V. Jangkauan deteksinya terhadap natural gas/metana adalah 300 sampai 10000 ppm. Gambar 2.4.1 Sensor MQ-4 (www.sparkfun.com/products/9404) 2.4.2 MQ-7 MQ-7 adalah sebuah sensor gas yang digunakan untuk mendeteksi gas Carbon Monoxide (CO). Sensor buatan Hanwei China ini terdiri dari keramik AL2O3, lapisan tipis SnO2, elektroda serta heater yang digabungkan dalam suatu lapisan kerak yang terbuat dari plastic dan stainless. Kemasan sensor MQ-7 tersedia dalam dua macam yaitu dari bahan metal dan plastic. Gambar 2.4.2 Sensor MQ-7 (www.micro4you.com/store/carbon-monoxide-sensor-mq7-.html) 29 Sensor ini dapat beroperasi pada suhu dari -100C sampai 500C dan mengkonsumsi kurang dari 150 mA pada 5 V. Fitur sensor gas MQ-7: Memiliki sensitivitas tinggi Jarak deteksi gas : 10 - 1000 ppm gas CO Response time : < 150 detik Heater tegangan : 5,0 V Dimensi : 20 mm diameter, 10 mm (pin tidak termasuk), 6 mm untuk tinggi pin. 2.4.3 MQ-135 MQ-135 merupakan sensor gas yang bisa digunakan dalam peralatan kontrol kualitas udara untuk bangunan / kantor untuk medeteksi gas ammonia (NH3), Nitrogen Oxide(NOx), alkohol, bensol, asap, Carbon Dioxide(CO2), dan lain lain. Materi sensitif dari sensor gas MQ-135 ini adalah SnO2. Gambar 2.4.3 Sensor MQ-135 (www.elecrow.com/blog/tag/gas-sensor) Sensor ini memiliki kepekaan yang baik terhadap gas berbahaya (Amonia, Sulfida, Benzena). Sensor ini membutuhkan suplai daya sebesar 5V. Sensor ini mampu untuk mendeteksi gas NH3 dengan jangkauan deteksinya mulai dari 10 sampai 300 ppm, 30 mendeteksi gas Benzena dengan jangkauan deteksinya mulai dari 10 sampai 1300 ppm, dan 10 – 300 ppm untuk alkohol. (Heri Ardianto. 2008). 2.5 Bahasa C Bahasa C adalah bahasa pemrograman yang dapat dikatakan berada di antara bahasa beraras rendah dan beraras tinggi. Bahasa beraras rendah artinya bahasa yang berorientasi pada mesin dan beraras tinggi berorientasi pada manusia. Bahasa beraras rendah, misalnya bahasa assembler, bahasa ini ditulis dengan sandi yang dimengerti oleh mesin saja, oleh karena itu hanya digunakan bagi yang memprogram mikroprosesor. Bahasa beraras rendah merupakan bahasa yang membutuhkan kecermatan yang teliti bagi pemrogram karena perintahnya harus rinci, ditambah lagi masing-masing pabrik mempunyai sandi perintah sendiri. Bahasa tinggi relatif mudah digunakan, karena ditulis dengan bahasa manusia sehingga mudah dimengerti dan tidak tergantung mesinnya. Bahasa beraras tinggi biasanya digunakan pada komputer. Pencipta bahasa C adalah Brian W. Kernighan dan Denis M. Ritchi, sekitar tahun 1972. Penulisan program dalam bahasa C dilakukan dengan membagi dalam blokblok, sehingga bahasa C disebut dengan bahasa terstruktur. Bahasa C dapat digunakan di berbagai mesin dengan mudah, mulai dari PC sampai dengan mainframe, dengan berbagai sistem operasi misalnya DOS, UNIX, VMS dan lain-lain. (Agus Bejo. 2008).