4 BAB 2 LANDASAN TEORI 2.1. SENSOR SUHU LM35 Sensor suhu LM35 adalah komponen elektronika yang memiliki fungsi untuk mengubah besaran suhu menjadi besaran listrik dalam bentuk tegangan. Sensor Suhu LM35 yang dipakai dalam penelitian ini berupa komponen elektronika elektronika yang diproduksi oleh National Semiconductor. LM35 memiliki keakuratan tinggi dan kemudahan perancangan jika dibandingkan dengan sensor suhu yang lain, LM35 juga mempunyai keluaran impedansi yang rendah dan linieritas yang tinggi sehingga dapat dengan mudah dihubungkan dengan rangkaian kendali khusus serta tidak memerlukan penyetelan lanjutan. Meskipun tegangan sensor ini dapat mencapai 30 volt akan tetapi yang diberikan kesensor adalah sebesar 5 volt, sehingga dapat digunakan dengan catu daya tunggal dengan ketentuan bahwa LM35 hanya membutuhkan arus sebesar 60 µA hal ini berarti LM35 mempunyai kemampuan menghasilkan panas (selfheating) dari sensor yang dapat menyebabkan kesalahan pembacaan yang rendah yaitu kurang dari 0,5 ºC pada suhu 25 ºC . 5 2.1.1. Struktur Sensor LM35 Gambar 2.1. Sensor Suhu LM35 Gambar diatas menunjukan bentuk dari LM35 tampak depan dan tampak bawah. 3 pin LM35 menujukan fungsi masing-masing pin diantaranya, pin 1 berfungsi sebagai sumber tegangan kerja dari LM35, pin 2 atau tengah digunakan sebagai tegangan keluaran atau Vout dengan jangkauan kerja dari 0 Volt sampai dengan 1,5 Volt dengan tegangan operasi sensor LM35 yang dapat digunakan antar 4 Volt sampai 30 Volt. Keluaran sensor ini akan naik sebesar 10 mV setiap derajad celcius sehingga diperoleh persamaan sebagai berikut : VLM35 = Suhu* 10 mV 6 Gambar 2.2. Skematik rangkaian dasar sensor suhu Gambar diatas kanan adalah gambar skematik rangkaian dasar sensor suhu LM35-DZ. Rangkaian ini sangat sedeCrhana dan praktis. Vout adalah tegangan keluaran sensor yang terskala linear terhadap suhu terukur, yakni 10 milivolt per 1 derajad celcius. Jadi jika Vout = 530mV, maka suhu terukur adalah 53 derajad Celcius.Dan jika Vout = 320mV, maka suhu terukur adalah 32 derajad Celcius. Tegangan keluaran ini bisa langsung diumpankan sebagai masukan ke rangkaian pengkondisi sinyal seperti rangkaian penguat operasional dan rangkaian filter, atau rangkaian lain seperti rangkaian pembanding tegangan dan rangkaian Analog-to-Digital Converter. Rangkaian dasar tersebut cukup untuk sekedar bereksperimen atau untuk aplikasi yang tidak memerlukan akurasi pengukuran yang sempurna. Akan tetapi tidak untuk aplikasi yang sesungguhnya. Terbukti dari eksperimen yang telah saya lakukan, tegangan keluaran sensor belumlah stabil. Pada kondisi suhu yang relatif sama, jika tegangan suplai saya ubah-ubah (saya naikkan atau turunkan), maka Vout juga ikut berubah. Memang secara logika hal ini sepertinya benar, tapi untuk instrumentasi hal ini tidaklah diperkenankan. Dibandingkan dengan tingkat 7 kepresisian, maka tingkat akurasi alat ukur lebih utama karena alat ukur seyogyanya dapat dijadikan patokan bagi penggunanya. Jika nilainya berubahubah untuk kondisi yang relatif tidak ada perubahan, maka alat ukur yang demikian ini tidak dapat digunakan. 2.1.2. Karakteristik Sensor LM35. Gambar 2.3. kaki-kaki LM35 1. Memiliki sensitivitas suhu, dengan faktor skala linier antara tegangan dan suhu 10 mVolt/ºC, sehingga dapat dikalibrasi langsung dalam celcius. 2. Memiliki ketepatan atau akurasi kalibrasi yaitu 0,5ºC pada suhu 25 ºC seperti terlihat pada gambar 2.2. 3. Memiliki jangkauan maksimal operasi suhu antara -55 ºC sampai +150 ºC. 4. Bekerja pada tegangan 4 sampai 30 volt. 5. Memiliki arus rendah yaitu kurang dari 60 µA. 6. Memiliki pemanasan sendiri yang rendah (low-heating) yaitu kurang dari 0,1 ºC pada udara diam. 7. Memiliki impedansi keluaran yang rendah yaitu 0,1 W untuk beban 1 mA. 8 8. Memiliki ketidaklinieran hanya sekitar ± ¼ ºC. Gambar 2.4. Grafik akurasi LM35 terhadap suhu Sensor LM35 bekerja dengan mengubah besaran suhu menjadi besaran tegangan. Tegangan ideal yang keluar dari LM35 mempunyai perbandingan 100°C setara dengan 1 volt. Sensor ini mempunyai pemanasan diri (self heating) kurang dari 0,1°C, dapat dioperasikan dengan menggunakan power supply tunggal dan dapat dihubungkan antar muka (interface) rangkaian control yang sangat mudah. IC LM 35 sebagai sensor suhu yang teliti dan terkemas dalam bentuk Integrated Circuit (IC), dimana output tegangan keluaran sangat linear terhadap perubahan suhu. Sensor ini berfungsi sebagai pegubah dari besaran fisis suhu ke besaran tegangan yang memiliki koefisien sebesar 10 mV /°C yang berarti bahwa kenaikan suhu 1° C maka akan terjadi kenaikan tegangan sebesar 10 mV. 9 Gambar 2.5. Rangkaian Sensor LM35 IC LM 35 ini tidak memerlukan pengkalibrasian atau penyetelan dari luar karena ketelitiannya sampai lebih kurang seperempat derajat celcius pada temperature ruang. Jangka sensor mulai dari – 55°C sampai dengan 150°C, IC LM35 penggunaannya sangat mudah, difungsikan sebagai kontrol dari indicator tampilan catu daya terbelah. IC LM 35 dapat dialiri arus 60 µ A dari supplay sehingga panas yang ditimbulkan sendiri sangat rendah kurang dari 0 ° C di dalam suhu ruangan. Untuk mendeteksi suhu digunakan sebuah sensor suhu LM35 yang dapat dikalibrasikan langsung dalam C (celcius), LM35 ini difungsikan sebagai basic temperature sensor. Adapun keistimewaan dari IC LM 35 adalah : • Kalibrasi dalam satuan derajat celcius. • Lineritas +10 mV/ º C. • Akurasi 0,5 º C pada suhu ruang. • Range +2 º C – 150 º C. • Dioperasikan pada catu daya 4 V – 30 V. • Arus yang mengalir kurang dari 60 µA 10 2.1.3. Prinsip Kerja Sensor LM35 Secara prinsip sensor akan melakukan penginderaan pada saat perubahan suhu setiap suhu 1 ºC akan menunjukan tegangan sebesar 10 mV. Pada penempatannya LM35 dapat ditempelkan dengan perekat atau dapat pula disemen pada permukaan akan tetapi suhunya akan sedikit berkurang sekitar 0,01 ºC karena terserap pada suhu permukaan tersebut. Dengan cara seperti ini diharapkan selisih antara suhu udara dan suhu permukaan dapat dideteksi oleh sensor LM35 sama dengan suhu disekitarnya, jika suhu udara disekitarnya jauh lebih tinggi atau jauh lebih rendah dari suhu permukaan, maka LM35 berada pada suhu permukaan dan suhu udara disekitarnya . Jarak yang jauh diperlukan penghubung yang tidak terpengaruh oleh interferensi dari luar, dengan demikian digunakan kabel selubung yang ditanahkan sehingga dapat bertindak sebagai suatu antenna penerima dan simpangan didalamnya, juga dapat bertindak sebagai perata arus yang mengkoreksi pada kasus yang sedemikian, dengan mengunakan metode bypass kapasitor dari Vin untuk ditanahkan. Maka dapat disimpulkan prinsip kerja sensor LM35 sebagai berikut: • Suhu lingkungan di deteksi menggunakan bagian IC yang peka terhadap suhu • Suhu lingkungan ini diubah menjadi tegangan listrik oleh rangkaian di dalam IC, dimana perubahan suhu berbanding lurus dengan perubahan tegangan output. • Pada seri LM35 11 Vout=10 mV/oC Tiap perubahan 1oC akan menghasilkan perubahan tegangan output sebesar 10mV 2.1.4. Kelebihan dan Kelemahan Sensors LM35 • Kelebihan: a. Rentang suhu yang jauh, antara -55 sampai +150 oC b. Low self-heating, sebesar 0.08 oC c. Beroperasi pada tegangan 4 sampai 30 V d. Rangkaian tidak rumit e. Tidak memerlukan pengkondisian sinyal • Kekurangan: Membutuhkan sumber tegangan untuk beroperasi 2.2. LCD ( Liquid Crystal Display ) LCD ( Liquid Crystal Dispalay ) sering diartikan dalam bahasa indonesia sebagai tampilan kristal cair merupakan suatu jenis media tampilan yang menggunakan kristal cair sebagai penampil utama. LCD dapat menampilkan karakter ASCI sehingga kita bisa menampilkan campuran huruf dan angka sekaligus berwarna ataupun tidak berwarna, hal ini disebabkan karena terdapat banyak sekali titik cahaya (piksel) yang terdiri dari satu buah kristal cair sebagai sebuah titik cahaya. Walau disebut sebagai titik cahaya namun kristal cair ini tidak memancarkan cahaya sendiri. Sumber cahaya didalam sebuah perangkat LCD adalah lampu neon berwarna putih dibagian 12 belakang susunan kristal cair tadi. Titik cahaya yang jumlahnya puluhan ribu bahkan jutaan inilah yang membentuk tampilan citra. Kutub kristal cair yang dilewati arus listrik akan berubah karena pengaruh polarisasi medan magnetik yang timbul dan oleh karenanya akan hanya membiarkan beberapa warna diteruskan sedangkan warna lainnya tersaring. Dalam menampilkan karakter untuk membantu menginformasikan proses dan control yang terjadi dalam suatu program robot kita sering menggunakan LCD. Ada beberapa jenis LCD perbedaannya hanya terletak pada alamat menaruh karakternya. Salah satu LCD yang sering dipergunakan adalah LCD 16x2 artinya LCD tersebut terdiri dari 16 kolom dan 2 baris. LCD ini sering digunakan karena harganya yang relatif murah dan pemakaian nya yang mudah. LCD yang kita gunakan masih membutuhkan agar dapat dikoneksikan dengan system minimum dalam suatu mikrokontroler. Driver tersebut berisi rangkaian pengaman, pengatur tingkat kecerahan backligt maupun data serta untuk mempermudah pemasangan di mikrokontroler (portable-red). Gambar 2.6. LCD 16 x 2 13 Modul LCD memiliki karakteristik sebagai berikut: 1. Terdapat 16 x 2 karakter huruf yang bisa ditampilkan. 2. Setiap terdiri dari 5 x 7 dot-matrix cursor. 3. Terdapat 192 macam karakter. 4. Terdapat 80 x 8 bit display RAM ( maksimal 80 karakter ). 5. Memiliki kemampuan penulisan dengan 8 bit maupun dengan 4 bit. 6. Dibangun oleh osilator lokal. 7. Satu sumber tegangan 5 Volt. 8. Otomatis reset saat tegangan dihidupkan. 9. Bekerja pada suhu 0oC sampai 550C. 14 2.2.1. Konfigurasi Pin LCD Tabel 2.1. Konfigurasi Pin LCD No 1 Simbol Vss Level - Fungsi 0 Volt 2 Vcc - 5+10% Volt 3 Vee - Penggerak LCD 4 RS H/L H=Memasukkan Data,L=Memasukkan Ins 5 R/W H/L H=Baca, L=Tulis 6 E 7 DB0 H/L 8 DB1 H/L 9 DB2 H/L 10 DB3 H/L 11 DB4 H/L 12 DB5 H/L 13 DB6 H/L 14 DB7 H/L 15 V+BL 16 V-BL Enable Signal Data Bus Kecerahan LCC 2.3. Mikrokontroler ATmega32 Mikrokontroler ATmega32 adalah mikrokontroler 8-bit keluaran Atmel dari keluarga AVR. Pihak Atmel menyatakan bahwa AVR bukanlah sebuah akronim atau singkatan dari suatu kalimat tertentu, perancang arsitektur AVR, Alf-Egil Bogen dan Vegard Wollan tidak memberikan jawaban yang pasti tentang singkatan AVR ini (http://en.wikipedia.org/wiki/Atmel_AVR). Mikrokontroler ini dirancang berdasarkan arsitektur AVR RISC (Reduced Instruction Set Computer) 15 yang mengeksekusi satu instruksi dalam satu siklus clock sehingga dapat mencapai eksekusi instruksi sebesar 1 MIPS (Million Instruction Per Second) setiap 1 MHZ frekuensi clock yang digunakan mikrokontroler tersebut. Frekuensi clock yang digunakan dapat diatur melalui fuse bits dan kristal yang digunakan. Jika kristal yang digunakan sebesar 16 MHZ sehingga frekuensi clock-nya sebesar 16 MHZ maka eksekusi instruksinya mencapai 16 MIPS (Atmel, 2009). ATmega32 memiliki fitur utama antara lain: 16K x 16 byte In-System Programmable Flash Program memory dari alamat 0000H sampai 3FFFH. Flash memory ini terbagi menjadi dua bagian yaitu application flash section dan boot flash section. Data memori sebesar 2144 byte yang terbagi atas 32 general purpose register, 64 I/O register, dan 2KB internal SRAM (Static Random Access Memory), 1 KB EEPROM (Electrically Eraseable Read Only Memory), 32 I/O pin, tiga unit timer/counter, internal dan eksternal interrupt, USART (Universal Synchronous and Asynchronous Receiver Transceiver), TWI (Two-wire Serial Interface), 10-bit ADC (Analog to Digital Converter) delapan saluran, SPI (Serial Programmable Interface), watchdog timer, dan internal clock generator. Seperti telah disebutkan di atas, ATmega32 memiliki 32 general purpose register, dan register ini terhubung langsung dengan dengan ALU (Arithmatic Logic Unit) sehingga dua register dapat sekaligus diakses dalam satu instruksi yang dieksekusi tiap clock-nya. Sehingga arsitektur seperti ini lebih efisien dalam eksekusi kode program dan dapat mencapai eksekusi sepuluh kali lebih cepat dibandingkan mikrokontroler CISC (Complete Instruction Set Computer) (Atmel, 2009). Gambar 2.1, 2.2, dan 2.3 masing-masing menunjukkan desain memori, susunan pin, dan arsitektur mikrokontroler ATmega32. 16 Gambar 2.7. Susunan Pin Atmega32 Gambar 2.8. Arsitektur Mikrokontroler Atmega32 17 ATmega32 memiliki clock generator internal sehingga mikrokontroler ini dapat bekerja langsung tanpa menggunakan clock eksternal. Sinyal clock internal yang dibangkitkan sebesar 1 MHZ. Jadi, cukup dengan menghubungkan Vcc dan Gnd dengan tegangan 5V DC mikrokontroler ini dapat bekerja. Untuk membuat program untuk ATmega32 dapat digunakan WinAVR atau AVR Studio yang dapat diperoleh secara gratis (freeware). Namun dalam pembahasan, ini software yang digunakan adalah WinAVR. Program dibuat dalam bahasa C dan menambahkan file header untuk ATmega32 yang berisi register-register pada ATmega32. Setelah program di-compile akan menghasilkan file dengan tipe Intel hex (.hex). File inilah yang nantinya akan di-programkan ke ATmega32 melalui interface bsd programmer (Brian Dean's Programmer) yang terhubung ke komputer melalui port paralel. Koneksi antara ATmega32 dan port paralel untuk bsd programmer diberikan oleh tabel berikut ini Tabel 2.2 Koneksi Pin Port Paralel dan ATmega32 Port paralel ATmega32 No pin Nama pin No pin Nama pin 7 D5 9 Reset 8 D6 8 SCK 9 D7 6 MOSI 10 S6 7 MISO 9 Ground 11 Ground 18 Secara fungsional konfigurasi pin ATMega32 adalah sebagai berikut: a. VCC - Tegangan sumber b. GND (Ground) - Ground c. Port A (PA7 – PA0) Port A adalah 8-bit port I/O yang bersifat bi-directional dan setiap pin memilki internal pull-up resistor. Output buffer port A dapat mengalirkan arus sebesar 20 mA. Ketika port A digunakan sebagai input dan di pull-up secara langsung, maka port A akan mengeluarkan arus jika internal pull-up resistor diaktifkan. Pin-pin dari port A memiliki fungsi khusus yaitu dapat berfungsi sebagai channel ADC (Analog to Digital Converter) sebesar 10 bit. Fungsi-fungsi khusus pin-pin port A dapat ditabelkan seperti yang tertera pada tabel 2.1 19 Tabel 2.3 Fungsi khusus port A d. Port Alternate Function PA7 ADC7 (ADC input channel 7) PA6 ADC6 (ADC input channel 6) PA5 ADC5 (ADC input channel 5) PA4 ADC4 (ADC input channel 4) PA3 ADC3 (ADC input channel 3) PA2 ADC2 (ADC input channel 2) PA1 ADC1 (ADC input channel 1) PA0 ADC0 (ADC input channel 0) Port B (PB7 – PB0) Port B adalah 8-bit port I/O yang bersifat bi-directional dan setiap pin mengandung internal pull-up resistor. Output buffer port B dapat mengalirkan arus sebesar 20 mA. Ketika port B digunakan sebagai input dan di pull-down secara external, port B akan mengalirkan arus jika internal pull-up resistor diaktifkan. Pin-pin port B memiliki fungsi-fungsi khusus, diantaranya : 1. SCK port B, bit 7 Input pin clock untuk up/downloading memory. 2. MISO port B, bit 6 Pin output data untuk uploading memory. 20 3. MOSI port B, bit 5 Pin input data untuk downloading memory. Fungsi-fungsi khusus pin-pin port B dapat ditabelkan seperti yang tertera pada tabel dibawah ini Tabel 2.4 Fungsi khusus port B Port Alternate Function PB7 SCK (SPI Bus Serial Clock) PB6 MISO (SPI Bus Master Input/Slave Output) PB6 MOSI (SPI Bus Master Output/Slave Input) PB5 SS (SPI Slave Select Input) AIN1 (Analog Comparator Negative Input) PB3 OCO (Timer/Counter0 Output Compare Match Output) AIN0 (Analog Comparator Positive Input) PB2 INT2 (External Interrupt 2 Input) PB1 T1 (Timer/Counter1 External Counter Input) T0 (Timer/Counter External Counter Input) XCK PB0 (USART External Clock Input/Output) e. Port C (PC7 – PC0) Port C adalah 8-bit port I/O yang berfungsi bi-directional dan setiap pin memiliki internal pull-up resistor. Output buffer port C dapat 21 mengalirkan arus sebesar 20 mA. Ketika port C digunakan sebagai input dan di pull-down secara langsung, maka port C akan mengeluarkan arus jika internal pull-up resistor diaktifkan. Fungsi-fungsi khusus pin-pin port C dapat ditabelkan seperti yang tertera pada tabel 2.3 Tabel 2.5 Fungsi khusus port C f. Port Alternate Function PC7 TOSC2 (Timer Oscillator Pin 2) PC6 TOSC1 (Timer Oscillator Pin 1) PC6 TD1 (JTAG Test Data In) PC5 TD0 (JTAG Test Data Out) PC3 TMS (JTAG Test Mode Select) PC2 TCK (JTAG Test Clock) PC1 SDA (Two-wire Serial Bus Data Input/Output Line) PC0 SCL (Two-wire Serial Bus Clock Line) Port D (PD7 – PD0) Port D adalah 8-bit port I/O yang berfungsi bi-directional dan setiap pin memiliki internal pull-up resistor. Output buffer port D dapat mengalirkan arus sebesar 20 mA. Ketika port D digunakan sebagai input dan di pull-down secara langsung, maka port D akan mengeluarkan arus jika internal pull-up resistor diaktifkan. Fungsi-fungsi khusus pin-pin port D dapat ditabelkan seperti yang tertera pada tabel dibawah ini 22 Tabel 2.6 Fungsi khusus port D Port Alternate Function OC2 (Timer / Counter2 Output Compare Match PD7 Output) PD6 ICP1 (Timer/Counter1 Input Capture Pin) OCIB (Timer/Counter1 Output Compare B Match PD6 Output) PD5 TD0 (JTAG Test Data Out) PD3 INT1 (External Interrupt 1 Input) PD2 INT0 (External Interrupt 0 Input) PD1 TXD (USART Output Pin) PD0 RXD (USART Input Pin) 2.4 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 rendah. Kemudahan dalam level rendah merupakan tujuan diwujudkanya bahasa C. pada tahun 1985 lahirlah pengembangan ANSI C yang dikenal dengan C++ 23 (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: · 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 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 24 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. · 2.4.1 Bagi pemula pada umumnya akan kesulitan menggunakan pointer. 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.4.2 Pengenal 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 : 25 • 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.4.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 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 26 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 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. 27 Tabel 2.7 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 2.4.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.