0% menganggap dokumen ini bermanfaat (0 suara)
3 tayangan17 halaman

Dasar Pemrograman Arduino: Struktur & Data

Dokumen ini membahas dasar-dasar pemrograman Arduino, termasuk struktur penulisan, tipe data, variabel, konstanta, fungsi, operator, dan kontrol alur. Struktur program Arduino terdiri dari fungsi setup() dan loop(), serta berbagai tipe data dan operator yang digunakan dalam pemrograman. Selain itu, dokumen ini juga menjelaskan pernyataan if, switch, dan loop seperti for dan while untuk mengontrol alur program.

Diunggah oleh

salvayudapratama3
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
3 tayangan17 halaman

Dasar Pemrograman Arduino: Struktur & Data

Dokumen ini membahas dasar-dasar pemrograman Arduino, termasuk struktur penulisan, tipe data, variabel, konstanta, fungsi, operator, dan kontrol alur. Struktur program Arduino terdiri dari fungsi setup() dan loop(), serta berbagai tipe data dan operator yang digunakan dalam pemrograman. Selain itu, dokumen ini juga menjelaskan pernyataan if, switch, dan loop seperti for dan while untuk mengontrol alur program.

Diunggah oleh

salvayudapratama3
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

PELAJARAN 3

DASAR PEMROGRAMAN ARDUINO

TUJUAN

• Memahami struktur penulisan pemrograman pada arduino


• Mengenal tipe data pada arduino
• Memahami Penggunaan operator

STRUKTUR PEMROGRAMAN ARDUINO

Program arduino dapat dibagi menjadi tiga bagian utama yaitu :

• Struktur
• Value (variabel dan kontanta)
• Fungsi

STRUKTUR

Struktur terbagi menjadi dua fungsi utama :

• Fungsi Setup( )
Fungsi setup( ) hanya dipanggil satu kali saja saat program mulai
berjalan. Fungsi setup() berfungsi untuk melakukan inisialisasi mode
pin atau untuk memulai komunikasi serial. Fungsi setup() ini harus ada
meskipun tidak ada program yang akan dieksekusi.
• Fungsi Loop( )
Setelah menyiapkan inisialisasi pada setup(), berikutnya membuat
fungsi loop(). Seusai dengan namanya, fungsi akan mengulang program
secara terus menerus, sehingga program akan berubah dan merespon
sesuai input yang diberikan. Fungsi loop() ini akan secara aktif
mengontrol board Arduino.

Gambar 3.1 menunjukkan contoh dari program minimum dari arduino.


Setiap pembuatan program minimum harus ada fungsi setup() dan fungsi loop().

16
Gambar 3.1. Struktur program minimum Arduino

TIPE DATA

Berikut ini ditunjukkan tipe data yang dapat digunakan dalam program
arduino.

void Boolean char Unsigned byte int Unsigned word


char int
long Unsigned short float double array String-char String-
log array object

Beberapa tipe data yang perlu diketahui, ditunjukkan dalam tabel 3.1

Tabel 3.1. Tipe Data

Ukuran
Tipe Data Jangkauan Nilai
(bit)
boalean 1 0, 1 (tipe data bit hanya digunakan untuk variabel global)
char 8 -128 to 127
unsigned char 8 0 to 255
byte 8 0 to 255
int 16 -32768 to 32767
unsigned int 16 0 to 65535
word 16 0 to 65535
long 32 -2147483648 to 2147483647
unsigned long 32 0 to 4294967295
short 16 -32768 to 32767
float 32 ± 1,175e-38 to ± 3,402e38
double 32 ± 1,175e-38 to ± 3,402e38

17
VARIABEL DAN KONSTANTA

Variabel berfungsi untuk menampung nilai angka dan memberikan nama


sesuai dengan kebutuhan membuat program. Dengan menggunakan variabel,
maka nilai yang ada dapat dirubah. Hal ini berbeda dengan konstanta, dimana
nilainya tidak bisa berubah. Pemberian nama untuk variabel seharusnya sesuai
dengan deskripsinya, sehingga program yang dibuat mudah dibaca.

Sebuah variabel perlu dideklarasikan terlebih dahulu, dan bisa digunakan


sebagai penampung input yang akan disimpan atau diberi nilai awal.

Int InputVariabel = 0; // mendeklarasikan nilai variabel dengan nilai 0


InputVariabel = analog(2); // set variabel ke nilai dari pin 2 analog

Keterangan contoh program diatas, InputVariabel adalah variabel itu


sendiri. Baris pertama mendeklarasikan nilai yang menggunakan tipe integer.
Baris kedua merupakan input variabel sebagai penampung nilai hasil pembacaan
pin 2 analog. Hal ini memberikan keuntungan bahwa nilai analog pin 2 bisa
diakses dari manapun di dalam program.

Selain variabel ada juga konstanta yang digunakan untuk mempermudah


dalam membaca program. Integer contant adalah angka yang secara langsung
dapat dituliskan di sketch, misalnya 12300. Secara default, angka ini
diperlakukan sebagai int, namun kita juga bisa mengubahnya dengan U dan L.

Secara norma, konstanta integer diperlakukan sebagai bilangan basis 10


(desimal) integer, tetapi notasi khusus bisa digunakan untuk menyatakan bilangan
basis yang berbeda, hal ini bisa dilihat pada tabel 3.2.

Tabel 3.2. Format Bilangan Berbasis

Base Contoh Format Komentar

10 (decimal) 12345 - -
2 (binary) B110011 Capital ‘B’ Hanya valid jika 8 bit,
karakter yang ada 1
dan 0
8 (octal) 0234 Diawali dengan 0 Karakter yang valid 0
sampai 7
16 (hexadecimal) 0xB8 Diawali dengan 0x Karakter yang valid 0
sampai 9, A-F, a-f

18
Secara default, sebuah konstanta integer mempunyai keterbatasan dalam
hal range jangkauan nilainya. Untuk melakukan spesifikasi pada konstanta
integer dengan data tipe yang lain, maka perlu dilakukan seperti berikut ini :

• ‘u’ atau ‘U’ untuk mengubah default konstanta ke bentuk unsigned data
format. Contoh : 33u
• ‘l’ atau ‘L’ untuk mengubah default kontanta ke bentuk long data
format. Contoh : 100000L
• ‘ul’ atau ‘UL’ untuk mengubah default kontanta ke bentuk unsigned
long constant. Contoh : 32423533UL

Selain konstanta integer ada juga floating constant yang digunakan untuk
membuat kode lebih mudah dibaca. Floating point constant dilakukan saat
proses meng-compile terjadi.

Contoh :

n = .006;

FUNGSI

Fungsi adalah sekumpulan program yang diberi nama khusus, yang dapat
dieksekusi dengan cara memanggil fungsi tersebut. Setup() dan loop() dalam hal
ini juga termasuk fungsi.
Sebuah fungsi bisa dibuat sesuai dengan kebutuhannya untuk melakukan
suatu pekerjaan yang berulang ataupun bisa membuat program jadi lebih
sederhanan.

Langkah-langkah dalam membuat suatu fungsi :

➢ Deklarasikan terlebih dahulu tipe suatu fungsi.


➢ Tipe tersebut akan mendapatkan suatu nilai parameter dari fungsi tadi.
Misalnya ‘int’ untuk tipe fungsi integer. Jika tidak ada nilai yang
dikembalikan maka tipe fungsi tersebut akan kembali ke void.
➢ Setelah tipe maka diberikan nama fungsinya, dan dalam kurungnya
masukkan parameter yang akan diberikan ke dalam fungsi.
➢ Strukturnya sebagai berikut :

19
tipe functionName(parameter)
{
Pernyataan;
}

Contoh fungsi 1 : (fungsi delay Val() )

int delay Val( ) {


int v; // membuat variable lokal
v = analogRead(pot); // membaca nilai potensiometer
v /=4; // mengkonversi 0 – 1023 ke 0 – 255
return v;
}

Contoh fungsi 2 : (menghitung nilai dari k)

/* program utama */
void loop {
int i = 2;
int j = 3;
int k;
k = myMultiplyFunction(i, j); // k sekarang berisi 6
}

/* program function-nya beserta parameter x dan y, lalu dikembalikan


ke program utama */

int myMultiplyFunction(int x, int y) {


int result;
result = x * y;
return result;
}

Contoh Fungsi 3 : ( Fungsi pembacaan sensor)

int ReadSens_andCondition()
{
int I;
int sval;

for (i = 0; i < 5; i++)


{
sval = sval + analogRead(0); // sensor on analog pin 0
}

sval = sval / 5; // average (rata-rata)


sval = sval / 4; // scale to 8 bits (0 – 255)
sval = 255 – sval; // invert output
return sval;
}

20
OPERATOR

Tabel 3.3 Operator Aritmatika

Operator Aritmatika Keterangan


+ operasi penjumlahan
- operasi pengurangan
* operasi perkalian
/ operasi pembagian
% operasi sisa pembagian (modulus)

Operator *, / dan % memiliki prioritas yang lebih tinggi dibandingkan dengan


operator + dan -.

Contoh : 3 + 4 * 8 = 35 ➔ mengandung arti sama dengan 3 + (4 * 8) = 35

Tabel 3.4. Operator Pembanding

Operator
Contoh Keterangan
Kondisi

== x == y bernilai benar bila kedua data sama dan bernilai


salah bila sebaliknya
!= x != y tidak sama dengan
> x>y lebih besar dari
< x<y lebih kecil dari
>= x >= y lebih besar atau sama dengan
<= x <= y lebih kecil atau sama dengan

Operator pembanding digunakan untuk membandingkan dua buah data.

Tabel 3.5. Operator Logika

Operator Logika Keterangan

&& Operator untuk logika AND


|| Operator untuk logika OR
! Operator untuk logika NOT

Operasi logika digunakan untuk membentuk suatu logika atas dua buah kondisi
atau lebih.

21
Tabel 3.6. Operator Bitwise

Operator Bitwise Keterangan

& Operator untuk operasi AND level bit (biner)


| Operator untuk operasi OR level bit (biner)
^ Operator untuk operasi XOR level bit (biner)
~ Operator untuk operasi NOT level bit (biner)
<< Operator untuk operasi geser kiri
>> Operator untuk operasi geser kanan

Operasi bitwise hanya bekerja pada operasi logika 0 dan 1 saja.

Contoh :

x = 0x52;
y = 0x49;
Pertanyaan : x&y ➔x = 0101 0010
y = 0100 1001
x & y = 0100 0000

Sehingga x & y = 0x40

Pertanyaan : (x & y)<<1 ➔ x & y = 0100 000 bila digeser 1 kali ke kiri maka

nilai x&y akan menjadi

➔ 1000 0000

Sehingga (x & y)<<1 = 0x80

Tabel 3.7. Operator Tambahan

Asumsi variabel a =10 dan b =20

22
FLOW CONTROL

Bagian ini membicarakan tentang bagaimana menggunakan syntax yang


sering digunakan untuk melakukan pemilihan atau pengambilan keputusan.
Terdapat beberapa flow control yang akan dibahas, yaitu if, if … else, for, while,
dan do … while.

PERNYATAAN if

Pernyataan if melakukan pengetesan kondisi jika kondisi tersebut telah


terpenuhi, seperti input analog yang diterima telah berada pada kondisi tertentu.
Maka akan mengeksekusi semua statement yang berada dalam kurung jika
statement tersebut true , dan akan mengeksekusi semua perintah yang berada
dalam kurung { … }. Namun jika tidak terpenuhi akan melewati statement
tersebut.

Pernyataan if – execution sequence

False
Condition

True

Statements inside
if

23
Perbedaan bentuk dari syntax if:

Bentuk 1

If (expression)
Statement;

Bentuk 2

If (expression)
{
Block of statements;
}

Contoh program :

/* global variable definition */


Int A = 5;
Int B = 9;
void setup()
{
}
void loop()
If (expression)
{
If(A>B) /*if condition is true then execute the following statement*/
A++;
}
If ((A>B) && (B!=0)) /* if condition is true then execute the following
statement*/
{
A+=B;
B--;
}

PERNYATAAN if … else

Pernyataan if … else memberikan kejelasaan dalam menangani lebih dari


satu statement. Misalnya jika input yang terbaca adalah High maka lakukan
action A, namun jika Low lakukan action B.

24
Pernyataan if – execution sequence

False
Condition

True

Statements inside Statements inside


if else

Bentuk syntax if .. else

