Paging ala om Google pada JSP

October 22nd, 2008

Mungkin sudah tidak asing lagi bagi Anda yang sering menyelam didunia web dengan istilah Paging. Namun pembuatan paging ini cukup membutuhkan sedikit usaha agar menjadi sangat dinamis dan indah. Setelah iseng-iseng surfing di internet akhirnya ketemu juga tag untuk paging di JSP. Berikut ini aku akan contohkan bagaimana membuat paging ala google.

Silahkan unduh file library pager-taglib.jar dan tag descriptor pager-taglib.tld
Letakan file pager-taglib.jar pada direktori /WEB-INF/lib dan file descriptor pager-taglib.tld pada direktori /WEB-INF
Kemudian pada file konfigurasi web.xml sertakan kode xml berikut:

<web-app>
 
  <taglib>
    <taglib-uri>
      http://jsptags.com/tags/navigation/pager
    </taglib-uri>
    <taglib-location>
      /WEB-INF/pager-taglib.tld
    </taglib-location>
  </taglib>
 
</web-app>

Untuk databasenya silahkan unduh terlebih dahulu disini.

Setelah itu ketikan kode berikut :
Read more…

Java ,

Taglib untuk manipulasi gambar pada JSP

October 21st, 2008

Taglib pada JSP mungkin sudah sering digunakan oleh Anda yang terbiasa dengan pemrograman tersebut. Berikut ini aku akan menjelaskan bagaimana taglib pada JSP digunakan untuk memanipulasi gambar. Jadi Anda tidak usah repot-repot menuliskan kode yang kompleks dan membutuhkan waktu banyak untuk melakukan editing foto ataupun gambar berbasis web.

Disini aku menggunakan jimagetaglib untuk tag manipulasi gambar tersebut. Anda dapat unduh disini , kemudian deploy jimagetaglib-0.5.1.war ke server tomcat Anda, setelah itu jalankan file test.jsp.
Jika server tomcat Anda tidak menyediakan tool untuk deploy, Anda bisa ekstrak file jimagetaglib-0.5.1.war pada sever tomcat kemudian pastikan :

  • File-file class dari jimagetaglib berada pada direktori /WEB-INF/classes
  • File descriptor jit-taglib.tld berada pada pada direktori /WEB-INF
  • Konfigurasi web.xml berada pada direktori /WEB-INF dan sudah seperti dibawah ini :
<web-app>
	<servlet>
	<servlet-name>DrawImageServlet</servlet-name>
	    <servlet-class>
            net.sourceforge.jimagetaglib.servlet.DrawImageServlet
            </servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>DrawImageServlet</servlet-name>
		<url-pattern>/jit</url-pattern>
	</servlet-mapping>
	<taglib>
		<taglib-uri>jit</taglib-uri>
		<taglib-location>/WEB-INF/jit-taglib.tld</taglib-location>
	</taglib>
</web-app>

Restart server tomcat Anda, kemudian jalankan.

Contoh penggunaan tag ini sebagai berikut:

Blur dan Gray filter dengan border = 1:

<jit:image src="/images/Younha.jpg" border="1">
   <jit:filter filter="net.sourceforge.jimagetaglib.filter.BlurFilter" />
   <jit:filter filter="net.sourceforge.jimagetaglib.filter.GrayFilter" />
</jit:image>

Hasil :

Posterize, Sharpen dan Threshold128 filter :

    <jit:image src="/images/Younha.jpg">
	<jit:filter filter="net.sourceforge.jimagetaglib.filter.PosterizeFilter" />
	<jit:filter filter="net.sourceforge.jimagetaglib.filter.SharpenFilter" />
	<jit:filter filter="net.sourceforge.jimagetaglib.filter.Threshold128Filter" />
    </jit:image>

Hasil :

