RALAT!!!

RALAT!!!

Terima kasih kepada saudara Anthonio Wirman <anthonio_wirman@xxxx.com> yang telah memberikan masukan yang sangat berharga tentang buku saya. Untuk itu demi menjaga kebenaran isi materi dari Buku "Masuki Dunia Hacker Dengan: C++", maka saya akan memberikan ralat untuk beberapa bagian buku saya (Memalukan memang jika penulis salah).


  1. Switching
Yang pertama adalah pernyataan switch() yang dibahas pada halaman 62.
Pada pembahasan switch(pilihan) ini saya menyatakan bahwa pilihan harus diisi dengan variabel bertipe integer (kasarnya int), padahal sebenarnya, pilihan ini dapat diisi dengan variabel tipe data apapun sepanjang variabel dari tipe data tersebut merepresentasikan integer (bilangan bulat).

Nah, yang termasuk tipe data yang merepresentasikan integer adalah: long int, unsingned int, short int dan char (mungkin yang saya sebutkan masih kurang).

Kemudian, mengapa char termasuk integer? char adalah tipe data yang menterjemahkan integer (bilangan bulat) dalam bentuk kode ASCII untuk kemudian ditampilkan sebagai karakter. Jadi ketika Anda menulis kode berikut ini, maka kode berikut ini dapat dieksekusi dengan baik.

char a;

cout << "Inputkan data sembarang" << endl; cin >> a;

switch(a)
{
  case 65:
    cout << "Karakter yang Anda masukan adalah '" << a << "'" << endl;
    break;
  case 66:
    cout << "Karakter yang Anda masukan adalah '" << a << "'" << endl;
    break;
  case 67:
    cout << "Karakter yang Anda masukan adalah '" << a << "'" << endl;
    break;
  default:
    cout << a << endl;
}


  1. Reference dan Dereference
Kemudian, beralih pada pembahasan Pointer (BAB 7 halaman 99). Pada BAB tersebut terdapat kesalahan yang sangat fatal yaitu kesalahan dalam menyebutkan dereference dan reference operator.

Operator dereference seharusnya dilambangkan dengan simbol asterisk (*) sedangkan operator reference seharusnya dilambangkan dengan simbol ampersand (&). Walaupun konsepnya benar, namun kesalahan-penyebutan ini tetap tidak bisa dimaafkan.

Namun demikian, di Indonesia terdapat 2 orang yang salah dalam penyebutan reference dan dereference. Jadi mohon dimaafkan (walaupun saya bukan pejabat pemerintah).


  1. Struct
Terdapat kesalahan pada penrnyataan saya tentang struktur (halaman 113 paragraf pertama). Disitu dinyatakan bahwa struct hanya dapat menampung member berupa data atau variabel saja. Pernyataan tersebut SALAH! dan yang benar adalah, struktur sama saja dengan class, hanya saja penentu akses secara defaultnya adalah public sedangkan class adalah private.


  1. Destructor
Pada contoh syntax destructor, saya menuliskan ~namaclass(param1, param2) Pernyataan tersebut tidaklah valid, karena destruktor tidak boleh memiliki parameter. Ketika Anda memaksa untuk mengcompile pernyataan tersebut, maka akan ditampilkan error:

<line><file>destructor may not have parameters

Jadi, dengan alasan apapun, destructor tidak memiliki parameter dan tidak bisa di overload.


  1. GetUserName
Pada halaman 223 pada bagian "Mengetahui User Yang Aktif", terdapat sebuah kesalahan yaitu pada pernyataan:

If(GetUserName != 0)

Pada pernyataan tersebut, GetUserName akan selalu menghasilkan nilai 1 meskipun fungsi GetUserName() gagal dipanggil. Hal ini disebabkan karena ketika kita menuliskan nama fungsi tanpa disertai parameternya, maka kita mencoba untuk mengakses alamat dari fungsi tersebut bukan nilai return dari fungsi tersebut. Jadi, seperti yang saya katakan tadi, percabangan if diatas akan selalu mengeksekusi pernyataan true yang ditandai dengan error seperti ini ketika kita meng-compile program.

<line> <file> [Warning] the address of `char* display()', will always evaluate as `true'

Untuk memperbaiki pernyataan tersebut, kita dapat menggunakan pernyataan:

If(GetUSerName(Penampung, &ukuran) != 0)

Atau

bool status;
status = GetUserName(Penampung, &ukuran);
if (status != 0)




Sekali lagi mohon maaf kepada semua pembaca buku saya karena terdapat kesalahan-kesalahan (bahkan hampir tidak bisa ditolerir) pada buku saya.

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