{"id":334,"date":"2020-02-10T13:23:26","date_gmt":"2020-02-10T06:23:26","guid":{"rendered":"http:\/\/wiki.rdd-tech.com\/?post_type=ht_kb&#038;p=334"},"modified":"2020-08-18T09:17:28","modified_gmt":"2020-08-18T02:17:28","slug":"dasar-pemrograman-arduino-ide","status":"publish","type":"ht_kb","link":"https:\/\/wiki.rdd-tech.com\/index.php\/knowledge-base\/dasar-pemrograman-arduino-ide\/","title":{"rendered":"Dasar Pemograman Arduino IDE"},"content":{"rendered":"\n<p class=\"has-text-align-left\">Pada artikel sebelumnya sudah dijelaskan bahwa strukur dari pemograman Arduino IDE hanya ada 2, yaitu &#8220;void setup()&#8221;dan&#8221;void loop()&#8221;. Bagian Void Setup() adalah bagian yang hanya dijalankan sekali setelah program aktif, sedangkan void loop() merupakan bagian yang akan terus dijalankan.<\/p>\n\n\n\n<p>Pada artikel kali ini kita akan membahas tentang Tipe Data,<em>Operator,Control Statement,Loops,Delay.<\/em> <\/p>\n\n\n\n<h2 id=\"a-tipe-data\" >A. Tipe Data<\/h2>\n\n\n\n<p>Tipe data pada arduino memiliki kesamaan dengan tipe data yang dimiliki oleh bahasa c\/c++, karena pada dasarnya bahasa pemograman arduino merupakan bahasa c \/c++ yang telah dimodifikasi. Setiap <em>Board<\/em> Arduino memiliki memory yang kecil, maka dari itu pemilihan tipe data yang tepat akan membuat pemakaian memory lebih efisien. Berikut beberapa tipe data yang ada di Arduino IDE:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Tipe Data<\/td><td>Ukuran Bit<\/td><td>Rentang Nilai<\/td><\/tr><tr><td>bool<\/td><td>8 Bit<\/td><td>True atau false<\/td><\/tr><tr><td>char <\/td><td>8 Bit<\/td><td>-128 sampai 127<\/td><\/tr><tr><td>unsigned char<\/td><td>8 Bit<\/td><td>0 sampai 255<\/td><\/tr><tr><td>Byte<\/td><td>8 Bit<\/td><td>0 sampai 255<\/td><\/tr><tr><td>int<\/td><td>16 Bit<\/td><td>-32768 sampai 32767 <\/td><\/tr><tr><td>unsigned int<\/td><td>16 Bit<\/td><td>0 sampai 65535 <\/td><\/tr><tr><td>word <\/td><td>16 Bit<\/td><td>0 sampai 65535<\/td><\/tr><tr><td>long<\/td><td>32 Bit<\/td><td>-2,147,483,648 sampai 2,147,483,647  <\/td><\/tr><tr><td> unsigned long <\/td><td>32 Bit<\/td><td>0 sampai 4.294.967.295 <\/td><\/tr><tr><td>float<\/td><td>32 Bit<\/td><td> -3,4028235E38 sampai 3,4028235E38 <\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p> Tipe data float dikhususkan untuk data yang memiliki bilangan dibelakang koma, contoh: 2,5 ; 0,55.<\/p>\n\n\n\n<h2 id=\"b-operator\" >B. Operator<\/h2>\n\n\n\n<p>Operator dalam pemograman merupakan simbol yang menjelaskan kepada <em>compiler<\/em> untuk melakukan fungsi matematika dan logika khusus. Pada arduino terdapat banyak operator bawaan antara lain:<\/p>\n\n\n\n<ol><li>Operator Aritmatika.<\/li><li>Operator Pembanding.<\/li><li>Operator Boolean.<\/li><\/ol>\n\n\n\n<h4 id=\"1-operator-aritmatika\" >1.Operator Aritmatika<\/h4>\n\n\n\n<p>Operator aritmatika pada arduino meliput:<\/p>\n\n\n\n<ul><li>Operator Penugasan (=) berfungsi untuk menyimpan nilai yang ada di sebelah tanda (=)  kanan ke dalam variabel yang ada di sebelah kiri tanda (=)<\/li><li>Penjumlahan (+) berfungsi menjumlahkan operan.<\/li><li>Pengurangan (-) berfungsi mengurangi operan .<\/li><li>Perkalian (*) berfungsi mengalikan operan.<\/li><li>Pembagian (:) berfungsi membagi operan.<\/li><li>Modulo (%) berfungsi menghasilkan sisa dari nilai bagi.   <\/li><\/ul>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<p> Contoh Program :<\/p>\n\n\n\n<pre class=\"wp-block-verse\">int a;<br>int b;<br>int c;<br>void <strong>setup()<\/strong><br>{<br>    a=10;<br>    b=5;<br><br>} <br>void <strong>loop<\/strong> () { <br>&nbsp;&nbsp; c = a + b;<br>&nbsp;&nbsp; c = a - b;<br>&nbsp;&nbsp; c = a * b;<br>&nbsp;&nbsp; c = a \/ b;<br>&nbsp;&nbsp; c = a % b; ;<br>} <\/pre>\n\n\n\n<p><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p>Hasil:<\/p>\n\n\n\n<pre class=\"wp-block-verse\"><br>c = 15<br>c = 5<br>c = 50<br>c = 2<br>c = 0 <\/pre>\n<\/div>\n<\/div>\n\n\n\n<h4 id=\"2-operator-pembanding\" >2.Operator Pembanding<\/h4>\n\n\n\n<p>Operator pembanding pada arduino meliputi:<\/p>\n\n\n\n<ul><li>Sama dengan (==) berfungsi untuk membandingkan 2 nilai operan,jika kondisi 2 operan tersebut sama maka kondisi akan bernilai benar.<\/li><li>Tidak Sama Dengan (!=) berfungsi untuk  membandingkan  2 nilai operan, jika kondisi 2 operan tersebut <strong>tidak sama<\/strong> maka kondisi akan bernilai benar.<\/li><li>Lebih kecil dari(&lt;) berfungsi untuk  membandingkan 2 nilai operan, jika nilai operan yang ada di sebelah kiri tanda (&lt;) lebih kecil dari nilai operan yang ada di sebelah kanan tanda (&lt;) maka kondisi akan bernilai benar.<\/li><li> Lebih besar dari(&gt;) berfungsi untuk  membandingkan 2 nilai operan, jika nilai operan yang ada di sebelah kiri tanda (&gt;) lebih besar dari nilai operan yang ada di sebelah kanan tanda (&gt;) maka kondisi akan bernilai benar.<\/li><li> Lebih kecil sama dengan dari(&lt;=) berfungsi untuk  membandingkan 2 nilai operan, jika nilai operan yang ada di sebelah kiri tanda (&lt;=) lebih kecil atau sama dengan dari nilai operan yang ada di sebelah kanan tanda (&lt;=) maka kondisi akan bernilai benar. <\/li><li>  Lebih besar sama dengan dari(&gt;=) berfungsi untuk  membandingkan 2 nilai operan, jika nilai operan yang ada di sebelah kiri tanda (=&gt;) lebih besar atau sama dengan dari nilai operan yang ada di sebelah kanan tanda (=&gt;) maka kondisi akan bernilai benar.   <\/li><\/ul>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<p> Contoh Program :<\/p>\n\n\n\n<pre class=\"wp-block-verse\">int a;<br>int b;<br>bool c;<br>void <strong>setup()<\/strong><br>{<br>    a=10;<br>    b=5;<br>    c=false;<br><br>} <br>void <strong>loop<\/strong> () { <br><br>&nbsp;&nbsp; <strong>if<\/strong>(a == b)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{c = true;}<br>&nbsp;&nbsp; <strong>else<\/strong><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{c = false;}<br>&nbsp;<br>&nbsp;&nbsp; <strong>if<\/strong>(a != b)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{c = true;}<br>&nbsp;&nbsp; <strong>else<\/strong><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{c = false;}<br>&nbsp;&nbsp; <br>&nbsp;&nbsp; <strong>if<\/strong>(a &lt; b)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{c = true;}<br>&nbsp;&nbsp; <strong>else<\/strong><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{c = false;}<br>&nbsp;&nbsp; <br>&nbsp;&nbsp; <strong>if<\/strong>(a &gt; b)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{c = true;}<br>&nbsp;&nbsp; <strong>else<\/strong><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{c = false;}<br>&nbsp;&nbsp; <br>&nbsp;&nbsp; <strong>if<\/strong>(a &lt;= b)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{c = true;}<br>&nbsp;&nbsp; <strong>else<\/strong><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{c = false;}<br>&nbsp;&nbsp; <br>&nbsp;&nbsp; <strong>if<\/strong>(a &gt;= b)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{c = true;}<br>&nbsp;&nbsp; <strong>else<\/strong><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{c = false;}<br>} <\/pre>\n\n\n\n<p><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p>Hasil:<\/p>\n\n\n\n<pre class=\"wp-block-verse\"><br>c = false<br>c = true<br>c = false<br>c = true<br>c = false<br>c = false <\/pre>\n<\/div>\n<\/div>\n\n\n\n<h4 id=\"3-operator-boolean\" >3.Operator Boolean<\/h4>\n\n\n\n<p>Operator boolean merupakan operator yang mirip seperti gerbang logika\/ Operator ini memiliki operasi AND,OR dan NOT. Berikut penjelasannya:<\/p>\n\n\n\n<ul><li>AND (&amp;&amp;), merupakan operasi logika AND yang jika nilai kedua operan tidak bernilai nol maka kondisi menjadi benar.<\/li><li>OR (||), merupakan operasi logika OR yang jika nilai salah satu dari 2 operan bernilai tidak nol maka kondisi menjadi benar<\/li><li>NOT (!), merupakan operasi logika NOT yang digunakan untuk membalikan keadaan logika dari operan, jika nilai operan salah maka operator logika NOT akan membuat kondisi tersebut menjadi benar.<\/li><\/ul>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<p> Contoh Program :<\/p>\n\n\n\n<pre class=\"wp-block-verse\">int a;\nint b;\nbool c;\nvoid <strong>setup()<\/strong>\n{\n    a=10;\n    b=5;\n    c=false;\n\n} \nvoid <strong>loop<\/strong> () { \n\n <strong>if<\/strong>((a &gt; b)&amp;&amp; (b &lt; a))\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{c = true;}\n&nbsp;&nbsp; <strong>else<\/strong>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{c = false;}\n&nbsp;\n&nbsp;&nbsp; <strong>if<\/strong>((a == b)|| (b &lt; a))\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{c = true;}\n&nbsp;&nbsp; <strong>else<\/strong>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{c = false;}\n&nbsp;\n&nbsp;&nbsp;if(!(a == b))\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{c = true;}\n&nbsp;&nbsp; <strong>else<\/strong>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{c = false; }\n} <\/pre>\n\n\n\n<p><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p>Hasil:<\/p>\n\n\n\n<pre class=\"wp-block-verse\">c = true<br>c = true<br>c = true <\/pre>\n<\/div>\n<\/div>\n\n\n\n<h2 id=\"c-control-statement\" >C. Control Statement<\/h2>\n\n\n\n<p><em>Control Statement <\/em>merupakan bagian yang penting pada sebuah program<em>. <\/em>Sederhananya<em> control statement<\/em> berfungsi membuat program mengetahui apa yang harus dikerjakan jika terdapat statement\/kondisi yang telah terpenuhi. <em>Control statement <\/em>pada arduino IDE yaitu &#8220;if&#8221; dan &#8220;switch&#8221;.<\/p>\n\n\n\n<h4 id=\"1-if\" > 1.If <\/h4>\n\n\n\n<p>Perintah &#8220;if&#8221; merupakan dasar dari semua bahasa pemograman. Perintah tersebut dapat melakukan sesuatu jika kondisi yang ada dalam kurung &#8220;()&#8221; terpenuhui. Perintah &#8220;if&#8221; pada arduino IDE dapat di tulis seperti dibawah ini.<\/p>\n\n\n\n<pre class=\"wp-block-verse\">if (kondisi)<br>{<br>     \/\/yang akan dilakukan jika kondisi terpenuhi<br>}<\/pre>\n\n\n\n<p>Variasi dalam <em>statement <\/em>&#8220;if &#8220;antara lain:<\/p>\n\n\n\n<ul><li>if&#8230;.else : Sama dengan statement &#8220;if&#8221; tetapi jika kondisi tidak terpenuhi maka program juga akan melakukan sesuatu.<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-verse\"> if (kondisi)<br>{<br>     \/\/yang akan dilakukan jika kondisi terpenuhi<br>} <br>else<br>{<br>      \/\/yang akan dilakukan jika kondisi tidak terpenuhi <br>}<\/pre>\n\n\n\n<ul><li> if&#8230;.else if&#8230;.else : Pada <em>statement<\/em> ini jika kondisi pertama tidak terpenuhi maka kondisi ke dua akan di cek oleh program, jika kondisi kedua tidak terpenuhi maka kondisi ke tiga akan dicek, begitu seterusnya sampai dengan statement terakhir.<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-verse\"> if (kondisi)<br>{<br>     \/\/Akan dilakukan jika kondisi terpenuhi<br>} <br>else if (kondisi ke 2)<br>{<br>      \/\/Akan dilakukan jika kondisi ke 2   terpenuhi <br>} <br> else<br>{<br>      \/\/Akan dilakukan jika semua kondisi tidak terpenuhi <br>} <\/pre>\n\n\n\n<h4 id=\"2-switch\" >2.Switch<\/h4>\n\n\n\n<p>Perintah &#8220;switch&#8221; memilik cara kerja yang sama dengan perintah  if&#8230;else if, perintah &#8220;switch&#8221; akan membandingkan nilai yang terdapat dalam &#8220;case&#8221;, jika nilai yang di dalam &#8220;case&#8221; tersebut terpenuhi maka akan menjalankan perintah tertentu, setiap &#8220;case&#8221; akan di akhiri dengan &#8220;break&#8221;. Contoh dari perintah &#8220;switch&#8221; adalah sebagai berikut.<\/p>\n\n\n\n<pre class=\"wp-block-verse\">switch (var) \/\/variabel yang akan di bandingkan<br>{<br>      case \u20181\u2019: \/\/ nilai yang akan di bandingkan dengan variabel yang ada di dalam \"\"switch\"\"<br>              \/\/ jika  var=1, perintah akan dijalankan<br>      break; \/\/ mengakhiri setiap case <br><br>      case \u20182\u2019:<br>              \/\/ jika  var=2, perintah akan dijalankan <br>      break;<br>} <\/pre>\n\n\n\n<h4 id=\"3-while\" >3.While<\/h4>\n\n\n\n<p>Perintah while adalah perintah pada arduino yang akan melakukan pengulangan<em> <\/em> program  yang ada di dalam kurung kurawal &#8220;{}&#8221; sampai kondisi sudah tidak terpenuhi lagi.  Bentuk umum dari perintah while yaitu : <\/p>\n\n\n\n<pre class=\"wp-block-verse\"> while(var &lt; 50)\/\/kondisi yang harus terpenuhi agar terus berulang<br>{<br>        \/\/ program akan melakukan <em>looping <\/em>sebanyak 50 kali        <br>        myVar=myVar + 1; <br>} <\/pre>\n\n\n\n<h4 id=\"4-for-loop\" >4.For Loop<\/h4>\n\n\n\n<p>Perintah \u201cfor\u201d digunakan untuk mengulang suatu blok program yang terdapat di dalam kurung kurawal ({}) setelah perintah \u201cfor\u201d. perintah &#8220;for&#8221; biasanya digunakan untuk menyederhanakan suatu perintah. Format dan contoh penulisan perintah \u201cfor\u201d adalah sebagai berikut :<\/p>\n\n\n\n<pre class=\"wp-block-verse\">\/*\n    for (kondisi awal variabel ; tes kondisi ; proses increment variabel)\n    {\n                  \/\/perintah akan terus menerus dijalankan selama tes kondisi masih terpenuhi\n     } \n*\/\n\/\/Contoh:\n   for (int a=0 ; a&lt;10 ; a++)\n    {\n            int b=0;\n           Serial.println(b);       \n     }  <\/pre>\n\n\n\n<p>Pada contoh di atas dapat dijelaskan bahwa program tersebut akan mencetak nilai &#8220;b&#8221; di serial monitor sebanyak 10 kali. Hal itu terjadi karena nilai a setelah 10 kali pengulangan akan bernilai 10 yang artinya nilai a sudah tidak termasuk lagi dalam kodisi test &#8220;a&lt;10&#8221;, &#8220;a++&#8221; pada perintah tersebut maksudnya adalah &#8220;a=a+1&#8221;. Jadi jika kita ingin menambah nilai variabel dengan 1 dapat memakai code &#8220;a++&#8221;.<\/p>\n\n\n\n<h2 id=\"c-delay\" >  C.delay()<\/h2>\n\n\n\n<p>Delay() merupakan suatu fungsi yang terdapat dalam Arduino IDE yang berguna untuk menahan suatu program agar tidak melanjutkan perintah ke baris selanjutnya sampai <em>delay<\/em> yang telah ditentukan. Sintaks dari delay() yaitu:<\/p>\n\n\n\n<pre class=\"wp-block-verse\">delay( var);<\/pre>\n\n\n\n<p>Variabel &#8220;var&#8221; dalam kurung tersebut mempresentasikan <em>delay<\/em> yang akan di jalankan oleh program. Satuan untuk fungsi delay() adalah ms atau <em>mili seconds. <\/em>Dalam Arduino IDE tedapat juga delay yang satuannya adalah <em>microseconds<\/em> yaitu :<\/p>\n\n\n\n<pre class=\"wp-block-verse\"> delayMicroseconds(var);<\/pre>\n\n\n\n<h2 id=\"d-millis\" >D. millis()<\/h2>\n\n\n\n<p>Millis merupakan sebuah fungsi pada arduino IDE yang berfungsi sebagai pewaktu internal setiap 1 <em>milisecond<\/em> pada arduino. fungsi ini akan terus di jalankan walaupun arduino sedang mengerjakan perintah yang lain. Jadi dengan fungsi ini arduino dapat  melakukan <em>multi tasking<\/em>. Contoh pekerjaan multi tasking yang itu ketika LED pertama berkedip selama 1000ms dan LED kedua berkedip selama 2000ms. Jika kita menggunakan fungsi delay, pekerjaan tersebut tidak akan berjalan dengan semestinya. Jika memakai millis, pekerjaan tersebut dapat dikerjakan dengan baik.<\/p>\n\n\n\n<p>Contoh program blink dengan menggunakan fungsi millis():<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>unsigned long currentMillis;\nunsigned long previousMillis;\nunsigned int interval;\nint ledstate;\nvoid setup() {\n  Serial.begin(9600);\n  interval=1000; \/\/waktu yang ingin dicapai,satuannya ms \n  pinMode(LED_BUILTIN,OUTPUT);\n  ledstate=HIGH;\n  digitalWrite(LED_BUILTIN,ledstate);\n}\n\nvoid loop() {\n  currentMillis=millis();\/\/ menyimpan waktu saat ini pada variable \"currentmillis\"\n\n  if (currentMillis-previousMillis>=interval)\n  {\n    previousMillis=currentMillis; \/\/ jika waktu interval telah terpenuhi, nilai dari variabel \"currentMillis\" harus di simpan ke dalah variabel \"previousMillis\"\n    Serial.println(previousMillis);\n    \n    \/\/ mengecek kondisi LED, jika HIGH maka buat jadi LOW dan sebaliknya\n    if (ledstate==LOW)\n    {\n      ledstate=HIGH;\n    }\n    else\n    {\n      ledstate=LOW;\n    }\n    digitalWrite(LED_BUILTIN,ledstate);\n  }\n\n}<\/code><\/pre>\n","protected":false},"author":3,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0},"ht_kb_category":[4],"ht_kb_tag":[24,25,27],"_links":{"self":[{"href":"https:\/\/wiki.rdd-tech.com\/index.php\/wp-json\/wp\/v2\/ht_kb\/334"}],"collection":[{"href":"https:\/\/wiki.rdd-tech.com\/index.php\/wp-json\/wp\/v2\/ht_kb"}],"about":[{"href":"https:\/\/wiki.rdd-tech.com\/index.php\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/wiki.rdd-tech.com\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/wiki.rdd-tech.com\/index.php\/wp-json\/wp\/v2\/comments?post=334"}],"version-history":[{"count":32,"href":"https:\/\/wiki.rdd-tech.com\/index.php\/wp-json\/wp\/v2\/ht_kb\/334\/revisions"}],"predecessor-version":[{"id":1409,"href":"https:\/\/wiki.rdd-tech.com\/index.php\/wp-json\/wp\/v2\/ht_kb\/334\/revisions\/1409"}],"wp:attachment":[{"href":"https:\/\/wiki.rdd-tech.com\/index.php\/wp-json\/wp\/v2\/media?parent=334"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/wiki.rdd-tech.com\/index.php\/wp-json\/wp\/v2\/ht_kb_category?post=334"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/wiki.rdd-tech.com\/index.php\/wp-json\/wp\/v2\/ht_kb_tag?post=334"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}