Tuesday, February 24, 2009

Fenomena Irrasional, Ponari Sang Putra Petir.

Akhir-akhir ini, kita disuguhkan oleh suatu fenomena aneh yang terjadi pada suatu wilayah, tepatnya di desa Brodot, Jombang, Jawa Timur. Fenomena yang tidak hanya menyedot puluhan ribu warga untuk mencari pengobatan alternatif, tetapi juga menyedot perhatian masyarakat lain yang semakin hari semakin meluas. Bahkan mungkin karena didorong oleh suatu kekhawatiran, tokoh agama tidak cukup memberikan fatwa pelurusan pemahaman dari belakang layar, tetapi harus terjun langsung ke lapangan. Begitu menariknya fenomena tersebut, hingga media masapun tidak cukup sekali mengulasnya. Tak pelak, bisa jadi karena andil pemberitaan di media pula, maka yang berdatangan ke Brodot tidak hanya warga sekitar, tetapi sudah menjangkau jauh dari wilayah lain, mungkin sudah sampai luar Jawa Timur. Konsentrasi warga di Brodot, bak munculnya luapan lumpur lapindo yang semakin hari semakin sulit dibendung. Semakin hari, semakin menyemut, hingga perlu dibentuk kepanitiaan pengobatan. Konsentrasi itupun telah menyedot uang tidak sedikit, bahkan bisa dibilang sangat besar, miliaran rupiah. Wow……..! Seorang bocah secara tiba-tiba telah menyedot perputaran uang sebesar itu. Mungkin banyak yang diuntungkan, tetapi tentu ada ongkos yang harus dibayar, terutama oleh warga sekitar termasuk keluarga yang bersangkutan. Desa yang sebelumnya aman tenteram, warganya leluasa keluar masuk kampung, bekerja keras untuk menghidupi keluarganya, kini harus berjuang keras membuka sumbatan ribuan warga, agar bisa beraktifitas, atau sekalian ikut terlibat dalam penangangan antrian itu. Sang bocahpun bahkan harus rela meninggalkan bangku sekolah, artinya harus meninggalkan kesempatan mendapatkan pendidikan yang lebih layak. Tidak cukup sampai disitu, kesempatan bermain bersama teman-teman sebaya sebagaimana keceriaan sebelumnya terampas oleh panjangnya antrian yang harus ditangani. Sang ayahpun harus dirawat di rumah sakit karena terlibat tarik ulur kepentingan sang anak ajaib.

Daya tarik utama atas fenomena itu bersumber pada sebuah batu petir yang dimiliki sang bocah kecil bernama Ponari. Konon, batu itu terkait sambaran petir yang dibawa pulang oleh Ponari. Konon pula, batu itu bisa kembali sendiri ke rumah Ponari setelah dibuang ke kebun.Singkat kata, batu itu sangat istimewa, sehingga sang bocah mampu mengobati tetangganya yang sakit dengan perantaraan batu itu. Pilot project (pertama) ponari ternyata berhasil. Alhasil, bak butiran yang bergulung di atas gunung salju, berita penyembuhan itu berhembus dari mulut ke mulut, dari satu rumah ke rumah yang lain, dari satu kampung ke kampung yang lain, begitu seterusnya, dan ditambah pemberitaan media yang sangat gencar, maka dalam waktu yang relatif singkat, puluhan, ratusan, ribuan, d.s.t, masyarakat berduyun-duyun ke tempat Ponari. “Mau mencoba, siapa tahu….……”, begitu mungkin yang antara lain ada di benak mereka.

Memperhatikan fenomena ini, akal sehat tentu akan dengan sangat tegas melakukan penolakan. Masyarakat sudah jauh meninggalkan nalar sehatnya. Entah dengan perhitungan bagaimana, mereka tidak hanya rela mengantri begitu panjang dan melelahkan, tetapi mereka sudah sampai pada keputusan untuk mengambil air atau tanah comberan sekitar rumah pengobatan, sebagai alternatif jika tidak bertemu Ponari. Belum sempat semua isi antrian itu mendapatkan kesempatan untuk mencicipi tuah batu petir Ponari, masyarakat dihebohkan lagi atas pengakuan temuan batu serupa yang lokasinya masih tidak jauh dari desa Ponari. Bedanya, kali ini empunya adalah bocah perempuan. Betapa sudah demikian tidak terkendalinya nalar saudara-saudara kita itu. Apakah yang menyebabkan semua itu? Tekanan ekonomikah? Hilangnya kepercayaan kepada departemen terkaitkah? Ataukah karena fasilitas kesehatan yang berada di atas menara gading, hingga sulit dijangkau oleh masyarakat lapisan bawah? Atau karena faktor sosial lain? Kasihan sekali melihat apa yang mereka alami dan lakukan.

Pada suatu titik, mungkin masih wajar jika mereka perlu mencari pengobatan alternatif, baik melalui akupuntur, terapi herbal, terapi elektronik, dan aneka macam metode alternatif lainnya. Tidak sedikit kita jumpai pengobatan alternatif menjadi pertimbangan efektif dan aman, yang tidak hanya dirasakan oleh masyarakat ekonomi kelas bawah, tetapi juga masyarakat kelas mengah hingga atas. Dari yang tidak berpendidikan formal hingga yang berpindidikan tinggi, sundul langit sekalipun. Tetapi semuanya masih dalam batasan logika yang wajar, tidak demikian dengan mengkonsumsi air dan tanah comberan. Yang jauh lebih dikhawatirkan lagi adalah bisa terjerumusnya masyarakat ke dalam musrik, yang menganggap kesembuhannya (jika memang terjadi) adalah karena tuah dari batu petir ajaib itu, batu yang kini lengket dengan empunya, Ponari Sang Putra Petir, mungkin demikian disebutnya jika dinovelkan.

Wednesday, February 18, 2009

Normalisasi Tabel

Pada OLTP (online transaction processing), normalisai adalah suatu upaya penting yang dilakukan untuk menghindari agar tidak terjadi redundansi data yang bisa berakibat kepada anomali update. Anomali update meliputi anomali insert, anomali delete, anomali modification. Untuk lebih jelasnya bisa dilihat ilustrasi dari contoh berikut :










Berdasarkan atas contoh tabel (relation, entity) di atas, data yang terkait staf dan cabang dapat direpresentasikan dalam dua cara :
1. Cukup disediakan satu tabel, yaitu StaffBranch
2. Disediakan dua tabel, yaitu Staf dan Branch

Pada tabel StaffBranch terdapat redundansi data cabang, dimana detil dari cabang terjadi pengulangan untuk setiap staf. Sebaliknya, informasi cabang hanya muncul sekali untuk setiap cabang pada tabel Branch, dan hanya branchNo yang berulang di dalam tabel Staff untuk merepresentasikan lokasi kerja staf.
Bagaimana anomali bisa terjadi pada StaffBranch?
Contoh 1 : Misalkan terjadi transaksi penambahan (insert) staf baru, maka yang dilakukan tidak cukup hanya mengisi data staf tetapi berikut data cabangnya. Jika data cabang untuk staf baru sudah ada sebelumnya, maka ada kemungkinan pengisian ulang data cabang dengan nilai yang berbeda. Dengan demikian, akan terjadi inkonsistensi data cabang.
Contoh 2 : Misalkan terjadi transaksi penghapusan data (delete) staf dan pada target record tidak terdapat pengulangan data cabang, proses akan berdampak pada hilangnya data cabang yang mestinya tidak ikut terhapus.
Contoh 3 : Misalkan terjadi transaksi perubahan/modifikasi (update) data cabang untuk data cabang yang mengalami perulangan. Proses bisa menimbulkan inkonsistensi data jika proses perubahan tidak untuk seluruh record terkait.

Untuk melakukan proses normalisasi, perlu dipahami terlebih dahulu konsep utama dalam normalisasi yaitu ketergantungan fungsional (functional dependency). Functional dependency adalah hubungan antar antribut di dalam suatu tabel. Jika A dan B adalah atribut-atribut yang ada di dalam tabel R, B tergantung secara fungsional terhadap A, jika setiap nilai A di dalam R berelasi hanya dengan satu nilai B (ditulis A → B). Dalam hal ini, A disebut sebagai determinant.
Karakteriktik dari ketergantungan fungsional pada normalisasi adalah :
1. Berelasi satu dan hanya satu (1:1).
2. Berlaku (terjaga konsistensinya) untuk kapan saja.
3. Nontrivial.
Trivial dependency adalah ketergantungan fungsional dimana non determinant tergantung pada superset. Contoh StaffNo, StaffAddress → StaffAddress adalah trivial selama StaffAddress → StaffAddress.
Selain memahai ketergantungan fungsional, beberapa jenis ketergantungan berikut ini perlu untuk diketahui :
Trivial dependency, adalah ketergantungan fungsional dimana non determinant tergantung pada superset. Contoh StaffNo, StaffAddress → StaffAddress adalah trivial selama StaffAddress → StaffAddress.
Full functional depencey, adalah ketergantungan dimana non determinant tergantung penuh pada (seluruh) determinant. Misalkan OrderNo, PoductNo → Price.
Transitive dependency, adalah suatu hubungan ketergantungan fungsional yang terjadi secara tidak langsung.Contoh A → B, B → C, maka secara tidak langsung terjadi ketergantungan A → C.

Dalam proses normalisasi, perlu juga memahami konsep beberapa tingkatan nilai kunci (key) berikut ini:
· Superkey, adalah sebuah atribuat atau sebuah himpunan atribut yang secara unik dapat mengidentifikasi record dalam tabel. Contoh informasi keahlian staf dalam tabel StaffSkill bisa memiliki superkey StaffNo, StaffAddress, Skill, atau cukup StaffNo, Skill.
· Candidate key, adalah superkey yang tidak terdapat subset yang merupakan superkey.Dari kedua contoh superkey di atas, candidate key yang tepat adalah StaffNo, Skill.
· Primary key, adalah candidate key yang terpilih untuk mengidentifikasi nilai yang unik dalam suatu tabel.
· Alternate key, adalah candidate key yang tidak terpilih menjadi primary key.
Tahapan normalisasi :
· UNF (unnormalized form), adalah tabel yang masih memiliki satu atau lebih kelompok berulang (repeating group).
· 1NF (first normal form), adalah tabel yang hanya terdapat satu dan hanya satu nilai untuk irisan baris dan kolomnya. Diperoleh dengan menghilangkan kelompok berulang pada UNF, antara lain dengan membentuk tabel baru pada kelompok yang berulang dengan menyertakan (kopi) kuncinya.
· 2NF (second normal form), adalah tabel yang seluruh non determinannya bergantung penuh (bukan subset) pada determinant, jadi tidak terjadi partial dependency. Diperoleh dengan menghilangkan partial dependency dengan membentuk tabel baru yang menyertakan determinannya.
· 3NF (third normal form), adalah tabel yang tidak terdapat hubungan transitive di dalamnya. Diperoleh dengan menghilangkan transitive dependency dengan membentuk tabel baru yang menyertakan determinannya.
· BCNF(Boyce–Codd Normal Form), adalah tabel yang memiliki persyaratan 3NF dengan tambahan batasan determinant harus candidate key.Perbedaan antara 3NF dengan BCNF adalah (misalkan untuk relasi A → B), pada 3NF B boleh sebuah atribute primary key dan A bukan candidate key, sedangkan pada BCNF untuk relasi tersebut A harus candidate key. Dengan demikian BCNF tentu 3NF, tetapi 3NF belum tentu BCNF.
· 4NF (fourth normal form), adalah tabel yang memiliki persyaratan BCNF dan non-trivial MVD(multivalued dependency). Contoh di dalam tabel BranchStaffOwner terdapat relasi MVD branchNo → StaffName, OwnerName. Antara StaffName dan OwnerName masing-masing independen. Jadi untuk 4NF bisa dikembangkan menjadi branchNo → StaffName dan branchNo → OwnerName.
· 5NF (fifth normal form), adalah tabel yang tidak memiliki join dependency.Kasus ini jarang terjadi.
· Higher normal forms.
Dalam suatu proses normalisasi kemungkinan bisa terjadi lompatan kondisi dari suatu level normal ke dua atau bahkan lebih level di atasnya. Hal ini lebih besar kemungkinannya pada tabel-tabel atau entitas-entitas memiliki relationship yang sederhana, atau dengan kata lain jumlah entitas yang terkait sedikit. Misalkan pada proses normalisasi 1NF ke 2NF telah dilakukan proses penghilangan partial dependency, dan hasilnya terbentuk relationship baru yang bisa saja sudah tidak terdapat transitive depdendency, atau bahkan sudah memenuhi kriteria level di atasnya.Namun demikian, validasi normalisasi masih penting untuk dilakukan untuk bisa lebih memastikannya.

Monday, February 16, 2009

Mengoptimalkan Kinerja Akses Basis Data

Performa akses suatu basis data dalam sistem client-server, dapat dipengaruhi oleh beberapa faktor, antara lain kualitas desain basis data, dukungan OS&DBMS (software), dukungan infrastruktur (misal hardware dan jaringan). Dari sisi desain basis data, performa akses dapat dipengaruhi antara lain oleh kualitas desain query dan penerapan mekanisme indek. Dengan demikian, untuk menghasilkan performa akses basis data yang baik, tidak hanya menjadi fokus pada fase operasional, tetapi sudah dimulai pada fase pengembangan (analysis and design). Basis data yang dihasilkan melalui metodologi analisis dan desain yang tepat, akan membantu menghasilkan performa basis data yang baik. Salah satu metodologi pengembangan basis data adalah dengan menggunakan pendekatan DBALC (database application life cycle), lebih detil mengenai siklus ini bisa dibaca antara lain pada buku Connolly, Thomas dan Begg, Carolyn. (2002). Database Systems, 3rd Edition. Addison Wesley Longman, Inc. USA. Dan ringkasannya bisa libaca di http://choirulhuda.blogspot.com/2005/12/pengantar-basis-data.html.
Sebagaimana diketahui, dalam basis data relational, setiap tabel (ralation) memiliki struktur yang tersusun atas kolom (attribute) serta baris (tupple).Beberapa litaratur menyebut field, member untuk kolom, dan record untuk baris. Proses pembacaan suatu tabel dalam basis data, perlu menyertakan kolom dan baris yang dibutuhkan. Structured query language (SQL) untuk membaca data yang hingga saat ini dipakai adalah sebagai berikut :
SELECT [DISTINCT ALL]
{* [columnExpression [AS newName]] [,...] }
FROM TableName [alias] [, ...]
[WHERE condition]
[GROUP BY columnList] [HAVING condition]
[ORDER BY columnList]

Statemen query tersebut, prinsip dasarnya bekerja sebagaimana model relational algebra yang terdiri dari projection dan selection. Projection adalah mekanisme untuk memilih kolom-kolom tertentu pada relation sesuai kebutuhan, sedangkan selection adalah mekanisme pemilihan baris tertentu sesuai kebutuhan. Projection dan selection perlu diperhatikan pada saat mendesain sebuah query yang diinginkan agar performa akses data menjadi lebih baik, terlebih jika menggunakan beberapa tabel atau bahkan sub query.
Selain perlu memperhatikan desain query, performa akses basis data juga dapat dipengarui oleh adanya mekanisme indek. Mekanisme akses data dengan bantuan indek, secara sedehana dapat dianalogikan dengan suatu proses pencarian buku dalam rak melalui pembacaan katalog terlebih dahulu. Dari katalog bisa diperoleh lokasi yang lebih tepat keberadaaan buku yang diinginkan. Untuk kasus yang umum, pencarian buku dengan bantuan katalog tentu akan lebih cepat dibandingkan pencarian langsung ke rak penyimpanan. Dengan analogi tersebut, maka akses data langsung ke suatu tabel (table scan) akan memakan waktu lebih lama dibandingkan dengan akses melalui indek (index scan), karena fungsi indek tersebut dapat dianalogikan sebagaimana fungsi katalog pada proses pencarian buku.
Pada fase operasional, performa akses basis data masih perlu untuk terus dipelihara, meliputi antara lain pengaturan kembali indek (reindex), defragmentasi tabel dan indek, melakukan backup untuk record yang sudah tidak diakses lagi kemudian dihapus dari basis data yang selanjutnya bisa di-restore jika diperlukan. Umumnya DBMS (database management sytems) sudah menyediakan perangkat untuk membantu database tuning, yang tujuannya adalah untuk menjaga performa basis data untuk menjadi lebih baik. Selain itu, dari sisi DBMS perlu secara berkala melakukan patching pada DBMS, sesuai perkembangan terkini. Jika segala strategi tuning di atas masih belum signifikan untuk mendongkrak performa basis data, bisa jadi memang sudah waktunya untuk upgrade hardware ataupun menata kembali sistem jaringan yang terkait. Terkait hardware, perlu sekali diperhatikan umurnya, terutama harddrive, mengingat perangkat keras ini terhitung paling rentan, terlebih jika telah cukup lama dipakai secara terus-menerus.

