Pada artikel kali ini saya akan membahas salah satu fitur andalan dalam bahasa c, yaitu struktur yang di ibaratkan object pada bahasa pemrograman tingkat tinggi seperti c++ atau java. Bahasa c saat ini sudah cukup jarang yang memakai dan sudah digantikan dengan c++ yang mana fiturnya lebih banyak contohnya fitur gerbage collector pada akses memori, dengan memakain c++ agan bisa terbantu dalam manajemen memori. Dan jika kalian masih menggunakan bahasa c dalam project kalian maka siap-siap aja kalian wajib meluangkan banyak waktu untuk debuging dalam penanganan bug memori yang sangat sulit dilacak dikarenakan bahasa c masih manual dalam pembersihan memori pointer, dengan kata lain kalian harus mengimplementasi fungsi khusus jika kalian ingin membuat ataupun menghapus memori pointer pada stack ataupun heap dimana arean ini sangat rawan bug.
Alasan saya saat ini masih menggunkana bahasa c karena dalam project yang saya buat masih mengandalkan proyek opensource pada sistem posix seperti unix dan linux, dan kalau kalian telusuri di internet ada banyak sekali project opensource yang bisa dimanfaatkan untuk program sendiri atau kalian bisa menggunakan tool linux untuk mendownload paket source code menggunakan apt-get, contohnya apt source openssh. Dan tentu saja program yang ada kebanyakan menggunakan bahasa c serta membutuhkan kerja keras untuk mempelajari cara kerjanya, yang mana proyek besar seperti apace2, openssh, mysql dan yang lainya sudah mendekati object oriented programming (OPP) dan tentu saja ini menggunakan bahasa c yang mana bahasa ini belum mendukungnya tapi dengan memanfaatkan struktur dan manajemen memori pointer hal ini tidak akan mustahil.
dan selanjutnya kalian bisa memanfaatkan potongan kodenya untuk kebutuhan project kalian sendiri. Sekedar catatan bahwa proyek opensource itu sudah menerapkan aturan bahwa kode yang tertera bisa kalian copy atau modif tanpa melanggar hak cipta.
Oke sekarang kita kembali ke pembahasan utama dalam menggunakan struktur bahasa c, oya lupa dalam proyek opensource kalian akan banyak sekali menemukan penggunaan struktur dalam setiap file paket sourcecode, jadi artikel ini untuk memberi kalian referensi aturan penggunakan struktur seperti akses struktur dalam fungsi lokal ataupun dalam file header yang terpisah yang mana cara aksesnya menggunakan alamat pointer. Berikut contoh program penggunakan struktur dalam hal akses data didalam fungsi dan luar fungsi:
#include <stdio.h>
#inculde <string.h>
struct Buku {
char judul[50];
char pengarang[50];
int id;
};
typedef struct Buku Buku1;
void setBuku1(Buku1 *buku1) {
buku1->id = 12324;
strcpy(buku1->judul, "Teleskop hubble");
strcpy(buku1->pengarang, "riko");
}
void getBuku1(Buku1 *buku) {
printf("Judul buku 1 : ", buku->judul);
printf("Pengarang buku 1 : ", buku->pengarang);
printf("ID buku 1 : ", buku->id);
}
int main() {
printf("\n------ Struktur lokal fungsi -------\n");
struct Buku buku2;
strcpy(Buku2.judul, "novel");
strcpy(Buku2.pengarang, "satomi");
Buku2.id = 76653;
printf("Judul buku 2 : ", Buku2.judul);
printf("Pengarang buku 2 : ", Buku2.pengarang);
printf("ID buku 2 : ", Buku2.id);
printf("\n------ Struktur luar fungsi -------\n");
Buku1 buku1;
setBuku1(&buku1);
getBuku1(&buku1);
}
sengaja tidak saya kasih komentar pada kode diatas, dikarenakan text tidak berwarna seperti editor coding jadi menurut saya akan mempersulit kalian.
terlihat dari kode diatas jika kalian menambah atau akses didalam fungsi kalian cukup menggunakan titik untuk operatornya, berbeda jika kalian menggunakan di luar fungsi atau bahkan di file source terpisah, kalian harus menggunakan alamat pointer struktur tersebut dan biasanya di paket source code populer seperti httpd, kalian dapat melihat dalam file header dan ini terpisah dengan source c code misal main.c untuk melihat daftar implementasi dari data penting paket tersebut, serta yang tidak kalah penting kalian harus menggunakan tanda panah untuk menambah atau akses data dalam struktur luar fungsi atau kalian akan melihat error compilasi jika kalian menggunakan operator titik.
oke mungkin jika ada waktu saya akan membahas pemanfaatan struktur ini ke dalam OOP yang sudah banyak implementasi di program besar populer misal server httpd ataupun apache2.
mungkin segini saja yang dapat saya tulis, semoga berguna buat kalian... bye
Komentar
Posting Komentar