void *

Pre-requisite: Ngerti apa itu pointer pada C.

Pernah gak di saat ngoding (dengan bahasa C) kamu butuh suatu variabel yang mungkin bisa jadi apa saja? Misalnya, variabel itu mungkin jadi integer, char, array, string, list of list, atau bahkan list of list of list, dan sebagainya di mana kita belum tahu apa tipenya saat didefinisikan. Kalau pernah, mungkin trik di bawah ini bisa membantu :)

Di C ada sesuatu yang namanya: void *, yang merupakan pointer ke sesuatu yang belum didefinisikan. Nah, karena void * ini menunjuk ke sesuatu yang belum didefinisikan, maka kita bisa membuat si void * ini menunjuk ke sesuatu yang bisa kita definisikan sesuka kita. Bagaimana caranya? Mungkin program kecil di bawah ini bisa membantu :)

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
// the mistery of void *
void * P;

// void * casted to char *
P = (char*) malloc (sizeof(char));
*(char*)P = 'A';
printf("P = %c\n",*(char*)P);
free(P);

// void * casted to int **
P = (int**) malloc (2 * sizeof(int*));
((int**)P)[0] = (int*) malloc (sizeof(int));
((int**)P)[1] = (int*) malloc (sizeof(int));
*((int**)P)[0] = 1;
*((int**)P)[1] = 2;
printf("P[0] = %d\n",*((int**)P)[0]);
printf("P[1] = %d\n",*((int**)P)[1]);
free(P[0]); free(P[1]); free(P);

// void * casted to float ***
P = (float***) malloc (sizeof(float**));
((float***)P)[0] = (float **) malloc (sizeof(float*));
((float***)P)[0][0] = (float *) malloc (sizeof(float));
*((float***)P)[0][0] = 1.23;
printf("P[0][0] = %f\n",*((float***)P)[0][0]);
free(P[0][0]); free(P[0]); free(P);

return 0;
}

Sebagaimana yang kita tahu (or at least, yang gue tau :P), fungsi malloc merupakan fungsi yang mengembalikan void *. Dengan menggunakan trik casting hasil malloc seperti pada contoh di atas (menambahkan (tipe_tujuan) di depan malloc), kita bisa mendapatkan tipe apapun yang kita mau pada variabel void * kita.

Lalu, jika kamu ingin mengakses atau meng-assign variabel void * itu, jangan lupa lakukan casting, dengan menambahkan (tipe_tujuan) di depan variable void *.

Oke, sekarang silakan mencoba ^_^. Semoga menjawab kebutuhan kamu. Happy coding!

Mirip?



Mirip? Katanya sih iya! Tapi ini bukan foto saya loh.

Ceritanya bermula dari beberapa minggu yang lalu. Waktu itu rambut saya sudah cukup panjang dan saatnya untuk potong rambut supaya terlihat lebih rapi. Malam itu, sepulang dari kampus, saya langsung ke salon untuk merapikan rambut saya. Awalnya, saya ingin membuat rambut saya dipotong pendek gaya Robin van Persie (aka. model Tintin). *biasanya saya bermodel rambut seperti ini hanya 1-2 kali dalam setahun*. Namun, seperti pelanggan lainnya, saya agak sulit untuk menyampaikan model rambut yang saya inginkan.

A: "Mas, dipendekin aja, trus rancung-rancung ya.."
(diem bentar... mikir-apa-saya-lupa...)
A: "Eh, mas.. ditipisin aja deh 1 senti.. tapi atasnya agak panjang ya.." -> blunder nih :(

Dan, hasilnya rambut saya pun jadi dipangkas jadi tipis dengan menyisakan bagian atas tengahnya lebih panjang beberapa cm. Waduh.. Mau saya sisir ke depan atas (ala van Persie) pun gak bisa :((. Ya sudahlah ya, saya sisir saja rambut saya ke tengah (gaya David Beckham waktu Piala Dunia 2002 :) dan agak terlihat "botak".

Nah, pas roadshow rambut baru di sekitar kampus ^-^, teman-teman saya pun mengomentari rambut baru ini. Ada yang bilang saya tambah ganteng, tapi banyak juga yang bilang tampak cupu... hahaha... Saya sih cuek saja, anggap saja ke-PD-an saya ini sedang diuji :P.

Di antara komentar teman-teman itu, ada yang bilang bahwa saya mirip salah satu tokoh di film "Meet The Robinsons". Karena penasaran, tiga hari yang lalu saya tonton film itu dan ternyata memang agak mirip sama Wilbur Robinson! Dialah tokoh yang fotonya saya pasang di Yahoo! Messenger saya beberapa hari ini. Gimana, mirip kah?

Bagi yang bertanya foto di atas dibuat pakai apa, saya tidak tahu, silakan saja tanya ke Disney :P. Saya hanya mengedit latar belakang foto di atas :).

Cosplay Temu Akrab

Minggu lalu, 25 November 2007, diadakan acara Temu Keakraban (Mukrab) Informatika ITB. FYI, mukrab merupakan acara tahunan mahasiswa IF ITB yang bertujuan untuk mengakrabkan seluruh mahasiswa.


Mukrab tahun ini mungkin merupakan mukrab terakhir yang diikuti oleh mahasiswa IF angkatan 2004. Karena itu, wajar saja kalau kami tampil pol-polan di mukrab kemarin. Rasanya senang sekali bisa menjadi bagian dari IF2004 ^_^.


Seperti pada mukrab-mukrab sebelumnya, tiap angkatan wajib membawakan sebuah persembahan angkatan. Tahun ini, kami membuat kabaret yang berisi parodi film plus nostalgia masa muda plus tari-tarian. Pokoknya keren abis lah!!


Cerita berawal dari 4 anak kecil bermain Jumanji, lalu satu per satu mereka terlempar ke suatu scene dengan misi yang berbeda-beda.


Setelah semua misi terpenuhi, muncullah video nostalgia IF 2004 ditambah aksi boyband + cheerleaders. Lalu, ditutup dengan finishing dance "We Go Together". What an amazing moment!!


Nah trus, di mana letak cosplay-nya?? Nih dia para artis dari scene Avatar !!


Zamak


Abie


Indri


Tyo


Tania


Ahmy


Stepz


Sebenarnya masih ada beberapa artis lagi dari scene Avatar tapi tidak ditampilkan *termasuk effect-man :p*. Hal ini dikarenakan keterbatasan stok foto yang saya dapatkan.


Scene berikutnya yang cosplay-nya cukup menarik mungkin 300 vs Pirates :). *secara gue ada di scene ini :p hehehe...* Ini dia artis-artis dari scene Pirates... ^_^


Anne


Anggri B-)


Reyhan


Hm... sebenarnya ada satu tokoh lagi di kubu Pirates yang memerankan Elizabeth Swan :) .. *pasangan main saya di cuplikan "will you marry me?" ... ada videonya gak ya? >_<* Tapi, saya rasa gak perlu ditampilin di blog ini deh. Gak tega euy! Bisa merusak image kordas :P hehehe.


Oya, ini musuh utama Pirates di scene ini, king of Sparta... :)


Simon


Huehehe.. lucu kan, cosplay IF2004 gak cuma sampai di sini loh.


Masih banyak kostum-kostum menarik di scene lainnya. Ada yang jadi tokoh-tokoh Heroes (Peter Petrelli, Isaac Mendez, Hiro Nakamura, Matt Parkman, dll), Darth Vader (Star Wars), John Travolta, Michael Jackson, bahkan sampai ke tokoh-tokoh lokal seperti Trio Warkop (Dono, Kasino, Indro) dan Suzanna si Ratu Ular :).


Sayangnya, saya gak bisa mendapatkan foto-foto tokoh dan pemain yang berkoresponden :(. *kalau ada yang punya, kasi ke gw yak.. ntar gw publish deh :D*.


Hm... sebagai bonus, ini saya tampilkan para pemain di scene 300 vs Pirates ^_^


IF 2004 @ Temu Akrab 2007


NB: Kredit spesial saya sampaikan buat tim kreatif pembuat kostum & asesoris lainnya. Dan buat IF2004, luv u all... ^_~