Skip to content

Instantly share code, notes, and snippets.

@ixn
Last active January 22, 2017 00:26
Show Gist options
  • Save ixn/e594396128d2be0a88ee77e6fe829216 to your computer and use it in GitHub Desktop.
Save ixn/e594396128d2be0a88ee77e6fe829216 to your computer and use it in GitHub Desktop.
Contoh sangat sederhana enkapsulasi data dengan c
/*
contoh sangat sederhana enkapsulasi data dengan c
more: https://deeprhezy.trumblr.com
compile: gcc -o penjumlahan penjumlahan.c internal_api.c
*/
#include "internal_api.h"
int
main(int argc, char *argv[])
{
/*
Optional input data
int data1=atoi(argv[1]);
int data2=atoi(argv[2]);
*/
int data1=1;
int data2=2;
data_t *data = penjumlahan_new();
/*
Untuk melakukan set data_t langsung ./->
misalnya:
data->data1 = data1;
data->data2 = data2;
biasanya kalo di compile akan terjadi error "error: dereferencing pointer to incomplete type"
*/
/* Untuk melakukan set data harus dengan fungsi set */
penjumlahan_set_angka_1(data, data1);
penjumlahan_set_angka_2(data, data2);
int jumlah = penjumlahan_proses(data);
printf("%i + %i = %i\n",data1,data2,jumlah);
/*
Tidak bisa mengakses langsung ke data_t dengan ./->
misalnya:
printf("data 1 = %i, data 2 = %i\n", data->data1, data->data2);
biasanya kalo di compile akan terjadi error "error: dereferencing pointer to incomplete type"
*/
/* Untuk melakukan get data harus dengan fungsi get data */
printf("data1 = %i, data2 = %i\n", penjumlahan_get_data1(data), penjumlahan_get_data2(data));
penjumlahan_delete(data);
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment