Showing posts with label Info Tech. Show all posts
Showing posts with label Info Tech. Show all posts

Thursday, May 14, 2009

Pertama Kali, Menjuarai Lomba Tingkat Nasional

Malam ini saya mendapat kabar sangat menggembirakan dari sini:
http://asean.xmlsuperstar.com/web/guest/contestwinners.

Saya memenangi IBM ASEAN XML Superstar untuk kategori Query Challenge tingkat Indonesia. Masih kalah untuk tingkat ASEAN. Dalam lomba ini peserta ditantang untuk membuat SQL query untuk mendapatkan data yang diinginkan. Selain data yang diperoleh harus tepat, query yang dibuat juga harus efektif dan efisien sehingga waktu query-nya cepat. Software yang digunakan adalah IBM DB2. Dan database yang digunakan adalah database CIA World Factbook, sebuah database yang sangat besar berisi informasi penting negara-negara di seluruh dunia.

Friday, April 10, 2009

Menghapus Package yang Tidak Terpakai (Studi Kasus Fedora 10)

Ketika meng-install sebuah package sudah biasa kita harus meng-install juga package-package yang dibutuhkan (dependensi). Namun, ketika kita hendak menghapus (uninstall) package tersebut, package-package dependensinya tidak ikut terhapus. Jadi, terasa mubazir, package-package dependensi tersebut tidak terpakai.

Misalnya, kita install package kdeedu-kstars:

[hafni@localhost ~]$ su -c 'yum install kdeedu-kstars'
Password:
Loaded plugins: fastestmirror, refresh-packagekit
Loading mirror speeds from cached hostfile
* rpmfusion-nonfree-updates: astromirror.uchicago.edu
* rpmfusion-free-updates: astromirror.uchicago.edu
* rpmfusion-free: astromirror.uchicago.edu
* rpmfusion-nonfree: astromirror.uchicago.edu
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package kdeedu-kstars.x86_64 0:4.2.1-1.fc10 set to be updated
--> Processing Dependency: kdeedu-libs = 4.2.1-1.fc10 for package: kdeedu-kstars
--> Processing Dependency: libindi.so.0()(64bit) for package: kdeedu-kstars
--> Processing Dependency: libkdeeduui.so.4()(64bit) for package: kdeedu-kstars
--> Processing Dependency: libcfitsio.so.0()(64bit) for package: kdeedu-kstars
--> Running transaction check
---> Package cfitsio.x86_64 0:3.100-1.fc10 set to be updated
---> Package kdeedu-libs.x86_64 0:4.2.1-1.fc10 set to be updated
---> Package libindi.x86_64 0:0.6-4.fc10 set to be updated
--> Processing Dependency: libfli.so.1()(64bit) for package: libindi
--> Processing Dependency: libnova-0.12.so.1()(64bit) for package: libindi
--> Running transaction check
---> Package libfli.x86_64 0:1.7-4.fc10 set to be updated
---> Package libnova.x86_64 0:0.12.1-3.fc10 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
Package          Arch      Version            Repository                  Size
================================================================================
Installing:
kdeedu-kstars    x86_64    4.2.1-1.fc10       fedora-updates-handmade     10 M
Installing for dependencies:
cfitsio          x86_64    3.100-1.fc10       fedora-handmade            1.3 M
kdeedu-libs      x86_64    4.2.1-1.fc10       fedora-updates-handmade    345 k
libfli           x86_64    1.7-4.fc10         fedora-updates-handmade     38 k
libindi          x86_64    0.6-4.fc10         fedora-updates-handmade    700 k
libnova          x86_64    0.12.1-3.fc10      fedora-handmade            1.1 M

Transaction Summary
================================================================================
Install      6 Package(s)        
Update       0 Package(s)        
Remove       0 Package(s)        

Total download size: 14 M
Is this ok [y/N]: y
Downloading Packages:
(1/6): libfli-1.7-4.fc10.x86_64.rpm                           |  38 kB     00:00    
(2/6): kdeedu-libs-4.2.1-1.fc10.x86_64.rpm                    | 345 kB     00:00    
(3/6): libindi-0.6-4.fc10.x86_64.rpm                          | 700 kB     00:00    
(4/6): libnova-0.12.1-3.fc10.x86_64.rpm                       | 1.1 MB     00:00    
(5/6): cfitsio-3.100-1.fc10.x86_64.rpm                        | 1.3 MB     00:00    
(6/6): kdeedu-kstars-4.2.1-1.fc10.x86_64.rpm                  |  10 MB     00:01    
-------------------------------------------------------------------------------------
Total                                                4.2 MB/s |  14 MB     00:03    
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
 Installing     : cfitsio                                                        1/6
 Installing     : libfli                                                         2/6
 Installing     : kdeedu-libs                                                    3/6
 Installing     : libnova                                                        4/6
 Installing     : libindi                                                        5/6
 Installing     : kdeedu-kstars                                                  6/6

Installed:
 kdeedu-kstars.x86_64 0:4.2.1-1.fc10                                          

Dependency Installed:
 cfitsio.x86_64 0:3.100-1.fc10         kdeedu-libs.x86_64 0:4.2.1-1.fc10      
 libfli.x86_64 0:1.7-4.fc10            libindi.x86_64 0:0.6-4.fc10            
 libnova.x86_64 0:0.12.1-3.fc10      

Complete!

Dari meng-install kdeedu-kstars tersebut, kita harus meng-install 5 package lain, yaitu cfitsio, libfli, kdeedu-libs, libnova, dan libindi. Nah, ketika hendak menghapus package kdeedu-kstars, 5 package ini tidak ikut terhapus. Berikut ini buktinya:

[hafni@localhost ~]$ su -c 'yum remove kdeedu-kstars'
Password:
Loaded plugins: fastestmirror, refresh-packagekit
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package kdeedu-kstars.x86_64 0:4.2.1-1.fc10 set to be erased
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================================================
Package                Arch            Version               Repository          Size
=======================================================================================
Removing:
kdeedu-kstars          x86_64          4.2.1-1.fc10          installed           21 M

Transaction Summary
=======================================================================================
Install      0 Package(s)        
Update       0 Package(s)        
Remove       1 Package(s)        

Is this ok [y/N]: N
Exiting on user Command
Complete!

Cara tergampang untuk turut serta menghapus package dependensinya, kita install salah satu plugin yum yang berguna untuk menghapusnya, yaitu yum-remove-with-leaves. Silakan install dulu:

[hafni@localhost ~]$ su -c 'yum install yum-remove-with-leaves'

Nah, setelah kita meng-install plugin tersebut, kita coba hapus package kdeedu-kstars:

[hafni@localhost ~]$ su -c 'yum remove kdeedu-kstars'
Password:
Loaded plugins: fastestmirror, refresh-packagekit, remove-with-leaves
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package kdeedu-kstars.x86_64 0:4.2.1-1.fc10 set to be erased
--> Finished Dependency Resolution
removing kdeedu-libs-4.2.1-1.fc10.x86_64. It is not required by anything else.
removing libindi-0.6-4.fc10.x86_64. It is not required by anything else.
removing cfitsio-3.100-1.fc10.x86_64. It is not required by anything else.
removing libfli-1.7-4.fc10.x86_64. It is not required by anything else.
removing libnova-0.12.1-3.fc10.x86_64. It is not required by anything else.
--> Running transaction check
---> Package cfitsio.x86_64 0:3.100-1.fc10 set to be erased
---> Package kdeedu-libs.x86_64 0:4.2.1-1.fc10 set to be erased
---> Package libfli.x86_64 0:1.7-4.fc10 set to be erased
---> Package libindi.x86_64 0:0.6-4.fc10 set to be erased
---> Package libnova.x86_64 0:0.12.1-3.fc10 set to be erased
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================================================
Package               Arch           Version                  Repository         Size
=======================================================================================
Removing:
cfitsio               x86_64         3.100-1.fc10             installed         3.7 M
kdeedu-kstars         x86_64         4.2.1-1.fc10             installed          21 M
kdeedu-libs           x86_64         4.2.1-1.fc10             installed         1.7 M
libfli                x86_64         1.7-4.fc10               installed          82 k
libindi               x86_64         0.6-4.fc10               installed         1.6 M
libnova               x86_64         0.12.1-3.fc10            installed         3.5 M

Transaction Summary
=======================================================================================
Install      0 Package(s)        
Update       0 Package(s)        
Remove       6 Package(s)        

Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
 Erasing        : libindi                                                         1/6
 Erasing        : libnova                                                         2/6
 Erasing        : cfitsio                                                         3/6
 Erasing        : kdeedu-kstars                                                   4/6
 Erasing        : kdeedu-libs                                                     5/6
 Erasing        : libfli                                                          6/6

Removed:
 cfitsio.x86_64 0:3.100-1.fc10             kdeedu-kstars.x86_64 0:4.2.1-1.fc10       
 kdeedu-libs.x86_64 0:4.2.1-1.fc10         libfli.x86_64 0:1.7-4.fc10                
 libindi.x86_64 0:0.6-4.fc10               libnova.x86_64 0:0.12.1-3.fc10            

Complete!

Dengan plugin yum-remove-with-leaves, package-package dependensi jadi ikut terhapus. Sekarang tidak ada lagi package yang tidak terpakai.

Wednesday, April 1, 2009

Nonton TV di Fedora Menggunakan TV Tuner Gadmei UTV330+

Pendahuluan

