Kendy’s Weblog

January 2, 2009

Sebait Cinta untuk Palestina

Filed under: islam — kendysumbogo @ 9:59 am

Sebait Cinta untuk Palestina

Untukmu jiwa-jiwa kami
Untukmu darah kami
Untukmu jiwa dan darah kami
Wahai al-Aqsha tercinta

(Palestina Tercinta / Shoutul Harakah)

Di saat sebagian kita terlena oleh lengangnya Jakarta.
Dibuai oleh hangatnya canda tawa keluarga.
Sebagian lagi tengah bersiap berpesta.
Hura-hura menyambut pergantian masa.

Tapi tidak di Palestina…

Deru angkuh mesin pembunuh durjana.
Menebar teror tak peduli etika.
Ratusan sudah meregang nyawa.
Menjadi syahid dengan izin Allah Ta’ala.
Ribuan lagi merasakan siksa.
Dengan luka menganga di sekujur tubuhnya.

Wahai saudaraku kaum Muslimin sedunia.
Akankah kita masih saja terpana.
Mengikut arus sandiwara dunia.
Membisu diam seribu bahasa.
Terpaku diam mengurai air mata.

Memeluk lutut bukanlah usaha.
Panjatkan doa infakkan harta.
Wujud pembelaan terhadap saudara.
Semoga malaikat mencatat amal kita.

Ya Allah Azza Wa Jalla
Hinakanlah pemimpin munafik yang mati rasa.
Hancurkan makar musuh-Mu sehancur-hancurnya.
Telantarkan mereka di neraka yang baka.
Ampuni kami yang lalai dan terlena.
Terlanjur jemu dengan kabar dari Gaza.

PS.
Sampaikan doa dan infak Anda di badan-badan amal untuk Palestina. Serupiah-dua rupiah. Sejuta-dua juta. Semoga Allah Subhanahu Wa Ta’ala membalas usaha kita.

  • Komite Nasional untuk Rakyat Palestina (KNRP)
    http://www.knrp.or.id
    BCA Cabang Jatinegara Barat No. Rek. 7600325099
  • Komite Indonesia untuk Solidaritas Palestina (KISPA)
    http://www.kispa.org
    Bank Muamalat Indonesia Cabang Slipi No. Rek. 311.01856.22

Jangan lupa untuk memboikot produk-produk yang mendukung penjajahan ilegal di Palestina. Silakan browse ke http://www.inminds.com/boycott-israel.php

October 31, 2008

Ad Hominem

Filed under: IT — Tags: , — kendysumbogo @ 3:58 am

Ad Hominem

Dalam situs Wikipedia, disebutkan bahwa argumen ad hominem juga dikenal dalam bahasa Latin sebagai argumentum ad hominem, atau dalam Bahasa Inggris sebagai ”argument to the man” atau ”argument against the man”. Yang mengandung arti, sebuah argumen yang ditujukan untuk menyerang lawan bicara [1]. Alih-alih menjelaskan konsep pemikirannya atau menjelaskan argumentasi yang dimilikinya dalam sebuah diskusi, argumen ad hominem ini bertujuan khusus untuk menyerang dan menjatuhkan mental dan psikologis lawan bicara. Tujuan diskusi menjadi hanya sekadar kalah dan menang, dan bukan mencari sebuah kebenaran –minimal sebuah titik persimpangan yang disepakati- dalam sebuah prosesi tukar pikiran.

Segolongan orang yang mengasong paham sekularisme, pluralisme, dan liberalisme (untuk lebih singkatnya, saya akan menyebutnya sebagai SEPILIS saja); sedari awal, selalu mengagung-agungkan penggunaan akal dan kedewasaan dalam bertukar pikiran. Klaim-klaim mengenai pembebasan akal dan kebebasan untuk berbicara sangatlah kental dalam wacana-wacana mereka. Dan ya, klaim-klaim itu hanyalah wacana dalam artian mereka tidak benar-benar bisa menerapkan dalam tingkah laku mereka. Ibarat pepatah “jauh panggang daripada api”, wacana kebebasan dan kedewasaan setinggi langit namun jiwa dan etika kerdil, jauh dari omongan-omongan mereka sendiri.

Mari kita lihat.

Tanggal 22 Jumadil Akhir 1426 Hijriyah, atau bertepatan dengan 29 Juli 2005 Masehi merupakan tanggal yang bersejarah bagi JIL dan semua orang yang berafiliasi secara pemikiran kepadanya. Bagaimana tidak, pada hari itulah MUI telah menempelkan stempel sesat ke dahi mereka (maaf, ini hanyalah gaya bahasa metafora, semoga tidak dijadikan sasaran ad hominem). Sebagai wadah berkumpulnya para alim ulama, tentu saja MUI tidak asbun alias asal bunyi dalam berfatwa. Segudang argumentasi dan dalil-dalil rujukan menyertai fatwa yang dikeluarkan dalam perhelatan Munas MUI ke-7 tersebut.

Dan lihatlah apa yang terjadi.

Ulil Abshar Abdalla menganggap MUI tolol. Gus Dur mengimbau masyarakat untuk tidak mendengar MUI. Dalam sebuah konferensi pers yang diadakan oleh Aliansi Masyarakat Madani pada tanggal 29 Juli 2005 di kantor PBNU, mereka bahkan mengajak orang-orang non-Muslim untuk ikut-ikutan berkomentar. Tercatat Pangeran Jatikusuma dari Penghayat Sunda Wiwitan, Romo Edi dari Konferensi Wali Gereja Indonesia, Pendeta Weinata Sairin dari Persekutuan Gereja-gereja di Indonesia, tokoh agama Konghucu, serta Anand Khrisna ikut hadir dan memberikan komentarnya dalam acara tersebut [2]. Lihatlah mereka ini. Sudah tidak tahu duduk permasalahannya, tidak kompeten pula dalam urusan hukum Islam. Menyeret orang-orang non-Muslim dalam urusan dapur umat Islam hanya akan menambah kericuhan saja.

Inilah JIL dan pengekornya, pemuja akal dan kebebasan; namun tidak siap dengan kebebasan itu sendiri.

Sebagai kaum yang memuja kebebasan berpikir dan berbicara, seharusnya kaum SEPILIS ini tidak perlu bersikap kekanak-kanakan seperti itu. Mereka harus menunjukkan bahwa mereka bisa menerima perbedaan pendapat dengan MUI dan menghormati kebebasan MUI dalam bersikap. Bahkan jika perlu, mereka harus menunjukkan bahwa mereka siap dengan argumentasi mereka. Atau jika sudah mentok, mengapa tidak dikeluarkan saja jurus “Ah, itu kan menurut Anda” saja. Mengapa Ulil begitu kalut dengan fatwa ini, padahal dia sudah bisa menentukan sebagian ayat-ayat Allah Subhanahu Wa Ta’ala yang kadaluarsa, dan sebagian yang masih bisa digunakan atau sedikit dimodifikasi. Mengapa kaum yang telah meragukan kesucian al-Qur’an ini begitu panik ketika ada sebagian orang yang mencoba untuk istiqamah dengan ayat-ayat-Nya. Sayang sekali kita tidak menemukan kedewasaan dalam berbeda pendapat di kalangan kaum SEPILIS ini.

Munculnya dalil ad hominem ini sesungguhnya menunjukkan kekerdilan dan kesombongan pelakunya. Sudah tidak bisa memberikan argumentasi yang baik, malah caci-maki dan cercaan tanpa etika yang disemburkan. Seolah-olah hanya mereka saja yang paham akan hakikat kebenaran; sedangkan seolah-olah orang lain –yang bahkan jika diberi tahu sekalipun- tidak akan paham. Ini terbukti dengan adanya pendapat yang mengatakan bahwa pemikiran Gus Dur dan Cak Nur sudah melampaui zaman; tidak ada yang bisa memahaminya selain mereka berdua saja. Bahkan salah seorang cendekiawan mengusulkan adanya satu lapisan pemikir yang menjembatani antara pemikiran Gus Dur dan Cak Nur dengan masyarakat umum. Sungguh suatu pendapat yang melecehkan kemampuan akal dan otak manusia; yang bahkan Nabi Muhammad Shalallahu ‘Alaihi Wasallam saja tidak pernah didudukkan dalam maqam semacam itu.

Ustadz Hartono Ahmad Jaiz –dalam sebuah bukunya- memberikan kesaksian mengenai etika berdiskusi dari Gus Dur dan Cak Nur sebagai berikut:

