Rabu, 29 Januari 2014

"Struktur" (struct) pada fungsi dalam bahasa pemrograman C

Pada artikel tentang belajar bahasa pemrograman C sebelumnya kita sudah membahas tentang bagaimana penggunaan Struktur pada variable. Kali ini kita akan melanjutkan penggunaan Struktur pada fungsi. Dalam hal ini fungsi tersebut akan mengembalikan data yang berupa Struktur. Selain itu pada artikel ini juga kita akan sama-sama belajar tentang penggunaan Struktur pada parameter dalam suatu fungsi.

Oke tentu teman-teman sudah membaca artikel sebelumnya ya tentang Struktur, berikut linknya: "Strukutur" (Struct) dalam bahasa C. Nah kali ini kita akan menambahkan fungsi untuk membuat titik tersebut bergerak, bergerak dalam hal ini nilai x dan y akan bertambah atau berkurang. Berikut sourcecode programnya:
#include <stdio.h>

struct titik {
    int x;
    int y;
};

struct titik gerak(struct titik koordinat, int arah) {
    switch (arah) {
        case 0:
            koordinat.x --;
            break;
        case 1:
            koordinat.y ++;
            break;
        case 2:
            koordinat.x ++;
            break;
        case 3:
            koordinat.y --;
            break;
    }
    return koordinat;
}

void main() {
    struct titik koordinat;

    koordinat.x = 5;
    koordinat.y = 10;
    
    printf("titik terletak pada: %d, %d\n", koordinat.x, koordinat.y);
    koordinat = gerak(koordinat, 1);
    printf("titik terbaru pada: %d, %d\n", koordinat.x, koordinat.y);
    printf("\n --- end of code --- \n");
}
perhatikan fungsi gerak pada sourcecode diatas:
struct titik gerak(struct titik koordinat, int arah) {
    switch (arah) {
        case 0:
            koordinat.x --;
            break;
        case 1:
            koordinat.y ++;
            break;
        case 2:
            koordinat.x ++;
            break;
        case 3:
            koordinat.y --;
            break;
    }
    return koordinat;
}
Seperti halnya fungsi-fungsi pada umumnya yang mempunyai return value atau ada nilai yang dikembalikan dari fungsi itu maka tipe dari nilai itu dituliskan didepan nama fungsi, begitu pula dengan fungsi yang akan mengembalikan nilai yang berupa Struktur titik. Sehingga pada fungsi tersebut dituliskan struct titik gerak(struct titik koordinat, int arah), pada bagian yang digaris bawahi menandakan bahwa syntax tersebut adalah tipe data, kira-kira seperti itu penggunaanya dalam fungsi. Perhatikan pula cara pemanggilannya karena yang dikembalikan berupa Struktur titik maka bisa langsung dimasukan pada variable koordinat yang bertipe Struktur titik seperti syntax berikut:
....

struct titik koordinat;

....

koordinat = gerak(koordinat, 1);

....
Oke bagaimana dengan penggunaannya pada array???... berikut contoh sourcecode-nya:
#include <stdio.h>

struct titik {
    int x;
    int y;
};

void print_koordinat(struct titik koordinat[], int jum_data) {
    int i = 0;
    for (i=0; i<jum_data; i++) {
        // cara melakukan pemanggilan pada struktur titik 
        printf("titik ke-%d: %d, %d\n", i+1, koordinat[i].x, koordinat[i].y);
    }
}

void main() {
    // cara memasukan data pada struktur titik
    struct titik koordinat[6] = {
        {5, 10}, {6, 9}, {7, 8},
        {8, 7}, {9, 6}, {10, 5}
    };
    print_koordinat(koordinat, 6);
    printf("\n --- end of code --- \n");
}
Oke sekian dulu untuk artikel kali ini, kita jumpa lagi diartikel berikutnya. :)

Terima kasih, semoga bermanfaat.

1 komentar: