Wednesday, June 28th 2006
Well ... what could i say about today ? I think today was so-so for me.
Yap, hari ini nggak buruk tapi jg nggak terlalu baik. Kabar bagusnya, program digitasi gw sudah hampir rampung, yah sekitar 95 % gw pikir. Sistem input dan load data untuk FKlim dan CH serta option-option yg lain sudah rampung. Berita jeleknya datang dr 5% program yg belum rampung. Mungkin ini bagian program yg paling rumit, sistem input dan load untuk data sinoptik.
Setelah ditunggu2, informasi untuk quality control data sinoptik datang juga sore ini. Wow ... walaupun gw sudah duga kalo sistem ini bakal rumit, kenyataannya jauh lebih rumit dari bayangan gw. Tadinya gw kira kalo jumlah kolom per tabel spreadsheetnya pasti lebih dr 30. Ternyata bukan cuman lebih dr 30, tapi lebih dr 50 kolom !! Hehehe ... bayangin bikin spreadsheet plus tabel database untuk 50 kolom data , untuk bikinnya aja sudah males gw, apalagi untuk algoritma perhitungan dan quality controlnya .
O ya, satu lagi masalah program gw yg sebenarnya sepele tapi lumayan vital, perbedaan antara titik "." dan koma "," sebagai pemisah antar data maupun sebagai tanda desimal. Sebenarnya dulunya gw sudah pernah mikirin ini, cuman entah kenapa baru sekarang ingatnya. Sebenarnya perkiraan gw program digitasi bakal membedakan sendiri kedua tanda ini. Memang, kalo regional setting gw ubah ke indonesia, tanda koma akan dianggap sebagai pemisah desimal, jadi kalo dimasukin titik, program bakal nolak. Nah masalahnya, kalo reg setting diganti ke english. Tanda titik memang akan dianggap sebagai pemisah desimal, cuman .. kalo ada tanda koma, program nggak akan nolak. Celakanya, flooding bar jg ikut muncul walaupun ada tanda koma. Ini PR utama yg harus gw pecahkan dalam 4 hari ke depan.
Yah, walaupun masalah kembali muncul, paling nggak gw sudah nyelesain option2 penting untuk program ini, mulai dari autosave, flooding on/off, statistik on/off, database browser dll, cuman dalam waktu satu hari. Rintangan paling besar untuk masalah option ini mungkin ada di bagian autosave. Lucu jg, gw menghabiskan waktu sekitar 5 jam semalam untuk membereskan masalah yg pemecahannya sebenarnya sangat simpel. Ini contoh script untuk sistem autosave :
Private Sub Timer1_Timer()
If AutoSave = True Then
If Time = SaveTime Then
mnuFileSimpan_Click
SaveTime = Time + Interval
End If
End If
End Sub
Prinsipnya gini :
Program akan meload nilai dari database option yg berisi informasi tentang interval atau selang waktu terjadinya autosave. Nilai ini kemudian akan disimpan dalam variabel bernama Interval (lihat script). Sebelumnya, program jg meload data dr database option yg berisi informasi pengaktifan autosave dalam bentuk data boolean, dengan nama variabel AutoSave. Kalo data ini bernilai true maka autosave diaktifkan, demikian pula sebaliknya (lihat lg script, ada kan ?). Untuk menentukan waktu autosavenya cukup simpel, tinggal tambahkan variabel Interval dan Time (waktu saat ini), maka waktu untuk autosave akan diperoleh. Jadi prinsipnya, kalo waktu timer sekarang sama dengan waktu autosave (SaveTime), maka program akan menjalankan autosave. Nah disini misterinya dimulai ...
Awalnya percobaan berhasil (itupun dah nunggu tiap menit untuk ngeliat autosavenya jalan atau nggak). Lalu mulai terjadi hal2 aneh. Program terkadang mau autosave, tapi kadang jg nggak. Padahal SaveTime dan Timenya udah sama, apa yg terjadi ? Gw debug berkali2, hasilnya jg tetap bikin dahi berkerut. Kalo gw debug, autosave jalan, tp kalo gw biarin aja programnya jalan sendiri, autosave cuman jalan sekali, habis itu nggak jalan lagi. Setelah berjam2 nyobain dan sia2 hasilnya, gw nyerah. Mungkin besoknya bisa gw pecahkan masalahnya. Dugaan gw sementara : timer program dan waktu komputer nggak sinkron. Jadi mungkin kalo interval timernya dikecilin lg, autosavenya bisa normal. Percobaan terakhir, interval gw set ke 1 ms (paling kecil), hasilnya sia-sia. Habis itu vb gw tutup, terus gw tinggalin ngegame ... stress gw .
Pagi ini, setelah pikiran sudah rada jernih, gw mulai pikirin lg masalah autosave semalam. Entah kenapa tiba2 muncul ide :
"Autosavenya kan harusnya jalan kalo Time sama dengan SaveTime. Kalo emang nggak berhasil, gimana kalo autosavenya tetap jalan kalo Time sudah lebih besar dari SaveTime."
Gw pikir2, benar jg ya. Toh kalo operatornya pake tanda lebih besar, itu nggak akan melanggar logika program gw, jadi kapanpun Time sudah lebih besar dari waktu autosave, maka autosave akan jalan, nggak peduli timer program dan waktu program nggak singkron.
Ehehehe ... ternyata pemecahannya cuman ngasih tanda ">" di sebelah tanda "=" dan gw harus menghabiskan waktu 5 jam semalam buat itu .
Yah .. itulah asiknya programming, terkadang bisa menipu dan penuh teka-teki
No comments:
Post a Comment