The Denny Depok

The Denny Depok

Gosipin IT Bareng Mas Denny Depok Yuk…

The Denny Depok RSS Feed
 
 
 
 

Bagi-Bagi Kode MD5 buat Flex/AS3

Yang saya mo bagi-bagi adalah MD5 generator untuk Flex/ActionScript 3. Kenapa saya share ? Karena kebanyakan MD5 generator AS3 yang tersedia di internet menghasilkan hexa/string MD5 yang berbeda dari yang digenerate sama PHP. Sebenernya pengen ngeshare dari beberapa tahun lalu :D tapi baru keinget sekarang. (Makanya kalo di internet sudah tersedia yang menghasilkan string yang sama dengan PHP jangan protes ya, saya nyari beberapa tahun lalu soalnya)

Sebenernya saya hanya mentranslate lib MD5 javascript oleh Paul Johnston ke ActionScript.   Untuk mendownload silakan klik ke :

md5

Penggunaannya adalah taruh file tersebut ke folder “src/klorofil/crypto”, Atau kalau anda ingin buat package sendiri, silakan dengan tidak lupa merubah source-nya sesuai dengan package anda.

Penggunaan kode :

import klorofil.crypto.MD5;
//menghasilkan string yang sama dengan php md5()
var data : String = "Data yang ingin di hash";
var result : String = MD5.hex_md5(data);
//generate id unik
var uniqeID : String = MD5.getUniqId();

Silakan dinikmati :D

Kenapa Membenci Flash ?

Saya mengikuti beberapa forum IT, walau biasanya cuma baca-baca aja.. Ada satu pernyataan yang selalu muncul secara berkala, yaitu tentang kebencian sebagian besar member terhadap flash. Alasan yang paling sering dikemukakan adalah flash memakan memori, membuat browser jadi lambat bahkan sering crash. Dan alasan lain yang sering terdengar yaitu flash adalah platform tertutup dimana membangun aplikasi diatas flash sangat berbahaya sebab membuat ketergantungan yang mungkin membahayakan dimasa depan.

Saya sih biasanya enggak begitu tertarik mengomentari. Tapi hari ini, ada satu pertanyaan yang sedikit memaksa saya untuk berkomentar. Pertanyaan tersebut adalah “Apakah anda membenci Flash ? Kemudian untuk developer flash/flex, apa alasan anda memakai flash ?”

Sebenernya pertanyaannya standar, dan rata-rata jawabannya juga standar, yaitu sebagian besar membenci flash. Oleh karena itu saya jadi ikutan berkomentar, dan untuk menjangkau komunitas yang lebih besar, jawaban tersebut saya post di blog ini.

Saya tidak membenci flash. Kenapa ? Karena saya adalah developer yang berkerja diatas platform tersebut (dan mencari nafkah dengan platform itu dalam beberapa tahun ini ). Itu alasan terjujurnya :D Alasan lainnya adalah, apakah ada solusi lain SAAT INI yang bisa menyamai kemampuan flash ? Kata-kata saat ini perlu saya pertegas sebab alasan yang paling sering muncul adalah “Kenapa enggak pakai HTML 5 ?”. Yup HTML 5 adalah standar yang bagus, tapi apakah SAAT INI HTML 5 sudah siap ?

Sebenarnya saya sudah bertahun-tahun membangun aplikasi web kompleks dengan menggunakan HTML (+ tag canvas) + javascript + CSS. Mimpi saya selama membangun aplikasi web komplek tersebut adalah memiliki fasilitas untuk kompilasi, bahasa pemrograman yang lebih modern dan transmisi kode dalam bentuk binary terkompresi. Buat yang sudah sering mrogram dengan javascript, pasti tau dong bagaimana susahnya mencari error kalau javascript anda sudah ribuan baris. Ato bagaimana susahnya mengenkapsulasi data/fungsi memakai javascript yang prototyping itu (jangan sampe ada yang bilang javascript itu object oriented loh !!!). ato bahkan pusingnya melihat library javascript anda sudah ratusan kilobyte walaupun sudah memakai script cruncher. setelah saya berpindah ke flex/flash, sebagian besar keinginan saya sudah terpenuhi.

Flash lama loadingnya ? Itu sebenarnya bukan kesalahan flash, tapi karena developer yang membuat aplikasi flash tidak memakai strategi yang tepat untuk load resource. Contohnya mengembed semua gambar kedalam binari flash, padahal kalau dia mau memisahkan gambar-gambar tersebut, bisa mendapatkan keuntungan caching dari browser dan proxy.

Flash berat ? Yup, flash berat… hal ini dikarenakan proses yang dikerjakan oleh flash biasanya berat, contohnya animasi. Kalau anda membuat animasi dengan menggunakan javascript pun browser pasti terasa berat. Bahkan jauh lebih berat daripada versi flashnya. Kalau mau ringan, ya jangan ada animasi, buat halaman web pure text + gambar. Jadi terserah anda, mau pilih yang interaksinya beragam tapi berat, atau ringan dengan interaksi terbatas.

Flash ngebuat crash ? Yup betul, terutama versi lama setahun-dua tahun lalu. Waktu flash 10 pertama kali keluar, memang terasa Adobe mengeluarkan produk yang belum jadi, mungkin karena tuntutan pemasaran. Tapi saat ini menurut saya sudah stabil.

Flash ngebuat komputer hang di Mac/Linux ? Yup betul sekali. Versi lama flash memang dioptimasi untuk berjalan di windows. Sehingga di platform Unix/Linux sering menyebabkan CPU terlalu sibuk. Tapi coba update langsung dari Adobe, jangan cuma install dari rpm/deb/tgz/pkg bawa CD installer. Kalau menurut saya sih sudah lumayan.

Flash tidak mendukung Hardware acceleration ? Yup seperti teknologi diatas web lainnya hardware acceleration belum didukung oleh flash saat ini. Tapi menurut informasi dari http://www.trustedreviews.com/software/news/2009/06/02/Adobe-Bringing-GPU—Hardware-Acceleration-to-Flash/p1 mungkin awal tahun depan kita sudah menikmati harware acceleration di flash (dan semakin melengkapi fasilitas 3D di flash)

Flash tidak opensource ? Yup betul sekali. Tapi free kan ? Apa bedanya dengan kita memakai browser safari ? Ato dengan kita pakai WinAmp ? Ato dengan java sampai versi 1.5 (sebelum di open oleh SUN) ? Ato orang yang memakai .NET ? Kalau anda mengkritik flash karena bukan opensource, konsistenlah dengan kritik anda terhadap produk free lain. Tapi jujur dalam hati saya kalau flash di open pun paling kontribusi terbesar pasti masih dari adobe, sama halnya dengan chromium (opensourcenya google chrome) diamana kodenya sudah terbuka tapi masih banyak orang komplain kenapa google belum build chromium untuk linux.

Flash tidak jalan di iPhone ? Ini mungkin karena alasan politik antara adobe dengan apple. Tapi solusi tengah antara adobe dengan apple sudah muncul, bisa dilihat di https://www.adobe.com/iphone

Jadi intinya sih nilai saat ini yang perlu di pentingkan. Flash memang tidak sempurna, tapi untuk saat ini merupakan solusi yang paling feasible untuk aplikasi web kompleks. Apakah HTML 5 bisa menggantikan flash ? Kemungkinan besar iya. Tapi HTML 5 perlu dibangun dahulu. Para vendor browser harus membuat library-libaray terkait untuk melengkapi dukungan fasilitas HTML 5. Kalau anda sanggup menunggu sampai HTML5 keluar dengan stabil, silakan. Atau kalau anda sedikit smart, bisa membuat aplikasi diatas flash dengan abstraksi yang netral, jadi bisa di pindah platform. Sebagai informasi Javascript masa depan diproyeksikan sebagai superset dari Actionscript (bahasa pemrograman flash)

Point penting lagi adalah, mohon bedakan antara ketidakmampuan developer aplikasi dengan kelemahan flash, sebab seringnya yang dikomplain oleh user bukan disebabkan oleh flash-nya tapi oleh developer aplikasinya yang tidak smart untuk menggambil strategi. Ini bisa terjadi di semua platform.

Tapi jangan-jangan kalau HTML 5 sudah mature dan banyak animasi menggunakan canvas, addon yang diperlukan bukan cuma sekedar FlashBlock, tapi juga CanvasBlok :P

Cron Untuk Windows

Semenjak saya menulis tentang bagaimana membuat Service Windows mempergunakan PHP (sekitar 3 tahun yang lalu). Ada saja programmer PHP yang menanyakan soal detil pemrograman service tersebut. Kebanyakan yang bertanya ke saya mencoba untuk mengimplementasikan Cron untuk lingkungan Windows.

Sebenernya saya menulis tulisan tentang service tersebut saat saya masih buta soal windows, oleh karena itu, untuk meluruskan kesalahan saya yang mungkin sudah mempengaruhi banyak programmer, saya khusus menulis artikel ini (sebenernya sudah lama ingin nulis, tapi baru aja kembali diingatkan ketika ada yang nanya kemarin ;) ).

