BAB 2 LANDASAN TEORI Dalam Bab ini penulis akan membahas tentang komponen - komponen yang digunakan dalam seluruh unit alat ini. Agar pembahasan tidak melebar dan menyimpang dari topik utama laporan ini, maka setiap komponen akan dibahas sesuai fungsinya pada masing- masing unit. 2.1. Mikrokontroler Arduino Uno R3 Arduino Uno sebenarnya adalah salah satu kit mikrokontroler yang berbasis pada Atmega328.Boardini memiliki 14 digital input / ouput pin, dimana 6 pin dapat digunakan sebagai ouput PWM, 6 input analog, 16 MHz osilator kristal, koneksi USB, jack listrik dan tombol reset. Pin– pin ini berisi semua yang diperlukan untuk mendukung mikrokontroler, hanya terhubung ke komputer dengan kabel USB atau sumber tekanan bisa didapat dari adaptor AC– DC atau baterai untuk menggunakannya. Arduino Uno R3 berbeda dengan semua boardsebelumnya karena Arduino Uno R3 ini tidak menggunakan chipdriver FTDI USB-to-serial.Sebagaimana kita ketahui dengan mikrokontroler kita dapat membuat program untuk mengendalikan berbagai komponen elektronika. Program yang kita buat dengan bahasa pemrograman di download ke mikrokontroler, yang kemudian mikrokontroler akan bekerja sesuai dengan program yang kita buat. Gambar 2.1. Arduino Uno R3 Universitas Sumatera Utara Dengan Arduino itu sendiri lebih memudahan penggunanya untuk membuat berbagai hal yang berkaitan dengan mikrokontroler, karena didalamnya sudah tersedia yang dibutuhkan oleh mikrokontroler. Contohnya yang dapat dibuat dengan Arduino antara lain, untuk membuat robot, mengontrol motor stepper, pengatur suhu, mesin gate turnstile, display LCD, dan masih banyak lagi pengaplikasian lainnya, seperti pembuatan alat deteksi kebocoran gas hidrogen yang penulis kerjakan pada saat ini yang menggunakan mikrokontroler arduino versi uno r3 dengan rincian spesifikasi : Tabel 2.1. Spesifikasi Arduino Uno R3 Mikrokontroler ATmega328 Operasi tegangan 5Volt Input tegangan disarankan 7-11Volt Input batas tegangan 6-20Volt Pin I/O digital 14 (6 bisa untuk PWM) Pin Analog 6 Arus DC tiap pin I/O 50mA Arus DC ketika 3.3V 50mA Memori flash 32 KB (ATmega328) dan 0,5 KB digunakan oleh bootloader SRAM 2 KB (ATmega328) EEPROM 1 KB (ATmega328) Kecepatan clock 16 Hz 2.1.1. Arsitektur Mikrokontroler Arduino Uno R3 Arsitektur pada boardarduino rev 3memiliki fitur barusebagai berikut: a. Pertama adalah pinout: ada penambahan pin SDA dan SCL yang dekat dengan pin AREF dan dua pin baru lainnya ditempatkan dekat dengan pin RESET, I/OREF yang memungkinkan shield untuk beradaptasi dengan tegangan yang disediakan dari papan / board. Di masa depan, shield akan kompatibel dengan kedua papan yang menggunakan AVR, yang beroperasi dengan 5V dan dengan Universitas Sumatera Utara Arduino yang beroperasi 3.3V. Kedua adalah pin tidak terhubung, yang dicadangkan untuk tujuan masa depan. b. Reset sirkuit yang sangat kuat. c. Atmega16U2 menggantikan Atmega8U2 yang digunakan sebagai konverter usb-to-serial. Gambar 2.2. Arsitektur Arduino Uno R3 ArduinoUno dapat diaktifkan melalui koneksi USB atau dengan catu daya eksternal, sumber listrik dipilih secara otomatis.Eksternal (non-usb) daya dapat berupa baik ac-dc adaptor atau baterai. Adaptor ini dapat dihubungkan dengan cara menghubungkan plug pusatpositif 2.1mm ke dalam board colokan listrik. Sedangkan untuk baterai dapat dihubungkan kedalam headerpin gnd dan vin dari konektor power.Board dapat beroperasi pada pasokan daya dari 6 – 20 volt.Jika menggunakan tegangan kurang dari 6 volt mungkin tidak akan stabil.Jika menggunakan lebih dari 12V, regulator tegangan bisa panas dan merusak papan.Rentang yang dianjurkan adalah 7 sampai 12 volt. Pin listrik yang tersedia adalah sebagai berikut: • Vin. Input tegangan ke board Arduino ketika menggunakan sumber daya eksternal. Anda dapat menyediakan tegangan melalui pin ini, atau, jika Anda ingin memasok tegangan melalui colokan listrik, gunakan pin ini. • 5V. Pin ini merupakan output 5V yang telah diatur oleh regulator papan Arduino. Board dapat diaktifkan dengan daya, baik dari colokan listrik DC (7 - Universitas Sumatera Utara 12V), konektor USB (5V), atau pin VIN board (7-12V). Jika Anda memasukan tegangan melalui pin 5V atau 3.3V secara langsung (tanpa melewati regulator) dapat merusak papan Arduino. • Tegangan pada pin 3.3V,3.3Volt dihasilkan oleh regulator on-board. Menyediakan arus maksimum 50 mA. • GND. Pin Ground. • I/OREF. Pin ini di papan Arduino memberikan tegangan referensi ketika mikrokontroler beroperasi. Sebuah shield yang dikonfigurasi dengan benar dapat membaca pin tegangan IOREF sehingga dapat memilih sumber daya yang tepat agar dapat bekerja dengan 5V atau 3.3V. Arduino Uno R3 memiliki 6 input analog diberi label A0 sampai A5, masing-masing menyediakan 10-bit resolusi (yaitu 1024 nilai yang berbeda). Secara default sistem mengukur dari ground sampai 5 volt, meskipun mungkin untuk mengubah ujung atas rentang mengunakan pin AREF dan fungsi analogReference(). Selain itu, beberapa pinmemiliki fungsi khususyaitu : • TWI :A4 atau SDA pin dan A5 atau SCL pin, mendukung komunikasi TWI. • AREF : Referensi tegangan untuk input analog, digunakan dengan analogReference(). • RESET : Digunakan sebagai tombol menghidupkan kembali. 2.1.2 Konfigurasi Pin Arduino Uno R3 Dalam pasaran yang sering kita jumpai adalah arduino uno dimana didalamnya terdapat tiga port yaitu port-b, port-c, dan port-d. Diantara ketiga port tersebut terdapat dua port yang terdiri atas 14 pin digital input/output yaitu port-b dan port-d sedangkan 7 pin analog Input/Output yaitu port-c. Setiap 14 pin digital pada arduino uno r3 dapat digunakan sebagai input dan output, menggunakan fungsi pinmode, digitalwrite, dan digitalread. Fungsi– fungsi tersebut beroperasi pada tegangan 5v, setiap pin dapat memberi atau menerima suatu arus maksimum 40 mA dan mempunyai sebuah resistor pull-up (terputus secara default) 20-50 kOhm. Selain itu, beberapa pin mempunyai fungsifungsi spesial, yaitu : Universitas Sumatera Utara • Serial:pin0 (RX) dan pin1 (TX). Digunakan untuk menerima (RX) dan megirimkan (TX) serial data TTL (Transistor-Transistor Logic). Kedua pin ini dihubungkan ke pin-pin yang sesuai dari chip serial Atmega8U2 USB-ke-TTL. • External Interrupts:pin2 dan pin3. Pin 2 dan 3 dapat dikonfigurasi untuk memicu interrupt pada nilai yang rendah (low value), rising atau falling edge, atau perubahan nilai.. • PWM: Pin 3, 5, 6, 9, 10, dan 11. Memberikan 8-bit PWM output dengan fungsi analogWrite(). • SPI: Pin 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) mendukung komunikasi SPI dengan menggunakan perpustakaan SPI. • LED: Pin 13. Ada sebuah LED yang terpasang, terhubung ke pin digital 13. Ketika pin bernilai HIGH LED menyala, ketika pin bernilai LOW LED mati. Gambar 2.3. Pin-Pin Arduino Uno R3 Reset Membawa saluran ini LOW untuk mereset mikrokontroler. Secara khusus, digunakan untuk menambahkan sebuah tombol reset untuk melindungi sesuatu yang bisa memblock sesuatu pada board. Universitas Sumatera Utara 2.1.3. Deskripsi Pin Pada Mikrokontroler Arduino Uno R3 Gambar 2.4. Deskripsi Pin Pada Arduino Uno R3 a. 14 Pin Output/Input Digital (Pin 0 – pin 13) Pin ini dapat digunakan sebagai pin input dan output digital. Artinya pin-pin ini hanya dapat digunakan untuk keluar data digital. Bila pin – pin ini diatur sebagai pin output, maka pin – pin hanya dapat mengeluar tegangan 0V untuk kondisi OFF dan mengeluarkan tegangan 5V untuk kondisi ON. Dalam penulisan program sketch, 0V dinyatakan dengan kondisi LOW dan 5V dinyatakan dengan kondisi HIGH. Jika pin-pin digital ini diatur sebagai pin input, maka pin-pin ini hanya dapat menerima data digital. Bila pin diberi tegangan 0V, maka pin mendapat logika rendah (LOW) dan jika pin mendapat tegangan 5V, maka pin mendapat logika tinggi (HIGH). b. Pin A0 – pin A5 Pin A0 – pin A5 adalah pin analog, artinya pin ini dapat menerima dan mengeluarkan data data analog. Pin A0 – pin A5 terhubung ke ADC (analog to digital converter). Board arduino uno menggunakan mikrokontroller ATMega 328 yang mempunyai 2 macam konfigurasi ADC yaitu ADC 8 bit dan ADC 12 bit. Pin analog ini dapat mengolah tegangan analog dari tegangan 0 V hingga 5 V. Selain dapat digunakan untuk data analog, pin ini juga dapat difungsikan sebagai pin input/output digital. Universitas Sumatera Utara c. Pin Utilitas Pin utilitas terdiri dari : • Pin V input : untuk input tegangan DC 5 V • Pin V output 5V : pin ini mengeluarkan tegangan 5V • Pin V output 3,3 V: pin ini mengeluarkan tegangan 3,3 V • Pin Ground (-) • Pin Aref : pin ini untuk memberikan tegangan referensi eksternal pada ADC • Pin reset : pin ini untuk reset mikrokontroller. d. Q1 – Kristal (quartz crystal oscillator) Jika mikrokontroler dianggap sebagai sebuah otak, maka kristal adalah jantung-nya karena komponen ini menghasilkan detak-detak yang dikirim kepada mikrokontroler agar melakukan sebuah operasi untuk setiap detaknya. Kristal ini dipilih yang berdetak 16 juta kali per detik (16MHz). e. Terminal USB Terminal USB digunakan untuk menghubungkan board arduino dengan komputer, terminal ini digunakan untuk memprogram mikrokontroller dan juga dapat digunakan untuk komunikasi mikrokontroller dengan komputer (serial komunikasi). f. Terminal Catu Daya Eksternal (X1) Board arduino selain dapat menggunakan catudaya dari USB komputer, juga dapat diberi catudaya eksternal melalui terminal catudaya ini.Pada board arduino telah dilengkapi dengan regulator tegangan 5V, sehingga board arduino ini dapat diberikan tegangan eksternal berkisar dari 5 V hingga 12 VDC. g. Terminal Header ISP Terminal Header ISP digunakan untuk pemograman boatloader mikrokontroler.Agar mikrokontroler atmega328 dapat bekerja pada board arduino, maka atmega328 harus diisi dengan program boatloader terlebih dahulu. Pada saat kita membeli board arduino, board telah dilengkapi dengan sebuah IC atmega328 yang telah diisi dengan program boatloader, tetapi jika kita hendak mengganti IC atmega328 dengan yang baru, maka IC tersebut terlebih dahulu Universitas Sumatera Utara harus diisi dengan program boatloader dengan menggunakan terminal header ISP yang dihubungkan ke downloader lain. h. Tombol Reset Untuk me-reset papan sehingga program akan mulai lagi dari awal. Perlu dipahami bahwa tombolreset ini bukan untuk menghapus program atau mengosongkan microkontroler. 2.1.4. Peta Memory Arduino Uno R3 Arduino Uno adalah arduino board yang menggunakan mikrokontroler ATmega328. Maka peta memori arduino uno sama dengan peta memori pada mikrokontroler ATmega328. 2.1.4.1. Memori Perogram ATMega328 memiliki 32K byte On-chip In-System Reprogrammable Flash Memory untuk menyimpan program. Memori flash dibagi kedalam dua bagian, yaitu bagian program bootloader dan aplikasi seperti terlihat pada Gambar 2.5. Bootloader adalah program kecil yang bekerja pada saat sistem dimulai yang dapat memasukkan seluruh program aplikasi ke dalam memori prosesor. Gambar 2.5.Peta Memori Perogram ATMega328 Universitas Sumatera Utara 2.1.4.2. Memori Data Memori data ATMega328 terbagi menjadi 4 bagian, yaitu 32 lokasi untuk register umum, 64 lokasi untuk register I/O, 160 lokasi untuk register I/O tambahan dan sisanya 2048 lokasi untuk data SRAM internal. Register umum menempati alamat data terbawah, yaitu 0x0000 sampai 0x001F. Register I/O menempati 64 alamat berikutnya mulai dari 0x0020 hingga 0x005F. Register I/O tambahan menempati 160 alamat berikutnya mulai dari 0x0060 hingga 0x00FF. Sisa alamat berikutnya mulai dari 0x0100 hingga 0x08FF digunakan untuk SRAM internal.Peta memori data dari ATMega 328 dapat dilihat pada Gambar 2.6. Gambar 2.6.Peta Memori Data ATMega328 2.1.4.3. Memori EEPROM Arduino uno terdiri dari 1 KByte memori data EEPROM. Pada memori EEPROM, data dapat ditulis/dibaca kembali dan ketika catu daya dimatikan, data terakhir yang ditulis pada memori EEPROM masih tersimpan pada memori ini, atau dengan kata lain memori EEPROM bersifat nonvolatile. Alamat EEPROM dimulai dari 0x000 hingga 0x3FF. Universitas Sumatera Utara 2.1.5. Register Serba Guna Register geser memegang apa yang dapat dianggap sebagai delapan lokasi memori , masing-masing dapat menjadi 1 atau 0 . Untuk mengatur masing-masing nilai ini atau menonaktifkan, dalam data menggunakan data dan pin jam chip. Gambar 2.7.Register Geser 2.2. Sensor Gas MQ-8 Sensor Gas Hidrogen MQ-8 adalah salah satu sensor gas yang memiliki sensivitas tinggi terhadap gas hidrogen. Sensor ini juga memiliki kepekaan terhadap alkohol, gas LPG dan asap masakan namun kecil kepekaannya. Sensor ini bekerja dengan stabil dan mempunyai umur yang panjang dalam pemakaiannya.Sensor ini juga dapat digunakan untuk mendeteksi kebocoran gas pada peralatan rumah tangga maupun industri, namun sensivitasnya rendah. Jika molekul gas H2 mengenai permukaan sensor maka satuan resistansinya akan mengecil sesuai dengan konsentrasi gas, sebaliknya jika konsentrasi gas menurun akan diikuti dengan semakin tingginya resistansi maka tegangan keluarannya akan menurun. Pengaruh perubahan konsentrasi gas dapat mengubah nilai resistansi sensor dan juga akan mempengaruhi tegangan Universitas Sumatera Utara keluarannya, sehingga perbedaan inilah yang dijadikan acuan bagi pendeteksi gas berbahaya ini. Spesifikasi dari sensor MQ-8 ini adalah sebagai berikut: a. Target Gas : Gas Hidrogen (H2) b. Output : Resistance (Tahanan) c. Range Pendeteksi : 100 – 10000 ppm d. Pemanasan tegangan : 5v ±0.1 (DC/AC) e. Tegangan Rangkaian : 5v ±0.1 (DC/AC) Sensor MQ-8 disusun oleh tabung keramik mikro Al2O3 , Dioksida Tin (SnO2) untuk lapisan sensitif, pengukur elektroda dan pemanas yang menjadi lapisan kulit yang dibuat oleh jaring plastik dan stainless steel. Pemanas menyediakan kondisi kerja yang diperlukan untuk pekerjaan sensitif komponen. Sensor MQ-8 memiliki 6 pin, 4 pin digunakan untuk mengambil sinyal, dan 2 pin lainnya digunakan untuk menyediakan pemanasan. Gambar 2.8.Sensor MQ-8 2.3. Gas Hidrogen Udara adalah suatu campuran gas yang terdapat pada lapisan yang mengelilingi bumi dan komponen campuran gas tersebut tidak selalu konstan (Fardiaz, 1992).Udara juga merupakan atmosfer yang berada di sekeliling bumi yang fungsinya sangat penting bagi kehidupan manusia di dunia ini. Gas Hidrogen adalah unsur kimia yang memiliki simbol H dan nomor atom 1. Gas hidrogen pada suhu dan tekanan standar tidak berwarna, tidak berbau, bersifat non-logam, bervalensi tunggal, dan merupakan gas diatomik yang sangat Universitas Sumatera Utara mudah terbakar.Dengan massa atom 1,00794 amu, hidrogen adalah unsur teringan di dunia, hidrogen adalah unsur teringan di dunia. Hidrogen juga adalah unsur paling melimpah dengan persentase kira-kira 75% dari total massa unsur alam semesta.Kebanyakan bintang dibentuk oleh hidrogen dalam keadaan plasma.Senyawa hidrogen relatif langka dan jarang dijumpai secara alami di bumi, dan biasanya dihasilkan secara industri dari berbagai senyawa hidrokarbon seperti metana. Hidrogen juga dapat dihasilkan dari air melalui proses elektrolisis, namun proses ini secara komersial lebih mahal daripada produksi hidrogen dari gas alam. Isotop hidrogen yang paling banyak dijumpai di alam adalah protium, yang inti atomnya hanya mempunyai proton tunggal dan tanpa neutron.Senyawa ionik hidrogen dapat bermuatan positif (kation) ataupun negatif (anion).Hidrogen dapat membentuk senyawa dengan kebanyakan unsur dan dapat dijumpai dalam air dan senyawa-senyawa organik. Gas hidrogen sangat mudah terbakar dan akan terbakar pada konsentrasi serendah 4% H2 di udara bebas.Entalpi(jumlah energi dari suatu sistem termodinamika) pembakaran hidrogen adalah -286 kJ/mol. Hidrogen terbakar menurut persamaan kimia : 2 H2(g) + O2(g) → 2 H2O(l) + 572 kJ (286 kJ/mol) Ketika dicampur dengan oksigen dalam berbagai perbandingan, hidrogen meledak seketika disulut dengan api dan akan meledak sendiri pada temperatur 560 °C.Lidah api hasil pembakaran hidrogen-oksigen murni memancarkan gelombang ultraviolet dan hampir tidak terlihat dengan mata telanjang. Oleh karena itu, sangatlah sulit mendeteksi terjadinya kebocoran hidrogen secara visual.Hidrogen mendatangkan beberapa bahaya kesehatan pada manusia, mulai dari potensi ledakan dan kebakaran ketika tercampur dengan udara, sampai dengan sifatnya yang menyebabkan asfiksia pada keadaan murni tanpa oksigen. 2.4. Generator Generatoradalah suatu alat yang dapat mengubah tenaga mekanik menjadi energi listrik.Tenaga mekanik bisa berasal dari panas, air, uap, dll.Energi listrik yang dihasilkan oleh generator bisa berupa listrik AC (bolak-balik) maupun DC Universitas Sumatera Utara (searah).Hal tersebut tegantung dari konstruksi generator yang dipakai oleh pembangkit listrik. Generatorberhubungan erat dengan hukum faraday. Berikut hasil dari hukum faraday “bahwa apabila sepotong kawat penghantar listrik berada dalam medan magnet berubah-ubah, maka dalam kawat tersebut akan terbentuk Gaya Gerak Listrik (GGL)” Bila sebatang logam panjang berada di dalam medan listrik, maka akan menyebabkan elektron bebas akan bergerak ke kiri yang akhirnya akan menimbulkan medan listrik induksi yang sama kuat dengan medan listrik (Gambar 2.9) sehingga kuat medan total menjadi nol. Dalam hal ini potensial kedua ujung logam menjadi sama besar dan aliran elektron akan berhenti, maka kedua ujung logam terdapat muatan induksi. Agar aliran elektron bebas berjalan terus maka harus muatan induksi ini terus diambil, sehingga pada logam tidak timbul medan listrik induksi. Dan sumber ggl (misal baterai) yang dapat membuat beda potensial kedua ujung logam tetap, sehingga aliran elektron tetap berjalan. Gambar 2.8. Aliran Elektron Pada Sebatang Logam 2.5. Gsm Shield Simcomm (SIM 900A) Sim900A adalah komponen tambahan sebagai pengirim data secara pesan singkat yang digunakan pada penelitian ini.Modul Sim900A GSM/GPRS adalah bagian yang berfungsi untuk berkomunikasi antara pemantau utama dengan ponsel.GSM (Global System for Mobile Communications) mulai menggeser AMPSdiawal tahun 1995, PT.Telkomsel dan PT.Satelindo adalah dua operator peloporteknologi GSM di Indonesia.GSM menggunakan teknologi digital, ada beberapakeunggulan menggunakan teknologi digital dibandingkan dengan analog sepertikapasitas yang besar, sistem keamanan yang lebih baik dan layanan yang lebihberagam. GSM menggunakan teknlogi akses gabungan antara FDMA (FrequencyDivision Multiple Acces) dan TDMA (Time Division Multiple Acces) Universitas Sumatera Utara yang awalnyabekerja pada frekwensi 900 Mhz dan ini merupakan standar yang dipelopori olehETSI (The European Telecommunication Standard Institute) dimana frekwensi yangdigunakan dengan lebar pita frekwensi 25 Khz pada band frekwensi 900 Mhz. Pitafrekwensi 25 Khz ini kemudian dibagi menjadi 124 carrierfrekwensi yang terdiridari 200 Khz setiap carrier. Carrierfrekwensi 200 Khz kemudian dibagi menjadi 8 time slotdimana setiap userakan melakukan dan menerima panggilan dalam satutime slotberdasarkan pengaturan waktu. Teknologi GSM sampai saat ini palingbanyak digunakan di dunia dan juga di Indonesia karena salah satu keunggulan GSMadalah kemampuan roamingyang luas sehingga dapat dipakai di berbagai negara.Namun kecepatan akses data pada jaringan GSM sangat kecil yaitu sekitar 9.6 kbps, karena pada awalnya hanya dirancang untuk penggunaan suara. Gambar 2.10. GSM Shield Simcomm (Sim 900A) 2.5.1. General Packet Radio Service Pada awalnya akses data yang dipakai dalam GSM sangat kecil hanya sekitar9.6 kbps karena memang tidak dimaksudkan untuk akses data kecepatan tinggi.Teknologi yang digunakan GSM dalam akses data adalah WAP (Wireless ApplicationProtocol). Kemudian generasi selanjutnya adalah teknologi GPRS (General PacketData Radio Service) yang pertama kali dikenalkan di Indonesia oleh PT. IndosatMulti Media pada tahun 2001, GPRS merupakan generasi penerus dari GSM.Secara teori kecepatan akses data menggunakan GPRS adalahsebesar 115 kbps dengan throughput yang didapat adalah 20 – 30 kbps.Karena pada awalnya pemakaian GPRS lebihditujukan untuk penggunaan akses internet. Universitas Sumatera Utara 2.5.2. Short Message Service SMS merupakan salah satu fitur dari GSM (Global System for MobileCommunication) yang dikembangkan dan distandarisasi oleh ETSI (EuropeanTelecommunications Standard Institute). Pada saat kita mengirim pesan SMS darihandphone maka pesan SMS tersebut tidak langsung dikirim ke handphonetujuan, akan tetapi terlebih dahulu dikirim ke SMS Center (SMSC) dengan prinsipstore and forward, setelah itu baru dikirimkan ke handphone yang dituju. Dari SMSCini dapat diketahui status dari SMS yang dikirim, apakah telah sampai atau gagalditerima oleh handphone tujuan. Apabila handphone tujuan dalam keadaan aktifdan menerima SMS yang dikirim, maka akan ada konfirmasi pesan ke SMSCyang menyatakan bahwa SMS telah diterima. Kemudian SMSC mengirimkankembali status tersebut kepada pengirim. Tetapi jika handphone tujuan dalamkeadaan mati atau di luar jangkauan, SMS yang dikirimkan akandisimpan padaSMSC sampai periode validitas terpenuhi. Jika periode validitas terlewati makaSMS itu akan dihapus dari SMSC dan tidak dikirimkan ke handphone tujuan. SMSCakan mengirim pesan informasi ke nomor pengirim yang menyatakan pesandikirim belum diterima atau gagal. Sebuah pesan SMS maksimal terdiri dari 140 bytes, dengan kata lain sebuah pesan bisa memuat 140 karakter 8-bit, 160 karakter 7-bit atau 70 karakter 16-bit untuk bahasa Jepang, bahasa Mandarin dan bahasa Korea yang memakai Hanzi (Aksara Kanji / Hanja). Selain 140 bytes ini ada data-data lain yang termasuk.Adapula beberapa metode untuk mengirim pesan yang lebih dari 140 bytes, tetapi seorang pengguna harus membayar lebih dari sekali. Gambar 2.11.Cara Kerja Sms Universitas Sumatera Utara 2.6. LCD (Liquid Cristal Display) LCD (Liquid Crystal Display) adalah suatu jenis media tampilan yang menggunakan kristal cair sebagai penampil utama. LCD sudah digunakan diberbagai bidang misalnya alal–alat elektronik seperti televisi, kalkulator, ataupun layar komputer.Pada postingan aplikasi LCD yang dugunakan ialah LCD dot-matrik dengan jumlah karakter 16x2. LCD sangat berfungsi sebagai penampil yang nantinya akan digunakan untuk menampilkan status kerja alat. Gambar 2.12.Bentuk Fisik LCD 16x2 2.6.1. Konfigurasi Pin LCD 16x2 Berikut ini adalah keterangan dari konfigurasi pin LCD 16x2 : • Pin 1 dan 2 Merupakan sambungan catu daya, Vss dan Vdd. Pin Vdd dihubungkan dengan tegangan positif catu daya, dan Vss pada 0V atau ground. Meskipun data menentukan catu 5 Vdc, menyediakan 6V dan 4.5V yang keduanya bekerja dengan baik, bahkan 3V cukup untuk beberapa modul. • Pin 3 Pin 3 merupakan pin kontrol Vee, yang digunakan untuk mengatur kontras display. • Pin 4 Pin 4 merupakan Register Select (RS), masukan yang pertama dari tiga command control input. Dengan membuat RS menjadi high, data karakter dapat ditransfer dari dan menuju modulnya. • Pin 5 Universitas Sumatera Utara Read/Write (R/W), untuk memfungsikan sebagai perintah write maka R/W low atau menulis karakter ke modul. R/W high untuk membaca data karakter atau informasi status dari register-nya. • Pin 6 Enable (E), input ini digunakan untuk transfer aktual dari perintah-perintah atau karakter antara modul dengan hubungan data. Ketika menulis ke display, data ditransfer hanya pada perpindahan high atau low. Tetapi ketika membaca dari display, data akan menjadi lebih cepat tersedia setelah perpindahan dari low ke high dan tetap tersedia hingga sinyal low lagi. • Pin 7-14 Pin 7 sampai 14 adalah delapan jalur data/data bus (D0 sampai D7) dimana data dapat ditransfer ke dan dari display. • Pin 16 Pin 16 dihubungkan kedalam tegangan 5 Volt untuk memberi tegangan dan menghidupkan lampu latar/Back Light LCD. 2.6.2. Karakteristik LCD 16x2 • Terdapat 16 x 2 karakter huruf yang bisa ditampilkan. • Setiap huruf terdiri dari 5x7 dot-matrix cursor. • Terdapat 192 macam karakter. • Terdapat 80 x 8 bit display RAM (maksimal 80 karakter). • Memiliki kemampuan penulisan dengan 8 bit maupun dengan 4 bit. • Otomatis reset saat tegangan dihidupkan. • Koneksi pengendalian yang digunakan adalah 4bit Data Interface. • Telah dilengkapi pengendalian Contrast dan Brightnees. • Telah disediakan kabel IDC 10 sehingga dapat langsung dihubungkan • Bekerja pada suhu 0oC sampai 55oC. 2.7. Bahasa Pemrograman Pemrograman Arduino mempunyai bahasa pemrograman sendiri yaitu bahasa pemrograman C/C++ yang telah disederhanakan, sehingga pemula pun bisa mempelajarinya dengan cukup mudah. Untuk membuat program Arduino dan Universitas Sumatera Utara mengupload ke dalam board Arduino, membutuhkan software Arduino IDE (Integrated Development Enviroment). Sementara dalam pembuatan alat deteksi kebocoran gas hidrogen ini juga menggunakan bahasa AT Command sebagai masukan data kedalam modem sms simcomm. 2.7.1. Bahasa C Bahasa C dikembangkan pada Lab Bell pada tahun 1978, oleh Dennis Ritchi dan Brian W. Kernighan. Pada tahun 1983 dibuat standar C yaitu stnadar ANSI ( American National Standards Institute ), yang digunakan sebagai referensi dari berbagai versi C yang beredar dewasa ini termasuk Turbo C.Dalam beberapa literature, bahasa C digolongkan bahasa level menenganh karena bahasa C mengkombinasikan elemen bahasa tinggi dan elemen bahasa rendah. Kemudahan dalam level rendah merupakan tujuan diwujudkanya bahasa C. pada tahun 1985 lahirlah pengembangan ANSI C yang dikenal dengan C++ (diciptakan oleh Bjarne Struostrup dari AT TLab). Bahasa C++ adalah pengembangan dari bahasa C, bahasa C++ mendukung konsep pemrograman berorientasi objek dan pemrograman berbasis windows. Sampai sekarang bahasa C++ terus brkembang dan hasil perkembangannya muncul bahasa baru pada tahun 1995 (merupakan keluarga C dan C++ yang dinamakan Java). Istilah prosedur dan fungsi dianggap sama dan disebut dengan fungsi saja. Hal ini karena di C++ sebuah prosedur pada dasanya adalah sebuah fungsi yang tidak memiliki tipe data kembalian (void).Hingga kini bahasa ini masih popular dan penggunaannya tersebar di berbagai platform dari windows sampai linux dan dari PC hingga main frame.Namun sebuah penemuan pastinya memiliki kelebihan dan kekurangan masing – masing. Ada pun kekurangan dan Kelebihan Bahasa C adalah sebagai berikut : a. Kelebihan bahasa C • Bahasa C tersedia hampir di semua jenis komputer/PC. • Kode bahasa C sifatnya adalah portable dan fleksibel untuk semua jenis komputer. Universitas Sumatera Utara • Bahasa C hanya menyediakan sedikit kata-kata kunci, hanya terdapat 32 kata kunci. • Proses executable program bahasa C lebih cepat. • Dukungan pustaka yang banyak. • Bahasa C adalah bahasa yang terstruktur. • Bahasa C termasuk bahasa tingkat menengah. Penempatan ini hanya menegaskan bahwa C bukan bahasa pemrograman yang berorientasi pada mesin, yang merupakan ciri bahasa tingkat rendah.Melainkanberorientasi pada obyek tetapi dapat dinterprestasikan oleh mesin dengan cepat, secepat bahasa mesin.Inilah salah satu kelebihan c yaitu memiliki kemudahan dalammenyusun programnya semudah bahasa tingkat tinggi namun dalam mengesekusi program secepat bahasa tingkat rendah. b. Kekurangan Bahasa C • Banyaknya operator serta fleksibilitas penulisan program kadangkadangmembingungkan pemakai. • Bagi pemula pada umumnya akan kesulitan menggunakan pointer. 2.7.2. AT Command AT-Command adalah perintah yang dapat diberikan kepada handphone atau GSM/CDMA modem untuk melakukan sesuatu hal, termasuk untuk mengirim dan menerima SMS.Dengan memprogram pemberian perintah ini di dalam mikrokontroler maka perangkat dapat melakukan pengiriman atau penerimaan SMS secara otomatis untuk mencapai tujuan tertentu.AT Command merupakan bahasa standar komunikasi dengan modem.AT command bukan merupakan bahasa pemrograman seperti pascal maupun C, melainkan merupakan kumpulan instruksi yang dimengerti oleh modem. AT Command ini dulunya diciptakan oleh perusahaan modem di Amerika Serikat (USA) yaitu Hayes, dan akhirnya diterima secara internasional sebagai Standar komunikasi modem. Secara harfiah kepanjangan dari 'AT' adalah Attention yang memiliki arti meminta 'perhatian' kepada modem untuk melaksanakan instruksi dari luar (eksternal). Jadi sebenarnya modem dapat diberikan instruksi dari luar untuk melaksanakan fungsi-fungsi tertentu. Universitas Sumatera Utara Komputer ataupun mikrokontroler dapat memberikan perintah ATCommand melalui hubungan kabel data serial ataupun bluetooth.AT Command ini sebenarnya adalah pengembangan dari perintah yang dapat diberikan kepada modem Hayes yang sudah ada sejak dulu. Dinamakan AT Command karena semua perintah diawali dengan karakter A dan T. Antar perangkat handphone dan GSM/CDMA modem bisa memiliki AT Command yang berbeda-beda, namun biasanya mirip antara satu perangkat dengan perangkat lain. Untuk dapat mengetahui secara persis maka kita harus mendapatkan dokumentasi teknis dari produsen pembuat handphone atau GSM/CDMA modem tersebut.Agar proses pemberian instruksi AT Command dapat berlangsung secara otomatis atau sesuai dengan kebutuhan kita diperlukan bahasa pemrograman yang dapat didesain sesuai kebutuhan. Sebenarnya kita bisa memberikan instruksi AT Command secara langsung melalui program Hyper Terminal dan sejenisnya.Namun perintah harus diketik secara manual setiap kali ingin memberikan perintah ke modem. Dalam membuat SMS Gateway, AT Command mutlak diperlukan untuk menginstruksikan modem agar melakukan proses kirim dan terima SMS. Sementara bahasa pemrograman yang digunakan sebenarnya bisa apa aja termasuk diantaranya Delphi, VB, PHP, Java, Dll. Yang terpenting disini adalah mengenkapsulasi AT Command ke dalam bahasa pemrograman yang akan digunakan.Sesuai dengan namanya, AT Command harus diawali dengan karakter 'AT' atau 'at' (tidak bersifat case sensitive).Contoh : • ATE (echo / mengulang instruksi agar tertampil dilayar) • ATD (dial / melakukan panggilan telepon, khusus untuk modem yang memliki fitur ini) • AT+CMGR (melihat produsen modem) • AT+CMGS (mengirim SMS) Secara umum, berdasarkan fungsinya AT Command dibagi menjadi empat, yaitu : • AT Command untuk mengeset parameter, misal AT+CMGF=1 (mengeset karakter SMS menjadi 'text mode') Universitas Sumatera Utara • AT Command yang digunakan untuk memerintahkan modem melaksanakan instruksi tertentu, misal : AT+CMGD=1 (menghapus SMS di index memori nomor 1) • AT Command yang digunakan untuk melihat konfigurasi, misal : AT+CGSN (melihat Serial Number modem), AT+CMGF? (melihat konfigurasi mode SMS) • AT Command untuk melihat settingan paramater yang dimiliki oleh suatu perintah AT Command, misal AT+CMGF=?, AT+CNMI=? 2.7.3. Tipe Data Tipe data merupakan suatu hal yang penting untuk kita ketahui pada saat belajar bahasa pemrograman.Kita harus dapat menentukan tipe data yang tepat untuk menampung sebuah data, baik itu data berupa bilangan numerik ataupun karakter.Hal ini bertujuan agar program yang kita buat tidak membutuhkan pemesanan kapling memori yang berlebihan. Seorang programmer yang handal harus dapat memilih dan menentukan tipe data apa yang seharusnya digunakan dalampembuatan sebuah program. Secara garis besar tipe data pada bahasa C dibagi menjadi beberapa bagian antara lain sebagai berikut : a. Tipe Data Karakter Sebuah karakter, baik itu berupa huruf atau angka dapat disimpan pada sebuah variabel yang memiliki tipe data char dan unsigned char. Besarnya data yang dapat disimpan pada variabel yang bertipe data char adalah (-127)- (127). Sedangkan untuk tipe data unsigned char adalah dari 0- 255. Pada dasarnya setiap karakter memiliki nilai ASCII (American Standard Code for Information Interchange), nilai inilah yang sebetulnya disimpan pada variabel yang bertipe data karakter ini. b. Tipe Data Bilangan Bulat Tipe data bilangan bulat atau dapat disebut juga bilangan desimal merupakan sebuah bilangan yang tidak berkoma. Pada bahasa C terdapat bermacam-macam tipe data yang dapat kita gunakan untuk menampung bilangan bulat. Kita dapat menyesuaikan penggunaan tipe data dengan terlebih dahulu memperhitungkan seberapa besar nilai yang akan kita simpan. Contohnya seperti Universitas Sumatera Utara berikut, kita akan melakukan operasi penjumlahan nilai 300 dan 100 dan hasilnya akan disimpan pada variabel C. Jika dilihat, hasil dari penjumlahan tersebut nilainya akan lebih besar dari 255 dan nilainya pasti positif, oleh karena itu sebaiknya kita menggunakan tipe data unsigned int (tidak bertanda). Namun berbeda halnya jika kita ingin melakukan operasi pengurangan -5 -300, jika dilihat hasilnya akan negatif maka selayaknya digunakan variabel dengan tipe data int. c. Tipe Data Bilangan Berkoma Pada bahasa C terdapat dua buah tipe data yang berfungsi untuk menampung data yang berkoma, tipe data tersebut adalah float dan double. Tipe data double dapat digunakan jika kita membutuhkan variabel yang dapat menampung tipe data berkoma yang bernilai besar. Tabel 2.2. Tipe Data Tipe Data Ukuran Jangkauan Nilai Bit 1 byte 0 atau 1 Char 1 byte -128 s/d 127 Unsigned Char 1 byte 0 s/d 255 Signed Char 1 byte -128 s/d 127 Int 2 byte -32.768 s/d 32.767 Short Int 2 byte -32.768 s/d 32.767 Unsigned Int 2 byte 0 s/d 65.535 Signed Int 2 byte -32.768 s/d 32.767 Long Int 4 byte -2.147.483.648 s/d 2.147.483.647 Unsigned Long Int 4 byte 0 s/d 4.294.967.295 Signed Long Int 4 byte -2.147.483.648 s/d 2.147.483.647 Float 4 byte 1.2*10-38 s/d 3.4*10+38 Double 4 byte 1.2*10-38 s/d 3.4*10+38 Universitas Sumatera Utara