Kali ini, saya akan bahas dasar bahasa pemrograman C dengan topik operasi matematika, didalam bahasa
C, terdapat 5 jenis operasi matematika, yaitu :
  1. Penjumlahan
  2. Pengurangan
  3. Perkalian
  4. Pembagian
  5. Modulus (Sisa Pembagian)

Untuk script pertama sekaligus dibuat untuk pemahaman poin 1 - 4, mengenai cara pengoperasiannya saya tidak perlu dijelaskan karna pasti semua orang tahu cara menjumlahkan angka, dsb. :) Berikut scriptnya

Script 1

/*
 * Aritmatik.cpp
 *
 * Created: 11/24/2015 7:41:19 PM
 *  Author: DiaZaki
 */


#include <avr/io.h> //Memasukan fungsi AVR
#include <util/delay.h>    //Memasukkan fungsi Delay


int main(void)
{
    DDRA=0xff;            // Menjadikan PORTA sebagai output
    PORTA=0xff;            // Menjadikan PORTA sebagai output dengan default berlogika 1
   
    DDRB=0xff;            // Menjadikan PORTB sebagai output
    PORTB=0xff;            // Menjadikan PORTB sebagai output dengan default berlogika 1
   
    DDRC=0xff;            // Menjadikan PORTC sebagai output
    PORTC=0xff;            // Menjadikan PORTC sebagai output dengan default berlogika 1

    DDRD=0xff;            // Menjadikan PORTD sebagai input
    PORTD=0xff;            // Menjadikan PORTD sebagai output dengan default berlogika 1

    unsigned char a, b, c, d;    // Variabel global dengan nama a, b, c, d (4 variabel)
    a=255;
    b=15;
    c=126;
    d=-255;
   
    while(1)
    {
        PORTA=a+d;        // -255 + 255 = 0 = output bernilai 00000000
        PORTB=a-b;        // 255 - 15 = 240 = output bernilai 11110000
        PORTC=c*2;        // 126 * 2 = 252 = output bernilai 11111100
        PORTD=a;        // 255 = output bernilai 11111111
       
    };
}

Dan dari script diatas akan menghasilkan gambar sebagai berikut

Contoh Operasi Matematika Bahasa C.1
Contoh Operasi Matematika Bahasa C.1

 Script 2
/*
 * Aritmatik_Modulus.cpp
 *
 * Created: 28/12/2015 16:55:31
 *  Author: Diaz
 */


#include <avr/io.h> //Memasukan fungsi AVR
#include <util/delay.h>    //Memasukkan fungsi Delay


int main(void)
{
    DDRA=0xff;            // Menjadikan PORTA sebagai output
    PORTA=0xff;            // Menjadikan PORTA sebagai output dengan default berlogika 1
   
    DDRB=0xff;            // Menjadikan PORTB sebagai output
    PORTB=0xff;            // Menjadikan PORTB sebagai output dengan default berlogika 1
   
    DDRC=0xff;            // Menjadikan PORTC sebagai output
    PORTC=0xff;            // Menjadikan PORTC sebagai output dengan default berlogika 1

    DDRD=0xff;            // Menjadikan PORTD sebagai input
    PORTD=0xff;            // Menjadikan PORTD sebagai output dengan default berlogika 1

    unsigned char a, b, c, d;    // Variabel global dengan nama a, b, c, d (4 variabel)
    a=7;
    b=3;
    c=45;
    d=30;
   
    while(1)
    {
        PORTA=a%a;        // 7/7 = 1 (sisa 0) = output bernilai 00000000
        PORTB=c%d;        // 45/30 = 1 (sisa 15) = output bernilai 11110000
    };
}

Dan dari script diatas akan menghasilkan gambar sebagai berikut
Contoh Operasi Matematika Bahasa C.2
Contoh Operasi Matematika Bahasa C.2

Hasil dari operasi matematika tersebut adalah bertipe desimal, dan jika dikonversi ke biner akan menghasilkan nilai sesuai yang disampingnya, lalu bagaimana cara memahami script tersebut dan hasil pembuktian di file proteus? saya menggunakan 1 buat port (8bit) untuk setiap jenis operasi, dan hasilnya dapat dilihat dari LEDnya. Contoh, pada script 1 Port A = a+d yaitu -255+255 yang menhasilkan 0 (dalam nilai desimal), jika dikonversi menjadi biner akan bernilai 00000000. Karna dibagian anoda LED sudah diberi tegangan VCC, maka jika dibagian katoda diberi tegangan Low (0volt) maka led akan menyala, dan karna output dari Port A semuanya bernilai 0, maka semua led yang terhubung pada Port A akan menyala.

Silahkan kalian amati dan pahami sisanya, untuk script 2 saya buat 2 contoh yang berbeda nilainya saja, namun keduanya tetap menggunakan operasi matematika modulus.

Saya sarankan untuk menulis ulang semua script tersebut secara manual, agar kalian lebih cepat menghafal dan memahami script tersebut. Namun jika mendapat kesulitan, saya sediakan file script beserta file proteusnya yang dapat didownload di :
File tersebut dibuat menggunakan compiler Atmel Studio 6 + AVRGCC dan Proteus untuk simulasinya, jika ada pertanyaan bisa menggunakan fitur komentar.

Sayapun disini masih belajar sehingga belum tentu benar mengenai semua yang  saya jabarkan diatas, jika ada yang merasa janggal atau merasa ada kesalahan dalam penjabaran saya, bisa kita diskusikan dikomentar.

Good Luck :)

Related Post :