Beberapa waktu yang lalu saya mencoba menginstal Sistem Operasi terbaru dari Microsoft, Windows 7. Sebenarnya hanya untuk mencoba saja, merasakan seperti apa, yang katanya lebih bagus dari versi sebelumnya Windows Vista. Sebelum instalasi Windows 7 di laptop saya sudah terpasang Ubuntu 8.04 yang saya gunakan untuk bekerja setiap harinya dan Windows XP yang hampir tidak pernah saya gunakan :D . Instalasi Windows 7 dari DVD dan sudah dapat dibayangkan pasti hasilnya akan memakan banyak space hard disk. Betul saja, selesai instalasi Windows 7 dengan standar aplikasi bawaannya memakan space hard disk sebanyak 7,xx GB. Setelah beberapa waktu saya merasa sudah sudah cukup mencobanya dan ingin kembali ke Ubuntu 8.04, tapi saya belum sempat mengembalikan Grub Boot Loader nya. Lebih tidak baiknya, saat saya akan mengembalikan Grub Boot Loader, ternyata yang terjadi adalah DVDROM laptop saya rusak dan tidak dapat membaca CD maupun DVD. Cukup lama saya mencari-cari cara untuk mengembalikan Grub Boot Loader tanpa menggunakan CD atau DVD Linux, akhirnya saya dapat di sini.

Langkah-langkah yang saya lakukan adalah:

  • Download GRUB for DOS di sini.
  • Dari hasil download, extrak file zipnya kemudian copy file grldr dan grldr.mbr ke drive C:
  • Buat file boot.ini di drive C: dan isi dengan baris berikut:
    [boot loader]
    timeout=0
    default=c:\grldr.mbr
    [operating systems]
    C:\grldr.mbr="Grub4Dos"
  • Kemudian buat file menu.lst di drive C: yang isinya:
    timeout 0
    default 0
    title grub2
    find --set-root /boot/grub/core.img
    kernel /boot/grub/core.img
    boot
  • Restart, kemudian akan muncul pilihan Windows 7 dan Grub4Dos. Pilih Grub4Dos.
  • Jika perintah find –set-root /boot/grub/core.img tidak berhasil, kembalilah pilihan dengan menekan sembarang tombol, kemudian tekan ‘c’ untuk masuk ke command line GRUB.
  • Ketikkan perintah berikut:
    find /boot/grub/stage1

    hasilnya akan berupa “(hd0)” atau di tempat saya “(hd0,5)”. Masukkan hasil perintah di atas ke perintah berikut

    root (hd0,5)
    

    Saatnya sekarang menuliskan GRUB, untuk menuliskan GRUB di MBR ketikkan

    setup (hd0)

    Kemudian restart dengan perintah

    reboot
  • Setelah restart, maka GRUB Linux Anda sudah kembali.
  • Masuk kembali ke Windows 7 Anda dan hapus file grldr, grldr.mbr, boot.ini dan menu.lst di drive C: untuk menghilangkan pilihan Grub4Dos di menu boot Anda.
  • Selesai

Selamat mencoba :)

Waktu adalah salah satu bagian dalam hidup yang tidak dapat kita putar balik, tidak dapat berulang, tidak dapat menunggu, tidak dapat berhenti. Karenanya kita harus menggunakan waktu dengan sebaik-baiknya agar waktu yang kita miliki tidak terbuang dengan sia-sia. ‘Time is money’ adalah pepatah lama yang sering kita dengar ketika kita berbicara soal waktu. Tetapi kemudian di benak saya muncul pertanyaan, apakah waktu itu berharga bagi semua orang? Atau dengan kata yang lain, apakah semua orang itu menganggap bahwa waktu itu berharga?

Bagi saya, waktu tentu sangat berharga, karena itu saya terus menerus berusaha untuk mengatur waktu dengan sebaiknya dengan mengurangi kegiatan-kegiatan yang sekiranya sangat tidak berguna dan menggantinya dengan kegiatan yang lain yang lebih berguna untuk menambah wawasan, pengetahuan, uang, dll. Bukan hal yang mudah untuk melakukannya, tapi jika ada kemauan pasti ada jalan bukan? :D