Sebenarnya sudah lama ingin menikmati TV di Fedora. Beli device ini tidak lama setelah aku membeli laptop. Kalau tidak salah bulan Oktober 2007. Sudah 1 tahun lebih.

Berulang kali laptop ini di-install Fedora. Setelah di-install biasanya hanya dipake sebentar, terus tidak pernah lagi boot Fedora. Tapi, mulai bulan Februari lalu aku serius mau sering pakai Fedora. Aku pun mendandani Fedora ini dengan berbagai macam software, termasuk berusaha untuk meng-install driver tv tuner ini.

Setelah googling, aku mendapatkan banyak tulisan mengenai cara meng-install-nya. Sebagian besar dari mereka menggunakan Ubuntu. Tapi karena sama-sama Linux ya intinya sama lah. Biasanya mereka mengarahkan kita untuk meng-install mercurial. Padahal, ini sama sekali tidak penting bagi kita sebagai end user.

Sebenarnya artikel di sini cukup terpercaya. Aku sempat mencoba cukup lama. Tapi karena kebodohanku saja, jadi tidak berhasil. Aku tidak tahu kalau yang dimaksud dengan

refit@gustaroska:$ gedit ./linux/drivers/media/video/em28xx/em28xx.h
itu source code-nya. Waktu itu bingung, ini file yang mana???!!. Bodoh banget kan. Padahal, tinggal ikuti petunjuknya dari awal, mungkin beres deh. Aku baru paham setelah baca tulisan Aisar ini.

Download driver

Download source code di http://linuxtv.org/hg/v4l-dvb/archive/tip.tar.gz. Walaupun di situ tertulis link-nya tip.tar.gz, file yang akan diunduh nanti jadi v4l-dvb-xxxxxxxxxxxx.tar.gz, contohnya v4l-dvb-4552dc2948e0.tar.gz. Mungkin ini file terbaru, aku tidak tahu persis.

Edit driver

Karena TV tuner Gadmei UTV330+ belum terdaftar di driver ini, kita perlu mengedit source code tersebut, yaitu mendaftarkannya dengan definisi sama persis dengan UTV330 (tanpa +) yang sudah terdaftar. Caranya:
  • Ekstrak dulu file yang diunduh tadi, misal hasilnya adalah direktori v4l-dvb-4552dc2948e0.
  • Masuk ke direktori hasil ekstraksi tersebut
  • Masuk lagi ke direktori linux/drivers/media/video/em28xx/
  • Edit file em28xx.h Cari Boards supported by driver. Pake Ctrl+F saja biar gampang kalo pake gedit ato semacamnya. Tambahkan di urutan terbawah definisi untuk UTV330+. Misal sebelumnya di urutan terbawah ada:
    #define EM2860_BOARD_KAIOMY_TVNPC_U2    63
    #define EM2860_BOARD_EASYCAP            64
    #define EM2820_BOARD_IODATA_GVMVP_SZ    65
    
    Setelah ditambahkan definisi baru, jadi:
    #define EM2860_BOARD_KAIOMY_TVNPC_U2    63
    #define EM2860_BOARD_EASYCAP            64
    #define EM2820_BOARD_IODATA_GVMVP_SZ    65
    #define EM2861_BOARD_GADMEI_UTV330      66
    
    Biarkan saja tidak ada tanda + di EM2861_BOARD_GADMEI_UTV330.
  • Edit file em28xx-cards.c Cari [EM2860_BOARD_GADMEI_UTV330]. Itu ada di bagian definisi struct em28xx_board em28xx_boards[]. Kemudian buat definisi baru [EM2861_BOARD_GADMEI_UTV330] dengan data sama dengan data pada [EM2860_BOARD_GADMEI_UTV330] kecuali name-nya ditambahi tanda +, sehingga akan jadi seperti ini:
    [EM2860_BOARD_GADMEI_UTV330] = {
        .name         = "Gadmei UTV330",
        .valid        = EM28XX_BOARD_NOT_VALIDATED,
        .tuner_type   = TUNER_TNF_5335MF,
        .tda9887_conf = TDA9887_PRESENT,
        .decoder      = EM28XX_SAA711X,
        .input        = { {
            .type     = EM28XX_VMUX_TELEVISION,
            .vmux     = SAA7115_COMPOSITE2,
            .amux     = EM28XX_AMUX_VIDEO,
        }, {
            .type     = EM28XX_VMUX_COMPOSITE1,
            .vmux     = SAA7115_COMPOSITE0,
            .amux     = EM28XX_AMUX_LINE_IN,
        }, {
            .type     = EM28XX_VMUX_SVIDEO,
            .vmux     = SAA7115_SVIDEO3,
            .amux     = EM28XX_AMUX_LINE_IN,
        } },
    },
    [EM2861_BOARD_GADMEI_UTV330] = {
        .name         = "Gadmei UTV330+",
        .valid        = EM28XX_BOARD_NOT_VALIDATED,
        .tuner_type   = TUNER_TNF_5335MF,
        .tda9887_conf = TDA9887_PRESENT,
        .decoder      = EM28XX_SAA711X,
        .input        = { {
            .type     = EM28XX_VMUX_TELEVISION,
            .vmux     = SAA7115_COMPOSITE2,
            .amux     = EM28XX_AMUX_VIDEO,
        }, {
            .type     = EM28XX_VMUX_COMPOSITE1,
            .vmux     = SAA7115_COMPOSITE0,
            .amux     = EM28XX_AMUX_LINE_IN,
        }, {
            .type     = EM28XX_VMUX_SVIDEO,
            .vmux     = SAA7115_SVIDEO3,
            .amux     = EM28XX_AMUX_LINE_IN,
        } },
    },
    
    Kemudian cari "struct usb_device_id em28xx_id_table[]". Tambahkan di dalamnya:
    { USB_DEVICE(0xeb1a, 0x50a6),
        .driver_info = EM2861_BOARD_GADMEI_UTV330 },
    

Compile dan install driver

  • Buka Terminal.
  • Masuk ke direktori awal driver hasil ekstraksi, kalau kasus di sini yaitu v4l-dvb-4552dc2948e0. Misalnya:
    [hafni@localhost ~]$ cd tvtuner/v4l-dvb-4552dc2948e0/
  • Jalankan make. Ini butuh waktu cukup lama, sekitar 10 menit.
    [hafni@localhost v4l-dvb-4552dc2948e0]$ make
  • Jalankan make clean. Mungkin ini di-skip tidak masalah. Tapi pas aku coba, harus melalui ini dulu baru berhasil.
    [hafni@localhost v4l-dvb-4552dc2948e0]$ make clean
  • Jalankan make install.
    [hafni@localhost v4l-dvb-4552dc2948e0]$ make install
  • Restart komputer.
  • Sambungkan TV tuner ke komputer (usb beserta line in).
  • Periksa apakah driver sudah ter-install dengan baik dan benar.
    [hafni@localhost ~]$ dmesg | grep em28xx
    Kalau muncul pesan seperti di bawah ini berarti instalasi driver telah berhasil.
    em28xx: New device USB 2861 Device @ 480 Mbps (eb1a:50a6, interface 0, class 0)
    em28xx #0: Identified as Gadmei UTV330+ (card=66)
    em28xx #0: chip ID is em2860
    em28xx #0: i2c eeprom 00: 1a eb 67 95 1a eb a6 50 50 00 13 03 6a 22 00 00
    em28xx #0: i2c eeprom 10: 00 00 04 57 4e 03 00 00 00 00 00 00 00 00 00 00
    em28xx #0: i2c eeprom 20: 06 00 01 01 f0 10 01 00 4a 00 00 00 5b 00 00 00
    em28xx #0: i2c eeprom 30: 00 00 20 40 20 80 02 20 01 01 02 01 00 00 00 00
    em28xx #0: i2c eeprom 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    em28xx #0: i2c eeprom 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    em28xx #0: i2c eeprom 60: 00 00 00 00 00 00 00 00 00 00 22 03 55 00 53 00
    em28xx #0: i2c eeprom 70: 42 00 20 00 32 00 38 00 36 00 31 00 20 00 44 00
    em28xx #0: i2c eeprom 80: 65 00 76 00 69 00 63 00 65 00 00 00 00 00 00 00
    em28xx #0: i2c eeprom 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    em28xx #0: i2c eeprom a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    em28xx #0: i2c eeprom b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    em28xx #0: i2c eeprom c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    em28xx #0: i2c eeprom d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    em28xx #0: i2c eeprom e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    em28xx #0: i2c eeprom f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    em28xx #0: EEPROM ID= 0x9567eb1a, EEPROM hash = 0x695cfff2
    em28xx #0: EEPROM info:
    em28xx #0: AC97 audio (5 sample rates)
    em28xx #0: 500mA max power
    em28xx #0: Table at 0x04, strings=0x226a, 0x0000, 0x0000
    em28xx #0:
    em28xx #0: The support for this board weren't valid yet.
    em28xx #0: Please send a report of having this working
    em28xx #0: not to V4L mailing list (and/or to other addresses)
    saa7115' 2-0025: saa7113 found (1f7113d0e100000) @ 0x4a (em28xx #0)
    tuner' 2-0060: chip found @ 0xc0 (em28xx #0)
    em28xx #0: Config register raw data: 0x50
    em28xx #0: AC97 vendor ID = 0xffffffff
    em28xx #0: AC97 features = 0x6a90
    em28xx #0: Empia 202 AC97 audio processor detected
    em28xx #0: v4l2 driver version 0.1.1
    em28xx #0: V4L2 device registered as /dev/video1 and /dev/vbi0
    em28xx audio device (eb1a:50a6): interface 1, class 1
    em28xx audio device (eb1a:50a6): interface 2, class 1
    usbcore: registered new interface driver em28xx
    em28xx driver loaded
    
    Atau:
    [hafni@localhost v4l-dvb-4552dc2948e0]$ su -c 'tail -f /var/log/messages'
    Kalau muncul pesan seperti di bawah ini berarti instalasi driver telah berhasil.
    Mar 10 00:57:56 localhost kernel: em28xx #0: AC97 features = 0x6a90
    Mar 10 00:57:56 localhost kernel: em28xx #0: Empia 202 AC97 audio processor detected
    Mar 10 00:57:56 localhost kernel: em28xx #0: v4l2 driver version 0.1.1
    Mar 10 00:57:56 localhost kernel: em28xx #0: V4L2 device registered as /dev/video1 and /dev/vbi0
    Mar 10 00:57:56 localhost kernel: em28xx audio device (eb1a:50a6): interface 1, class 1
    Mar 10 00:57:56 localhost kernel: em28xx audio device (eb1a:50a6): interface 2, class 1
    Mar 10 00:57:56 localhost kernel: usbcore: registered new interface driver em28xx
    Mar 10 00:57:56 localhost kernel: em28xx driver loaded
    Mar 10 00:57:56 localhost kernel: usbcore: registered new interface driver snd-usb-audio
    Mar 10 00:57:58 localhost pulseaudio[2815]: alsa-util.c: Cannot find fallback mixer control "Mic".
    Mar 10 01:01:06 localhost kernel: CE: hpet increasing min_delta_ns to 15000 nsec
    

