Archive for February, 2008

Mepet-mepet-pet

1 Comment The Life

Gah, hari ini hari yang benar-benar bikin deg-degan (ga juga sih). Tiba-tiba aja seorang teman ngirim message lewat YM sambil nanya “Wil, nilai u A semua ya?”. Langsung deh ngacir buka Binusmaya dan login dengan rada deg-degan juga sih. Soalnya yah jujur aja ada beberapa mata kuliah yang saya ga yakin bisa ngerjain dengan sempurna (OMG, sempurna? Ngarang sempurna kali yah… :| ).

Jari pun menari-nari di atas mouse sambil menggeser-geserkan mouse itu ke berbagai arah dan link yang ada sampai akhirnya halaman nilai ujian terbuka lebar.

Deg… sentak aja kaget ngeliat nilainya:

  • Bahasa Inggris II — 2 SKS, nilai akhir : 89 (A)
  • Kalkulus II — 4 SKS, nilai akhir: 75 (B)
  • Perancangan dan Analisa Algoritma — 4 SKS, nilai akhir: 82 (B)
  • Pemrograman Berorientasi Objek — 4 SKS, nilai akhir: 83 (B)
  • Metode Perancangan Program — 4 SKS, nilai akhir: 83 (B)
  • Analisa dan Perancangan Sistem — 4 SKS, nilai akhir: 79 (B)

Keliatannya 5 mata kuliah pertama itu bagus soalnya dapat B. Tapi yang perlu diketahui untuk mendapat nilai A di Binus diperlukan nilai 85 ke atas. Jadi untuk 3 mata kuliah yang mendapat nilai B, sebenarnya hanya diperlukan sedikit tambahan aja untuk mendapat nilai A. :cry:

Hiks… Kenapa harus mepet-mepet begini sih nilainya? Agak nyesal juga waktu itu sempat kejadian ada nilai saya yang dijadiin minus ama dosen di mata kuliah MPP. Yap, minus, berarti kurang dari 0 cuma gara-gara ada teman yang bermaksud “menolong” dengan manambah nilai saya atas inisiatifnya sendiri di daftar nilai waktu itu, dan akhirnya ketahuan ama dosennya. Andaikan waktu itu ga dikasih minus, mungkin nilai TM saya masih lebih baik dan bisa mendongkrak nilai MPP dari 83 menjadi 85. Hiks… Tapi sudahlah, memang itu yang saya dapatkan.

Dan satu lagi yang bikin saya shock adalah nilai kalkulus saya. Pada ujian tengah semester yang lalu, nilai yang saya dapat hanya 50. Dengan perhitungan matematis dan setelah melakukan integrasi sebanyak 3 kali terhadap nilai itu (aje gile), saya hanya memperkirakan nilai paling tinggi yang bisa saya dapatkan adalah range C yaitu 65 sampai 74. Akan tetapi ternyata saya memang berjodoh dengan nilai B yang mepet dan didapatkanlah nilai 75 yang termasuk dalam range nilai B (75 sampai 84).

Sekarang tinggal menunggu sisanya aja yaitu Anapersis. Kalau mendapat nilai B atau A (yang hampir mustahil untuk didapatkan) maka saya mendapat IPK 3,09 atau lebih untuk semester 3 ini. Akan tetapi kalau ternyata mendapat nilai C atau D (semoga ga deh, amit-amit jabang bayi), maka saya mendapat IPK 2.91. Dan ini akan menjadi saat-saat yang paling mendebarkan karena biasanya nilai Anapersis lama banget keluarnya. Hhhhh… Sabar…. Sabar…

This entry was last modified on: July 24th, 2008 at 23:15

SQL Injection

Di entry kali ini saya akan membahas sedikit mengenai SQL Injection yang merupakan salah satu istilah dalam dunia teknologi khususnya dalam teknologi database. Kebetulan hari ini saya mengikuti mata kuliah Sistem Basis Data atau yang lebih dikenal dengan Database dan saat itu ada yang bertanya mengenai SQL Injection ini.

SQL Injection merupakan salah satu masalah vulnerability dalam security dalam implementasi database. SQL sendiri merupakan singkatan dari Structured Query Languange. Artinya pengelolaan database dilakukan dengan mengirimkan perintah-perintah (queries) yang terstruktur dengan bahasa yang tersedia. Nah, SQL Injection yang secara harafiah berarti penyuntikan SQL memiliki artinya menyisipkan perintah atau query ke dalam query yang akan digunakan dalam database SQL.

Penggunaan SQL sebagai salah satu database management system turut mempopulerkan istilah SQL Injection ini dan menjadikan SQL Injection sebagai salah satu masalah keamanan yang cukup berbahaya bila tidak ditangani dengan serius. Apalagi penggunaan database dengan basis SQL seperti MySQL, Microsoft SQL Server, PostgreSQL cukup populer dibanding database lainnya.

