Cara Pemanggilan Fungsi dalan Bahasa C



Untuk memahami bagaimana cara memanggil fungsi dalam sebuah program bahasa C, mari kita lihat contoh program berikut. 

1. Struktur program bahasa C pertama (dengan prototype fungsi) 

#include <mega16.h> 
//Prototype fungsi 
void fungsi1(); 
void fungsi2(void); 
void fungsi3(int w, int x, int y, int z); 
int fungsi4(int a, int b); 

unsigned int jumlah; 

int main(void) 
………… 
jumlah = fungsi4(7,5); 
fungsi2(); 
fungsi3(0x00, 0xFD, 0xEF, 0xCA); 
fungsi1(); 
……… 
return 0; 

void fungsi1() 
………… 
………… 

void fungsi2(void) 
………… 
………… 

void fungsi3(int w, int x, int y, int z) 
PORTA = w; 
PORTB = x; 
PORTC = y; 
PORTD = z; 

int fungsi4(int a, int b) 
int hasil; 
hasil = a + b; 
return hasil; 

2. Struktur program bahasa C kedua (tanpa prototype fungsi) 

#include <mega16.h> 
unsigned int jumlah; 

void fungsi1() 
………… 
………… 

void fungsi2(void) 
………… 
………… 

void fungsi3(int w, int x, int y, int z)
PORTA = w; PORTB = x; PORTC = y; PORTD = z; 

int fungsi4(int a, int b) 
int hasil; 
hasil = a + b; 
return hasil; 

int main(void) 
………… 
jumlah = fungsi4(7,5); 
fungsi2(); 
fungsi3(0x00, 0xFD, 0xEF, 0xCA); 
fungsi1(); 
……… 
return 0; 


Share on Google Plus

About Robotics University

    Blogger Comment
    Facebook Comment

2 comments:

  1. gan, misalkan perintah PORTD=0xFD itu fungsinya untuk apa ya?

    saya lagi belajar bahasa C otodidak, tapi ga ada yang jelasin fungsi2nya, cuman script2 langsung jadi aja :)

    ReplyDelete
  2. @Diaz Adi
    Perintah PORTD=0xFD fungsinya untuk mengisi data pada register PORTD dengan nilai bilangan heksadesimal FD (0x adalah tanda bahwa sebuah nilai dalam program dalam format bilangan desimal.

    Detailnya begini,
    Kita konversi dulu nilai F dan D tersebut kedalam bilangan biner.
    F = 1111 (biner)
    D = 1101 (biner)
    FD = 11111101 (biner)

    Asumsi:
    1 = high = logika tinggi
    0 = low = logika rendah

    PORTD merupakan register dalam mikrokontroler yang memiliki lebar data 8-bit. Sehingga apabila nilai 11111101 di-inputkan ke dalamnya, maka artinya semua bit pada PORTD akan berlogika high (1) kecuali bit ke-1.

    Demikian, semoga membantu.

    ReplyDelete