Blog Adi Sanjaya Global Techno Solution

Delphi, Mikrokontroler , Embedded system...Menerima Pembuatan alat berbasis mikrokontroller

LightBlog
Responsive Ads Here

Sunday, October 25, 2015

Struktur Pemrograman Arduino


Tampilan awal Arduino ID


Ketika aplikasi Arduino IDE dibuka, akan muncul tampilan seperti gambar 1-9. Apa bedanya void setup dengan void loop? Program yang ditulis di dalam void setup() {...} akan di eksekusi/dikerjakan 1 kali. Sedangkan program yang ditulis di dalam void loop() {...} akan dikerjakan secara berulang-ulang dan terus menerus (selama board Arduino diberi suplai tegangan). Program yang ditulis di bagian void setup umumnya adalah program untuk inisialiasi awal, seperti konfigurasi pin input dan output, inisialisasi LCD, dll. Di subbab selanjutnya akan dibahas lebih jauh.

Deklarasi Variabel Mari kita perhatikan gambar berikut 
 Contoh tempat tisu dan termos



Jika kita ingin menyimpan air panas, mana yang kita gunakan? Tempat tisu, atau termos? Ya, benar, kita gunakan tempat tisu! (yang ada termosnya). Hehehehe.. Sama seperti ilustrasi pada gambar 1-10, di bahasa pemrograman, deklarasi variabel bergantung tipe data yang akan kita simpan. Jika kita ingin menyimpan angka, maka yang kita gunakan adalah tipe data integer, long, byte, dkk. Jika kita ingin menyimpan teks, maka yang kita gunakan adalah string atau char. Berikut penjabaran dari masingmasing tipe data:

- Int : untuk penyimpanan bilangan bulat dengan rentang nilai -32,768 s/d 32,768 
- byte : untuk bilangan cacah dengan rentang nilai 0-255 (8 bit) 
- unsigned int : untuk bilangan cacah dengan rentang nilai 0-65,535 (16 bit) 
- long : untuk bilangan bulat dengan rentang nilai -2,147,483,648 s/d 2,147,483,647 
- unsigned long : Untuk bilangan cacah dengan rentang nilai 0-4,294,967,295 (32 bit) 
- float : untuk bilangan rill (pecahan) dengan rentang nilai -3.4028235E+38 s/d 3.4028235E+38 
 - double : untuk Arduino uno sama dengan float 
- char : untuk karakter sesuai tabel ASCII 
- String : untuk teks 

Bagaimana cara pendeklarasiannya? Ada berbagai macam cara, seperti:


Untuk Code 1-2.1, hanya dilakukan deklarasi variabel angka1 dan angka2 bertipe integer. Dalam hal ini, angka1 dan angka2 secara default akan bernilai 0 (nol). Sedangkan code 1-2.2, dilakukan pengisian nilai pada variabel angka1 dan angka2 masing-masing dengan nilai nol dan 10. Code 1-2.3 mempunyai hasil yang sama seperti pada code 1-2.2, yaitu variabel angka1 bertipe integer dengan nilai nol dan variabel angka2 bertipe integer dengan nilai 10.

Pun demikian dengan untuk penyimpanan variabel bertipe string. Code 1-2.4 mempunyai hasil yang sama dengan code 1-2.5 meski cara penulisannya berbeda.

Kondisi Bersyarat 
Pernahkah kita mengisi bak mandi? Kapan kita membuka dan menutup keran air di bak mandi? Misalkan kita mengisi bak mandi jika air dalam bak mandi kurang dari separuh volume bak mandi, sedang kita menutup keran jika volume air sudah sama dengan volume maksimal bak mandi atau jika air sudah meluber. Sadarkah kita jika proses itu sudah melibatkan kondisi bersarat ‘if – then - else’? Mari perhatikan code 1- 3.1 dan 1-3.2.

Apa perbedaan code 1-3.1 dengan code 1-3.2? Ya, terdapat tambahan else pada code 1-3.2. Yang perlu diperhatikan, adalah code 1-3.1 merupakan 3 buah kondisi bersyarat yang berdiri sendiri –tidak terpaut satu sama lain-, sedangkan code 1-3.2 merupakan satu kesatuan sebuah kondisi bersyarat. Perbedaan dari kedua code akan dibahas lebih detail di bab selanjutnya.
Di dalam kondisi bersyarat if then terdapat operator pembanding yaitu:
If ( X == Y ) jika X sama dengan Y
If ( X != Y ) jika X tidak sama dengan Y
 If ( X < Y ) jika X kurang dari Y
If ( X > Y ) jika X lebih dari Y
If ( X <= Y ) jika X kurang dari sama dengan Y
If ( X >= Y ) jika X lebih dari sama dengan Y
Bisa juga jika kita mempunyai lebih dari 1 kondisi bersyarat, dengan menggunakan:
If ( X==Y && Y!=Z) jika X sama dengan Y dan Y tidak sama dengan Z
If ( X==Y II Y!=Z) jika X sama dengan Y atau Y tidak sama dengan Z

Kondisi bersyarat lainnya adalah switch-case. Mari kita perhatikan code 1-3.3 dan code 1-3.4.
 
Apakah keduanya berbeda? Secara penulisan program memang YA! Tapi secara hasil keluaran, code 1-3.3 dan code 1-3.4 itu SAMA. Jadi, sudah paham kan bedanya If – then dengan switch – case? Pahaaaaaam, siiiiiip... ^^b

Perulangan Bersyarat Pernah mengamati lampu lalu lintas yang dilengkapi penghitung waktu digital? Ketika lampu merah, akan ada hitungan mundur misalkan dari angka 60 hingga 0, lalu berganti ke hijau misalkan dari angka 18 hingga 0, lalu berganti sejenak lampu kuning. Selanjutnya berulang-ulang secara terus menerus hingga listrik dari PLN padam. Hehehehe.


Ilustrasi algoritma perulangan pada lampu lalu lintas

 
Jika melihat ilustrasi pada gambar 1-11, urutan nyala lampu adalah 1-2-3 lalu kembali lagi 1-2-3 lalu kembali lagi 1-2-3 dan seterusnya. Sehingga program nyala lampu 1-2-3 berada dalam looping utama (dalam void loop). Dan masing-masing nyala lampu 1, 2 dan 3 merupakan unit perulangan tersendiri. Sehingga perulangan untuk nyala lampu lalu lintas dapat dituliskan seperti code 1-4.1

 
 ge-newline"> Dengan:
int konter = xx deklarasi variabel konter dengan nilai = xx,
konter >, <, <=, >= xx looping akan terus dijalankan selama nilai konter >, <, <=, atau >= dari nilai xx,
konter --,++ nilai konter ditambah +1(++) atau dikurangi -1(--) setiap satu looping selesai dijalankan
Jadi untuk perulangan bersyarat for, perulangan akan trus dilakukan selama kondisi syarat (yang ditulis di bagian tengah) terpenuhi. Nilai konter juga dapat digunakan untuk program di dalam looping for. –pada bab selanjutnya dibahas lebih detail dengan contoh aplikasinya— Kondisi perulangan bersyarat lainnya adalah while. Code 1-4.2 mempunyai hasil yang sama seperti code 1-4.1.

Setelah while yang ditulis hanya syarat perulangan. Untuk penambahan nilai ++ atau -- ditulis di dalam looping while. Untuk deklarasi variabel ditulis sebelum while.

Yang perlu diperhatikan adalah, karena deklarasi variabel int konter ditulis di luar looping while, maka untuk selanjutnya, cukup ditulis konter = xx; untuk memberi nilai awal dari variabel konter. Dan ingat, nama variabel tidak harus ‘konter’, bisa ditulis sesuai selera masing-masing


Contact Person : Taufik Adi Sanjaya
No HP / Whats App : 0823 2613 3990
PIN BBM 5983E244
Alamat : Jalan Imogiri Timur KM 11, 
Blawong 1 , RT 01, Trimulyo, 
Jetis, Bantul 55781.

Anda membutuhkan komponen elektronik , Arduino, Sensor, Tutorial(paket belajar), jasa pembuatan alat berbasis mikrokontroler, kendali lampu via jaringan LAN, dan sebagainya ? anda dapat membelinya di  
 
 
https://www.tokopedia.com/mikroholik

No comments:

Post a Comment

Silakan dikomentari