Di saat model seminar mulai marak di Indonesia, bahkan seminar mengenai agama mulai ngetrend, Harian Pelita tempat saya bekerja, dalam ulang tahunnya yang ke-11, 1 April 1985, mengadakan seminar tentang pendidikan keimanan dalam keluarga. Pembicaranya Dr. Nurcholish Madjid yang belum lama pulang dari Chicago Amerika dan bergelar doktor, dan H. Abdurrahman Wahid yang kelak kemudian dikenal dalam kasus Assalamu’alaikum mau dia ganti dengan selamat pagi. Seminar itu dibuka oleh Menteri Agama RI H. Munawir Sjadzali MA.
Seminar di Gedung Dewan Pers, Kebon Sirih, Jakarta, itu memanas, lantaran seorang penanya memprotes Abdurrahman Wahid tentang bacaannya yang salah secara ilmu nahwu, dan Nurcholish Madjid (NM) yang disebut terjemahan Syahadatnya hukumnya haram. Terjemahan NM: Laa ilaaha illallaah, adalah: Tiada tuhan (t kecil) selain Tuhan (T besar).
Kedua tokoh itu tampak marah dan bernada merendahkan peserta laki-laki yang protes itu. Abdurrahman Wahid mengetesnya dengan materi nahwu sharaf, sedang Nurcholish mengetes dengan bertanya, siapa Tuhannya orang Yahudi. “Pemrotes” tu tidak bisa menjawab, hingga Nurcholish kedengaran sedikit tertawa, kedengaran mengknock out sambil mengatakan Tuhannya Yahudi itu Yahweh.
Menyaksikan gelagat itu, saya merasakan, dua tokoh itu “mencari dalil untuk mendukung pendapatnya”. Soalnya, kondisi seminar, bagaimanapun, pembicara jelas lebih leluasa untuk ngomong apa saja. Kesempatan itu tidak dimiliki peserta seminar [3].

Itulah etika pengasong SEPILIS dalam bertukar pikiran. Tidak ada semangat untuk mencari kebenaran disana, yang ada hanya bagaimana caranya untuk memenangkan setiap perdebatan. Apapun caranya. Tentu saja kita tidak bisa mengharapkan orang-orang semacam ini untuk dijadikan rujukan dalam memahami din al-Islam. Selain pemahaman yang tercerabut sebagian bahkan seluruhnya dari pedoman al-Qur’an dan al-Sunnah, etika semacam ini sungguh dekat dengan kesombongan. Padahal Rasulullah Shalallahu ‘Alaihi Wasallam telah bersabda,

Sombong yaitu menolak kebenaran dan meremehkan manusia [4].

Allah ‘Azzawajalla berfirman – dalam Hadis Qudsi: “Kemuliaan adalah sarungKu dan kesombongan adalah selendangKu. Maka barangsiapa yang mencabut salah satu dari kedua pakaianKu itu, maka pastilah Aku menyiksa padanya,” artinya mencabut ialah merasa dirinya paling mulia atau berlagak sombong [5].

Dalam sebuah bukunya, Prof. Dr. M. M. Al-A’zami mengutip perkataan Ibnu Sirrin,

Ilmu ini [mengenai agama] menjelma atau merupakan keimanan, dari itu, berhati-hatilah dari siapa anda belajar ilmu itu [6].

Wallahu a’lam.

Referensi

[1] http://en.wikipedia.org/wiki/Ad_hominem. Diakses pada tanggal 21 Oktober 2008 jam 11.20.
[2] Pluralisme Agama: Haram, Adian Husaini, Jakarta, Pustaka Al-Kautsar, 2005. Hal. 5.
[3] Aliran dan Paham Sesat di Indonesia, Hartono Ahmad Jaiz, Jakarta, Pustaka Al-Kautsar, Cetakan Kelima, 2003. Hal. 180. Teks dikutip seutuhnya tanpa perubahan.
[4] HR. Muslim. Dikutip seutuhnya tanpa perubahan dari software SalafiDB 4.0.
[5] HR. Muslim. Dikutip seutuhnya tanpa perubahan dari software SalafiDB 4.0.
[6] Sejarah Teks Al-Qur’an dari Wahyu sampai Kompilasi, Prof. Dr. M. M. Al-A’zami, Jakarta, Gema Insani Press, 2005. Hal. 381. Saya kurang menyukai hasil terjemahan dari Gema Insani Press ini karena ada banyak kesalahan bahasa di dalamnya. Kutipan tersebut kurang lebih memiliki pengertian bahwa ilmu mengenai din al-Islam berkaitan erat dengan keimanan, maka berhati-hatilah kepada siapa Anda mempelajarinya.

December 27, 2007

JSF + AJAX = Trinidad

Filed under: Trinidad — Tags: , , , , , — kendysumbogo @ 9:06 am

In my previous posting, we’ve learnt how to build a simple “Hello World” application using JSF (MyFaces). As we all know, JSF is a standard MVC framework specified in a JSR. It is a guarantee that the technology get sufficient technical support from Sun Microsystems.

But, in accordance with applications that would be built upon JSF, there is one question arisen. Does a standard technology always have a good performance?

