BAB II LANDASAN TEORI 2.1. Sensor Mpu6050 Sensor adalah transduser yang berfungsi untuk mengolah variasi gerak, panas, cahaya
atau
sinar,
magnetis,
dan
kimia
menjadi
tegangan
serta
arus
listrik. Sensor sendiri adalah komponen penting pada berbagai peralatan. Sensor juga berfungsi sebagai alat untuk mendeteksi dan juga untuk mengetahui magnitude. Transduser sendiri memiliki arti mengubah, resapan dari bahasa latin traducere Bentuk perubahan yang dimaksud adalah kemampuan merubah suatu energi kedalam bentuk energi lain Sensor Mpu6050 adalah sensor mampu membaca kemiringan sudut berdasarkan data dari sensor accelerometer dan sensor gyroscope.Sensor ini juga dilengkapi oleh sensor suhu yang dapat digunakan untuk mengukur suhu dikeadaan sekitar.Jalur data yang digunakan pada sensor ini adalah jalur data I2C. Sensor MPU-6050 berisi sebuah MEMS Accelerometer dan sebuah MEMS Gyro yang saling terintegrasi. Sensor ini sangat akurat dengan fasilitas hardware internal 16 bit ADC untuk setiap kanalnya. Sensor ini akan menangkap nilai kanal axis X, Y dan Z bersamaan dalam satu waktu. Adapun spesifikasi dari sensor Mpu6050 yaitu : -
Sensitifitas Accelerometer yang dapat dipilih mulai 2/4/8 samapai 16 g
-
Sensitifitas Gyrocope yang dapat dipilih mulai 250/500/1000 sampai 2000 degrees/s
-
Range 16 bit untuk kedua sensor
-
Data rate output hingga 1000Hz, dilengkapi digital low pass filter dan memiliki frekuensi sudut maksimum 256Hz.
-
Acceleration range: ± 2 ± 4 ± 8 ± 16 g
Gambar 2.1 Sensor Mpu6050
Universitas Sumatera Utara
2.2 Regulator Regulator
adalah
rangkaian
regulasi
atau
pengatur
tegangan
keluaran
dari sebuahcatu daya agar efek darinaik atau turunnya tegangan jala-jala tidak mempengaruhitegangan catu daya sehingga menjadi stabil. 2.3 Mikrokontroler ATMega 8535 Mikrokontroler merupakan sebuah single chip yang didalamya telah dilengkapi dengan CPU (Central Prosessing Unit); RAM ( RandomAcces Memory); ROM ( Readonly Memory), Input, dan Output, Timer\ Counter, Serial com port secara spesifik
digunakan
untuk
serbaguna.Mikrokontroler
aplikasi
umumnya
–aplikasi bekerja
control
pada
dan
frekuensi
buka
aplikasi
4MHZ-40MHZ.
perangkat ini sering digunakan untuk kebutuhan kontrol tertentu seperti pada sebuah penggera motor. Read only Memory (ROM) yang isinya tidak berubah meskipun IC kehilangan catu daya. Sesuai dengan keperluannya, sesuai dengan susunan MCS-51. Memorypenyimpanan program dinamakan sebagai memory program.Random Acces Memory (RAM) isinya akan begitu sirna IC kehilangan catu daya dipakai untuk menyimpan data pada saat program bekerja. RAM yang dipakaiuntuk menyimpan data ini disebut sebagai memori data. Mikrokontroler
biasanya
dilengkapi
dengan
UART
(Universal
AsychoronousReceiver Transmitter) yaiut port serial komunikasi serial asinkron, USART (Universal Asychoronous\Asy choronous Receiver Transmitter) yaitu port yangdigunakan untuk komunikasi serial asinkron dan asinkron yang kecepatannya 16 kalilebih
cepat
dari
Uart,
SPI
(
Serial
Port
Interface),
SCI
(
Serial
CommunicationInterface ), Bus RC ( Intergrated circuit Bus ) merupakan 2 jalur yang terdapat 8 bit,CAN ( Control Area Network ) merupakan standard pengkabelan SAE (Society ofAutomatic Enggineers). Pada sistem komputer perbandingan RAM dan ROM-nya besar, artinyaprogramprogram pengguna disimpan dalam ruang RAM yang relatif besar,sedangkanrutinrutin
antar
muka
pernagkat
keras
disimpan
dalm
ruang
ROM
yang
kecil.Mikrokontroler saat ini sudah dikenal dan digunakan secar luas pada duniaindustri.Banyak sekali penelitian atau proyek mahasiswa yang menggunakan berbagai versi mikrokontroler yang dapat dibeli dengan harga yang relative murah. Hal inidikarenakan produksi missal yang dilakukan oleh para produse chip seperti
Universitas Sumatera Utara
Atmel,Maxim, dan Microchip. Mikrokontroler saat ini merupakan chip utama pada hampirsetiap peralatan elektronika canggih. Alat-alat canggih pun sekarang ini sangatbergantung pada kemampuan mikrokontroler tersebut.Mikrikontroler AVR memilkiarsitektur RISC 8 bit, dimana semua instruksi dikemas dalam kode 16-bit (16bitword) dan sebagian besar instruksi dieksekusi dalam satu siklus clock, berbeda denganinstruksi MCS51 yang membutuhkan siklus 12 clock.Tentu saja itu terjadi karenakedua jenis mikrokontroler tersebut memiliki arsitektur yang berbeda. AVRberteknologi RISC (Reduce Instruction Set Computing), sedangkan seri MCS51berteknologi CISC (Complex Instruction Set Computing). Secara umum, AVR dapatdikelompokkan menjadi 4 kelas, yaitu keluarga AT90Sxx, keluarga ATmega, danAT86RFxx. Pada dasarnya, yang membedakan masing-masing kelas adalah memori,peripheral, dan fungsinya. Dari segi arsiektur dan instruksi yang digunakan, merekabias dikatakan hampir sama. 2.3.1. Fitur ATMega 8535 Kapabilitas detail dari ATMega8535 adalah sebagai berikut : 1. Sistem mikroprosesor 8 bit berbasis RISC dengan kecepatan maksimal 16MHz. 2. Kapabilitas memori flash 8 KB, SRAM sebesar 512 byte , dan EEPROM ( Electrically Erasable Programmable Read Only Memory) sebesar 512 byte. 3. ADC internal dengan fidelitas 10 bit sebanyak 8 channel. 4. Portal komunikasi serial (USART) dengan kecepatan maksimal 2,5 Mbps. 5. Enam pilihan mode sleep menghemat penggunaan daya listrik. 2.3.2. Konfigurasi ATMega 8535 Konfigurasi pin ATMega 8535 bisa dilihat pada gambar 2.3. di bawah ini. Dari gambar tersebut dapat dijelaskan secara fungsional konfigurasi pin ATMega 8535 sebagai berikut: 1. VCC merupakan pin yang berfungsi sebagai pin masukan catu daya. 2. GND merupakan pin ground. 3. Port A (PA0..PA7) merupakan pin I/O dua arah dan pin masukan ADC. 4. Port B (PB0..PB7) merupakan pin I/O dua arah dan pin fungsi khusus , yaitu Timer/Counter, komparator analog, dan SPI. 5. Port C (PC0..PC7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu TWI, komparator analog, dan Timer Oscilat.
Universitas Sumatera Utara
6. Port D (PD0.. PD7 merupakan pin I/O dua arah dan fungsi khusus, yaitu komparator analog, interupsi eksternal, komunikasi serial. 7. RESET merupakan pin yang digunakan untuk me-reset mikrokontroler. 8. XTAL1 dan XTAL2 merupakan pin masukan clock eksternal. 9. AVCC merupakan pin masukan tegangan untuk ADC. 10. AREF merupakan pin masukan tegangan referensi ADC.
Gambar 2.2. Pin ATMega 8535
Berikut adalah penjelasan fungsi tiap kaki. 1. PORT A Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor ( 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 pinpin port A yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Selain itu, kedelapan pin port A juga digunakan untuk masukan sinyal analog bagi A/D coverter.
Universitas Sumatera Utara
2. PORT B Merupakan 8 bit directional port I/O. setiap pinnya dapat menyediakan internal pull-up resistor ( dapat diatur per bit). Output buffer Port B 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. Pin-pin port B juga memiliki untuk fungsi\fungsi alternatif khusus seperti yang terlihat pada table berikut. Tabel 2.1. Konfigurasi Pin Port B ATMega 8535
PORT PIN
FUNGSI KHUSUS
PB0
T0 = timer/ counter 0 external counterinput
PB1 PB2
T1 = timer/counter 0 external counter input AINO = analog comparator positive input
PB3
AINI =analog comparator negative input
PB4
SS = SPI slave select input
PB5 PB6 PB7
MOSI = SPI bus master output/slave input MISO = SPI bus master input/slave output SCK = SPI bus serial clock
3. PORT C Merupakan 8-bit directional port I/O. 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 pinpin port C yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Selain itu, DUA pin port C (PC6 dan PC7) juga memiliki fungsi alternatif sebagai oscilator untuk timer/counter 2. 4. PORT D Merupakan 8-bit directional port I/O. 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
Universitas Sumatera Utara
sebelum port D digunakan. Bit-bit DDRD diisi 0 jika ingin memfungsikan pinpin 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.
Tabel 2.2.Konfigurasi Pin Port D ATmega8535
Port Pin
Fungsi Khusus
PD0
RDX (UART input line)
PD1
TDX (UART output line)
PD2
INT0 ( external interrupt 0 input )
PD3
INT1 ( external interrupt 1 input )
PD4
OC1B (Timer/Counter1 output compareB match output)
PD5
OC1A (Timer/Counter1 output compareA match output)
PD6
ICP (Timer/Counter1 input capture pin)
PD7
OC2 (Timer/Counter2 output compare match output)
5. RESET RST pada pin 9 merupakan reset dari AVR. Jika pada pin ini diberi masukan low selama minimal 2 machine cycle maka system akan di-reset. 6. XTAL1 XTAL1 adalah masukan ke inverting oscilator amplifier dan input ke internal clock operating circuit. 7. XTAL2 XTAL2 adalah output dari inverting oscilator amplifier. 8. Avcc Avcc adalah kaki masukan tegangan bagi A/D Converter. Kaki ini harus secara eksternal terhubung ke Vcc melalui lowpass filter. 9. AREF AREF adalah kaki masukan referensi bagi A/D Converter. Untuk operasional ADC, suatu level tegangan antara AGND dan Avcc harus diberikan ka kaki ini. 10. AGND AGND adalah kaki untuk analog ground.Hubungkan kaki ini ke GND, kecuali jika board memiliki analog ground yang terpisah.
Universitas Sumatera Utara
2.2.3. Peta Memori AVR ATMega8535 memilii ruang pengalamatan memori data dan memori program yang terpisah. Memori data terbagi menjadi 3 bagian, yaitu 32 buah register umum, 64 buah register I/O, dan 512 byte SRAM Interanal. Register keperluan umum menempati space data pada alamt terbawah, yaitu $00 sampai $1F. Sementara itu, register khusus untuk menangani I/O dan control terhadapmikrokontroler menempati 64 alamat berikutnya, yaitu mulai dari $20 hingga $5F. Register tersebut merupakan register yang khusus digunakan mengatur fungsi terhadap berbagai peripheral mikrokontroller, seperti contoh register, timer/counter, fungsi-fungsi I/O, dan sebagainya. Register khusus alamat memori secara lengkap dapat dilihat tabel ini. Alamat memori berikutnya digunakan untuk SRAM 512 byte, yaitu pada lokasi $60 sampai dengan $25F. Konfigurasi memori data ditunjukkan pada gambar dibawah ini:
Gambar 2.3. Konfigurasi Memori Data AVR ATMega 8535
Memori program yang terletak dalam flash PEROM tersususn dalam word atau 2 byte karena setiap instruksi memiliki lebar 16-bit atau 32-bit, AVR ATMega8535 memiliki KByte 12-bit program Counter (PC) sehingga mampu mengalamati isi flash. Selain itu AVR ATMega8535 juga memiliki memori data berupa EEPROM 8-bit sebanyak 512 byte. Alamat EEPROM dimulai dari $000 sampai $1FF. Dibawah ini adalah gambar memori program AVR ATMega8535.
Universitas Sumatera Utara
2.2.4. Status Register (SREG) Status register adalah register berisi status yang dihasilkan pada setiap operasi yang dilakukan, ketika suatu instruksi dieksekusi. SREG merupakan bagian dari inti CPU mikrokontroler.
Gambar 2.4 Status Register ATMega 8535
1. Bit 7-I: Global Interrupt Enable Bit harus diset untuk meng-enable interupsi. Setelah itu, dapat kita aktifkan interupsi mana yang akan digunakan dengan cara meng-enable bit control register yang bersangkutan secara individu. Bit akan di-clear apabila terjadi suatu interupsi yang dipicu oleh hardware, dan bit tidak akan mengizinkan terjadinya interupsi, serta akan diset kembali oleh instruksi RETI. 2. Bit 6-T:Bit Copy Storage Instruksi BLD dan BST menggunakan bit-T sebagai sumber atau tujuan dalam operasi bit. Suatu bit dalam sebuah register GPR dapat disalin ke bit T menggunakan instruksi BST, dan sebaliknya bit-T dapat disalin kembali ke suatu bit dalam register GPR menggunakan instruksi BLD. 3. Bit 5-H: Half Carry Flag 4. Bit 4-S: Sign Bit Bit-S merupakan hasil operasi EOR antara flag-N (negative) dan flag V (komplemen dua overflow). 5. Bit 3-V: Two’s Complement Overflow Flag Bit berguna untuk mendukung operasi aritmatika. 6. Bit 2-N: Negative Flag Apabila suatu operasi menghasilkan bilangan negatif, maka flag-N akan diset. 7. Bit 1-Z: Zero Flag Bit akan diset bila hasil operasi yang diperoleh adalah nol. 8. Bit 0-C: Carry Flag Apabila suatu operasi menghasilkan carry, maka bit akan diset.
Universitas Sumatera Utara
Port I/O pada mikrokontroller ATmega8535 dapat difungsikan sebagai input dan juga sebagai output dengan keluaran high atau low.Untuk mengatur fungsi port I/O sebagai input ataupun output, perlu dilakukan setting pada DDR dan port. Logika port I/O dapat diubah-ubah dalam program secara byte atau hanya bit tertentu. Mengubah sebuah keluaran bit I/O dapat dilakukan menggunakan perintah cbi (clear bit I/O)untuk menghasilkan output low atau perintah sbi (set bit I/O) untuk menghasilkan output high. Pengubahan secara byte dilakukan dengan perintah in atau out yang menggunakan register bantu. I/O merupakan bagian yang paling menarik dan penting untuk diamati karena I/O merupakan bagian yang bersangkutan dengan komunikasi mikrokontroller dengan dunia luar. Selain port I/O, bagian ini juga menyediakan informasi mengenai berbagai peripheral mikrokontroller yang lain, seperti ADC, EEPROM, UART, dan Timer. Komponen yang tercakup dalam workspace I/O meliputi berbagai register berikut : 1. AD_CONVERTER; register: ADMUX, ADCSR, ADCH, ADCL 2. ANALOG_COMPARATOR; register: ACSR 3. CPU; register: SREG, SPH, SPL, MCUCR, MCUCSR, OSCCAL, SFIOR, SPMCR 4. EEPROM; register: EEARH, EEARL, EEDR, EECR 5. External_Interrupt; register: GICR, GIFR, MCUCR, MCUCSR 6. PORTA; register: PORTA, DDRA, dan PINA 7. PORTB; register: PORTB, DDRB, dan PINB 8. PORTC; register: PORTC, DDRC, dan PINC 9. PORTD; register: PORTD,DDRD, dan PIND 10. SPI; register: SPDR, SPSR, SPCR 11. TIMER_COUNTER_0; register: TCCR0, TCNT0, OCR0, TIMSK, TIFR, SFIOR 12. TIMER _COUNTER_1; register: TIMSK, TIFR, TCCR1A, TCCR1B, TCNT1H, TCNT1L, OCR1AH, OCR1AL, OCR1BL, ICR1H, 1CR1L 13. TIMER_COUNTER_2; register: TIMSK, TIFR, TCRR2, TCNT2, OCR2, ASSR, SFIOR 14. TWI; register: TWBR, TWCR, TWSR, TWDR, TWAR 15. USART; register: UDR, UCSRA, UCSRB, UCSRC, UBRRH, UBRRL 16. WATCDOG; register: WDTCR
Universitas Sumatera Utara
2.3 IC(Integrated Circuit) IC (Integrated Circuit) dapat dibedakan menjadi IC Linear, IC Digital dan juga gabungan dari keduanya. IC Linear IC Linear atau disebut juga dengan IC Analog adalah IC yang pada umumnya berfungsi sebagai :
Penguat Daya (Power Amplifier)
Penguat Sinyal (Signal Amplifier)
Penguat Operasional (Operational Amplifier / Op Amp)
Penguat Sinyal Mikro (Microwave Amplifier)
Penguat RF dan IF (RF and IF Amplifier)
Voltage Comparator
Multiplier
Penerima Frekuensi Radio (Radio Receiver)
IC Digital IC Digital pada dasarnya adalah rangkaian switching yang tegangan Input dan Outputnya hanya memiliki 2 (dua) level yaitu “Tinggi” dan “Rendah” atau dalam kode binary dilambangkan dengan “1” dan “0”. IC Digital pada umumnya berfungsi sebagai :
Flip-flop
Gerbang Logika (Logic Gates)
Timer
Counter
Multiplexer
Calculator
Memory
Clock
Microcontroller
Data yang dipakai dalam mikrokontroller ATmega8535 dipresentasikan dalam sistem bilangan biner, desimal, dan bilangan heksadesimal. Data yang terdapat di mikrokontroller dapat diolah dengan berbagai operasi aritmatik (penjumlahan, pengurangan, dan perkalian)maupun operasi nalar (AND, OR, dan EOR /eksklusif OR).
Universitas Sumatera Utara
AVR ATmega8535 memiliki tiga buah timer, yaitu: 1. Timer/counter 0 (8 bit) 2. Timer/ counter 1 (16 bit) 3. Timer/counter 2 (8 bit) Karena ATmega8535 memiliki 8 saluran ADC maka untuk keperluan konversi sinyal analog menjadi data digital yang berasal dari sensor dapat langsung dilakukan prosesor utama. Beberapa karakteristik ADC internal ATmega8535 adalah 1. Mudah dalam pengoperasian. 2. Resolusi 10 bit. 3. Memiliki 8 masukan analog. 4. Konversi pada saat CPU sleep. 5. Interrupt waktu konversi selesai.
2.4 Bahasa Menggunakan Pemrogram 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. Kelebihan Bahasa C: -
Bahasa C tersedia hampir di semua jenis computer.
-
Kode bahasa C sifatnya adalah portable dan fleksibel untuk semua jenis computer.
-
Bahasa C hanya menyediakan sedikit kata-kata kunci. hanya terdapat 32 kata kunci.
-
Proses executable program bahasa C lebih cepat
-
Dukungan pustaka yang banyak.
-
C adalah bahasa yang terstruktur
-
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 kadang-kadang membingungkan pemakai. -
Bagi pemula pada umumnya akan kesulitan menggunakan pointer.
2.4.1. Mengkopilasi Program Suatu source program C baru dapat dijalankan setelah melalui tahap kompilasi dan penggabungan. Tahap kompilasi dimaksudkan untuk memeriksa source-program sesuai dengan kaidah-kaidah yang berlaku di dalam bahasa pemrograman C. Tahap kompilasi akan menghasilkan relocatable object file. File-file objek tersebut kemudian digabung
dengan perpustakaan-fungsi yang sesuai. untuk menghasilkan suatu
executable-program.Shortcut yang digunakan untuk mengkompile: •
ALT + F9 → dipakai untuk melakukan pengecekan jika ada error pada program yang telah kita buat.
•
CTRL + F9 → dipakai untuk menjalankan program yang telah kita buat atau bisa juga dengan mengklik tombol debug pada tool bar.
Gambar 2.5.Kompilasi Program
2.4.2. Struktur Bahasa Pemrograman C 1. Header Fileadalah berkas yang berisi prototype fungsi. definisi konstanta. dan definisi variable. Fungsi adalah kumpulan code C yang diberi nama dan ketika nama tersebut dipanggil maka kumpulan kode tersebut dijalankan.
Universitas Sumatera Utara
Contoh : stdio.h math.h conio.h 2. Preprosesor Directive (#include) Preprosesor directive adalah bagian yang berisi pengikutsertaan file atau berkasberkas fungsi maupun pendefinisian konstanta. Contoh: #include <stdio.h> #include phi 3.14 3. Void artinya fungsi yang mengikutinya tidak memiliki nilai kembalian (return). 4. Main ( ) Fungsi main ( ) adalah fungsi yang pertama kali dijalankan ketika program dieksekusi.tanpa fungsi main suatu program tidak dapat dieksekusi namun dapat dikompilasi. 5. Statement Statement adalah instruksi atau perintah kepada suatu program ketika program itu dieksekusi untuk menjalankan suatu aksi.Setiap statement diakhiri dengan titikkoma (;).
2.4.3. Kata Kunci (Keyword) Kata kunci-kata kunci yang terdapat di C, sebagai berikut: Tabel 2.3Kata Kunci
Auto Const Double Float Int Short Struct Unsigned
Break Continue Else For Long Signed Switch Void
Case Default Enum Goto Register Sizeof Typedef Volatile
Char Do Extern If Return Static Union While
Universitas Sumatera Utara
2.4.4. 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. 4. Tidak boleh mengandung spasi atau blank. 5. Tidak boleh menggunakan kata yang sama dengan kata kunci dan fungsi.
2.4.4.1 Variabel Variabel adalah identifier yang nilainya dapat berubah atau diubah selama programberjalan (dieksekusi). Pengubahnya adalah user atau proses. •
Deklarasi variabel (tipe_data nama_variabel;) Variabel yang akan digunakan dalam program haruslah dideklarasikan terlebihdahulu. Pengertian deklarasi di sini berarti memesan memori dan menentukan jenisdata yang bisa disimpan di dalamnya. Contoh :
•
Inisialisasi variabel (tipe_data nama_variabel = nilai;)
2.4.4.2 Konstanta Konstanta
adalah
identifier
yang
nilainya
tetap
selama
program
berjalan/dieksekusi.Cara untuk mengubahnya hanya melalui source codenya saja seperti halnya variabel, konstanta juga memiliki tipe.Penulisan konstanta mempunyai aturantersendiri, sesuai dengan tipe masing-masing. 1. Konstanta karakter misalnya ditulis dengan diawali dan diakhiri dengan tanda petik tunggal, contohnya : ‘A’ dan ‘@’.
Universitas Sumatera Utara
2. Konstanta integer ditulis dengan tanda mengandung pemisah ribuan dan tidak mengandung bagian pecahan, contohnya : –1 dan 32767. 3. Konstanta real (float dan double) bisa mengandung pecahan (dengan tanda berupa titik) dan nilainya bisa ditulis dalam bentuk eksponensial (menggunakan tanda e), contohnya : 27.5f (untuk tipe float) atau 27.5 (untuk tipe double) dan 2.1e+5 (maksudnya 2,1 x 105 ). 4. Konstanta string merupakan deretan karakter yang diawali dan diakhiri dengan tanda petik-ganda (“), contohnya :“Pemrograman Dasar C”. Contoh :
2.4.5 Tipe Data Dasar Data merupakan suatu nilai yang bisa dinyatakan dalam bentuk konstanta atau variabel.Konstanta menyatakan nilai yang tetap, sedangkan variabel menyatakan nilai yang dapat diubah-ubah selama eksekusi berlangsung. Tabel 2.4Ukuran Memori untuk Tipe Data
Tipe Data unsigned char Char short int unsigned int Int unsigned long Enum Long Float Double long double
Ukuran Memori 8 bits 8 bits 16 bits 32 bits 32 bits 32 bits 16 bits 32 bits 32 bits 64 bits 80 bits
Kawasan 0 s/d 255 -128 s/d 127 -32.768 s/d 32.767 0 s/d 4.294.967.295 -2.147.483.648 s/d 2.147.483.647 0 s/d 4.294.967.295 -2147483.648 to 2.147.483.648 -2.147.483.648 s/d 2.147.483.647 3,4 x 10-38 s/d 3,4 x 10+38 1.7 x 10-308 to 1.7 x 10+308 3.4 x 10-4932 to 3.4 x 10+4932
near (pointer) far (pointer)
32 bits 32 bits
not applicable not applicable
Untuk mengetahui ukuran memory bisa dipakai fungsi sizeof (
). Catatan: Ukuran dan kawasan dari masing-masing tipe data adalah bergantung pada jenis mesin yang digunakan (misalnya mesin 16 bit bisa jadi memberikan hasil berbeda dengan mesin 32 bit). Untuk menampilkan hasil output dibutuhkan kode format, berikut adalah daftar kode format:
Universitas Sumatera Utara
Tabel 2.5 Daftar Kode Format
Kode format
Kegunaan
%c
Menampilkan sebuah karakter
%s
Menampilkan nilai string
%d
Menampilkan nilai decimal integer
%i
Menampilkan nilai decimal integer
%u
Menampilkan nilai decimal integer tidak bertanda (unsigned integer)
%ld
Menampilkan nilai decimal long integer
%lu
Menampilkan nilai decimal long integer tak bertanda
%li
Menampilkan nilai decimal long integer
%hu
Menampilkan nilai decimal short integer tak bertanda
%hi
Menampilkan nilai decimal short integer
%x
Menampilkan nilai heksa decimal integer
%o
Menampilkan nilai okta integer
%f
Menampilkan nilai pecahan / float
%e
Menampilkan nilai float scientific
%g
Sebagai pengganti %f atau %e tergantung yang terpendek
%lf
Menampilkan nilai pecahan double
%le
Menampilkan nilai pecahan double
%lg
Menampilkan nilai pecahan double
%p
Menampilkan suatu alamat memory untuk pointer
Contoh:
2.4.6 Karakter Escape Karakter escape adalah karakter yang diawali dengan tanda backslash (/), yang masing-masing memiliki makna tertentu. Berikut adalah daftar karakter:
KARAKTER ESCAPE
Tabel 2.6 Daftar Karakter ARTI
Universitas Sumatera Utara