Install tvtime

Langsung install dari repositori resmi.

[hafni@localhost ~]$ su -c 'yum install tvtime'

Konfigurasi tvtime

  • Scan channel
    [hafni@localhost ~]$ tvtime-scanner --norm=PAL
  • Jika laptop punya webcam Buka file /etc/tvtime/tvtime.xml. Harus dengan user root.
    [hafni@localhost ~]$ su -c 'gedit /etc/tvtime/tvtime.xml'
    Cari <option name="V4LDevice" dan ganti value-nya dengan /dev/video1.
  • Ganti standar tv menjadi PAL. Cari <option name="Norm" dan ganti value-nya dengan PAL.

Jalankan tvtime

Kalau dari panel, ada di Applications > Sound & Video > TVtime Television Viewer.

Suara tidak keluar?

Ini karena front mic dibisukan (alias mute). Agar bisa berbicara, buka Volume Control. Bisa klik kanan tanda speaker (biasanya di pojok kanan atas [macam partai aja]), terus klik Open Volume Control. Atau di System > Preferences > Hardware > Volume Control. Setelah terbuka jendela Volume Control, di bagian Device pilih device utama yang ada di komputer, harusnya sih yang paling atas, misalnya kalau di laptopku HDA NVidia (Alsa mixer). Terus unmute Front Mic dan atur-aturlah volumenya. Ini gambarnya:

Selamat menikmati.

Wednesday, February 25, 2009

Ngajar Pelatihan Bikin Website

Alhamdulillah, baru saja mengawali pelatihan website programmer term 1 - 2009 di ComLabs ini (situsnya ga up-to-date, jadi ga aku link) dengan cukup baik. Baru kali ini jadi instruktur di sesi awal-awal (sesi 2). Seperti biasa, aku diberi tahu mau jadi instruktur beberapa jam sebelum pelatihan dimulai. Posisiku sebenarnya hanya asisten, jadi ga perlu nyiapin macem-macem, tinggal datang dan beraksi (sebenarnya salah ga sih begini, tapi mau nyiapin apa?). Instruktur aslinya menyatakan bahwa untuk term ini tidak akan jadi instruktur lagi, jadi aku naik jadi instruktur dan asisten kedua jadi asisten pertama. Masalah datang lagi, karena asisten kedua tidak bisa di jadwal hari Rabu. Ada yang mau gantiin? Awalnya, jam 15 kurang beberapa menit tadi, di sela-sela jadwal kuliyah, aku diberi tahu dari seorang staf ComLabs via tilpun bahwa si instruktur mulai sesi ini hingga selesai (term ini) tidak akan ngisi lagi. Cukup terkejut mendengarnya. Otomatis aku diminta untuk menggantikannya. Aku pun tidak bisa menolak (maklum lah wong Jawa [dudu Jowo koyo Letto]). Gimana siap-siapnya padahal jam 15 sampe 17 ada kuliyah. Alhasil, aku hanya mencari slide materi yang akan digunakan dan alhamdulillah ada di komputer ini. Terus aku kirim SMS ke asisten satunya lagi mengenai hal ini. Dan, dia ga bisa untuk hari Rabu. Wah, berarti hari ini main single. Waktu terus berlalu ... (kaya Element aja di lagunya, Rahasia Hati, yang populer pas jaman aku SMA). Pelatihan terlambat dimulai. Ternyata direktori (alias folder) materinya yang aku salin dari komputer ke flesdis salah. Aku harus nyalin lagi dari komputer. Pelatihan baru dimulai setelah lewat 15 menit dari jadwal sebenarnya. ... Akhirnya jam sudah menunjukkan pukul 19 dan aku harus mengakhiri semuanya (halah...). Tak lupa aku beri tugas buat peserta dan mengingatkan mereka untuk mengisi umpan balik (alias feedback). Ini dia umpan baliknya: 167.205.xx.yyy cukup. 167.205.xx.yyy cukup menyenangkan 167.205.xx.yyy cukup puas.......... 167.205.xx.yyy Lebih bagus..lebih jelas dan interaktif 167.205.xx.yyy ... 167.205.xx.yyy bagussss... 167.205.xx.yyy Semangit tertarik ma php... wheheh 167.205.xx.yyy Mas bisa nanya2 langsung ke emailnya gak? Trim's [alamat_email] 167.205.xx.yyy Materinya banyak ya.. 167.205.xx.yyy OK Pada kesempatan-kesempatan sebelumnya aku biasa dapat komentar yang negatif (cuma sebagian sih, ga semua peserta). Tapi kali ini, alhamdulillah, tidak ada yang memojokkan. Walaupun baru sesi 2, tapi cukup menenangkan perasaan dan pikiranku. Semoga ke depannya bisa lebih baik lagi. Kalau ga, rugi/celaka-lah aku.

Wednesday, February 18, 2009

Konfigurasi Jaringan Fedora 10

Ini dilakukan jika kita sering pindah-pindah jaringan yang tidak pakai DHCP, pokoknya ngeset IP statik. Masuk ke System > Administration > Network. Edit device eth0, centang Controlled by NetworkManager. Yang wlan0 diedit juga boleh. Aku belum bisa konek wi-fi nih, kayanya harus tahu nama access point-nya. Tapi aku coba tetap tidak bisa. Padahal, awalnya sudah senang Broadcom terdeteksi saat instalasi (di Fedora versi sebelumnya kan harus instal sendiri driver-nya), tapi tetap belum bisa dimanfaatkan. Untuk membuat konfigurasi baru (tidak pakai DHCP), ikuti langkah berikut ini. Klik kanan tanda koneksi jaringan yang terletak di bagian kanan toolbar (sebelah kiri jam), klik Edit Connections, buatlah koneksi baru, isi sesuai konfigurasi jaringan. Nah, manfaat dari semua di atas adalah kita bisa milih mau pakai konfigurasi yang mana tanpa harus mengubah konfigurasi lagi. Kalau di Windows kan cuma ada satu konfigurasi, jadi kita harus mengubah satu-satunya konfigurasi tersebut. Jadi, setelah kita pasang kabel LAN, terus kita pilih deh konfigurasi mana yang akan dipakai, System eth0 untuk DHCP atau lainnya sesuai jaringan yang tersambung. Jika jaringan kita menggunakan proxy, biasanya di kantor atau kampus, silakan edit proxy sistem. Belum tahu manfaatnya buat apa (kalau di ITB), soale pas instal atau update paket secara online bisa tanpa proxy. Paling, proxy Firefox diset ke proxy sistem. Caranya: Masuk ke System > Preferences > Network Proxy. Isi konfigurasi proxy. Kalau pakai autentikasi, jangan lupa isi username dan password di Details. Sekarang coba tes koneksi dengan ping, buka situs via Firefox, atau lainnya.

Sunday, February 15, 2009

Internetan dengan Fedora 10 + SE K800i

Tulisan ini diposting dengan menggunakan komputer bersistem operasi Fedora 10 yang disambungkan ke internet melalui ponsel SE K800i sebagai modem. Caranya gampang sekali. Tinggal sambungkan kedua perangkat ini dengan kabel data USB dan aktifkan USB internet (tentu USB data accounts-nya telah diset dengan benar sesuai provider). Langsung deh konek tanpa basa-basi seperti di Windows Vista. Koneksinya pun lebih stabil/lancar dibandingkan dengan di Windows. Walaupun kecepatannya tidak tinggi, maklumlah GPRS, tapi ya lumayan. Kalau di Windows, koneksinya sering jadi local only.

Saturday, February 14, 2009

Instalasi Linux (dan Mempertahankan Windows)

Kamu belum pernah mencoba Linux? Komputer kamu masih menggunakan Windows? Kamu ingin mencoba Linux tanpa menghapus Windows? Kalau kamu belum tahu banyak tentang Linux, belum tahu keunggulan-keunggulan Linux (terutama dibandingkan dengan Windows), cari tahu dulu deh, googling aja. Kalau kamu ingin mendapatkan CD/DVD Linux, silakan hubungi aku. Berikut ini cara aman instalasi Linux. Buatlah partisi hard disk untuk Linux terlebih dulu melalui software partisi di Windows. Kalau di Windows Vista sudah ada tools-nya, jadi tidak perlu pakai tools pihak ketiga. Sebenarnya bisa saja membuat partisi saat akan instalasi Linux, tapi biar lebih aman kita partisi dulu aja lewat Windows. Sediakan minimal 7 GB untuk partisi tersebut. Tidak usah terlalu banyak karena kita masih bisa mengakses partisi Windows (biasanya NTFS) dari Linux. Jangan diformat/dialokasikan dulu partisinya. Kemudian masukkan CD atau DVD instalasi ke dalam CD/DVD drive dan restart komputer. Untuk selanjutnya, aku hanya akan beri petunjuk yang penting untuk diperhatikan. Pilihan partisi mana yang akan dipakai untuk Linux Pilihlah partisi yang kosong (free/unallocated partition) dan centang 'Review and modify partitioning layout', klik 'Next'. Edit volume yang bertipe swap. Saat ini sudah jamak memory berkapasitas besar (>= 1 GB). Kurangi aja ukuran volume swap tersebut menjadi 512 MB, 256 MB, 128 MB, atau terserah yang penting total memory ditambah swap minimal 1 GB (sudah cukup rasanya 1 GB). Kenapa ukurannya dikurangi? Karena swap hanya digunakan bila memory komputer kita sudah tidak cukup menampung resource lagi. Karena swap dikurangi, maka akan ada sisa space. Berikan saja space itu untuk volume ext3. Jika sudah, klik 'Next'. Instalasi GRUB boot loader Biarkan default, yaitu diinstal di Master Boot Record. Di tengah-tengah ada tabel sistem operasi yang ada di komputer. Silakan edit seperlunya. Biasanya sistem operasi Windows diberi nama Other, jadi ganti saja biar sesuai namanya. Terus, pilihlah sistem operasi default yang akan dipakai. Clock settings Pilih time zone yang sesuai, misalnya untuk Waktu Indonesia Barat pilih Asia/Jakarta. Hapus tanda centang System clock uses UTC. Kalau tidak dihapus, nanti tidak sinkron antara jam Windows dengan jam Linux. Root account Root itu superuser atau administrator di Linux. Akun ini digunakan untuk melakukan administrasi komputer seperti meng-install dan menghapus software. Software yang akan di-install Untuk pengguna rumahan atau pengguna baru, pilih Office and Productivity saja. Pilih 'Customize now' jika ingin mengubah lebih detail software apa saja yang akan di-install. Kalau sudah, lanjutkan hingga proses instalasi selesai dan komputer restart/reboot. Konfigurasi saat pertama kali booting Jika ada tulisan Booting Windows ... karena Grub boot loader diset default untuk Windows, tekan sembarang tombol untuk menghentikannya dan pilihlah Linux yang akan dijalankan. Setelah itu, utnuk pengguna rumahan/baru biarkan konfigurasi apa adanya (default). Terakhir, buatlah user untuk pemakaian reguler/standar (bukan administrator). Finish dan komputer akan reboot kembali.

Wednesday, November 19, 2008

Aneh, Pengunjung Blog Ini Meningkat Sangat Tajam

Pada hari ini blog ini mengalami kejadian sangat aneh. Coba lihat di sini. Biasanya blog ini hanya dikunjungi per harinya sekitar 70 pengunjung. Kalau lagi beruntung juga tidak sampai angka 100. Yang aneh, pengunjung di hari ini (sampai tulisan ini diterbitkan, sekitar jam 23.30) meningkat drastis hingga hampir 400 pengunjung. Pengunjung meningkat tajam aku malah bingung. Jangan-jangan program penghitungnya error. Prasangka lain, masa ada yang melakukan penyerangan DDoS ke blog ini sih? Masih dalam suasana tidak percaya, aku lihat data referrer. Referrer dari search engine bersaing dengan no referrer. Referrer dari search engine yang paling banyak adalah dari query yang intinya adalah kartun Nabi Muhammad (tentu kata tepatnya bermacam-macam). Ada apa dengan kartun Nabi Muhammad ya? Apakah heboh lagi? Kita lihat saja beberapa hari nanti. Apakah tetap sampai ratusan atau kembali ke keadaan normal.

Friday, October 24, 2008

Install Windows XP ke Hard Disk SATA

Pernahkah kamu mencoba meng-install Windows XP ke hard disk SATA[1]? Jika menggunakan CD original pasti tidak akan pernah berhasil. Setelah loading driver-driver, pasti akan muncul pesan error bahwa tidak ada hard disk yang terbaca. Ini karena dalam Windows XP tidak ada driver hard disk SATA. Windows XP dirilis pertama kali pada tahun 2001, sedangkan hard disk SATA dirilis pertama kali pada tahun 2003. Nah, karena itu, Windows XP belum memuat driver hard disk SATA dan tidak bisa membacanya. Anehnya, Microsoft tidak menyertakan driver tersebut di Windows XP SP2 (kenapa ya?). Kalau di SP3 saya tidak tahu. Untuk mengatasi masalah ini, ada dua trik yang cukup populer (kalau langsung pakai Windows XP Edisi Ireng atau bajakan sih namanya bukan trik). Pertama, menggunakan floppy disk berisi driver hard disk SATA. Kedua, membuat salinan CD Windows XP yang sudah ditambahi driver hard disk SATA. Cara kedua lah yang lebih sering digunakan, karena floppy disk sedang menuju ke kepunahan, apalagi di notebook zaman sekarang tidak ada drive-nya. Di sini saya hanya akan berbagi cara yang kedua saja. Sebelum memulainya, siapkan peralatan dan bahan yang diperlukan dulu, yaitu aplikasi nLite, CD Windows XP original, CD kosong, komputer yang akan di-install, komputer yang sudah ada OS-nya (harus Windows karena untuk menjalankan nLite) untuk membuat salinan CD (bisa pinjam komputer teman), driver SATA AHCI[2] (kalau chipset motherboard-nya Intel 965, misalnya Compaq Presario V3908TU dan Acer Aspire 4920, bisa pakai ini), dan Al-Qur’an (jangan bingung dulu, nanti tahu kok manfaatnya). Masing-masing satu buah saja. Berikut ini cara membuat salinan CD Windows XP dengan ditambahi driver hard disk SATA. Tentunya menggunakan komputer yang sudah ada OS-nya.
  1. Salin isi CD Windows XP ke dalam hard disk.
  2. Install nLite. Membutuhkan .NET Framework 2.0 atau versi setelahnya. Jika belum ada, install ini dulu.
  3. Jalankan nLite.
  4. Klik Next.
  5. Klik Browse.
  6. Pilih folder Windows XP hasil salinan.
  7. Klik Next.
  8. Klik Next.
  9. Pilih integrate drivers dan create bootable ISO.
  10. Klik Insert -> Single driver.
  11. Pilih iaahci.inf. Klik Open.
  12. Pilih mode Textmode driver dan pilih Texmode integration options yang sesuai. Jika untuk notebook, pilih saja semua yang mengandung kata mobile seperti pada gambar di bawah ini. Klik OK.
  13. Klik Next.
  14. Klik Yes untuk memulai proses penggabungan driver ke paket instalasi.
  15. Tunggu hingga selesai.
  16. Proses penggabungan sudah selesai, klik Next.
  17. Silakan ganti isian sesuai keinginan. Klik Burn.
  18. Klik Yes untuk memulai membakar CD.
  19. nLite sedang membakar CD. Ambil Al-Qur'an dan bacalah hingga proses pembakaran CD selesai. Lumayan lah, 10-15 menit, bisa 4-6 halaman.
  20. Pembakaran sudah selesai. Klik Next.
  21. Klik Finish. Selesai.
Fungsi aplikasi nLite ini sebenarnya banyak. Intinya adalah mengubah konfigurasi dan komponen dalam CD instalasi Windows 2000, XP, dan Server 2003. Untuk Windows Vista, gunakan vLite (dibuat juga oleh si pembuat nLite).
[1] SATA singkatan dari Serial Advanced Technology Attachment
[2] AHCI singkatan dari Advanced Host Controller Interface

Saturday, September 13, 2008

Notebook Baru Nih ...

Ini bener-bener baru, bukan seperti postingan sebelumnya. Hari Ahad lalu aku mengantar temanku beli notebook di BEC (standar banget sih, BEC). Notebook sekarang sepertinya sudah tidak ada lagi yang dipaketkan dengan Microsoft Windows XP. Oleh karena itu, aku sarankan untuk beli yang free DOS daripada beli yang ber-Vista tapi Vista-nya dihapus, kan sayang banget tuh, sudah beli mahal-mahal malah dihapus begitu saja tanpa meninggalkan jejak. Sebelum pergi ke BEC dia sudah memutuskan untuk beli Compaq Presario V3908TU. Harganya Rp 7,6 juta. Setiba di BEC langsung deh menuju tempat sasaran dan langsung tembak aja itu notebook. Setelah dibuka kardusnya dan diteliti barangnya, eh, ada yang lecet di bagian engselnya, sedikit sih. Tapi aku cukup terkejut. Setelah temanku bilang bahwa ada yang lecet, penjaga tokonya mencari penggantinya langsung tanpa basa-basi. Weleh, weleh. Padahal, aku kira dia akan bilang, ini lecet sedikit, tidak apa-apa, nanti kalau sudah dipakai lama juga akan lecet. Hehe. Buruk sangka gitu. Dan karena di toko itu stoknya sudah habis, tinggal barang yang tadi dibuka saja, dia nelpon ke siapa, tidak tahu, nanya apakah di sana ada notebook seperti itu. Setelah telepon ditutup, dia bergegas keluar. Dan beberapa saat kemudian datang membawa notebook baru yang masih tersegel rapi. Weleh, weleh. Yang aku bingungkan, bagaimana nasib notebook yang lecet tadi. Akan dijadikan display atau akan diretur ke distributor. Ah, entahlah, pasti tidak merugikan toko tersebut. Terus kenapa banyak notebook yang dijadikan display yah? Apa tidak eman-eman tuh. Setelah barang baru tidak diproduksi lagi, terus barang yang dijadikan display diapakan yah? Berlanjut ke pembelian notebook. Karena kami akan install XP sendiri, kami hanya minta driver-driver yang diperlukan saja (daripada download sendiri, kan lama). Terus tiba-tiba penjaga toko yang satunya lagi, kali ini laki-laki, bilang bahwa XP original tidak bisa di-instal langsung ke notebook itu karena XP tidak mendukung hard disk SATA. Terus dia menjelaskan cara instal-nya, tapi harus pakai floppy disk. Bingung kan, bagaimana caranya floppy disk masuk ke notebook. Ya udah lah, dengarkan saja, aku yakin aku bisa mengatasinya. Dua hari kemudian temanku memberikan CD XP plus Office 2003 yang dibeli dari ComLabs. Dan acara penginstalan pun aku mulai setelah ada waktu di kosan. Ternyata benar, error. Hard disk tidak terdeteksi. Aku pun jadi ingat, beberapa hari yang lalu, temanku yang lain, Nanto, mengungkapkan masalah yang serupa dengan ini. Aku pun segera menggenggam ponsel, tapi bukan untuk nanya Nanto, melainkan buka Opera Mini, terus cari solusi masalah ini dengan bantuan Google. Langsung dapat lah satu artikel dari Softpedia yang menjelaskan cara instal XP di hard disk SATA tanpa bantuan floppy disk. Karena harus download aplikasi bernama nLite dan driver SATA, aku pun hentikan usaha instalasi. Download esok harinya saja di kampus. Esok harinya, selain download nLite dan driver SATA, aku juga cari tahu lebih lanjut mengenai cara instal ini. Nah, aku dapat artikel ini. Setelah melaksanakan petunjuk di situ, aku pun berhasil menanamkan Microsoft Windows XP SP2 ke dalam Compaq Presario V3908TU milik temanku. Alhamdulillah.

Saturday, May 17, 2008

Mengunduh Fedora 9 "Sulphur"

Pada hari Selasa 13 Mei 2008 Fedora 9 dirilis. Rilis ini tidak sesuai jadwal. Dalam jadwal (awal) Fedora Project, versi yang diberi codename Sulphur ini seharusnya dirilis akhir April 2008 (seingatku tanggal 29 April 2008). Beberapa saat setelah dirilis, installer(.iso)-nya pun sudah bertebaran di banyak FTP mirror di seluruh dunia--tapi di Indonesia belum ada. Mulai lah aku mengunduhnya (yang i386 dan x86_64 untuk media DVD).

Karena pekan ini banyak pekerjaan bukan rutin (misal: demo & review iterasi 3 tugas IF3262, tugas 4 IF3292, dan UAS IF3261) jadi aku mengunduhnya ke komputer ComLabs ITB dan aku tinggalkan. Pada hari pertama koneksinya lambat sehingga belum semuanya terunduh. Hingga akhirnya pada hari ini Sabtu 17 Mei 2008 aku mempunyai "waktu luang" di ComLabs. Aku pun melanjutkan pengunduhan. Berkas yang sudah diunduh sebelumnya (di komputer ComLabs) aku pindahkan dulu ke komputerku melalui perantara FTP ComLabs (soale HD eksternalku rusak) untuk dilanjutkan pengunduhannya. Rate-nya cukup menentramkan jiwa. Dan pada suatu saat bisa melebihi 3000 kbytes/s--luar biasa bukan untuk pengunduhan dari FTP di luar jaringan ITB. Kalau dirata-rata mungkin sekitar 250 kbytes/s. Ini sekrinsyot saat koneksi berada di masa kejayaan (yang tertangkap sekitar 2800 kbytes/s):

Setelah beberapa jam pengunduhan pun selesai.

Dua pekan depan adalah masa UAS. Setelah UAS pun masih ada tugas IF3211. Mungkin aku baru bisa menikmati Sulphur ini awal Juni. Setelah itu KP.

Kalau kamu juga ingin menikmati Fedora 9 ini, tidak bisa mengunduhnya, dan ingin mendapatkan installer-nya dalam bentuk CD/DVD; bisa hubungi aku via Y!M (lihat "Chat with Me" di sidebar).

Monday, May 12, 2008

Ikut-Ikutan ng-AXIS

Baru beli nomor AXIS setelah servis ponsel di BEC. Karena beli di gerai resminya di BEC, jadi dapat harga asli juga, Rp 6.000. Sebelum beli sih sudah sempat baca-baca artikel mengenai AXIS dari banyak situs/blog. Sebenarnya sudah tertarik sejak awal, tapi ada yang bilang bahwa sinyal AXIS di sekitaran Dago agak lemah. Akibatnya ya aku tidak jadi beli hingga suatu saat aku menemukan sebuah kartu SIM AXIS di depan ComLabs ITB, barangkali masih bisa digunakan internet gratisnya, pulsanya mendekati nol tidak masalah. Aku tidak akan mengambil pulsanya kok, jadi semoga tidak dosa. Astaghfirullah. Beberapa hari kemudian dicoba di kosan teman. Di sana sinyalnya kuat, termasuk UMTS/3G-nya. Alhasil koneksi lancar. Karena kosan dia dan kosanku dekat, aku pun jadi tertarik lagi untuk membeli nomor AXIS. Mungkin yang lemah di Dago yang jauh dari kosanku, Dago kan panjang.

Setelah punya waktu luang di kosan sendiri, aku pun mencoba menggunakan AXIS. Setelah dipasang di ponsel, langsung disuruh registrasi 4444. Sekarang keren ya, metodenya seperti itu. Atau cuma AXIS tok? Setelah siap, eh, sinyalnya buruk sekali. Dan sesungguhnya ini adalah seburuk-buruknya sinyal di kosanku (aku pernah menggunakan Kartu AS, Xplor, dan tentunya IM3). Disambungkan ke komputer pun tidak bisa membuat koneksi menggunakan AXIS UMTS maupun GPRS. Ya sudah lah, lain kali dicoba lagi.

Hingga akhirnya malam ini aku menggunakan AXIS kembali. Kali ini lumayan, bisa konek baik UMTS maupun GPRS walaupun masih tetap lemah. Koneksi UMTS-nya masih lambat (secara teori bisa mencapai 384 kbps). Plus tidak stabil, sering terputus. Ini tampilan Sony Ericsson PC Suite untuk koneksi UMTS:

Dites menggunakan speedtest.net hasilnya:

Sedangkan koneksi dengan GPRS cukup stabil, tidak putus-putus, tapi ya begitu lah GPRS, lebih lambat daripada UMTS. Secara teori sih rate-nya 32-48 kbps untuk class 10 dan 12 (ponselku mendukung GPRS class 10, tapi tidak tahu apakah AXIS juga mencapai class 10). Tampilan Sony Ericsson PC Suite untuk koneksi GPRS:

Hasil dari speedtest.net:

Untuk keperluan pengujian, jaringan pun digonta-ganti. Pada saat pengunggahan gambar screenshot pc suite jaringan yang digunakan adalah GPRS.

Seperti terlihat pada gambar dari speedtest.net, pengujian di atas dilakukan sekitar jam 1 dini hari WIB dengan server tujuan di Jakarta. Sebelum pengujian itu koneksi lebih lambat lagi. Mungkin jaringan masih ramai.

Nah, ini yang mantap, tes koneksi UMTS sekitar jam 3 dini hari WIB:

Jadi, mungkin kapasitas jaringannya memang belum besar. Kalau jam sibuk masih kalah dengan provider lain. Semoga bisa ditambah lagi kapasitasnya serta biaya GPRS dan UMTS-nya tidak mahal jika sudah tidak promosi (gratis seperti ini) lagi.

Sekian laporan dari studio Sangkuriang 10 Bandung. Selamat sahur dan puasa.

Saturday, April 19, 2008

Laptop PS3



Barusan browsing internet nyasar ke artikel yang membahas sebuah produk keren, laptop PS3. Tidak disebutkan nama resminya. Pokoknya produk ini merupakan hasil kloning antara laptop dan Sony PlayStation 3, buatan Ben Heck[1]. Katanya sih saat ini cuma ada satu buah saja di bumi tempat kita berpijak ini. Produk ini dilelang di eBay dan saat artikel ini ditulis, tawaran tertinggi adalah US $ 17,300. Berikut ini spesifikasi singkatnya:
  • Original backwards compatible 60GB model
  • 17-inch LCD HDTV screen: 720p
  • HDMI-DVI connection
  • Built-in keyboard, USB ports, stereo speakers, headphone jack
  • Size: 17 x 13.75 x 3-inches
  • Weight: 16 pounds!
Untuk melihat lebih banyak gambar dan video produk ini, kunjungi halaman ini. Produk ini masih relatif baru. Sebelumnya Ben Heck sudah membuat laptop Wii dan laptop Xbox 360. Tapi aku tidak tahu apakah dulu kedua produk tersebut juga dilelang/dijual atau tidak. Ayo, adakah yang ingin laptop PS3 terdampar di Indonesia? Menangkan lelangnya dong sebelum ditutup, nanti kita main bersama deh. PS3 asli saja aku belum pernah melihatnya langsung.
[1] Ben Heck itu nama orang, bukan nama pabrikan.

Tuesday, April 15, 2008

Sentuhan Pertama dengan AJAX: Mengirim Data ke Server dengan Method GET

Setelah kita selesai ta'aruf beberapa waktu yang lalu, kita lanjutkan proses ke khitbah dan proses inti. Untuk melakukannya kita harus mempunyai kemampuan dasar (minimal mengerti lah) pemrograman web, yaitu HTML, JavaScript, dan bahasa server scripting seperti PHP. Dalam kehidupan nyata sangat diperlukan juga CSS dan DBMS seperti MySQL dan PostgreSQL. Walaupun singkatan dari AJAX ada kata XML, kita tidak harus menguasainya. Jika sudah siap, nyatakan bahwa kita telah menguasai kemampuan dasar tersebut dan siap melanjutkan proses. Dengan demikian, AJAX pun akan menerima kita. Setelah proses di atas selesai, sekarang kita akan menyentuh AJAX untuk pertama kali. nya adalah text editor (misal Notepad++, VI, dan gEdit), internet browser Siapkan peralatan-peralatan yang diperlukan. Peralatan wajib(lebih baik gunakan beberapa internet browser populer untuk uji coba, misal Mozilla Firefox, Internet Explorer, Opera, dan Safari), web server (misal Apache dan Tomcat), dan bahasa server scripting (misal PHP, ASP, dan JSP). Silakan tambahkan sendiri peralatan lainnya sesuai selera. Sekarang kita benar-benar siap untuk menjelajahi AJAX. Contoh pertama, kita belum berhubungan dengan DBMS. Bukan pula hello world atau halo dunia. Kita akan membuat halaman web untuk menerima masukan dan langsung menampilkannya di halaman yang sama. Metode pengiriman data kali ini menggunakan GET. Pertama, kita siapkan halaman/form HTML untuk menerima masukan dari pengguna dan menampilkan hasil masukannya. Misal namanya input_id.html, kodenya:
<html> <head> <title>Hafni Syaeful Sulun | Tutorial AJAX | Mengirim Data ke Server dengan Method GET</title> <script type="text/javascript" src="ajaxscript.js"></script> </head> <body> <form name="form_input_id" method="get" action="javascript:input_id()"> <table> <tr> <td>Nama:</td> <td><input type="textbox" name="nama" /></td> </tr> <tr> <td>Jenis kelamin:</td> <td><input type="radio" name="jenis_kelamin" value="Laki-laki" checked>Laki-laki <input type="radio" name="jenis_kelamin" value="Perempuan">Perempuan</td> </tr> <tr> <td>Pendidikan:</td> <td><select name="pendidikan"><option value="SD" selected>SD</option><option value="SMP">SMP</option><option value="SMA">SMA</option></select></td> </tr> <tr> <td><input type="submit" name="submit" value="Submit"></td> </tr> </table> </form> <div id="main"> <!-- layer untuk menampilkan hasil dari AJAX --> Di sini akan ditampilkan hasil input identitas. </div> </body> </html>
Setelah itu, kita beralih ke berkas JavaScript (dalam contoh ini bernama ajaxscript.js) yang akan menghubungkan form tadi dengan berkas yang akan memproses masukan dari form tersebut. Pertama dan yang wajib, kita buat XMLHttpRequest object, yaitu sebuah API yang menyediakan fungsionalitas scripted client untuk transfer data antara klien dan server[1]. Berikut ini script-nya.
var xmlHttp = GetXmlHttpRequestObject(); // langsung buat XMLHttpRequest object ketika halaman dimuat function GetXmlHttpRequestObject() // fungsi untuk membuat XMLHttpRequest object { try { // Firefox, Opera 8.0+, Safari, Internet Explorer 7+ xmlHttp=new XMLHttpRequest(); } catch (e) { // Internet Explorer < 7 try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } } return xmlHttp; }
Fungsi GetXmlHttpRequestObject akan mencoba (try) membuat XMLHttpRequest object. Jika tidak bisa, maka akan membuat ActiveXObject (ini khusus Internet Explorer < 7). Kemudian, kita buat fungsi untuk mengubah bagian halaman tertentu, yang dalam contoh ini layer (div) ber-id "main", ketika request sedang diproses dan sudah selesai. Kita periksa readyState dari XMLHttpRequest object. Berikut ini nilai-nilai dari readyState: 0 : Request belum diinisialisasi. 1 : Request telah diinisialisasi, dikirim, atau sedang diproses di server. 2 : Response telah diterima klien. 3 : Response sedang diproses klien. 4 : Proses selesai. Kita gunakan readyState 4 saja. Jika bernilai 4, tampilkan hasil request (response). Jika bukan 4, tampilkan keterangan "loading". Eit, memeriksa readyState saja belum cukup karena metode ini hanya akan berhasil jika tidak terjadi kesalahan pada sisi server. Klien tidak mengetahui apakah request telah diproses server atau belum. Untuk memeriksanya gunakan properti status HTTP request--sering lihat kan "HTTP error code 404 object not found" yang mengindikasikan bahwa object/berkas yang di-request tidak ada di server. Untuk keperluan AJAX ini, kita periksa apakah nilainya 200. Properti status ini bernilai 200 jika request telah diproses server. Script-nya:
function stateChanged() // fungsi untuk mengubah bagian halaman ketika AJAX dijalankan { if (xmlHttp.readyState==4 && xmlHttp.status==200) // transfer data klien-server selesai { document.getElementById("main").innerHTML = xmlHttp.responseText; } else // transfer data klien-server belum selesai atau sedang diproses { document.getElementById("main").innerHTML = "Loading..."; } }
Selanjutnya, buat fungsi untuk mengirimkan data ke server dengan method GET[2]. Script-nya:
function GetAjaxRequest(url) // fungsi GET { xmlHttp.onreadystatechange = stateChanged; xmlHttp.open("GET", url, true); xmlHttp.setRequestHeader("Cache-Control", "no-cache"); // untuk menghindari penggunaan cache browser xmlHttp.send(null); }
Pada script di atas terdapat baris xmlHttp.setRequestHeader("Cache-Control", "no-cache");. Ini bertujuan agar browser tidak menggunakan cache (data temporer yang disimpan di browser). Artinya kita ingin mendapatkan data/halaman yang benar-benar baru dari server. Selain dengan mengeset header Cache-Control, mencegah caching juga bisa dengan menggunakan nilai random yang dimasukkan ke dalam parameter GET seperti berikut:
function GetAjaxRequest(url) // fungsi GET { xmlHttp.onreadystatechange = stateChanged; url += "&sid=" + Math.random(); // untuk menghindari penggunaan cache browser xmlHttp.open("GET", url, true); xmlHttp.send(null); }
Karena dalam form HTML kita menggunakan input radio button, kita harus membuat fungsi untuk mengambil nilai yang dipilih pengguna. Sepengetahuanku ya begini, tidak bisa langsung diambil, harus menggunakan fungsi sendiri. Kalau ada yang tahu cara yang lebih mudah, beri tahu aku ya.
function radio_value(radio) // fungsi untuk mengambil nilai dari radio button { for (i=0; i<radio.length; i++) { if (radio[i].checked) return radio[i].value; }
Sekarang buat fungsi yang memproses form. Script-nya:
function input_id() { // berkas PHP yang memproses form plus parameter GET var url = "input_id_action.php" + "?submit=Submit" + "&nama=" + encodeURI(document.form_input_id.nama.value) + "&jenis_kelamin=" + encodeURI(radio_value(document.form_input_id.jenis_kelamin)) + "&pendidikan=" + encodeURI(document.form_input_id.pendidikan.value); GetAjaxRequest(url); }
Script di atas akan mengirimkan nilai-nilai dari form ke berkas input_id_action.php. Sama kan metodenya dengan metode pengiriman form langsung ke berkas PHP tanpa AJAX, yaitu dengan menuliskan parameter dan nilainya di belakang URL? Nah, terakhir kita buat berkas PHP yang akan memproses nilai-nilai yang dikirimkan (dalam contoh ini bernama input_id_action.php). Kodenya:
<?php if (isset($_GET['submit'])) { extract($_GET); echo " Nama: " . $nama . "<br /> Jenis kelamin: " . $jenis_kelamin . "<br /> Pendidikan: " . $pendidikan; } ?>
Referensi XMLHttpRequest bisa didapatkan di sini. Demo tutorial ini bisa dilihat di sini. Kode sumber tutorial ini bisa diunduh di sini.
[1] Definisi dari www.w3.org.
[2] Method yang tersedia untuk XMLHttpRequest object ini adalah GET, POST, HEAD, PUT, DELETE, dan OPTIONS.

Thursday, April 10, 2008

Ta'aruf dengan AJAX

Artikel ini merupakan artikel singkat mengenai ta'aruf atau berkenalan teknologi AJAX. Sasaran artikel ini adalah para pemula. Untuk para ahli, boleh baca, tapi beri komentar ya, barangkali ada kesalahan, atau mungkin malah kebenarannya mau dikomentari. AJAX itu singkatan dari Asynchronous JavaScript and XML. AJAX bukan bahasa pemrograman, melainkan teknik baru dalam menggunakan bahasa-bahasa yang sudah ada (dan intinya adalah JavaScript). Seperti kita ketahui, aplikasi desktop lebih bersahabat (user-friendly) daripada aplikasi web. Yang paling terasa adalah dalam hal respon oleh sistem (server kalau dalam aplikasi web). Aplikasi desktop lebih peka terhadap rangsang, tidak seperti aplikasi web (loading-nya lama). Nah, untuk mengatasi hal ini, maka digunakanlah AJAX. Dengan AJAX, kita bisa membuat aplikasi web menjadi lebih baik, cepat, dan bersahabat. Katanya, AJAX ini dipopulerkan oleh Google pada tahun 2005 melalui aplikasi Google Suggest. Bagi kamu yang belum tahu contoh aplikasi yang didukung AJAX, sebaiknya lihat dulu deh. Ini nih yang mendasari populernya AJAX. Dalam website tradisional, jika kita ingin mendapatkan informasi dari basisdata atau berkas pada server, atau mengirim informasi kepada server, kita harus membuat form HTML dengan metode GET atau POST data ke server. Pengguna harus menekan tombol "Submit" untuk mengirim atau memperoleh informasi, menunggu server meresponnya, kemudian halaman baru akan ditampilkan sebagai hasilnya. Karena server mengembalikan halaman baru setiap kali pengguna mengirimkan form, aplikasi web tradisional berjalan lambat, bahkan terkesan tidak ada respon (tidak user-friendly). Dengan AJAX, JavaScript yang dibuat bisa berkomunikasi langsung dengan server melalui JaavaScript XMLHttpRequest object. Dengan HTTP request tersebut, halaman web bisa request ke web server dan juga mendapatkan respon dari web server tanpa memuat halaman kembali. Pengguna akan tetap berada di halaman yang sama dan dia tidak akan menyadari bahwa script meminta halaman atau mengirim data ke server secara background (tidak terlihat). Berikut ini ringkasan kelebihan AJAX:
  1. Tidak perlu memuat halaman secara utuh sehingga lebih cepat.
  2. Lebih user-friendly.
  3. Platform independent (bisa digunakan di server dan browser (terkini) apa pun).
Dan berikut ini ringkasan kekurangannya:
  1. Browser tidak memberikan keterangan bahwa browser sedang melakukan proses, karena proses terjadi di background. Hal ini bisa diatasi dengan membuat sendiri keterangan tersebut (misalnya progress bar) dari sisi aplikasi kita.
  2. Browser tidak menyimpan browsing history lengkap (karena pengguna tetap berada dalam satu halaman, tidak berpindah ke halaman lain), sehingga pengguna kesulitan untuk kembali ke "halaman" sebelumnya. Bisa diatasi juga, dengan membuat sendiri (lagi) script kembali ke halaman sebelumnya.
Kita baru saja selesai ta'aruf. Tidak usah lama-lama ta'aruf itu. Selesai ta'aruf bukan berarti kita boleh bersentuhan dengannya sekarang. Sabar dan jagalah hati (berpuasalah bila perlu). Kita harus meng-khitbah-nya terlebih dulu, kemudian prosesi inti, baru boleh diubek-ubek. Jadi, tunggu artikel selanjutnya. Insya Allah tidak sampai satu pekan dari sekarang. Tetap semangat, tetap istiqomah, biar tetap bisa berkontribusi untuk teknologi Indonesia.

Wednesday, February 20, 2008

Sony Ericsson XPERIA™ X1: Begitu Menggoda

Beberapa hari yang lalu aku mengunjungi situs Sony Ericsson. Seperti yang sering kita lihat, di halaman depan--setelah memilih negara--dipajang ponsel-ponsel terbaru. Ada cukup banyak ponsel baru kali ini. Namun, hanya satu yang memikat hatiku, yakni ponsel yang dipajang di urutan pertama, Sony Ericsson XPERIA™ X1. Pertama yang kita lihat pasti tongkrongannya. Bentuknya sangat berbeda dengan semua ponsel yang pernah diluncurkan Sony Ericsson. Pantas saja ponsel ini diberi label baru, yaitu X. Ponsel ini terlihat seperti ponsel-ponsel fesyen nan canggih masa kini dari vendor lain yang telah terbit lebih awal, seperti Apple iPhone dan LG KE850 Prada. X1 memiliki sejumlah keunggulan dibandingkan dua ponsel tersebut, sampai-sampai ponsel ini disebut-sebut sebagai "iPhone killer". Salah satu keunggulannya yaitu X1 memiliki keyboard QWERTY sehingga membuat penggunanya lebih mudah dalam menulis. Untuk menggunakan keyboard QWERTY ini, Sony Ericsson menambahkan arc slider layaknya HTC TyTN II, tetapi lebih landai. Eh, beda ding, HTC TyTN II di-sliding lurus dulu, baru ditekuk, sedangkan SE X1 di-sliding langsung membentuk sudut kecil karena "rel" slider-nya cekung. Layarnya berjenis TFT (Thin Film Transistor) berukuran 3 inch wide VGA (800 x 480) dan didukung fitur layar sentuh (touchscreen), tetapi sayang hanya bisa menampilkan maksimal 65.536 warna. Bodinya terbuat dari bahan metal sehingga menambah kesan mewah ponsel ini dan tentu prestise pemiliknya. Sony Ericsson mengenalkan fitur baru melalui ponsel ini, yaitu XPERIA™ panel interface. Dengan ini, pengguna bisa menavigasikan menu menggunakan jari tangan, tidak perlu lagi alat bantu bernama stylus. Namun, tetap saja kita akan mendapatkan stylus dari ponsel ini. Stylus ini digunakan sebagai alternatif menulis karena ponsel ini mendukung handwriting recognition. Ada yang baru lagi yang dilakukan Sony Ericsson melalui ponsel ini. Baru kali ini mereka menggandeng Microsoft® untuk menyediakan sistem operasi Windows Mobile® terbaru, yakni Windows Mobile® 6, yang memiliki interface menyerupai interface Windows Vista®. Seandainya saja menggunakan Linux lengkap dengan Compiz Fusion, wow! Ponsel ini bisa digunakan di negara mana pun, karena mendukung semua (4) band GSM. Selain itu, juga mendukung jaringan 3G (UMTS) dan 3,5G (HSDPA). Dan layaknya ponsel canggih lainnya, X1 bisa digunakan untuk berinternet ria melalui Wi-Fi1. Ada fitur aGPS pula. O ya, kamera sekunder VGA pun tersedia untuk video call--tetapi letaknya tersembunyi, sehingga susah diidentifikasi2. Ponsel ini layak menyandang sebutan ponsel bisnis sekaligus fesyen karena di balik desainnya yang menawan, ada fitur-fitur yang bisa mendukung bisnis kita. Sebut saja penyunting dokumen yang bisa digunakan untuk mempersiapkan presentasi, e-mail untuk berkomunikasi dengan kolega, dan RSS reader agar selalu up-to-date terhadap berita-berita terkini. Bila kita jenuh dengan urusan bisnis, kita bisa menikmati musik melalui Windows Media® Player Mobile. Lebih asyik lagi, X1 telah mendukung Bluetooth™ stereo (A2DP). Kebanyakan vendor tidak terlalu memerhatikan fitur kamera untuk ponsel bisnis mereka. Hanya sebagai pelengkap. Lihat saja, kebanyakan kamera yang disematkan hanya bisa mencapai resolusi 1,3 MP atau 2 MP. Berbeda dengan X1 yang dikaruniai penangkap gambar berkekuatan 3,2 MP. Namun, jangan harap hasilnya akan mampu menandingi jepretan ponsel Sony Ericsson berlabel Cyber-shot™ walaupun resolusinya sama. Subhanallah, semakin menambah daftar ponsel yang aku inginkan. Sebelumnya sudah ada SE K770i, SE C902, dan HTC TyTN II. Memang aku lebih suka ponsel berkamera cukup lumayan atau berteknologi terkini. Informasi lebih lengkap, bisa klik di sini. Ya Allah, mudahkanlah aku untuk meminangnya.
1 Wi-Fi bisa dikatakan jalur alternatif untuk berinternet secara hemat karena banyak tempat yang menyediakan akses Wi-Fi gratis.
2 Diperbarui pada tanggal 6 Maret 2008, referensi: Mobile Gazette.

Saturday, January 19, 2008

Akhirnya DVD NetBeans 6.0 Sampai di Tanganku

Pagi tadi saya menerima DVD Starter Kit NetBeans 6.0 yang saya minta langsung dari Sun Microsystems, Inc. lewat situs NetBeans (www.netbeans.org). Kira-kira waktu yang ditempuh sejak pemesanan hingga sampai ke tanganku 6-7 pekan. Cap pos dari kantor pos asalnya (Praha, Rep. Ceska) tercatat tanggal 10 Januari 2008. Berarti DVD ini "melaju" dari "terminal pemberangkatan" hingga sampai tujuan (tempat kos saya di Bandung) memakan waktu 9 hari. Ini kali ketiga saya memesan CD/DVD semacam ini. Sebelumnya saya pernah dua kali memesan CD Ubuntu. Yang pertama dikirim ke Bandung. Yang kedua dikirim ke Tegal. Berbeda dengan CD Ubuntu, DVD NetBeans ini benar-benar gratis. Asli! Tanpa merogoh kocek sama sekali. CD Ubuntu memang sebenarnya gratis, tetapi kita harus membayar sejumlah uang kepada Pos Indonesia. Kalau tidak salah paket CD-nya dibungkus kembali oleh perusahaan tersebut--sudah lupa soale sudah lama banget, versi 6.06. Mungkin biaya yang kita bayarkan digunakan untuk itu. Namun, ada perbedaan di antara dua pengiriman CD Ubuntu ini. Waktu dikirim ke Bandung, CD diantar sampai ke tujuan, sedangkan waktu dikirim ke Tegal, CD harus diambil ke Kantor Pos--sebelumnya saya menerima pemberitahuannya. Karena perbedaan ini, biaya yang harus saya keluarkan pun berbeda. Jauh lebih murah dikirim ke Tegal. Seingat saya kalau ke Bandung Rp 5.000, kalau ke Tegal Rp 2.000--maaf kalau salah. Sekarang beralih ke DVD NetBeans 6.0. Awalnya saya tidak berminat memesannya. Pada awal peluncuran, saya bermaksud mengunduhnya langsung, tetapi diblok oleh "Cumi ITB". Aneh kan? Beberapa hari kemudian, ada seorang mahasiswa Teknik Informatika ITB angkatan 2004 yang memberitahukan bahwa sudah ada NetBeans 6.0 untuk Windows di server ITB. Namun, saya tidak mengunduhnya. Malah saya "terbang" ke NetBeans lagi bermaksud mengunduhnya langsung, tetapi masih diblok juga oleh "Cumi ITB". Terus saya terpikir untuk memesan DVD. Dalam pikiran saya, pasti isinya tidak hanya installer NetBeans 6.0 untuk Windows seperti yang sudah ditaruh di server ITB tadi karena berkas installer NetBeans versi sebelumnya yang untuk Windows hanya berukuran 50-an MB. Jika ada 10 installer (untuk Windows, Linux, Solaris, dsb.) saja masih cukup disimpan dalam satu CD. Hari-hari berikutnya saya iseng untuk mengecek status pesanan. Beberapa kali saya lakukan, hasilnya selalu belum dikirim. Jadi cape sendiri. Akhirnya mencoba untuk mengunduh, dan kali ini "Cumi ITB" sudah memperbolehkannya. Dugaan saya mengenai berkas installer sedikit melenceng. Ternyata di sana bisa langsung memilih pak yang akan diunduh. Saya pilih yang full. Berkas ini ternyata berukuran 167 MB. Jadi, kalau ada 5 installer ini saja sudah harus menggunakan DVD. Namun, saya tetap optimis mendapatkan data-data tambahan selain installer. Masa dari kapasitas 4 GB lebih hanya digunakan 1 GB? Kemudian saya juga mengunduh beberapa tutorialnya. Kok jadi keluar dari pembahasan DVD lagi? Ya wis, balik maning maring DVD NetBeans 6.0. Ini nih konten penting dari DVD ini.
  1. Installer untuk Windows 2000/XP/Vista, Linux (x86/x64), Solaris 10 (x86/x64), Solaris 10 (sparc), MacOS X (intel), dan MacOS X (powerpc) Berisi Java SE Development Kit 6 Update 3 dan NetBeans IDE 6.0 (Base IDE; NetBeans Packs: Java SE, Web & Java EE, Mobility, UML, SOA, Ruby, dan C/C++; serta Runtimes: GlassFish V2 dan Apache Tomcat 6.0.14).
  2. Starter Kit Berisi dokumentasi dan tutorial, yaitu Getting Started With NetBeans IDE, Java Learning Materials, dan IDE Learning Trails. Ada contoh programnya juga lho.

Sunday, January 6, 2008

Ganti Template, Bagus Kan?

Kemarin saya mengganti template blog ini. Sebelumnya saya menggunakan template resmi dari Blogger, namanya Tic Tac, pembuatnya Den Cederholm. Saat ini sudah ganti menggunakan template dari pihak ketiga (Jack Book), namanya Red White Web 2.0 Blogger Template, pembuatnya Carl Mason. Sebenarnya sudah lama saya ingin mengganti template blog ini. Saya sudah berusaha mencari di berbagai tempat, tetapi baru bisa kali ini. Setelah mendapatkan template ini pun saya masih harus berjuang karena perlu penyesuaian. Memang, di situs sumbernya menyediakan instruksi penggunaan, tetapi coba lihat, hanya instruksi (sangat) dasar. Itu pun saya rasa susah dipraktikkan oleh orang awam. Mungkin karena template ini disunting oleh orang lain (bukan pembuatnya). Ya, menurut Jack Book, template ini sejatinya dibuat untuk Wordpress. Kemudian oleh kristofer93 diadaptasi ke Blogger. Sudah diberi template gratis, masih mengeluh? Coba lihat deh blog lain yang menggunakan template ini. Bisa kamu googling dengan kata kunci Carl Mason. Banyak konten dalam blog tersebut tidak berfungsi sebagaimana mestinya. Beberapa kode yang seharusnya disematkan di balik tampilan yang apik tersebut tidak ditulis. Misalnya saja pada "Up?" yang seharusnya jika diklik, halaman akan kembali ke bagian atas. Selain itu, ada juga yang menghapus search box di header (karena tidak suka atau tidak berfungsi?). Padahal, kodenya sudah disediakan di situsnya. Ya sudahlah, yang penting saya sudah berhasil mengimplementasikannya. Kalau kamu ingin bertanya, silakan.

Thursday, January 3, 2008

Menampilkan Status Online Yahoo! Messenger di Situs

Tentu tidak jarang kita melihat situs yang menampilkan sebuah gambar dari Yahoo! Messenger bertuliskan Not Online atau I'm Online seperti berikut:

Gambar di atas bukanlah sekadar gambar biasa. Gambar ini menunjukkan status Yahoo! ID di Yahoo! Messenger apakah sedang online atau offline. Biasanya ID tersebut milik si pemilik, webmaster, atau kontak/support situs yang bersangkutan. Bagaimana sistem kerjanya? Dan bagaimana pula cara membuatnya?

Begini cara kerjanya. Jika gambar tersebut (baik bertuliskan Not Online maupun I'm Online) kita klik, maka ada dua skenario bergantung pada kode yang ditanamkan di balik ikon tersebut. Yang pertama (dan juga yang klasik), program Yahoo! Messenger di komputer kita akan ditampilkan. Tentu saja jika program tersebut sudah terpasang di komputer kita. Yang kedua (ini lebih "modern"), internet browser yang kita gunakan akan membuka situs webmessenger.yahoo.com (Yahoo! Messenger versi web). Selanjutnya, sama. Jika kita sudah online sebelum mengklik ikon tersebut, maka kita langsung dihadapkan pada jendela conversation dengan orang tersebut. Jika belum online, kita harus sign in dulu.

Sekarang, cara membuat ikon tersebut. Kamu cukup menyisipkan salah satu kode di bawah ini ke situs kamu. Bila akan menambahkannya ke dalam blog kamu di Blogger, maka masuklah ke menu "Template" > "Elemen Halaman", klik "Tambahkan sebuah Elemen Halaman" di bagian template blog, pilih "HTML/JavaScript", salin kodenya pada bagian konten (judulnya terserah kamu), simpan.

  1. Versi desktop
    1. Tampilan (asli, bisa dicoba diklik):
    2. Kode:

      Ingat, ganti YAHOO!-ID pada kode di atas dengan Yahoo! ID kamu.
  2. Versi web
    1. Tampilan (asli, bisa dicoba diklik):
    2. Kode:

      Ingat, ganti YAHOO!-ID pada kode di atas dengan Yahoo! ID kamu.
Gambar yang ditampilkan tidak hanya seperti yang ditampilkan di atas. Semuanya ada 25 gambar berbeda. Cara menggunakannya tinggal mengganti variabel t (0-24) pada kode di atas (baik versi desktop maupun versi web). Berikut ini gambar dan nilai t-nya.
  1. t=0
  2. t=1
  3. t=2
  4. t=3
  5. t=4
  6. t=5
  7. t=6
  8. t=7
  9. t=8
  10. t=9
  11. t=10
  12. t=11
  13. t=12
  14. t=13
  15. t=14
  16. t=15
  17. t=16
  18. t=17
  19. t=18
  20. t=19
  21. t=20
  22. t=21
  23. t=22
  24. t=23
  25. t=24

Gambar lengkap online dan offline bisa dilihat di sini.

Di antara dua versi seperti yang disebutkan di atas, tentu versi web lebih layak dipilih karena bisa berjalan dalam kondisi apapun. Berbeda dengan versi desktop. Versi desktop hanya berjalan jika di komputer kita sudah terpasang aplikasi Yahoo! Messenger. Tentu tidak semua komputer sudah terpasang aplikasi ini, apalagi aplikasi ini hanya tersedia untuk Windows. Sebenarnya kode versi desktop memanggil perintah yang terdapat pada registry di Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ymsgr\shell\open\command. Di situ ada satu registry. Nah, jika registry tersebut (di)rusak tentunya aplikasi Yahoo! Messenger tidak bisa dipanggil.

Selamat mencoba!