Invert dan Sharpen filter kemudian resize dengan dimensi maksimum = 150 pixel (mempertahankan rasio) :

   <jit:image src="/images/Younha.jpg">
	<jit:filter filter="net.sourceforge.jimagetaglib.filter.InvertFilter" />
	<jit:filter filter="net.sourceforge.jimagetaglib.filter.SharpenFilter" />
	<jit:resize max="150" />
   </jit:image>

Hasil :

border = 1, Croping (x = 80, y = 25, width = 50 and height = 50), kemudian resize dengan dimensi maksimum = 150 pixel (berdasarkan gambar asli) :

    <jit:image src="/images/Younha.jpg" border="1">
	<jit:subimage x="80" y="25" width="50" height="50" />
	<jit:resize max="200" />
    </jit:image>

Hasil :

Contoh lengkap diatas dapat diunduh disini. Untuk mempelajari tag ini lebih lanjut silahkan kunjungi http://jimagetaglib.sourceforge.net/jit-taglib.tld.html

Selain taglib diatas Anda bisa juga menggunakan Image taglib cara penggunaannya bisa dilihat di http://www.servletsuite.com/servlets/imagetag.htm

Untuk memperoleh library ij.jar unduh disini, dan file descriptor taglib120.tld disini.

Java ,

Hore…Mudik…^^V

September 20th, 2008

Akhirnya aku balik kampung juga… :mrgreen: setelah kurang lebih setahun gak balik-balik (untung baru setahun klo 3 tahun bisa jadi bang toyib dah… :mrgreen: :mrgreen: :lol: Wakakakkakakak). By The Way…, aku balik masih dalam suasana perkuliahan, so.., aku bolos seminggu deh…(bandel yach… :lol: hahahaha), Bodo ah…pikirku, yang penting aku bisa balik kampung (udah kangen neh ama ortu :mrgreen: hehehehe).

Keberangkatanku tanggal 19 Sep kemaren dari bandara Soekarno-Hatta pukul 06.00WIB pagi, tapi pesawat lepas landas pukul 06.30WIB biasalah pesawatnya ngantri lepas landas ( :mrgreen: wakakakak). Sesampai di Pontianak kurang lebih pukul 07.50WIB + pengambilan barang jadinya pukul 08.15WIB deh aku baru keluar dari pintu kedatangan penumpang. Aku langsung naik taxi menuju rumah pamanku, hmmm…, fresh!!!! itulah pikiranku saat perjalanan ke rumah pamanku, coz…, Pontianak tidak sesumpek Depok, gak macet, trus bisa cuci mata (ce nya imut2 :mrgreen: hehehe) n’ etc. Sesampai di tempat tujuan aku langsung istirahat untuk melanjutkan perjalanan pada tanggal 21 Sep ke Ketapang kampung halamanku. Jadi di Pontianak aku punya waktu 2 hari untuk refreshing.

Curhat ,

Chating gaya baru…(^_^)Y

September 10th, 2008

