{"id":945,"date":"2023-06-13T03:04:24","date_gmt":"2023-06-12T20:04:24","guid":{"rendered":"https:\/\/delta-electronic.com\/Design\/Hardwares\/?p=945"},"modified":"2023-06-13T03:07:05","modified_gmt":"2023-06-12T20:07:05","slug":"dasar-pemrograman-bahasa-c-pada-mikrokontroler-1","status":"publish","type":"post","link":"https:\/\/delta-electronic.com\/Design\/Hardwares\/dasar-pemrograman-bahasa-c-pada-mikrokontroler-1\/","title":{"rendered":"DASAR PEMROGRAMAN BAHASA C PADA MIKROKONTROLER (1)"},"content":{"rendered":"<ol>\n<li style=\"font-weight: 400;\"><strong> Struktur Dasar Program C<\/strong><\/li>\n<\/ol>\n<p style=\"font-weight: 400;\">Struktur dasar Program C terdiri dari bagian-bagian berikut:<\/p>\n<ul style=\"font-weight: 400;\">\n<li>Bagian include<\/li>\n<li>Bagian fungsi<\/li>\n<li>Bagian Blok Main<\/li>\n<li>Bagian Komentar<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"http:\/\/delta-electronic.com\/article\/wp-content\/uploads\/2020\/02\/struktur-data.jpg\" \/><\/p>\n<p style=\"text-align: center;\"><strong>Struktur Data Bahasa C<\/strong><\/p>\n<p style=\"font-weight: 400;\"><strong>Bagian Include<\/strong><\/p>\n<p style=\"font-weight: 400;\">Bagian include biasanya terdiri dari header file, yaitu sebuah file yang berisi fungsi-fungsi yang sering dipakai dan dikelompokkan pada file-file tertentu agar dapat digunakan oleh program C yang lain<\/p>\n<p style=\"font-weight: 400;\"><strong>Bagian deklarasi<\/strong><\/p>\n<p style=\"font-weight: 400;\">Merupakan bagian yang mendeklarasikan label menjadi konstanta-konstanta tertentu di mana konstanta tersebut bisa berupa nilai atau dapat juga berupa sebuah kalimat.<\/p>\n<p style=\"font-weight: 400;\">Contoh:<\/p>\n<p>#define TXD_OUT\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/label TXD_OUT didefinisikan sebagai nilai 1<\/p>\n<p>#define TXD_HIGH\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 PORTD|=(1&lt;&lt;TXD_OUT)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/label TXD_HIGH didefinisikan menjadi kalimat<\/p>\n<p style=\"padding-left: 400px;\">\/\/PORTD|=(1&lt;&lt;TXD_OUT) sehingga dengan menuliskan<\/p>\n<p style=\"padding-left: 400px;\">\/\/TXD_HIGH berarti sama dengan<\/p>\n<p style=\"padding-left: 400px;\">\/\/menuliskan syntax PORTD|=(1&lt;&lt;TXD_OUT)<\/p>\n<p>&nbsp;<\/p>\n<h5 style=\"font-weight: 400;\"><\/h5>\n<p style=\"font-weight: 400;\"><strong>Bagian Fungsi<\/strong><\/p>\n<p style=\"font-weight: 400;\">Merupakan bagian dari program yang akan sering digunakan dan dipanggil berulang-ulang sehingga sebaiknya ditulis sebagai fungsi agar dapat dipanggil setiap saat tanpa harus menuliskan ulang isinya.<\/p>\n<p style=\"font-weight: 400;\">Contoh di atas adalah fungsi Inisialisasi USART . Nama Fungsi diawali dengan void artinya fungsi tersebut tidak memiliki nilai yang harus dikembalikan. Di depan nama fungsi terdapat deklarasi variable yaitu unsigned int baud di mana variable tersebut harus diisi nilai tertentu sebelum fungsi dipanggil. Dalam fungsi USART_INIT ini\u00a0 variable baud diisi dengan nilai MYUBRR terlebih dahulu sebelum dipanggil, sehingga pada saat fungsi dijalankan variable Baud telah terisi dengan nilai MYUBRR.<\/p>\n<p style=\"font-weight: 400;\">Untuk fungsi yang membutuhkan nilai yang harus dikembalikan contohnya adalah sebagai berikut.<\/p>\n<h5 style=\"font-weight: 400;\">unsigned char USART_Receive (void){<\/h5>\n<h5 style=\"font-weight: 400;\">while(!(UCSRA&amp;(1&lt;&lt;RXC)));<\/h5>\n<h5 style=\"font-weight: 400;\">return(UDR);<\/h5>\n<h5 style=\"font-weight: 400;\">}<\/h5>\n<p style=\"font-weight: 400;\">Nilai yang akan dikembalikan ditentukan dalam bentuk unsigned char sehingga nama fungsi akan diawali dengan tipe tersebut. Karena tidak membutuhkan nilai yang harus dibawa saat dipanggil maka di sebelah kanan nama fungsi diberikan (void) yang berarti kosong.<\/p>\n<p style=\"font-weight: 400;\">Setelah fungsi dijalankan, di bagian akhir ditambahkan return (UDR) artinya nilai yang dikembalikan saat fungsi ini selesai dijalankan adalah data yang tersimpan pada register UDR, di mana pada ATMega8535 nilai ini adalah nilai yang diterima pada register data USART.<\/p>\n<p style=\"font-weight: 400;\"><strong>Blok Main<\/strong><\/p>\n<p style=\"font-weight: 400;\">Merupakan bagian dari jalannya program utama di mana bagian adalah tempat kita menuliskan program. Bagian ini diawali dengan { dan diakhiri dengan }.<\/p>\n<p style=\"font-weight: 400;\"><strong>Bagian Komentar<\/strong><\/p>\n<p style=\"font-weight: 400;\">Bagian ini adalah bagian yang menyimpan catatan dari pemrogram agar dapat dengan mudah diingat cara kerja pada program tersebut. Bagian ini diawali dengan tanda \/\/ yang merupakan indikasi sebagai bagian yang tidak perlu diproses saat compile.<\/p>\n<ol start=\"2\">\n<li style=\"font-weight: 400;\"><strong> Variabel, tipe data dan konstanta<\/strong><\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/delta-electronic.com\/article\/wp-content\/uploads\/2020\/02\/variable-tipe-data-konstanta-c-microcontroller.jpg\" \/><\/p>\n<p style=\"text-align: center;\"><strong>Variabel, tipe data dan konstanta<\/strong><\/p>\n<p style=\"font-weight: 400;\">Gambar di atas adalah cara penulisan variable, setiap variable terlebih dahulu dituliskan dengan diawali tipe data dari variable dan kemudian dilanjutkan dengan nama variable. Variabel juga dapat langsung diberi nilai awal.<\/p>\n<p style=\"font-weight: 400;\">Hal yang perlu diperhatikan dalam membuat variable adalah:<\/p>\n<p style=\"font-weight: 400;\">&#8211;\u00a0Jangan menggunakan angka di bagian awal variable<\/p>\n<p style=\"font-weight: 400;\">&#8211;\u00a0Jangan menggunakan kata-kata khusus yang sudah digunakan pada bahasa C seperti if, void, for dll<\/p>\n<p style=\"font-weight: 400;\">&#8211;\u00a0Penulisan huruf kecil dan besar sifatnya sensitive sehingga variable yang tertulis dengan huruf besar akan berbeda dengan variable yang tertulis dengan huruf kecil.<\/p>\n<p style=\"font-weight: 400;\">&#8211;\u00a0Disarankan menggunakan underscore untuk variable yang lebih dari satu kata<\/p>\n<p style=\"font-weight: 400;\">Contoh program yang menggunakan variable adalah sebagai berikut<\/p>\n<p style=\"font-weight: 400;\">#include &lt;avr\/io.h&gt;<\/p>\n<p style=\"font-weight: 400;\">Int main (){<\/p>\n<p style=\"font-weight: 400;\">Unsigned char data_port;<\/p>\n<p style=\"font-weight: 400;\">data_port=PINB;<\/p>\n<p style=\"font-weight: 400;\">Artinya data pada Port B diambil dan diisikan ke variable data_port yang tipenya unsigned char.<\/p>\n<p style=\"font-weight: 400;\"><strong>Tipe data dalam Bahasa C<\/strong><\/p>\n<table style=\"font-weight: 400;\" width=\"488\">\n<tbody>\n<tr>\n<td width=\"64\"><strong>Tipe Data<\/strong><\/td>\n<td width=\"176\"><strong>Ukuran<\/strong><\/td>\n<td width=\"137\"><strong>Panjang<\/strong><\/td>\n<td width=\"111\"><strong>Contoh<\/strong><\/td>\n<\/tr>\n<tr>\n<td width=\"64\">Char<\/td>\n<td width=\"176\">1 byte<\/td>\n<td width=\"137\">-128 \u2013 127<\/td>\n<td width=\"111\">A\u2019,&#8217;a\u2019,&#8217;3\u2032<\/td>\n<\/tr>\n<tr>\n<td width=\"64\">int<\/td>\n<td width=\"176\">2 byte<\/td>\n<td width=\"137\">\u2013 32768 \u2013 32767<\/td>\n<td width=\"111\">32, 256, 100<\/td>\n<\/tr>\n<tr>\n<td width=\"64\">float<\/td>\n<td width=\"176\">4 byte<\/td>\n<td width=\"137\">1.2E-38 \u2013 3.4E+38<\/td>\n<td width=\"111\">3.5, 5.6, 7.5<\/td>\n<\/tr>\n<tr>\n<td width=\"64\">double<\/td>\n<td width=\"176\">8 byte<\/td>\n<td width=\"137\">2.3E-308 \u2013 1.7E+308<\/td>\n<td width=\"111\">2.56, 3.57, 4.12<\/td>\n<\/tr>\n<tr>\n<td width=\"64\">void<\/td>\n<td colspan=\"3\" width=\"424\">tidak ada data<\/td>\n<\/tr>\n<tr>\n<td width=\"64\">array<\/td>\n<td width=\"176\">tergantung nilai ukuran array<\/td>\n<td width=\"137\"><\/td>\n<td width=\"111\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"font-weight: 400;\"><strong>Konstanta dalam Bahasa C<\/strong><\/p>\n<p style=\"font-weight: 400;\">Konstanta adalah sebuah variable yang sifatnya permanen dan tidak dapat diubah-ubah. Terdapat dua cara untuk mendefinisikan konstanta.<\/p>\n<ol>\n<li style=\"font-weight: 400;\">Menggunakan define<\/li>\n<\/ol>\n<p style=\"font-weight: 400;\">#define BAUD 115200<\/p>\n<p style=\"font-weight: 400;\">#define MYUBRR FOSC\/8\/BAUD-1<\/p>\n<p style=\"font-weight: 400;\">Di sini konstanta BAUD diisi dengan 115200 dan MYUBRR diisi dari persamaan MYUBRR=FOSC\/8\/BAUD-1<\/p>\n<ol start=\"2\">\n<li style=\"font-weight: 400;\">Menggunakan const<\/li>\n<\/ol>\n<p style=\"font-weight: 400;\">Const data_port = 0\u00d755;<\/p>\n<p style=\"font-weight: 400;\">Const menggunakan \u201c;\u201d sebagai penutup<\/p>\n<p style=\"font-weight: 400;\"><strong>Operator dalam Bahasa C<\/strong><\/p>\n<table style=\"height: 1425px;\" width=\"570\">\n<tbody>\n<tr>\n<td colspan=\"2\" width=\"415\"><strong>1. Operator Aritmatika<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Penjumlahan<\/td>\n<td>+<\/td>\n<\/tr>\n<tr>\n<td>Pengurangan<\/td>\n<td>&#8211;<\/td>\n<\/tr>\n<tr>\n<td>Perkalian<\/td>\n<td>*<\/td>\n<\/tr>\n<tr>\n<td>Pembagian<\/td>\n<td>\/<\/td>\n<\/tr>\n<tr>\n<td>Sisa Bagi<\/td>\n<td>%<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\"><strong>2. Operator Penugasan<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Pengisian Nilai<\/td>\n<td>=<\/td>\n<\/tr>\n<tr>\n<td>Pengisian dan Penambahan<\/td>\n<td>\u00a0+=<\/td>\n<\/tr>\n<tr>\n<td>Pengisian dan Perkalian<\/td>\n<td>\u00a0*=<\/td>\n<\/tr>\n<tr>\n<td>Pengisian dan Pembagian<\/td>\n<td>\u00a0\/=<\/td>\n<\/tr>\n<tr>\n<td>Pengisian dan Sisa Bagi<\/td>\n<td>\u00a0%=<\/td>\n<\/tr>\n<tr>\n<td>Pengisian dan Shift Left<\/td>\n<td>\u00a0&lt;&lt;=<\/td>\n<\/tr>\n<tr>\n<td>Pengisian dan Shift Right<\/td>\n<td>\u00a0&gt;&gt;=<\/td>\n<\/tr>\n<tr>\n<td>Pengisian dan bitwise AND<\/td>\n<td>\u00a0&amp;=<\/td>\n<\/tr>\n<tr>\n<td>Pengisian dan bitwise OR<\/td>\n<td>\u00a0|=<\/td>\n<\/tr>\n<tr>\n<td>Pengisian dan bitwise XOR<\/td>\n<td>\u00a0^=<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\"><strong>3. Operator Pembanding<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Lebih Besar<\/td>\n<td>\u00a0&gt;<\/td>\n<\/tr>\n<tr>\n<td>Lebih Kecil<\/td>\n<td>\u00a0&lt;<\/td>\n<\/tr>\n<tr>\n<td>Sama dengan<\/td>\n<td>\u00a0==<\/td>\n<\/tr>\n<tr>\n<td>Tidak Sama dengan<\/td>\n<td>\u00a0!=<\/td>\n<\/tr>\n<tr>\n<td>Lebih besar sama dengan<\/td>\n<td>\u00a0&gt;=<\/td>\n<\/tr>\n<tr>\n<td>Lebih kecil sama dengan<\/td>\n<td>\u00a0&lt;=<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\"><strong>4. Operator Logika<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Logika AND<\/td>\n<td>&amp;&amp;<\/td>\n<\/tr>\n<tr>\n<td>Logika OR<\/td>\n<td>||<\/td>\n<\/tr>\n<tr>\n<td>Negasi \/ kebalikan<\/td>\n<td>!<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\"><strong>5. Operator Bitwise<\/strong><\/td>\n<\/tr>\n<tr>\n<td>AND<\/td>\n<td>&amp;<\/td>\n<\/tr>\n<tr>\n<td>OR<\/td>\n<td>|<\/td>\n<\/tr>\n<tr>\n<td>XOR<\/td>\n<td>^<\/td>\n<\/tr>\n<tr>\n<td>Not \/ komplemen<\/td>\n<td>~<\/td>\n<\/tr>\n<tr>\n<td>Left Shift<\/td>\n<td>&lt;&lt;<\/td>\n<\/tr>\n<tr>\n<td>Right Shift<\/td>\n<td>&gt;&gt;<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\"><strong>6. Operator Lain-lain<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Alamat memori<\/td>\n<td>&amp;\u00a0 untuk mengambil alamat memori<\/td>\n<\/tr>\n<tr>\n<td>Pointer<\/td>\n<td>*\u00a0 untuk membuat pointer<\/td>\n<\/tr>\n<tr>\n<td>Ternary<\/td>\n<td>?: untuk membuat kondisi<\/td>\n<\/tr>\n<tr>\n<td>Increment<\/td>\n<td>\u00a0++ untuk\u00a0 menambah 1<\/td>\n<\/tr>\n<tr>\n<td>Decrement<\/td>\n<td>\u00a0&#8212; untuk mengurangi 1<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p><strong>DELTA ELECTRONIC<\/strong><\/p>\n<p style=\"font-weight: 400;\"><strong>Paulus Andi Nalwan, ST<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Struktur Dasar Program C Struktur dasar Program C terdiri dari bagian-bagian berikut: Bagian include Bagian fungsi Bagian Blok Main Bagian Komentar Struktur Data Bahasa C Bagian Include Bagian include biasanya terdiri dari header file, yaitu sebuah file yang berisi fungsi-fungsi yang sering dipakai dan dikelompokkan pada file-file tertentu agar dapat digunakan oleh program C yang [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[162],"tags":[94,163,164,165,166,104,167,168,169,170,96,95,171],"class_list":["post-945","post","type-post","status-publish","format-standard","hentry","category-bahasa-c","tag-arduino","tag-at89s51","tag-at89s52","tag-avr","tag-bahasa-assembly","tag-bahasa-c","tag-bahasa-pemrograman","tag-c","tag-downloader-at89s51","tag-downloader-at89s52","tag-microcontroller","tag-mikrokontroler","tag-struktur-bahasa-c"],"_links":{"self":[{"href":"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-json\/wp\/v2\/posts\/945"}],"collection":[{"href":"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-json\/wp\/v2\/comments?post=945"}],"version-history":[{"count":9,"href":"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-json\/wp\/v2\/posts\/945\/revisions"}],"predecessor-version":[{"id":954,"href":"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-json\/wp\/v2\/posts\/945\/revisions\/954"}],"wp:attachment":[{"href":"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-json\/wp\/v2\/media?parent=945"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-json\/wp\/v2\/categories?post=945"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-json\/wp\/v2\/tags?post=945"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}