Bahasa Pemrograman C
Setelah proses penginstalan software AVR berhasil, maka selanjutnya yang harus dipelajari adalah Bahasa Pemrograman AVR. AVR menggunakan bahasa pemrgraman C
Struktur pemrograman pada bahasa C sebenarnya terdiri dari beberapa bagian, yaitu :
- Judul (Header)
- Komentar
- Deklarasi konstanta dan atau variabel.
- Fungsi dan atau prosedur.
- Program utama
1. Judul (Header)
Header disini berisi include file(.h), yaitu library (pustaka) yang akan digunakan dalam pemrograman. Header disini fungsinya adalah untuk memanggil fungsi library yang akan kita gunakan

2. Komentar
- Komentar disini adalah sebagai detail, penanda, atau sebuah keterangan dari sebuah program atau fungsi yang akan kita tulis.
- Dalam bahasa C terdapat dua macam cara penulisan komentar:
- Pertama adalah "//" (tanpa tanda petik), yaitu penulisan dalam lingkup satu baris saja
- Kedua adalah "/**/" (tanpa tanda petik), yaitu penulisan komentar untuk satu atau beberapa baris.


3. Deklarasi Konstanta dan atau Variabel
Dalam bahasa C penulisan deklarasi suatu konstanta maupun variabel ada dua macam:
- Pertama adalah deklarasi konstanta dan variabel global. Deklarasi yang satu ini seperti namanya (global) yaitu deklarasi yang isinya dapat kita panggil dalam jangkauan yang lebih luas.
- Kedua adalah deklarasi konstanta dan variabel lokal. Deklarasi ini hanya bisa diakses oleh satu program saja

4. Fungsi atau Prosedur
Dalam bahasa C terdapat istilah fungsi atau prosedur, yang dimaksud disini adalah sebuah sub program. Dalam pembuatan sebuah program yang memiliki fungsi banyak, atau membangun suatu program yang besar, fitur sub program akan sangat membantu programmer maupun pengembang dalam proses maintenance program tersebut. Sub program disini bekerja sendiri dan kita hanya perlu memanggil fungsi sub program dalam program utama sesuai dengan kebutuhan

.

.

5. Program Utama
Program utama adalah inti dari semua pemrograman dalam bahasa C. Jika tidak ada program utama maka program tidak akan bisa dijalankan.

.

Contoh Penulisan Program Bahasa C
- { } curly braces / Kurung Kurawal
- Mendefinisikan awal dan akhir dari sebuah blok fungsi
- ; Semicolon / Titik Koma
- Semicolon harus diberikan pada setiap statement program yang kita buat, ini merupakan pembatas setiap statement program yang di buat.

Berikut ini Video Penjelasannya:
Variabel
- Variabel digunakan untuk menyimpan nilai dan nilai tersebut dapat berubah selama program berjalan
- Ketika mendeklarisikan variable harus di ikut sertakan tipe data variabel serta nama variabel.

Tipe Data
Tipe data (data type) pada pemrograman adalah sebuah kategori atau jenis dari nilai yang dapat dioperasikan atau disimpan dalam variabel. Setiap tipe data memiliki batasan nilai tertentu, cara penyimpanan, dan cara operasi yang berbeda. Dalam pemrograman, tipe data sangat penting karena membantu memastikan bahwa nilai yang diolah sesuai dengan tipe yang diharapkan, dan juga membantu menentukan alokasi memori yang diperlukan untuk variabel yang digunakan.

Contoh tipe data dalam pemrograman antara lain: integer, float, double, boolean, char, string, dan lain sebagainya. Setiap tipe data memiliki ciri khasnya masing-masing dan digunakan untuk keperluan yang berbeda. Sebagai contoh, tipe data integer digunakan untuk menyimpan bilangan bulat, sedangkan tipe data float dan double digunakan untuk menyimpan bilangan desimal. Tipe data boolean digunakan untuk menyimpan nilai true atau false, sedangkan tipe data char digunakan untuk menyimpan karakter tunggal.

- Void
- Kata kunci void hanya digunakan untuk mendeklarasikan fungsi
- Void mengindikasikan bahwa fungsi tidak mengembalikan nilai apapun setelah dipanggil.

- Boolean
- Tipe data Boolean hanya memiliki dua nilai yaitu true atau false
- Tipe data ini menempati satu bit di memori.

