<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-4194359407084931611</id><updated>2009-10-29T08:36:51.252-07:00</updated><title type='text'>B2k NewBie</title><subtitle type='html'>Blog simpanan hasil2 pekerjaan,iseng2,trus hasil belajar mendalami dan menyelami arti hidup. dan merupakan kotak pos untuk mencurakan isi hati dan berbagi dengan sesama ...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://b2ksadja.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194359407084931611/posts/default'/><link rel='alternate' type='text/html' href='http://b2ksadja.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>b2ksadja</name><uri>http://www.blogger.com/profile/07419834833713112969</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4194359407084931611.post-9053811063918237369</id><published>2008-06-06T10:20:00.000-07:00</published><updated>2008-06-06T10:41:30.906-07:00</updated><title type='text'>Awal dan Akhir</title><content type='html'>Setiap ada awal pasti ada akhir .. dua hal yang saling melengkapi dengan makna yang begitu dalam. awal selalu rela berkorban untuk akhir meski dia tak menikmati apa yang dimulainya dan akhir selalu menerima apa yang telah dimulai awal tanpa protes ..tanpa sesal.Selain itu kadang kala akhir-pun akan berkorban untuk awal dan memberikannya pengetahuan dari hal yang dialaminya agar si awal tidak terpeleset sebagaimana dia menerimanya dari awal yang terdahulu,sehingga awal yang baru dapat dimulai dengan lebih sempurna dan bersiap2 untuk mengorbankan segala usahanya untuk akhir yang baru pula ..dan seterusnya .&lt;br /&gt;&lt;br /&gt;  Yah mungkin sebuah kalimat yang membingungkan awal-akhir-awal-akhir-dst ... bingunggggg..,seperti duluan mana ayam dan telur,membingukan dan tak terpecahkan.Tapi jika kita mau sedikit berpikir .. awal dan akhir mungkin adalah pesan dari sang pencipta agar kita belajar .. apa itu arti iklas,sabar dan pengorbanan.Iklas sebagaimana awal berusaha untuk si-akhir dan si-akhir akan iklas menerima apapun dari si-awal,sebuah prosa yang membingungkan .. heheehe :d.&lt;br /&gt;&lt;br /&gt;  Atau mungkin awal dan akhir itu adalah kita,kita mahluk ciptaannya .. coba'kita hitung sudah berapa orang yang telah berkorban untuk kita?banyak dan banyak sekali ..trus bagaimana dengan kita .. masihkah kita berdiam diri saja dengan menerima pengorbaanan begitu saja tanpa berpikir untuk berkorban bagi generasi yang akan datang ...hmm betapa durhakanya kita jika kita hanya menjadi rantai putus dari siklus awal dan akhir .&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194359407084931611-9053811063918237369?l=b2ksadja.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b2ksadja.blogspot.com/feeds/9053811063918237369/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4194359407084931611&amp;postID=9053811063918237369' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194359407084931611/posts/default/9053811063918237369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194359407084931611/posts/default/9053811063918237369'/><link rel='alternate' type='text/html' href='http://b2ksadja.blogspot.com/2008/06/awal-dan-akhir.html' title='Awal dan Akhir'/><author><name>b2ksadja</name><uri>http://www.blogger.com/profile/07419834833713112969</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12978177690166588299'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194359407084931611.post-4184662033161430679</id><published>2008-05-13T00:57:00.000-07:00</published><updated>2008-05-13T01:05:43.038-07:00</updated><title type='text'>MORE THAN A CLUB(FC-BARCELONA)</title><content type='html'>The slogan “more than a club” is open-ended in meaning.&lt;br /&gt;&lt;br /&gt;It is perhaps this flexibility that makes it so appropriate for defining the complexities of FC Barcelona’s identity, a club that competes in a sporting sense on the field of play, but that also beats, every day, to the rhythm of its people’s concerns.&lt;br /&gt;&lt;br /&gt;FC Barcelona is “more than a club” in Catalonia because it is the sports club that most represents the country and is also one of its greatest ambassadors. Also, for different reasons, FC Barcelona is “more than a club” for many people living elsewhere in Spain, who see Barça as a staunch defender of democratic rights and freedom.&lt;br /&gt;&lt;br /&gt;Today, football has become a global phenomenon, and support for Barcelona has spread spectacularly around the world. The number of club members from outside of Catalonia and Spain is increasing daily, and the club wants to respond to that show of passion for Barça. This has developed into a need and an obligation. And the best way for the club to do that has been to take a step further and become “more than a club around the world” as well. This Barça that is so concerned for its people needs to be globalised. This caring and humanitarian Barça needs to be globalised. It is a strategic decision that is in keeping with the club’s history and the way that football is continuing to develop on a worldwide basis.&lt;br /&gt;&lt;br /&gt;That is why the club has decided to contribute 0.7 per cent of its ordinary income to the FC Barcelona Foundation in order to set up international cooperation programmes for development, supports the UN Millennium Development Goals and has made a commitment to Unicef’s humanitarian aid programs through the donation of one and a half million euros for the next five years and now wears the Unicef logo on its shirts. An agreement that has made Barça unique.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194359407084931611-4184662033161430679?l=b2ksadja.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b2ksadja.blogspot.com/feeds/4184662033161430679/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4194359407084931611&amp;postID=4184662033161430679' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194359407084931611/posts/default/4184662033161430679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194359407084931611/posts/default/4184662033161430679'/><link rel='alternate' type='text/html' href='http://b2ksadja.blogspot.com/2008/05/more-than-clubfc-barcelona.html' title='MORE THAN A CLUB(FC-BARCELONA)'/><author><name>b2ksadja</name><uri>http://www.blogger.com/profile/07419834833713112969</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12978177690166588299'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194359407084931611.post-1551094602058298765</id><published>2008-05-12T23:58:00.000-07:00</published><updated>2008-05-13T00:44:42.202-07:00</updated><title type='text'>Siapa Bilang C# lebih bagus dari pada Java</title><content type='html'>Hmmm .. banyak forum bilang C# is 10% better than java .. ,jadi sempat berpikir untuk beralih ke C# apalagi dengan banyaknya dukungan baik framework ataupun toolsnya.Singkat kata akhirnya kesampean juga gue nyoba' C# with IDE Visual Studio 2005,kesan pertama keren bahasanya lebih mudah dipahami ,apalagi kalo kalo udah pernah yoba' variantnya c++ ,prosess kompilasinya yang jauh lebih cepat daripada java .. ya mungkin karene gue pakek OS windows juga yang notabene masih satu bapak alias sama produk mikocok(Microsoft red) :D,lama berselang gue akhirnya nyobak web development pakek vs2005(c#),nah disinilah baru masalah demi masalah muncul,mulai dari IIS-nya yang bermasalah sampek component2 webnya yang ternyata mlugudus alias cuman html yang kebetulan dibungkus kedalam gambar2 keren berbentuk component :D.dan akhirnya inilah sebab2 kenapa gue lebih milih java ketimbang c#:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1.Support dari microsoft sangat2 kurang dan bahkan cenderung acuh terhadap komunitas developernya.example ..sampek nangis2 yari cara buat ngefix IIS gue yang error lantaran katanya ada dll yang missing,ee ..udah ngikutin hampir semua pentunjuk dari microsoft dan semuanya gagal akhirnya ..disuruh uninstall ini kek itu kek yang akhirnya suruh uninstall everything ...--&gt;habis baca petunjuk yang terakhir gue langsung shock  ini support model apa,yang bikin kok sampek nggak tau apa yang harus dilakukan,hmmm satu nilai minus besar buat mikocok....&lt;br /&gt;&lt;br /&gt;2.Behind code , hmmm kesan pertama keren..., tapi setalah tau ternyata itu hanya replika contekan dari action formnya si struts .. jadi kecewa lagi , microsoft yang begitu membanggakan C# ternyata hanya ,menyontek dari pesaingnya ..&lt;br /&gt;&lt;br /&gt;3.NHibernate yang disulap jadi LINQ , wah emang microsoft gak kurang akal untuk nyari duit , setelah sebelumnya NHibernate benar populer dikalangan developer... eee malah pengembanganya diambil alih sama micorosoft, emang kalo orang serakah tak ada henti2nya untuk mencari uang dan uang ..,kecewa deh NHibernate berakhir di versi 1.2 alias 2.0 alpha ..&lt;br /&gt;&lt;br /&gt;4.Penanganan Error , yah yang ini benar2 memaksa developer pada umumnya untuk menjadi males,bagaimana tidak banyak error2 nya tidak ditampilkan line code-nya memaksa kita memakai vasilitas debug/trace di VS yang ujung2nya disuruh beli juga tuh VS.&lt;br /&gt;&lt;br /&gt;5.PreCompile,dulu waktu di java males banget dengan apa2 yang dicompile dulu baru deploy .. eh ternyata tanpa kita sadari itu adalah fasilitas yang sangat2 berguna ,dimana tidak akan ada lagi error pada saat penulisan code , yang ada hanya kesalahan di logika saja,sedangkan fasiliras precompile pada VS justru menjadi bumerang dimana jika terlalu sering terjadi error penulisan code ,bisa menyebabkan IIS stuck dan akhirnya down .. wah,sampai ada komentar pahit dari salah satu mantan programer .NET(c#) kalo diartiin gini "Apakah Saya Perlu Sebuah Server Mahal Untuk Develop aplikasi .NET,jika memang itu ya sudah saya kembali saja ke cara lama,cara java :D"&lt;br /&gt;&lt;br /&gt;btw ,ini hanya tulisan yang di rangkum dari forum2 yang kebetulan dilewati oleh b2knewbie serta dikaitan dengan apa yang dialami oleh b2knewbie dalam kesehariannya ..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194359407084931611-1551094602058298765?l=b2ksadja.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b2ksadja.blogspot.com/feeds/1551094602058298765/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4194359407084931611&amp;postID=1551094602058298765' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194359407084931611/posts/default/1551094602058298765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194359407084931611/posts/default/1551094602058298765'/><link rel='alternate' type='text/html' href='http://b2ksadja.blogspot.com/2008/05/siapa-bilang-c-lebih-bagus-dari-pada.html' title='Siapa Bilang C# lebih bagus dari pada Java'/><author><name>b2ksadja</name><uri>http://www.blogger.com/profile/07419834833713112969</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12978177690166588299'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194359407084931611.post-5589495306082443126</id><published>2007-12-12T23:46:00.000-08:00</published><updated>2007-12-12T23:48:15.732-08:00</updated><title type='text'>Muhammad II Al-Fatih: Sang Penakluk Konstantinopel</title><content type='html'>&lt;blockquote&gt;&lt;p&gt;Abu Qubail menuturkan dari Abdullah bin Amr bin Ash, “Suatu ketika kami sedang menulis di sisi Rasulullah SAW, tiba-tiba beliau ditanya, “Mana yang terkalahkan lebih dahulu, Konstantinopel atau Romawi?” Beliau menjawab, “Kota Heraklius-lah yang akan terkalahkan lebih dulu.” Maksudnya adalah Konstantinopel.” [H.R. Ahmad, Ad-Darimi, Al-Hakim]&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt;&lt;p&gt;“Kota Konstantinopel akan jatuh ke tangan Islam. Pemimpin yang menaklukkannya adalah sebaik-baik pemimpin dan pasukan yang berada di bawah komandonya adalah sebaik-baik pasukan.” [H.R. Ahmad bin Hanbal Al-Musnad 4/335]&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Jika anda terkagum-kagum dengan penggambaran perang yang ketat antara &lt;a href="http://en.wikipedia.org/wiki/Balian_of_Ibelin"&gt;Balian of Ibelin&lt;/a&gt; melawan &lt;a href="http://yulian.firdaus.or.id/2005/04/21/sholahuddin-al-ayyubi/"&gt;Shalahudin Al-Ayyubi&lt;/a&gt; di film &lt;a href="http://en.wikipedia.org/wiki/Kingdom_of_Heaven_%28movie%29"&gt;Kingdom of Heaven&lt;/a&gt; [&lt;a href="http://priyadi.net/archives/2005/05/08/kingdom-of-heaven/"&gt;resensi Priyadi&lt;/a&gt;], maka perang antara &lt;a href="http://en.wikipedia.org/wiki/Constantine_XI"&gt;Constantine XI Paleologus&lt;/a&gt; dengan &lt;a href="http://en.wikipedia.org/wiki/Fatih_Sultan_Mehmed"&gt;Muhammad Al-Fatih&lt;/a&gt; jauh lebih ketat, tidak hanya dalam hitungan hari tapi berminggu-minggu. &lt;span id="more-520"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;img class="inset" src="http://yulian.firdaus.or.id/wp-upload/Fatih-Sultan-Muhammad.jpg" alt="Sultan Muhammad II atau Mehmed Al-Fatih" /&gt;&lt;/p&gt; &lt;p&gt;Kekaisaran Romawi terpecah dua, Katholik Roma di Vatikan dan Yunani Orthodoks di Byzantium atau &lt;a href="http://en.wikipedia.org/wiki/Constantinople"&gt;Constantinople&lt;/a&gt; yang kini menjadi Istanbul. Perpecahan tersebut sebagai akibat konflik gereja meskipun dunia masih tetap mengakui keduanya sebagai pusat peradaban. &lt;a href="http://en.wikipedia.org/wiki/Constantine_I_of_the_Roman_Empire"&gt;Constantine The Great&lt;/a&gt; memilih kota di selat Bosphorus tersebut sebagai ibukota, dengan alasan strategis di batas Eropa dan Asia, baik di darat sebagai salah satu &lt;a href="http://en.wikipedia.org/wiki/Silk_Road"&gt;Jalur Sutera&lt;/a&gt; maupun di laut antara Laut Tengah dengan Laut Hitam dan dianggap sebagai titik terbaik sebagai pusat kebudayaan dunia, setidaknya pada kondisi geopolitik saat itu.&lt;/p&gt; &lt;p&gt;Yang mengincar kota ini untuk dikuasai termasuk bangsa Gothik, Avars, Persia, Bulgar, Rusia, Khazar, Arab-Muslim dan Pasukan Salib meskipun misi awalnya adalah menguasai Jerusalem. Arab-Muslim terdorong ingin menguasai Byzantium tidak hanya karena nilai strategisnya, tapi juga atas kepercayaan kepada ramalan Rasulullah SAW melalui riwayat Hadits di atas.&lt;/p&gt; &lt;p&gt;&lt;img class="inset" src="http://yulian.firdaus.or.id/wp-upload/Constantinople.jpg" alt="Wilayah Konstantinopel" /&gt;&lt;/p&gt; &lt;p&gt;Upaya pertama dilakukan oleh Muawiyah bin Abu Sufyan pada tahun 668M, namun gagal dan salah satu sahabat Rasulullah SAW yaitu Abu Ayyub Al-Anshari ra. gugur. Sebelumnya Abu Ayyub sempat berwasiat jika ia wafat meminta dimakamkan di titik terjauh yang bisa dicapai oleh kaum muslim. Dan para sahabatnya berhasil menyelinap dan memakamkan beliau persis di sisi tembok benteng Konstantinopel di wilayah Golden Horn.&lt;/p&gt; &lt;p&gt;Generasi berikutnya, baik dari &lt;a href="http://en.wikipedia.org/wiki/Umayyads"&gt;Bani Umayyah&lt;/a&gt; dan &lt;a href="http://en.wikipedia.org/wiki/Abbasid"&gt;Bani Abbasiyyah&lt;/a&gt; hingga &lt;a href="http://en.wikipedia.org/wiki/Ottoman_Dynasty"&gt;Turki Utsmani&lt;/a&gt; pada masa pemerintahan Murad II juga gagal menaklukkan Byzantium. Salah satu peperangan Murad II di wilayah Balkan adalah melawan &lt;a href="http://en.wikipedia.org/wiki/Vlad_II_Dracul"&gt;Vlad Dracul&lt;/a&gt;, seorang tokoh Crusader yang bengis dan sadis (Dracula karya Bram Stoker adalah terinsipirasi dari tokoh ini). Selama 800 tahun kegagalan selalu terjadi, hingga anak Sultan Murad II yaitu Muhammad II naik tahta Turki Utsmani.&lt;/p&gt; &lt;p&gt;Sejak Sultan Murad I, Turki Utsmani dibangun dengan kemiliteran yang canggih, salah satunya adalah dengan dibentuknya pasukan khusus yang disebut &lt;a href="http://en.wikipedia.org/wiki/Janissaries"&gt;Yanisari&lt;/a&gt;. Dengan pasukan militernya Turki Utsmani menguasasi sekeliling Byzantium hingga Constantine merasa terancam, walaupun benteng yang melindungi –bahkan dua lapis– seluruh kota sangat sulit ditembus, Constantine pun meminta bantuan ke Roma, namun konflik gereja yang terjadi tidak menelurkan banyak bala bantuan.&lt;/p&gt; &lt;p&gt;&lt;img class="inset" src="http://yulian.firdaus.or.id/wp-upload/Constantinos-Paleologos.jpg" alt="Constantine XI Paleologus" /&gt;&lt;/p&gt; &lt;p&gt;Hari Jumat, 6 April 1453M, Muhammad II atau disebut juga Mehmed bersama gurunya, syaikh Aaq Syamsudin, beserta tangan kanannya, Halil Pasha dan &lt;a href="http://en.wikipedia.org/wiki/Zaganos_Pasha"&gt;Zaghanos Pasha&lt;/a&gt; merencanakan penyerangan ke Byzantium dari berbagai penjuru benteng kota tersebut. Dengan berbekal 150.000 ribu pasukan dan meriam buatan Urban –teknologi baru pada saat itu– Muhammad II mengirim surat kepada Paleologus untuk masuk Islam atau menyerahkan penguasaan kota secara damai atau perang. Constantine Paleologus menjawab tetap mempertahankan kota dengan dibantu oleh Kardinal Isidor, Pangeran Orkhan dan &lt;a href="http://en.wikipedia.org/wiki/Giovanni_Giustiniani"&gt;Giovanni Giustiniani&lt;/a&gt; dari Genoa.&lt;/p&gt; &lt;p&gt;Kota dengan benteng 10m-an tersebut memang sulit ditembus, selain di sisi luar benteng pun dilindungi oleh parit 7m. Dari sebelah barat melalui pasukan altileri harus membobol benteng dua lapis, dari arah selatan laut Marmara pasukan laut harus berhadapan dengan pelaut Genoa pimpinan Giustiniani dan dari arah timur armada laut harus masuk ke selat sempit Golden Horn yang sudah dilindungi dengan rantai besar hingga kapal perang ukuran kecil pun tak bisa lewat.&lt;/p&gt; &lt;p&gt;Berhari-hari hingga berminggu-minggu benteng Byzantium tak bisa jebol, kalaupun runtuh membuat celah pasukan Constantine mampu mempertahankan celah tersebut dan dengan cepat menumpuk kembali hingga tertutup. Usaha lain pun dicoba dengan menggali terowongan di bawah benteng, cukup menimbulkan kepanikan kota, namun juga gagal. Hingga akhirnya sebuah ide yang terdengar bodoh dilakukan hanya dalam semalam. Salah satu pertahanan yang agak lemah adalah melalui selat Golden Horn yang sudah dirantai. Ide tersebut akhirnya dilakukan, yaitu memindahkan kapal-kapal melalui darat untuk menghindari rantai penghalang, hanya dalam semalam dan 70-an kapal bisa memasuki wilayah selat Golden Horn.&lt;/p&gt; &lt;p&gt;29 Mei, setelah sehari istirahat perang Muhammad II kembali menyerang total, diiringi hujan dengan tiga lapis pasukan, irregular di lapis pertama, Anatolian Army di lapis kedua dan terakhir pasukan Yanisari. Giustiniani sudah menyarankan Constantine untuk mundur atau menyerah tapi Constantine tetap konsisten hingga gugur di peperangan. Kabarnya Constantine melepas baju perang kerajaannya dan bertempur bersama pasukan biasa hingga tak pernah ditemukan jasadnya. Giustiniani sendiri meninggalkan kota dengan pasukan Genoa-nya. Kardinal Isidor sendiri lolos dengan menyamar sebagai budak melalui Galata, dan Pangeran Orkhan gugur di peperangan.&lt;/p&gt; &lt;p&gt;Konstantinopel telah jatuh, penduduk kota berbondong-bondong berkumpul di Hagia Sophia, dan Sultan Muhammad II memberi perlindungan kepada semua penduduk, siapapun, baik Islam, Yahudi ataupun Kristen. Hagia Sophia pun akhirnya dijadikan masjid dan gereja-gereja lain tetap sebagaimana fungsinya bagi penganutnya.&lt;/p&gt; &lt;p&gt;Toleransi tetap ditegakkan, siapa pun boleh tinggal dan mencari nafkah di kota tersebut. Sultan kemudian membangun kembali kota, membangun sekolah –terutama sekolah untuk kepentingan administratif kota– secara gratis, siapa pun boleh belajar, tak ada perbedaan terhadap agama, membangun pasar, membangun perumahan, bahkan rumah diberikan gratis kepada para pendatang yang bersedia tinggal dan mencari nafkah di reruntuhan kota Byzantium tersebut. Hingga akhirnya kota tersebut diubah menjadi Istanbul, dan pencarian makam Abu Ayyub dilakukan hingga ditemukan dan dilestarikan.&lt;/p&gt; &lt;p&gt;Dan kini &lt;a href="http://en.wikipedia.org/wiki/Hagia_Sophia"&gt;Hagia Sophia&lt;/a&gt; yang megah berubah fungsi menjadi museum.&lt;/p&gt; &lt;p&gt;Sumber: Alwi Alatas: Al-Fatih Sang Penakluk Konstantinopel, Penerbit Zikrul Hakim, 2005&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194359407084931611-5589495306082443126?l=b2ksadja.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b2ksadja.blogspot.com/feeds/5589495306082443126/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4194359407084931611&amp;postID=5589495306082443126' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194359407084931611/posts/default/5589495306082443126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194359407084931611/posts/default/5589495306082443126'/><link rel='alternate' type='text/html' href='http://b2ksadja.blogspot.com/2007/12/muhammad-ii-al-fatih-sang-penakluk.html' title='Muhammad II Al-Fatih: Sang Penakluk Konstantinopel'/><author><name>b2ksadja</name><uri>http://www.blogger.com/profile/07419834833713112969</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12978177690166588299'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194359407084931611.post-135845942574300869</id><published>2007-12-11T06:54:00.000-08:00</published><updated>2007-12-11T06:56:58.107-08:00</updated><title type='text'>Meneliti Abu Joan d’Arc,Benarkah Pahlawan Prancis Itu Dibakar Tiga Kali?</title><content type='html'>&lt;div style="text-align: left;"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;             Paris – Bagi warga Prancis, nama Joan d’Arc tidak asing lagi.              Perempuan pahlawan abad ke-15 yang mati dibakar pada usia 19 tahun              itu merupakan simbol kebangkitan bangsa Prancis. Kini, para ahli              tengah menyelidiki abu yang dianggap berasal dari tubuhnya. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;             Sisa-sisa tubuh jenazah dilaporkan berhasil dikumpulkan dari              onggokan kayu bakar di mana Joan d’Arc dibakar hidup-hidup. Temuan              itu muncul hampir 600 tahun setelah abunya diyakini telah dibuang ke              Sungai Seine.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;             Sebuah tim yang terdiri atas 18 pakar berencana melakukan              serangkaian tes terhadap pecahan tulang dan jaringan kulit yang              diduga berasal dari tubuh d’Arc.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;             Philippe Charlier, pakar forensik yang turut dalam penelitian itu,              menyatakan analisis tersebut dapat memakan waktu enam bulan. Ia              menambahkan penelitian itu tidak dapat memastikan bahwa bagian tubuh              tersebut benar-benar milik Joan d’Arc, karena tidak ada sampel DNA              yang dapat menjadi perbandingan. Namun, dari penelitian dapat              diketahui jika tulang-tulang itu bukan berasal dari tubuh d’Arc.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;             &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;             Dibakar Tiga Kali&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;             Dengan mengkaji susunan molekuler dan biokimia, tim berharap dapat              menentukan secara tepat tahun dan keaslian sisa abu itu. Kombinasi              teknik penentuan masa karbon dan analisis tentang jejak abu akan              memungkinkan tim pakar menentukan usia abu hingga pada tahun dan              bulan secara akurat. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;             Selain itu, bisa pula ditemukan fakta baru tentang pahlawan              perempuan yang membantu Prancis memukul mundur pasukan Inggris di              akhir Perang Seratus Tahun (1337-1453).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;             Menurut Charlier, d’Arc sebenarnya dibakar tiga kali pada 30 Mei              1431, menyusul persidangannya di Rouen, Normandia. Pada pembakaran              pertama, d’Arc meninggal dunia karena terlalu banyak menghirup asap.              Saat dibakar untuk kedua kalinya organ-organ dalamnya tidak semuanya              terbakar. Dan pada pembakaran ketiga, tidak ada yang tersisa kecuali              abunya.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;             Tulang iga sepanjang 15 sentimeter dan dibungkus dengan zat kimia              berwarna hitam, disimpan dengan baik, kata Charlier. Ia menyatakan              pertama-tama timnya akan melakukan uji DNA untuk menentukan jenis              kelaminnya. Lalu mereka akan melanjutkan tes untuk menentukan usia              tulang tersebut. Uji perbandingan DNA tidak dapat dilakukan karena              garis keturunan Joan d’Arc kemungkinan salah, kata Charlier.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;             “Kami akan dapat menyatakan: Ini adalah abu seorang wanita yang              tewas di Rouen (Prancis utara), berusia 19 tahun, yang meninggal              dunia pada 1431 sekitar 30 Mei dan yang dibakar tiga kali pada hari              yang sama,” ujar Charlier. Jika semua itu dapat dikonfirmasi,              katanya, “Kita akan tahu dengan hampir pasti bahwa ini betul-betul              Joan d’Arc.”&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;             &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;             Mandat Tuhan&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;             Dilahirkan di sebuah keluarga sederhana di Prancis Timur, Joan d’Arc              menyatakan mendengar suara Tuhan dan mendapat mandatnya untuk              mengusir Inggris keluar dari Prancis. D’Arc ditangkap tahun 1430 dan              diadili dengan tuduhan menyebarkan klenik dan ilmu gaib setelah              membawa kemenangan Prancis dalam beberapa pertempuran dalam Perang              Seratus Tahun. Yang paling terkenal adalah pertempuran di Orleans,              sebelah selatan Paris. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;             Gadis muda asal Lorraine yang sering menyamar sebagai pria dalam              pertempuran itu pun dibakar di tiang pembakaran di Rouen, 30 Mei              1431. Dia dinyatakan tidak bersalah 7 Juli 1456 dan didaftarkan              sebagai calon orang suci pada 11 April 1909. Joan d’Arc diangkat              menjadi santa oleh Gereja Katolik pada 16 Mei 1920.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;             Kisah luar biasa yang dialami Joan d’Arc telah menjadi sumber ilham              bagi para penulis Prancis, mulai dari Voltaire hingga pengarang masa              kini. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;             Pernyataannya tentang ilham Ilahi dan keberhasilannya memukul mundur              pasukan penyerbu Inggris, membuat dirinya sebagai simbol yang kuat              kebangkitan bangsa Prancis.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;             Dia kemudian menjadi inspirasi mistis bagi para nasionalis Katolik              Prancis dan telah digunakan secara kontroversial sebagai emblem              Partai Front Nasional ekstrem kanan pimpinan Jean-Marie Le Pen, yang              memperingati kematiannya setiap tahun.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;             Namun begitu, Charlier menegaskan dirinya didorong oleh rasa              keingintahuan ilmiah belaka dan tak terpengaruh dengan “perdebatan”              soal warisan yang ditinggalkan Joan d’Arc.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;             “Tak ada tujuan nasionalistis di belakang proyek ini, tak ada aspek              keagamaan dan politis. Proyek ini betul-betul ilmiah dan investigasi              sejarah,” katanya.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;             Abu Joan d’Arc, yang kini berada di bawah pengawasan sebuah asosiasi              sejarah Prancis dan sekarang menjadi milik Gereja Katolik Roma di              Tours, barat daya Prancis, merupakan satu-satunya jejak yang tersisa              dari pahlawan perempuan itu. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;             Charlier sebelumnya mencatat keberhasilan mengidentifikasi penyebab              kematian Agnes Sorel, wanita simpanan Raja Charles VII yakni              keracunan mercuri. Namun, dia tidak mampu memastikan apakah              peristiwa itu merupakan pembunuhan. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;             (ap/ant/afp/nat)&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194359407084931611-135845942574300869?l=b2ksadja.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b2ksadja.blogspot.com/feeds/135845942574300869/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4194359407084931611&amp;postID=135845942574300869' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194359407084931611/posts/default/135845942574300869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194359407084931611/posts/default/135845942574300869'/><link rel='alternate' type='text/html' href='http://b2ksadja.blogspot.com/2007/12/meneliti-abu-joan-darcbenarkah-pahlawan.html' title='Meneliti Abu Joan d’Arc,Benarkah Pahlawan Prancis Itu Dibakar Tiga Kali?'/><author><name>b2ksadja</name><uri>http://www.blogger.com/profile/07419834833713112969</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12978177690166588299'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194359407084931611.post-1872810146238839177</id><published>2007-12-11T06:48:00.000-08:00</published><updated>2007-12-11T07:02:27.951-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Joan of arc'/><title type='text'>Joan d’Arc ,Satria Wanita Pelindung Negara Perancis</title><content type='html'>&lt;span style=";font-family:Comic Sans MS;font-size:85%;"  &gt;&lt;br /&gt;&lt;br /&gt;Joan adalah anak bungsu dari 5 bersaudara pasangan Jacques dan Issabelle d’Arcyang lahir di sebuah desa di Domremy pada tanggal 6 Januari 1412. Sejak kecil Joan sudah menunjukkan sikap yang begitu saleh terhadap masyarakat di sekitarnya. Ibunya begitu telaten mengajarkan kepadanya doa-doa seperti Bapa Kami, Salam Maria dan juga Credo.&lt;br /&gt;&lt;br /&gt;Pada usia 13 tahun ia merasakan dorongan batin yang begitu kuat, ia mendengar ‘suara-suara’ yang memanggilnya agar selalu berbuat baik dan sering-sering mengunjungi gereja, dengan demikian ia akan selalu mendapatkan pertolongan Tuhan. Ia yakin bahwa ‘suara-suara’ yang ia dengar setiap hari itu adalah suara Tuhan melalui St. Mikael Sang Malaikat Agung, Sta. Katarina dan Sta. Margareta. Satu hari ‘suara-suara’ tadi mengatakan agar Joan menyelamatkan negara Perancis yang pada saat itu hampir seluruh wilayahnya dikuasai oleh pasukan Inggris dan Burgundi. Joan juga harus menghantarkan putera mahkota kerajaan Perancis yang bernama Charles untuk segera mengenakan mahkota sebagai raja Perancis dan mengusir tentara Inggris dari tanah Perancis.&lt;br /&gt;&lt;br /&gt;23 Pebruari 1429 Joan menemui gubernur Sir Robert de Baudricort yang pro Perancis di kota Vaucoulers. Joan menceritakan ‘suara-suara’ yang didengarnya dan menyatakan keinginannya untuk bertemu dengan putra mahkota Charles di Chinon. Setelah ditolak beberapa kali akhirnya Joan diijinkan untuk bertemu dengan sang putra mahkota.&lt;br /&gt;&lt;br /&gt;Tidak gampang meyakinkan putra mahkota, terlebih-lebih pada saat kekuasaan gereja yang begitu besar pada saat itu. Setelah melalui penyidikan yang dilakukan oleh para pejabat gereja yang dipimpin oleh uskup agung Reims, Joan dijinkan untuk memimpin tentara Perancis. 29 April ia dan bala tentaranya memasuki kota Orleans. Ia berhasil memporak-porandakan kubu pertahanan tentara Inggris di Orleans pada tanggal 8 Mei. Tanggal 9 Juni, ia dan pasukannya memasuki lembah Loire, tanggal 19 Juni ia berhasil memukul mundur dan memaksa pasukan Inggris keluar dari lembah Loire.&lt;br /&gt;&lt;br /&gt;Joan mendesak kepada pejabat kerajaan dan pejabat gereja untuk memahkotai putra mahkota secepatnya. Tanggal 17 Juli 1429, Charles dimahkotai dan resmi menjadi Raja Perancis.&lt;br /&gt;&lt;br /&gt;Dengan alasan yang hanya diketahui oleh Raja Charles sendiri, sejak menjadi Raja ia tidak lagi mendengarkan nasihat maupun pendapat Joan. Kekuasaan telah membuat gelap mata raja muda ini, ditambah lagi dengan kekuasaan gereja yang mendominasi di lingkungan kerajaan.&lt;br /&gt;&lt;br /&gt;Joan mendapatkan bisikan bahwa waktunya hanya tinggal satu tahun lagi untuk membantu Perancis melepaskan diri dari tangan Inggris. Hal ini juga sudah disampaikannya kepada Raja Charles, tetapi tetap saja Raja Charles tidak mengindahkannya. Hampir satu tahun Joan meyakinkan Raja Charles mengenai hal ini. Di tengah kebimbangan dan rasa frutrasi, Joan menjalankan misinya sendiri. 23 Mei 1430, Joan tertangkap di kota Compiegne, ia dikhianati oleh tentara Burgundia. Raja Charles yang mendengar kabar ditangkapnya Joan, tidak melakukan tindakan apa-apa. Joan dibiarkannya begitu saja. Sebagai tahanan di sana ia diperlakukan dengan baik, tetapi tanggal 21 November 1430 ia dipindahtangankan ke tentara Inggris. Di sanalah Joan merasakan siksaan-siksaan baik fisik dan psikis. Bagaimana Joan dapat bertahan dari siksaan itu semua adalah sebuah mukjizat bagi dirinya.&lt;br /&gt;&lt;br /&gt;Pihak tentara Inggris begitu ingin membunuhnya, tetapi juga ingin mendiskreditkan Raja Charles melalui tangan gereja lewat uskup Cauchon dengan menyebarkan isu bahwa Joan adalah seorang ahli sihir dan seorang yang anti gereja.&lt;br /&gt;&lt;br /&gt;Joan dibawa ke pengadilan uskup Beauviais dengan tuduhan pokok praktik sihir dan takhayul sebanyak 15 kali. Joan membela diri dan secara gemilang mendebat para penuntut-penuntutnya yang kebanyakan adalah kaum cendekiawan. Ia selalu menolak tuntutan untuk mengungkapkan ‘suara-suara’ yang didengarnya. Akhirnya Joan dinyatakan bersalah. Joan terkesiap dalam hati kecilnya ia merasa begitu takut akan hukuman bakar yang akan diterimanya.&lt;br /&gt;&lt;br /&gt;Di dalam kamar tahanan ia berlutut sambil menangis memanggil-manggil para orang kudus yang membisikkan telinganya selama ini. Ia memanggil-manggil St. Mikael, Sta. Katarina dan Sta. Margareta, namun Joan tidak mendengar apa-apa, tidak ada satu jawaban ataupun bisikan di telinganya. Ia merasa takut yang amat sangat karena merasa ditinggalkan oleh Tuhannya. Namun entah darimana asalnya, rasa takut tadi berangsur-angsur hilang berganti dengan rasa keberanian yang begitu besar. Joan kembali menemukan kepercayaan dan keyakinannya lagi.&lt;br /&gt;&lt;br /&gt;Malam sebelum Joan dibakar, dengan rasa ingin tahu yang besar dan juga kebimbangan uskup Beauvais mengunjunginya. Ia bertanya kepada Joan mengenai misteri ‘suara-suara’ yang dialami Joan. Uskup Beauvais sangat terperanjat dengan salah satu jawaban Joan, dengan lugu Joan mengatakan begitu jelas sosok St. Mikael. Beauvais menyadari bahwa apa yang dialami Joan lewat ‘suara-suara’ misteriusnya adalah suatu kebenaran bukan rekayasa Joan sendiri. Karena dokumen gereja mengenai Sang Malaikat Agung St. Mikael hanya ada di vatikan dan hanya pejabat vatikan tingkat tinggi saja yang mengetahuinya, sedang Joan sendiri adalah seorang wanita dari desa yang seumur-umur belum pernah ke Vatikan apalagi mengetahui dokumen tersebut.&lt;br /&gt;&lt;br /&gt;30 Mei 1431 Joan dibakar hidup-hidup di alun-alun di Rouen. Joan menemui ajalnya melalui keputusan palsu pengadilan gereja yang tanpa malu-malu menjual kebenaran untuk tujuan politik Inggris.&lt;br /&gt;&lt;br /&gt;Beberapa tahun kemudian, demi mempertahankan kedudukannya, Raja Charles berusaha dua kali membuktikan bahwa keputusan pengadilan itu tidak sah. Dua puluh lima tahun kemudian, Paus Kalistus III menunjuk suatu komisi untuk melakukan penyidikan atas keputusan pengadilan tersebut. Akhirnya dinyatakan melalui pengadilan gereja juga, bahwa keputusan itu dicapai atas dasar tipu daya belaka.&lt;br /&gt;&lt;br /&gt;Tahun 1920, Joan dinyatakan kudus oleh Roma, bukan karena patriotisme atau keberaniannya di medan peperangan selama memimpin bala tentara Perancis, melainkan karena kesalehan hidup dan kesetiaannya dalam memenuhi apa yang dikaruniakan Tuhan kepadanya. Perayaan Santa Joan d’Arc ini dirayakan pada tiap-tiap tanggal 30 Mei.&lt;br /&gt;&lt;br /&gt;salut buat joan of arc,tidak lupa salut juga buat ibukita kartini&lt;br /&gt;Dari: Warta Mikael - http://www.wartamikael.org&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194359407084931611-1872810146238839177?l=b2ksadja.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b2ksadja.blogspot.com/feeds/1872810146238839177/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4194359407084931611&amp;postID=1872810146238839177' title='1 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194359407084931611/posts/default/1872810146238839177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194359407084931611/posts/default/1872810146238839177'/><link rel='alternate' type='text/html' href='http://b2ksadja.blogspot.com/2007/12/joan-darc-satria-wanita-pelindung.html' title='Joan d’Arc ,Satria Wanita Pelindung Negara Perancis'/><author><name>b2ksadja</name><uri>http://www.blogger.com/profile/07419834833713112969</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12978177690166588299'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194359407084931611.post-7950186021821459819</id><published>2007-12-10T05:39:00.000-08:00</published><updated>2007-12-10T08:54:17.516-08:00</updated><title type='text'>Pengenalan ADOdb 1.1</title><content type='html'>&lt;p&gt;  Pengenalan ADOdb    1.1 Latar Belakang     &lt;/p&gt;&lt;p&gt;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.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;  &lt;p&gt;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.&lt;/p&gt;    &lt;p&gt;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.&lt;/p&gt;    1.2 Mengenal ADOdb    &lt;p&gt;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. &lt;/p&gt;    &lt;p&gt;ADOdb terkenal karena kecepatannya, kemudahan penggunaannya serta kelengkapan fasilitasnya.&lt;/p&gt;    &lt;p&gt;Informasi ADOdb selengkapnya dapat diperoleh di:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://php.weblogs.com/adodb"&gt;http://php.weblogs.com/adodb&lt;/a&gt;&lt;/p&gt;    1.3 Kelebihan ADOdb    &lt;p&gt;Kelebihan ADOdb adalah:&lt;/p&gt;    &lt;p&gt;1.       Mudah dimengerti oleh programmer Windows karena sintaksnya hampir sama persis dengan Microsoft ADO&lt;/p&gt;    &lt;p&gt;2.       Cepat, juga memiliki ekstension native untuk mempercepat proses&lt;/p&gt;    &lt;p&gt;3.       Telah terbukti handal dalam berbagai aplikasi nyata&lt;/p&gt;    &lt;p&gt;4.       Memiliki fungsi atau pustaka yang lengkap&lt;/p&gt;    &lt;p&gt;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 &lt;/p&gt;    &lt;p&gt;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.&lt;/p&gt;    &lt;p&gt;7.       Mendukung banyak sekali database server&lt;/p&gt;    &lt;p&gt;8.       Performance Monitoring dan tuning library&lt;/p&gt;    &lt;ol&gt;&lt;li&gt;Paging Library&lt;/li&gt;&lt;li&gt;Library untuk Manajemen session berbasis database&lt;/li&gt;&lt;/ol&gt;    1.4 Aplikasi nyata yang menggunakan ADOdb    &lt;p&gt;ADOdb telah terbukti stabil, cepat dan populer karena telah banyak aplikasi PHP di dunia yang memanfaatkan ADOdb.&lt;/p&gt;    &lt;p&gt;Aplikasi yang menggunakan ADOb antara lain:&lt;/p&gt;    &lt;p&gt;1.       PHPLens&lt;/p&gt;    &lt;p&gt;http:// www.phplens.com&lt;/p&gt;    &lt;p&gt;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.&lt;/p&gt;    &lt;p&gt;2.       ECreasol&lt;/p&gt;    &lt;p&gt;&lt;a href="http://www.ecreasol.com/"&gt;http://www.ecreasol.com&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Content Management System dari Switzerland yang dibangun dengan PHP dan ADOdb.&lt;/p&gt;    &lt;p&gt;3.       PostNuke&lt;/p&gt;    &lt;p&gt;&lt;a href="http://www.postnuke.com/"&gt;http://www.postnuke.com&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Open Source Portal Content Management System/Weblog yang sangat terkenal, mirip PHPNuke.&lt;/p&gt;    &lt;p&gt;4.       NOLA&lt;/p&gt;    &lt;p&gt;&lt;a href="http://nola.noguska.com/"&gt;http://nola.noguska.com&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Aplikasi akuntansi, inventory dan aplikasi job tracking berbasis web, berlisensi GPL dan dibuat oleh Noguska&lt;/p&gt;    &lt;p&gt;5.       DBForm&lt;/p&gt;    &lt;p&gt;&lt;a href="http://dbform.sourceforge.net/"&gt;http://dbform.sourceforge.net&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;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.&lt;/p&gt;    &lt;p&gt;6.       Gallery&lt;/p&gt;    &lt;p&gt;&lt;a href="http://www.menalto.com/projects/gallery/modules.php?op=modload&amp;amp;name=News&amp;amp;file=index"&gt;http://www.menalto.com/projects/gallery/modules.php?op=modload&amp;amp;name=News&amp;amp;file=index&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Aplikasi galeri/album foto yang canggih&lt;/p&gt;    1.5 Perbandingan Pear DB dengan ADOdb    1.5.1 Perbandingan Fasilitas/API    &lt;table style="width: 424px; height: 2194px;" border="1" cellpadding="0"&gt;      &lt;tbody&gt;&lt;tr&gt;        &lt;td&gt; &lt;p&gt;Feature&lt;/p&gt;&lt;/td&gt;        &lt;td&gt; &lt;p&gt;PEAR DB&lt;/p&gt;&lt;/td&gt;        &lt;td&gt; &lt;p&gt;ADOdb&lt;/p&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;        &lt;td valign="top"&gt; &lt;p&gt;dukungan Data Source Name (DSN)&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;ya&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;ya, bila mode kompatibilitas dengan Pear diaktifkan&lt;/p&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;        &lt;td valign="top"&gt; &lt;p&gt;Error Handling&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;PEAR &lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;Module penanganan error yang dapat dikembangkan. Dukungan terintegrasi untuk 3 penanganan error:&lt;/p&gt;          &lt;p&gt;- PEAR style&lt;br /&gt;         - menggunakan error_log&lt;br /&gt;         - Ditampilkan ke layar&lt;/p&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;        &lt;td valign="top"&gt; &lt;p&gt;Koneksi ke database&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;DB::Connect()&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;ADOConnection::Connect()&lt;br /&gt;         ADOConnection::PConnect()&lt;br /&gt;         ADOConnection::NConnect()&lt;/p&gt;          &lt;p&gt;&lt;em&gt;Mengikuti konvensi standar koneksi dari PHP&lt;/em&gt;&lt;/p&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;        &lt;td valign="top"&gt; &lt;p&gt;Diskonek dari database&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;DB::Disconnect()&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;ADOConnection::Close()&lt;/p&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;        &lt;td valign="top"&gt; &lt;p&gt;Mengirimkan perintah SQL&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;DB::Query()&lt;em&gt; &lt;/em&gt;&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;ADOConnection::Execute()&lt;/p&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;        &lt;td valign="top"&gt; &lt;p&gt;Identifikasi peringatan&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;DB::isWarning()&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;Peringatan dikirim ke fungsi ADOConnection::outp(), tetapi tidak dikirim ke Error Handler. Perilaku default dari outp() adalah mengeluarkan ke layar. Hal ini dapat dioverridden.&lt;/p&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;        &lt;td valign="top"&gt; &lt;p&gt;Identifikasi Error&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;DB::isError()&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;Error dikirimkan ke error handler&lt;/p&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;        &lt;td valign="top"&gt; &lt;p&gt;Quote strings&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;DB::quote()&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;ADOConnection::qstr()&lt;/p&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;        &lt;td valign="top"&gt; &lt;p&gt;Mendapatkan informasi dukungan backend untuk fasilitas tertentu&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;DB::provide()&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;Menyediakan properti dengan nilai true atau false pada objek ADOConnection. Biasanya dimulai dengan $has*.&lt;/p&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;        &lt;td valign="top"&gt; &lt;p&gt;Auto-insert atau update record&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;DB::autoPrepare()&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;ADOConnection::GetInsertSQL() atau&lt;br /&gt;         ADOConnection::GetUpdateSQL()&lt;/p&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;        &lt;td valign="top"&gt; &lt;p&gt;Menjalankan kueri prepare&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;DB::execute()&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;ADOConnection::Execute()&lt;/p&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;        &lt;td valign="top"&gt; &lt;p&gt;Menjalankan sejumlah kueri prepare berulangkali&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;DB::executeMultiple()&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;Memanggil ADOConnection::Execute() dalam loop for&lt;/p&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;        &lt;td valign="top"&gt; &lt;p&gt;Menghasilkan kueri limit ( eq. SELECT …&lt;/p&gt;          &lt;p&gt;LIMIT … )&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;DB::limitQuery()&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;ADOConnection::SelectLimit()&lt;/p&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;        &lt;td valign="top"&gt; &lt;p&gt;Mendapatkan kolom pertama, baris pertama dari kueri&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;DB::getOne()&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;ADOConnection::GetOne()&lt;/p&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;        &lt;td valign="top"&gt; &lt;p&gt;Mendapatkan baris pertama dari kueri&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;DB::getRow()&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;ADOConnection::GetRow()&lt;/p&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;        &lt;td valign="top"&gt; &lt;p&gt;Mendapatkan kolom tunggal dari kueri dari array&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;DB::getCol()&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;ADOConnection::GetCol()&lt;/p&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;        &lt;td valign="top"&gt; &lt;p&gt;Mendapatkan result-set sebagai associative array menggunakan kolom pertama sebagai key&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;DB::getAssoc()&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;ADOConnection::GetAssoc()&lt;/p&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;        &lt;td valign="top"&gt; &lt;p&gt;Mengembalikan result set sebagai array 2 dimensi&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;DB::getAll()&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;ADOConnection::getAll() atau ADOConnection::GetArray()&lt;/p&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;        &lt;td valign="top"&gt; &lt;p&gt;Baris yang berubah dari insert/delete/update&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;DB::affectedRows()&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;ADOConnection::Affected_Rows()&lt;/p&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;        &lt;td valign="top"&gt; &lt;p&gt;Determine whether rows are fetched as indexed atau associative arrays, atau as objects&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;DB::setFetchMode()&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;Set the $ADODB_FETCH_MODE variable for indexed atau associative arrays. For fetching rows as objects, use ADOResultSet::FetchObject().&lt;/p&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;        &lt;td valign="top"&gt; &lt;p&gt;Get the next number in a sequence&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;DB::nextID()&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;ADOConnection::GenID() atau&lt;br /&gt;         ADOConnection::NextID()&lt;/p&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;        &lt;td valign="top"&gt; &lt;p&gt;Create a sequence&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;DB::createSequence()&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;Otomatis dibuat.&lt;/p&gt;          &lt;p&gt;Tetapi pada &lt;em&gt;ADOdb 2.60 Anda dapat membuat secara menual menggunakan:&lt;/em&gt;&lt;i&gt;&lt;br /&gt;     &lt;em&gt;ADOConnection::CreateSequence()&lt;/em&gt;&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;        &lt;td valign="top"&gt; &lt;p&gt;Drop a sequence&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;DB::dropSequence()&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;&lt;em&gt;Tersedia pada ADOdb 2.60&lt;/em&gt;&lt;i&gt;&lt;span&gt;&lt;br /&gt;     &lt;em&gt;ADOConnection::DropSequence()&lt;/em&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;        &lt;td valign="top"&gt; &lt;p&gt;Mendapatkan info DB internal&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;DB::getListOf()&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;tersedia sebagai properti ADOConnection&lt;/p&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;        &lt;td valign="top"&gt; &lt;p&gt;Mendapatkan baris berikutnya&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;DB_Result::fetchRow()&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;ADORecordSet::FetchRow() atau&lt;br /&gt;         ADORecordSet::MoveNext()&lt;/p&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;        &lt;td valign="top"&gt; &lt;p&gt;Mendapatkan baris ke variabel yang sudah ada.&lt;/p&gt;          &lt;p&gt;Fetch the row into existing variable&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;DB_Result::fetchInto()&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;ADORecordSet::FetchRow() &lt;/p&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;        &lt;td valign="top"&gt; &lt;p&gt;Mendapatkan jumlah kolom yang didapat&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;DB_Result::numCols()&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;ADORecordSet::FieldCount()&lt;/p&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;        &lt;td valign="top"&gt; &lt;p&gt;Mendapatkan jumlah baris yang didapat&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;DB_Result::numRows()&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;ADORecordSet::RecordCount()&lt;/p&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;        &lt;td valign="top"&gt; &lt;p&gt;Mendapatkan result berikutnya bila batch kueri dijalankan&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;DB_Result::nextResult()&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;ADORecordSet::NextRecordSet()&lt;/p&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;        &lt;td valign="top"&gt; &lt;p&gt;Mendapatkan info tentang resultset&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;DB_Result::tableInfo()&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;ADORecordSet::FetchField()&lt;/p&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;        &lt;td valign="top"&gt; &lt;p&gt;Error object&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;DB_Error&lt;/p&gt;          &lt;p&gt;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.&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;Objek PEAR error didukung bila emulasi PEAR diaktifkan.&lt;/p&gt;          &lt;p&gt;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. &lt;/p&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;        &lt;td valign="top"&gt; &lt;p&gt;Objek warning&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;DB_Warning&lt;/p&gt;&lt;/td&gt;        &lt;td valign="top"&gt; &lt;p&gt;Tidak diperlukan&lt;/p&gt;&lt;/td&gt;      &lt;/tr&gt;    &lt;/tbody&gt;&lt;/table&gt;    1.5.2 Perbandingan kecepatan               &lt;p&gt;Penulis menampilkan pengukuran dan perbandingan kecepatan ADOdb dengan teknologi terkait pada bagian ini. Sumber perbandingan kecepatan ini berasal dari &lt;/p&gt;    &lt;p&gt;http://phplens.com/lens/adodb/&lt;/p&gt;    &lt;p&gt;&lt;b&gt;Perbandingan Kecepatan pertama&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;Anda dapat melihat pada perbandingan kecepatan antara fungsi MySQL native, ADOdb dengan ekstension native, dbx, ADOdb biasan, PHPlib, MDB, PEAR DB serta M’base.&lt;/p&gt;    &lt;p&gt;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.&lt;/p&gt;    &lt;p&gt;Perhatikan tabel hasil perbandingan kecepatan berikut:&lt;/p&gt;    &lt;p&gt;MySQL  1.12        1.12        1.17        1.15        1.14&lt;/p&gt;    &lt;p&gt;ADOdbext             1.30        1.31        1.29        1.30        1.32 &lt;/p&gt;    &lt;p&gt;dbx ext                 1.35        1.38        1.41        1.37        1.36 (index only)&lt;/p&gt;    &lt;p&gt;ADOdb  1.43        1.47        1.47        1.44        1.45&lt;/p&gt;    &lt;p&gt;dbx ext                 1.53        1.52        1.52        1.52        1.55        (index/assoc/info)&lt;/p&gt;    &lt;p&gt;PhpLib                  1.53        1.62        1.64        1.64        1.57   &lt;/p&gt;    &lt;p&gt;MDB                      1.77        1.75        1.75        1.76        1.73&lt;/p&gt;    &lt;p&gt;PEAR DB              2.91        2.90        2.85        2.83        2.84 (fetchInto)&lt;/p&gt;    &lt;p&gt;PEAR DB              3.14        3.13        3.22        3.12        3.16 (fetchRow)&lt;/p&gt;    &lt;p&gt;M'base                  4.51        4.55        4.46        4.54        4.52    (numeric indexes)&lt;/p&gt;    &lt;p&gt;M'base                  4.99        4.72        4.71        4.71        4.72        (assoc indexes)&lt;/p&gt;    &lt;p&gt;&lt;span&gt;    Rata-Rata         Overhead&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;MySQL                  1.14           -&lt;/p&gt;    &lt;p&gt;ADOdbext             1.30        14%&lt;/p&gt;    &lt;p&gt;dbx                         1.37        20% (index only)&lt;/p&gt;    &lt;p&gt;ADOdb                  1.45        27%&lt;/p&gt;    &lt;p&gt;dbx                         1.53         34% (index/assoc/info)&lt;/p&gt;    &lt;p&gt;PhpLib                  1.60        40%&lt;/p&gt;    &lt;p&gt;MDB                     1.75        54%&lt;/p&gt;    &lt;p&gt;PEAR DB              2.87        152% (fetchInto)&lt;/p&gt;    &lt;p&gt;PEAR DB              3.15        176% (fetchRow)&lt;/p&gt;    &lt;p&gt;M'base                  2.52        296% (numeric cols)&lt;/p&gt;    &lt;p&gt;M'base                  4.77        318% (assoc cols)&lt;/p&gt;    &lt;p&gt;&lt;b&gt;Perbandingan Kecepatan dua&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;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.&lt;/p&gt;    &lt;p&gt;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.&lt;/p&gt;    &lt;p&gt;Dua tes dijalankan dan dirata-rata untuk tiap tes. Nilai yang lebih tinggi akan lebih baik. Semua pengukurang dalam halaman / detik.&lt;/p&gt;    &lt;p&gt;                        Dengan            Tanpa&lt;/p&gt;    &lt;p&gt;                        Accelerator      Accelerator&lt;/p&gt;    &lt;p&gt;MySQL           83.53               81.35&lt;/p&gt;    &lt;p&gt;ADOdb           61.19               21.33&lt;/p&gt;    &lt;p&gt;PEAR DB       52.85               25.26&lt;/p&gt;    &lt;p&gt;Informasi detail mengenai perbandingan dan pengukuran kecepatan ini dapat dilihat di url:&lt;/p&gt;    &lt;p&gt;http://phplens.com/lens/adodb/#2&lt;/p&gt;    &lt;p&gt;1.6 Database yang didukung oleh ADOdb&lt;/p&gt;    &lt;p&gt;Tentu Anda perlu mengerti apa sajakah database yang didukung ADOdb sehingga Anda dapat memutuskan untuk menggunakan ADOdb atau tidak sesuai kebutuhan aplikasi.&lt;/p&gt;    &lt;p&gt;Database yang didukung oleh ADOdb antara lain adalah:&lt;/p&gt;    &lt;p&gt;1.       MySQL&lt;/p&gt;    &lt;p&gt;2.       PostgreSQL&lt;/p&gt;    &lt;p&gt;3.       Oracle&lt;/p&gt;    &lt;p&gt;4.       Microsoft SQL Server&lt;/p&gt;    &lt;p&gt;5.       Sybase&lt;/p&gt;    &lt;p&gt;6.       Sybase SQL Anywhere&lt;/p&gt;    &lt;p&gt;7.       Informix&lt;/p&gt;    &lt;p&gt;8.       FrontBase&lt;/p&gt;    &lt;p&gt;9.       SQLite&lt;/p&gt;    &lt;p&gt;10.    Interbase (Firebird and Borland variants)&lt;/p&gt;    &lt;p&gt;11.    Foxpro&lt;/p&gt;    &lt;p&gt;12.    Access&lt;/p&gt;    &lt;p&gt;13.    DB2&lt;/p&gt;    &lt;p&gt;14.    SAP DB&lt;/p&gt;    &lt;p&gt;15.    ODBC&lt;/p&gt;    &lt;p&gt;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.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194359407084931611-7950186021821459819?l=b2ksadja.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b2ksadja.blogspot.com/feeds/7950186021821459819/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4194359407084931611&amp;postID=7950186021821459819' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194359407084931611/posts/default/7950186021821459819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194359407084931611/posts/default/7950186021821459819'/><link rel='alternate' type='text/html' href='http://b2ksadja.blogspot.com/2007/12/pengenalan-adodb-11.html' title='Pengenalan ADOdb 1.1'/><author><name>b2ksadja</name><uri>http://www.blogger.com/profile/07419834833713112969</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12978177690166588299'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194359407084931611.post-186180944159918419</id><published>2007-12-10T05:12:00.000-08:00</published><updated>2007-12-10T05:29:27.548-08:00</updated><title type='text'>perlukah EJB ?</title><content type='html'>Ini adalah ulasan dari seorang java developer tentang kefanatikan terhadap EJB dan realitasnya.&lt;br /&gt;&lt;br /&gt;Saya tidak mengerti mengapa masih ada orang terobsesi dengan teknologi EJB ???&lt;br /&gt;&lt;br /&gt;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 ?&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;EJB Sangat powerfull apakah seperti demikian ?.... sebagian orang menganggapnya steik diantara burger. Seperti roket dibandingkan pesawat, seperti limo daripada sedan.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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)&lt;br /&gt;&lt;br /&gt;1. The network is reliable&lt;br /&gt;&lt;br /&gt;2. Latency is zero&lt;br /&gt;&lt;br /&gt;3. Bandwidth is infinite&lt;br /&gt;&lt;br /&gt;4. The network is secure&lt;br /&gt;&lt;br /&gt;5. Topology doesn't change&lt;br /&gt;&lt;br /&gt;6. There is one administrator&lt;br /&gt;&lt;br /&gt;7. Transport cost is zero&lt;br /&gt;&lt;br /&gt;8. The network is homogeneous&lt;br /&gt;&lt;br /&gt;9. The system is monolithic&lt;br /&gt;&lt;br /&gt;10.The system is finished&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Untuk apa "SessionFacade" jika memang distributed object dengan mengexpose entity secara remote memudahkan jika alasannya sekedar memindahkan business logic di ejb container.&lt;br /&gt;&lt;br /&gt;Untuk apa "TransferObject" seandainya attributenya sama seperti Entity Beans&lt;br /&gt;&lt;br /&gt;Untuk apa "ValueListHandler" diciptakan seandainya Entity Beans memang Enterprise Entity.&lt;br /&gt;&lt;br /&gt;.......... 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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Penulis:&lt;br /&gt;Ahmad Arif Rachim&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194359407084931611-186180944159918419?l=b2ksadja.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b2ksadja.blogspot.com/feeds/186180944159918419/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4194359407084931611&amp;postID=186180944159918419' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194359407084931611/posts/default/186180944159918419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194359407084931611/posts/default/186180944159918419'/><link rel='alternate' type='text/html' href='http://b2ksadja.blogspot.com/2007/12/perlukah-ejb.html' title='perlukah EJB ?'/><author><name>b2ksadja</name><uri>http://www.blogger.com/profile/07419834833713112969</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12978177690166588299'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194359407084931611.post-5617449888182915632</id><published>2007-12-10T04:57:00.000-08:00</published><updated>2007-12-10T05:08:33.737-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java task'/><category scheme='http://www.blogger.com/atom/ns#' term='job'/><category scheme='http://www.blogger.com/atom/ns#' term='task'/><category scheme='http://www.blogger.com/atom/ns#' term='scheduling'/><category scheme='http://www.blogger.com/atom/ns#' term='schedule'/><title type='text'>Membuat scheduling task dengan java (Scheduling a recurring task) menggunkan lib j-schedule</title><content type='html'>j-schedule adalah lib java yang dikembangkan oleh  forumnya ibm . lib ini membatu kita dalam membuat aplikasi schedule /task job lebih mudah ...&lt;br /&gt;dowload di sini&lt;br /&gt;&lt;a href="http://www.ibm.com/developerworks/java/library/j-schedule.html#download"&gt;http://www.ibm.com/developerworks/java/library/j-schedule.html#download&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;berikut kodinya&lt;br /&gt;&lt;br /&gt;&lt;pre class="displaycode"&gt;package org.tiling.scheduling.examples;&lt;br /&gt;&lt;br /&gt;import java.text.SimpleDateFormat;&lt;br /&gt;&lt;br /&gt;import java.util.Date;&lt;br /&gt;&lt;br /&gt;import org.tiling.scheduling.Scheduler;&lt;br /&gt;import org.tiling.scheduling.SchedulerTask;&lt;br /&gt;import org.tiling.scheduling.examples.iterators.DailyIterator;&lt;br /&gt;&lt;br /&gt;public class AlarmClock {&lt;br /&gt;&lt;br /&gt;   private final Scheduler scheduler = new Scheduler();&lt;br /&gt;   private final SimpleDateFormat dateFormat =&lt;br /&gt;       new SimpleDateFormat("dd MMM yyyy HH:mm:ss.SSS");&lt;br /&gt;   private final int hourOfDay, minute, second;&lt;br /&gt;&lt;br /&gt;   public AlarmClock(int hourOfDay, int minute, int second) {&lt;br /&gt;       this.hourOfDay = hourOfDay;&lt;br /&gt;       this.minute = minute;&lt;br /&gt;       this.second = second;&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   public void start() {&lt;br /&gt;       scheduler.schedule(new SchedulerTask() {&lt;br /&gt;           public void run() {&lt;br /&gt;               soundAlarm();&lt;br /&gt;           }&lt;br /&gt;           private void soundAlarm() {&lt;br /&gt;               System.out.println("Bangun - bangun! " +&lt;br /&gt;                   "Ini udah jam  " + dateFormat.format(new Date()));&lt;br /&gt;               // Start a new thread to sound an alarm...&lt;br /&gt;           }&lt;br /&gt;       }, new DailyIterator(hourOfDay, minute, second));&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   public static void main(String[] args) {&lt;br /&gt;       AlarmClock alarmClock = new AlarmClock(7, 0, 0);&lt;br /&gt;       alarmClock.start();&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}&lt;/pre&gt;hasilnya&lt;br /&gt;&lt;pre class="displaycode"&gt;Bangun - bangun! Ini udah jam 24 Aug 2003 07:00:00.023&lt;br /&gt;Bangun - bangun! Ini udah jam 25 Aug 2003 07:00:00.001&lt;br /&gt;Bangun - bangun! Ini udah jam 26 Aug 2003 07:00:00.058&lt;br /&gt;Bangun - bangun! Ini udah jam 27 Aug 2003 07:00:00.015&lt;br /&gt;Bangun - bangun! Ini udah jam 28 Aug 2003 07:00:00.002&lt;br /&gt;...&lt;/pre&gt;dalam hal ini aplikasi java yang kita buat .. akan menulikaskan pesan tersebut setiap pukul 07:00:00 setipa hari&lt;br /&gt;&lt;br /&gt;demikan terimakasih :d&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194359407084931611-5617449888182915632?l=b2ksadja.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b2ksadja.blogspot.com/feeds/5617449888182915632/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4194359407084931611&amp;postID=5617449888182915632' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194359407084931611/posts/default/5617449888182915632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194359407084931611/posts/default/5617449888182915632'/><link rel='alternate' type='text/html' href='http://b2ksadja.blogspot.com/2007/12/membuat-scheduling-task-dengan-java.html' title='Membuat scheduling task dengan java (Scheduling a recurring task) menggunkan lib j-schedule'/><author><name>b2ksadja</name><uri>http://www.blogger.com/profile/07419834833713112969</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12978177690166588299'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194359407084931611.post-3340280465581874769</id><published>2007-12-10T04:24:00.000-08:00</published><updated>2007-12-10T08:59:18.181-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='jakartapoi'/><category scheme='http://www.blogger.com/atom/ns#' term='poi'/><category scheme='http://www.blogger.com/atom/ns#' term='jakarta'/><category scheme='http://www.blogger.com/atom/ns#' term='java to excel'/><category scheme='http://www.blogger.com/atom/ns#' term='excel java'/><title type='text'>jakarta poi</title><content type='html'>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 :  &lt;a href="http://poi.apache.org/"&gt;http://poi.apache.org&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;untuk menggunakanya pertama-tama download libnya .. di &lt;a href="http://www.apache.org/dyn/closer.cgi/poi/"&gt;http://www.apache.org/dyn/closer.cgi/poi/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;sedangakan kodingnya sbb:(Dalam hal ini memanipulasi data ke format excel) Java to Excel&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;package org.poi.sampel.action;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;import org.apache.struts.action.ActionMapping;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;import org.apache.struts.action.ActionForm;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;import javax.servlet.http.HttpServletRequest;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;import javax.servlet.http.HttpServletResponse;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;import org.apache.struts.action.ActionForward;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;import org.apache.struts.action.Action;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;import com.bedaplus.sis.ejb.sessionbean.SisMasterSessionHome;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;import java.util.Map;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;import org.apache.poi.hssf.usermodel.HSSFWorkbook;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;import javax.ejb.CreateException;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;import org.apache.poi.hssf.usermodel.HSSFSheet;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;import java.io.FileInputStream;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;import java.io.FileNotFoundException;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;import javax.naming.NamingException;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;import org.apache.poi.hssf.util.Region;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;import java.rmi.RemoteException;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;import org.apache.poi.hssf.util.HSSFColor;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;import javax.servlet.ServletOutputStream;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;import java.io.IOException;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;import org.apache.poi.hssf.usermodel.HSSFCellStyle;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;import java.util.ArrayList;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;import javax.naming.InitialContext;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;import javax.naming.Context;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;import java.util.List;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;import javax.rmi.PortableRemoteObject;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;import java.io.FileOutputStream;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;//lib untuk memakai poi&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;import org.apache.poi.hssf.usermodel.HSSFCell;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;import org.apache.poi.hssf.usermodel.HSSFRow;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;import org.apache.poi.hssf.usermodel.HSSFRichTextString;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;public class excelCtkMurid&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;   extends Action {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt; public ActionForward execute(ActionMapping actionMapping,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;                              ActionForm actionForm,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;                              HttpServletRequest servletRequest,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;                              HttpServletResponse servletResponse) {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;   HSSFWorkbook wb = new HSSFWorkbook();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;    FileOutputStream fileOut = null;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;    FileInputStream fileIn = null;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;    SisMasterSession ejbSession = null;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;    System.out.println("HSSF =&gt; Create Workbook");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;    try {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      HSSFSheet sheet = wb.createSheet("new Data Murid");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      //Border&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      HSSFCellStyle style = wb.createCellStyle();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      style.setBorderBottom(HSSFCellStyle.BORDER_THIN);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      style.setBottomBorderColor(HSSFColor.BLACK.index);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      style.setBorderLeft(HSSFCellStyle.BORDER_THIN);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      style.setLeftBorderColor(HSSFColor.BLACK.index);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      style.setBorderRight(HSSFCellStyle.BORDER_THIN);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      style.setRightBorderColor(HSSFColor.BLACK.index);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      style.setBorderTop(HSSFCellStyle.BORDER_THIN);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      style.setTopBorderColor(HSSFColor.BLACK.index);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      style.setAlignment(HSSFCellStyle.ALIGN_CENTER);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      HSSFCellStyle style2 = wb.createCellStyle();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      style2.setBorderBottom(HSSFCellStyle.BORDER_NONE);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      style2.setBottomBorderColor(HSSFColor.BLACK.index);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      style2.setBorderLeft(HSSFCellStyle.BORDER_NONE);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      style2.setLeftBorderColor(HSSFColor.BLACK.index);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      style2.setBorderRight(HSSFCellStyle.BORDER_THIN);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      style2.setRightBorderColor(HSSFColor.BLACK.index);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      style2.setBorderTop(HSSFCellStyle.BORDER_NONE);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      style2.setTopBorderColor(HSSFColor.BLACK.index);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      HSSFCellStyle styleH = wb.createCellStyle();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      styleH.setBorderBottom(HSSFCellStyle.BORDER_DOUBLE);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      styleH.setBottomBorderColor(HSSFColor.BLACK.index);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      styleH.setBorderLeft(HSSFCellStyle.BORDER_THIN);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      styleH.setLeftBorderColor(HSSFColor.BLACK.index);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      styleH.setBorderRight(HSSFCellStyle.BORDER_THIN);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      styleH.setRightBorderColor(HSSFColor.BLACK.index);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      styleH.setBorderTop(HSSFCellStyle.BORDER_DOUBLE);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      styleH.setTopBorderColor(HSSFColor.BLACK.index);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      styleH.setWrapText(true);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      styleH.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      styleH.setAlignment(HSSFCellStyle.ALIGN_CENTER);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;    HSSFCellStyle styleR = wb.createCellStyle();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;    styleR.setBorderBottom(HSSFCellStyle.BORDER_DOTTED);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;    styleR.setBottomBorderColor(HSSFColor.BLACK.index);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;    styleR.setBorderLeft(HSSFCellStyle.BORDER_THIN);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;    styleR.setLeftBorderColor(HSSFColor.BLACK.index);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;    styleR.setBorderRight(HSSFCellStyle.BORDER_THIN);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;    styleR.setRightBorderColor(HSSFColor.BLACK.index);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;    styleR.setBorderTop(HSSFCellStyle.BORDER_DOTTED);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;    styleR.setTopBorderColor(HSSFColor.BLACK.index);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;    HSSFCellStyle style3 = wb.createCellStyle();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;    style3.setAlignment(HSSFCellStyle.ALIGN_LEFT);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;    style3.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;    HSSFCellStyle style4 = wb.createCellStyle();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;    style4.setAlignment(HSSFCellStyle.ALIGN_CENTER);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;    style4.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;        sheet.addMergedRegion(new Region(0, (short) 0, 0, (short) 2));&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;        sheet.addMergedRegion(new Region(1, (short) 0, 1, (short) 2));&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;        sheet.addMergedRegion(new Region(2, (short) 0, 2, (short) 2));&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;        sheet.addMergedRegion(new Region(0, (short) 4, 0, (short) 7));&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;        sheet.addMergedRegion(new Region(1, (short) 4, 1, (short) 7));&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;        sheet.addMergedRegion(new Region(2, (short) 4, 2, (short) 7));&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;        drawCell( (short) 0, (short) 0, sheet, "Nama Sekolah ", false, style3);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;        drawCell( (short) 0, (short) 3, sheet, ": SMP Islam Al-Azhar 12 Rawamangun", false, style3);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;        drawCell( (short) 0, (short) 4, sheet, "DAFTAR NAMA MURID", false, style4);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;        drawCell( (short) 0, (short) 8, sheet, "Format", false, style4);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;        drawCell( (short) 0, (short) 9, sheet, ": 8355", false, style4);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;        drawCell( (short) 1, (short) 0, sheet, "Alamat", false, style3);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;        drawCell( (short) 1, (short) 3, sheet, ": Jalan Raya Sekali", false, style3);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;        drawCell( (short) 1, (short) 4, sheet, " ", false, style4);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;        drawCell( (short) 1, (short) 8, sheet, "Kelas ", false, style4);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;        drawCell( (short) 2, (short) 0, sheet, "Telepon", false, style3);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;        drawCell( (short) 2, (short) 3, sheet, ": 47868234", false, style3);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;        drawCell( (short) 2, (short) 4, sheet, "TAHUN PELAJARAN 2007/2008", false, style4);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;        sheet.addMergedRegion(new Region(0, (short) 0, 0, (short) 2));&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;        sheet.addMergedRegion(new Region(1, (short) 0, 1, (short) 2));&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;        sheet.addMergedRegion(new Region(2, (short) 0, 2, (short) 2));&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;        sheet.addMergedRegion(new Region(0, (short) 4, 0, (short) 7));&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;        sheet.addMergedRegion(new Region(1, (short) 4, 1, (short) 7));&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;        sheet.addMergedRegion(new Region(2, (short) 4, 2, (short) 7));&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;        drawCell( (short) 4, (short) 0, sheet, "No.", true, styleH);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;        drawCell( (short) 4, (short) 1, sheet, "Kelas", true, styleH);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;        drawCell( (short) 4, (short) 2, sheet, "  Nomer Induk  ", true, styleH);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;        drawCell( (short) 4, (short) 3, sheet, "             Nama Murid             ", true,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;                 styleH);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;       drawCell( (short) 4, (short) 4, sheet, "L/P", true,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;                 styleH);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;        drawCell( (short) 4, (short) 5, sheet, "   Tempat Tanggal Lahir    ", true,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;                 styleH);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;        drawCell( (short) 4, (short) 6, sheet, "Agama", true, styleH);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;        drawCell( (short) 4, (short) 7, sheet, "       Nama Orang Tua         ", true, styleH);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;        drawCell( (short) 4, (short) 8, sheet, "                            Alamat                              ", true, styleH);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;        drawCell( (short) 4, (short) 9, sheet, "     No. dan Tahun STTB     ", true,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;                 styleH);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      fileOut = new FileOutputStream("workbook.xls");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      //servletResponse.setHeader();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      wb.write(fileOut);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      fileOut.close();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;    catch (FileNotFoundException ex) {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      System.out.print("No File Found");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;    catch (IOException ex) {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;      /** @todo Handle this exception */&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;    finally {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;    return actionMapping.findForward("success");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;    //return null;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt; }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt; private void drawCell(short x, short y, HSSFSheet sheet, String value,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;                      boolean autosize, HSSFCellStyle style) {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;  HSSFRow row = sheet.createRow( (short) x);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;  HSSFCell cell = row.createCell( (short) y);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;  cell.setCellValue(new HSSFRichTextString(value));&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;  cell.setCellStyle(style);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;  if (autosize) {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;    sheet.autoSizeColumn( (short) y);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;  }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;private void drawCell(short x, short y, HSSFSheet sheet, String value,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;                      boolean autosize) {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;  HSSFRow row = sheet.createRow( (short) x);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;  HSSFCell cell = row.createCell( (short) y);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;  cell.setCellValue(new HSSFRichTextString(value));&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;  if (autosize) {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;    sheet.autoSizeColumn( (short) y);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;  }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;demkian dan terima kasih ,&lt;br /&gt;mohon maklum , masih newbie banget ...(kalo ada yang salah dengan metode ini,atau ada cara yang lebih bagus )&lt;br /&gt;saya cuman pengen  berbagi dan belajar sedikit menulis ..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194359407084931611-3340280465581874769?l=b2ksadja.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b2ksadja.blogspot.com/feeds/3340280465581874769/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4194359407084931611&amp;postID=3340280465581874769' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194359407084931611/posts/default/3340280465581874769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194359407084931611/posts/default/3340280465581874769'/><link rel='alternate' type='text/html' href='http://b2ksadja.blogspot.com/2007/12/jakarta-poi.html' title='jakarta poi'/><author><name>b2ksadja</name><uri>http://www.blogger.com/profile/07419834833713112969</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12978177690166588299'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>