Sebagai orang yang ngaku hobinya programming, nggak afdol rasanya kalau buta dengan bahasa pemrograman C. Waktu masih kuliah, saya sudah mencoba untuk belajar bahasa C, namun karena tidak diajarkan di jurusan saya (akuntansi, halaaah… ya iyalah!) maka belajarnya jadi terbengkalai. Nah mumpung lagi nggak banyak kerjaan aku belajar lagi deh bahasa C. Motivasi kembali belajar C ini juga gara-gara anggapanku bahwa aku bakal kewalahan bila harus bersaing dengan programmer-programmer muda yang berkubang dengan bahasa-bahasa populer seperti Delphi, C#, VB dan Java. Malah aku juga mencoba lagi untuk belajar bahasa C dan Erlang agar aku tetap unik di pasar tenaga kerja. Duileeee… mimpi khan boleh-boleh aja. Aneh juga, rasanya kok aku lebih rileks saat belajar C daripada belajar Java atau C#.
Setelah beberapa tahun menggunakan Delphi, baru nyadar lagi dengan fitur bahasa C yang dapat mencampur (mix) data types yang berbeda di dalam satu statement dan meng-convert-nya secara otomatis. Kalau di Delphi, wah compilernya akan termehek-mehek. Fitur ini tampaknya menjanjikan kemudahaan, namun bisa sangat berbahaya kalau saya terlalu sok pintar dalam menggunakannya. Filosofi bahasa C yang tidak begitu membatasi, membutuhkan tanggung jawab yang lebih, more freedom need more responsibility.
Lihat contoh berikut di bawah ini. Konversi beda tipe data dilakukan secara otomatis tapi resiko tidak ditanggung.
#include <stdio.h> int main(int argc, char *argv[]) { char ch; int i; float fl; fl = i = ch = 'C'; printf("ch = %c = %d, i = %d, fl = %2.2f\n", ch, ch, ch, i , fl); ch = ch + 1; printf("ch = ch + 1 -> ch = %c (%d)\n", ch, ch); i = fl + 2 * ch; printf("i = fl + 2 * ch -> %d = %2.2f + 2 * %c (%d)\n", i, fl, ch, ch); fl = 2.0 * ch + i; printf("fl = 2.0 * ch + i -> %2.2f = 2.0 * %c (%d) + %d\n", fl, ch, ch, i); printf("ch = %c, i = %d, fl = %2.2f\n", ch, i, fl); ch = 5212205.17; printf("Now ch = %c\n", ch); system("PAUSE"); return 0; }
Hasilnya:
ch = C = 67, i = 67, fl = 0.00
ch = ch + 1 -> ch = D (68 )
i = fl + 2 * ch -> 203 = 67.00 + 2 * D (68 )
fl = 2.0 * ch + i -> 339.00 = 2.0 * D (68 ) + 203
ch = D, i = 203, fl = 339.00
Now ch = ⌂
Press any key to continue . . .
Maksud dari D(68 ) adalah nilai ASCII dari D sama dengan 68, jadi D + 1 = 69.