Archive

Archive for December 10th, 2007

kata ajaib aysar

December 10th, 2007 Administrator No comments

Assalamu’alaykum warahmatullahi wabarakatuh

waaaah kangen bgt mo nulis di blog..
uitsss padahal lagi busy bgt, gimana sih kok mlaha ngeblog?
huheuhehheuhue

mas aysar skrg sudah bisa ngomong :
1. AYAAAAAAH. < --- call his father
2. IKAAAAAAA. < -- call his mom... what's? please deh ;d gak ada yg ngajarin heheheh ckckc pinter nih anak..
3. MAMAM / MAEM < -- tandanya kalo ada orang yg maem or bawa piring
4. HUHAH < --reaksinya kalo ada dia lagi nyamperin orang bawa piring dan orang itu bilang "pedes mas" .... bilang HUHAH sambil mringis n nonton tv lagi :D
5. IYALAAAH. < -- gak tahu pokoknya kalo diajak ngomong n tandanya dia setuju pasti ngomong "iyalaaah"....
6. MUACH < -- sambil kasih kissbye kalo ada yg bilang "bye" or "dadaaa"
7. HALLOOO < -- sambil megang handphone :)
8. YUDAH KEYANG < --- sudah kenyang, kalo udha gak mau disuapin lagi
dan beberapa bahasa bayi lain yg belum jelas, hihiihii…….

btw, skrg juga sudah suka loncat2 :D kalo naek kuda2an selalu ngebut :D upss harus selalu diawasin,,,,,:)

hem itu ajah dulu berita dari mas aysar ya
kalo dari bundanya?? hehhehe rumah kayak gudang kata aysar :D
banyak barang yg ngantri untuk disayang2 alias disulam …..
fiuh.. doakan bunbun dapat tukang sulam lebih banyak ya mas
biar rumah kita gak kayak gudang
hehheheheh

Assalamu’alaykum warahmatullahi wabarakatuh
Ika Nursila Dewi
[Bismillah, Mudahkanlah Ya Alloh.....]

Read original post at http://feeds.feedburner.com/~r/bundaAysar/~3/219211525/kata-ajaib-aysar.html

Categories: Alumnus Blog Tags:

Saat harus berserah diri

December 10th, 2007 Administrator No comments

Image Hosted by ImageShack.us
Ada kalanya kita dihadapkan pada suatu kondisi di mana kita tidak bisa memilih di antara dua atau bahkan lebih. Kita tidak tahu mana yang terbaik untuk kita karena semuanya masih benar-benar samar. Jika sudah dihadapkan pada keadaan seperti itu aku biasanya hanya bisa pasrah, berserah diri pada Allah, hanya mampu untuk berdoa dengan semua usaha yang telah terlewati. Aku tidak berdoa untuk meminta diberikan kondisi A atau lebih diberikan pada kondisi B, aku hanya bisa meminta “Ya Allah, berikanlah yang terbaik untukku, keluargaku, dan orang-orang yang menyayangiku.”
Jika sudah seperti itu, rasanya lega, aku siap melangkah dengan ketetapan apapun kelak yang akan diberikan Allah padaku karena aku yakin Dia pasti telah memilihkan jalan yang terbaik untukku. I wish …

Read original post at http://noteverend.blogspot.com/2007/12/saat-harus-berserah-diri.html

Categories: Alumnus Blog Tags:

Cake Cornet

December 10th, 2007 Administrator No comments

Minggu sore, pengen bikinin cemilan Bapak.
Beliau suka cake dan roti2an. Tapi berhub gak boleh manis2 … saya bikinin cake yang gurih aja. Seperti biasa resep nyontoh di sedap sekejap pemula. Gampang dan cepet bgt.
Setelah dimodif2 dikit .. begini penampakannya.

Cake Cornet Bahan :- 175 gr margarin- 100 gr tepung gula- 4 butir telur- 200 gr terigu protein sedang- 20 gr susu bubuk- 50 gr

Read original post at dianekawhy blog

Categories: Alumnus Blog Tags:

Happy Anniversary .. Dear

December 10th, 2007 Administrator No comments

Setahun itu cepet banget ya …Tau2 aja udah Desember lagi … Suami tercinta Ultah.

Selamat Ulang Tahun ya Mas …
Semoga Mendapatkan usia yang barokah, menjadi pribadi, imam, dan Bapak yang semakin baik dari hari ke hari … Amiiin

Little Surprise ya, pas Ultah Mas kemarin. Saya bikin kue ultah for the first time. Masih blepetan banget … hehe. Cake decorating untuk pemula. Masih kriting …

Read original post at dianekawhy blog

Categories: Alumnus Blog Tags:

Pengenalan ADOdb 1.1

December 10th, 2007 Administrator No comments

Pengenalan ADOdb 1.1 Latar Belakang

Sebelum memulai penjelasan tentang ADOdb, permulaan bab ini akan menjelaskan latar belakang mengapa ADOdb diciptakan. Selama ini mungkin Anda telah berpengalaman membuat aplikasi database dengan PHP, di mana Anda mungkin telah hafal fungsi-fungsi database untuk MySQL, atau fungsi PHP untuk database yang sering Anda gunakan. Tetapi apakah Anda menyadari bahwa apabila aplikasi database Anda yang telah menjadi produk jadi seringkali hanya dapat menggunakan database tertentu saja? Inilah yang menjadi landasan diciptakannya teknologi abstraksi layer database. Apabila aplikasi database yang Anda buat ditujukan untuk MySQL maka akan mengalami kesulitan bila aplikasi database tersebut karena sesuatu hal terpaksa harus menggunakan database lain, seperti PostgreSQL. Apakah yang dapat dilakukan? Anda harus mengganti semua fungsi database spesifik untuk MySQL dengan fungsi database untuk PostgreSQL. Tentu hal ini akan menjadi masalah apabila aplikasi yang telah dibuat merupakan aplikasi yang kompleks. Permasalahan ini dapat teratasi apabila aplikasi kita menambahkan layer abstraksi database.

Layer Abstraksi database dapat ditambahkan dengan menggunakan API atau library /pustaka tertentu. Library atau API ini didesain untuk dapat bekerja dengan berbagai macam database server dengan sintaks atau fungsi yang sama. Perbedaan yang ada hanya pada konfigurasi saja sehingga apabila terjadi perubahan database yang digunakan, kita hanya perlu menyesuaikan konfigurasi untuk database pada aplikasi. Tentu menyenangkan, bila kita menghasilkan aplikasi database yang portabel dalam arti dapat berjalan di berbagai macam database tanpa menulis ulang kode program yang ada. Ini meningkatkan nilai dan kualitas program aplikasi yang telah dibuat.

Ada banyak pilihan untuk melakukan abstraksi database karena kita dapat menggunakan beberapa library atau class yang sudah ada, dua di antaranya adalah Pear::DB, PHPLib dan ADOdb.

1.2 Mengenal ADOdb

ADOdb merupakan kependekan dari Active Data Objects Data Base. ADOdb merupakan sekelompok pustaka atau class-class yang melakukan standarisasi untuk fungsi database dengan pemrograman PHP. ADOdb merupakan salah satu pustaka yang dapat kita manfaatkan sebagai layer abstraksi database. Fungsi utamanya adalah untuk menyembunyikan perbedaan database dan memberikan method sederhana untuk melakukan kueri pada berbagai macam database dengan perubahan kode seminimal mungkin.

ADOdb terkenal karena kecepatannya, kemudahan penggunaannya serta kelengkapan fasilitasnya.

Informasi ADOdb selengkapnya dapat diperoleh di:

http://php.weblogs.com/adodb

1.3 Kelebihan ADOdb

Kelebihan ADOdb adalah:

1. Mudah dimengerti oleh programmer Windows karena sintaksnya hampir sama persis dengan Microsoft ADO

2. Cepat, juga memiliki ekstension native untuk mempercepat proses

3. Telah terbukti handal dalam berbagai aplikasi nyata

4. Memiliki fungsi atau pustaka yang lengkap

5. Menyediakan kode pendukung untuk menangani insert dan update yang dapat diadaptasi ke berbagai database secara cepat. method disediakan untuk penanganan tanggal, penggabungan string dan karakter tanda petik string untuk berbagai database

6. Mudah untuk digunakan pada database lain karena kode spesifik dari database tertentu diletakkan pada fungsi tersendiri sehingga Anda tidak perlu melakukan perubahan pada logik utama dari class.

7. Mendukung banyak sekali database server

8. Performance Monitoring dan tuning library

  1. Paging Library
  2. Library untuk Manajemen session berbasis database

1.4 Aplikasi nyata yang menggunakan ADOdb

ADOdb telah terbukti stabil, cepat dan populer karena telah banyak aplikasi PHP di dunia yang memanfaatkan ADOdb.

Aplikasi yang menggunakan ADOb antara lain:

1. PHPLens

http:// www.phplens.com

Merupakan komponen data grid komersial yang mengizinkan baik desainer web dan programmer profesional untuk membangun dan memelihara aplikasi database pada Web dengan mudah. Dibuat oleh pembuat ADOdb.

2. ECreasol

http://www.ecreasol.com

Content Management System dari Switzerland yang dibangun dengan PHP dan ADOdb.

3. PostNuke

http://www.postnuke.com

Open Source Portal Content Management System/Weblog yang sangat terkenal, mirip PHPNuke.

4. NOLA

http://nola.noguska.com

Aplikasi akuntansi, inventory dan aplikasi job tracking berbasis web, berlisensi GPL dan dibuat oleh Noguska

5. DBForm

http://dbform.sourceforge.net

Library atau framework yang memudahkan kita dalam bekerja dengan web form dan untuk proses update database yang umum serta mendayagunakan class dalam bekerja dengan tabel database.

6. Gallery

http://www.menalto.com/projects/gallery/modules.php?op=modload&name=News&file=index

Aplikasi galeri/album foto yang canggih

1.5 Perbandingan Pear DB dengan ADOdb 1.5.1 Perbandingan Fasilitas/API

Feature

PEAR DB

ADOdb

dukungan Data Source Name (DSN)

ya

ya, bila mode kompatibilitas dengan Pear diaktifkan

Error Handling

PEAR

Module penanganan error yang dapat dikembangkan. Dukungan terintegrasi untuk 3 penanganan error:

- PEAR style
– menggunakan error_log
– Ditampilkan ke layar

Koneksi ke database

DB::Connect()

ADOConnection::Connect()
ADOConnection::PConnect()
ADOConnection::NConnect()

Mengikuti konvensi standar koneksi dari PHP

Diskonek dari database

DB::Disconnect()

ADOConnection::Close()

Mengirimkan perintah SQL

DB::Query()

ADOConnection::Execute()

Identifikasi peringatan

DB::isWarning()

Peringatan dikirim ke fungsi ADOConnection::outp(), tetapi tidak dikirim ke Error Handler. Perilaku default dari outp() adalah mengeluarkan ke layar. Hal ini dapat dioverridden.

Identifikasi Error

DB::isError()

Error dikirimkan ke error handler

Quote strings

DB::quote()

ADOConnection::qstr()

Mendapatkan informasi dukungan backend untuk fasilitas tertentu

DB::provide()

Menyediakan properti dengan nilai true atau false pada objek ADOConnection. Biasanya dimulai dengan $has*.

Auto-insert atau update record

DB::autoPrepare()

ADOConnection::GetInsertSQL() atau
ADOConnection::GetUpdateSQL()

Menjalankan kueri prepare

DB::execute()

ADOConnection::Execute()

Menjalankan sejumlah kueri prepare berulangkali

DB::executeMultiple()

Memanggil ADOConnection::Execute() dalam loop for

Menghasilkan kueri limit ( eq. SELECT …

LIMIT … )

DB::limitQuery()

ADOConnection::SelectLimit()

Mendapatkan kolom pertama, baris pertama dari kueri

DB::getOne()

ADOConnection::GetOne()

Mendapatkan baris pertama dari kueri

DB::getRow()

ADOConnection::GetRow()

Mendapatkan kolom tunggal dari kueri dari array

DB::getCol()

ADOConnection::GetCol()

Mendapatkan result-set sebagai associative array menggunakan kolom pertama sebagai key

DB::getAssoc()

ADOConnection::GetAssoc()

Mengembalikan result set sebagai array 2 dimensi

DB::getAll()

ADOConnection::getAll() atau ADOConnection::GetArray()

Baris yang berubah dari insert/delete/update

DB::affectedRows()

ADOConnection::Affected_Rows()

Determine whether rows are fetched as indexed atau associative arrays, atau as objects

DB::setFetchMode()

Set the $ADODB_FETCH_MODE variable for indexed atau associative arrays. For fetching rows as objects, use ADOResultSet::FetchObject().

Get the next number in a sequence

DB::nextID()

ADOConnection::GenID() atau
ADOConnection::NextID()

Create a sequence

DB::createSequence()

Otomatis dibuat.

Tetapi pada ADOdb 2.60 Anda dapat membuat secara menual menggunakan:
ADOConnection::CreateSequence()

Drop a sequence

DB::dropSequence()

Tersedia pada ADOdb 2.60
ADOConnection::DropSequence()

Mendapatkan info DB internal

DB::getListOf()

tersedia sebagai properti ADOConnection

Mendapatkan baris berikutnya

DB_Result::fetchRow()

ADORecordSet::FetchRow() atau
ADORecordSet::MoveNext()

Mendapatkan baris ke variabel yang sudah ada.

Fetch the row into existing variable

DB_Result::fetchInto()

ADORecordSet::FetchRow()

Mendapatkan jumlah kolom yang didapat

DB_Result::numCols()

ADORecordSet::FieldCount()

Mendapatkan jumlah baris yang didapat

DB_Result::numRows()

ADORecordSet::RecordCount()

Mendapatkan result berikutnya bila batch kueri dijalankan

DB_Result::nextResult()

ADORecordSet::NextRecordSet()

Mendapatkan info tentang resultset

DB_Result::tableInfo()

ADORecordSet::FetchField()

Error object

DB_Error

Pear menyediakan mekanisme meta-error di mana semua error dipetakan ke daftar error virtual. Masalah dengan pendekatan ini adalah pesan error telah disederhanakan sehingga proses debug penyebab error sebenarnya lebih sulit.

Objek PEAR error didukung bila emulasi PEAR diaktifkan.

Secara umum, debugging pada ADOdb lebih mudah karena proeperti ADOConnection::debug. Apabila true, maka semua perintah SQL, pesan debug dan error dikeluarkan ke output standar. PEAR DB tidak memilikinya, sehingga Anda harus memiliki kerangkan debugging sendiri.

Objek warning

DB_Warning

Tidak diperlukan

1.5.2 Perbandingan kecepatan

Penulis menampilkan pengukuran dan perbandingan kecepatan ADOdb dengan teknologi terkait pada bagian ini. Sumber perbandingan kecepatan ini berasal dari

http://phplens.com/lens/adodb/

Perbandingan Kecepatan pertama

Anda dapat melihat pada perbandingan kecepatan antara fungsi MySQL native, ADOdb dengan ekstension native, dbx, ADOdb biasan, PHPlib, MDB, PEAR DB serta M’base.

Perbandingan kecepatan ini dilakukan dengan mendapatkan 82 baris dari tabel products sebanyak 200 kali. Tes diulang 5 kali. Waktu koneksi tidak diikutkan dari perbandingan kecepatan. Nilai yang lebih rendah lebih baik, semua angka di sini adalah dalam hitungan detik.

Perhatikan tabel hasil perbandingan kecepatan berikut:

MySQL 1.12 1.12 1.17 1.15 1.14

ADOdbext 1.30 1.31 1.29 1.30 1.32

dbx ext 1.35 1.38 1.41 1.37 1.36 (index only)

ADOdb 1.43 1.47 1.47 1.44 1.45

dbx ext 1.53 1.52 1.52 1.52 1.55 (index/assoc/info)

PhpLib 1.53 1.62 1.64 1.64 1.57

MDB 1.77 1.75 1.75 1.76 1.73

PEAR DB 2.91 2.90 2.85 2.83 2.84 (fetchInto)

PEAR DB 3.14 3.13 3.22 3.12 3.16 (fetchRow)

M’base 4.51 4.55 4.46 4.54 4.52 (numeric indexes)

M’base 4.99 4.72 4.71 4.71 4.72 (assoc indexes)

Rata-Rata Overhead

MySQL 1.14 -

ADOdbext 1.30 14%

dbx 1.37 20% (index only)

ADOdb
1.45 27%

dbx 1.53 34% (index/assoc/info)

PhpLib 1.60 40%

MDB 1.75 54%

PEAR DB 2.87 152% (fetchInto)

PEAR DB 3.15 176% (fetchRow)

M’base 2.52 296% (numeric cols)

M’base 4.77 318% (assoc cols)

Perbandingan Kecepatan dua

Perbandingan Kecepatan pertama adalah perbandingan sintetis yang tidak mengukur kecepatan secara nyata. Perbandingan kecepatan kedua diusahakan lebih realistik, dengan mengukur request HTTP / detik. Pada tes ini, kita memilih dan menampilkan 82 baris dari tabel products, sekali tiap request halaman.

Perbandingan Kecepatan ini menggunakan HTTP benchmarking tool, M’soft Web App Stress Tool (WAST). Pengukuran ini juga dengan Turk MMCache Accelarator 2.3.23 terinstall dan tanpa terinstall.

Dua tes dijalankan dan dirata-rata untuk tiap tes. Nilai yang lebih tinggi akan lebih baik. Semua pengukurang dalam halaman / detik.

Dengan Tanpa

Accelerator Accelerator

MySQL 83.53 81.35

ADOdb 61.19 21.33

PEAR DB 52.85 25.26

Informasi detail mengenai perbandingan dan pengukuran kecepatan ini dapat dilihat di url:

http://phplens.com/lens/adodb/#2

1.6 Database yang didukung oleh ADOdb

Tentu Anda perlu mengerti apa sajakah database yang didukung ADOdb sehingga Anda dapat memutuskan untuk menggunakan ADOdb atau tidak sesuai kebutuhan aplikasi.

Database yang didukung oleh ADOdb antara lain adalah:

1. MySQL

2. PostgreSQL

3. Oracle

4. Microsoft SQL Server

5. Sybase

6. Sybase SQL Anywhere

7. Informix

8. FrontBase

9. SQLite

10. Interbase (Firebird and Borland variants)

11. Foxpro

12. Access

13. DB2

14. SAP DB

15. ODBC

Dengan melihat daftar tersebut, Anda dapat menyimpulkan bahwa ADOdb merupakan salah satu library yang dapat menjadi pilihan utama untuk layer abstraksi database dari aplikasi database berbasis PHP.

Read original post at b2ksadja blog

Categories: Alumnus Blog Tags:

perlukah EJB ?

December 10th, 2007 Administrator No comments

Ini adalah ulasan dari seorang java developer tentang kefanatikan terhadap EJB dan realitasnya.

Saya tidak mengerti mengapa masih ada orang terobsesi dengan teknologi EJB ???

In my humble opinion, kecuali kita adalah aplha geek programmer, atau kita tergantung IDE yang canggih, percayalah ….. membangun EJB adalah painfull. Dan sebagai J2EE programmer (kecuali kita orang marketing) pastilah kita merasakan betapa complexnya metadata EJB, kita harus menyentuh 4 file untuk membangun satu component ejb (Remote:Local:Bean:Metadata). Lalu apakah yang akan kita dapatkan ? EJB menjanjikan tradeoff yang sebanding ?

EJB adalah teknologi yang powerfull kita mengakuinya dan juga semua orang yang terlibat.Saya termasuk salah seorang (kalau boleh dibilang) dulunya EJB Fanatik. Bahkan untuk membangun aplikasi J2EE yang sederhana saya gunakan EJB. Tetapi seiring dengan berjalannya waktu, applikasi yang dibangun sangatlah sulit diimplementasikan menggunakan EJB. Kita tahu betapa terlalu sederhananya CMP-QL, betapa borosnya BMP, betapa tidak bermanfaatnya SFSB (10 Fallacies Of Distributed Computing) dan hanya SLSB yang umumnya sering kita manfaatkan. Sehingga tidak jarang orang mengorbankan WORA karena keterbatasan EJB dengan spesifikasi dan teknologi supplement dari Vendor.

Contoh sederhananya, bagaimana kita bisa melakukan mekanisme paging 1000000 row jika menggunakan CMP ? kecuali kita menggunakan DesignPattern ValueListHandler yang notabene tanpa menyentuh EJB CMP sama sekali. (Jika ada programmer yang membuat program untuk melakukan MASS CREATE /READE /UPDATE /DELETE menggunakan EJB CMP/BMP maka salahkanlah kebodohan Architectnya yang sudah termakan orang marketing). EJB adalah salah satu alasan yang membuat J2EE tercoreng ,… sama seperti Applet menghancurkan nama besar Java.

Lalu bagaimana solusinya, … tiap vendor memiliki spesifikasi yang berbeda2. JBoss-QL tidak dapat dimanfaatkan dalam web logic. Fitur web logic tidak dapat di implementasikan kedalam Web Sphere. Apa yang dijanjikan java WORA … tidak dapat diimplementasikan dalam dunia nyata. Sehingga J2EE developer sangat tergantung pada vendor, ada yang sangat tergantung web logic, web sphere, sun appServer,oracle appServer bahkan JBoss.

EJB Sangat powerfull apakah seperti demikian ?…. sebagian orang menganggapnya steik diantara burger. Seperti roket dibandingkan pesawat, seperti limo daripada sedan.

Anggapan orang yang fanatik dengan EJB mengatakan distributed object adalah dasar Distributed Computing. Jika kita memang membutuhkan scalable serta distributed application yang vendor denpendent, java oriented, dan performance neglected EJB adalah solusi yang tepat. Apa yang saya maksud adalah infamous sun example Java PetStore. Kalau boleh dibilang PetStore adalah over engineered technology yang gagal.

Lalu apakah EJB Memang begitu powerfull sebagai distributed object. Apakah dengan meng-clustering EJB maka performansi meningkat ? Jika anda adalah programmer dan tidak termakan marketing sesungguhnya dengan mengcluster EJB dan berharap banyak pada remote interface hanyalah hitungan2 dalam teori.

Jika kita berharap terlalu banyak pada EJB sebagai distributed object dengan harapan scalable …. sebenarnya dapat saja terjadi SEANDAINYA 10 Fallacies Of Distributed Computing sudah tidak berlaku. Poin dari 10 fallacies of distributed computing (Effective Enterprise Java:Ted Neward)

1. The network is reliable

2. Latency is zero

3. Bandwidth is infinite

4. The network is secure

5. Topology doesn’t change

6. There is one administrator

7. Transport cost is zero

8. The network is homogeneous

9. The system is monolithic

10.The system is finished

Berharap banyak pada remote EJB sebagai distributed object akan berhadapan dengan enterprise Fallacies. Tradeoffnya,.. performansi, resource, effective dan efficiensi menjadi terbengkalai. Padahal tujuan utamanya EJB adalah memudahkan mengembangkan Enterprise Scale System. Ternyata semuanya itu adalah keliru.

Bahkan Sun Microsystem secara tidak langsung memohon maaf kepada EJB Developer dengan mengeluarkan spesifikasi Local Interface pada EJB. Dimana distributed object yang sangat diagung2kan oleh EJB seandainya mereka harus mengeluarkan spesifikasi Local Object EJB,… dimana lagi distributed object sebagai dasar Enterprise jika harus menggunakan Local Object.

Untuk apa “SessionFacade” jika memang distributed object dengan mengexpose entity secara remote memudahkan jika alasannya sekedar memindahkan business logic di ejb container.

Untuk apa “TransferObject” seandainya attributenya sama seperti Entity Beans

Untuk apa “ValueListHandler” diciptakan seandainya Entity Beans memang Enterprise Entity.

………. tidakkah kita sadari ini ? Teknologi dan DesignPattern yang ditawarkan sun secara tidak langsung menyarankan kita untuk meminimalisir penggunaan remote ejb,.. kemampuan sesungguhnya EJB dengan remote interface.

Hemat saya, sebagai sesama developer, ilmu selalu berkembang … dan jangan sampai kita tidak mengikutinya. Buka mata, telinga dan hati. Jangan takut menghadapi perubahan, … jika pernah mengikuti seminar “Who moved my cheese” kita sebagai programmer bagaikan tikus yang harus siap menghadapi perubahan, ejb 2 adalah masa lalu. Sekarang kita berharap pada EJB 3. Tetapi selagi menunggu tidak ada salahnya mempelajari teknologi yang lain, yang menjanjikan.

Semoga email ini tidak memacu flame. Dan saya tidak tertarik untuk diskusi berkepanjangan, mohon maaf jika ada reply tidak akan saya “entertain”. Tetapi saya bertanggung jawab atas setiap kalimat yang saya tuliskan. Ini sekedar bahan renungan saja.

Penulis:
Ahmad Arif Rachim

Read original post at b2ksadja blog

Categories: Alumnus Blog Tags:

Membuat scheduling task dengan java (Scheduling a recurring task) menggunkan lib j-schedule

December 10th, 2007 Administrator No comments

j-schedule adalah lib java yang dikembangkan oleh forumnya ibm . lib ini membatu kita dalam membuat aplikasi schedule /task job lebih mudah …
dowload di sini
http://www.ibm.com/developerworks/java/library/j-schedule.html#download

berikut kodinya

package org.tiling.scheduling.examples;

import java.text.SimpleDateFormat;

import java.util.Date;

import org.tiling.scheduling.Scheduler;import org.tiling.scheduling.SchedulerTask;import org.tiling.scheduling.examples.iterators.DailyIterator;

public class AlarmClock {

   private final Scheduler scheduler = new Scheduler();   private final SimpleDateFormat dateFormat =       new SimpleDateFormat("dd MMM yyyy HH:mm:ss.SSS");   private final int hourOfDay, minute, second;

   public AlarmClock(int hourOfDay, int minute, int second) {       this.hourOfDay = hourOfDay;       this.minute = minute;       this.second = second;   }

   public void start() {       scheduler.schedule(new SchedulerTask() {           public void run() {               soundAlarm();           }           private void soundAlarm() {               System.out.println("Bangun - bangun! " +                   "Ini udah jam  " + dateFormat.format(new Date()));               // Start a new thread to sound an alarm...           }       }, new DailyIterator(hourOfDay, minute, second));   }

   public static void main(String[] args) {       AlarmClock alarmClock = new AlarmClock(7, 0, 0);       alarmClock.start();   }

}

hasilnya

Bangun - bangun! Ini udah jam 24 Aug 2003 07:00:00.023Bangun - bangun! Ini udah jam 25 Aug 2003 07:00:00.001Bangun - bangun! Ini udah jam 26 Aug 2003 07:00:00.058Bangun - bangun! Ini udah jam 27 Aug 2003 07:00:00.015Bangun - bangun! Ini udah jam 28 Aug 2003 07:00:00.002...

dalam hal ini aplikasi java yang kita buat .. akan menulikaskan pesan tersebut setiap pukul 07:00:00 setipa hari

demikan terimakasih :d

Read original post at b2ksadja blog

Categories: Alumnus Blog Tags:

jakarta poi

December 10th, 2007 Administrator No comments

jakarta poi adalah lib java yang digunakan untuk manipulasi data ke Microsoft’s OLE 2 Compound Document format menggunakan java murni ,alias tanpa embel2 dll ,atau component lain bener2 pure java … keterangan lebih lanjut silahkan baca : http://poi.apache.org

untuk menggunakanya pertama-tama download libnya .. di http://www.apache.org/dyn/closer.cgi/poi/

sedangakan kodingnya sbb:(Dalam hal ini memanipulasi data ke format excel) Java to Excel

package org.poi.sampel.action;

import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.Action;
import com.bedaplus.sis.ejb.sessionbean.SisMasterSessionHome;
import java.util.Map;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import javax.ejb.CreateException;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import javax.naming.NamingException;
import org.apache.poi.hssf.util.Region;
import java.rmi.RemoteException;
import org.apache.poi.hssf.util.HSSFColor;
import javax.servlet.ServletOutputStream;
import java.io.IOException;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import java.util.ArrayList;
import javax.naming.InitialContext;
import javax.naming.Context;
import java.util.List;

import javax.rmi.PortableRemoteObject;
import java.io.FileOutputStream;

//lib untuk memakai poi
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;

public class excelCtkMurid
extends Action {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest servletRequest,
HttpServletResponse servletResponse) {
HSSFWorkbook wb = new HSSFWorkbook();
FileOutputStream fileOut = null;
FileInputStream fileIn = null;
SisMasterSession ejbSession = null;

System.out.println(”HSSF => Create Workbook”);
try {
HSSFSheet sheet = wb.createSheet(”new Data Murid”);
//Border
HSSFCellStyle style = wb.createCellStyle();
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
style.setBottomBorderColor(HSSFColor.BLACK.index);
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
style.setLeftBorderColor(HSSFColor.BLACK.index);
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
style.setRightBorderColor(HSSFColor.BLACK.index);
style.setBorderTop(HSSFCellStyle.BORDER_THIN);
style.setTopBorderColor(HSSFColor.BLACK.index);
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);

HSSFCellStyle style2 = wb.createCellStyle();
style2.setBorderBottom(HSSFCellStyle.BORDER_NONE);
style2.setBottomBorderColor(HSSFColor.BLACK.index);
style2.setBorderLeft(HSSFCellStyle.BORDER_NONE);
style2.setLeftBorderColor(HSSFColor.BLACK.index);
style2.setBorderRight(HSSFCellStyle.BORDER_THIN);
style2.setRightBorderColor(HSSFColor.BLACK.index);
style2.setBorderTop(HSSFCellStyle.BORDER_NONE);
style2.setTopBorderColor(HSSFColor.BLACK.index);

HSSFCellStyle styleH = wb.createCellStyle();
styleH.setBorderBottom(HSSFCellStyle.BORDER_DOUBLE);
styleH.setBottomBorderColor(HSSFColor.BLACK.index);
styleH.setBorderLeft(HSSFCellStyle.BORDER_THIN);
styleH.setLeftBorderColor(HSSFColor.BLACK.index);
styleH.setBorderRight(HSSFCellStyle.BORDER_THIN);
styleH.setRightBorderColor(HSSFColor.BLACK.index);
styleH.setBorderTop(HSSFCellStyle.BORDER_DOUBLE);
styleH.setTopBorderColor(HSSFColor.BLACK.index);
styleH.setWrapText(true);
styleH.setVerticalAlignment(HSSFCellStyle.VERTICAL_CE
NTER);

styleH.setAlignment(HSSFCellStyle.ALIGN_CENTER);

HSSFCellStyle styleR = wb.createCellStyle();
styleR.setBorderBottom(HSSFCellStyle.BORDER_DOTTED);
styleR.setBottomBorderColor(HSSFColor.BLACK.index);
styleR.setBorderLeft(HSSFCellStyle.BORDER_THIN);
styleR.setLeftBorderColor(HSSFColor.BLACK.index);
styleR.setBorderRight(HSSFCellStyle.BORDER_THIN);
styleR.setRightBorderColor(HSSFColor.BLACK.index);
styleR.setBorderTop(HSSFCellStyle.BORDER_DOTTED);
styleR.setTopBorderColor(HSSFColor.BLACK.index);

HSSFCellStyle style3 = wb.createCellStyle();
style3.setAlignment(HSSFCellStyle.ALIGN_LEFT);
style3.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);

HSSFCellStyle style4 = wb.createCellStyle();
style4.setAlignment(HSSFCellStyle.ALIGN_CENTER);
style4.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);

sheet.addMergedRegion(new Region(0, (short) 0, 0, (short) 2));
sheet.addMergedRegion(new Region(1, (short) 0, 1, (short) 2));
sheet.addMergedRegion(new Region(2, (short) 0, 2, (short) 2));
sheet.addMergedRegion(new Region(0, (short) 4, 0, (short) 7));
sheet.addMergedRegion(new Region(1, (short) 4, 1, (short) 7));
sheet.addMergedRegion(new Region(2, (short) 4, 2, (short) 7));

drawCell( (short) 0, (short) 0, sheet, “Nama Sekolah “, false, style3);
drawCell( (short) 0, (short) 3, sheet, “: SMP Islam Al-Azhar 12 Rawamangun”, false, style3);
drawCell( (short) 0, (short) 4, sheet, “DAFTAR NAMA MURID”, false, style4);
drawCell( (short) 0, (short) 8, sheet, “Format”, false, style4);
drawCell( (short) 0, (short) 9, sheet, “: 8355″, false, style4);
drawCell( (short) 1, (short) 0, sheet, “Alamat”, false, style3);
drawCell( (short) 1, (short) 3, sheet, “: Jalan Raya Sekali”, false, style3);
drawCell( (short) 1, (short) 4, sheet, ” “, false, style4);
drawCell( (short) 1, (short) 8, sheet, “Kelas “, false, style4);
drawCell( (short) 2, (short) 0, sheet, “Telepon”, false, style3);
drawCell( (short) 2, (short) 3, sheet, “: 47868234″, false, style3);
drawCell( (short) 2, (short) 4, sheet, “TAHUN PELAJARAN 2007/2008″, false, style4);

sheet.addMergedRegion(new Region(0, (short) 0, 0, (short) 2));
sheet.addMergedRegion(new Region(1, (short) 0, 1, (short) 2));
sheet.addMergedRegion(new Region(2, (short) 0, 2, (short) 2));
sheet.addMergedRegion(new Region(0, (short) 4, 0, (short) 7));
sheet.addMergedRegion(new Region(1, (short) 4, 1, (short) 7));
sheet.addMergedRegion(new Region(2, (short) 4, 2, (short) 7));

drawCell( (short) 4, (short) 0, sheet, “No.”, true, styleH);
drawCell( (short) 4, (short) 1, sheet, “Kelas”, true, styleH);
drawCell( (short) 4, (short) 2, sheet, ” Nomer Induk “, true, styleH);
drawCell( (short) 4, (short) 3, sheet, ” Nama Murid “, true,
styleH);
drawCell( (short) 4, (short) 4, sheet, “L/P”, true,
styleH);
drawCell( (short) 4, (short) 5, sheet, ” Tempat Tanggal Lahir “, true,
styleH);
drawCell( (short) 4, (short) 6, sheet, “Agama”, true, styleH);
drawCell( (short) 4, (short) 7, sheet, ” Nama Orang Tua “, true, styleH);
drawCell( (short) 4, (short) 8, sheet, ” Alamat “, true, styleH);
drawCell( (short) 4, (short) 9, sheet, ” No. dan Tahun STTB “, true,
styleH);

}
fileOut = new FileOutputStream(”workbook.xls”);
//servletResponse.setHeader();
wb.write(fileOut);
fileOut.close();
}

catch (FileNotFoundException ex) {
System.out.print(”No File Found”);
}
catch (IOException ex) {
/** @todo Handle this exception */
}

finally {
}

return actionMapping.findForward(”success”);
//return null;

}
private void drawCell(short x, short y, HSSFSheet sheet, String value,
boolean autosize, HSSFCellStyle style) {
HSSFRow row = sheet.createRow( (short) x);
HSSFCell cell = row.createCell( (short) y);
cell.setCellValue(new HSSFRichTextString(value));
cell.setCellStyle(style);
if (autosize) {
sheet.autoSizeColumn( (short) y);
}

}

private void drawCell(short x, short y, HSSFSheet sheet, String value,
boolean autosize) {
HSSFRow row = sheet.createRow( (short) x);
HSSFCell cell = row.createCell( (short) y);
cell.setCellValue(new HSSFRichTextString(value));
if (autosize) {
sheet.autoSizeColumn( (short) y);
}
}
}

demkian dan terima kasih ,
mohon maklum , masih newbie banget …(kalo ada yang salah dengan metode ini,atau ada cara yang lebih bagus )
saya cuman pengen berbagi dan belajar sedikit menulis ..

Read original post at b2ksadja blog

Categories: Alumnus Blog Tags:

Halo Indonesia!

December 10th, 2007 Administrator No comments

Selamat Datang di Tritisan.
Mohon maaf jika hidangannya kurang eco dan mak nyos.
Selamat Menikmati..
Salam

Read original post at sasongko blog

Categories: Alumnus Blog Tags: