Tipe Data Bahasa C++ Arduino
Tipe Data Bahasa C Dalam Pemrograman Arduino – Komputer, termasuk Arduino, cenderung sangat agnostik data. Pada intinya, jantung perangkat adalah Arithmetic Logic Unit (ALU), yang melakukan operasi sederhana pada lokasi di memori, seperti contoh : R1 + R2, R3 * R7, R4 & R5, dll. ALU tidak peduli jenis data apapu itu, baik itu teks, nilai integer, nilai floating point, atau bahkan bagian dari kode program.
Semua konteks untuk operasi berasal dari Compiler, dan petunjuk untuk konteks tersebut sampai ke Compiler berasal dari pengguna.
Anda sebagai programmer, memberi tahu kompiler bahwa nilai adalah bilangan bulat dan nilai itu adalah bilangan floating point. Kemudian Compiler mencoba untuk mencari tahu apa yang anda maksud ketika anda mengatakan “tambahkan integer ke floating point tersebut.”
Mendefsikan Tipe Data
Pemrogaman Arduino menggunakan bahasa C++ dengan dukungan berbagai perpustakaan aau library untuk menyederhanakan proses pengkodean. C++ mendefsikan sejumlah tipe data yang berbeda.
Di bawah adalah daftar tipe data yang biasa terlihat di Arduino, dengan ukuran memori masing-masing dalam tanda kurung setelah nama tipe.
Catatan: variabel tipe signed memungkinkan angka positif dan negatif, sedangkan variabel unsigned hanya mengizinkan nilai positif.
- boolean (8 bit) – logika sederhana benar / salah
- byte (8 bit) – tipe unsigned jangkauannya dari 0-255
- char (8 bit) – tipe signed jangkauannya dari -128 hingga 127.
Kompilator akan mencoba menafsirkan tipe data sebagai karakter dalam beberapa keadaan, yang mungkin menghasilkan hasil yang tidak diharapkan. - unsigned char (8 bit) – sama dengan ‘byte’;
Jika yang Anda cari, Anda harus menggunakan ‘byte’ sebagai gantinya, untuk alasan kejelasan. - word (16 bit) – tipe unsigned jangkauannya dari 0 hingga 65535.
- unsigned int (16 bit) – sama dengan ‘word’. Gunakan ‘word’ untuk kejelasan dan singkatnya.
- int (16 bit) – tipe signed jangkauannya dari -32768 hingga 32767.
Ini yang paling umum digunakan untuk variabel tujuan umum dalam kode contoh Arduino yang disediakan dengan IDE. - unsigned long (32 bit) – tipe unsigned jangkauannya dari 0 hingga 4.294.967.295. Penggunaan yang paling umum dari adalah untuk menyimpan hasil dari fungsi milis(), yang mengembalikan jumlah milidetik kode saat telah berjalan.
- long (32 bit) – tipe signed jangkauannya dari -2.147.483.648 hingga 2.147.483.647.
- float (32 bit) – tipe signed jangkauannya dari -3.4028235E38 hingga 3.4028235E38.
- double (64 bit) – tipe unsigned jangkauannya dari -1.7E308 hingga 1.7E308
Selain itu ada juga tipe data yang penulisannya berbeda, namun memiliki arti yang sama dengan beberapa tipe data diatas, yaitu:
- int8_t
– Tipe signed integer
– Ukuran 8 bit
– Jangkauannya dari -128 hingga 255
– int8_t sama dengan char - uint8_t
– Tipe unsigned integer
– Ukuran 8 bit
– Jangkauannya dari 0 hingga 255
– int8_t sama dengan byte
- int16_t
– Tipe signed integer
– Ukuran 16 bit
– Jangkauannya dari -32,768 hingga 32,767
– int16_t sama dengan short - uint16_t
– Tipe unsigned integer
– Ukuran 16 bit
– Jangkauannya dari 0 hingga 65,535
– uint16_t sama dengan unsigned short - int32_t
– Tipe signed integer
– Ukuran 32 bit
– Jangkauannya dari -2,147,483,648 hingga 2,147,483,647
– int16_t sama dengan int - uint32_t
– Tipe unsigned integer
– Ukuran 32 bit
– Jangkauannya dari 0 hingga 4,294,967,295
– int16_t sama dengan unsigned int - int64_t
– Tipe unsigned integer
– Ukuran 64 bit
– Jangkauannya dari -9,223,372,036,854,775,808 hingga 9,223,372,036,854,775,807
– int32_t sama dengan long long - uint64_t
– Tipe unsigned integer
– Ukuran 64 bit
– Jangkauannya dari 0 hingga 18,446,744,073,709,551,615
– int32_t sama dengan unsigned long long
Ukuran Ruang dan Waktu Proses
Prosesor di jantung papan Arduino, Atmel ATmega328P, adalah prosesor 8-bit asli tanpa dukungan bawaan untuk angka floating point. Untuk menggunakan tipe data yang lebih besar dari 8 bit, kompilator perlu membuat urutan kode yang mampu mengambil potongan data yang lebih besar, mengerjakannya sedikit demi sedikit, lalu meletakkan hasilnya di tempatnya.
Ini artinya paling baik saat memproses nilai tipe data 8-bit dan paling buruk saat memproses tipe data double point 32-bit. Semakin besar nilai bit (diatas 8 bit) yang di proses oleh mikrokontroller, maka akan membutuhkan waktu pemrosesan yang lebih lama dari tipe data 8 bit. Kisaran waktu lamanya itu dalam hitungan mikrodetik.
Semoga artikel ini bermanfaat.
Sumber:
1. Sparkfun
2. CPPreference
3. Lancaster.Ac.Uk
4. Mbed.com