Contoh program :

25
PERNYATAAN IF BERSARANG

Pernyataan if bersarang adalah pernyataan if maupun if..else dimana di


dalam blok pernyataan yang akan dikerjakan terdapat pernyataan if atau if..else
lagi.

Pernyataan if … else bersarang – execution sequence

True False
Condition 1

True False
Condition 2
Body of If

True
Condition 3

Body of else if

False

Body of else

Default Statement

Rest of code

26
Bentuk syntax if ... else Bersarang

If (expression_1)
{
Block of statements;
}
else If (expression_2)
{
Block of statements;
}
.
.
.
else
{
Block of statements;
}

Contoh code :

/* global variable definition */


Int A = 5;
Int B = 9;
Int C = 15;

void setup()
{
}

void loop()
{
If(A>B) /*if condition is true then execute the following statement*/
{
A++;
}
else if (( A==B) || (B < C)) /*if condition is true then execute the following
statement */
{
C = B*A;
}
else
C++;
}

27
PERNYATAAN SWITCH

Pernyatan if..else dapat diganti dengan pernyataan switch. Pernyataan


switch digunakan untuk melakukan pengambilan keputusan terhadap banyak
kemungkinan.

Pernyataan Switch – execution sequence

Switch
( Conditional expiration)

True
Case 1 Block of
TextExpiration Statements

False

Case 2 True Block of


TextExpiration Statements

False

True
Case 3 Block of
TextExpiration Statements

False

Default
Block Statements

Bentuk Syntax Pernyataan Switch

28
Contoh code:

Catatan :

• Switch hanya dapat memeriksa variabel yang memiliki sebuah konstanta,


sedangkan if dapat memeriksa persyaratan perbandingan (lebih besar,
lebih kecil dan sebagainya).
• Tidak ada konstanta yang sama di dalam sebuah switch.
• Perintah switch jika dimanfaatkan dengan tepat akan memberikan hasil
yang lebih baik bila dibandingkan dengan perintah if..else.

LOOPS

Dalam bahasa pemogramman C yang termasuk dalam loop adalah sebagai


berikut :

➢ For
➢ While
➢ Do .. while
➢ Nested

For

Pernyataan for digunakan untuk melakukan perulangan yang terdapat pada


statement di dalam {}. Untuk bisa melakukan perulangan maka terdapat sebuah
counter yang akan menaikkan hitungan secara satu per satu, dan memberikan
tanda kapan perulangan akan berakhir. Pernyataan for sangat berguna untuk
operasi yang memerlukan perulangan dan sering digunakan bersama dengan

29
sekelompok array, yang biasanya digunakan untuk menyimpan koleksi data atau
pin.

Pernyataan for – execution sequence

Counter = 2

True

false
Exit for loop Counter >= 9

True
Counter = counter + 1

Body of for loop

Bentuk syntax for

Contoh code :

WHILE

Perulangn menggunakan while akan terus berlangsung terus menerus


sampai ekspresi dalam kurung tutup () bernilai false. Agar perulangan bisa
berhenti maka harus ada sesuatu yang bisa mengubah variable, atau perulangan
while tidak akan pernah berhenti. Sesuatu yang dimaksud bisa berasa dalam kode
pemrograman, seperti variable counter menambah satu nilai variable, atau
masukan dari luar seperti sensor.

30
Pernyataan loop execution sequence

false
Exit while loop Test expiration

True

Body of if

Bentuk syntax while

Contoh code :

Var = 0;
While (var < 200) {
// do something repetitive 200 times
Var++;
}

Do … While

Perulangan do mempunyai cara kerja yang sama dengan perulangan while,


dengan catatan pada perulangan do melakukan test kondisi pada bagian terakhir.
Karena model pengecekan pada saat terakhir maka perulangan do akan selalu
melakukan eksekusi program, setidaknya sekali.

Betuk syntax pernyataan do … while

Contoh code :

31
do
{
delay(50);
x = readSensors(); // check the sensors
}
while (x < 100); // loops if is less than 100

NESTED LOOP

Pemograman bahasa C memyediakan kepada kita untuk dapat


menggunakan sebuah loop didalam loop lainnya.

Bentuk syntaxnya :

Contoh code :

32

Anda mungkin juga menyukai