Tuesday, February 03, 2009

Berkompromi Dengan Dingin

Di pagi yang masih berselimut dingin, makin terasa lebih dingin saat tiba di kantor sendirian dengan ruang ber AC sentral. Dingin ini benar-benar menusuk meskipun jaket jean butut masih belum terlepas. Maklum, saat ini adalah puncak musim hujan, dan kemarin adalah hari raya Imlek. Seperti sebuah takdir, setiap hari raya Imlek hampir selalu disertai dengan guyuran hujan, bahkan guyuran itu masih berlangsung pagi ini. Konon, menurut yang meyakininya, hal itu merupakan berkah. Jam di dinding masih menunjukkan angka 50 menit menuju awal jam kerja, tetapi sebagaimana biasanya, perkerjaan saya mulai lebih awal. Mengambil hasil backup data yang berjalan semalam adalah kegiatan pertama yang perlu dilakukan. Saat proses transfer data berlangsung, saya coba menghangatkan diri dengan "Googling", sekedar mengisi relung kecil isi otak kanan, agar tidak ikut menggigil terlebih membeku.Kadang seperti sebuah perjalanan tanpa arah, tidak terlalu jelas, ingin mencari dan mengoleksi bacaan apa hari ini? Database, Information Systems, Programming, atau sekedar koleksi Novel? Otak kiri atau otak kanankah yang harus diisi? Saya biarkan kebimbangan itu berlangsung paralel dengan terbukanya mesin pencari google. Saat halaman itu terbuka penuh, sepertinya isi otak kanan telah mengiang lebih lantang di kepala. Maklum, beberapa hari ini, saat baca salah satu harian pagi nasional sebelum berangkat kerja, isinya selalu mengupas pro dan kontra proyek pembangunan PIM (Pusat Informasi Majapahit). Simpul-simpul syaraf kepala ini ternyata masih aktif akan tema itu, maka spontan saat menu item searching itu muncul, terketiklah “ebook Majapahit”.

Berseluncur di dunia maya tak ubahnya berseluncur di dunia nyata. Kadang ada yang hitam, kadang abu-abu, kadang putih, atau warna-warna lain yang ikut muncul. Kecepatan seluncur tiba-tiba melambat saat sekilas terlihat di seberang ada kepingan-kepingan kata "Majapahit", "Novel", "eBook", "Endik", "Wonosalam", "Jombang", dan yang membuat perjalanan makin terhanti adalah munculnya serpihan kata "Gratis".Ibarat sedang berkendara, seketika rem tangan dan kaki langsung bekerja. “Cuiitttt…!”, pengereman itu agaknya seidkit mendadak, dan berhentilah pencarian pada suatu alamat, lalu berusaha belok ke arah itu untuk lebih jauh menelusuri isinya. Saat masuk lebih dalam, terbukalah lebih gamblang isi halamannya, dan ternyata benar-benar tersedia ebook gratis, tetapi bukan tentang Majapahit. Haluan sudah terlanjur masuk dan terjebak oleh kepetingan otak kanan, maka saat tertera bahwa novel tersebut boleh diunduh oleh penulisnya sendiri, maka “Ciauuuwwww!!!!!”, “Just do it…!”, “Right now…!”.”Permisiii…….,Kulo nuwun,...Sampurasun.....!”.

Selang beberapa saat, proses unduhpun komplet, sementara di layer lain, proses transfer data backup pun sudah selesai.Waktu masih jauh dari jam 9, mumpung proses unduh lagi “mak nyusss…”, perjalanan dilanjutkan ke alamat dikti, untuk mengunduh tabel dosen. Tabel itu diperlukan untuk pekerjaan EPSBED hari ini.
Ampuh, demikian yang bisa disimpulkan. Aktifitas ringan ini ternyata mampu mengurangi pengaruh tekanan udara dingin di pagi hari.Simpul-simpul syarat terasa masih tersadar bahkan ikut menghangat, sehangat pengaruh kopi kental dengan sedikit gula yang kuminum pagi-pagi tadi.

Jujur, diri ini mungkin termasuk dalam salah satu kelompok yang belum mampu memberikan penghargaan yang layak bagi para penulis. Dikatakan demikian karena interes yang tinggi akan buku-buku digital (ebook) gratisan, termasuk novel, yang bermutu tentunya. Namun demikian, semua ebook itu hanyalah untuk konsumsi pribadi, tidak untuk diperjualbelikan.Bahkan sejauh ini, sekedar menyebarkan pun saya hindari. Untuk meringkankan "dosa" itu, beberapa buku (novel) saya coba beli versi cetakannya.Tentu jika ada sisa belanja untuk susu anak-anak.Maklum, di negeri yang tumbuh subur karya-karya (seninya) ini, kurang diimbangi dengan kesempatan menikmati karya-karya (seni) bagi orang-orang berduit cekak. Ini lantaran harga buku yang sulit terjangkau bagi lapisan bawah.Padahal, dari buku kita bisa banyak belajar dan mengambil hikmah. Bahkan tidak sedikit karya-karya hebat jadi ikut terperosok masuk perangkap hukum supply-demand, makin banyak peminatnya, makin melejit harganya, hingga ke ujung menara gading. Orang-orang kecil hanya bisa menengadah dan ngiler, atau bagi yang sudah “gila”, bisa merelakan anak-anaknya tidak minum susu lagi, setidaknya kualitas susunya akan down-grade.

Di sisi lain, penulis memang perlu mendapatkan penghargaan, karena mereka juga manusia yang memiliki kebutuhan-kebutuhan, disamping juga tidak menutup kemungkinan masih memiliki keinginan-keinginan.Oleh karena itu, jalan tengah perlu diambil, jika tersedia gratis ya ambil, jika tidak maka harus menunggu kesempatan untuk bisa membeli versi cetaknya.Kompromi dengan kebutuhan pribadi, kebutuhan penulis, serta kebutuhan keluarga adalah jalan tengah yang perlu diambil untuk masa seperti ini.

Salut dan terima kasih perlu saya sampaikan buat novelis muda, pendatang baru, Endik Koeswoyo, yang telah merelakan beberapa karyanya untuk diunduh secara gratis. Semoga bisa terus berkarya dan berjaya sebagaimana idola-idolanya, dan turut serta menghangatkan isi otak kanan para pembaca dengan karya-karya yang bermutu. Banyak penulis sudah berada pada puncak ketenarannya, dan saya melihat Endik punya potensi ke arah sana, meskipun saat ini masih pada masa “Growth”.Menyebarkan ebook semacam ini adalah salah satu usaha yang tepat untuk membangun "Brand", setidaknya untuk saat ini menurut orang awam semacam saya.

World Cup 2010

Sepak bola (World Cup 2010) hanya sebuah aktifitas yg dimainkan di area panjang 100-110m x lebar 64-75m, tetapi magnetnya bisa menghisap rat...