BAB II LANDASAN TEORI
Dalam bab ini penulis akan membahas tentang komponen- komponen yang di gunakan dalam seluruh unit alat ini dari perangkat keras (hard ware) sampai peangkat lunak (sofeware) . Agar pembahasan tidak melebar dan menyimpang dari topic utama laporan ini,maka setiap komponen hanya di bahas sesuai fungsi nya pada masing- masing .
2.1 Perangkat Keras (Hard Ware) 2.1.1 Mikrokontroler ATMega8535 Mikrokontroler dapat dianalogikan sebagai sebuah sistem komputer yang dikemas dalam sebuah chip,artinya di dalam sebuah IC mikrokontroler sebetulnya sudah terdapat kebutuhan minimal agar mikroprosesor dapat bekerja,yaitu meliputi mikroprosesor,ROM,RAM,I/O dan clock seperti halnya yang dimiliki oleh sebuah PC.Mengingat kemasannya yang berupa sebuah chip dengan ukuran yang relatif lebih kecil , tentu saja spesifikasi dan kemampuan yang dimiliki oleh mikrokontroller akan menjadi lebih rendah bila dibandingkan dengan sistem komputer seperti PC baik dilihat dari segi kecepatannya. Tidak seperti system komputer, yang mampu menangani berbagai macam program aplikasi (misalnya pengolah kata, pengolah angka dan lain sebagainya), mikrokontroler hanya bisa digunakan untuk satu aplikasi tertentu saja.
19 Universitas Sumatera Utara
Meskipun dari sebuah kemampuan lebih rendah tetapi mikrokontroller memiliki kelebihan yang tidak bisa diperoleh pada sistem komputer yaitu,dengan kemasannya yang kecil dan kompak membuat mikrokontroller menjadi lebih fleksibel dan praktis digunakan terutama pada sistem-sistem yang relatif tidak terlalu kompleks atau tidak memerlukan bahan komputasi yang tinggi.
2.1.1,1 Arsitektur Mikrokontroler AVR ATmega8535 Mikrokontroller
AVR
merupakan
keluarga
mikrokontroller
RISC
(Reduced Instruction Set Computing) keluaran Atmel.Konsep arsitektur AVR pada mulanya dibuat oleh dua orang mahasiswa di Norwgian institute of Technology ( NTH ) yaitu Alf-Egil Bogen dan Vegard Wollan.Mikrokontroler ATMega8535 merupakan salah satu anggota mikrokontroller AVR 8-bit. AVR merupakan mikrokontroller dengan arsitektur Harvard dimana antara kode program dan data disimpan dalam memori secara terpisah. Umumnya arsitektur Havard ini menyimpan kode program dalam memori permanen atau semipermanen(non Volatille) Sedangkan data disimpan dalam memori tidak permanen(Volatile).ATMega8535 memiliki fitur yang cukup lengkap,mulai dari kapasitas
memori
program
dan
memori
data
yang
cukup
besar
,interupsi,timer/counter,PWM,USART,TWI,analog comparator,EEPROM internal dan juga ADC internal semuanaya ada dalam ATMega8535. Selain itu kemampuan kecepatan ekseskusi yang lebih tinggi menjadi alasan bagi banyak orang untuk beralih dan lebih memilih untuk menggunakan mikrokontroller jenis AVR dari pada pendahulu nya keluarga MCS-51.
Universitas Sumatera Utara
Secara garis besar, mikrokontroler ATMEGA8535 memiliki arsitektur harvard, yaitu memisahkan memori untuk kode program dan memori untuk data sehingga dapat memaksimalkan unjuk kerja dan pararelisme .Instruksi-instruksi dalam memori program dieksekusi dalam salah satu alur tunggal , dimana pada saat satu instruksi di kerjakan instruksi berikutnya sudah diambil dari memeori program. 32x 8bit register serba guna digunakan untuk mendukung opersi arithcmetic Logic Unit (ALU) yang dapat dilakukan dalam 1 siklus. 6 dari register serba guna dapat digunakan sebagai 3 buah register pointer 16- bit pada mode pengalamatan tak langsung untuk mengambil data pada ruang memory data.Hampir semua instruksi AVR ini memiliki format 16-bit(word).Selain register serba guna terdapat register lain yang tepetakan dengan teknik memory mapped I/O selebar 64 byte.Beberapa register ini digunakan untuk beberapa fungsi khusus antara lain sebagai register kontrol timer/counter,interupsi,ADC,USART,SPI,EEPROM dan Fungsi I/O lainnya.Register-register ini menempati memori pada alamat 0x20h-0x5fh.
Gambar 2.1 Arsitektur ATMega8535 Universitas Sumatera Utara
2.1.1.2 Fitur ATMega8535 Berikut ini adalah fitur-fitur yang dimiliki oleh ATMega8535: 1. 130 macam instruksi,yang hampir semuanya dieksekusi dalam satu siklus clock. 2. Kecepatan mencapai 16 MIPS dengan clock 16 MHZ. 3.
512 Byte internal EEPROM.
4. 32x8-bit register serba guna. 5. 8 Kbyte Flash memory,yang memiliki fasilitas In-System Programing. 6. 512 Byte SRAM 7. Programming Lock, fasilitas untuk mengamankan kode program. 8. 4 channel output PWM. 9. 8 channel ADC 10-Bit. 10. 2 Buah timer/counter 8-bit dan 1 buah timer/counter 16-bit. 11. Serial USART. 12. Master/Slave SPI serial interface. 13. Serial TWI atau 12 C. 14. On-Chip Analog comparator.
2.1.1.3 Konfigurasi Pin ATMega8535 Mikrokontroler ATMega8535 memiliki 40 pin untuk model PDIP ditunjukkan pada Gambar 2.2, dan 44 pin untuk model TQFP dan PLCC. Namanama pin pada mikrokontroler ini adalah : 1. VCC : merupakan pin yang berfungsi sebagai pin masukan catu daya digital. Universitas Sumatera Utara
2. GND : merupakan pin ground untuk catu daya digital. 3.
Port A (PA0...PA7) : merupakan pin I/O 8bit dua arah(bidirectional) dan pin masukan 8 chanel ADC.
4. Port B (PB0 – PB7) : merupakan akan pin I/O 8 bit dua arah (bidirectional)dengan resistor pull-up internal dan pin fungsi khusus, yaitu sebagai Timer/Counter, komperator analog dan SPI. 5.
Port C (PC0 – PC7) : merupakan pin I/O 8bit dua arah (bidirectional)dan pin fungsi khusus, yaitu TWI, komperator analog, input ADC dan Timer Osilator.
6.
Port D (PD0 – PD7) : merupakan pin I/O 8 bit dua arah(bidirectional) dan pin fungsi khusus, yaitu komperator analog, interupsi eksternal dan komunikasi serial.
7. RESET : merupakan pin yang digunakan untuk mereset mikrokontroler. 8. XTAL1 :merupakan input ke penguat osilator pembalik dan input ke internal clock. 9.
XTAL2 : merupakan out put dari penguat oslator pembalik.
10. AVCC : merupakan pin masukan tegangan untuk ADC yang terhubung ke portA. 11. AREF : merupakan pin tegangan referensi analog ADC.
Universitas Sumatera Utara
Gambar 2.2 Konfigurasi Pin ATMega8535
2.1.1.4 Deskripsi pin-pin pada mikrokontroler ATMega8535 : 1. Port A Merupakan 8-bit dua arah bi-directional port I/O,dengan menggunakan resistor pull-up internal dimana setiap pinnya dapat diatur per bit. Output buffer Port A dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port A (DDRA) harus disetting terlebih dahulu sebelum Port A digunakan. Bit-bit DDRA diisi 0 jika ingin memfungsikan pin-pin port A yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Selain itu, kedelapan pin port A juga digunakan untuk masukan8 channel ADC.
2. Port B Merupakan 8-bit dua arah(bi-directional) port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port B Universitas Sumatera Utara
dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port B (DDRB) harus disetting terlebih dahulu sebelum Port B digunakan. Bit-bit DDRB diisi 0 jika ingin memfungsikan pin-pin port B yang bersesuaian sebagai input, atau diisi 1 jika sebagai output.Selain sebagai port I/O 8 bit port B juga dapat difungsikan secara individu sebagai berikut: 1. PB7: SCK ( SPI Bus Serial Clock) 2. PB6: MISO( SPI Bus Master Input/ Slave Out put) 3. PB5: MOSI( SPI Bus Master Output/Slave Input). 4. PB4: SS (SPI Slave Select Input) 5. PB3: AIN1(Analog Comparator Negatif Input) OC0 (Out put Compare Timer/counter 0) 6. .PB2: AIN0 (Analog Comparator Positif Input) INT2 (External Interrupt 2 Inpt) 7. PB1:T1 (Timer/Counter 1 External Counter Input) 8. PB0:T0 (Timer/Counter 0 External Counter Input) XCK (USART External Clock Input/Output)
3. Port C Merupakan port I/O 8-bit dua arah (bi-directional). Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port C dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port C (DDRC) harus disetting terlebih dahulu sebelum Port C digunakan. Bit-bit DDRC diisi 0 jika ingin memfungsikan pin-pin Universitas Sumatera Utara
port C yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Selain itu, Port C juga difungsikan secara individu sebagai berikut: 1. PC7: TOSC2 (Timer Oscillator 2) 2. PC6: TOSC1 (Timer Oscillator 1) 3. PC1: SDA (Serial Data Input/Output) 4. PC0: SCI (Serial Clock)
4. Port D Merupakan Port I/O 8-bit dua arah (bi-directional) . Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port D dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port D (DDRD) harus disetting terlebih dahulu sebelum Port D digunakan. Bit-bit DDRD diisi 0 jika ingin memfungsikan pin-pin port D yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Selain itu, pin-pin port D juga memiliki untuk fungsi-fungsi alternatif khusus sebagai berikut: 1. PD7: OC2 ( Ouput Compare Timer/Counter 1) 2. PD6: ICP1 ( Timer Counter 1 input capture) 3. PD5: OC1A ( Output Compare A Timer /Counter1) 4. PD4: OC1B ( Output Compare B Timer/Counter 1) 5. PD3: INT1 ( External Interrupt 1 Input) 6. PD2: INT0 ( External interrupt 0 Input) 7. PD1: TXD ( USART Transmit) 8. PD0: RXD ( USART Receive) Universitas Sumatera Utara
5. RESET RST pada pin 9 merupakan pin reset yang akan bekerja bira diberi pulsa rendah (aktif Low) selama minimal 1,5us.
6. XTAL2 Merupakan out put dari penguat dari osilator pembalik
7. XTAL1 Merupakan input ke penguat osilator pembalik dan input ke internal clock.
8. AVcc Avcc adalah pin masukan catu daya yang digunakan untuk masukan analog ADC yang terhubung ke Port A. Kaki ini harus secara eksternal terhubung ke Vcc melalui lowpass filter.
9. AREF AREF adalah pin masukan referensi analog untuk ADC. Untuk operasionalisasi ADC, suatu level tegangan antara AGND dan Avcc harus dibeikan ke kaki ini.
10. AGND AGND adalah kaki untuk analog ground. Hubungkan kaki ini ke GND, kecuali jika board memiliki anlaog ground yang terpisah.
Universitas Sumatera Utara
2.1.1.5 Peta Memory ATMega8535 Mikrokontroller ATMega8535 memiliki 3 jenis memori yaitu memori program, memori data dan memori EEPROM.Ketigannya memiliki ruang-ruang tersendiri dan terpisah seperti terlihat pada gambar 2.5
Gambar 2.3 Organisasi memori ATMega8535
1.Memori Program ATMega8535 memiliki kapasitas memori program sebesar 8 Kbyte yang terpetakan dari alamat 0000h – 0FFFh dimana masing-masing alamat memiliki lebar data sebesar 16 bit.Sehingga organisasi memori program seperti ini sering dituliskan dengan 4K x 16 bit.Memori program ini juga terbagi menjadi dua yaitu program boot dan juga bagian program aplikasi.
2.Memori Data
Universitas Sumatera Utara
ATMega8535 memiliki kapasitas memori data sebesar 608 byte yang terbagi menjadi 3 bagian yaitu register serba guna,register I/O dan SRAM. 32 byte alamat terendah digunakan untuk register serbaguna yaitu R0 – R31. 64 byte berikut nya digunakan untuk register I/O yang digunakan untuk mengatur fasilitas timer /counter ,interrupsi,ADC,USART,SPI,EEPROM dan port I/O seperti Port A, Port B, Port C, dan Port D. Selanjutnya 512 byte diatasnya digunakan untuk memory data SRAM . Jika register-register I/O diatas diakses seperti mengakses data pada memori ( Jika kita menggunakan instruksi LD atau ST ) maka register I/O diatas menempati alamat 0020-005F. Tetapi jika register-register I/O diakses seperti mengakses I/O pada umumnya ( menggunakan instruksi IN/ IOUT) maka register I/O diatas menempati alamat memori 0000h – 003Fh.
Gambar 2.4 (a) Register I/O Sebagai Memori Data, (b) Register I/O sebagai I/O
Universitas Sumatera Utara
3.Memori EEPROM ATMega8535 memiliki memori EEPROM sebesar 512 byte yang terpisah dari memori program maupun dari memori data. Memori EEPROM ini hanaya dapat diakses dengan menggunakan register-register I/O yaitu register EEPROM Addres ( EEARH-EEARL),register EEPROM Data (EEDR) dan register EEPROM control ( EECR). Untuk megakses memory EEPROM ini diperlakukan sperti mengakses data eksternal sehingga waktu dari eksekusi relatif lebih lama dibadingkan jika kita mengakses data dari SRAM.
2.1.1.6 Status Register ( SREG) Register SREG digunakan untuk menyimpan informasi dari hasil operasi aritmatika yang terakhir . Informasi-informasi dari register SREG dapat digunakan untuk mengubah alur program, yang sedang dijalankan dengan mengunakan instruksi percabangan . Data SREG akan selalu berubah jika setiap instruksi atau operasi pada ALU dan datanya tidak otomatis tersimpan apabila terjadi instruksi percabangan baik karena instruksi maupun lompatan.
Gambar 2.5 Status Register
Status Register ATMega8535 :
Bit 7 – I : Global Interrupt Enable
Universitas Sumatera Utara
Bit I digunakan untuk mengaktifkan interrupsi secara umum ( interrupsi global) .Jika bit I benilai „1‟ maka interrupsi secara umum akan aktif , tetapi jika bernilai „0‟ maka tidak ada satupun interrupsi yang aktif.Pengaturan jenis-jenis interrupsi apa sja yang akan aktif dilakukan dengan mengatur register kontrol yang sesuai dengan jenis interrupsi tersebut, dengan terlebih dahulu mengaktifkan interupsi global ,yaitu bit I diset‟1‟.
Bit 6 – T : Bit Copy Storage
Bit T digunakan untuk mementukan bit sumber atau bit tujuan pada instruksi bit copy.Pada instruksi BST ,data akan dicopy dari register ke bit T( Bit T sebagai tujuan) sedangkan pada instruksi BLD, bit T akan di copy ke register ( Bit T Sebagai Sumber).
Bit 5 – H : Half carry Flag
Bit H digunakan untuk menunjukkan ada tidaknya setengah carry pada operasi aritmatika BCD ,yaitu membagi satu byte data menjadi dua bagian ( masingmasing 4 bit) dan masing-masing bagian dianggap sebagai 1 digit desimal. 4.Bit 4 – S: Sign bit Bit S merupakan kombinasi antara bit V dan bit N, yaitu dengan meng-XOR-kan bit V dan bit N.
Bit 3 – V : Two‟s Complement over flow flag
Universitas Sumatera Utara
Bit V digunakan untuk mendukun operasi aritmatika komplemen 2.Jika terjadi luapan pada operasi aritmatika bilangan komplemen 2 maka akan menyebabkan bit V bernilai „1‟.
Bit 2 - N : Negative Flag
Bit N digunakan untuk menunjukkan apakah hasil sebuah operasi aritmatika ataupun operasi logika bernilai negatif atau tidak.Jika hasilnya negatif maka bit N bernilai „1‟ dan jika hasilnya bernilai positif maka bit N bernila‟0‟.
Bit 1 - Z : Zero Flag
Bit Z digunakan untuk menunjukkan hasil operasi aritmatika ataupun operasi logika apakah bernilai nol atau tidak.Jika hasilnya nol maka bit Z bernilai „1‟ dan jika hasilnya tidak nol maka bit Z bernilai‟0‟.
Bit 0 – C : Carry flag
Bit C digunakan untuk menunjukkan hasil operasi aritmatika ataupun logika apakah ada carry atau tidak.Jika ada carry maka bit C bernilai‟1‟ dan jikatidak ada carry maka bit C akan bernilai „0‟.
2.1.1.7 Register Serba guna ( General Purpose Register) ATMega8535 memiliki 32 byte register serbaguna yang terletak pada awal alamat RAM. Dari 32 byte register serba guna 6 byte terakhir juga digunakan sebagai register pointer yaitu register pointer X,register pointer Y dan Register pointer Z. Universitas Sumatera Utara
Gambar 2.6 Register Serba guna
2.1.1.8 USART ( Universal Synchronous and Asynchoronous Serial Receiver And Transmitter) Universal Synchronous Serial Receiver and Transmitter (USART) juga merupakan salah satu metode komunikasi serial yang dimiliki oleh ATMega8535. USART merupakan komunikasi yang memiliki fleksibilitas yang tinggi, yang dapat kita gunakan untuk melakukan transfer data baik antara mikrokontroler maupun dengan modul-modul eksternal termasuk PC yang memiliki fitur UART. USART memungkinkan transmisi data baik secara synchronous maupun asynchronous sehingga dengan demikian USART pasti kompatibel dengan UART.
Pada
komunikasi
ATMega8535,pengaturan
baik
Synchronous
maupun
secara
umum
Asynchronous
pengaturan adalah
mode
sama
,
perbedaannya hanya terletak pada sumber clocknya saja. Pada mode Asynchronous masing – masing Peripheral memiliki sumber clock sendiri sedang kan pada mode Synchronous hanya ada satu sumber clock yang digunakan secra Universitas Sumatera Utara
bersama- sama. Dengan demikian secara hardware untuk mode Asynchronous hanya membutuhkan 2 pin yaitu TXD dan RXD sedangkan untuk mode Synchronous harus 3 pin yaitu TXD,RXD dan XCK.
2.1.2 Sensor PIR (Passive Infra Red) Sensor gerak PIR (Passive Infra Red) adalah sensor yang berfungsi untuk pendeteksi
gerakan
yang
bekerja
dengan
cara
mendeteksi
adanya
perbedaan/perubahan suhu sekarang dan sebelumnya. Sensor gerak menggunakan modul pir sangat simpel dan mudah diaplikasikan karena Modul PIR hanya membutuhkan tegangan input DC 5V cukup efektif untuk mendeteksi gerakan hingga jarak 5 meter. Ketika tidak mendeteksi gerakan, keluaran modul adalah LOW. Dan ketika mendeteksi adanya gerakan, maka keluaran akan berubah menjadi HIGH. Adapun lebar pulsa HIGH adalah ±0,5 detik. Sensitifitas Modul PIR yang mampu mendeteksi adanya gerakan pada jarak 5 meter memungkinkan kita membuat suatu alat pendeteksi gerak dengan keberhasilan lebih besar.
Gambar 2.7 Bentuk Sensor Gerak PIR (Passive Infra Red) Dengan output yang hanya memberikan 2 logika High dan Low ini kita dapat membuat aplikasi sensor gerak yang berfariatif. Misal kita ingin langsung Universitas Sumatera Utara
aplikasikan pada alarm, kita tinggal membuat rangkaian driver untuk mengaktifkan alarm tersebut. Atau misal ingin digunakan untuk mengaktifkan lampu, maka tinggal di buat driver untuk memberikan sumber tegangan ke lampu. Modul sensor gerak PIR memiliki output yang langsung bbisa di hubungkan dengan komponen digital TTL atau CMOS dan juga dapat lansung dihubungkan ke mikrokontroler. Efektifitas
pendeteksian
gerakan
menggunakan
sensor
gerak
ini
dipengaruhi oleh faktor penempatan sensor gerak PIR tersebut. Posisi sensor gerak harus diletakan pada lokasi yang dapat membaca semua gerakan yang ada dalam ruangan atau daerah yang dimonitor oleh sensor gerak PIR.
2.1.2.1 Spesifikasi sensor PIR
Type: Digital
Supply Voltage:3?5V
Current:50?A
Working temperature:0???70?
Output level(HIGH):4V
Output level(LOW):0.4V
Detect angle:110 Degree
Detect distance:7 meters
Universitas Sumatera Utara
Size:28mm×36mm
Weight:25g
2.1.2.2 Bagian-bagian dari PIR terdiri dari beberapa bagian yaitu : 1. Fresnel Lens Lensa Fresnel pertama kali digunakan pada tahun 1980an. Digunakan sebagai lensa yang memfokuskan sinar pada lampu mercusuar. Penggunaan paling luas pada lensa Fresnel adalah pada lampu depan mobil, di mana mereka membiarkan berkas parallel secara kasar dari pemantul parabola dibentuk untuk memenuhi persyaratan pola sorotan utama. Namun kini, lensa Fresnel pada mobil telah ditiadakan diganti dengan lensa plain polikarbonat. Lensa Fresnel juga berguna dalam pembuatan film, tidak hanya karena kemampuannya untuk memfokuskan sinar terang, tetapi juga karena intensitas cahaya yang relative konstan diseluruh lebar berkas cahaya.
2. IR Filter IR Filter dimodul sensor PIR ini mampu menyaring panjang gelombang sinar infrared pasif antara 8 sampai 14 mikrometer, sehingga panjang gelombang yang dihasilkan dari tubuh manusia yang berkisar antara 9 sampai 10 mikrometer ini saja yang dapat dideteksi oleh sensor. Sehingga Sensor PIR hanya bereaksi pada tubuh manusia saja.
Universitas Sumatera Utara
3. Pyroelectric sensor Seperti tubuh manusia yang memiliki suhu tubuh kira-kira 32 derajat celcius, yang merupakan suhu panas yang khas yang terdapat pada lingkungan. Pancaran sinar inframerah inilah yang kemudian ditangkap oleh Pyroelectric sensor yang merupakan inti dari sensor PIR ini sehingga menyebabkan Pyroelectic sensor yang terdiri dari galium nitrida, caesium nitrat dan litium tantalate menghasilkan arus listrik. Mengapa bisa menghasilkan arus listrik? Karena pancaran sinar inframerah pasif ini membawa energi panas. Material pyroelectric bereaksi menghasilkan arus listrik karena adanya energy panas yang dibawa oleh infrared pasif tersebut. Prosesnya hampir sama seperti arus listrik yang terbentuk ketika sinar matahari mengenai solar cell.
4. Amplifier Sebuah sirkuit amplifier yang ada menguatkan arus yang masuk pada material pyroelectric.
5. Comparator Seterlah dikuatkan oleh amplifier kemudian arus dibandingkan oleh comparator sehingga mengahasilkan output.
Universitas Sumatera Utara
Gambar 2.8 blok diagram sensor PIR
2.1.2.3 Cara kerja pembacaan sensor PIR Pancaran infra merah masuk melalui lensa Fresnel dan mengenai sensor pyroelektrik, karena sinar infra merah mengandung energi panas maka sensor pyroelektrik akan menghasilkan arus listrik. Sensor pyroelektrik terbuat dari bahan galium nitrida (GaN), cesium nitrat (CsNo3) dan litium tantalate (LiTaO3). Arus listrik inilah yang akan menimbulkan tegangan dan dibaca secara analog oleh sensor. Kemudian sinyal ini akan dikuatkan oleh penguat dan dibandingkan oleh komparator dengan tegangan referensi tertentu (keluaran berupa sinyal 1-bit). Jadi sensor PIR hanya akan mengeluarkan logika 0 dan 1, 0 saat sensor tidak mendeteksi adanya pancaran infra merah dan 1 saat sensor mendeteksi infra merah. Sensor PIR didesain dan dirancang hanya mendeteksi pancaran infra merah dengan panjang gelombang 8-14 mikrometer. Diluar panjang gelombang tersebut sensor tidak akan mendeteksinya. Untuk manusia sendiri memiliki suhu badan yang dapat menghasilkan pancaran infra merah dengan panjang gelombang antara 9-10 mikrometer (nilai standar 9,4 mikrometer), panjang gelombang
Universitas Sumatera Utara
tersebut dapat terdeteksi oleh sensor PIR. (Secara umum sensor PIR memang dirancang untuk mendeteksi manusia).
2.1.2.4 Jarak pancar sensor PIR Sensor PIR memiliki jangkauan jarak yang bervariasi, tergantung karakteristik senso3r. Proses penginderaan sensor PIR dapat digambarkan sebagai berikut:
Gambar 2.9 Jarak Pancar Sensor PIR
Pada umumnya sensor PIR memiliki jangkauan pembacaan efektif hingga 5 meter, dan sensor ini sangat efektif digunakan sebagai human detector.
2.1.3 Modem GSM Modem adalah sebuah alat yang dapat membuat komputer terkoneksi dengan internet melalui line telepon standar. Modem banyak digunakan komputer rumah dan jaringan sederhana untuk dapat berkomunikasi dengan jutaan komputer lain dalam lalu lintas internet. Kata Modem itu sendiri merupakan kependekan dari Modulator Demodulator. Ini berarti Modem bekerja dengan cara
Universitas Sumatera Utara
mengubah informasi digital dari komputer pengirim ke dalam bentuk sinyal analog yang ditransmisikan melaluli line telepon. Selanjutnya Modem pada komputer penerima akan mengubah ulang sinyal analog ke sinyal digital. Modem GSM adalah sebuah perangkat Modem Wireless Plug and Play dengan konektivitas GSM/GPRS untuk aplikasi-aplikasi machine to machine. GSM Modul atau Modem GSM adalah jenis khusus dari modem yang menerima kartu SIM, dan mengoperasikan selama berlangganan ke operator mobile, seperti ponsel. Modem GSM dihubungkan dengan suatu interface yang memungkinkan aplikasi seperti SMS untuk mengirim dan menerima pesan melalui Modem. Beberapa fungsi kegunaan modem ini di masyarakat adalah antara lain: · SMS Broadcast application · SMS Quiz application · SMS Polling · SMS auto-reply · M2M integration · Aplikasi Server Pulsa · Telemetri · Payment Point Data
Pada pembuatan proyek ini, digunakan Modem GSM Serial Wavecom Fastrack M1306B. Untuk Modem seri ini memiliki dua type konektor yaitu serial dan USB[12].
Universitas Sumatera Utara
Gambar 2.10 Modem GSM Fastrack M1306B Spesifikasi modem WAVECOM FASTRACK M1306B: · Dual-band GSM 900/1800MHZ & GPRS Class 10 · GSM Dual Band antenna · Power Supply with 4 pin connector (untuk serial) · Standard USB 2.0 interface (untuk USB) · Input Voltage : 5V-32V · Maximum transmitting speed 253KBps · Support AT-Command · Dimensi : 74×54×25mm
2.1.3.1 AT-Command AT-Command adalah singkatan dari Attention Command. AT Command adalah perintah yang digunakan dalam komunikasi dengan serial port. Pada awalnya standar perintah ini untuk modem-modem telepon PSTN, akan tetapi perintah ini sekarang dikembangkan juga untuk modem-modem GSM. Perintah ATCommand dapat diberikan kepada handphone atau GSM/CDMA modem untuk Universitas Sumatera Utara
melakukan sesuatu hal, termasuk untuk mengirim dan menerima SMS. Dengan memberikan perintah ini di dalam komputer/mikrokontroller maka perangkat kita dapat melakukan pengiriman atau penerimaan SMS secara otomatis untuk mencapai tujuan tertentu. Untuk memulai suatu perintah AT-Command, diperlukan prefiks “AT” atau “at” dalam setiap perintah AT-Command.[6] Tabel 2.1 Tabel Set AT-Command
2.1.3.2 Short Message Service (SMS) Short Message Service (SMS) merupakan salah satu tipe Instant Messaging (IM) yang memungkinkan user untuk bertukar pesan singkat. SMS dihantarkan pada channel signal Global System for Mobile Communication (GSM). Dewasa ini perkembangan teknologi yang sangat pesat membuat teknologi SMS ini banyak digemari masyarakat karena teknologi ini bersifat praktis, murah dan mudah Universitas Sumatera Utara
untuk digunakan. Sebuah pesan SMS maksimal terdiri dari 140 bytes, yang berarti dapat 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). User pun dapat mengirim pesan SMS yang lebih dari 140 bytes dengan catatan membayar lebih dari sekali biaya kirim SMS. [5] 21 SMS menjamin pengiriman pesan oleh jaringan, jika terjadi kegagalan maka disimpan di jaringan atau yang disebut SMS Center (SMSC). Di SMSC pesan disimpan dan dicoba untuk mengirimkannya selama beberapa kali. Batas waktu yang telah ditentukan untuk menyimpannya biasanya sekitar 1 hari atau 2 hari, lalu pesan dihapus.
2.1.3.3 Database Database merupakan sekumpulan data yang terintegrasi yang diorganisasi untuk memenuhi kebutuhan pemakai untuk keperluan organisasi yang dimana dapat dipakai hanya sekali atau berulang yang dimana dalam bentuk digital. Salah satu komponen penting dalam penggunaan database adalah DataBase Management System (DBMS). DBMS ini bertugas untuk menangani semua akses ke database dan bertanggug jawab untuk menerapkan pemeriksaan otorisasi dan prosedur validasi. 2.1.3.4 Microsoft Office Access Salah satu software atau aplikasi yang banyak digunakan untuk membuat suatu database sederhana adalah Microsoft Access. Micosoft Access merupakan Universitas Sumatera Utara
software yang dikeluarkan oleh microsoft untuk membuat aplikasi database. Sofware ini cocok untuk kalangan industri kecil atau rumah tangga, karena kapasitas datanya yang mencapai 4 GB. Program ini banyak dipakai karena kemudahannya dalam mengolah database.
2.1.4 Komunikasi Serial Pada PC / laptop standar, biasanya terdapat sebuah port untuk komunikasi serial. Pada prinsipnya, komunikasi serial ialah komunikasi dimana pengiriman data dilakukan per bit, sehingga lebih lambat dibandingkan komunikasi parallel seperti pada port printer yang mampu mengirim 8 bit sekaligus dalam sekali detak. Beberapa contoh penerapan komunikasi serial ialah mouse, scanner dan sistem akuisisi data yang terhubung ke port serial COM1/COM2. Sistem antar muka komunikasi serial RS232 sering digunakan sebagai antar muka antara komputer dengan mikrokontroler. Agar level tegangan data serial dari mikrokontroler setara dengan level tegangan komunikasi port serial PC, diperlukan MAX232 untuk mengubah ke tegangan TTL/CMOS logic level RS232. MAX232 menggunakan sistim komunikasi simplex sehingga difungsikan untuk mengubah dari arus dan tegangan logika TTL menjadi arus tegangan logika komputer (RS232).
2.1.4.1 Karakteristik Sinyal Port Serial Standar sinyal komunikasi serial yang banyak digunakan adalah Standar RS232 yang dikembangkan oleh Electronic Industri Association (EIA/TIA) yang pertama kali dipublikasikan pada tahun 1962.Ini terjadi jauh sebelum IC TTL Universitas Sumatera Utara
populer sehingga sinyal ini tidak ada hubungan sama sekali dengan level tegangan IC TTL. Standar ini hanya menyangkut komunikasi antara (Data Terminal Equipment – DTE) dengan alat – alat pelengkap komputer (Data Circuit Terminating Equipment – DCE). Standar sinyal RS232 memiliki ketentuan level tegangan sebagai berikut : • Logika 1 disebut ‘Mark’ terletak antara -3 Volt sampai -25 Volt • Logika ‘0’ disebut ‘space’ terletak antara +3 Volt samapai +25 Volt. • Daerah tegangan antara -3 Volt sampai +3 Volt adalah invalid level, yaitu daerah tegangan yang tidak memiliki level logika pasti sehingga harus dihindari. Demikian juga level tegangan dibawah -25 Volt dan diatas +25 Volt juga harus dihindari karena bisa merusak line driver pada saluran RS232 Gambar dibawah adalah contoh level tegangan RS232 pada pengiriman huruf “A” dalam format ASCII tanpa bit paritas.
Gambar 2.11 Level Tegangan RS232 pada Pengiriman Huruf “A” Tanpa Bit Paritas.
2.1.4.2 Port Komunikasi Serial
Universitas Sumatera Utara
Komunikasi serial membutuhkan port sebagai saluran data. Berikut tampil port serial DB9 yang umum digunakan sebagai port serial
Gambar 2.12 Port DB9 Jantan
Gambar 2.13 Port DB9 Betina Untuk menghubungkan antara 2 buah PC, biasanya digunakan format null mode, dimana pin TxD dihubungkan dengan RxD pasangan, pin Sinyal ground (5) dihubungkan dengan SG di pasangan, dan masing masing pin DTR, DSR dan CD dihubung singkat, dan pin RTS dan CTS dihubung singkat di setiap devais.
Universitas Sumatera Utara
Gambar.2..14 Susunan Pin Konektor DB9
Tabel 2.2 Fungsi Susunan Konektor DB9
Untuk dapat menggunakan port serial harus diketahui dahulu alamat dari port serial tersebut. Biasanya tersedia dua port serial pada CPU, yaitu COM1 dan COM2. Base Address COM1 biasanya 1016 (3F8h) dan COM2 biasanya 760 Universitas Sumatera Utara
(2F8h). Alamat tersebut adalah alamat yang biasa digunakan, tergantung komputer yang digunakan.Tepatnya kita bisa melihat pada peta memori tempat menyimpan alamat tersebut, yaitu memori 0000.0400h untuk COM1 dan 0000.0402h untuk COM2. Berikut adalah nama – nama register yang digunakan beserta alamatnya.
Tabel 2.3 Nama – Nama Register
Keterangan Register • RX Buffer , digunakan untuk menampung dan menyimpan data dari DCE. • TX Buffer , digunakan untuk menampung dan menyimpan data yang akan dikirim ke port serial. • Baud Rate Divisor Latch LSB , digunakan untuk menampung byte bobot rendah untuk pembagi clock pada IC UART agar didapat baud rate yang tepat. • Baud Rate Divisor Latch MSB , digunakan untuk menampung byte bobot tinggi untuk pembagi clock pada IC UART sehingga total angka pembagi adalah 4 byte yang dapat dipilih dari 0001h sampai FFFFh.
Berikut adalah tabel angka pembagi yang sering digunakan : Universitas Sumatera Utara
Tabel 2.4 Angka Pembagi
2.1.4.3 Koneksi Ke RS232 Port Koneksi TXD dan RXD MCU MCS-51 dengan port serial komputer selain level tegangannya harus disesuaikan, cara koneksikan juga perlu diperhatikan. Ada semacam protokol komunikasi, bila DTE hendak menghubungi DCE atau sebaliknya, untuk ’DCE’ yang berupa MCU MCS-51 ini, protokol perlu diakali, lebih sederhana prosesnya, sehingga tidak memrlukan software yang rumit, tetapi masih tetap handal. Selain sinyal data, terdapat sinyal – sinyal protokol komunikasi serial pada komputer dan dihubungkan keluar melalui konektor male DB9 (komputer baru) dan DB25 (Komputer lama), nama sinyal – sinyal tersebut adalah: • RD, Receive Data (RXD). • TD, Transmit Data • SG, Signal Ground • DTR, Data Terminal Ready • DSR, Data Set Ready • CD, Carrier Detect Universitas Sumatera Utara
• RTS, Request To Send • CTS, Clear To Send.
Tabel 2.5 Koneksi Null Mode
Komunikasi asinkron yang sederhana yang disebut sebagai null modem, adalah dengan menghubungkan pin- pin DTR, DSR dan CD serta RTS dengan CTS. Sedangkan sinyal data input masuk RD dan sinyal transmit output adalah TD. Konvertor level untuk saat ini tersedia dalam bentuk ic, contoh adalah ICL232 dari Harris semikonduktor, MAX232 dari Maxim.
Gambar 2.15 IC MAX232 Universitas Sumatera Utara
Protokol standar yang mengatur komunikasi melalui serial port disebut RS-232 (Recommended Standard-232) yang dikembangkan oleh EIA (Electronic Industries
Association).
Interfacing
RS-232
menggunakan
komunikasi
asyncronous di mana sinyal clock tidak dikirimkan bersamaan dengan data. Setiap word data disingkronisasikan menggunakan sebuah start bit dan sebuah stop bit. Jadi, sebuah frame data terdiri dari sebuah start bit, diikuti bit-bit data dan diakhiri dengan stop bit. Jumlah bit data yang digunakan dalam komunikasi serial adalah 8 bit. Encoding yang digunakan dalam komunikasi serial adalah NRZ (Non-Returnto-Zero), di mana bit 1 dikirimkan sebagai high value dan bit 0 sebagai low value. Komunikasi serial merupakan hal yang penting dalam system embedded, karena dengan
komunikasi
serial
kita
dapat
dengan
mudah
menghubungkan
mikrokontroler dengan devais lainnya. Port serial pada mikrokontroler terdiri atas dua pin yaitu RXD dan TXD. RXD berfungsi untuk mengirim data dari komputer atau perangkat lainnya, standard komunikasi serial untuk computer adalah RS232, RS-232 mempunyai standard tegangan yang berbeda dengan serial port mikrokontroler, sehingga agar sesuai dengan RS-232 maka dibutuhkan suatu rangkaian level converter, IC yang digunakan bermacam-macam, tapi yang paling mudah dan sering digunakan ialah IC MAX232/HIN232. Pada prinsipnya, komunikasi serial ialah komunikasi dimana pengiriman data dilakukan per bit, sehingga lebih lambat dibandingkan komunikasi parallel seperti pada port printer yang mampu mengirim 8 bit sekaligus dalam sekali detak. Beberapa contoh komunikasi serial ialah mouse, scanner, dan system akuisisi data yang terhubung ke port COM1/COM2.
Universitas Sumatera Utara
Jika ingin menggunakan mikrokontroler untuk berkomunikasi dengan komputer atau device lainnya maka Rx dan Tx tidak bisa langsung dihubungkan begitu saja dengan device tersebut karena level sinyal yang digunakan berbeda-beda. Contohnya komunikasi serial untuk komputer menggunakan sinyal RS232 yaitu sinyal yang gelombang level sinyalnya antara +25V sampai -25V. Oleh karena itu, jika ingin diharapkan terjadi komunikasi antara mikrokontroler dengan komputer dibutuhkan sebuah buffer yang dapat mengubah sinyal level TTL dari mikrokontroler menjadi sinyal level RS232. Salah satu Buffer yang sering digunakan adalah IC MAX232CPE dan menggunakan transistor NPN maupun PNP.
Gambar 2.16 Merupakan Penggunaan Ic Max 232 Dalam Rangkaian Sebagai Komunikasi Serial. 2.1.5. LCD (Liquid Crystal Display) LCD merupakan salah satu perangkat penampil yang sekarang ini mulai banyak digunakan. Penampil LCD mulai dirasakan menggantikan fungsi dari penampil CRT (Cathode Ray Tube), yang sudah berpuluh-puluh tahun digunakan manusia sebagai penampil gambar/text baik monokrom (hitam dan putih), Universitas Sumatera Utara
maupun yang berwarna. Teknologi LCD memberikan keuntungan dibandingkan dengan teknologi CRT, kaena pada dasarnya, CRT adalah tabung triode yang digunakan
sebelum
transistor
ditemukan.
Beberapa
keuntungan
LCD
dibandingkan dengan CRT adalah konsumsi daya yang relative kecil, lebih ringan, tampilan yang lebih bagus, dan ketika berlama-lama di depan monitor, monitor CRT lebih cepat memberikan kejenuhan pada mata dibandingkan dengan LCD.
Gambar 2.17 LCD 2x16
LCD memanfaatkan silicon atau gallium dalam bentuk Kristal cair sebagai pemendar cahaya. Pada layar LCD, setiap matrik adalah susunan dua dimensi piksel yang dibagi dalam baris dan kolom. Dengan demikian, setiap pertemuan baris dan kolom adalah sebuah LED terdapat sebuah bidang latar (backplane), yang merupakan lempengan kaca bagian belakang dengan sisi dalam yang ditutupi oleh lapisan elektroda trasparan. Dalam keadaan normal, cairan yang digunakan memiliki warna cerah. Daerah-daerah tertentu pada cairan akan berubah warnanya menjadi hitam ketika tegangan diterapkan antara bidang latar dan pola elektroda yang terdapat pad sisi dalam lempeng kaca bagian depan. Universitas Sumatera Utara
Keunggulan LCD adalah hanya menarik arus yang kecil (beberapa microampere), sehingga alat atau sistem menjadi portable karena dapat menggunakan catu daya yang kecil. Keunggulan lainnya adalah tampilan yang diperlihatkan dapat dibaca dengan mudah di bawah terang sinar matahari. Di bawah sinar cahaya yang remang-remang dalam kondisi gelap, sebuah lampu (berupa LED) harus dipasang dibelakang layar tampilan. LCD yang digunakan adalah jenis LCD yang mena mpilkan data dengan 2 baris tampilan pada display. Keuntungan dari LCD ini adalah : 1. Dapat menampilkan karakter ASCII, sehingga dapat memudahkan untuk membuat program tampilan. 2. Mudah dihubungkan dengan port I/O karena hanya mengunakan 8 bit data dan 3 bit control. 3. Ukuran modul yang proporsional. 4. Daya yang digunakan relative sangat kecil.
Gambar 2.18 Konfigurasi Pin LCD Operasi dasar pada LCD terdiri dari empat, yaitu instruksi mengakses proses internal, instruksi menulis data, instruksi membaca kondisi sibuk, dan Universitas Sumatera Utara
instruksi membaca data. ROM pembangkit sebanyak 192 tipe karakter, tiap karakter dengan huruf 5x7 dot matrik. Kapasitas pembangkit RAM 8 tipe karakter (membaca program), maksimum pembacaan 80x8 bit tampilan data. Perintah utama LCD adalah Display Clear, Cursor Home, Display ON/OFF, Display Character Blink, Cursor Shift, dan Display Shift. Tabel 2.3 menunjukkan operasi dasar LCD.
Tabel 2.6 Operasi Dasar LCD RS
R/W
Operasi
0
0
Input Instruksi ke LCD
0
1
Membaca Status Flag (DB7) dan alamat counter (DB0 ke DB6)
1
0
Menulis Data
1
1
Membaca Data
Tabel 2.7 Konfigurasi Pin LCD Pin
Keterangan
Konfigurasi Hubung
1
GND
Ground
2
VCC
Tegangan +5VDC
3
VEE
Ground
4
RS
Kendali RS
5
RW
Ground
6
E
Kendali E/Enable
No.
Universitas Sumatera Utara
7
D0
Bit 0
8
D1
Bit 1
9
D2
Bit 2
10
D3
Bit 3
11
D4
Bit 4
12
D5
Bit 5
13
D6
Bit 6
14
D7
Bit 7
15
A
Anoda (+5VDC)
16
K
Katoda (Ground)
Tabel 2.8 Konfigurasi LCD Pin RS
RW
E
Bilangan biner
Keterangan
0
Inisialisasi
1
Data
0
Tulis LCD / W (write)
1
Baca LCD / R (read)
0
Pintu data terbuka
1
Pintu data tertutup
Universitas Sumatera Utara
Lapisan film yang berisis Kristal cair diletakkan di antara dua lempeng kaca yang telah ditanami elektroda logam transparan. Saat teganga dicatukan pada beberapa pasang elektroda, molekul – molekul Kristal cair akan menyusun diri agar cahaya yang mengenainya akan dipantulkan atau diserap. Dari hasil pemantulan atau penyerapan cahaya tersebut akan terbentuk pola huruf, angka, atau gambar sesuai bagian yang di aktifka. LCD membutuhkan tegangan dan daya yang kecil sehingga sangat popular untuk aplikasi pada kalkulator, arloji digital, dan instrument elektronika lain seperti Global Positioning System (GPS), baragraph display dan multimeter digital. LCD umumnya dikemas dalam bentuk Dual In Line Package (DIP) dan mempunyai kemampuan untuk menampilkan beberapa kolom dan baris dalam satu panel. Untuk membentuk pola, baik karakter maupun gambar pada kolom dan baris secara bersamaan digunakan metode Screening. Metode screening adalah mengaktifkan daerah perpotongan suatu kolo dan suatu baris secara bergantian dan cepat sehingga seolah-olah aktif semua. Penggunaan metode ini dimaksudkan untuk menghemat jalur yang digunakan untuk mengaktifkan panel LCD. Saat ini telah dikembangkan berbagai jenis LCD, mulai jenis LCD biasa, Passive Matrix LCD (PMLCD), hingga Thin-Film Transistor Active Matrix (TFT-AMLCD). Kemampuan LCD juga telah ditingkatkan daru yang monokrom hingga yang mampu menampilkan ribuan warna.
2.2 Perangkat Lunak (Sofeware) 2.2.1. CodeVisio AVR Universitas Sumatera Utara
CodeVisionAVR merupakan salah satu software kompiler yang khusus digunakan untuk mikrokontroler keluarga AVR. CodeVisionAVR merupakan yang terbaik bila dibandingkan dengan kompiler-kompiler yang lain karena beberapa kelebihan yang dimiliki oleh CodeVisionAVR antara lain: 1. Menggunakan IDE (Integrated Development Environment). 2.
Fasilitas
yang
disediakan
lengkap
(mengedit
program,
mengkompile program, mendownload program) serta tampilannya terlihat menarik dan mudah dimengerti. Kita dapat mengatur settingan editor sedemikian rupa sehingga membantu memudahkan kita dalam penulisan program. 3. Mampu membangkitkan kode program secara otomatis dengan menggunakan fasilitas CodeWizardAVR. 4. Memiliki
fasilitas
untuk
mendownload
program
langsung dari CodeVisionAVR dengan menggunakan hardware
khusus
seperti
Atmel
STK500,
Kanda
System
STK200+/300 dan beberapa hardware lain yang telah didefenisikan oleh CodeVisionAVR. 5. Memiliki fasilitas debugger sehingga dapat menggunakan software compiler lain untuk mengecek kode assembler nya, contohnya AVRStudio. 6. Memiliki terminal komunikasi serial yang terintegrasi dalam CodeVisionAVR sehingga dapat digunakan untuk membantu pengecekan program yang telah di buat khususnya yang menggunakan fasilitas komunikasi serial UART Universitas Sumatera Utara
2.2.2 CodeVision chip program Salah satu kelebihan daari codevision AVR adalah fasilitas untuk mendownloat program ke mikrokontroller yang telah terintegrasi sehimgga demikian Code VisionAVR ini serlain dapat berfungsi sebagai sofeware compiler juga dapat berfungsi sebagai sofeware programmer /downloader. Jadi kita dapat melakukan proses download program yang telah do compile dengan menggunakan sofeware CodeVisionAVR juga
Gambar 2.19 Programmer Setting
2.2.3 Bahasa Pemograman 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
Universitas Sumatera Utara
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 berorientasu 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 ni masih popular dan penggunaannya tersebar di berbagai platform dari windows samapi linux dan dari PC hingga main frame. Ada pun kekurangan dan Kelebihan Bahasa C sebagai berikut :\
Kelebihan Bahasa C: o Bahasa C tersedia hampir di semua jenis computer. o Kode bahasa C sifatnya adalah portable dan fleksibel untuk semua jenis computer. o Bahasa C hanya menyediakan sedikit kata-kata kunci. hanya terdapat 32 kata kunci. o Proses executable program bahasa C lebih cepat o Dukungan pustaka yang banyak. o
C adalah bahasa yang terstruktur
o Bahasa C termasuk bahasa tingkat menengah Universitas Sumatera Utara
penempatan ini hanya menegaskan bahwa c bukan bahasa pemrograman yang berorientasi pada mesin. yang merupakan ciri bahasa tingkat rendah. Melainkan berorientasi pada obyek tetapi dapat dinterprestasikan oleh mesin dengan cepat. secepat bahasa mesin. inilah salah satu kelebihan c yaitu memiliki kemudahan dalam menyusun programnya semudah bahasa tingkat tinggi namun dalam mengesekusi program secepat bahasa tingkat rendah.
Kekurangan Bahasa C: ·
Banyaknya operator serta fleksibilitas penulisan program kadangkadang membingungkan pemakai.
·
Bagi pemula pada umumnya akan kesulitan menggunakan pointer.
· 2.2.3.1 Struktur Bahasa C a. Program bahasa C tersusun atas sejumlah blok fungsi. b. Setiap fungsi terdiri dari satu atau beberapa pernyataan untuk melakukan suatu proses tertentu. c. Tidak ada perbedaan antara prosedur dan fungsi. d. Sstiap program bahasa C mempunyai suatu fungsi dengan nama “main” (Program Utama). e. Fungsi bisa diletakkan diatas atau dibawah fungsin “main”. f. Setiap statemen diakhiri dengan semicolon (titik koma).
2.2.3.2 Pengenal
Universitas Sumatera Utara
Pengenal (identifier) merupakan sebuah nama yang didefenisikan oleh pemrograman untuk menunjukkan indetitas dari sebuah konstanta, variable, fungsi, label atau tipe data khusus. Pemberian nama sebuah pengenal dapat ditentukan bebas sesuai keinginan pemrogram tetapi harus memenuhi atura berikut :
Karakter pertama tidak boleh menggunakan angka
Karakter kedua dapat berupa huruf, angka, atau garis bawah.
Tidak boleh menggunakan spasi.
Bersifat Case Sensitive, yaitu huru capital dan huruf kecil dianggap berbeda.
Tidak boleh mengunakan kata – kata yang merupakan sitaks maupun operator dalam pemrograman C, misalnya : Void, short, const, if, static, bit, long, case, do, switch dll.
2.2.3.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 Universitas Sumatera Utara
dalampembuatan sebuah program. Secara garis besar tipe data pada bahasa C dibagi menjadi beberapa bagian antara lain sebagai Berikut Macam-Macam Tipe Data Pada Bahasa C : 1. 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, nilai inilah yang sebetulnya disimpan pada variabel yang bertipe data karakter ini. 2. 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 berikut, kiata 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. Namun berbeda halnya jika saya ingin melakukan operasi
Universitas Sumatera Utara
pengurangan -5 - 300, jika dilihat hasilnya akan negatif maka selayaknya digunakan variabel dengan tipe data int. 3. 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. Double lebih memiliki panjang data yang lebih banyak dibandingkan float. Tipe data double dapat digunakan jika kita membutuhkan variabel yang dapat menampung tipe data berkoma yang bernilai besar. Tabel 2.9 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
Universitas Sumatera Utara
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
2.2.3.4 Konstanta Dan Variabel Konstanta dan variable merupakan sebuah tempat untuk menyimpan data yang berada di dalam memori. Konstanta berisi data yang nilainya tetap dan tidak dapat diubah selama program dijalankan, sedangkan variable berisi data yang bisa berubah nilainya pada saat program dijalankan.
2.2.3.5 Identifier Identifier atau nama pengenal adalah nama yang ditentukan sendiri oleh pemrogram yang digunakan untuk menyimpan nilai, misalnya nama variable, nama konstanta, nama suatu elemen (misalnya: nama fungsi, nama tipe data, dll). Identifier punya ketentuan sebagai berikut : 1. Maksimum 32 karakter (bila lebih dari 32 karakter maka yang diperhatikan hanya 32 karakter pertama saja). 2. Case sensitive: membedakan huruf besar dan huruf kecilnya. 3.
Karakter pertama harus karakter atau underscore ( _ ) . selebihnya boleh angka
Universitas Sumatera Utara