<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Didats Triadi &#187; programming</title>
	<atom:link href="http://didats.net/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://didats.net</link>
	<description>Web Application Developer and Designer</description>
	<lastBuildDate>Wed, 03 Aug 2011 19:02:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Hubungan erat antara bahasa pemrograman, matematika, dan fisika</title>
		<link>http://didats.net/page/hubungan-erat-antara-bahasa-pemrograman-matematika-dan-fisika/</link>
		<comments>http://didats.net/page/hubungan-erat-antara-bahasa-pemrograman-matematika-dan-fisika/#comments</comments>
		<pubDate>Fri, 22 Jul 2011 04:15:20 +0000</pubDate>
		<dc:creator>Didats Triadi</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[general]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://didats.net/?p=933</guid>
		<description><![CDATA[Terus terang, karena ke-sok-tahu-an saya waktu sekolah, bahwa pelajaran matematika dan fisika tidak akan banyak berguna di kehidupan saya mendatang membuat saya versi sekarang jadi terlihat kerdil. Walaupun saya termasuk suka dengan matematika, tapi bisa dibilang pengalaman saya dengan matematika waktu sekolah dulu cuma sekedar mencari nilai. Ketika pembahasan tentang bab baru, maka bab yang [...]


Related posts:<ol><li><a href='http://didats.net/page/membedah-theme-didatsnet/' rel='bookmark' title='Permanent Link: Membedah theme Didats.net'>Membedah theme Didats.net</a> <small>Menjadi seorang web designer tentunya punya beban dan ego yang...</small></li>
<li><a href='http://didats.net/page/saya-bermimpi-jadi-presiden/' rel='bookmark' title='Permanent Link: Saya bermimpi jadi presiden'>Saya bermimpi jadi presiden</a> <small>Saya mungkin satu dari sekian banyak warga Indonesia yang risih,...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Terus terang, karena ke-sok-tahu-an saya waktu sekolah, bahwa pelajaran matematika dan fisika tidak akan banyak berguna di kehidupan saya mendatang membuat saya versi sekarang jadi terlihat kerdil. Walaupun saya termasuk suka dengan matematika, tapi bisa dibilang pengalaman saya dengan matematika waktu sekolah dulu cuma sekedar mencari nilai. Ketika pembahasan tentang bab baru, maka bab yang lama bisa dibilang saya tumpuk ke gudang.</p>
<p>Apalagi fisika. Saya tidak pernah suka dengan pelajaran fisika. Alasan saya dulu kalau tidak salah, Fisika menggunakan banyak rumus yang harus dihafal. Jadi satu soal fisika, bisa menggunakan lebih dari 3 rumus, dan semua saling berkaitan. Dan bodohnya saya, saya pernah menganggap bodoh soal yang menghitung berapa meter sebuah kereta yang sudah ngerem dari posisi ngerem mendadak.</p>
<p>Kebodohan itu tidak lantas berhenti ketika saya mengambil jurusan Teknik Informatika waktu kuliah dulu. Mata kuliah Kalkulus yang sampai berderet 3 itu memang menyenangkan buat saya. Tapi hanya sekadar menyenangkan. Ketika ditanya tentang Kalkulus 1 lagi, saya pasti menyerah.</p>
<p>Sekarang saya sadar. Ketika saya mulai hobi membuat permainan (game), ada banyak operasi matematika turut serta, walaupun sampai sekarang ini hanya permainan-permainan sederhana yang saya buat. Coba tengok gambar di bawah ini untuk bisa mengerti, bahwa permainan sederhanapun akan mengikutsertakan operasi matematika.<img class="size-full wp-image-934 alignnone" title="math" src="http://didats.net/wp-content/uploads/2011/07/math.jpg" alt="" width="500" height="246" /></p>
<h3>Bagaimana dengan Fisika?</h3>
<p>Banyak permainan berkategori <em>arcade</em> (apa bahasa Indonesianya?) seperti Angry Birds, atau Super mario menggunakan Fisika. Tak perlu yang muluk-muluk, untuk membuat sebuah objek melompat saja, pasti membutuhkan Fisika. Apalagi seperti Angry Birds yang menyertakan banyak rumus Fisika.</p>
<p>Jadi, sebelum keburu menyesal, saya mungkin akan mulai belajar Matematika dan Fisika dari pelajaran SMP. Kalau boleh, saya juga mau ikut deh belajar ke kelas. #halah.</p>


<p>Related posts:<ol><li><a href='http://didats.net/page/membedah-theme-didatsnet/' rel='bookmark' title='Permanent Link: Membedah theme Didats.net'>Membedah theme Didats.net</a> <small>Menjadi seorang web designer tentunya punya beban dan ego yang...</small></li>
<li><a href='http://didats.net/page/saya-bermimpi-jadi-presiden/' rel='bookmark' title='Permanent Link: Saya bermimpi jadi presiden'>Saya bermimpi jadi presiden</a> <small>Saya mungkin satu dari sekian banyak warga Indonesia yang risih,...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://didats.net/page/hubungan-erat-antara-bahasa-pemrograman-matematika-dan-fisika/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Kontes aplikasi web 10 Kilobyte</title>
		<link>http://didats.net/page/kontes-aplikasi-web-10-kilobyte/</link>
		<comments>http://didats.net/page/kontes-aplikasi-web-10-kilobyte/#comments</comments>
		<pubDate>Tue, 03 Aug 2010 07:14:21 +0000</pubDate>
		<dc:creator>Didats Triadi</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[kompetisi]]></category>
		<category><![CDATA[kontes]]></category>

		<guid isPermaLink="false">http://didats.net/?p=872</guid>
		<description><![CDATA[10k apart adalah kompetisi membuat aplikasi web yang kurang dari 10 Kilobyte, dengan persyaratan sebagai berikut: Ukuran total semua berkas harus kurang dari 10 Kilobyte; Berfungsi sama di peramban-peramban modern seperti Mozilla Firefox 3.6, Peramban Webkit (Chrome dan Safari), dan juga Internet Explorer versi 9. Librari Javascript yang boleh dipakai adalah JQuery, Prototype, dan Typekit. [...]


Related posts:<ol><li><a href='http://didats.net/page/ketaketik-dan-teektak-ditutup-sementara/' rel='bookmark' title='Permanent Link: KetaKetik dan Teektak ditutup sementara'>KetaKetik dan Teektak ditutup sementara</a> <small>Terbaru: KetaKetik dan Teektak sudah pindah ke server baru. Atas...</small></li>
<li><a href='http://didats.net/page/ketaketik-di-10k-apart/' rel='bookmark' title='Permanent Link: KetaKetik di 10k Apart'>KetaKetik di 10k Apart</a> <small>Salah satu aplikasi saya &#8220;How fast is your typing&#8220;, versi...</small></li>
<li><a href='http://didats.net/page/codeigniter-dan-facebook-graph-api/' rel='bookmark' title='Permanent Link: Codeigniter dan Facebook Graph API'>Codeigniter dan Facebook Graph API</a> <small>Saya ceritanya baru berhasil menggunakan Facebook Graph API dan Codeigniter....</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-873" title="10k" src="http://didats.net/wp-content/uploads/2010/08/10k.png" alt="" width="371" height="134" /><br />
<a href="http://10k.aneventapart.com/">10k apart</a> adalah kompetisi membuat aplikasi web yang kurang dari 10 Kilobyte, dengan persyaratan sebagai berikut:</p>
<ol>
<li>Ukuran total semua berkas harus kurang dari 10 Kilobyte;</li>
<li>Berfungsi sama di peramban-peramban modern seperti Mozilla Firefox 3.6, Peramban Webkit (Chrome dan Safari), dan juga Internet Explorer versi 9.</li>
<li>Librari Javascript yang boleh dipakai adalah JQuery, Prototype, dan Typekit.</li>
<li>Tidak boleh menggunakan pemrograman sisi server (server-side programming) seperti PHP, ASP dan teman-temannya. Aplikasi murni berjalan di sisi klien</li>
<li>Boleh menggunakan <em>web service</em> seperti Twitter, Google Web dan <em>web service</em> lain.</li>
</ol>
<p>Membuat aplikasi web itu memang tantangan, tapi membuatnya sekecil-kecilnya itu yang agak sulit. Saya sampai menggunakan aplikasi kompresi file yang menghilangkan spasi dan whitespace di semua berkas yang saya buat.</p>
<p>Oh, iya, kenapa ada IE9 di sini? jangan heran, karena Microsoft adalah sponsor utamanya.</p>
<p>Jangan lupa cek juga <a href="http://10k.aneventapart.com/Entry/40">aplikasi buatan saya yang sudah <em>nebeng</em> di sana</a>.</p>


<p>Related posts:<ol><li><a href='http://didats.net/page/ketaketik-dan-teektak-ditutup-sementara/' rel='bookmark' title='Permanent Link: KetaKetik dan Teektak ditutup sementara'>KetaKetik dan Teektak ditutup sementara</a> <small>Terbaru: KetaKetik dan Teektak sudah pindah ke server baru. Atas...</small></li>
<li><a href='http://didats.net/page/ketaketik-di-10k-apart/' rel='bookmark' title='Permanent Link: KetaKetik di 10k Apart'>KetaKetik di 10k Apart</a> <small>Salah satu aplikasi saya &#8220;How fast is your typing&#8220;, versi...</small></li>
<li><a href='http://didats.net/page/codeigniter-dan-facebook-graph-api/' rel='bookmark' title='Permanent Link: Codeigniter dan Facebook Graph API'>Codeigniter dan Facebook Graph API</a> <small>Saya ceritanya baru berhasil menggunakan Facebook Graph API dan Codeigniter....</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://didats.net/page/kontes-aplikasi-web-10-kilobyte/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Codeigniter dan Facebook Graph API</title>
		<link>http://didats.net/page/codeigniter-dan-facebook-graph-api/</link>
		<comments>http://didats.net/page/codeigniter-dan-facebook-graph-api/#comments</comments>
		<pubDate>Tue, 13 Jul 2010 12:09:49 +0000</pubDate>
		<dc:creator>Didats Triadi</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[graphapi]]></category>

		<guid isPermaLink="false">http://didats.net/?p=847</guid>
		<description><![CDATA[Saya ceritanya baru berhasil menggunakan Facebook Graph API dan Codeigniter. Ini saya lakukan karena saya sudah cukup menyerah dengan ribetnya RestAPI Client yang diberikan Facebook. Karena kasus saya agak berbeda, yaitu saya punya beberapa aplikasi terpisah dalam satu instalasi Codeigniter. Setelah melihat-lihat, ternyata ada cara lain yang bisa kita lakukan. Dan yang paling mudah dan [...]


Related posts:<ol><li><a href='http://didats.net/page/ketaketik-dan-teektak-ditutup-sementara/' rel='bookmark' title='Permanent Link: KetaKetik dan Teektak ditutup sementara'>KetaKetik dan Teektak ditutup sementara</a> <small>Terbaru: KetaKetik dan Teektak sudah pindah ke server baru. Atas...</small></li>
<li><a href='http://didats.net/page/belajar-javascript-lebih-lanjut-dengan-jquery-2/' rel='bookmark' title='Permanent Link: Belajar Javascript lebih lanjut dengan JQuery (2)'>Belajar Javascript lebih lanjut dengan JQuery (2)</a> <small>Membuat form dengan AJAX Membuat form adalah hal biasa dalam...</small></li>
<li><a href='http://didats.net/page/tutorial-wordpress-membuat-daftar-komentar-lebih-menarik/' rel='bookmark' title='Permanent Link: Tutorial WordPress: Membuat daftar komentar lebih menarik'>Tutorial WordPress: Membuat daftar komentar lebih menarik</a> <small>Saya masih saja agak kesulitan untuk menulis tutorial baru tentang...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://didats.net/games/ketaketik">Saya ceritanya baru berhasil menggunakan Facebook Graph API</a> dan <a href="http://codeigniter.com">Codeigniter</a>. Ini saya lakukan karena saya sudah cukup menyerah dengan ribetnya RestAPI Client yang diberikan Facebook. Karena kasus saya agak berbeda, yaitu saya punya beberapa aplikasi terpisah dalam satu instalasi Codeigniter. Setelah melihat-lihat, ternyata ada cara lain yang bisa kita lakukan. Dan yang paling mudah dan cukup aman diimplementasikan adalah Facebook Graph API ini.</p>
<p>Catatan ini kiranya bisa berguna buat teman-teman yang lain atau yang mungkin di kemudian hari dapat proyek ini. Juga sebagai catatan saya, biar nanti kalau ada proyek lain saya tinggal melihat dokumentasi yang saya buat.</p>
<p>Yang perlu disiapkan adalah 1 librari dan 1 file controller dan 1 file view. Tidak perlu unduh (<em>download</em>) yang lain. Facebook Graph API ini memang jauh lebih simpel. Dan saya sangat menikmati proses belajar ini. Dan perlu diketahui, bahwa tutorial kali ini tidak akan mencakup banyak hal. Saya hanya mengharapkan anda mengerti konsep baru yang ditawarkan Facebook ini.</p>
<p>Sebelum memulai, pastikan beberapa hal berikut ini:</p>
<ol>
<li>Versi PHP yang dipakai adalah versi 5</li>
<li>Pengetesan skrip tidak bisa dilakukan di server lokal. Jadi anda harus punya hosting dan harus online</li>
<li>Codeigniter yang saya pakai 1.7.2, saya kurang tahu apa tetap akan sama jika menggunakan versi lama</li>
</ol>
<h3>Langkah pertama, buat aplikasi</h3>
<p>Ini adalah langkah wajib. Karena dengan mendaftarkan aplikasi kita, Facebook akan memberikan 3 hal penting yang nantinya kita butuhkan. Yaitu Application ID, Application Secret dan API Key. [<a href="http://www.facebook.com/developers/createapp.php">Klik link ini untuk mendaftarkan aplikasi anda</a>]. Yang perlu anda isi adalah <strong>Application Name</strong> dan <strong>Connect-&gt;Connect URL</strong>.</p>
<h3>Langkah kedua, unduh librari Curl</h3>
<p>Librari Curl yang saya pakai ini memang hebat. Mudah sekali pakainya. Bisa diunduh dari link ini: <a href="http://codeigniter.com/wiki/Curl_library/" target="_blank">http://codeigniter.com/wiki/Curl_library/</a></p>
<h3>Langkah ketiga, konfigurasi</h3>
<p><code>Buka file /application/config/config.php, lakukan beberapa hal berikut ini:</code></p>
<ol>
<li>Index page dibuat kosong. <code>$config['index_page'] = "";</code> (baris 26)</li>
<li>URI Protocol dibuat jadi ORIG_PATH_INFO. <code>$config['uri_protocol']	= "ORIG_PATH_INFO";</code> (baris 44)</li>
<li>On-kan pilihan query string. <code>$config['enable_query_strings'] = TRUE;</code> (baris 151)</li>
</ol>
<h3>Langkah keempat, htaccess</h3>
<p>Karena konfigurasi codeigniter saya tidak menggunakan &#8220;index.php&#8221;, maka saya butuh berkas (file) htaccess. Berikut isinya:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">RewriteEngine on
RewriteCond <span style="color: #007800;">$1</span> <span style="color: #000000; font-weight: bold;">!</span>^<span style="color: #7a0874; font-weight: bold;">&#40;</span>index\.php<span style="color: #000000; font-weight: bold;">|</span>assets<span style="color: #7a0874; font-weight: bold;">&#41;</span>
RewriteRule ^<span style="color: #7a0874; font-weight: bold;">&#40;</span>.<span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>$ <span style="color: #000000; font-weight: bold;">/</span>projects<span style="color: #000000; font-weight: bold;">/</span>fbci<span style="color: #000000; font-weight: bold;">/</span>index.php<span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">$1</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>L<span style="color: #7a0874; font-weight: bold;">&#93;</span></pre></div></div>

<p>Sesuaikan path ini:<code>/projects/fbci/index.php</code> dengan aplikasi anda.</p>
<h3>Langkah kelima, controller</h3>
<p>Kita hanya punya 1 berkas controller. Saya menggunakan controller yang diberikan Codeigniter saat kita instalasi, yaitu controller Welcome.</p>
<p>Controller itu nantinya akan punya 2 method, yang pertama sebagai gerbang pertama sebelum pengguna (user) masuk ke Facebook. Dan yang kedua sebagai penerima data dari Facebook. Berikut adalah gambar perjalanan aplikasi kita yang berkomunikasi dengan Facebook (semoga ngerti, saya kurang bisa gambar).</p>
<p><img class="alignnone size-full wp-image-851" title="roadmap" src="http://didats.net/wp-content/uploads/2010/07/roadmap.gif" alt="" width="469" height="366" /></p>
<p>Dari gambar di atas, berikut detail yang bisa saya berikan:</p>
<ol>
<li>Ketika pengguna mengeklik sebuah tautan di aplikasi kita (bisa berupa link, tombol, atau apa saja)</li>
<li>Aplikasi kita mengarahkan pengguna untuk login dulu ke Facebook dan atau menerima konfirmasi tentang informasi apa saja yang akan aplikasi kita butuhkan. Tautan itu seperti ini:<br />
h<code>ttps://graph.facebook.com/oauth/authorize?client_id=[client_app_id]&amp;redirect_uri=[redirect_uri]</code></li>
<li>Dari tautan di atas, [client_app_id] diambil dari kode aplikasi ketika kita selesai mendaftarkan aplikasi di Facebook. Sedangkan [redirect_uri] adalah URL yang akan kita gunakan untuk menangkap kode dari Facebook berupa <code>$_GET['code']</code>. Maka dari itu, aplikasi kita harus menerima query string (lihat bagian konfigurasi di atas).</li>
<li>Setelah Facebook mengirim kode, kita perlu akses token untuk mendapatkan data-data pengguna Facebook. Untuk mendapatkan akses token, kita perlu menghubungi lagi Facebook dengan mengirim data kode (yang kita dapat di nomor 2), [redirect_uri] dan [secret_code].</li>
<li>Setelah itu Facebook akan mengirimkan akses token dalam format JSON.</li>
<li>Setelah punya akses token, kita bisa bebas meminta data-data pengguna ke Facebook.</li>
</ol>
<h3>Langkah keenam</h3>
<p>Ini adalah langkah terakhir tutorial kali ini, yaitu mengunduh berkasnya. Saya sadar bahwa tidak ada keterangan yang lengkap sekali untuk level pemula. Tapi percayalah, saya hanya bisa mengarahkan dan sedikit memberitahu cara kerja Graph API ini. <a href="http://graph.facebook.com/">Dokumentasi Graph API lebih lengkap dan siap disantap</a>.</p>
<p><a href="http://didats.net/wp-content/uploads/2010/07/fbci.zip"><img src="/wp-content/themes/sederhana/images/unduh.jpg" alt="unduh" /></a> <a href="http://didats.net/projects/fbci"><img src="/wp-content/themes/sederhana/images/demo.jpg" alt="demo" /></a></p>
<p>Berikut adalah kode untuk Controller:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">class</span> Welcome <span style="color: #000000; font-weight: bold;">extends</span> Controller <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// beberapa detail aplikasi kita</span>
	<span style="color: #666666; font-style: italic;">// ini semua harus diisi.</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$fb_appid</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$fb_secret</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$fb_api</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">function</span> Welcome<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		parent<span style="color: #339933;">::</span><span style="color: #004000;">Controller</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">helper</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;url&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">function</span> index<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'app_id'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">fb_appid</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">view</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'welcome_message'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$data</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">function</span> fb<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">library</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;curl&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #666666; font-style: italic;">// method untuk redirect balik dari facebook</span>
		<span style="color: #666666; font-style: italic;">// setelah pemanggilan pertama, facebook mengirimkan sebuah kode </span>
		<span style="color: #666666; font-style: italic;">// yang bisa kita tangkap lewat $_GET['code']</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// cek dulu, apa $_GET['code'] ada</span>
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'code'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #666666; font-style: italic;">// buat url untuk mengambil token</span>
			<span style="color: #000088;">$url</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'https://graph.facebook.com/oauth/access_token?client_id='</span><span style="color: #339933;">.</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">fb_appid</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&amp;redirect_uri='</span><span style="color: #339933;">.</span>site_url<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/welcome/fb&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&amp;client_secret='</span><span style="color: #339933;">.</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">fb_secret</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&amp;code='</span><span style="color: #339933;">.</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'code'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #666666; font-style: italic;">// ambil token lewat curl</span>
			<span style="color: #000088;">$token_data</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">curl</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">simple_get</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #666666; font-style: italic;">// ambil kode token saja, dengan regular expression</span>
			<span style="color: #666666; font-style: italic;">// arti tanda ([^&amp;]+) adalah:</span>
			<span style="color: #666666; font-style: italic;">// ambil semua karakter asal bukan tanda &amp;</span>
			<span style="color: #990000;">preg_match</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/access_token=([^&amp;]+)/&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$token_data</span><span style="color: #339933;">,</span><span style="color: #000088;">$token</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #666666; font-style: italic;">// kode token ada di variabel token[1]</span>
			<span style="color: #000088;">$access_token</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$token</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #666666; font-style: italic;">// pengambilan token selesai, sekarang ambil userid, nama</span>
			<span style="color: #000088;">$uri</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'https://graph.facebook.com/me?access_token='</span><span style="color: #339933;">.</span><span style="color: #000088;">$access_token</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$data</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">curl</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">simple_get</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$uri</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #666666; font-style: italic;">// decode data</span>
			<span style="color: #000088;">$fb</span> <span style="color: #339933;">=</span> <span style="color: #990000;">json_decode</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$fb_id</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$fb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">id</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #666666; font-style: italic;">// ambil nama dan foto pengguna</span>
			<span style="color: #000088;">$fb_userdata</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">curl</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">simple_get</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;https://graph.facebook.com/&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$fb_id</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;?fields=name,picture&amp;access_token=&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$access_token</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #666666; font-style: italic;">//echo &quot;https://graph.facebook.com/&quot;.$fb_id.&quot;?fields=name,picture&amp;access_token=&quot;.$access_token;</span>
&nbsp;
			<span style="color: #000088;">$fb_user</span> <span style="color: #339933;">=</span> <span style="color: #990000;">json_decode</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fb_userdata</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #000088;">$data</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'fbuser'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'id'</span><span style="color: #339933;">=&gt;</span><span style="color: #000088;">$fb_id</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'avatar'</span><span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$fb_user</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">picture</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'nama'</span><span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$fb_user</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">name</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #666666; font-style: italic;">//print_r($data);</span>
&nbsp;
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">elseif</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'error_reason'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #666666; font-style: italic;">// untuk menangkap user yang klik &quot;Dont Allow&quot; atau &quot;Cancel di Facebook&quot;</span>
			<span style="color: #666666; font-style: italic;">// buat variabel untuk ditampilkan di view</span>
			<span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'tolak'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Uh oh, saya ditolak T_T&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">view</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;welcome_message&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>



<p>Related posts:<ol><li><a href='http://didats.net/page/ketaketik-dan-teektak-ditutup-sementara/' rel='bookmark' title='Permanent Link: KetaKetik dan Teektak ditutup sementara'>KetaKetik dan Teektak ditutup sementara</a> <small>Terbaru: KetaKetik dan Teektak sudah pindah ke server baru. Atas...</small></li>
<li><a href='http://didats.net/page/belajar-javascript-lebih-lanjut-dengan-jquery-2/' rel='bookmark' title='Permanent Link: Belajar Javascript lebih lanjut dengan JQuery (2)'>Belajar Javascript lebih lanjut dengan JQuery (2)</a> <small>Membuat form dengan AJAX Membuat form adalah hal biasa dalam...</small></li>
<li><a href='http://didats.net/page/tutorial-wordpress-membuat-daftar-komentar-lebih-menarik/' rel='bookmark' title='Permanent Link: Tutorial WordPress: Membuat daftar komentar lebih menarik'>Tutorial WordPress: Membuat daftar komentar lebih menarik</a> <small>Saya masih saja agak kesulitan untuk menulis tutorial baru tentang...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://didats.net/page/codeigniter-dan-facebook-graph-api/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>Internet Explorer 6</title>
		<link>http://didats.net/page/internet-explorer-6/</link>
		<comments>http://didats.net/page/internet-explorer-6/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 21:03:26 +0000</pubDate>
		<dc:creator>Didats Triadi</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[opinion]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[ie6]]></category>
		<category><![CDATA[ie7]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[stop]]></category>
		<category><![CDATA[stopie6]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://didats.net/?p=569</guid>
		<description><![CDATA[Kalau mau dibilang, Internet Explorer 6 adalah browser yang paling dibenci oleh 99% praktisi web di seluruh dunia. Walau tetap dimaki-maki, dibenci, tapi mereka-mereka tetap saja terus mencari cara bagaimana mereka bisa men-support ie6. Tak lain dan tak bukan, karena memang pengguna ie6 masih di ambang-ambang. Antara besar dan kecil. Diperkirakan ada sekitar 15% user [...]


Related posts:<ol><li><a href='http://didats.net/page/codeigniter-dan-facebook-graph-api/' rel='bookmark' title='Permanent Link: Codeigniter dan Facebook Graph API'>Codeigniter dan Facebook Graph API</a> <small>Saya ceritanya baru berhasil menggunakan Facebook Graph API dan Codeigniter....</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-570" title="ie6" src="http://didats.net/wp-content/uploads/2009/03/ie6.png" alt="ie6" width="305" height="331" />Kalau mau dibilang, Internet Explorer 6 adalah browser yang paling dibenci oleh 99% praktisi web di seluruh dunia. Walau tetap dimaki-maki, dibenci, tapi mereka-mereka tetap saja terus mencari cara bagaimana mereka bisa men-support ie6.</p>
<p>Tak lain dan tak bukan, karena memang pengguna ie6 masih di ambang-ambang. Antara besar dan kecil. <a href="http://www.w3schools.com/browsers/browsers_stats.asp">Diperkirakan ada sekitar 15% user</a> yang masih menggunakan ie6. Angka yang cukup lumayan.</p>
<p>Tapi sayangnya, Microsoft sebagai si empunya yang harusnya punya andil dalam memberantas si ie6 ini. Mungkin dengan memberikan semacam <em>alert</em> kepada user untuk meng<em>upgrade</em> browsernya. Dengan peringatan-peringatan seperti itu, bisa jadi angka pengguna bisa berkurang secara drastis.</p>
<p>Berita buruknya, anda sedang bermimpi. Microsoft takkan melakukan itu.</p>
<h3>Stop dukungan ie6!</h3>
<p>Lalu, jika kita tak bisa berpangku tangan ke Microsoft, apa kita harus diam saja? Atau bahkan malah memanjakan mereka (pengguna ie6)?</p>
<p>Nah, maka dari itu saya membuat <a href="http://didats.net/ie6">halaman khusus untuk ie6</a>, dan memberikan semacam sedikit pengetahuan kepada usernya untuk segera update. Dan sebelum mereka upgrade browser mereka, sampai kapanpun mereka tak akan pernah bisa mengakses situs saya. Walaupun saya sadar, ke depan, saya akan kehilangan sekitar 10% pengunjung.</p>
<h3>Bagaimana caranya?</h3>
<p>Untuk pengguna wordpress, atau CMS apapun yang berbasiskan PHP, bisa menaruh kode di bawah ini di bagian header. Untuk wordpress, biasanya file header.php, sebelum tag body di mulai.</p>
<p><code><br />
&lt;?php if (ereg('MSIE 6',$_SERVER['HTTP_USER_AGENT'])) { ?&gt;<br />
&lt;meta http-equiv="refresh" content="0;URL=http://url.di.sini/" /&gt;<br />
&lt;?php } ?&gt;<br />
</code></p>
<h3>Yuuuk! kita kampanye damai untuk stop ie6!</h3>


<p>Related posts:<ol><li><a href='http://didats.net/page/codeigniter-dan-facebook-graph-api/' rel='bookmark' title='Permanent Link: Codeigniter dan Facebook Graph API'>Codeigniter dan Facebook Graph API</a> <small>Saya ceritanya baru berhasil menggunakan Facebook Graph API dan Codeigniter....</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://didats.net/page/internet-explorer-6/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Tutorial WordPress: Membuat daftar komentar lebih menarik</title>
		<link>http://didats.net/page/tutorial-wordpress-membuat-daftar-komentar-lebih-menarik/</link>
		<comments>http://didats.net/page/tutorial-wordpress-membuat-daftar-komentar-lebih-menarik/#comments</comments>
		<pubDate>Thu, 28 Feb 2008 21:04:05 +0000</pubDate>
		<dc:creator>Didats Triadi</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[comments]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[web design]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://didats.net/page/tutorial-wordpress-membuat-daftar-komentar-lebih-menarik/</guid>
		<description><![CDATA[Saya masih saja agak kesulitan untuk menulis tutorial baru tentang membuat wordpress theme. Dikarenakan banyak hal yang terkait satu sama lain. Jadi mungkin akan lebih baik daripada tidak sama sekali, saya mencoba menulis tutorial yang masih berhubungan dengan wordpress, tapi hanya sebagian saja. Dan kali ini tentang bagaimana kita memanipulasi daftar komentar, dengan memberikannya sedikit [...]


Related posts:<ol><li><a href='http://didats.net/page/tutorial-membuat-template-wordpress-1/' rel='bookmark' title='Permanent Link: Tutorial: Membuat template WordPress (1)'>Tutorial: Membuat template WordPress (1)</a> <small>Siapapun yang punya blog dengan mesin WordPress tentunya ingin membuat...</small></li>
<li><a href='http://didats.net/page/tutorial-membuat-template-wordpress-3-header/' rel='bookmark' title='Permanent Link: Tutorial: Membuat template WordPress(3) &#8211; Header'>Tutorial: Membuat template WordPress(3) &#8211; Header</a> <small>Lanjut lagi. Setelah membahas masalah desain, kini kita berlanjut ke...</small></li>
<li><a href='http://didats.net/page/tutorial-membuat-template-wordpress-2-desain-template/' rel='bookmark' title='Permanent Link: Tutorial: Membuat template wordpress (2) &#8211; Desain template'>Tutorial: Membuat template wordpress (2) &#8211; Desain template</a> <small>Yeah, akhirnya tutorial bagian pertama dilanjutkan. Dari beberapa komentar dan...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://didats.net/wp-content/uploads/2008/02/comment.jpg" class="floatleft" alt="Comment List" />Saya masih saja agak kesulitan untuk menulis tutorial baru tentang membuat wordpress theme. Dikarenakan banyak hal yang terkait satu sama lain. Jadi mungkin akan lebih baik daripada tidak sama sekali, saya mencoba menulis tutorial yang masih berhubungan dengan wordpress, tapi hanya sebagian saja. Dan kali ini tentang bagaimana kita memanipulasi daftar komentar, dengan memberikannya sedikit CSS agar terlihat lebih berwarna dan tentu saja menarik.</p>
<p>Hasil dari tutorial ini adalah membuat kotak komentar menjadi warna strip. Bahasa gampangnya, punya warna berbeda di nomor ganjil dan genapnya. Selain itu, saya juga membahas bagaimana membuat komentar dari sang author atau sang empunya blog berbeda sendiri dari warna-warna lain seperti di blog ini.</p>
<p><span id="more-490"></span></p>
<h3>Comments.php</h3>
<p>Daftar-daftar komentar dan form komentar biasanya berada di file <code>comments.php</code> di theme wordpress yang sedang digunakan. Saya harapkan jangan berbuat hal yang macam-macam jika anda tidak tahu apa yang sedang anda lakukan. Seperti komentar di bagian bawah file comments.php, <em>if you delete this the sky will fall on your head</em>. Hehehe&#8230;</p>
<p>Buka comments.php di editor kesayangan anda. Jangan tanya saya editornya. Yang terpenting adalah, anda bisa mengubahnya. Mau pakai software apa saja, itu tergantung kesukaan.</p>
<p>Setelah membukanya, carilah kode di bawah ini</p>
<p>[source:php]foreach ($comments as $comment) :[/source]</p>
<p>Kode diatas bermaksud mencoba membaca semua komentar yang ada dengan menggunakan teknik iterasi (perulangan). Jadi proses yang berada di dalam kode tersebut, dieksekusi secara terus menerus sampai dengan komentar untuk post yang bersangkutan habis.</p>
<h3>Membuat warna strip</h3>
<p>Untuk membuat warna strip di blok komentar, anda membutuhkan sebuah variabel penunjuk status. Kita bisa membuat variabel sendiri bernama katakanlah, <code>j</code>. Jadi, ubah kode <code>foreach</code> di atas menjadi seperti ini kira-kira.</p>
<p>[source:php]&lt;?php<br />
$j=0;<br />
foreach ($comments as $comment) :<br />
?&gt;[/source]</p>
<p>Artinya, kita mulai membuat sebuah variabel bernama <code>j</code> dan langsung memberikannya sebuah nilai 0.</p>
<p>Lalu tambahkan kode ini persis di bawah baris <code>foreach</code>:</p>
<p>[source:php]if($j%2==0) $class=&#8221;comment-1&#8243;;<br />
else $class=&#8221;comment-2&#8243;;<br />
$j++;[/source]</p>
<p>Artinya,  jika nilai <code>j</code> habis dibagi dengan angka 2 (artinya nilai adalah genap) maka kita membuat sebuah variabel <code>$class</code> yang berisi &#8220;comment-1&#8243;. Selain itu (artinya nilai adalah ganjil) maka variabel <code>$class</code> kita isi dengan &#8220;comment-2&#8243;. Setelah itu, nilai <code>$j</code> ditambahkan satu.</p>
<p>Dengan kode di atas, maka kita membuat 2 buah blok komentar dengan masing-masingnya punya keunikan tersendiri dari nama class.</p>
<p>Kemudian ubah blok komentar anda dengan melakukan penambahan class seperti di bawah ini:</p>
<p><code>&lt;div class="comments <strong>&lt;?php echo $class ?&gt;</strong>" id="comment-&lt;?php comment_ID();?&gt;"&gt;</code></p>
<p>Situasi blok komentar mungkin bisa saja berbeda, tapi yang jelas, biasanya ada di semua theme wordpress. Diperhatikan saja pola-nya. Pada prinsipnya, hanya untuk menambahkan sebuah class unik di setiap blok ganjil dan genap.</p>
<p>Dan sudah, <em>halas</em>, <em>bas</em>, <em>finish</em>. Itu saja. Gampang? oh iyaaa&#8230;</p>
<h3>Membuat style sendiri untuk admin blog</h3>
<p>Tidak jauh berbeda dengan bagian atas, untuk bagian ini hanya perlu membutuhkan kondisi saja. Konsepnya, anda cuma butuh mencocokkan email yang anda gunakan untuk verifikasi sebagai admin.</p>
<p>Langkah pertama, buat dulu sebuah variabel tepat di bawah variabel <code>$j</code> yang sudah kita tulis di bagian atas. Lengkapnya jadi begini.</p>
<p>[source:php]&lt;?php<br />
$j=0;<br />
$author_class = &#8220;&#8221;;<br />
foreach ($comments as $comment) :<br />
?&gt;[/source]</p>
<p>Kemudian, tinggal menaruh kondisi tepat di bawah kondisi nilai genap dan ganjil yang sudah kita buat di atas. Lengkapnya jadi begini:</p>
<p>[source:php]if($j%2==0) $class=&#8221;comment-1&#8243;;<br />
else $class=&#8221;comment-2&#8243;;<br />
$j++;<br />
if($comment-&gt;comment_author_email == &#8220;didats@dimanasaja.com&#8221;) $author_class = &#8220;byauthor&#8221;;[/source]</p>
<p>Nah, langkah terakhir tinggal bagaimana kita menaruh variabel $author_class di bagian blok komentar. Tinggal edit saja bagian atas menjadi seperti ini:</p>
<p>[source:php]&lt;div class=&#8221;comments &lt;?php echo $class.&#8221; &#8220;.$author_class ?&gt; &#8221; id=&#8221;comment-&lt;?php comment_ID();?&gt;&#8221;&gt;[/source]</p>
<p>Lengkapnya, jadi seperti ini:</p>
<p>[source:php]&lt;?php<br />
$x=0;<br />
$author_class = &#8220;&#8221;;<br />
foreach ($comments as $comment) :<br />
if($j%2==0) $class=&#8221;comment-1&#8243;;<br />
else $class=&#8221;comment-2&#8243;;<br />
$j++;</p>
<p>if($comment-&gt;comment_author_email == &#8220;didats@dimanasaja.com&#8221;) $author_class = &#8220;byauthor&#8221;;<br />
?&gt;<br />
&lt;div class=&#8221;comments &lt;?php echo $class.&#8221; &#8220;.$author_class ?&gt; &#8221; id=&#8221;comment-&lt;?php comment_ID();?&gt;&#8221;&gt;[/source]</p>
<h3>Bagian CSS</h3>
<p>Memanipulasi theme wordpress sudah, sekarang saatnya kita memberikan sebuah penyelesaian akhir atas manipulasi yang telah kita buat. Yang perlu diingat, akan ada 3 buat class baru yang harus kita definisikan di file style.css yang ada di theme aktif. Yaitu, class <code>comment-1</code>, <code>comment-2</code>, dan <code>byauthor</code>.</p>
<p>Buka file <code>style.css</code>, dan tempatkan kursor di bagian paling akhir. Tulis seperti ini:</p>
<p>[source:css].comment-1 {<br />
background:#F1F0DC;<br />
}<br />
.comment-2 {<br />
background:#F7F7F7;<br />
}<br />
.byauthor {<br />
background:#EFEFEF !important;<br />
border-top:1px solid #999;<br />
border-bottom:1px solid #999;<br />
}[/source]</p>
<p>Artinya, kita membuat blok komentar yang bernilai genap dengan background berwarna agak orange, dan blok komentar yang ganjil dengan background berwarna abu-abu terang. Sedangkan untuk si author, memberi warna abu-abu terang yang lebih gelap sedikit dari blok ganjil, serta menambahkan border di atas dan di bawah.</p>
<p>Ternyata memang mudah, kan? :P</p>


<p>Related posts:<ol><li><a href='http://didats.net/page/tutorial-membuat-template-wordpress-1/' rel='bookmark' title='Permanent Link: Tutorial: Membuat template WordPress (1)'>Tutorial: Membuat template WordPress (1)</a> <small>Siapapun yang punya blog dengan mesin WordPress tentunya ingin membuat...</small></li>
<li><a href='http://didats.net/page/tutorial-membuat-template-wordpress-3-header/' rel='bookmark' title='Permanent Link: Tutorial: Membuat template WordPress(3) &#8211; Header'>Tutorial: Membuat template WordPress(3) &#8211; Header</a> <small>Lanjut lagi. Setelah membahas masalah desain, kini kita berlanjut ke...</small></li>
<li><a href='http://didats.net/page/tutorial-membuat-template-wordpress-2-desain-template/' rel='bookmark' title='Permanent Link: Tutorial: Membuat template wordpress (2) &#8211; Desain template'>Tutorial: Membuat template wordpress (2) &#8211; Desain template</a> <small>Yeah, akhirnya tutorial bagian pertama dilanjutkan. Dari beberapa komentar dan...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://didats.net/page/tutorial-wordpress-membuat-daftar-komentar-lebih-menarik/feed/</wfw:commentRss>
		<slash:comments>66</slash:comments>
		</item>
		<item>
		<title>Published My Portfolio</title>
		<link>http://didats.net/page/published-my-portfolio/</link>
		<comments>http://didats.net/page/published-my-portfolio/#comments</comments>
		<pubDate>Sat, 23 Feb 2008 20:53:59 +0000</pubDate>
		<dc:creator>Didats Triadi</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://didats.net/page/published-my-portfolio/</guid>
		<description><![CDATA[Finally, My Portfolio page has published. It&#8217;s quite hard to choose which works that I can show to public, since many of my works is not for public. Err&#8230; I mean, there are clients coming from web studio, and don&#8217;t want their clients know who behind the project is. The terminology Portfolio items is a [...]


Related posts:<ol><li><a href='http://didats.net/page/setelah-portfolio-saatnya-wordpress-themes/' rel='bookmark' title='Permanent Link: Setelah Portfolio, saatnya WordPress Themes'>Setelah Portfolio, saatnya WordPress Themes</a> <small>Halaman portfolio kini sudah menjadi bagian dari blog ini. Perlu...</small></li>
<li><a href='http://didats.net/page/membedah-theme-didatsnet/' rel='bookmark' title='Permanent Link: Membedah theme Didats.net'>Membedah theme Didats.net</a> <small>Menjadi seorang web designer tentunya punya beban dan ego yang...</small></li>
<li><a href='http://didats.net/page/tutorial-wordpress-membuat-daftar-komentar-lebih-menarik/' rel='bookmark' title='Permanent Link: Tutorial WordPress: Membuat daftar komentar lebih menarik'>Tutorial WordPress: Membuat daftar komentar lebih menarik</a> <small>Saya masih saja agak kesulitan untuk menulis tutorial baru tentang...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Finally, <a href="http://didats.net/portfolio" title="Portfolio of Didats Triadi">My Portfolio page</a> has published. It&#8217;s quite hard to choose which works that I can show to public, since many of my works is not for public. Err&#8230; I mean, there are clients coming from web studio, and don&#8217;t want their clients know who behind the project is.</p>
<h3>The terminology</h3>
<p>Portfolio items is a post from wordpress. It just separated with the category. That&#8217;s why if you has subscribed my feed, all of the portfolio items showed.</p>
<p>I did the portfolio the same as Sideblog on the front page. I didn&#8217;t use any plugin, it just the category. The portfolio items are under portfolio category, and the sideblog items are under sideblog category.</p>
<p><span id="more-478"></span></p>
<p>What I did on the portfolio page is like this:</p>
<p>[source:php]&lt;?php if($post-&gt;ID == 430) { ?&gt;<br />
&lt;div id=&#8221;theportfolio&#8221;&gt;<br />
&lt;?php<br />
$i = 0;<br />
$lastposts = get_posts(&#8216;numberposts=20&amp;category=19&#8242;);<br />
foreach($lastposts as $post) :<br />
setup_postdata($post);<br />
?&gt;<br />
&lt;div class=&#8221;portfolio-content&#8221;&gt;<br />
&lt;h3&gt;&lt;a href=&#8221;&lt;?php the_permalink() ?&gt;&#8221; rel=&#8221;bookmark&#8221; title=&#8221;Permanent Link to &lt;?php the_title(); ?&gt;&#8221;&gt;&lt;?php the_title(); ?&gt;&lt;/a&gt;&lt;/h3&gt;<br />
&lt;div class=&#8221;portfolio-entry&#8221;&gt;<br />
&lt;?php the_content() ?&gt;<br />
&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;?php endforeach; ?&gt;<br />
&lt;/div&gt;&lt;!&#8211; /#theportfolio &#8211;&gt;<br />
&lt;?php } ?&gt;[/source]</p>
<p>Yes, first thing, you should know the ID of the page that you want to put the post items. You can see the ID for each page from the &#8220;Manage Page&#8221; menu on the admin panel of wordpress. Once you got the ID, you can put conditional scripts on page.php located on your theme directory.</p>
<p>[source:php]&lt;?php if($post-&gt;ID == 430) { ?&gt;[/source]</p>
<p>Then you can put your <a href="codex.wordpress.org/Template_Tags/get_posts">get_post</a> code after the conditional scripts. Dont&#8217; forget to close the area by putting this at the end of area:</p>
<p>[source:php]&lt;?php } // conditional page ID ?&gt;[/source]</p>
<p>Yes, that&#8217;s all.</p>


<p>Related posts:<ol><li><a href='http://didats.net/page/setelah-portfolio-saatnya-wordpress-themes/' rel='bookmark' title='Permanent Link: Setelah Portfolio, saatnya WordPress Themes'>Setelah Portfolio, saatnya WordPress Themes</a> <small>Halaman portfolio kini sudah menjadi bagian dari blog ini. Perlu...</small></li>
<li><a href='http://didats.net/page/membedah-theme-didatsnet/' rel='bookmark' title='Permanent Link: Membedah theme Didats.net'>Membedah theme Didats.net</a> <small>Menjadi seorang web designer tentunya punya beban dan ego yang...</small></li>
<li><a href='http://didats.net/page/tutorial-wordpress-membuat-daftar-komentar-lebih-menarik/' rel='bookmark' title='Permanent Link: Tutorial WordPress: Membuat daftar komentar lebih menarik'>Tutorial WordPress: Membuat daftar komentar lebih menarik</a> <small>Saya masih saja agak kesulitan untuk menulis tutorial baru tentang...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://didats.net/page/published-my-portfolio/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Membedah theme Didats.net</title>
		<link>http://didats.net/page/membedah-theme-didatsnet/</link>
		<comments>http://didats.net/page/membedah-theme-didatsnet/#comments</comments>
		<pubDate>Thu, 14 Feb 2008 20:56:52 +0000</pubDate>
		<dc:creator>Didats Triadi</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[general]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://didats.net/page/membedah-theme-didatsnet/</guid>
		<description><![CDATA[Menjadi seorang web designer tentunya punya beban dan ego yang besar terhadap situsnya sendiri. Dengan segenap usaha, daya, jurus-jurus maut, pokoknya semua kemampuan dikeluarkan demi mempercantik situs blognya sendiri. Bukan sekali dua kali, setelah selesai proses design, dan setelah puas, lalu beristirahat sebentar. Setelah beberapa menit kembali di depan macbook kesayangan, ternyata hati sudah berubah. [...]


Related posts:<ol><li><a href='http://didats.net/page/published-my-portfolio/' rel='bookmark' title='Permanent Link: Published My Portfolio'>Published My Portfolio</a> <small>Finally, My Portfolio page has published. It&#8217;s quite hard to...</small></li>
<li><a href='http://didats.net/page/tutorial-wordpress-membuat-daftar-komentar-lebih-menarik/' rel='bookmark' title='Permanent Link: Tutorial WordPress: Membuat daftar komentar lebih menarik'>Tutorial WordPress: Membuat daftar komentar lebih menarik</a> <small>Saya masih saja agak kesulitan untuk menulis tutorial baru tentang...</small></li>
<li><a href='http://didats.net/page/belajar-javascript-lebih-lanjut-dengan-jquery-2/' rel='bookmark' title='Permanent Link: Belajar Javascript lebih lanjut dengan JQuery (2)'>Belajar Javascript lebih lanjut dengan JQuery (2)</a> <small>Membuat form dengan AJAX Membuat form adalah hal biasa dalam...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://didats.net/wp-content/uploads/2008/02/picture-7.png" class="floatleft" alt="Didats dot net" />Menjadi seorang web designer tentunya punya beban dan ego yang besar terhadap situsnya sendiri. Dengan segenap usaha, daya, jurus-jurus maut, pokoknya semua kemampuan dikeluarkan demi mempercantik situs blognya sendiri.</p>
<p>Bukan sekali dua kali, setelah selesai proses design, dan setelah puas, lalu beristirahat sebentar. Setelah beberapa menit kembali di depan macbook kesayangan, ternyata hati sudah berubah. Design yang tadi sudah dibuat, seakan-akan jadi design yang paling jelek sedunia. Halah. Ganti lagi lah jadinya. Hehehe.</p>
<p>Nah, mumpung lagi doyan nulis, maka yang ada di kepala saya, akan saya tuliskan semua. Tak perduli sudah berapa komentar yang masuk, juga tak perduli berapa orang yang baca. Yang penting nulis aja dulu&#8230;</p>
<p><span id="more-444"></span></p>
<h3>Export data ke WordPress</h3>
<p>Setelah mempelajari struktur database WordPress, akhirnya saya memberanikan diri untuk pindah ke WordPress. Kebetulan struktur datanya tidak banyak perbedaan dengan blog hasil buatan saya. Proses pemindahan data tidak memakan banyak waktu di kode PHP. Hanya banyak memakan waktu saat mencocokkan data dari Didats.net yang dulu ke WordPress. Lebih tepatnya, faktor mempelajarinya itu yang butuh waktu.</p>
<h3>Terminologi Blog Didats.net</h3>
<p>Saya punya dua kategori utama untuk setiap post yang saya tulis. Yaitu Blog dan Sideblog. Penggunaan sideblog di sebelah kanan pada halaman depan tidak menggunakan plugin apa-apa. Hanya mengandalkan kategori Sideblog saja.</p>
<p><strong>Bagaimana memisahkan antara sideblog dan post?</strong></p>
<p>Saya biasanya menggunakan fungsi <code>get_post</code> yang ada di wordpress. Untuk menampilkan post terakhir, saya menuliskannya sebagai berikut:</p>
<p>[source:php]&lt;?php<br />
$lastposts = get_posts(&#8216;numberposts=1&amp;category=3&#8242;);<br />
foreach($lastposts as $post) :<br />
setup_postdata($post);<br />
?&gt;[/source]</p>
<p>Maksud dari perintah di atas adalah, &#8220;tampilkan 1 post terakhir dengan kategori id adalah 3&#8243;. Kategori ID nomor 3 sendiri adalah kategori Blog. Jadi, kategori blog adalah hal wajib ketika saya ingin menampilkannya sebagai sebuah post, bukan sebagai sideblog.</p>
<p><strong>Previous Post</strong></p>
<p>Untuk Previous post, saya menggunakan <code>query_post.</code> Tidak ada bedanya menggunakan <code>query_posts</code> atau <code>get_posts</code>. Parameter untuk menampilkan previous post adalah seperti di bawah ini:</p>
<p>[source:php]&lt;?php<br />
$i = 0;<br />
$lastposts = query_posts(&#8216;showposts=5&amp;cat=3&amp;orderby=post_date&#8217;);<br />
foreach($lastposts as $post) :<br />
setup_postdata($post);<br />
$i++;<br />
if($i==1) continue;<br />
?&gt;[/source]</p>
<p>Penjelasannya, <code>query_post</code> akan menghasilkan 5 buah post terakhir dengan kategori ID adalah Blog. Nah, saya menampilkan 5 post, tapi kenapa yang keluar cuma 4?</p>
<p>Perlu diketahui, 5 buah post terakhir, juga berarti post yang sudah saya tampilkan sebelumnya di bagian atas. Jadi, untuk tidak mengikutsertakan post terakhir, maka saya menggunakan variabel penunjuk <code>$i</code>.</p>
<p>Jadi, sebelum ada perulangan foreach, saya mendaftarkan sebuah variabel bernama i yang bernilai 0. Di dalam perulangan, saya langsung menambahkan variabel <code>i</code> tersebut dengan 1 (ditandai dengan <code>$i++</code>). Setelah adanya penambahan, saya langsung memberikan kondisi. Kondisinya, jika nilai variabel <code>i</code> adalah 1, maka perulangan pertama akan diabaikan, dan langsung memulai perulangan kedua.</p>
<p>Dan untuk menampilkan preview gambar di setiap post, saya menggunakan bahasa Regular Expression yang mengambil gambar pertama yang ada di post, dengan kode di bawah ini:</p>
<p>[source:php]$the_content =$wpdb-&gt;get_var(&#8220;SELECT post_content FROM $wpdb-&gt;posts WHERE ID = $id&#8221;);<br />
$pattern = &#8216;/&lt;img\s+src=&#8221;(?P&lt;image&gt;[^"]+)&#8221;[^&gt;]*&gt;/i&#8217;;<br />
preg_match_all($pattern, $the_content, $matches);<br />
$image_src = $matches['image'][0];[/source]</p>
<p>Dari kode di atas, saya mencoba untuk langsung berinteraksi dengan database menggunakan bahasa SQL. Dengan kode SQL &#8220;<code>SELECT post_content FROM $wpdb-&gt;posts WHERE ID = $id</code>&#8220;, maka saya akan mendapatkan isi konten dari post yang sedang diakses.</p>
<p>Isi kontent tersebut akhirnya saya proses untuk mencari tag image. Saya sendiri hanya mengambil tag image pertama yang ada di dalam isi konten.  Lalu URL image saya masukkan ke dalam variabel <code>$image_src</code>.</p>
<p>Nah, dari situ kita bisa langsung menampilkan gambarnya dengan tag IMG, tapi terlebih dahulu kita cek, apakan gambar di temukan. Jika tidak, maka tidak perlu ditampilkan. Berikut perintahnya:</p>
<p>[source:php]&lt;?php if($image_src!= &#8220;&#8221;) {?&gt;<br />
&lt;img src=&#8221;&lt;?php echo $image_src?&gt;&#8221; alt=&#8221;image&#8221; class=&#8221;img-posts&#8221; /&gt;<br />
&lt;?php } ?&gt;[/source]</p>
<p>Nah, gampang kan? :p</p>
<h3>Sideblog tanpa plugin</h3>
<p>Untuk menampilkan sebuah sideblog tanpa menggunakan plugin, saya hanya menggunakan kode berikut ini:</p>
<p>[source:php]&lt;?php<br />
$lastposts = get_posts(&#8216;numberposts=8&amp;category=14&#8242;);<br />
foreach($lastposts as $post) :<br />
setup_postdata($post);<br />
?&gt;[/source]</p>
<p>Artinya, Tampilkan 8 post terakhir dari kategori ID 14. Kategori ID nomor 14 sendiri adalah Sideblog. Penggunaan sideblog tanpa plugin berarti mempermudah saya untuk mengkategorisasi setiap post yang mau saya publish.</p>
<p>Dan dengan banyak kostumisasi dari WordPress, maka memungkinkan kita membuat apapun yang kita inginkan dari sebuah wordpress saja. Memang ada beberapa kelemahan, tapi saya pikir kelemahan itu bisa kita tutup dengan pengetahuan yang kita punya tentang wordpress.</p>


<p>Related posts:<ol><li><a href='http://didats.net/page/published-my-portfolio/' rel='bookmark' title='Permanent Link: Published My Portfolio'>Published My Portfolio</a> <small>Finally, My Portfolio page has published. It&#8217;s quite hard to...</small></li>
<li><a href='http://didats.net/page/tutorial-wordpress-membuat-daftar-komentar-lebih-menarik/' rel='bookmark' title='Permanent Link: Tutorial WordPress: Membuat daftar komentar lebih menarik'>Tutorial WordPress: Membuat daftar komentar lebih menarik</a> <small>Saya masih saja agak kesulitan untuk menulis tutorial baru tentang...</small></li>
<li><a href='http://didats.net/page/belajar-javascript-lebih-lanjut-dengan-jquery-2/' rel='bookmark' title='Permanent Link: Belajar Javascript lebih lanjut dengan JQuery (2)'>Belajar Javascript lebih lanjut dengan JQuery (2)</a> <small>Membuat form dengan AJAX Membuat form adalah hal biasa dalam...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://didats.net/page/membedah-theme-didatsnet/feed/</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
		<item>
		<title>Belajar Javascript lebih lanjut dengan JQuery (2)</title>
		<link>http://didats.net/page/belajar-javascript-lebih-lanjut-dengan-jquery-2/</link>
		<comments>http://didats.net/page/belajar-javascript-lebih-lanjut-dengan-jquery-2/#comments</comments>
		<pubDate>Wed, 13 Feb 2008 22:26:31 +0000</pubDate>
		<dc:creator>Didats Triadi</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://didats.net/page/belajar-javascript-lebih-lanjut-dengan-jquery-2/</guid>
		<description><![CDATA[Membuat form dengan AJAX Membuat form adalah hal biasa dalam sebuah pemograman web. Dan AJAX, sebagai metode yang baru-baru ini mencuat ke permukaan, menjadikan dunia web lebih beragam dan lebih dinamis. Perlu diingat, tutorial ini menggunakan bahasa pemrograman PHP. AJAX, bukanlah sebuah bahasa sendiri. Dia hanya sebuah metode bagaimana mengirimkan data-data yang ada di sebuah [...]


Related posts:<ol><li><a href='http://didats.net/page/belajar-javascript-lebih-lanjut-dengan-jquery-1/' rel='bookmark' title='Permanent Link: Belajar Javascript lebih lanjut dengan JQuery (1)'>Belajar Javascript lebih lanjut dengan JQuery (1)</a> <small>JQuery akhir-akhir ini selalu menjadi pilihan saya jika ingin berkreasi...</small></li>
<li><a href='http://didats.net/page/playing-css-under-javascript/' rel='bookmark' title='Permanent Link: Playing CSS under Javascript'>Playing CSS under Javascript</a> <small>Tired with different result between IE and the other browsers?...</small></li>
<li><a href='http://didats.net/page/tutorial-wordpress-membuat-daftar-komentar-lebih-menarik/' rel='bookmark' title='Permanent Link: Tutorial WordPress: Membuat daftar komentar lebih menarik'>Tutorial WordPress: Membuat daftar komentar lebih menarik</a> <small>Saya masih saja agak kesulitan untuk menulis tutorial baru tentang...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<h3>Membuat form dengan AJAX</h3>
<p><img src="http://didats.net/wp-content/uploads/2008/02/form.jpg" alt="Form dengan AJAX" />Membuat form adalah hal biasa dalam sebuah pemograman web. Dan AJAX, sebagai metode yang baru-baru ini mencuat ke permukaan, menjadikan dunia web lebih beragam dan lebih dinamis. Perlu diingat, tutorial ini menggunakan bahasa pemrograman PHP.</p>
<p>AJAX, bukanlah sebuah bahasa sendiri. Dia hanya sebuah metode bagaimana mengirimkan data-data yang ada di sebuah form ke server tanpa melalui proses refresh. Prosesnya sendiri dikendalikan oleh browser lewat pintu belakang. Dan sebelum adanya JQuery, AJAX adalah hal yang cukup rumit diwujudkan. Ketika JQuery muncul, AJAX cuma seujung jari kelingking. Hehe&#8230; :D<br />
<span id="more-442"></span></p>
<h3>HTML Form dengan CSS</h3>
<p>Untuk mempersingkat waktu, saya tidak akan membahas HTML Form dan CSS. Karena fokus kita saat ini adalah di bagian Javascript, dan sedikit bagian server. Untuk itu, halaman HTML Form dan CSS bisa di download sendiri.</p>
<p>[<a href="http://didats.net/tutorial/ajax/ajax.zip">Download HTML Form, CSS dan Loader image</a>]</p>
<p>Sebagai preview HTML Form-nya yang akan kita bahas di tutorial ini, bisa dilihat di kode di bawah ini:</p>
<p>[source:html]<br />
&lt;div id=&#8221;contactform&#8221;&gt;<br />
&lt;h2&gt;Contact Form&lt;/h2&gt;<br />
&lt;form name=&#8221;frm&#8221; action=&#8221;#&#8221; method=&#8221;post&#8221;&gt;<br />
&lt;div class=&#8221;form-item&#8221;&gt;<br />
&lt;label&gt;Your Name*&lt;/label&gt;<br />
&lt;input type=&#8221;text&#8221; name=&#8221;txtname&#8221; /&gt;<br />
&lt;br class=&#8221;clear&#8221; /&gt;<br />
&lt;/div&gt;<br />
&lt;div class=&#8221;form-item&#8221;&gt;<br />
&lt;label&gt;Email Address*&lt;/label&gt;<br />
&lt;input type=&#8221;text&#8221; name=&#8221;txtemail&#8221; /&gt;<br />
&lt;br class=&#8221;clear&#8221; /&gt;<br />
&lt;/div&gt;<br />
&lt;div class=&#8221;form-item&#8221;&gt;<br />
&lt;label&gt;Website&lt;/label&gt;<br />
&lt;input type=&#8221;text&#8221; name=&#8221;txtwebsite&#8221; /&gt;<br />
&lt;br class=&#8221;clear&#8221; /&gt;<br />
&lt;/div&gt;<br />
&lt;div class=&#8221;form-item&#8221;&gt;<br />
&lt;label&gt;Messages*&lt;/label&gt;<br />
&lt;textarea name=&#8221;txtmessages&#8221; rows=&#8221;10&#8243; cols=&#8221;40&#8243;&gt;&lt;/textarea&gt;<br />
&lt;br class=&#8221;clear&#8221; /&gt;<br />
&lt;/div&gt;<br />
&lt;br class=&#8221;clear&#8221; /&gt;<br />
&lt;input type=&#8221;button&#8221; class=&#8221;submit&#8221; name=&#8221;cmdsubmit&#8221; value=&#8221;Submit&#8221; /&gt;<br />
&lt;/form&gt;<br />
&lt;/div&gt;<br />
[/source]</p>
<h3>Langkah pertama, tambahkan JQuery line</h3>
<p>Buka file index.html yang sudah anda download, dan tempatkan kursor anda di antara tag <code>&lt;head&gt;</code>, dan tambahkan baris yang sangat wajib jika ingin menggunakan JQuery seperti di bawah ini:</p>
<p><code>&lt;script src="jquery.js" type="text/javascript"&gt;&lt;/script&gt;</code></p>
<h3>Langkah kedua, mulai berkreasi dengan JQuery</h3>
<p>Setelah menambahkan baris wajib, sekarang kita butuh menambahkan baris ini. Ini juga hal yang wajib ketika menggunakan JQuery.</p>
<p>[source:html]<code>&lt;script type="text/javascript"&gt;<br />
$(document).ready(function() {<br />
// ... start jquery from here<br />
}<br />
&lt;/script&gt;</code>[/source]</p>
<p>Bentuk umum JQuery sendiri adalah seperti ini: <code>$(nama_objek).properti();</code> Nama objek, hampir sama ketika kita memperlakukan objek HTML di CSS.</p>
<p><code>$(document).ready(function() { ... });</code> adalah sebuah kode yang mengecek apakah sebuah halaman sudah siap untuk dikomandoi kode JQuery.</p>
<h3>Langkah ketiga, Validasi Form</h3>
<p>Sebelum mengirimkan dokumen, akan lebih baik jika kita memvalidasi masukan dari user terlebih dahulu. Hal ini untuk menghindari kesalahan ketika data akan diproses. Tapi tentu saja hal ini tidak akan berguna, ketika Javascript di browser user dimatikan. Dan saya sekarang ini tidak membahas tentang browser yang tanpa javascript.</p>
<p>Sebagai awalnya, kita akan memeriksa apakah tombol submit sudah di klik.</p>
<p>[source:javascript]<code>$("input[@name=cmdsubmit]").click(function() {<br />
return false;<br />
});</code>[/source]</p>
<p><code>$("input[@name=cmdsubmit]")</code> berarti, mencari sebuah tag input, yang mempunyai nama cmdsubmit. Ini tentunya bisa dimodifikasi menyesuaikan dengan form yang dibuat.  Kata kunci click berarti menunggu sampai objek di klik. Penggunaan return false; dimaksudkan untuk tidak dulu mengirimkan data.</p>
<p><strong>Validasi kosongnya inputbox</strong></p>
<p>[source:javascript]<code>$("input[@name=cmdsubmit]").click(function() {<br />
// Telusuri semua objek inputbox<br />
var i = 0;<br />
$("input[@type=text]").each(function() {<br />
if($(this).val() == "") {<br />
alert($(this).attr("name") + " Ngga boleh kosong");<br />
return false;<br />
}<br />
else i++;<br />
});<br />
if(i==3) {<br />
alert("Validasi berhasil");<br />
}<br />
});</code>[/source]</p>
<p><strong>Penjelasan</strong></p>
<p>Logika sederhananya, di form yang sudah saya sediakan terdapat 5 objek, yang terdiri dari 3 Input berupa teks, 1 Textarea, dan 1 tombol submit. Nah, untuk belajar memvalidasi awal, maka semua input berupa text wajib diisi.</p>
<p>Karena kita punya 3 input berupa teks, maka kita bisa menelusuri satu persatu objek tersebut dengan kata kunci each di JQuery seperti di bawah ini:</p>
<p>[source:javascript]<code>$("input[@type=text]").each</code>[/source]</p>
<p>Karena objek yang bertipe teks ada 3, maka kita dimungkinkan mengakses 1 persatu objek dengan properti <code>each</code>. Setelah dapat mengakses objek masing-masing, kita sekaligus mengecek, apakah objek tersebut masih kosong dari isian user dengan baris kode di bawah ini:</p>
<p>[source:javascript]<code>if($(this).val() == "")</code>[/source]</p>
<p>Objek <code>$(this)</code> merujuk ke objek yang sedang di akses oleh JQuery. Properti <code>val()</code> berarti mengakses isi dari objek tersebut. Ketika kondisi di atas benar (yaitu, ketika isian objek teks kosong), maka kita bisa mengeluarkan peringatan dengan perintah <code>alert</code>. Dan perintah <code>return false;</code> berarti kita keluar dari peng-aksesan tiap objek teks. Ini demi meringankan beban kerja browser yang user pakai.</p>
<p>[source:javascript]<code>alert("Semua ngga boleh kosong");<br />
return false;</code>[/source]</p>
<p>Sedangkan variabel <code>i</code>, adalah variabel penunjuk yang bisa memberitahukan kita, apakah semua form sudah di isi. Buktinya, di luar properti each, kita bisa mengecek, apakah variabel i sudah mengakses sebanyak 3 objek input teks.</p>
<p>[source:javascript]<code>if(i==3) {<br />
alert("Validasi berhasil");<br />
}</code>[/source]</p>
<p>Untuk sementara ini, segini dulu tutorialnya. Besok-besok di lanjut. Sudah malam ini. Mau tidooor&#8230;</p>
<p>Saya sendiri gag tau, apakah yang baca ngerti apa ngga. Tapi saya sudah berusaha untuk menggunakan bahasa manusia yang sebenar-benarnya. Kalau memang masih ada yang ngga ngerti, berarti itu salah saya. Ternyata saya belum bisa menjadi seorang manusia&#8230; :p</p>
<p><a href="http://didats.net/tutorial/ajax/">Lihat Demonya aja deh kalo gag ngerti. </a></p>


<p>Related posts:<ol><li><a href='http://didats.net/page/belajar-javascript-lebih-lanjut-dengan-jquery-1/' rel='bookmark' title='Permanent Link: Belajar Javascript lebih lanjut dengan JQuery (1)'>Belajar Javascript lebih lanjut dengan JQuery (1)</a> <small>JQuery akhir-akhir ini selalu menjadi pilihan saya jika ingin berkreasi...</small></li>
<li><a href='http://didats.net/page/playing-css-under-javascript/' rel='bookmark' title='Permanent Link: Playing CSS under Javascript'>Playing CSS under Javascript</a> <small>Tired with different result between IE and the other browsers?...</small></li>
<li><a href='http://didats.net/page/tutorial-wordpress-membuat-daftar-komentar-lebih-menarik/' rel='bookmark' title='Permanent Link: Tutorial WordPress: Membuat daftar komentar lebih menarik'>Tutorial WordPress: Membuat daftar komentar lebih menarik</a> <small>Saya masih saja agak kesulitan untuk menulis tutorial baru tentang...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://didats.net/page/belajar-javascript-lebih-lanjut-dengan-jquery-2/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
	</channel>
</rss>

