Skip to content Skip to sidebar Skip to footer

Tipe Data Bahasa C++ Dalam Pemrograman Arduino

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 ini berasal dari Compiler, dan petunjuk untuk konteks tersebut sampai ke Compiler berasal dari pengguna.

Anda sebagai programmer, memberi tahu kompiler bahwa nilai ini 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 ini ke floating point tersebut."

 

Mendefinisikan Tipe Data

Pemrogaman Arduino menggunakan bahasa C++ dengan dukungan berbagai perpustakaan aau library untuk menyederhanakan proses pengkodean. C++ mendefinisikan sejumlah tipe data yang berbeda.

Di bawah ini 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 ini sebagai karakter dalam beberapa keadaan, yang mungkin menghasilkan hasil yang tidak diharapkan
  • unsigned char (8 bit) - sama dengan 'byte';
    Jika ini 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 ini adalah untuk menyimpan hasil dari fungsi milis(), yang mengembalikan jumlah milidetik kode saat ini 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
    - int16_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.

 

Sumber:
1. Sparkfun
2. CPPreference
3. Lancaster.Ac.Uk
4. Mbed.com

Post a Comment for "Tipe Data Bahasa C++ Dalam Pemrograman Arduino"