Minggu, 12 Juni 2011

typedef

Di dunia pemrograman C++, penggunaan perintah ini terbilang sederhana dan sekilas terlihat tidak penting. Namun ternyata, khususnya bagi beberapa orang, penggunaan dan pemahaman tentang typedef ini cukup membingungkan.

Banyak tutorial yang mengatakan bahwa penggunaan typedef adalah untuk memberikan sinonim dari suatu tipe data. Namun, jujur saja secara pribadi, saya tidak sepenuhnya setuju dengan pendapat tersebut. Misal terdapat pernyataan berikut:

typedef int bilBulat;

bilBulat nBilangan;

Pada contoh diatas, anggapan bahwa bilBulat merupakan sinonim dari int, sehingga pernyataan kedua (bilBulat nBilangan) berarti int nBilangan, memang bisa dianggap benar. Namun sesungguhnya yang terjadi pada pernyataan diatas adalah bilBulat bukan merupakan nama lain dari int. bilBulat hanya berfungsi menjadi sesuatu yang diganti dengan nama aktual variabel yang akan dideklarasikan.

Jadi ketika kita mendeklarasikan bilBulat nBilangan, maka deklarasi yang sebenarnya (yang compiler akan lakukan adalah: “Buang typedef, lalu ganti bilBulat dengan nBilangan sehingga pernyataannya menjadi seperti ini:

int nBilangan;

Oke, mungkin terlihat cukup membingungkan. Perhatikan saja pernyataan berikut.

typedef int Tumpukan[10];

Apabila terdapat pernyataan

Tumpukan nArray;

Maka Anda tinggal pikirkan saja “Buang typedef, lalu ganti Tumpukan dengan nArray.” Sehingga pernyataan yang sebenarnya adalah seperti berikut.

int nArray[10];

Jadi yang sebenarnya dilakukan oleh typedef adalah hampir sama dengan preprocessor #define hanya saja perintah typedef lebih fleksibel untuk digunakan.

Misal terdapat pernyataan berikut:

typedef int (*callBack)(char *); // Biasa digunakan untuk function pointer

Maka pernyataan berikut:

callBack pFunc1;

callBack pFunc2;

callBack pFunc3;

Memiliki arti:

int (*pFunc1)(char *);

int (*pFunc2)(char *);

int (*pFunc3)(char *);

Saya tidak menyatakan bahwa preprocessor #define tidak dapat digunakan untuk melakukan pernyatan-pernyataan tersebut. Hanya saja saya tidak memiliki bayangan bagaimana cara melakukan hal di atas dengan preprocessor #define (bahkan membayangkannya saja sudah membuat saya malas).

Sekian tutorial dari saya, semoga bermanfaat. Jika ada kesalahan, silakan berkomentar sehingga saya bisa memperbaikinya :).

Selasa, 08 Maret 2011

Microsoft Visual Studio Express

Microsoft Visual Studio Express merupakan Software Development tools yang dikeluarkan oleh Microsoft yang dapat diunduh secara gratis. Deretan aplikasi yang termasuk dalam paket Visual Studio Express ini adalah:

  1. Visual Basic 2010 Express

  2. Visual C# 2010 Express

  3. Visual C++ 2010 Express

  4. Visual Web Developer 2010 Express

  5. Visual Phone Developer Tools

Karena buku saya adalah buku yang membahas tentang C++, maka saya pun hanya mengunduh Visual C++ 2010 Express.


Perbandingan Antara Visual C++ 2010 Express dengan Dev-C++ 4.9.9.2

Jika dibandingkan dengan Dev-C++ yang saya gunakan (baik sehari-hari, maupun ketika saya menulis buku "Masuki Dunia Hacker Dengan: C++"), Visual C++ 2010 Express ini memiliki keunggulan yang lebih baik pada bidang tampilan antarmukanya (interface).

Kemudian, apabila kita mengetik sebuah fungsi, maka akan muncul preview parameter-parameter fungsi tersebut. Hal ini tentu memudahkan kita untuk mengetahui apakah nilai parameter-parameter fungsi yang kita ketikan sudah sesuai atau belum.

Yang terakhir (sejauh pengamatan saya), pada saat kita membuat sebuah project baru, kita akan disodori pilihan yang lebih variatif daripada pilihan project yang disediakan Dev-C++.

Namun dibalik keunggulan-keunggulan tersebut, kekurangan Visual C++ 2010 Express ini adalah cukup berat saat digunakan apabila dibandingkan dengan Dev-C++ yang tergolong sangat ringan. Hal ini menurut saya cukup mengganggu pasalnya, kadang saya cukup tidak sabar apabila pindah dari window editor satu file ke file lainnya. Dan inilah yang membuat Visual C++ 2010 Express tidak cukup baik di mata saya.

Kemudian, walaupun produk ini gratis, namun Anda tetap harus melakukan registrasi (secara online tentunya) dimana Anda diharuskan untuk memiliki WindowsID seperti akun email pada hotmail.com atau windowslive.com.

Akhirnya, karena alasan itulah, saya lebih memilih untuk tetap setia pada Dev-C++ 2010. (Terutama karena Dev-C++ lebih ringan daripada Visual C++ 2010 Express).

Untuk mengunduh Microsoft Visual Studio Express, silakan klik disini.

Jumat, 25 Februari 2011

Mematikan Komputer Dengan WIndows API

Virus, worm, trojan, malware dan program-program 'jahat' lainnya biasanya dibekali dengan kemampuan untuk dapat mematikan (melakukan shutdown) komputer yang dihinggapinya.

Saya yakin, banyak diantara Anda yang telah mengetahui bagaimana melakukannya, baik dengan bahasa pemrograman Visual Basic, Delphi, atau bahkan C/C++.

Berikut adalah contoh program yang dapat melakukan shutdown beserta tutorial versi saya.


  1. Shutdown Codes + Article

  2. Shutdown Codes


Jika Anda menemukan bugs atau error dalam program tersebut, Anda bisa memberitahu saya melalui e-mail. :)

Program Chat Sederhana

Seorang Pembaca Buku "Masuki Dunia Hacker Dengan : C++" meminta saya untuk memberi contoh program yang dapat mengirim dan menerima data (bertindak sebagai client sekaligus server).

Source code lengkapnya dapat Anda dapat download disini (maaf jika tidak disertai dengan tutorial)

Pada program ini, saya menggunakan beberapa threading untuk membuat beberapa fungsi yang dapat berjalan secara mandiri. Serta tentu saja saya masih memakai winsock untuk mengimplementasikan socket.

Saya yakin bahwa program ini masih terdaapt banyak bugs. Karena itu, saya akan sangat senang sekali apabila Anda bersedia memberikan perbaikan pada program tersebut.

Oh ya, tidak lupa terima kasih kepada setiap orang yang telah membaca buku saya (terutama yang membelinya :)).

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | belt buckles