- Char
- Tipe data ini menggunakan satu byte untuk menyimpan sebuah nilai karakter
- Mempunyai rentang nilai -127 sampai 128
- Tipe data ini juga bisa bernilai nomer ASCII, seperti 97 untuk mewakili karakter 'a‘


- unsigned char
- Tipe data ini menempati satu byte dalam memori dan mempunyai rentang nilai 0 sampai 255

- int
- Integer merupakan tipe data yang digunakan untuk menyimpan angka dan sudah built-in dalam bahasa pemrograman
- Tipe data ini menyimpan nilai 16-bit (2 byte) dengan rentang nilai -32.768 sampai 32.767

- unsigned int
- Tipe data ini hampir sama dengan int yang berukuran 2 byte
- Unsigned int tidak menyimpan nilai negatif. Rentang nilai 0 sampai 65.535

- long
- Long mempunyai ukuran yang lebih banyak dan menyimpan 32-bit (4 byte) dari -2.147.438.648 sampai 2.147.438.647

- unsigned long
- Tipe data ini hampir sama dengan Long, bedanya unsigned long tidak menyimpan nilai negatif. Rentang ukuran 0 sampai 4.294.967.295

- float
- Tipe data floating-point (32-bit atau 4 bytes) menyimpan nilai desimal dengan ukuran -3,4E38 sampai 3,4E38

- double
- Tipe data ini hampir sama dengan float, namun memiliki presisi yang tinggi yaitu menyimpan 8 bytes (64-bit). -1,7E308 sampai 1,7E308

Berikut ini Video Penjelasannya:
Operator Aritmatik
Operator aritmatik terdiri dari penjumlahan, pengurangan, perkalian, pembagian, dan sisa hasil bagi. Dalam menggunakan operator aritmatik, Programmer diharuskan berhati-hati dalam menggunakan tipe data (terhadap overflow data). Diasumsikan A = 10 dan B =20

Contoh-contoh:






Compound Operator / Operator Majemuk
Operator Majemuk merupakan kombinasi dari aritmatik dengan sebuah variabel. Diasumsikan variabel A = 10 dan B = 20.

Contoh:

Operator Perbandingan
Operator ini digunakan untuk membandingkan dua variabel dan apabila terpenuhi akan bernilai 1 atau true, jika sebaliknya maka false. Diasumsikan variabel A = 10 dan B = 20.

Contoh:

Operator Logika
Operator ini digunakan untuk membandingkan 2 ekspresi dan menghasilkan nilai balik True atau False tergantung dari operator yang di gunakan. Diasumsikan variabel A = ‘1’ dan B = ‘0’.

Contoh:

Berikut ini Video Penjelasannya:
Operator Bitwise (Manipulasi Tiap Bit)
Operator bitwise digunakan untuk memanipulasi bit-bit dari nilai data yang ada di memori. Diasumsikan variabel A = 12, B = 25 (desimal) dan C = 14 (0000 1110).

1. OPERASI GESER KIRI (<<)
Operasi geser kiri merupakan operasi yang akan menggeser bit-bit ke kiri sehingga bit-0 akan berpindah ke bit-1 kemudian bit-1 akan berpindah ke bit-2 dan seterusnya. Operasi geser kiri membutuhkan dua buah operan, di sebelah kiri tanda << merupakan nilai yang akan digeser sedangkan di sebelah kanannya merupakan jumlah bit pergeseran.

Contoh:


2. OPERASI GESER KANAN (>>)
Operasi geser kanan merupakan operasi yang akan menggeser bit-bit ke kanan sehingga bit-7 akan berpindah ke bit-6 kemudian bit-6 akan berpindah ke bit-5 dan seterusnya. Operasi geser kanan membutuhkan dua buah operan, di sebelah kiri tanda >> merupakan nilai yang akan digeser sedangkan di sebelah kanannya merupakan jumlah bit pergeseran.

Contoh:


3. OPERASI BITWISE AND ( & )
Operasi bitwise AND akan melakukan operasi AND pada masing-masing bit, sehingga bit-0 akan dioperasikan dengan bit-0 dan bit 1 dan seterusnya.


Contoh:


4. OPERASI BITWISE OR ( | )
Operasi bitwise OR akan melakukan operasi OR pada masing-masing bit, sehingga bit-0 akan dioperasikan dengan bit-0 dan bit-1 dan seterusnya.


Contoh:


5. OPERASI BITWISE OR ( ^ )
Operasi bitwise XOR akan melakukan operasi XOR pada masing-masing bit, sehingga bit-0 akan dioperasikan dengan bit-0 dan bit 1 dan seterusnya.


Contoh:


6. OPERASI BITWISE NOT ( ~ )
Operasi bitwise ini mengubah bit yang bernilai ‘1’ menjadi ‘0’ dan sebaliknya.


Contoh:


Berikut ini Video Penjelasannya:
Konstanta
Konstanta membuat program lebih mudah untuk di baca. Adapun konstanta diklasifikasikan menjadi 2 yaitu:
- Menggunakan #define

- Menggunakan kata kunci const

Statement / Penyataan
Sebuah rangkaian yang berisi perintah-perintah tertentu yang nantinya akan di eksekusi oleh mikrokontroler. Terdapat 2 jenis pernyataan pada bahasa pemrograman C:
a) Pernyataan Tunggal
b) Peryataan Majemuk
a) Pernyataan Tunggal adalah adalah suatu perintah yang hanya membutuhkan satu baris dan diakhiri dengan tanda titik koma.

b) Pernyataan Majemuk adalah pernyataan yang terdiri dari beberapa penyataan tunggal dan diapit oleh tanda kurung kurawal.

Berikut ini Video Penjelasannya:
Flow Control / Struktur Kendali
Flow Control --> untuk memanipulasi aliran jalannya program yang kita tulis seperti menyeleksi/memilih pernyataan dan mengulangi pernyataan. Hal ini dapat memungkinkan kita untuk membuat program yang fleksibel dan interaktif untuk kebutuhan pengguna.
A. Penyeleksian / Selection
Berfungsi untuk memecahkan persoalan dan mengambil satu keputusan sesuai kondisi yang sedang dialami program. Sederhananya, dengan menggunakan penyeleksian kita dapat mengatur apakah sebuah perintah akan dijalankan atau tidak tergantung kepada kondisinya. Berikut ini merupakan struktur umum dari penyeleksian :
´

Terdapat 5 bentuk Pernyataan Penyeleksian:
- Penyataan If
- Pernyataan If … else
- Pernyataan If … else If … else
- Pernyataan switch case
- Operator Kondisi ? :
1) Penyataan If
Penyataan if dalam bahasa C digunakan untuk melakukan pengujian logika. Penyataan ini akan mengevaluasi ekspresi boolean, yaitu ekspresi yang bernilai true atau false. Jika ekspresi tersebut bernilai true, maka blok kode yang berada di dalam kurung kurawal {} setelah pernyataan if akan dieksekusi. Namun, jika ekspresi tersebut bernilai false, maka blok kode tersebut akan dilewati dan tidak dieksekusi.
Contoh penggunaan pernyataan if dalam bahasa C adalah sebagai berikut:

Dalam contoh ini, ekspresi yang dievaluasi adalah x > 5. Jika nilai x lebih besar dari 5, maka pernyataan printf akan dieksekusi dan pesan "Nilai x lebih besar dari 5" akan ditampilkan di layar. Namun, jika nilai x kurang dari atau sama dengan 5, pernyataan printf akan dilewati dan tidak dieksekusi.

Format Penulisan 1

Format Penulisan 2


2) Pernyataan If … else
Penyataan if-else dalam bahasa C digunakan untuk memberikan dua pilihan pernyataan yang berbeda dalam program, yang tergantung pada kondisi tertentu. Pernyataan if-else memiliki sintaks berikut:

Cara kerjanya adalah sebagai berikut:
- Program mengevaluasi kondisi di dalam kurung jika benar atau salah.
- Jika kondisi benar, program akan menjalankan pernyataan yang berada di dalam kurung kurawal setelah pernyataan if.
- Jika kondisi salah, program akan menjalankan pernyataan yang berada di dalam kurung kurawal setelah pernyataan else.
Contoh penggunaan:

Output dari program di atas akan mencetak "x lebih besar dari 5" karena kondisi x > 5 adalah benar.


3) Pernyataan If … else If … else
Penyataan If else if else dalam bahasa C digunakan untuk memeriksa beberapa kondisi yang berbeda dan mengeksekusi pernyataan yang berbeda tergantung pada hasil dari pemeriksaan kondisi tersebut. Struktur dari pernyataan ini adalah:

Jika kondisi 1 benar, pernyataan 1 akan dieksekusi. Jika kondisi 1 salah dan kondisi 2 benar, pernyataan 2 akan dieksekusi. Jika kondisi 1 dan kondisi 2 salah, dan kondisi 3 benar, pernyataan 3 akan dieksekusi. Jika semua kondisi salah, maka pernyataan akhir akan dieksekusi.
Dalam pernyataan ini, kondisi-kondisi dievaluasi secara berurutan, dan hanya pernyataan yang sesuai dengan kondisi yang benar yang akan dieksekusi. Jika beberapa kondisi benar, hanya pernyataan yang sesuai dengan kondisi pertama saja yang akan dieksekusi.


Berikut ini Video Penjelasannya:
4) Pernyataan switch...case
Merupakan sebuah stuktur percabangan yang akan memeriksa suatu variabel, lalu menjalankan perintah-perintah yang sesuai dengan kondisi yang mungkin terjadi untuk variabel tersebut. Struktur switch ini mirip dengan struktur if yang ditulis berulang. Kata break menyebabkan statement switch...case ini berakhir, biasanya digunakan pada setiap akhir case.



5) Operator Ternary
Operator yang memiliki 3 argumen yang dipisahkan oleh karakter '?' dan ':‘. Operator ini merepresentasikan operasi asignment suatu variabel berdasarkan kondisi argumen sebelum '?‘

ekspresi_pertama dijalankan jika kondisi bernilai true, jika kondisi bernilai false maka ekspresi_kedua yang akan dijalankan. Sebagai contoh, operator ternary dapat digunakan untuk mengecek apakah suatu angka adalah bilangan genap atau ganjil. Berikut adalah contoh penggunaan operator ternary dalam kasus ini:

Pada contoh di atas, jika angka yang diberikan merupakan bilangan genap, maka akan ditampilkan "Angka genap", jika bukan, maka akan ditampilkan "Angka ganjil".
Berikut ini Video Penjelasannya:
B. Perulangan Pada Bahasa C
Perulangan atau looping adalah suatu proses yang dilakukan secara berulang-ulang atau beberapa kali sampai batas yang ditentukan. Terdapat 3 bentuk Perulangan:
- Perulangan while
- Perulangan do… while
- Perulangan for

1) Perulangan while
Perulangan “while” akan memerintahkan program untuk melakukan pengulangan terus menerus dan tak terhingga, sampai nilai testkondisi yang terdapat di dalam kurung () tercapai.



2) Perulangan do … while
Pengulangan do-while hampir sama dengan pernyataan while. Pada pernyataan do-while, kondisi menjadi terbalik, yaitu pernyataan utama akan dieksekusi terlebih dahulu, setelah itu baru test kondisi diuji, jika test kondisi benar maka pernyataan utama akan diulang, dan jika salah program akan keluar dari blok do-while.


3) Perulangan for
Pada perintah for, Anda diharuskan memasukkan nilai awal, batas akhir perulangan, increment (penambahan) atau decrement (pengurangan) serta apa yang akan dilakukan jika pengulangan tersebut berhasil dilakukan.
Misal, Anda memiliki nilai awal sebesar 1, lalu Anda memasukkan batas akhir pengulangan itu kurang dari 5 (Maka jika nilai awal tadi sudah sama dengan atau lebih dari 5, perulangan akan dihentikan), dan penambahan 1. Maksudnya penambahan 1 itu adalah nilai awal tadi akan bertambah 1 setelah berhasil menjalankan 1 perulangan.


Berikut ini Video Penjelasannya:
Array
Array adalah suatu kumpulan nilai yang bertipe data sama dan dapat di akses dengan index number. Array adalah kumpulan nilai (di dalam array) yang dapat di panggil dengan cara menuliskan nama array dan index number. Array dengan index 0 merupakan nilai pertama dari array. Dengan array, proses penyimpanan data ke dalam variabel menjadi lebih efisien dan mudah, terutama jika kita memiliki data dalam jumlah banyak.

Format:



String
String digunakan untuk menyimpan teks. String dapat digunakan untuk menampilkan teks pada LCD atau di Serial Monitor/Hyperterminal dan berguna untuk menyimpan input user. Misalnya, karakter yang diketik user di keypad terhubung ke MCU. String dapat dibentuk dari array karakter(char).


Berikut ini Video Penjelasannya: