Kamis, Desember 03, 2009

Workshop Nasional SENAYAN Library Management System!!!


SENAYAN DEVELOPER COMMUNITY (SDC) kembali akan ngadain Workshop Nasional SENAYAN Library Management System (SLiMS), yang tepatnya akan dilaksanakan di Hotel Paragon Jakarta (daerah Menteng, Jakarta Pusat), pada tanggal 14 – 17 Desember 2009. Pastinya karena Workshop ini diadakan selama 4 hari 3 malam full, jadi materi yang diberikan juga akan sangat banyak dan men-detail.

Workshop ini ditujukan kepada para pustakawan atau perorangan yang ingin memanfaatkan SLiMS untuk mengelola koleksi ditempat kerja. Materi workshop dirancang untuk membantu para peserta agar dapat segera mengaplikasikan SLiMS di tempat masing-masing. Dibagi dalam 10 (Sepuluh) modul dasar ditambah materi kustomisasi dan konversi data, pengetahuan dasar perpustakaan akan sangat membantu peserta memahami materi dan panduan yang di sampaikan. Dalam pelatihan, peserta akan menggunakan versi terbaru SLiMS – atau juga dikenal dengan SENAYAN 3 stable 12.

Untuk brosur pendaftaran serta surat undangan bisa di-unduh (download) di Workshop SLIMS.

Untuk anda yang ingin belajar menggunakan SENAYAN, ngoprek, nginstall SENAYAN di GNU/Linux macem Ubuntu, Fedora atau OpenSUSE, pengen belajar cara konversi data dari database ISIS, Athenaeum atau database lainnya, jangan lewatin Workshop SLiMS ini. Trainer-nya juga langsung para Developer ASELI SLiMS!!!.

Rabu, Agustus 26, 2009

jQuery, I Love You Full!

Di postingan sebelumnya saya membahas Prototype, sebuah framework Javascript ciamik untuk manipulasi DOM dan AJAX. Kali ini saya iseng-iseng coba sebuah framework Javascript yang sudah kesohor juga yaitu jQuery. kalau menurut hemat saya, jQuery punya model syntax yang lebih elegan dibandingkan dengan Prototype, hal ini bisa kita lihat dalam model object jQuery yang lebih simple, terutama dalam penanganan event. Penanganan event di jQuery nemungkinkan kita benar-benar memisahkan antara layer tampilan dengan layer logic pemrograman javascript.

Perbedaan mendasar antara jQuery dengan Prototype adalah, fungsi $ pada jQuery menerima argumen string Selector CSS atau XPath dan selalu mengembalikan objek jQuery dalam bentuk Array atau List, sedang pada Prototype fungsi $ hanya menerima string ID dari element yang akan kita manipulasi dan mengembalikan object DOM yang sudah di-extend oleh metode-metode Prototype (walaupun sebenarnya Prototype punya fungsi yang serupa dengan $-nya jQuery, yaitu fungsi $$ dan juga metode class Element, select, yang juga menerima argument string Selector CSS atau XPath). IMHO hal ini membuat jQuery menjadi lebih efisien, karena semua metode jQuery (dan juga semua metode plugins-nya) sudah pasti mengolah Array atau List objek DOM jQuery.

Contohnya, untuk me-register event memunculkan box alert apabila ada link dengan id 'klikSaya' di-klik, kita cukup menulis kode seperti ini pada bagian HEAD dokumen HTML kita atau bisa juga pada bagian awal BODY dokumen HTML :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript">
$(document).ready(function() {
    $('#klikSaya').click(function(evt) {
        alert('Hallooowww anda telah meng-klik saya!');
    });
});
</script>
</head>

Dan pada BODY dokumen HTML, kita cukup menuliskan kode seperti ini :

<body>
<a id="klikSaya" href="#">Klik Saya Donk Ahhh!</a>
</body>
</html>

 

Apalah artinya aplikasi Web 2.0 tanpa AJAX, rasanya kurang lengkap tanpa metode nyang satu ini. jQuery menyediakan API AJAX yang cukup lengkap untuk AJAX. Contoh di BODY dokumen HTML kita punya seperti ini:

<body>
<a id="klikAJAX" href="#">Klik Saya Buat Munculin Konten dari AJAX di bawah ini :</a>
<div id="ajaxContainer">&nbsp;</div>
</body>
</html>

Maka di bagian HEAD kita bisa menuliskan kode Javascript seperti ini :

$(document).ready(function() {
    $('#klikAJAX').click(function(evt) {
        var content = $.ajax({ url: "kontenAJAX.php", async: false }).responseText;
        // perhatikan opsi 'async', apabila diset false, maka semua event lain di browser di-block
        // sehingga tidak ada proses AJAX dilakukan bersamaan
        $('#ajaxContainer').html(content);
    });
});
Sangat mudah bukan?

jQuery juga sudah menyediakan metode-metode untuk animasi dasar, seperti fadeIn, FadeOut, pullDown, pullUp, hide, show dan animate. Contohnya bisa dilihat sebagai berikut :

Makkkk!!! gampang kali!! kode untuk efek animasi di atas hanya begini saja :
$(document).ready(function() {
    $('a.show-hidden').click(function(evt) {
        evt.preventDefault();
        $('.hidden-object').slideDown("normal");
    });
 
 
    $('a.hide-hidden').click(function(evt) {
        evt.preventDefault();
        $('.hidden-object').slideUp("normal");
    });
});

Seperti halnya Prototype, jQuery didesain agar penulisan kode semakin ringkas dan elegan, yang pada akhirnya bisa memperkecil ukuran file kode Javascript kita. Hal ini didapat dengan penerapan Command Chaining. Setiap hasil fungsi $ bisa di-chaing atau digabung dengan fungsi-fungsi jQuery lain. Misalnya bisa kita lihat pada contoh kode berikut :

// temukan semua tag 'A' dibawah element DOM dengan ID 'menu'
// dan daftarkan event 'click' sekaligus event 'mouseover'
// dan juga sekaligus set style CSS dari setiap tag 'A' yang ditemukan
// dengan display = block
$('#menu').find('a').click(function(evt) {
    // lakukan sesuatu untuk setiap tag 'A' disini
    // ketika di-klik
}).mouseover(function(evt) {
    // lakukan sesuatu untuk setiap tag 'A' disini
    // ketika cursor melewati tag 'A'
}).css('display', 'block');

Gampang yak? :D

Rabu, Juli 15, 2009

Instalasi library YAZ di PHP

Pada SENAYAN 3 Stable 10, saya menambahkan kemampuan untuk mengambil data melalui protokol Z39.50 pada modul Bibliography (Pengatalogan). Fitur ini memanfaatkan library PHP YAZ. YAZ sendiri adalah sebuah library untuk bahasa C yang dapat digunakan untuk membangun aplikasi server dan klien protokol Z39.50/SRW/SRU. Untuk lebih lengkapnya silahkan anda arahkan browser kesayangan anda ke laman resmi YAZ. Fitur Z39.50 di SENAYAN 3 Stable 10 diharapkan akan semakin memudahkan pustakawan untuk mengambil data langsung ke database online Library of Congress yang kesohor itu. Cukup masukan nomor ISBN, tunggu proses pengambilan data selesai, apabila berhasil anda tinggal memilih data mana yang akan dimasukkan ke dalam database SENAYAN anda. Hidup pustakawan semakin mudah kalau pakai SENAYAN hehheeheee :).

Untuk yang belum mengetahui apa itu protokol Z39.50, Z39.50 adalah protokol klien server berstandar internasional (ISO 23950) untuk penelusuran dan temu kembali informasi antar komputer. Penerapan protokol ini memungkinkan beberapa institusi untuk saling bertukar data, menelusur dan menemukan kembali data (biasanya rekod bibliografis/katalog koleksi perpustakaan) dengan antar muka yang sama dan teknik penelusuran yang sama.

Untungnya pengembang YAZ juga mengembangkan extension library YAZ untuk PHP. Untuk menginstall dan mengaktifkan library YAZ di PHP caranya cukup mudah :

Windows

  1. Unduh/download versi terakhir php_yaz.dll di repositori PHP YAZ dan kopi ke folder/direktori extension PHP anda. Misal anda menginstall PHP di C:\php, maka kopi file php_yaz.dll ke direktori C:\php\ext.
  2. Unduh/download versi terakhir YAZ toolkit dan lakukan instalasi.
  3. Masuk ke direktori instalasi YAZ anda (biasanya terletak di C:\Program Files\YAZ\bin) dan kopi 4 file DLL (atau biar gampang semua file DLL juga boleh :D) yang ada di dalamnya ke direktori C:\WINDOWS\system32 dan C:\WINDOWS\system. Bisa juga apabila anda menggunakan web server Apache, kopikan semua DLL-nya YAZ ke folder bin-nya instalasi Apache.
  4. Buka file konfigurasi PHP anda (php.ini) dan tambahkan atau hilangkan tanda ;(titik koma) baris yang bertuliskan seperti ini :
    extension=php_yaz.dll
  5. Restart web server anda untuk menyelesaikan proses instalasi dan setup dan kemudian cek dengan script apakah library YAZ sudah terinstall dengan baik.

 

GNU/Linux atau varian UNIX

  1. Download source code rilis stable YAZ terbaru.
  2. Download source code rilis PHP YAZ terbaru.
  3. Pastikan compiler GCC, make, libtool dan tools development lainnya sudah terinstall di sistem anda.
  4. Buka console/terminal, ekstrak file tarball YAZ dengan menggunakan perintah tar xvzf yaz-3.0.47.tar.gz dan kemudian masuk dalam direktori hasil ekstraksi YAZ dengan perintah cd yaz-3.0.47.
  5. Jalankan perintah-perintah berikut secara berurutan :
    
    ./configure --prefix=/usr
    make
    sudo make install
    
    
  6. Ekstrak tarball PHP YAZ dengan perintah tar xvzf php-yaz-1.0.14.tar.gz dan kemudian masuk ke direktori hasil ekstraksi dengan perintah cd php-yaz-1.0.14.
  7. Pastikan anda memiliki program phpize, bila tidak silahkan lakukan instalasi melalui perintah sudo apt-get install php-dev untuk distro Debian dan turunannya atau yum install php-dev untuk distro distro turunan Red Hat. Jalankan perintah-perintah berikut secara berurutan :
    
    phpize
    ./configure --with-php-config=/usr/bin/php-config
    make
    sudo make install
    
    
  8. Buka file konfigurasi PHP anda (php.ini) dengan editor teks favorit anda dan tambahkan atau hilangkan tanda ;(titik koma) pada baris yang bertuliskan seperti ini :
    extension=yaz.so
  9. Restart service web server anda dengan menjalankan perintah service apache restart sebagai user ROOT atau kalau tidak bisa coba jalankan perintah /etc/init.d/httpd restart.
  10. Cek dengan script apakah library YAZ sudah terinstall dengan baik.