Langsung ke konten utama

Struktur dalam bahasa pemrograman c

    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

Postingan populer dari blog ini

cara ambil file apk android yang sudah terinstall di termux

    Di postingan kali ini saya akan membagikan sebuah cara agar aplikasi yang sudah kalian install dari playstore untuk bisa dibackup di sdcard dan nantinya bisa kalian simpan ataupun dibagikan ke hp lain. untuk kali ini saya menggunakan aplikasi pihak ketiga yaitu termux dan seperti yang kalian tau termux adalah aplikasi yang serbaguna dimana k alian bisa akses shell android layaknya di linux, sebenarnya kalian bisa menggunakan aplikasi yang lain seperti terminal emulator dan ini lebih ringan daripada termux, tapi terminal emulator fiturnya tidak sebaik termux seperti tombol tab yang sangat membantu memasukan perintah yang sobat jalankan serta termux memiliki paket manager layaknya linux dalam menginstall berbagai alat. Atau kalian bisa menggunakan aplikasi root exploler tapi ini membutuhkan akses root walaupun hanya masuk ke directory read only di /data internal android, sedangkan akses shell seperti termux ataupun terminal emulator tidak memerlukan akses root karena dia han...

Menjalankan ssh server di termux

  oke gan langsung aja buat kalian yang belum tau apa itu termux dan ssh kalian bisa googling dulu, karena susahnya nyari artikel cara buat termux dijadikan ssh server buat orang awam kaya saya maka dibuatlah artikel singkat ini.   pertama buka aplikasi termux diandroid  lalu ketik kaya gini: $ apt update $ apt install openssh lalu jalankan ssh servernya $ sshd kedua buat ssh keygen untuk autentikasi $ ssh-keygen untuk password kosongin aja dulu, menurut artikel yang saya baca termux belum mendukung autentikasi password walaupun saya belum pernah nyoba si dan yang penting ini berfungsi. ketiga buka console yang lain untuk percobaan, saya menggunakan linux ubuntu dilaptop lalu ikuti cara dibawah ini: 1). copykan id_rsa yang ada di termux android letaknya di ~/.ssh/id_rsa ke laptop ubuntu saya. untuk mempermudah upload aja menggunakan scp. $ scp ~/.ssh/id_rsa jin@192.168.1.8:/home/jin Note: jin@192.168.1.8:/home/jin adalah ip ssh linux saya dan juga path untuk ny...

Cara mengganti mac address router menggunakan arduino

    Berawal dari tipisnya dompet ini buat beli voucher wifi maka saya kepikiran buat mengoprek router buat bypass login wifi ini, kenapa tidak diubah aja diweb routernya? udah saya coba dan ternyata hasilnya tidak bisa T-T. maka dari itu saya buatlah postingan ini semoga berguna buat kalian.     baiklah sudah cukup curhatnya, pertama siapkan board arduino yang saya pakai adalah mega 2560 sebenarnya kalian bisa menggunakan chip yang sudah jadi yaitu CH341A yang sudah bertebaran artikel yang membahas ini, karena saya gk ada duit buat beli ini maka saya pake arduino ini bekas smp buat disulap jadi alat flasher hehehe. Oke kita lanjutkan oya lupa sebelumnya OS yang saya pakai adalah linux ubuntu jadi cara dibawah ini mungkin tidak berhasil buat windows. Oke lanjut siapkan router dan mulai bongkar jika sudah maka akan terlihat banyak ic yang item-item itu nah target kita adalah ic yang bernomor seri W25Qxxx yang kakinya berjumlah 8 pin, lalu copot ic tersebut. l...