Posts Tagged ‘Programming’

h1

Tulisanku yang Melanglang Buana

August 27, 2008

Iseng-iseng searching di google, secara tidak sengaja saya menemukan sebuah tulisan dari sebuah blog yang sama-sama dari wordpress juga, dengan judul dan “caption” alias potongan kata2 yang mirip dengan posting yang pernah saya buat.

Karena penasaran, saya klik hasil pencarian google tersebut untuk melihat isi dari tulisan.
Ternyata benar, 100% persis dengan tulisan saya. Tidak ada yang berubah satu huruf maupun satu tanda baca pun.

Well…dalam hati saya hanya berpikir : wah tulisan yang saya buat ternyata bisa bermanfaat juga buat orang lain, sampai2 mereka mengambilnya begitu saja tanpa menyertakan siapa penulis sebenarnya, atau dalam dunia maya dan hak cipta disebut juga credits.

Saya tidak marah, tidak juga melarang tulisan saya dimuat dan disertakan di media lain, malah saya senang karena ilmu yang dibagikan tidak akan berkurang justru semakin berlipat-lipat. Hanya saja coba sertakan siapa penulis aslinya. Hal yang sama banyak juga berlaku di forum-forum dan media komunitas lain, dimana sudah menjadi aturan tak tertulis yang wajib ditepati (jika tidak ingin disebut script-kiddies, leecher, pirater, copycat, dll) jika menyertakan hasil karya orang lain, maka sertakan nama pembuatnya sebagai credit. Ngga susah koq dan ngga akan memperjelek tampilan situs anda. Justru anda akan semakin disenangi oleh pembaca maupun penulis yang anda sadur hasil karyanya.

h1

[Visual Basic 2005] Threading pada Visual Basic 2005

July 29, 2008

Threading merupakan salah satu teknik pemrograman yang menurut sebagian orang rumit dan membingungkan karena kompleksitasnya. Tapi untunglah, di .NET Framework, Microsoft telah menyediakan sebuah komponen khusus untuk menangani kegiatan threading ini yang membuat segalanya jadi lebih mudah.

Komponen tersebut adalah BackgroundWorker. Dari namanya sudah dapat ditebak kegunaan dari komponen ini bukan 🙂

Terdapat 2 method utama pada komponen ini antara lain :

  • RunWorkerAsync : untuk memerintahkan thread agar mulai aktif dan menjalankan tugasnya.
  • CancelAsync : untuk menghentikan thread secara “paksa”.

Selain method terdapat 3 event utama yang dimiliki oleh BackgroundWorker yang memungkinkan kita mengontrol sebuah thread.
Event tersebut adalah :

  • DoWork : Event ini dibangkitkan ketika method RunWorkerAsync dipanggil yang menandakan bahwa thread diperintahkan untuk aktif. Di event inilah routine yang perlu dilakukan oleh thread dieksekusi. Contohnya, membuka file, melakukan pengambilan data dari database server, dan sebagainya.
  • ProgressChanged : Event ini dibangkitkan ketika thread sedang bekerja. Di event ini biasanya digunakan untuk menjalankan ProgressBar untuk menginformasikan sejauh mana thread telah melakukan tugasnya.
  • RunWorkerCompleted : Event ini dibangkitkan ketika thread selesai menjalankan routine yang dibebankan pada event DoWork. Biasanya di event ini terdapat routine-routine yang dijalankan ketika suatu thread selesai menjalankan routine nya. Misal, menghapus file yang sudah berhasil dibaca oleh thread, menutup koneksi database, mengeluarkan MessageBox dan sebagainya.

Baiklah mari kita coba mempraktekkan threading ini biar langsung terasa khasiatnya 😛

Read the rest of this entry ?

h1

Java : Bahasa Pemrograman Paling Narsis

April 4, 2008

Kata-kata ini sebenernya udah lama terngiang di kepala sejak pertama kali belajar tentang Java, bahasa pemrograman yang (katanya) multiplatform dan portable.

Kenapa paling narsis? ya, hampir semua yang ada dalam Java, baik class-class, package dan sebagainya selalu diawali dengan kata2 “Java” atau minimal huruf “J” didepannya. Contoh, dalam Java ada komponen atau class2 seperti : JButton, JWindow, JApplet, JDBC, dan masih banyak lagi. Buka user manual Java, maka hampir semua yang ada di indeksnya adalah huruf “J” hehehe…..

Jika anda pakar Java atau setidaknya pernah “berurusan” dengan bahasa ini pasti menyadari hal itu tapi mungkin sedikit yang sadar implikasi tersembunyi dari sistem penamaan ini. Ya, implikasi yang berujung pada anggapan bahwa java adalah bahasa yang “narsis”. Sama seperti seorang anak muda yang terobsesi pada dirinya sendiri (narsis), bangga akan dirinya, yang menuliskan namanya dimana saja, buku, baju, pin, tas, plat nomor dan sebagainya.

Mungkin maksud para pakar pembuat Java adalah untuk membedakan dengan komponen atau class milik bahasa lain. Tapi belum tentu juga. Coba amati, bahasa-bahasa lain yang juga sama2 berorientasikan obyek seperti C++, Ruby, bahasa-bahasa dalam .NET Framework, tidak menggunakan “nama merk” mereka dalam menamai sebuah class atau komponen. Tidak ada dalam komponen Visual Basic NET yang dinamai VBButton, VBComboBox, VBDataGrid, VBDBC, atau pada C# (baca : C sharp) komponen C#Button, C#GroupBox, C#DBC, dan seterusnya. Dan tidak masalah tuh meskipun tidak mengikutsertakan merk mereka dalam penamaan komponen. Dan untungnya mereka tidak menggunakan itu (gawat kalau ada nama komponen seperti itu soalnya kebanyakan karakter “#” tidak boleh dijadikan nama variabel).

Cara penamaan yang seperti ini memang ada juga efek positifnya, bisa membuat seseorang semakin jatuh cinta terhadap Java, seperti jika seseorang sering bersama dengan lawan jenisnya maka akan timbul ketertarikan dalam dirinya, tapi bisa juga seperti pedang bermata 2 yang membuat seseorang itu menjadi fanatis. Saya punya teman di kampus yang bisa dibilang memang suka Java. Saya bilang suka dan bukan pakar, karena memang kemampuannya di Java tidak sehebat itu, mungkin kemampuan teoritis saja dan belum bisa dipakai untuk menghasilkan sebuah produk. Dia sangat menyukai Java, sampai-sampai hanya Java saja bahasa yang dikenalnya. Sepertinya dia tidak tertarik untuk mempelajari bahasa lain.

Ok back to topic.
Boleh-boleh saja sih ya mau dinamai JButton atau apa terserah si pembuat Java nya kan? Tapi menurut saya cara ini tidak efisien, boros memori (butuh alokasi memori tersendiri untuk menaruh huruf “J” atau “Java” yang seharusnya bisa dipakai untuk keperluan lain) dan kasihan huruf J pada keyboard seorang programmer Java yang mengalami depresi karena frekuensi terkena tekanan jauh lebih banyak daripada huruf2 yang lain 😀

Kalau saja Sun mau merilis sebuah keyboard khusus yang menyertakan tombol “Java” sehingga dengan menekan tombol itu langsung tercetak kata “Java” di layar editor, mungkin bakal laris manis tanjung kimpul. Hwehehehe….

h1

[Visual Basic 2005] – Binding Data Tanpa DataSet maupun DataAdapter

February 28, 2008

.NET Framework menyediakan model data yang dapat digunakan sebagai cache data sementara dari database dan me-load nya ke memori lokal yaitu DataSet. Developer seringkali menggunakan data model ini untuk menampung hasil data dari query yang kemudian diolah lebih lanjut, misal, binding ke DataGridView atau ComboBox.

Permasalahannya, karena Microsoft telah menyediakan komponen-komponen dan class yang bertugas untuk melakukan binding data-data tersebut, akhirnya mau tidak mau kita tergantung kepada aturan dari komponen-komponen tersebut dan ini sedikit ribet jika data yang akan kita binding harus dilakukan pengolahan terlebih dahulu. Lebih banyak hapalannya daripada logikanya. Bahkan query yang biasa dilakukan misal, Inner-Join pun harus dilakukan dengan aturan parent-child ala DataSet yang menurut saya kurang intuitif.

Bayangkan jika data yang kita bind ke DataGridView harus dihitung dulu, diterjemahkan ke kata-kata lain, diubah dalam ComboBox kemudian menentukan SelectedIndex nya, CheckBox, dan sebagainya.

Ada alternatif lain yang mungkin sedikit melanggar “aturan resmi” yaitu melakukan fetching data dengan OdbcDataReader. Read the rest of this entry ?

h1

[Visual Basic 2005] – Koneksi Database dengan ADO Connection String

February 24, 2008

Bagi programmer yang terbiasa melakukan segalanya dengan cara manual (tanpa wizard) kadang-kadang terganggu dengan cara Microsoft “memudahkan para pengembang” dengan menyediakan banyak wizard yang bertele-tele hanya untuk melakukan satu tugas. Parahnya, terkadang wizard ini malah mengulur-ulur waktu karena harus mempelajari option-option yang diberikan. Padahal jika di-coding secara manual, permasalahan yang sama bisa selesai dalam waktu beberapa menit.

Salah satu contohnya adalah mengkoneksikan program dengan database server. Microsoft menyediakan wizard melalui IDE Visual Studio 2005 nya. Bagi beberapa orang mungkin wizard ini lumayan membantu (karena tidak usah banyak-banyak coding, tentunya 😀 ) tapi bagi saya hal ini kurang memuaskan. Melakukannya dengan cara manual membuat saya lebih memahami konsep koneksi database ini dan lebih banyak yang bisa saya kustomisasi sendiri dibandingkan dengan menggunakan wizard. Read the rest of this entry ?