SQL Injection umumnya terjadi karena ketidaktelitian programmer dalam membuat script yang akan dijadikan query SQL. Dan tentu saja hal ini bukan merupakan sesuatu yang mudah untuk dihilangkan karena setiap programmer memiliki tingkat ketelitiannya masing-masing saat membuat program.

Mari kita lihat contoh penerapan SQL Injection seperti di bawah. Perlu diketahui bahwa contoh yang saya gunakan adalah dengan bahasa pemrograman PHP dan database MySQL.

Seringkali ketika kita akan mengambil data dari database, kita akan menggunakan query seperti

"SELECT * FROM table_user WHERE username = '".$username."';"

Ketika user memasukkan data ke variable $username dengan nilai etersoul maka kode di atas akan berubah menjadi:

SELECT * FROM table_user WHERE username = 'etersoul';

Hasil di atas tampak tidak bermasalah dan dengan mudah sang programmer akan mendapatkan semua data mengenai seorang user dari table_user yang memiliki username = ‘etersoul’. Masalah akan timbul bila seorang hacker (atau user lain) yang mencoba untuk memasukkan nilai ' OR 1 = 1; -- ke dalam variabel $username. Maka hasil dari penggunaan variabel tersebut adalah:

SELECT * FROM table_user WHERE username = '' OR 1 = 1; --'

Query di atas akan mengambil semua data yang terdapat dalam table_user karena terdapat nilai 1 = 1 yang selalu bernilai true. Sedangkan penggunaan -- berguna agar kode setelah tanda tersebut dianggap sebagai komentar (comment) dan tidak dieksekusi oleh SQL. Seorang hacker bisa saja menggunakan data yang telah didapat di atas untuk keperluan yang buruk misalnya menggunakan account user karena password telah diketahui (walau pada kenyataannya saat ini kebanyakan password telah dienkripsi atau diacak sebelum dimasukkan ke database).

Bila contoh di atas tidak cukup, mari kita coba menggunakan '; DROP TABLE table_user; -- sehingga menjadi:

SELECT * FROM table_user WHERE username = ''; DROP TABLE table_user; --'

Setelah query tersebut dieksekusi, maka hilanglah tabel table_user dari database Anda, kecuali Anda memiliki backup atas table itu.

Lalu bagaimana cara mencegah terjadinya SQL Injection ini? Cara yang dapat dilakukan cukup mudah. Di PHP sendiri disediakan fungsi mysql_real_escape_string() yang dapat digunakan untuk “membersihkan” (sanitize) string dengan melakukan escape atau perubahan terhadap karakter-karakter tertentu, misalnya karakter \ menjadi \\, ” menjadi \” sehingga tidak terjadi salah “asumsi” oleh SQL. Sedangkan untuk melakukan sanitize terhadap integer dapat digunakan fungsi intval(). Untuk float dapat digunakan floatval(). Sekarang mari kita lihat kode hacker di atas setelah di-sanitize dengan mysql_real_escape_string($username);

SELECT * FROM table_user WHERE username = '\' OR 1 = 1; --'

atau

SELECT * FROM table_user WHERE username = '\'; DROP TABLE table_user; --'

Yah, sekarang tanda ‘ telah di-escape menjadi \’ sehingga SQL tidak akan menganggap tanda kutip tersebut sebagai bagian dari perintah SQL untuk menutup tanda kutip sebelumnya, melainkan sebagai sebuah karakter.

Untuk bahasa pemrograman lainnya umumnya telah disediakan juga fungsi untuk melakukan escape terhadap string (umumnya fungsi tersebut menggunakan kata escape). Dalam PHP sendiri dapat digunakan mysql_escape_string(), akan tetapi fungsi ini tidak disarankan untuk digunakan karena tidak melakukan escape terhadap beberapa jenis karakter.

Yah, itulah sedikit penjelasan mengenai SQL Injection. Semoga hal ini dapat membantu Anda dalam membuat program yang baik dan aman. ;)

— Code is poetry —

This entry was last modified on: March 26th, 2008 at 17:37

Ngantuk: solusi atasi kemacetan Jakarta

2 Comments Society

Saya sempat membaca koran Kompas beberapa waktu yang lalu mengenai adanya keinginan gubernur DKI Jakarta Fauzi Bowo untuk mengurangi kemacetan di Jakarta dengan mengatur ulang jadwal masuk sekolah dan masuk kantor bagi para Pegawai Negeri Sipil. Saat ini seperti yang kita ketahui bahwa para pelajar masuk ke sekolah pada umumnya pukul 7 pagi, sedangkan pegawai sekitar pukul 8 sampai 9 pagi.

Lucunya, penjadwalan ulang itu malah memajukan waktu masuk sekolah dan juga masuk kantor. Yah, untuk jadwal masuk kantor saya rasa ga terlalu masalah karena memang masih lebih siang. Sedangkan untuk para pelajar, jadwal tersebut dimajukan 30 menit sehingga mereka harus masuk sekolah pada pukul 06.30 pagi.

Mari kita telaah dengan seksama keputusan ini.

Bila para pelajar harus masuk ke sekolah pada pukul 7 pagi, maka perkiraan waktu untuk bangun pagi adalah pada pukul 6 atau 5.30 pagi. Tentu saja hal ini berlaku bila pelajar tersebut tidak tinggal terlalu jauh dari sekolah mereka. Bila mereka harus menggunakan kendaraan umum atau menempuh perjalanan yang cukup jauh untuk sampai di sekolah, tidak jarang mereka harus bangun pukul 5 pagi. Maka bila jadwal dimajukkan sekitar 30 menit, para pelajar harus menyiapkan diri sejak pukul 4.30 sampai dengan 5.30 yang mana matahari belum muncul atau bila pun muncul palingan hanya secuil.

Di sisi lain, waktu tidur yang ideal bagi seorang manusia adalah 7 sampai 8 jam (yaps, 1/3 hidup manusia… :| ). Maka waktu tidur yang ideal agar dapat bangun pada jam yang telah disebutkan di atas adalah pukul 20.30 sampai dengan 22.30. Saya rasa bagi sebagian pelajar, khususnya SMP dan SLTA, waktu tidur pada pukul 20.30 adalah sesuatu yang hampir mustahil. Bahkan tidak jarang sekarang saya menemukan para pelajar SD saja belum tidur pada pukul 22.00, yang artinya tentu pelajar SMP atau SLTA akan lebih malam lagi (rata-rata sekitar pukul 23.00).

Kalau ga salah ingat, berdasar analisis dari pakar lalu lintas, keputusan itu bisa mengurangi kemacetan sampai 12%. Yah, memang benar mengurangi kemacetan. Di sisi lain menambah para pelajar yang terkantuk-kantuk dan tertidur di kelas yang tentu secara otomatis akan mengurangi konsentrasi mereka dalam belajar. Jujur saja ini memang agak berlawanan dengan yang kita dengar bahwa belajar lebih pagi akan meningkatkan daya serap otak, tapi pada kenyataannya dengan melihat pola hidup masyarakat saat ini, hal ini merupakan sesuatu yang mustahil.

Oh ya, waktu itu di Kompas juga sempat ditulis bahwa keputusan ini juga bertolak belakang dengan apa yang dilakukan oleh sekolah-sekolah di luar negeri seperti Amerika Serikat di mana jam masuk sekolah diundur sehingga para pelajar dapat tidur cukup.

Jadi intinya yah… Ngantuk merupakan solusi yang dianggap baik oleh pemerintah untuk mengurangi kemacetan di Jakarta. ;) Selamat tidur di kelas. (Atau paling tidak, selamat tidur lebih awal kalau aturan ini diterapkan). :D

When Love Come (and Gone)

1 Comment The Memory, The Romance

Love is almost gone
Hope is begin to lose
Miss the way you looked toward me
Miss the smile you shown to me

Every now and then
I’ll remember about you
About the way you called my name
About the way you talked to me

Then I realize something
The love is not leave to disappear
It’s gone to make me care to you
It’s gone to show me how I’ll miss you

A true love in this life
Will always be kept in this heart
To keep it warm when the world going cold
To keep it bright when I fall to dark place

Hari ini yang bagi sebagian orang ga penting, tepat 1 tahun yang lalu, aku mulai melakukan proses yang disebut pendekatan. Hari ini, tepat satu tahun yang lalu, untuk pertama kalinya aku mengirimkan SMS dan berkomunikasi dengan dia. Yah, 16 Februari 2007, dua hari setelah hari Valentine, dan sudah 1 tahun berlalu.

Saat di mana cinta itu datang. Akankah menjadi saat di mana cinta itu akan pergi? At last, I will not lose this memory if ever this love gone. It was the sweetest memory. ;) The sweetest is all about you. Although you’ll never read about this, I still have a hope, am I not?

(Aaaaa! Wimbledon ternyata filmnya bagus. Tapi napa baru aku liat dari tengah-tengah. Huaaa… Putarkan lagi dunk TransTV… :cry: )

Be my Valentine

No Comments My Minds

Valentine, Valentine… Hari itu datang lagi akhirnya…

Hari di mana banyak orang yang membagi coklat ke teman-teman, dan beberapa di antaranya membagi dengan khusus ke orang yang “dicintai” atau “disayangi”.

Hari di mana bunga mawar berwarna-warni diberikan dari seorang lelaki atau perempuan kepada kekasihnya.

Hari di mana warna pink menjadi warna dunia dalam satu hari dan gambar hati ada di setiap sudut kota.

Hari di mana dunia bergembira akan kehadirannya.

Hari di mana akan banyak terucap kalimat “would you be my Valentine?”

Di kala dunia sedang diliputi rasa gembira, tapi kok saya merasa biasa aja. Malah merasa agak… hampa… :| Hhhh… Saya sendiri dari dulu sebenarnya ga terlalu merayakan hari Valentine. Kalaupun ada yang ngasih cokelat juga dari teman aja, err, belum ada dari orang yang spesial. Itupun hanya pas jaman masih SMA, dan ga berlanjut lagi setelah kuliah.

Yah, tapi bagaimanapun hari ini tetap harus dirayakan dengan gembira. :) (Ga! hari ini harus diboikot… Hiehehehehe…) Yaks, ada pergulatan dalam pikiran. Huiiiii… Lupakan… lupakan… :p

Uhh, mau ngasi sesuatu ke dia. Ato ucapin sesuatu paling ga. Hmm, SMS aja deh… Hahaha… (You’ll always be my valentine.)
At last, Happy Valentine Day to all… ;)

Some annoying things about instant messaging

Inilah daftar beberapa hal yang paling menyebalkan yang sering saya temui dalam dunia instant messaging (IM) atau sering disebut juga chatting beserta alasannya.

  1. Buzz, nudge atau notification sejenisnya. Satu hal yang pasti, saya mematikan fasilitas buzz di Yahoo Messenger saya sehingga ketika ada orang yang mengirim buzz kepada saya, saya tidak akan merasakan perubahan apapun. Alasannya: Pertama, bila saya ingin membalas message seseorang, maka saya akan membalasnya bahkan tanpa buzz sekalipun. Kedua, buzz sifatnya mengganggu ketika tiba-tiba muncul ke bagian paling atas dari susunan window. Maka ga aneh kalau saya tidak membalas message orang itu karena orang itu juga sudah mengganggu saya. Ketiga, orang yang sabar akan mendapat berkah (katanya), jadi kalau bersabar maka message Anda akan memiliki kemungkinan lebih besar untuk dibalas. Oleh sebab itu saya sendiri berupaya untuk tidak pernah menggunakan buzz kepada orang lain.
  2. Menampilkan audibles dalam jumlah yang banyak dan dalam rentang waktu yang singkat. Alasannya: Pertama, audibles merupakan movie flash yang mengkonsumsi banyak bandwidth, tergantung dari lama audiblesnya. Sedangkan saat ini saya memiliki koneksi dengan bandwidth yang limited. Bila satu saja sudah menghabiskan cukup banyak bandwidth, apalagi kalau banyak audibles sekaligus. Tentu hal ini ga jadi masalah kalau audibles itu sudah di cache di komputer saya. Kedua, audibles yang memiliki waktu play yang lama benar-benar mengusik. Ada beberapa audibles yang lamanya sampai 30 detik atau lebih dan hal ini sangat menyebalkan karena suaranya mengusik dan menutupi suara program lainnya, misalnya Winamp.
  3. Memakai beberapa emoticon yang bersifat insulting. Beberapa emoticon yang bisa saya temui di YM yang bersifat insulting adalah L-)  :-@  Yah paling tidak sampai sekarang kedua emoticon itu masih belum bisa saya terima dalam penggunaan di YM, apalagi dalam suatu pembicaraan. Walau maksudnya bercanda, tetap saja ada beberapa emoticon yang saya anggap cukup mengganggu dan meremehkan.

Terlepas dari masalah di atas, tentu masih ada hal-hal kecil yang bisa mengganggu dalam dunia IM. Sifat IM yang cenderung tertulis dan tidak lisan bisa saja menimbulkan kesalahpahaman dan hal ini tidak dapat dengan mudah dielakkan. Yah, semoga aja ga terlalu banyak kesalahpahaman dalam penggunaan IM ini. :|

My Mini City

Kemaren untuk mengisi waktu kosong, iseng-iseng saya mencoba untuk ke MyMiniCity.com. Yah semacam game online membuat sebuah kota virtual. Untuk join ini sendiri memang ga perlu daftar dan cukup membuat nama kotanya saja dan kota pun disiapkan oleh server. (Duh, jadi keinget SimCity.)

Hmm, ya untuk iseng-iseng sih ga apa-apa deh. Toh ga perlu daftar ini. ;) Semoga aja ga perlu sampai ketagihan kaya Travian dulu.

Ngomong-ngomong, bagi yang mau melihat kota saya, jangan lupa ke etrisia.myminicity.com yah. Kalau Anda berbaik hati, kunjungi kota itu satu kali tiap hari. :p

This entry was last modified on: February 12th, 2008 at 13:39