Yang saya ingin luruskan adalah, sebenarnya windows (mulai dari windows 2000) sudah memiliki fasilitas yang mirip dengan cron, yang namanya “Scheduled Task” yang bisa diakses dari kontrol panel. He..he..he.. mungkin sebagian besar dari anda tertawa karena sudah jelas sekali maksudnya, tergambar dari namanya. Tapi untuk programmer yang ingin mengemulasikan fungsi Cron di windows kadang bingung untuk mulai dari mana.

Oke kita mulai langkah-langkahnya. Skenarionya adalah mengemulasikan cron yang berisi perintah “wget http://localhost/check.php” yang dipanggil tiap menit. Pertama, buat file vbs (ato js) yang berisi script untuk memanggil web page yang otomatis dibuka tiap menit, misal ktia simpan di file bernama “cron.vbs”. Isinya akan seperti ini :

Dim objRequest
Dim URL

On Error Resume Next

Set objRequest = CreateObject("Microsoft.XMLHTTP")
URL = "http://localhost/check.php"

objRequest.open "POST", URL , false
objRequest.Send
Set objRequest = Nothing

kemudian buka control panel, anda akan menemukan icon “Scheduled Task” yang kalau anda klik akan membuka folder yang berisi :

Klik 2 kali pada icon “Add Scheduled Task” untuk memulai wizard. Klik next pada wizard sampai pada form :

Browse untuk memilih file vbs yang sudah kita buat diatas. kemudian akan muncul form :

Pilih Daily, nanti ada seting tambahan supaya bisa per jam / menit. Klik next terus sampai akhir, isi dengan data yang sesuai, jangan lupa untuk memilih checkbox “Open advance properties for this task…” pada layar terakhir.

Pada form advance properties, pilih page “Schedule”, kemudian klik tombol “Advance” seperti layar dibawah ini :

Akan muncul form “Advance” dari form advance properties ;) seperti dibawah ini. Isi sesuai dengan yang saya tandai.

Kemudian jangan lupa untuk membuka page “Setting” dan uncheck semua pilihan seperti dibawah ini :

Kemudian tekan tombol OK, dan Tada…. Cron untuk windows anda sudah jadi. Mudah kan, tapi memang kalo belum tau caranya ya pusing carinya…

Tambahan FAQ lainnya :

1. Kok cuma per menit, gimana kalo mau per detik ?

Bisa di koding di bagian cron.vbs ato di check.php. Kalo saya biasanya di cek.php, jadi satu kali pemanggilan melakukan beberapa kali cek, contoh program untuk tiap 20 detik :

$count = 1;
while ($count <= 2) // kenapa 2 ? karena event ke 3 di menit selanjutnya
{
  doSomething();
  sleep(20);
  $count++;
}

2. Gimana mo buat restart komputer secara otomatis ?

Buat batch file (.bat) yang isinya :

SHUTDOWN -r -t 1

yup betul sekali windows punya shell command untuk restart komputer, coba cari parameter lain untuk efek yang berbeda.

3. Gimana buat restart suatu aplikasi tertentu secara otomatis ?

He..he..he.. ini sebenernya cara curang ngakalin program trial yang dibatesin waktu running. Triknya pakai 2 scheduled task, satu untuk matiin secara otomatis per waktu tertentu. Matiin program di window pake batch :

taskkill /F /IM [namaprogram.exe]

Trus buat schedule task untuk menghidupin program tiap 1 menit, jadi paling lama 1 menit programnnya gak berfungsi.

4. Gimana caranya buat … ?

Yah sebenernya sih tergantung kreativitas anda, intinya apapun yang bisa dipanggil dari command prompt, buat batch filenya. Yang bisa dipanggil lewat activeX, buat file vbs/js-nya. dan seterusnya. Untuk gambaran anda, sya pernah buat scheduled task untuk restart USB, kirim SMS per periode waktu, Print laporan per waktu tertentu, convert file jenis apapun ke PDF dan beberapa hal lain. Jadi intinya memang kreativitas anda saja.

Mudah-mudahan artikel ini bisa menghapus kesalahan saya menyesatkan banyak programmer sebelumnya ;)

Programmer tuh Tukang Ketik ?

Baru aja ada temen saya yang bilang kalo koding itu pada intinya adalah ngetik. Hmmm…. komentar ini seperti membangkitkan pemikiran terpendam saya yang sudah tersimpan bertahun-tahun. Masalahnya begini, setiap orang yang tau kalau saya adalah seorang programmer, seperti mengharapkan kalau saya ada adalah tukang ketik handal yang bisa mengetik dengan cepat full 10 jari.

Jujur, setiap saya mendengar anggapan tersebut saya agak terhina, sebab saya adalah pengetik yang sangat buruk ! Jumlah maksimal jari yang saya gunakan dalam mengetik cuma 5, dengan jumlah kata per menit sangat rendah dan error rate yang tinggi !

Tapi dengan kenyataan kemampuan mengetik saya yang cukup memalukan tersebut, saya cukup berani untuk bilang kalo bilang saya bukan programmer yang buruk (untuk jaman ini loh).  Maksudnya begini, kalo dilihat secara kasat mata, kegiatan yang dilakukan dalam memrogram adalah jelas mengetik. Tapi untuk orang yang benar-benar terlibat dalam pemrograman, pasti tau, sebenarnya mengetik tuh cuma sebagian kecil dari kegiatan memrogram. Memikirkan dan merencanakan urut-urutan perintah (ato bahasa kerennya algoritma) yang akan digunakan menurut saya adalah bagian yang paling banyak memakan waktu programmer.

Jadi, apakah saya akan belajar khusus untuk meningkatkan kemampuan mengetik saya ? Jawabannya adalah tidak. Apakah saya akan mempergunakan keyboard khusus programmer ? Sekali lagi jawabannya tidak. Sebab kalau anda melihat saya memrogram, anda akan sadar saya biasanya cuma mengetikkan 2 huruf, kemudian menggunakan fasilitas autocompletion untuk menyelesaikan apa yang saya maksud. Yup, kita tinggal dijaman saat IDE sudah canggih dengan autocompletion yang handal, fasilitas indentation yang sangat membantu, syntax highlight yang hebat. Jadi untuk saat ini kita programmer harus fokus ke tugas kita yang seharusnya, yaitu memrogram, bukan mengetik.

Pasti ada sebagian dari anda yang berfikir bagaimana kalau tidak ada IDE ? Jawaban saya adalah satu, pasti ada IDEnya, kecuali anda memrogram dengan bahasa pemrograman yang sangat aneh. Kalau demikian, itu salah anda sendiri yang menyusahkan diri sendiri. Di linux tidak ada IDEnya ?? Sekali-kali liat Eclipse dan liat bahasa pemrograman apa aja yang sudah didukung. Enggak pake mode grafik ? Coba buka emacs atau apa susahnya untuk buka komputer yang ada mode grafiknya, trus upload kode anda ke server linux setelah selesai.

Ato ada sebagian dari anda yang bilang kalau mengetik cepat, maka anda bisa punya banyak waktu untuk berfikir. Hmm.. kalo untuk tugas kuliah mungkin kali ya, kalau anda di dalam project real, sebagian besar waktu befikir anda akan dilakukan diawal yaitu pada tahan analisa dan desain, kalau anda berfikir banyak disaat memrogram, cepat berhenti dan kembali ke dokumen desain, sebab jelas anda melewatkan tahap yang sangat penting tadi.

Tambahan satu lagi, buat anda yang mengenal saya waktu kuliah dan tau skripsi saya, mungkin jadi mengerti kenapa saya berpendapat seperti diatas, sebab skipsi saya adalah bahasa pemrograman visual. Memang masih sederhana dan banyak kekurangan, tapi setidak-tidaknya menunjukkan kalu programming tuh bukan mengetik. Sebab mengetik tuh cuma sarana yang bisa diganti dengan sarana lain seperti gambar grafik visual.

Think Inside The Box !!!

Akhir-akhir ini saya sering mendengar kata-kata seperti “be creative !”, “think out of the box !” dan semacamnya. Bahkan ada satu stasiun radio anak muda di jakarta yang menggunakan “think out of the box” sebagai tema radio tersebut dalam tahun 2009 ini.

Saya sedikit tertarik dengan kata-kata “think out of the box”, sebab arti harafiah dari kata-kata tersebut adalah kita harus berfikir diluar kebiasaan yang ada untuk mendapatkan solusi terbaik untuk permasalahan yang dihadapi. Yang menarik bagi saya adalah ini soal box siapa ? soal kebiasaan berfikir siapa ?

Misalnya contoh ada permasalahan kekeringan di suatu desa. Kalau para petani disuruh menyelesaikan, kemungkinan besar mereka menggunakan solusi mengambil air secara manual dari sumber air terdekat. Kalau engineer mungkin mendatangkan mesin pompa atau membuat saluran air. Kalau ahli cuaca mungkin dia melakukan pembuatan hujan buatan. Bagi petani, membuat menggunakan mesin mungkin adalah sesuatu yang out of the box, padahal itu merupakan sesuatu yang biasa bagi enginer. Bagi enginer, membuat hujan buatan mungkin sesuatu yang out of the box, walaupun sebenarnya dianggap hal yang biasa bagi ahli cuaca.

Jadi, sering kali permasalahannya bukan suatu permasalahan memerlukan cara pikir yang berbeda, tapi mungkin perlu box yang tepat. Atau bahkan yang paling sering mungkin box kita kurang besar untuk memikirkan masalah tersebut.

Contoh lain dari pengalaman pribadi saya. Waktu saya kuliah saya punya teman yang memiliki rasa keingintahuan yang besar. Suatu hari dia menemui saya dan bilang dia menemukan suatu metode kompresi yang baru. Setelah penjang menjelaskan tentang “metode baru”-nya, respon saya waktu itu adalah “Maaf ya, tapi ini kan metode RLE yang dipakai format BMP”. Tidak putus asa, temen saya tadi di kemudian hari menemui saya lagi dan mepresentasikan metode baru kompresi, dan akhirnya ternyata metode itu sama persis dengan metode LZW.

Dari segi kreativitas, teman saya itu hebat sekali, dengan pemikirannya sendiri bisa menemukan teknik kompresi, tapi sayang box dia terlalu kecil sehingga usaha yang dilakukan sia-sia sebab penemuannya sudah diimplementasikan berpuluh-puluh tahun sebelumnya.

Jadi, sebelum mengklaim untuk berfikir out of the box, ada baiknnya kita mencoba memperbesar box pemikiran kita. Salah satunya adalah dengan memperhatikan benar-benar pelajaran waktu di sekolah. Kalau punya kesempatan, ambil jenjang pendidikan yang lebih tinggi. Sebab sekolah adalah cara termudah untuk memperbesar box pemikiran kita. Atau, kalau punya waktu, cobalah membaca literatur sesuai dengan bidang kita. Kalu bisa sih jangan cuma googling, soalnya kalo googling sering kali kita cuma membaca artikel ringkasan sehingga kita cuma punya pemahaman yang dangkal dan setengah-setengah.

Jadi enggak ada salahnya untuk “Think Inside The Box !” tapi dalam a really-realy big box.

Nb. waktu saya omongin masalah ini ke temen saya, tanggapannya cuma satu : “Den, yang begini ini nih yang disebut think out of the box”…. halah……

Thanks Buat KPU Atas Hiburannya !!!

Ini bukan isu, ini bukan rumor, tapi ini (juga bukan) data intelejen…. Ternyata orang IT di indonesia suka bercanda. Yup, sepanjang pemilihan 2009 ini sepertinya kita dipuaskan oleh KPU dengan menyediakan berbagai hiburan yang menarik. Thanks juragan !!

Ternyata dengan dana berratus-ratus milyar, IT KPU berhasil memutuskan untuk memakai software asing untuk membantu pengolahan data yang ratusan juta record ini. Jangan khawatir, software asing tersebut sudah teruji selama lebih dari 20 tahun sebagai pengolah data yang handal diseluruh dunia. Ya, software tersebut adalah our beloved MS Excel

Tapi ternyata penggunaa  software asing yang sudah teruji ini tidak membuat semua orang puas, oleh karena itu ada tim IT dari pasangan calon presiden yang hendak mencari kesalahan di data yang ratusan juta record itu dengan bantuan software asing lain yang juga sudah teruji bertahun-tahun : MS Access

Makanya sangat menyegarkan saat ada anggota kpu yang menolak pembandingan antara data KPU dengan data calon presiden, sebab ada perbedaan format antar data tersebut, yaitu satu di excel satu di access. Jelas beda dong, satu .XLS satu lagi .MDB….. X != M, L != D, S !=B

Satu lagi pelajaran berharga yang saya dapat dari KPU adalah persentase adalah alat yang sangat berguna. Maksudnya gini, waktu data KPU disisir, dalam jam-jam awal ditemukan 44 ribu data bermasalah diantara 25 juta data, ketua KPU bilang (kira-kira gini) “Kita akui ada kesalahan dalam data kita, tapi kan persentase-nya sedikit, dari 25 juta yang diperiksa, cuma 44ribu yang bermasalah”…. iya toh, gak sampe 0,1 persen !!!

(jadi lain kali boleh dong pak kalo saya bilang “Saya kan cuma menghabiskan waktu 1 malam dengan istri anda, dibandingkan anda yang sudah ribuan malam, saya gak sampe 0,1 persen” )

Konsultan IT KPU Harus Di BlackList Selamanya !!!

He…he…he… jangan kaget sama judul saya. Saya emang terkenal sebagai orang yang sering berlebihan dan sok tau, jadi mohon dimaklumi :D Hari ini kita sebagai orang IT harus berduka karena kisruh DPT bukan lagi mencoreng muka praktisi IT, tapi sudah menyayat-yayat, menginjak-injak dan membuang kekubangan penuh lumpur dan sampah (—> berlebihan deh….)

Ok gini deh, semua pasti sudah tau dong kalo DPT dipermasalahin oleh Mega/Pro dan JK/Win. Kedua pasangan tadi menuduh ada ketidakberesan DPT dan berpotensi menimbulkan permasalahan sampai 25 juta suara (ini saya tonton wawancara pak prabowo di metrotv). Saya sendiri gak yakin yang bermasalah sampe sebesar itu, tapi yang bikin sedih adalah pernyataan ketua KPU, dalam penolakannya ketua KPU menyangsikan kalau DPT yang bermasalah sebesar itu, tapi dia tidak menutup kemungkinan ada data double untuk NIK yang sama. Oke, mendengar ini saya cukup bingung….. Trus diwawancara yang berbeda, perwakilan KPU menyatakan bahwa ada kesulitan untuk mengatur data sampai ratusan juta. Saya cuma manggut-manggut sambil nyoba-nyoba  fasilitas searching google dan bing untuk nemuin data sampai milyaran ato bahkan triliunan record.

Oke kita simulasiin langkah pengelolaan data di KPU sebagai gambaran bagi anda yang enggak mendalami IT. Tapi sebelum mulai, saya mo bilang langkah ini bisa dilakukan oleh semua mahasiswa informatika yang sudah ambil mata kuliah database. Mungkin sebagian besar mahasiswa tersebut jauh lebih baik daripada saya yang biasanya cuma koding di daerah sistem dan komponen.

Pertama adalah kita harus mengelola data ratusan juta record, pilihan paling masuk akal tentu saja dengan  menggunakan database. Database yang mana ? Saya sih enggak tau, tapi tahun 2004 KPU menggunakan SQLServer, kemungkinan tahun ini sama, lagi pula KPU seperti punya kedekatan dengan Microsoft. Langkah selanjutnya yang paling tepat adalah melakukan analisa data apa saja yang peru dicatat, fieldnya apa saja dan hubungan antar data bagaimana. Kalau kosultan IT sedikit profesional (cukup sedikit aja), pasti menelurkan diagram ER, saya gambarkan sedikit deh, hubungan antara pemilih dan  TPS (ini yang dipermasalahin sekarang kan ?).  Jadi sejelek-jeleknya kayak gini :

Maksud gambar diatas, ada data Pemilih dan data TPS yang memiliki hubungan 1 TPS terdaftar n (lebih dari 1) pemilih. Dari diagram diatas, kita bisa mengharapkan database kita bisa menjawab pertanyaan-pertanyaan seperti “Siapa saja pemilih yang terdaftar ?”, “Siapa sajakah yang terdaftar di TPS x ?”, “Pemilih x terdaftar di TPS mana ?” dan banyak pertanyaan lain yang berhubungan dengan pemilih dan TPS.

Langkah selanjutnya adalah mengimplementasikan ke dalam table fisik. Tentu aja yang paling gampang adalah Pemilih jadi satu table dan TPS jadi satu table. Untuk menghindari data double, maka table Pemilih dan TPS diberi primary key yaitu NIK dan TPS_ID. Sedangkan untuk menyimpan hubungan antara table Pemilih dangan table TPS, karena hubungannya 1 ke N, maka diimplentasikan dengan menitipkan ID table yang kecil di table yang besar, dalam hal ini kita menambahkan field TPS_ID di table Pemilih. Dengan demikian bisa tercapai database yang bisa menjawab semua pertanyaan diatas, dan membuang jauh-jauh pernyataan bahwa ada kemungkinan data double untuk NIK yang sama.

Sedangkan untuk menjawab pertanyaan ada tidak orang yang sama dicatat 2 kali (dengan 2 NIK), kita bisa melakukan query dengan contoh sebagai berikut :

select nik, count(*) from pemilih group by (nama+alamat) having count(*) > 0

Atau sql semacam diatas untuk membantu pengecekan data double.

Kemudian untuk menjawab kesulitan pengelolaan data ratusan juta record, ya jangan pesimis dulu… Google yang datanya super duper besar bisa menampilkan hasil dalam hitungan milidetik. Kalau ratusan juta sih bukan masalah. Lagi pula yang mengimplementasi database ratusan juta bukan cuma KPU, saya secara pribadi pernah mengimplementasikan yang datanya bertambah 800 ribu perhari, dan sistem tersebut harus membuat laporan bulanan (24 juta-an record) dan tahunan (280 juta-an record). Pengolahan data sebanyak itu tentu perlu kekuatan prosesor dan memori yang mumpuni, tapi bukan hambatan karena KPU punya dana cukup untuk beli server seperti itu (dan sepertinya sudah ada, karena punya kenalan yang ikutan tender server KPU di daerah, speknya cukup tinggi).

Desain database yang baik, seperti penggunaan index yang tepat dan penggunaan segmentasi data yang tepat akan membuat pengolahan data ratusan juta tersebut bukan masalah besar. Perlu waktu, tentu saja, tapi bukan hal yang tidak mungkin.

Saya sih tidak tahu cara kerja konsultan IT di KPU, mudah-mudahan jauh lebih baik dari pada simulasi amatiran saya ini. Sepertinya IT KPU harus meklarifikasikan cara kerja sendiri karena menurut saya pemberitaan yang beredar sudah sangat mencederai profesi konsultan IT. Mungkin yang berkembang saat ini cuma kecurangan, tapi saya yakin isu tersebut akan berkembang termasuk juga pada kapabilitas praktisi IT di indonesia dalam mengimplementasikan tugas-tugas yang sebenarnya sangat sederhana dan mudah untuk dilakukan.

Tapi mendengar pemberitaan sekarang, saya jadi menduga kalau konsultan IT KPU melakukan langkah yang berbeda, yaitu pada langkah pertama, jadi bukannya pakai database tapi pakai software pengolah data favorit sepanjang masa : MS Excel

Ubuntu, Mono dan Free Software…

Akhir-akhir ini ada perdebatan cukup hangat tentang apakah perlu Ubuntu Linux secara default untuk mengikutkan Mono (versi linux untuk Microsoft .NET - bukan dibangun oleh microsoft tapi oleh tim opensource), beritanya bisa anda lihat di sini, sini dan sini. Awalnya sih saya gak terlalu tertarik untuk berkomentar, karena saya bukan pengguna ubuntu sebab linux yang saya pergunakan adalah linux yang dijalankan sebagai server (dari beberapa distro selain ubuntu) dan saya bukan pemakai mono/.NET kecuali untuk coba-coba.

Yang menarik bagi saya adalah masalah penolakan pemasukan mono ke Ubuntu tersebut berkembang menjadi debat apakah Mono membahayakan bagi linux secara umum , bagaikan virus AIDS yang menyebar dan akan mematikan linux. Bahkan perdebatannya sudah hampir mirip perdebatan ideologi atau agama :D   …. Saya berandai-andai bagaimana kalau .NET itu bukan buatan microsoft, tapi perusahaan lain seperti Oracle atau IBM, apakah penolakannya akan seperti itu ?

Saya enggak yakin penolakannya akan sekeras sekarang, karena posisi Mono saat sama persis dengan posisi JVM opensource sebelum SUN akhirnya mengopensource-kan JVMnya (sebagian besar). Tidak ada penolakkan keras waktu JVM kaffe/latte dimasukkan secara default ke berbagai distro, bahkan ada sedikit kebanggaan dari distro untuk bisa memberikan kemampuan menjalankan aplikasi java secara default. Jadi bedanya apa ?? Java juga standar dari sebuah perusahaan, gak beda dengan .NET. Dulu juga ada ketakutan kalau standar java bisa diubah oleh SUN, seperti ketakutan kalau standar .NET akan diubah oleh Microsoft saat ini, tapi kenapa dulu tidak ada penolakan tentang pemakaian java di linux ?

Yah sekali lagi faktor Microsoft. Saya ngerti kok banyak pemakai  Linux memakai linux didorong oleh kebencian terhadap microsoft :P . Tapi bukannya linux OS bebas ? Maksudnya bebas milihnya, bebas makenya, bebas ngebundle, bebas milih desktop dan bebas milih aplikasi ? Jadi kalo ada orang lain yang memrogram dengan usaha sendiri, memakai untuk keperluan mereka sendiri (plus orang lain yang tertarik) suatu standar dari microsoft untuk bisa berjalan di linux (OS yang bebas ini) boleh aja kan ? Ato gak boleh ?

Soal Ubuntu mau ngebundle mono apa enggak kalo menurut saya sih terserah maintenernya. Kalo anda pake ubuntu dan gak mau pake mono, kan bisa milih gak nginstall mono+aplikasi yang bergantung padanya. Ya mirip juga waktu anda gak suka Gnome bisa milih untuk make Kubuntu dan meremove semua depedensi ke library gnome dan aplikasi-aplikasinya. Ato pake distro lain sekalian…

He..he..he.. sebaiknya saya berhenti disini sebelum makin banyak perdebatan …………………………

(hiks nerusin download Plan9 ah, kayaknya OS-nya menarik….. )

Windows 7 di Eropa Tanpa IE (Dan Reaksinya…)

Mungkin sebagian besar sudah tahu bahwa Microsoft berencana untuk mendistribusikan Windows 7 di eropa tanpa IE didalamnya. Langkah yang mengejutkan banyak pihak tersebut diambil untuk menjawab tuntutan komisi eropa (dan opera) yang menuduh microsoft melakukan praktek monopoli dengan membundle IE dalam osnya.

Mungkin langkah tersebut sangat masuk akal, maksudnya apabila bundle IE dihilangkan, maka tuduhan membundle IE sebagai monopoli seharusnya hilang kan ??? Tapi yang aneh adalah reaksi dari opera dan komisi eropa yang malah tidak setuju dengan langkah tersebut. Intinya opera menginginkan ada popup pilihan browser ketika user menginstall windows. Sedangkan Komisi eropa masih mengkaji walaupun menyatakan tidak antusias dengan pilihan browser tersebut, sebab komisi eropa lebih suka micosoft memberikan kebebasan untuk EOM untuk menambahkan browser yang mereka mau.

Yang saya mo komentari disini, pertama saya bukan penggemar Microsoft tapi juga bukan pembenci Microsoft (aduh kenapa sih kalo mo nulis sedikit pembelaan ke microsoft harus nulis gini dulu supaya enggak dituduh macam-macam). Menurut saya yang dilakukan oleh opera adalah langkah perusahaan cengeng yang mau dengan mudah mendapatkan user. Maksudnya player browser sekarang tuh banyak. Ada Micosoft (IE), Apple (Safari), Mozilla (Firefox), Google (Chrome) dan Opera sendiri. Provider lain tetap bisa mengembangkan market sharingnya dengan keadaan saat ini. IE secara bertahap turun market sharingnya seiring perkembangan firefox dan chrome. Dan market sharing opera sendiri juga menurun dimakan kedua browser tadi. Jadi permasalahan yang dihadapi opera bukan masalah IE, tapi masalah softwarenya sendiri yang kurang begitu disukai oleh banyak orang (walau ada beberapa fanboy yang membela mati-matian) dan kurangnya publisitas oleh opera sendiri. Oke lah kalo dibilang Chrome di backup oleh google yang punya banyak uang untuk publikasi, tapi ternyata opera juga kalah dengan firefox yang digawangin tim opensource.

Solusi yang tawarkan opera, yaitu dengan pop up dialog memilih browser yang akan diinstal malah menimbulkan masalah lebih banyak. Masalah pertama tentu aja browser mana aja yang perlu dilist dalam pop up tadi, akan ada komplain tambahan dari provider browser lain. Lagian kalo browser minta dipilih ada kemungkinan komponen lain seperti text editor, kalkulator, file browser minta dibuatkan juga.

Sebenernya saya gak setuju IE di unbundle dari windows. Karena saat ini webbrowser adalah fitur dasar dari sebuah OS, layaknya text editor (kayak notepad), file browser (kayak explorer) dan kalkulator. Kalo tidak suka dengan yang ada di default OS, kita bisa dengan mudah mendownload alternatifnya baik yang bayar ato yang gratis. Install browser selain IE enggak dilarang oleh microsoft kan ? Lagian kalo enggak ada IE susah sekali mendownload browser lain. Ada yang bilang bisa lewat ftp, well….. gak semua orang bisa pake ftp, lagian nanti juga ada komplain dari provider software ftp…. halah jadi gak habis-habisnya…

Soal keinginan komisi eropa untuk membebaskan EOM menambahkan browser pilihan eom tersebut, hmmm bukannya saat ini sudah begitu. Maksudnya waktu kita beli komputer branded kebanyakan eom sudah menambahkan software seperti antivirus kan ? Kenapa enggak bisa melakukan hal yang sama dengan browser ? Tapi sebenernya sih bukan karena enggak bisa, tapi enggak mau. Melakukan kerjaan tambahan berarti kan cost tambahan untuk eom, jadi eom membiarkan client pake browser default dulu, kalo gak suka silakan clientnya mendownload yang lain.

Bebaskan Ibu Prita…

Sebenernya saya gak tau awal kasusnya gimana, tapi setelah baca di beberapa blog (salah satunya bisa dilihat di http://ibuprita.suatuhari.com/) jadi miris juga. Mengeluh malah dipenjara. Mana masih punya anak balita seusia 1 tahun 3 bulan. Udah serasa diamerika aja, tuntut sana tuntut sini. Tapi bukannya kalo pencemaran nama baik itu kasus perdata ya, yang kalo kalah hasilnya didenda, bukan dipenjara.

Dengan blog ini saya mengajak semua yang belum tau untuk memasang banner diatas, bisa diambil dari http://ibuprita.suatuhari.com/. Gerakan moral untuk bebaskan ibu prita.