Tampilkan postingan dengan label syntax. Tampilkan semua postingan
Tampilkan postingan dengan label syntax. Tampilkan semua postingan

Selasa, 06 November 2012

Membaca Isi File (Full Version)

Baiklah, berhubung banyak yang menagih janji yang pernah saya utarakan pada buku saya yang pertama, kali ini saya akan membahas tentang bagaimana cara untuk membaca seluruh isi file dan menampilkannya ke std::output.

Untuk kode lengkap, Anda dapat mengunduh langsung pada tautan yang disertakan pada akhir post ini. Jadi pada post ini, kita hanya akan membahas bagian penting dari aplikasi ini. Di bawah ini adalah potongan kode (snippet) dari aplikasi kita.

while ( (karakter = fgetc(inFile)) != -1)
{
    cout << karakter;
}

Pada snippet diatas, karakter adalah variable bertipe char dan inFile adalah pointer dari FILE. Disini, hal yang perlu diperhatikan adalah fungsi fgetc(). Fungsi fgetc() ini merupakan fungsi yang mengambil karakter yang ditunjuk oleh penunjuk karakter pada file yang dibuka oleh fungsi fopen(). Pada saat dibuka pertama kali, penunjuk karakter ini menunjuk karakter pertama atau ke-0.

Keunikan dari fungsi fgetc() ini, setelah fungsi ini mengambil karakter yang ditunjuk dan me-return-kannya, fungsi ini akan menggeser penunjuk ke karakter selanjutnya. Jadi semisal ada kata “jaipong” dan pointer saat itu menunjuk ke karakter ‘i’, setelah fungsi fgetc() dipanggil dan mengembalikan nilai ‘i’, pointer akan digeser untuk menunjuk karakter ‘p’.

 Jika penunjuk menunjuk akhir dari file (end of file) maka fungsi fgetc() ini akan mengembalikan nilai -1. Untuk mengatur posisi dari penunjuk, Anda dapat menggunakan fungsi fseek(). Berikut adalah penampakan dari hasil eksekusi program.


Saya menggunakan contoh lirik lagu noah – separuh aku karena sepertinya lagu tersebut memang sedang ngetrend haha.

Oh ya, kalau memang ada masukan atau saran tentang apa yang harus saya tulis atau apa yang harus saya perbaiki kedepannya, kirim saja email ke rdiearth@yahoo.com. Saya sering bingung mau nulis apa jadinya saya anggurin blog ini dalam waktu yang cukup lama.

Oke sekian dari saya, semoga dapat membantu.

Link dowload.

Senin, 30 Januari 2012

#include

Seperti yang telah kita ketahui bersama, bahwa preprocessor #include merupakan perintah untuk melampirkan file tertentu yang biasa disebut header atau library. Perintah #include <namafile> digunakan untuk melampirkan file dari direktori include. Perintah #include "namafile" digunakan untuk melampirkan file dari direktori aktif. Nah sekarang bagaimana cara untuk melampirkan file dari suatu direktori yang bukan merupakan direktori include maupun direktori aktif?

Mungkin ini bukan topik yang berat. Dan banyak dari Anda yang sudah tahu. Namun sepertinya penting bagi saya untuk menuliskannya. Baiklah, untuk melampirkan file dari suatu direktori, anda dapat menggunakan syntax preprocessor #include "fullpath/namafile". Tanda slash (“/”) bukan merupakan  “atau”. Namun memang tanda itu digunakan untuk memisahkan hirarki pada fullpath. Yang pada lingkungan Windows biasanya ditulis dengan backslash (“\”). Sehingga dalam C/C++, kita biasa menuliskannya dengan double-backslash(“\\”).

Jadi, apabila kita ingin melampirkan file “C:\kumpulan_header\matematika.h”, maka kita bisa menambahkan perintah berikut:

#include "C:/kumpulan_header/matematika.h"

Demikian tulisan singkat dari saya. Semoga bermanfaat.

Minggu, 11 September 2011

Class String

Dalam dunia pemrograman C/C++, masalah string merupakan salah satu momok yang cukup menakutkan. Tidak jarang programmer yang menyerah sebelum 'berperang' menaklukan medan algorithma sebuah aplikasi yang hendak dibuat. Kebanyakan dari para surrender adalah para programmer yang hendak membuat aplikasi-aplikasi yang membutuhkan pengolahan string.

Di dalam C/C++, string direpresentasikan dalam dua bentuk yaitu: array of char dan class string. Untuk kesederhanaan (sederhana tidak selalu mudah) dan kompatibilitas dengan bahasa C, para hacker biasanya menggunakan string dalam bentuk array of char. Selain karena mereka tidak perlu terlalu khawatir dengan masalah buffer overflow, mereka juga tidak banyak melakukan pengolahan string.

Lain halnya dengan para programmer yang membut aplikasi yang dapat digunakan sehari-hari. Kebanyakan dari mereka harus berurusan dengan pengolahan string. Selain itu, masalah buffer overflow juga menjadi momok yang sangat menakutkan bagi mereka karena apabila aplikasi yang mereka buat berhasil di hack, maka hilanglah kepercayaan user yang berarti turunnya profit mereka.

Nah untuk mengatasi masalah tersebut, sudah sejak lama pengembang bahasa C++ mengembangkan suatu class yang dapat digunakan secara fleksibel untuk melakukan pengolahan string yaitu class string.

Karena pembahasan tentang class string ini terlalu panjang-lebar, maka saya sengaja membuat tutorial tersebut menjadi sebuah e-book yang dapat Anda download disini.

Oke, selamat membaca dan jangan lupa tinggalkan komentar jika terdapat kesalahan dan keburukan dalam tulisan tersebut.

NS.

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 :).

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