If we dig into the JSF a little deeper, we know that in order to render an interactive web page, JSF needs more round-trip from client to server compared to J2EE application built on another client-based technology, likeJavaScript or Java Applet.

It is because the event handler of each web components is executed in server. Each time we click on a command button, type data in a text field, choose an option from an array of radio buttons, and etc.; the web page will automatically send the event to the server to be executed. It makes the execution time of a task will be much longer because the event and data travelling time should be added into account.

From the application security perspective, this approach can reduce security holes that can be exploited by an outsider. But from the user perspective, this approach is time consuming and make them wait much longer for a task to be executed. So, we should find a better solution to reduce the application round-trips in order to improve application performance.

The solution is AJAX (Asynchronous JavaScript and XML)[1]. This is a technology that allows us to asynchronously send a request to the server. More information on AJAX can be found here.

Here, AJAX is the one requesting event handler codes to be executed by the server each time an event triggered in a web page. This process executed asynchronously that a web page will not be totally refreshed each time handling an event.

We have tasted the flavour of one of Apache Foundation’s product, MyFaces. And now we are going use another of their product which is an extension of MyFaces, named Trinidad.

Installation

From our previous application, we only need to add 1 additional library:

  • trinidad-api and trinidad-impl, the jar file can be downloaded here.

web.xml

Next step is as easy as updating our web.xml to following snippet.

<!DOCTYPE web-app PUBLIC
  “-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN”
  “http://java.sun.com/dtd/web-app_2_3.dtd“>
<web-app>
  <display-name>Trinidad Demo</display-name>
  <description>Trinidad Demo</description>

<context-param>
  <param-name>javax.faces.application.CONFIG_FILES</param-name>
  <param-value>
  </param-value>
  <description>
  Comma separated list of URIs of additional faces config files.
  (e.g. /WEB-INF/my-config.xml) Attention: /WEB-INF/faces.config.xml is added automatically.
  See JSF 1.0 PRD2, 10.3.2
  </description>
  </context-param>

<context-param>
  <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
  <param-value>client</param-value>
  </context-param>

<context-param>
  <param-name>myfaces_allow_javascript</param-name>
  <param-value>true</param-value>
  <description>
  This parameter tells MyFaces if javascript code should be allowed in the
  rendered HTML output.
  If javascript is allowed, command_link anchors will have javascript code
  that submits the corresponding form.
  If javascript is not allowed, the state saving info and nested parameters
  will be added as url parameters.
  Default: “true”
  </description>
  </context-param>

<context-param>
  <param-name>myfaces_pretty_html</param-name>
  <param-value>true</param-value>
  <description>
  If true, rendered HTML code will be formatted, so that it is “human readable”.
  i.e. additional line separators and whitespace will be written, that do not
  influence the HTML code.
  Default: “true”
  </description>
  </context-param>

<filter>
  <filter-name>facesFilter</filter-name>
  <filter-class>org.apache.myfaces.trinidad.webapp.TrinidadFilter</filter-class>
  </filter>

<filter-mapping>
  <filter-name>facesFilter</filter-name>
  <url-pattern>*.faces</url-pattern>
  </filter-mapping>

<!– Faces Servlet –>
  <servlet>
  <servlet-name>Faces Servlet</servlet-name>
  <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
  </servlet>

<!– Resources Servlet –>
  <servlet>
  <servlet-name>resources</servlet-name>
  <servlet-class>org.apache.myfaces.trinidad.webapp.ResourceServlet</servlet-class>
  </servlet>

<!– Faces Servlet Mapping –>
  <servlet-mapping>
  <servlet-name>Faces Servlet</servlet-name>
  <url-pattern>*.faces</url-pattern>
  </servlet-mapping>