Seperti biasa malam ini aku asik didepan komputer sambil mendengar lantunan musik-musik japan favoritku, tiba-tiba pada aplikasi YM ku ada request untuk dilist id nya di akun YM ku. Hmmm…, ternyata rekanku Lukman , tanpa berpikir panjang langsung aku setujui requestnya. Lalu ku sapa dia lewat YM, tapi aneh nya tiap ketikanku tidak terbaca di YM nya :( .

Tapi aku masih bisa membaca pesan yang dia kirim. Hmmm…, untungnya rekanku lukman inisiatif untuk mengajak chat voice. Wakakakakakak :mrgreen: …, samimawaon ternyata pesan suara lukman tidak bisa terdengar olehku, tapi dia masih bisa mendengar pesan suara dariku. Hahahaha…, akhirnya kita melakukan metode baru dalam chatting dengan gaya komunikasi si tuli dan si bisu.

Dimana tiap pesan ketikan dari lukman aku balas dengan pesan suara. Sungguh aneh tapi nyata wakakakakakak :mrgreen:, sudah bertahun-tahun aku chatting baru kali ini aku melakukan chatting aneh kayak gini.  :mrgreen:

Curhat

Mengubah IP address menjadi nama negara + benderanya

September 2nd, 2008

Beberapa hari yang lalu, aku iseng mencoba-coba bagaimana cara mengubah sebuah IP Address menjadi sebuah nama negara beserta benderanya. Hehehe… :wink: , akhirnya ketemu juga caranya.

Ternyata untuk mengubah IP address menjadi nama negara, IP address harus diubah menjadi IP number yang memang sudah terdaftar dan menjadi standar internasional, untuk memperoleh database IP number dapat diunduh disini (SQL format) atau disini (CSV format). Untuk gambar bendera negara dapat diunduh disini. Adapun rumusnya sebagai berikut :

IP Address (IPv4) terdiri dari 4 sub-blok (xxx.xxx.xxx.xxx) , disini kita asumsikan tiap sub-blok diwakilkan oleh variabel w, x, y dan z sehingga menjadi w.x.y.z

Maka rumusnya :

IP Number = (256^3)*w + (256^2)*x + 256*y + z
= 16777216*w + 65536*x + 256*y + z

Terlihat diatas bahwa tiap-tiap sub-blok merupakan hasil perkalian dengan perpangkatan bilangan 256. Sehingga jika memperoleh

kembali nilai dari w, x, y dan z sebagai berikut:

w = int ( IP Number / 16777216 ) % 256
x = int ( IP Number / 65536 ) % 256
y = int ( IP Number / 256 ) % 256
z = int ( IP Number ) % 256

Nilai dari IP Number yang telah didapat dari rumus diatas, dicocokkan dengan database ip number. Berikut contoh perintah SQL nya:

SELECT [kolom_nama_negara] FROM [tabel_ip_number] WHERE [ip_yang_dicari] BETWEEN [ip_number_awal] AND [ip_number_akhir]

Baiklah…,aku akan berikan implementasi dari rumus diatas, berikut ini sourcecodenya :

Read more…

PHP ,

Cara menggunakan PHPMailer

September 2nd, 2008

Beberapa hari yang lalu aku mencoba membuat laporan tentang visitor yang ingin mencoba masuk ke halaman login admin dikirim langsung ke emailku sebagai laporan penyusup.

Pertama kali aku menggunakan fungsi mail() pada PHP ternyata setelah laporan terkirim ke email ternyata sender(pengirim) tidak terdefinisi alias tidak dikenali dan alamat email pengirim berupa
Nobody <nobody@boar.unixbsd.info>.

Padahal pengirim sudah aku definisikan namaku <alamat_emailku> pada bagian parameter header pada fungsi mail() tersebut. Akhirnya aku tanyakan masalah ini ke bagian support hosting dan mereka memberikan solusi agar menggunakan phpmailer.

Setelah aku searching bersama mbah google, akhirnya ketemu juga script phpmailer yang bisa diunduh disini(untuk PHP4) dan disini(untuk PHP5/6). PHPMailer menyediakan fitur yang cukup lengkap untuk menangani pengiriman data via email. Tanpa panjang lebar lagi berikut contoh sederhananya:

<?php
require('class.phpmailer.php');
$mail = new PHPMailer();
 
$mail->From = 'info@domainku.com'; //email pengirim
$mail->FromName = 'domainku'; //nama pengirim
$mail->Subject = 'Laporan'; //subjek email
$mail->Host = 'smtp.site.com'; //jika ingin menggunakan domain sendiri, masukkan nilai 'localhost'
$mail->Mailer = 'smtp'; //Protokol email yang digunakan
 
$tujuan = 'emailku@domain.com'; //email tujuan
$nama = 'namaku'; //nama tujuan
 
$data = '<strong>Ini merupakan percobaan pengiriman email menggunakan phpmailer</strong><br>';
$data .= 'Terima kasih<br>';
$data .= 'Dari domainku.com';
 
$mail->IsHTML(true); //Set bagian ini jika ingin mengirim HTML email
 
$mail->Body = $data;
$mail->AddAddress($tujuan, $nama);
 
if(!$mail->Send()){
	echo 'Email gagal terkirim';
	exit();
}
 
echo '<strong>Email terkirim</strong>';
?>

Untuk contoh lain yang bisa menjadi referensi bisa kunjungi : http://phpmailer.codeworxtech.com/index.php?pg=examples

Selamat mencoba :wink:

PHP ,

Upload Error - HTTP Error, ketika upload file di wordpress 2.5

August 26th, 2008

Waduh…!!!!, Aku sempat kaget ketika progress bar AJAX upload file wordpress ku ini ternyata muncul pesan error “HTTP Error” trus di progress bar nya juga muncul “Dismiss” :( , Hmmm…., pikirku tumben neh koq kayak gini, padahal 1 bulan yang lalu lancar-lancar aja aku upload file, bahkan sampe 1 MB pun bisa masuk ke webserver. Apa mungkin register global nya aku set ke mode off, tapi secara logika gak mungkin.

Akhirnya aku tanyakan saja ke mbahku yang setia selalu menolongku, maksudku mbah Google, wakakakakak :)

Akhirnya ketemu juga solusinya, ternyata dibagian file .htaccess yang terletak pada direktori root webserver yang bermasalah, sehingga harus ditambah kode berikut setelah bagian “END WordPress” pada file .htaccess tersebut :

<IfModule mod_security.c>
<Files async-upload.php>
SecFilterEngine Off
SecFilterScanPOST Off
</Files>
</IfModule>

Setelah aku tambahkan kode diatas, ternyata upload file bisa dilakukan dengan lancar, fiuuhh…, senangnya :)

Sumber : klik disini

Curhat ,

Import CSV File Into MySQL Database Using PHP

August 18th, 2008

Akhirnya aku punya waktu luang juga untuk nge-blog lagi, Hmm…, bagi Anda yang pernah entry data sampai ribuan data mungkin sangat melelahkan jika diinput satu persatu melalui sebuah form inputan. Apalagi data yang telah diinput pada dokumen excel atau sejenisnya diinput lagi ke form inputan tersebut, wew… kerja dua kali yach.., cape dech…!!!.

Kurang lebih 3 minggu yang lalu aku menemukan cara agar data pada dokumen spreadsheet yang diubah terlebih dahulu menjadi format file CSV (Comma Separated Value) kemudian dapat diimport langsung ke database mysql. Mungkin diinternet sudah banyak sourcecode bertebaran untuk proses import file CSV (Yang sudah tau jangan protes, hehehe…). Namun disini aku akan memberikan contoh kode dengan pendekatan konsep dari aku sendiri. Karena sourcecode nya banyak jadi bisa diunduh di http://www.edogeek.com/wp-posting/csv/csv.zip

Setelah Anda unduh ekstrak file tersebut ke webserver Anda dan pastikan strukutur direktori dan file dari file kompresi csv.zip tersebut sbb:

csv

   |__ images
   |__tmp
   |__style.css
   |__class.csv.php
   |__config.php
   |__hasil.php
   |__index.php
   |__mhs.csv
   |__mahasiswa.sql

Pada contoh kali ini aku menggunakan pendekatan OOP, jika webserver Anda masih belum mendukung untuk pendekatan ini, silahkan diubah saja ke bentuk prosedural.

Pertama-tama import terlebih dahulu file mahasiswa.sql ke database MySQL Anda, kemudian pastikan nilai variabel pada file config.php sudah sesuai dengan konfigurasi database Anda, baik berupa nama host, username, password dan nama database. File mhs.csv merupakan file sampel yang akan Anda upload. Setelah diupload maka akan muncul report seperti output dibawah ini :

outputcsv

Selamat mencoba… :)

Silahkan berikan komentar bagi Anda yang telah mencoba atau yang menemukan cara yang lebih efisien dan efektif.

PHP ,

I think…, my programming skill must be improved infinitely

July 30th, 2008