Bagaimana dengan Anda? Apakah waktu berharga bagi Anda? :)

Mengikuti perkembangan di sini tidak selalu dengan membeli barang-barang atau teknologi yang sedang menjadi tren saat ini, tetapi lebih ke mengetahui dan mempelajari. Saya ambil contoh di bidang Teknologi Informasi(IT), seorang yang berkecimpung dalam dunia IT sangat perlu untuk terus mengikuti perkembangan IT, apalagi perkembangan dunia IT dapat dibilang sangat cepat sekali. Mengikuti perkembangan IT tidak harus dengan selalu membeli komputer/laptop yang memiliki teknologi terbaru tetapi bisa dengan mengetahui ada teknologi x digunakan untuk y, dsb. Demikian juga di dunia Software(SW), orang IT harus terus update agar dapat survive di tengah persaingan yang semakin ketat. Harus terbuka untuk selalu belajar dan belajar dengan hal-hal yang baru, sehingga pengetahuan kita menjadi lebih bertambah.

Tren kedepan yang saya lihat adalah lebih banyak SW yang dibangun dari hasil meng-customize SW yang sudah jadi – baik itu yang OpenSource atau yang Komersil. Pengembangan SW untuk kebutuhan tertentu tidak lagi dibangun dari nol, tetapi cukup dengan meng-customize SW yang sudah ada yang sudah teruji kemampuannya. Dari sisi industri/bisnis (kalau boleh saya katakan demikian) lebih percaya dengan hasil buatan orang atau industri SW yang terbukti hasil SWnya dibandingkan harus membuat dari awal untuk SW yang sama, walaupun untuk itu harus mengeluarkan biaya lisensi atau biaya lainnya.

Di dunia Web Development misalkan, sekarang sudah banyak sekali Content Management System(CMS) yang tersedia, baik itu yang gratis maupun yang berbayar. Membuat web tidak perlu lagi harus membuat dari nol, cukup menggunakan CMS yang sudah ada kemudian di-customize sesuai kebutuhan, selesai! Wow… Bayangkan jika seorang programmer secara terus menerus mempertahakan idealisme, bahwa mengembangkan web itu harus dimulai dari nol, pasti akan ketinggalan. Dari sisi waktu lebih lama dan mungkin dari sisi performa juga tidak lebih baik dari yang menggunakan CMS, issue yang lain adalah soal keamanan.

Bukan hanya di bidang IT, saya rasa di bidang lain juga seperti itu. Jadi mengikuti perkembangan sangat penting. :)

Tahapan Pembelajaran?? Apakah maksudnya? Hal ini terpikirkan oleh saya ketika saya beberapa hari ini mempelajari bahasa pemrograman atau lebih tepat dikatakan mendalami, karena saya sudah pernah mempelajarinya dulu waktu masih duduk di bangku kuliah. Tahapan belajar kita harusnya meningkat seiring dengan pengetahuan yang sudah kita miliki, sebagai contoh pembelajaran dalam bahasa pemrograman misalkan Java. Awalnya saat kita belum tahu sama sekali tentang Java, yang penting adalah bagaimana caranya kita bisa Java, entah jika ada kasus entah dengan cara apapun yang penting dapat menyelesaikan kasus tersebut dan hasil yang dicapai sesuai. Oke itu saya sebut tahap pembelajaran yang pertama, tahap untuk tahu, mengerti dan memahami. Tahap kedua yang perlu dicapai setelah kita tahu, mengerti dan memahami Java adalah melakukan efisiensi. Efisiensi yang saya maksudkan di sini adalah dalam hal penyelesaian masalah, tidak lagi menggunakan cara-cara lama seperti yang kita gunakan pada waktu pada tahap pertama belajar, tetapi dengan penyelesaian yang berbeda, misalkan dengan menggunakan design pattern, atau dengan OOP, dll sehingga penyelesaian kasus kita lebih baik dan lebih efisien.

Tahap kedua memang membutuhkan jam terbang yang tentunya tidak sedikit, tetapi ini yang akan membentuk kita menjadi programmer yang baik, efisien dan tentunya ini yang seharusnya kita gunakan ketika kita masuk ke dunia kerja, sehingga produk yang kita hasilkan di dunia kerja memiliki kualitas yang baik. Dengan kualitas yang baik, nama perusahaanpun membaik, dengan demikian kita dapat jabatan yang baik pula karena memberikan hasil kerja yang baik.

Tetaplah belajar, karena dengan belajar kita akan terus berkembang. Selamat Belajar untuk kita semua :)

Bingung apaan?? Iya itu yang saya alami sabtu pagi ketika sedang mengikuti ujian seleksi di perusahaan asing. Bukannya fokus mengerjakan soal tetapi saya memikirkan hal yang lain. Kenapa begitu?? Karena malamnya saya tidak bisa tidur, hingga hampir pukul 4 pagi. Hasilnya ketika orang lain sibuk mengerjakan soal-soal yang diberikan, saya tidak bisa berfikir secara jernih – tidak siap – untuk mengerjakan soal. Sudah bisa ditebak, saya tidak lolos ke tahap selanjutnya :(

Lalu, apa yang saya bingungkan?? Tiba-tiba saya menjadi bingung apa yang harus saya lakukan selanjutnya, dengan status sudah LULUS dari pendidikan kesarjanaan, kalau tidak kerja mau apalagi? Lanjut S2? Tidak sekarang, masa mau minta orang tua terus…hmmm.. Saya mulai menyadari memang mencari pekerjaan yang sesuai dengan keinginan dan keahlian yang kita miliki memang susah. Saya tekankan di sini adalah pekerjaan yang sesuai dengan keinginan dan keahlian yang kita miliki. Kalau mencari pekerjaan yang tidak sesuai dengan keahlian dan keinginan saya, mungkin bisa-bisa saja saya mendapatkannya dengan tidak terlalu susah (bukan menyombongkan diri :D )

Dengan begini bukan berarti saya akan menyerah dan tidak mencoba lagi! Justru dengan ini, menjadi sebuah pengalaman bagi saya, bahwa segala sesuatu membutuhkan persiapan, dan untuk selanjutnya saya tidak boleh mengulanginya lagi. Seperti kata Malcom Forbes “Failure is success if we can learn from it..” so I will learn from this failure, for the success next… Jangan menyerah rekan-rekan! :)

Singleton Pattern(SP) adalah sebuah pattern dari sekian banyak pattern yang ada di dunia pemrograman. SP digunakan untuk melakukan pembatasan sebuah class memiliki banyak objek/ instance. Mengapa begitu? Dalam kondisi tertentu memang harus diberlakukan seperti itu, contohnya untuk koneksi ke database, tidak perlu setiap kali akan melakukan koneksi ke database membuat objek baru dari class yang menangani koneksi ke database, cukup satu objek saja. Karena dalam SP hanya satu objek yang diperbolehkan ‘berlalu-lalang’ dalam sistem, maka setiap nilai dari variable class tersebut juga harus diperhatikan baik-baik, karena setiap nilai dalam variabel yang telah diubah oleh proses, akan tetap pada kondisi terakhir. Misalkan sebuah proses mengubah nilai variabel objek dari SP dengan NULL, maka nilai variabel tersebut akan bernilai NULL selama tidak diubah oleh proses lainnya (kalau yang satu ini, pengalaman saya pribadi saat membuat SInTA :D ).

Belajar tentang pattern sangat penting sehingga pemrograman yang kita lakukan memiliki struktur yang rapi – saya suka pemrograman yang rapi dan terstruktur :D . Saya harap Anda juga suka :D Selamat belajar..

*contoh ada dari Wikipedia, saya rasa tidak pelu menambahkan lagi :D

Ketika saya sedang mengambil waktu senggang untuk nongkrong sejenak di dekat jalan, atau saat yang lain dimana saya mendapatkan waktu sedikit banyak untuk memperhatikan jalanan, saya selalu bertanya dalam benak saya, kenapa di Indonesia – negara berkembang – lebih banyak orang memilih sepeda motor sebagai kendaraan mereka ketimbang mobil. Kalau dibandingkan dengan negara maju, hampir tidak ada sepeda motor di jalanan kota, kecuali motor gede(MoGe).

Dibanyak kesempatan di sebuah tayangan televisi atau di film dari negara maju, tidak pernah saya menemukan anak remaja yang beranjak muda menabung untuk membeli sepeda motor, yang adalah mereka bekerja menabung untuk membeli mobil, entah itu jeleknya seperti apa tapi bukan sepeda motor tetapi mobil. Berbeda dengan negara kita, di jalanan lebih banyak sepeda motor ketimbang mobil apalagi sepeda, apalagi pejalan kaki.

Apakah ini ada perbedaan pola pikir orang-orang di negara berkembang dan negara maju? Apakah karena di negara berkembang masih banyak kemacetan – contoh konkret Jakarta – sehingga mobil dipandang sebagai alat transportasi yang tidak efisien waktu, karena pasti terjebak kemacetan, tidak seperti sepeda motor yang bisa selip sana selip sini?? Saya masih belum menemukan jawaban yang tepat, bahkan untuk pikiran saya sendiri saya belum menemukan jawabannya :D Anda punya jawabannya? share di sini :)

Setelah sekian lama akhirnya saya bisa kembali menulis blog :D Kali ini saya akan menuliskan tentang Lucene pagination. Bagi Anda yang belum tahu apa itu Lucene, secara singkat Lucene adalah framework untuk indexing dan pencarian text yang ditulis dengan bahasa Java. Nah dalam pencarian pasti ada hasil pencarian banyak, nah kalau ditampilkan semua kan tidak enak dilihatnya. Oleh karena itu dibuat pagination/ per halaman. Setiap halaman hanya menampilkan beberapa hasil pencarian, misalkan hanya 10 hasil pencarian per halaman.

Okay, langsung saja ke algoritma/ idenya bagaimana membuat pagination. Pertama yang harus kita tahu adalah jumlah hasil pencarian, dari hasil pencarian ini kita bisa dapat jumlah halaman, kemudian menampilkan di tiap halamannya. Sederhana bukan?? Perhatikan kode program berikut.


<%
 String q = request.getParameter("query");
 try {
 Searcher searcher = Searcher.getInstance();
 searcher.setKeyword(q);
 ArrayList<Data> result = searcher.doSearch();

 if (result == null) {
 out.println("Tidak ada hasil untuk <strong>" + q + "</strong>");
 } else {
 int pageCount = result.size() / 10;
 if (result.size() % 10 != 0) {
 pageCount += 1;
 }

 int startidx;
 if (request.getParameter("start") != null) {
 startidx = Integer.parseInt(request.getParameter("start"));
 } else {
 startidx = 0;
 }

 int endidx;
 if ((startidx + 10) < result.size()) {
 endidx = startidx + 10;
 } else {
 endidx = result.size();
 }

 for (int idx = startidx; idx < endidx; idx++) {
 Data data = null;
 data = (Data) result.get(idx);
 out.println((idx + 1) + " - " + data.getJudul());
 out.println("<br/>");
 }

 out.println("<br/><hr/>");

 if (startidx > 0) {
 out.print("<a  href ='hasil.jsp?query=" + q + "&start=" + (startidx - 10) + "'> < prev </a>");
 }
 for (int idx = 0; idx < pageCount; idx++) {
 if (startidx / 10 == idx) {
 out.print("<strong>" + (idx + 1) + "</strong>");
 } else {
 out.print("<a  href ='hasil.jsp?query=" + q + "&start=" + (10 * idx) + "'>" + (idx + 1) + "</a>");
 }

 out.print(" ");
 }
 if (((startidx + 10) / 10) < pageCount) {
 out.print("<a  href ='hasil.jsp?query=" + q + "&start=" + (startidx + 10) + "'> next > </a>");
 }

 }
 } catch (Exception e) {
 out.println(e.getClass());
 }
 %>

Kode program di atas adalah penggalan dari halaman JSP dengan nama hasil.jsp. Selamat mencoba :)

Beberapa waktu lalu saya iseng-iseng melakukan instalasi VirtualBox di Ubuntu 8.04 di laptop saya. Awalnya hanya untuk coba-coba saja, hanya untuk melakukan ujicoba Ubuntu 9.04 apakah bisa jalan atau tidak. Ternyata bisa jalan di laptop saya, menambah semakin besar kemungkinan untuk upgrade ke 9.04 setelah via mengeluarkan dukungan driver untuk kartu grafiknya :D

Selesai ujicoba Ubuntu 9.04, saya kemudian bingung, mau digunakan buat apa lagi VirtualBox nya. Akhirnya iseng-iseng lagi instal Windows XP SP2 di VirtualBox, bla..bla..bla, akhirnya berhasil memasang WinXP di VirtualBox. Tidak disangka ternyata ada gunanya juga pasang WinXP, persyaratan untuk Yudisium ternyata berkas-berkas skripsi harus dalam format .doc atau .docx :( akhirnya saya melakukan konversi dari .odt yang sudah jadi ke .doc :( butuh MsOffice untuk melakukan edit filenya, karena pasti formatnya berubah dan kacau.. akhirnya saya manfaatkan WinXP tersebut untuk melakukan edit file skripsi saya :D

Ternyata USB tidak secara langsung terdeteksi, googling sebentar akhirnya dapat tutorial dari help.ubuntu. Silahkan baca artikel selengkapnya. Secara singkat yang harus dilakukan adalah(di Ubuntu 8.04):

  1. Edit file /etc/init.d/mountdevsubfs.sh
    Ubah di bagian Magic to make /proc/bus/usb work dengan menghilangkan tanda comment(#) menjadi:

     #
     # Magic to make /proc/bus/usb work
     #
     mkdir -p /dev/bus/usb/.usbfs
     domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,
          listmode=0644
     ln -s .usbfs/devices /dev/bus/usb/devices
     mount --rbind /dev/bus/usb /proc/bus/usb
  2. Ubah file /etc/udev/rules.d/40-basic-permissions.rules
    Ubah di bagian # USB devices (usbfs replacement) dengan menambahkan GROUP=”vboxusers” di kedua bagiannya menjadi:

    SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0664",
             GROUP="vboxusers"
    SUBSYSTEM=="usb_device",             MODE="0664", GROUP="vboxusers"
  3. Kemudian restart servis udev
    $ sudo /etc/init.d/udev restart
  4. Untuk dapat menjalankan VirtualBox pastikan user anda adalah anggota dari group vboxusers
  5. Logout session kemudian login kembali.

Proses instalasi selesai, sekarang nyalakan VirtualBox dan jalankan salah satu Sistem Operasi yang ada. Hubungkan USB dengan komputer/laptop kemudian di bagian kanan bawah dari VirtualBox klik kanan di icon USB, terdapat beberapa pilihan USB yang akan diaktifkan. Pilih USB yang akan diaktifkan. Selamat mencoba :)

Error yang tidak saya ketahui mengapa :D Error ini muncul ketika saya melakukan upgrade dari versi compiz sebelumnya(compiz 1:0.7.4-0ubuntu6). Setelah upgrade ke versi compiz 1:0.7.4-0ubuntu7, yang saya dapatkan adalah error ketika saya mengaktifkan efek 3D nya.  Tidak ada pesan error atau apapun, yang terjadi adalah saya yang langsung logout dari session…

Kemudian saya memutuskan untuk downgrade lagi ke versi compiz 1:0.7.4-0ubuntu6 :D Tidak langsung kembali ke normal dalam sekejap memang, butuh beberapa hari untuk mengembalikannya ke keadaan normal..hahaha.. lumayan aneh juga menurut saya. Akhir-akhir ini saya mempertimbangkan untuk migrasi ke Ubuntu 9.04, yang katanya jauh lebih cepat, tapi saya masih mempertimbangkan driver kartu grafik untuk chrome9 hc igp nya, terakhir saya cek, belum ada driver untuk Ubuntu 9.04. Buat rekan-rekan yang sudah mencoba Ubuntu 9.04, boleh minta review-nya dong. :D

Next Page »