<!– Resources Servlet Mapping –>
  <servlet-mapping>
  <servlet-name>resources</servlet-name>
  <url-pattern>/adf/*</url-pattern>
  </servlet-mapping>
</web-app>

Compared to our previous web.xml file, we can notice 3 changes:

  1. If we look at “javax.faces.STATE_SAVING_METHOD” parameter, it is “client” now instead of our previous “server”.
  2. There is a filter to “*.faces” extension that will be handled by org.apache.myfaces.trinidad.webapp.TrinidadFilter class.
  3. There is one additional servlet, org.apache.myfaces.trinidad.webapp.ResourceServlet which handles “/adf/*” URL pattern.

faces-config.xml

The next step is adding following snippet inside the “faces-config” element.

<application>
  <default-render-kit-id>org.apache.myfaces.trinidad.core</default-render-kit-id>
</application>

Result

With those little updates, we have implemented Trinidad in our application. You can access the “Hello World” application exactly the same way as our previous application. So there is no need to show you the screenshoot of our application :p.

There are much more enjoyments offered by Trinidad, and if you are interested in digging into it much deeper, please feel free to download Trinidad sample application here.

December 21, 2007

Hello World in MyFaces (JSF implementation by Apache Foundation)

Filed under: JSF — Tags: , , , — kendysumbogo @ 4:47 am

People say that the world of IT is running so fast that one must learn harder in order to stay in the same place. So, in the name of “staying in the same place”, I’d like to spend some time learning a -not so- new J2EE framework called JSF (Java Server Faces).

JSF is one of MVC frameworks available in the market whose technical specification defined in JSR (Java Specificatioin Request).

  • JSF version 1.0 and 1.1 (bug-fixes for version 1.0) are defined in JSR 127.[1]
  • JSF version 1.2 is defined in JSR 252.[2]

There are some JSF implementations out there, but the one that is used in this writing is the implementation written by Apache Foundation named MyFaces.

Installation

First, you would need MyFaces library downloaded from Apache Foundation’s site. And don’t forget to download libraries needed by MyFaces:

  • commons-beanutils, the jar file can be downloaded here.
  • commons-collections, the jar file can be downloaded here.
  • commons-digester, the jar file can be downloaded here.
  • commons-el, the jar file can be downloaded here.
  • commons-lang, the jar file can be downloaded here.
  • commons-logging, the jar file can be downloaded here.

To install those libraries, you only need to extract the jar files to the “WEB-INF/lib” folder of your web application.

web.xml

Next, you must create the web.xml file, the configuration file for a J2EE application located in “WEB-INF” folder. To make it simpler, you can use following snippet of web.xml. Example below was taken from MyFaces’ site with minor updates.

<!DOCTYPE web-app PUBLIC
“-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN”
“http://java.sun.com/dtd/web-app_2_3.dtd”>
<web-app>
<display-name>MyFaces Demo</display-name>
<description>MyFaces Demo</description>

<context-param>
<param-name>javax.faces.application.CONFIG_FILES</param-name>
<param-value>
</param-value>
<description>
Comma separated list of URIs of additional faces config files.
(e.g. /WEB-INF/my-config.xml) Attention: /WEB-INF/faces.config.xml is added automatically.
See JSF 1.0 PRD2, 10.3.2
</description>
</context-param>

<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
</context-param>

<context-param>
<param-name>myfaces_allow_javascript</param-name>
<param-value>true</param-value>
<description>
This parameter tells MyFaces if javascript code should be allowed in the
rendered HTML output.
If javascript is allowed, command_link anchors will have javascript code
that submits the corresponding form.
If javascript is not allowed, the state saving info and nested parameters
will be added as url parameters.
Default: “true”
</description>
</context-param>

<context-param>
<param-name>myfaces_pretty_html</param-name>
<param-value>true</param-value>
<description>
If true, rendered HTML code will be formatted, so that it is “human readable”.
i.e. additional line separators and whitespace will be written, that do not
influence the HTML code.
Default: “true”
</description>
</context-param>

<!– Faces Servlet –>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<!– Faces Servlet Mapping –>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
</web-app>

faces-config.xml

The next file would be faces-config.xml. This is the configuration file known by MyFaces. If you ever tasted the flavour of Struts, this file service is nearly the same as struts-config.xml. For our web application, you may use following snippet.

<?xml version=’1.0′ encoding=’UTF-8′?>
<!DOCTYPE faces-config PUBLIC
“-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN”
“http://java.sun.com/dtd/web-facesconfig_1_1.dtd” >
<faces-config/>

hello.jsp

This is our final step before deploying our application to the server, our “Hello World!” page.

<%@ taglib uri=”http://java.sun.com/jsf/core” prefix=”f” %>
<%@ taglib uri=”http://java.sun.com/jsf/html” prefix=”h” %>
<f:view>
<html>
<head>
<title>Hello World</title>
</head>
<body>
<strong>Hello World!</strong>
</body>
</html>
</f:view>

Result

All required steps have been taken, and the time for harvesting has been before our eyes. Of course, we still need to deploy them though :p

This is the screenshot of our application.

Screenshot of our JSF-based “Hello World!” page.

I don’t cover much detail on MyFaces or JSF, but I you’d like to continue much more deeper, feel free to go to :

Footnotes

[1] http://www.roseindia.net/jsf/jsf-versions.shtml

[2] Ibid.

Blog at WordPress.com.