i-labSiang itu tepatnya tanggal 29 Juli 2008 jam 14.30 WIB, aku bersama rekan kerja lab beserta para staff sudah siap untuk berdiskusi tentang pengembangan aplikasi e-learning dengan pihak pengembangan utama (mini lab) aplikasi tersebut untuk kampusku khususnya untuk ruang lingkup lab dimana aku bekerja. Sebenarnya aplikasi e-learning tersebut sebenarnya sudah dibangun oleh pihak mini lab dan aku merasa sedikit kecewa karena aplikasi e-learning yang sudah aku bangun selama 3 minggu bakalan tidak digunakan :( .

Namun walaupun begitu pihak mini lab ingin mengetahui alur kerja sistem yang telah aku bangun tersebut. Akhirnya aku diminta untuk mempresentasikan aplikasi tersebut dan aku paparkan cara kerja sistemnya dan pihak mini lab pun terutama programmernya mengajak untuk sharing alur kerja sistemnya. Wow.., mereka sangat berkompeten dalam bidangnya dan sangat efisien dalam hal membangun sistem. Apalagi setelah mereka juga mempresentasikan aplikasi yang mereka bangun. Sungguh luar biasa kompleks namun efisien, Walaupun sebagian rekanku mengatakan untuk urusan interface aku masih menang, tapi menurutku aku masih kurang efisien, dan aku sempat down juga saat mereka show off.

Namun, aku masih punya harapan, karena aplikasi yang aku bangun masih akan digunakan untuk kampus kalimalang, syukurlah…, jadi aku tidak sia-sia membangun aplikasi tersebut. Disamping itu aku harus terus meningkatkan skill programming dari sisi efisiensi metode (mumpung masih muda :) , hehehe..). Hmm…, sungguh berat untuk menjadi seorang dewa programming ( wakakakak…, gila bener yach ), diatas langit masih ada langit

Curhat

Prevent Refresh on Countdown timer using Javascript

July 26th, 2008

Fiuuhh…, akhirnya aku bisa bernafas lega setelah menemukan cara efisien mencegah pengulangan kembali pada countdown timer untuk aplikasi I-Lab (Interaktif Lab) untuk salah satu laboratorium Akuntansi di kampusku. Aku menggunakan cookies untuk mengatasi hal tersebut. Sebelumnya aku menggunakan AJAX(Asynchronous Javascript & XML) dengan memanfaatkan session pada serverside (PHP), namun cara ini sangat berpotensi membuat server down dikarenakan request time yang hampir tanpa jeda, karena untuk request & respon ke serverside aku set menjadi 1000ms. Bayangkan saja kalau aplikasi ini diakses oleh 50-100 mahasiswa dalam waktu yang bersamaan , wooww…, pasti down!!!!

Seharian aku mencari bagaimana cara mengatasi hal tersebut dan ternyata aku berhasil. Dengan memanfaatkan cookies pada sisi clientside (javascript) saja. Walaupun pada awalnya harus diset terlebih dahulu pada sisi serverside (PHP) namun hal tersbut hanya satu kali saja dilakukan.

Jika ingin melihat outputnya bisa klik disini

Aku akan kasih code nya :

Pertama-tama kita bikin terlebih dahulu file index.htm

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<html>
<head>
<title>Mulai</title>
<meta http-equiv=”Content-Type” content=”text/html; charset=iso-8859-1>
<script type=”text/javascript”>
function mulai(){
top.location=”set.php;
}
</script>
</head>
 
<body>
<input type=”submit” name=”Submit” value=”Mulai” onClick=”mulai();>
</body>
</html>

Setelah itu kita bikin set.php yang akan digunakan untuk men-set awal cookie dan memberikan nilai awal waktu untuk timer. Untuk contoh disini aku beri nilai selama 10 menit.

1
2
3
4
5
<?
$set="00:10:00";
setcookie('tm',$set,(time()+3600)*24);
header("location:timer.php");
?>

Read more…

Javascript ,