24 September 2007

Mencetak kode program


Lihat gambar diatas. Kode program ini dihasilkan oleh lgrind dan latex. lgrind digunakan untuk menghasilkan kode latex dari program, selanjutnya dijadikan pdf oleh latex. selanjutnya siap di print.

Dimungkinkan pengaturan penomoran baris, pemunculan nama fungsi/prosedur, dan jenis font. Sangat menarik dan lebih enak dibaca.

Konfigurasi Dev C++

Seperti halnya IUDE lainnya DevC++ bisa disetting environmentnya. Untuk menentukan folder librari dan include disetting melalui projectoption->directories.



Untuk menentukan file librari yang diinclude disetting melalui projectoption->param

17 September 2007

Setting Visual C+

Ada dua hal penting dalam proses kompilasi dan linking, yaitu lokasi include files dan library files. Pada Visual C++ lokasi tersebut ditentukan pada option.

Selanjutnya file yang diinclude bisa diakses dengan #include, dan file yang diperlukan untuk library bisa diakses dengan menambahkan file library yang diperlukan pada setting project.



Nb: IUDE=Integrated/Unintegrated Development Environment

pointer apa array, array apa pointer, apa bedanya

Apa perbedaan 2 kode berikut?
code 1:
char* str1 = "hello, world";
code 2:
char str2[60] = "hello, world";

Kernighan Ritchie di bab 5.3 Pointers and Arrays, C Ansi Programming Languange menyatakan bahwa Pointer adalah variabel, tapi nama array BUKAN.

Sehingga ekspresi str1++ legal, tapi str2++ ILLEGAL. Selanjutnya str1=str2 legal, tapi str2=str1 ILLEGAL.

Kesimpulannya kedua kode tersebut BERBEDA.

Namun demikian :
char x[];
dan
char* x;
adalah kode yang benar-benar sama. Meskipun sama, sebaiknya digunakan char* x untuk menyatakan pointer, ya supaya pembaca tidak berspekulasi bahwa kode char x[] adalah array khusus.

[WARNING!!]
Keterangan diatas belum selesai. Kalau diinisialisasi langsung pada saat deklarasi maka aturan awal char* str1 dan char str2[60] berlaku kembali!
code 4:
char* str1 = "hello, world";
code 5:
char str2[] = "hello, world";

kode nomor 4 adalah pointer, kode nomor 5 adalah array.

Waspadalah.. waspadalah...
Kesalahan bukan pada bahasa C, tapi pada kemalasan anda membaca manualnya.

06 September 2007

cron daemon script untuk membackup basis data

Basis data sebagai jantung aplikasi merupakan bagian yang sangat rawan, mulai dari kesalahan admin, kerusakan piranti keras sampai dengan tindak vandalisme. Dalam lingkungan jaringan hampir dapat dikatakan bahwa tidak ada hal yang aman, kecuali jika data dienkripsi. Membuat suatu server mempunyai fasilitas enkripsi bukanlah hal yang gampang, sehingga seringkali tidak dilakukan.
Meskipun sudah dienkripsi, hal itu juga bukanlah suatu jaminan keamanan, jika anda ceroboh langsung meng-OK certificate warning ya sama aja boong.
Pada akhirnya kalau hanya sekedar menjaga agar tidak hilang, backup adalah solusinya, tapi ketika kerahasiaan/secrecy menjadi masalah, ya enkripsi dan kehati-hatian solusinya.

Berikut ini sebuah script untuk membackup data yang dapat dipanggil dari cron.

1 curdate=`date +%Y%m%d%H%M%S`
2 curdate="/var/backup_mysql/"$curdate
3 mkdir $curdate
4 cp -r /var/lib/mysql/db_pemrograman $curdate
penjelasan:
1. mengambil waktu sekarang untuk id
2. membuat nama folder yang bersesuaian dengan waktu
3. membuat folder
4. meng-copy folder basis data ke folder yang telah dibuat

hati-hati:
script shell hanya menangani string, jangan main-main dengan angka! [ada caranya sih tapi saya belum pernah]

configurasi cron daemon baris pada file /etc/crontab

0 0 * * * root /var/backup_mysql/backup.sh
penjelasan:
tiap hari pada pukul 0:0 script ini dijalankan oleh cron.

silahkan drop basis data saya . . . semuanya masih tersimpan baik, kecuali hari ini :(