<?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>dudu.WEB.ID &#187; Programming</title>
	<atom:link href="http://dudu.web.id/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://dudu.web.id</link>
	<description>...still try and try...</description>
	<lastBuildDate>Fri, 03 Feb 2012 16:07:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Set Specific row style in jqgrid</title>
		<link>http://dudu.web.id/2012/01/set-specific-row-style-in-jqgrid/</link>
		<comments>http://dudu.web.id/2012/01/set-specific-row-style-in-jqgrid/#comments</comments>
		<pubDate>Fri, 20 Jan 2012 09:14:20 +0000</pubDate>
		<dc:creator>dudu</dc:creator>
				<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[each]]></category>
		<category><![CDATA[jqgrid]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[table]]></category>

		<guid isPermaLink="false">http://dudu.web.id/?p=483</guid>
		<description><![CDATA[Mengatur style untuk baris pada jqgrid (Bahasa Indonesianya gitu..) Permasalahan ini saya temui ketika akan membuat tabel dengan Jqgrid, kemudian ada pengelompokan baris tertentu. Misalnya ketika pada field &#8220;Status&#8221; ternyata masih kosong, maka baris tersebut akan berwarna merah (tugas dari temen sih sebenernya ). Kalo misal table yang dibuat bukan dari plugin JQgrid mungkin tidak [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://dudu.web.id/wp-content/uploads/2012/01/jqgrid1.png"><img class="alignnone size-full wp-image-486" title="jqgrid1" src="http://dudu.web.id/wp-content/uploads/2012/01/jqgrid1.png" alt="" width="514" height="206" /></a></p>
<p>Mengatur style untuk baris pada jqgrid (Bahasa Indonesianya gitu..)</p>
<p>Permasalahan ini saya temui ketika akan membuat tabel dengan Jqgrid, kemudian ada pengelompokan baris tertentu. Misalnya ketika pada field &#8220;Status&#8221; ternyata masih kosong, maka baris tersebut akan berwarna merah (tugas dari <a title="Fitri Wibowo" href="http://blog.bowo.co.cc/" target="_blank">temen </a>sih sebenernya <img src='http://dudu.web.id/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> ). Kalo misal table yang dibuat bukan dari plugin JQgrid mungkin tidak terlalu ribet, apalagi dokumentasi JQgrid sangat minim menurut saya.Dan juga desain table yang saya gunakan tidak setandar!!! hah, gimana ini..</p>
<p>Setelah browsing dan disambi <a title="Twitter" href="http://twitter.com/dwijonarko" target="_blank">twitteran</a>, serta <a title="Google Plus" href="http://gplus.to/dwijonarko" target="_blank">google plus</a>-an (halah) dan tidak lupa <a title="Kaskus" href="http://kaskus.us" target="_blank">ngaskus</a>..akhirnya nemu inspirasi juga..<span id="more-483"></span></p>
<p>Beberapa cara yang sempat terpikirkan :</p>
<ul>
<li>Looping setiap halaman dan cari valuenya : ternyata ga bisa karena ngakses rownya dari ID, dan ID nya ga sama dengan nomor record nya (ini )</li>
<li>Looping sampe row terakhir : ini juga ga bisa, apalagi dtanya sampe 4000, berat loadnya..</li>
<li>Menggunakan looping pake jquery.each(), cari ID row kemudian cocokan valuenya</li>
</ul>
<p>Ternyata cara yang terakhir yang paling cocok dan bisa di aplikasikan dalam kasus yang saya alami. Script yang saya gunakan seperti ini</p>
<pre class="brush: jscript; title: ; notranslate">

loadComplete: function() {
 $('.jqgrow').each(function(index,value){//looping semua baris jqgrid
 var idRow = $(this).attr(&quot;id&quot;);//cari idRow nya
 var data = jQuery('#list1').jqGrid ('getCell', idRow, 'colomname'); //cari value dari cell &quot;collomname&quot;
 if(data!=&quot;Aktif&quot;){ //cocokan dengan syaratnya
 grid.jqGrid('setRowData',idRow,&quot;false&quot;,'ui-state-error'); //set style untuk baris tersebut
 }
 });
 },
</pre>
<p>Hasilnya kira-kira seperti gambar pada artikel ini&#8230; semoga membantu..</p>
]]></content:encoded>
			<wfw:commentRss>http://dudu.web.id/2012/01/set-specific-row-style-in-jqgrid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Perlukah memakai framework ?</title>
		<link>http://dudu.web.id/2011/12/perlukah-memakai-framework/</link>
		<comments>http://dudu.web.id/2011/12/perlukah-memakai-framework/#comments</comments>
		<pubDate>Tue, 27 Dec 2011 13:03:48 +0000</pubDate>
		<dc:creator>dudu</dc:creator>
				<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby On Rails]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[perlu framework]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[yii]]></category>

		<guid isPermaLink="false">http://dudu.web.id/?p=479</guid>
		<description><![CDATA[hmmm sudah beberapa bulan ini saya ga pernah lagi nulis tutorial tentang coding, apalagi khusus tentang Codeigniter. Ada banyak ide yang ingin saya tuliskan, tetapi rasa-rasanya waktunya belum nemu. Ah apalagi tutorial yang membahas Codeigniter sudah banyak bertebaran di internet, baik itu hasil karya sendiri maupun copas dari web lain, atau bermodalkan google translate Framework [...]]]></description>
			<content:encoded><![CDATA[<p>hmmm sudah beberapa bulan ini saya ga pernah lagi nulis tutorial tentang coding, apalagi khusus tentang<a href="http://dudu.web.id/tag/codeigniter/"> Codeigniter</a>. Ada banyak ide yang ingin saya tuliskan, tetapi rasa-rasanya waktunya belum nemu. Ah apalagi tutorial yang membahas Codeigniter sudah banyak bertebaran di internet, baik itu hasil karya sendiri maupun copas dari web lain, atau bermodalkan google translate <img src='http://dudu.web.id/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Framework oh framework, suatu hal yang lagi booming sekarang ini, buka milis pasti ada yang nanya framework, buka forum juga.. Dan yang paling sering ditanyakan adalah &#8220;<strong><a href="http://dudu.web.id/2011/12/perlukah-memakai-framework/">perlu ga sih kita pake framework??</a></strong>&#8221; Ketika saya melihat pertanyaan itu, yang terbesit dalam pikiran saya adalah, yang dimaksud dalam pertanyaan tersebut &#8220;framework itu sendiri&#8221; dan &#8220;framework yang mana&#8221;</p>
<p><span id="more-479"></span></p>
<p>Kembali ke pengertian framework itu sendiri, yang sering saya temukan adalah &#8221; kerangka sebuah aplikasi (baik itu web, desktop, dll) yang berisi kumpulan library, class, function dan lainnya yang sekiranya umum dan sering digunakan dalam pembuatan aplikasi tersebut yang bertujuan untuk mempermudah pengembangan aplikasi yang menggunakan kerangka program tersebut.</p>
<p>Nah kalau melihat definisi tersebut, jawaban dari &#8220;<a title="Perlukah memakai framework ?" href="http://dudu.web.id/2011/12/perlukah-memakai-framework/">perlukah memakai framework </a>?&#8221; adalah <strong>perlu</strong>. Setiap aplikasi yang siap pakai (bukan setengah aplikasi) pasti terdiri dari ratusan bahkan ribuan baris kode (<a href="http://en.wikipedia.org/wiki/Source_lines_of_code">LOC</a>). Apabila kode-kode atau syntax tersebut tidak kita organisir dengan baik, pastinya akan membuat program kita akan menjadoi <em>over bloated</em> dan banyak mengandung <em><a href="http://en.wikipedia.org/wiki/Spaghetti_code">spaghetti code</a></em>. Tetapi apabila kita mengorganisasi dengan baik, kita buat fungsi dan class yang benar sesuai tugasnya masing-masing, diharapkan kode yang kita buat akan menjadi lebih mudah dibaca, dipahami dan digunakan kembali dikemudian hari.</p>
<p>Ada mungkin diantara kita berpendapat &#8220;lebih puas coding dari awal&#8221;. Kalo seperti itu yang saya tanyakan &#8220;dari awal yang mana?&#8221; buat file satu persatu, class demi class, function demi function sehingga menjadi sebuah aplikasi jadi. Kalau suatu waktu ada proyek membangun program yang hampir mirip, apakah harus melakukan hal seperti itu lagi? pasti akan membuang banyak waktu. Akan lebih baik jika class yang sudah kita bangun, kita rapikan, kita dokumentasikan agar suatu saat bisa kita gunakan lagi. Nah dengan demikian kita sudah membuat &#8220;framework&#8221; untuk aplikasi kita.</p>
<p>Framework yang mana?</p>
<p>Sekarang banyak sekali framework yang bergelimpangan dan bertebaran di jagat Internet. Mau gratis atau berbayar, mau yang file nya kecil atau yang besar, tinggal pilih sesuai keinginan dan kebutuhan. Bagi saya, menggunakan framework yang sudah ada dipasaran (ex. <a href="http://www.codeigniter.com">codeigniter</a>, <a href="http://www.yiiframework.com/">yii</a>, <a href="http://www.symfony-project.org/">symfony</a>, <a href="http://rubyonrails.org/">ruby on rails</a>, <a href="https://www.djangoproject.com/">django</a>) bukanlah suatu masalah. Tidak ada framework yang jelek, yang ada hanyalah jurang maksimalnya kita menggunakan framework tersebut.</p>
<p>Menggunakan framework membuat kode program kita menjadi lebih teratur dan terorganisir. Membuat kita belajar bagaimana agar kode kita mudah dibaca orang lain (apabila kita bekerja tim).</p>
<p>Kesimpulannya yang saya ambil adalah, setiap aplikasi pasti memerlukan dasar dan kerangka yang biasa disebut framework. Tentang framework yang akan digunakan, apakah memilih framework buatan sendiri atau framework yang sudah ada, itu tergantung kebutuhan dan kemampuan kita.</p>
<p>Pesan hari ini : Liat wajah bayi yang menguap dan tidur itu sungguh indah rasanya <img src='http://dudu.web.id/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://dudu.web.id/2011/12/perlukah-memakai-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jaman Sekarang??</title>
		<link>http://dudu.web.id/2011/11/jaman-sekarang/</link>
		<comments>http://dudu.web.id/2011/11/jaman-sekarang/#comments</comments>
		<pubDate>Fri, 18 Nov 2011 02:09:41 +0000</pubDate>
		<dc:creator>dudu</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Others]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[kaskus]]></category>
		<category><![CDATA[mahasiswa]]></category>
		<category><![CDATA[tugas]]></category>

		<guid isPermaLink="false">http://dudu.web.id/?p=474</guid>
		<description><![CDATA[Dulu waktu kuliah, saya punya temen programmer yang bisa dibilang senior dan mumpuni lah (Senior dari segi umur juga hehe). Beliau pernah cerita, jaman dia ngoding coldfusion dulu, hanya dibekali sebuah buku &#8220;kitab&#8221; nya coldfusion. Saya juga ga tahu bukunya kayak apa. Internet waktu itu masih mahal, di kantornya ga boleh internetan, katanya gitu. Jadi [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="Ancient Programmer" src="http://myfunnypics.net/upload/Pictures/thumbs/Ancient-Programmer-computer-ancient-programmer-old-statue_big.jpg" alt="" width="550" height="412" /><br />
Dulu waktu kuliah, saya punya temen programmer yang bisa dibilang senior dan mumpuni lah (Senior dari segi umur juga hehe). Beliau pernah cerita, jaman dia ngoding coldfusion dulu, hanya dibekali sebuah buku &#8220;kitab&#8221; nya coldfusion. Saya juga ga tahu bukunya kayak apa. Internet waktu itu masih mahal, di kantornya ga boleh internetan, katanya gitu. Jadi setiap ada error atau kesulitan yang dia temui, problem solving nya sangat berat, harus mikir sendiri, dn hanya dibekalo sebuah buku tadi. hmmm..</p>
<p><span id="more-474"></span></p>
<p>Tetapi, menurut saya justru seperti itulah cara yang hebat (walopun berat dan saya juga belum tentu bisa). Hal itu membuat programmer memiliki kemampuan logika yang kuat, skill programmingnya terasah terus-menerus meningkat.</p>
<p>Coba dibandingkan dengan jaman sekarang. Mahasiswa diberikan tugas sederhana Algoritma. Yang saya temui mereka justru berusaha mencari jawaban langsung di Internet. Bukan memikirkan logika algoritmanya. Banyak saya jumpai di forum, milis pertanyaan yang sepertinya tugas kuliah yang diberikan di perkuliahanya.</p>
<p>Jujur saya merasa prihatin (#SBY mode ON) tentang hal tersebut. Harusnya dengan Internet kita bisa lebih kreatif bukan malah menjadi malas.</p>
<p>NB: Catatan Jumat : Jangan tunda pekerjaan, semakin ditunda akan semakin menumpuk.. <img src='http://dudu.web.id/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://dudu.web.id/2011/11/jaman-sekarang/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Seter and Geter di Ruby</title>
		<link>http://dudu.web.id/2011/09/seter-and-geter-di-ruby/</link>
		<comments>http://dudu.web.id/2011/09/seter-and-geter-di-ruby/#comments</comments>
		<pubDate>Mon, 26 Sep 2011 11:54:13 +0000</pubDate>
		<dc:creator>dudu</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[oop]]></category>

		<guid isPermaLink="false">http://dudu.web.id/?p=450</guid>
		<description><![CDATA[Sering buat seter geter di Java kan? kalo di ruby bisa kayak gini.. Sumber : kaskus credit to agan magico]]></description>
			<content:encoded><![CDATA[<p>Sering buat seter geter di Java kan? kalo di ruby bisa kayak gini..</p>
<pre class="brush: ruby; title: ; notranslate">
class Mobil
   %w{jenis merek bensin}.each { |prop|
   define_method((&quot;get&quot;+prop.capitalize).to_sym) {
     return self.instance_variable_get &quot;@&quot;+prop
   }
   define_method((&quot;set&quot;+prop.capitalize).to_sym) { |value|
     self.instance_variable_set &quot;@&quot;+prop, value
   }
}
end

a = Mobil.new
a.setMerek(&quot;Honda&quot;)
a.setBensin(&quot;Pertamax&quot;)
a.setJenis(&quot;Sedan&quot;)

a.getMerek
a.getBensin
a.getJenis
</pre>
<p>Sumber : <a href="http://www.kaskus.us/showpost.php?p=507521057&#038;postcount=55" title="Kaskus">kaskus</a> credit to agan magico</p>
]]></content:encoded>
			<wfw:commentRss>http://dudu.web.id/2011/09/seter-and-geter-di-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RTFM !!!</title>
		<link>http://dudu.web.id/2011/07/rtfm/</link>
		<comments>http://dudu.web.id/2011/07/rtfm/#comments</comments>
		<pubDate>Fri, 01 Jul 2011 06:58:40 +0000</pubDate>
		<dc:creator>dudu</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Others]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[bertanya]]></category>
		<category><![CDATA[rtfm]]></category>
		<category><![CDATA[tolong]]></category>

		<guid isPermaLink="false">http://dudu.web.id/?p=437</guid>
		<description><![CDATA[Tulisan ini saya ambil tanpa di edit dari http://endy.artivisi.com/blog/life/rtfm/ semoga bisa jadi bahan masukan bagi kita semua Disclaimer: Saya menulis artikel ini bukan karena sudah tidak mau lagi menjawab pertanyaan. Bertanya boleh, sepanjang saya ada waktu dan bisa membantu insya Allah akan saya jawab. Tapi intinya adalah, bagaimana teknik bertanya yang dapat menghasilkan nilai tambah [...]]]></description>
			<content:encoded><![CDATA[<p>Tulisan ini saya ambil tanpa di edit dari <a href="http://endy.artivisi.com/blog/life/rtfm/">http://endy.artivisi.com/blog/life/rtfm/</a> semoga bisa jadi bahan masukan bagi kita semua <img src='http://dudu.web.id/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<blockquote><p>Disclaimer: Saya menulis artikel ini bukan karena sudah tidak mau lagi menjawab pertanyaan. Bertanya boleh, sepanjang saya ada waktu dan bisa membantu insya Allah akan saya jawab. Tapi intinya adalah, bagaimana teknik bertanya yang dapat menghasilkan nilai tambah yang besar, bukan hanya untuk penanya, tapi juga untuk penjawab. Mengingat saya tidak dibayar untuk menjawab pertanyaan Anda, melainkan sebagai sedekah dan niat baik saja. Di lain pihak, dalam menjawab pertanyaan Anda, ada waktu yang saya gunakan. Waktu ini entah merupakan hak pelanggan saya (yang membayar untuk jasa saya), atau hak keluarga di rumah. Jadi untuk kebaikan kita semua, mohon baca artikel berikut sampai tuntas.</p>
<p><span id="more-437"></span></p>
<p>RTFM adalah singkatan dari Read The F!@#*ing Manuals, atau Read The Fine Manual, tergantung mood Anda saat mengucapkannya.</p>
<p>Kalimat sederhana, tapi entah kenapa banyak orang yang tidak melakukannya. Untuk kesekian kalinya, saya mendapat pertanyaan, “Bagaimana cara pakai ini? Bagaimana menjalankan aplikasi itu? Mengapa framework ini tidak berjalan seperti harapan saya?” dan pertanyaan lain yang sejenis.</p>
<p>Bukan, ini bukan tentang playbilling. Playbilling memang parah dokumentasinya, jadi bukan salah Anda kalo mengalami kesulitan</p>
<p>Yang sedang saya bicarakan adalah teknologi yang sehari-hari digunakan programmer. Misalnya PHP, Java, Hibernate, Spring, Freemarker, Linux, dan lainnya. Itu semua adalah produk mature, yang siap pakai, sudah banyak komunitasnya. Dengan demikian, manual dan dokumentasi pasti tersedia di mana-mana.</p>
<p>Sering sekali terjadi, ada yang tanya ke saya, baik melalui Y!, SMS, telpon, dan sebagainya. Dulu, saya masih mau menjawab panjang lebar. Akhir-akhir ini, pertanyaan semakin banyak, jadi respon standar saya adalah balik bertanya. Berikut urutan pertanyaan saya:</p>
<p>Sudah download?<br />
Sudah extract?<br />
Sudah baca dokumentasinya?<br />
Sudah coba jalankan contohnya?<br />
Sudah lihat dokumentasi/FAQ/forum di websitenya?<br />
Sudah cari di Google?<br />
Misal, ada yang tanya, “Bagaimana cara membuat mapping one-to-many di Hibernate?” Maka respon saya adalah:</p>
<p>Sudah download Hibernate?<br />
Sudah extract hibernate-xx.zip?<br />
Sudah baca dokumentasinya?<br />
Sudah coba jalankan contohnya?<br />
Sudah lihat dokumentasi/FAQ/forum di websitenya?<br />
Sudah cari di Google dengan keyword “hibernate one to many mapping”?<br />
Sayang sekali, sampai saat ini belum ada yang sampai nomer 6. Biasanya para penanya sudah “menyerah” di nomer 3. Pada beberapa kasus menyedihkan, nomer 1 saja dijawab “Belum”.</p>
<p>Untuk mereka yang menyerah di nomer 1, Anda hanya membuang waktu dan bandwidth saya yang berharga. Mereka ini adalah tipikal orang yang ingin gampang dan tidak memikirkan kepentingan orang lain. Sama saja dengan menganggap saya sebagai petugas 108 yang siap menjawab segala pertanyaan, karena memang dibayar untuk itu.</p>
<p>Bagi mereka yang menyerah di nomer 3, saya masih sedikit berempati. Mungkin penguasaan bahasa Inggrisnya kurang. Atau mungkin keder melihat dokumen berpuluh-puluh halaman, dalam bahasa Inggris pula. Walaupun mungkin juga ada yang bermentalitas cari gampang seperti nomer 1 di atas.</p>
<p>Tapi saran saya adalah, bacalah dokumentasi. Kalau bahasa Inggris yang kurang, kursus. Kalau ngeri melihat dokumen yang banyak, jangan dibaca semua. Gunakan Ctrl+F alias fasilitas find.</p>
<p>Jika Anda ingin serius dalam karir duniawi, investasi Bahasa Inggris sangat penting. Kemampuan membaca tulisan Inggris akan memungkinkan Anda maju secara mandiri. Kalau tidak, kemajuan Anda akan tergantung kepada orang-orang baik hati yang mau membantu Anda. Orang seperti ini tidak selalu ada. Mereka sangat mungkin memiliki kesibukan lain, sehingga kemajuan Anda akan menunggu ‘bala bantuan’ tersebut punya waktu luang untuk membantu Anda. Konsekuensinya jelas, Anda hanya akan jadi orang tertinggal.</p>
<p>Dalam proses membaca dan memahami dokumentasi, pengetahuan kita akan meningkat. Bukan saja kita mendapat jawaban atas masalah kita, tapi kita mendapatkan pengalaman memahami dokumentasi teknis. Ini adalah skill yang sangat bermanfaat, dan telah terbukti berguna pada waktu saya mengalami kesulitan.</p>
<p>Ada satu skill lagi yang sangat bermanfaat, yaitu skill problem solving. Anda mendapat masalah, kemudian melakukan langkah-langkah pemecahan. Kalau tidak berhasil, mungkin ada yang perlu diperbaiki di sistematika pemecahan masalahnya. Kemampuan problem solving sangat penting bagi karir Anda. Anda akan dianggap orang yang ‘bisa bekerja secara mandiri‘ atau ‘mampu bekerja dengan supervisi minimal‘. Sering lihat kan kriteria seperti ini di lowongan pekerjaan?</p>
<p>Problem solving skill bukan teknik instan. Ini harus dilatih terus menerus sepanjang hidup. Semakin banyak masalah yang kita hadapi dan kita coba pecahkan, kemampuan kita akan meningkat, berhasil itu cuma masalah waktu saja.</p>
<p>Bagi mereka yang sudah menjawab Ya sampai nomer 5, saya ucapkan selamat untuk Anda. Anda sudah membuktikan bahwa Anda telah mengerjakan PR Anda sebelum akhirnya memutuskan untuk meminta waktu saya. Dan kalau ternyata memang belum menyelesaikan masalah, saya tidak keberatan untuk membantu Anda.</p>
<p>Untuk kaum nomer 5, biasanya prosedur standar saya adalah menggunakan Google untuk mencari jawaban. Kemungkinan pertama, search langsung menghasilkan jawaban. Pada kasus ini, saya akan memberikan keyword google yang saya gunakan dan menunjukkan pada entri keberapa jawaban ditemukan. Harapan saya adalah, pada kesempatan berikutnya si penanya akan tahu metode dan teknik memilih keyword supaya hasil Google-nya akurat. Dengan demikian, si penanya akan bisa lebih mandiri.</p>
<p>Kemungkinan yang lain, saya harus bersusah payah mencari sebelum berhasil menemukan jawaban. Biasanya alirannya begini: Google -&gt; Website -&gt; dapat keyword lain -&gt; Google lagi, dan seterusnya sampai ketemu. Kalau begini kejadiannya, saya akan menjelaskan proses berpikir saya dalam menelusuri internet kepada si penanya. Lagi-lagi tujuannya adalah supaya si penanya bisa mencoba sendiri di kemudian hari.</p>
<p>Buat mereka yang sudah lulus sampai nomer 6, tapi masih belum ketemu jawaban, lalu tanya saya … hmm … sejauh ini belum ada  Kalau sudah lihai pakai Google dan gak ketemu, kecil sekali kemungkinan saya bakal ditanya. Kalaupun ditanya, jawaban saya cepat. Kalau saya sudah pernah mengalami masalah yang sama, saya akan jawab. Kalo belum pernah, ya saya bilang belum pernah, sehingga saya sama tidak tahunya dengan si penanya.</p>
<p>Pertanyaan yang saya benci adalah pertanyaan debug. Misalnya begini, “Saya bikin kode seperti ini , kemudian muncul NullPointerException, kenapa ya?”</p>
<p>Saya tidak suka karena:</p>
<p>Baca source code di Y! adalah penyiksaan, lewat SMS itu mungkin sudah melanggar HAM  . Jangan ketawa, ada yang pernah kirim source code via SMS ke saya.<br />
Untuk bisa debug, paling efektif adalah dengan coding langsung, pasang println disana-sini, recompile, re-run, lihat hasilnya.<br />
So, jangan ajukan pertanyaan debug ke saya. Coba kirim ke milis. Mudah-mudahan ada yang mau bantu. Kalo saya sih tidak … lihat source code yang ditulis sendiri aja pusing, apalagi source code orang, lewat SMS pula …</p>
<p>Kalau ada pertanyaan yang dibenci, tentunya ada pertanyaan yang disukai. Pertanyaan yang saya suka adalah yang konseptual. Misalnya, “Apa itu anonymous inner class, dan kapan kita menggunakannya”. Contoh lain, “Teknik mapping inheritance mana yang paling baik untuk kasus saya, one-table-for-all, table-per-subclass, atau table-per-class”?</p>
<p>Pertanyaan seperti ini mencerdaskan kedua belah pihak. Si penanya mendapat wawasan baru, sedangkan saya mendapat kesempatan untuk menguji apakah pemahaman saya sudah lengkap dan benar.</p>
<p>Jadi, mari bertanya secara cerdas demi kebaikan kita semua.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://dudu.web.id/2011/07/rtfm/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Insert Multiple Rows dynamically with Jquery, PHP and MySQL</title>
		<link>http://dudu.web.id/2011/05/insert-multiple-rows-dynamically-with-jquery-php-and-mysql/</link>
		<comments>http://dudu.web.id/2011/05/insert-multiple-rows-dynamically-with-jquery-php-and-mysql/#comments</comments>
		<pubDate>Tue, 31 May 2011 01:14:35 +0000</pubDate>
		<dc:creator>dudu</dc:creator>
				<category><![CDATA[Jquery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[MySql]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://dudu.web.id/?p=424</guid>
		<description><![CDATA[udulnya mbois browww&#8230;. Begini ceritanya.pernah suatu ketika saya dikasih tugas di tempat kerja saya yang dulu, untuk membuat aplikasi web. Nah pada aplikasi tersebut terdapat fungsi memasukkan data tetapi secara dinamis (ga satu persatu). Yang dimaksudkan dinamis adalah, kita bisa menambahkan baris dengan sebuah tombol, jadi setiap tombol tersebut di klik, maka akan muncul 1 [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.dudu.web.id/wp-content/uploads/2010/04/jquery.png" alt="Jquery" /><br />
udulnya mbois browww&#8230;.</p>
<p>Begini ceritanya.pernah suatu ketika saya dikasih tugas di tempat kerja saya yang dulu, untuk membuat aplikasi web. Nah pada aplikasi tersebut terdapat fungsi memasukkan data tetapi secara dinamis (ga satu persatu). Yang dimaksudkan dinamis adalah, kita bisa menambahkan baris dengan sebuah tombol, jadi setiap tombol tersebut di klik, maka akan muncul 1 baris baru di bawahnya untuk menampilkan field inputan. Kalo masih belum mudeng, bisa di lihat di halaman <a href="http://dudu.web.id/demo/jquery_dom.php">DEMO.</a></p>
<p>Nah dulu sih, ada contohnya, buatnya pake DOM Javascript, karena fieldnya banyak, maka scriptnya jadi spagetti alias amburadul.. Susah dipelajari, mana yang child, mana yang parent. Ternyata eh ternyata, setelah belajar pake jquery, jquery memiliki fungsi <a href="http://api.jquery.com/append/">.append()</a> yang bisa digunakan untuk ini.<br />
<span id="more-424"></span><br />
Dalam<a href="http://dudu.web.id/demo/jquery_dom.php"> demo ini</a> contohnya saya akan menginputkan data mahasiswa dengan field nim, nama depan, nama belakang. Untuk databasenya bisa dibuat sendiri lah (sesuaikan dengan milik Anda). Pada form inputnya dibuat script input seperti biasa, tetapi saya menggunakan tabel agar tampilannya bisa lebih rapi. Kemudian jangan lupa panggil jquerynya ya.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
  &lt;head&gt;
    &lt;meta charset=&quot;utf-8&quot;&gt;
    &lt;title&gt;title&lt;/title&gt;
    &lt;link rel=&quot;stylesheet&quot; href=&quot;style.css&quot;&gt;
    &lt;script type=&quot;text/javascript&quot; src=&quot;jquery.js&quot;&gt;&lt;/script&gt; &lt;!-- ini disesuaikan --&gt;
    &lt;script type=&quot;text/javascript&quot; src=&quot;jquery_append.js&quot;&gt;&lt;/script&gt; &lt;!-- yang ini juga disesuaikan --&gt;
  &lt;/head&gt;
  &lt;body&gt;
  &lt;form id=&quot;id_form&quot; action=&quot;jquery_dom_save.php&quot; method=&quot;post&quot;&gt;
    	&lt;table&gt;
    		&lt;tr&gt;
        	&lt;td&gt;&lt;input type=&quot;button&quot; name=&quot;add_btn&quot; value=&quot;Add&quot; id=&quot;add_btn&quot;&gt;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
    		&lt;tr&gt;
    			&lt;td&gt;No&lt;/td&gt;&lt;td&gt;NIM&lt;/td&gt;&lt;td&gt;Nama Depan&lt;/td&gt;&lt;td&gt;Nama Belakang&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;
    		&lt;/tr&gt;
    		&lt;tbody id=&quot;container&quot;&gt;
&lt;!-- nanti rows nya muncul di sini --&gt;
        &lt;/tbody&gt;
        &lt;tr&gt;
	        &lt;td&gt;&lt;input type=&quot;submit&quot; name=submit value=&quot;Save&quot;&gt;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;
	      &lt;/tr&gt;
    	&lt;/table&gt;
    &lt;/form&gt;
  &lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Kemudian saya memisahkan file javascriptnya, yang digunakan untuk membuat elemen baru,saya namakan <strong>jquery_append.js</strong> yang scriptnya sebagai berikut :</p>
<pre class="brush: jscript; title: ; notranslate">
$(document).ready(function() {
    		var count = 0;

    		$(&quot;#add_btn&quot;).click(function(){
					count += 1;
		   		$('#container').append(
							 '&lt;tr class=&quot;records&quot;&gt;'
						 + '&lt;td &gt;&lt;div id=&quot;'+count+'&quot;&gt;' + count + '&lt;/div&gt;&lt;/td&gt;'
						 + '&lt;td&gt;&lt;input id=&quot;nim_' + count + '&quot; name=&quot;nim_' + count + '&quot; type=&quot;text&quot;&gt;&lt;/td&gt;'
						 + '&lt;td&gt;&lt;input id=&quot;nama_depan_' + count + '&quot; name=&quot;nama_depan_' + count + '&quot; type=&quot;text&quot;&gt;&lt;/td&gt;'
						 + '&lt;td&gt;&lt;input id=&quot;nama_belakang_' + count + '&quot; name=&quot;nama_belakang_' + count + '&quot; type=&quot;text&quot;&gt;&lt;/td&gt;'
						 + '&lt;td&gt;&lt;a class=&quot;remove_item&quot; href=&quot;#&quot; &gt;Delete&lt;/a&gt;'
						 + '&lt;input id=&quot;rows_' + count + '&quot; name=&quot;rows[]&quot; value=&quot;'+ count +'&quot; type=&quot;hidden&quot;&gt;&lt;/td&gt;&lt;/tr&gt;'
					);
				});

				$(&quot;.remove_item&quot;).live('click', function (ev) {
    			if (ev.type == 'click') {
	        	$(this).parents(&quot;.records&quot;).fadeOut();
                        $(this).parents(&quot;.records&quot;).remove();
        	}
     		});
		});
</pre>
<p>Script di atas adalah script javascript yang menggunakan jquery append() untuk membuat elemen. Dan nama elemennya saya buat nama_elemen_ agar nanti setiap penambahana elemen akan ditambahkan prefik dari variabel count yang isinya adalah nomor / angka berurutan. Sehinga pada baris pertama, nama inputnya akan menjadi nim_1, nama_depan_1, nama_belakang_1, kemudian pada baris selanjutnya  nim_2, nama_depan_2, nama_belakang_2 dan seterusnya.</p>
<p>Baris</p>
<pre class="brush: xml; title: ; notranslate">&lt;input id=&quot;rows_' + count + '&quot; name=&quot;rows[]&quot; value=&quot;'+ count +'&quot; type=&quot;text&quot;&gt;&lt;/td&gt;&lt;/tr&gt;</pre>
<p>digunakan untuk nantinya menghitung berapa row yang sudah dibuat, digunakan ketika perulangan insert data ke dalam tabel.</p>
<p>&nbsp;</p>
<p>Saya juga menambahkan link untuk menhapus row jika sekiranya di perlukan. Menggunakan jquery live() karena row yang ditambahkan dibuat menggunakan javascript, sehingga harus menggunakan  jquery.live() silahkan baca dokumentasi jquery .live() <a href="http://api.jquery.com/live">di sini</a></p>
<p>Akhirnya script untuk input datanya adalah sebagai berikut:</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
	if(isset($_POST['submit'])){
	  $connection = mysql_connect(&quot;localhost&quot;,&quot;root&quot;,&quot;&quot;) or die(mysql_error());
	  mysql_select_db(&quot;latihan&quot;) or die(mysql_error());
			foreach ($_POST['rows'] as $key =&gt; $count ){
				$nim = $_POST['nim_'.$count];
				$nama_depan = $_POST['nama_depan_'.$count];
				$nama_belakang = $_POST['nama_belakang_'.$count];

				$query_2 = &quot;INSERT INTO kelas_mahasiswa (nim,nama_depan,nama_belakang) VALUES ('$nim','$nama_depan','$nama_belakang')&quot;;

				mysql_query($query_2) or die(mysql_error());
			}

			echo &quot;Data Berhasil disimpan &lt;br&gt;&quot;;
			echo &quot;&lt;a href=\&quot;jquery_dom.php\&quot;&gt;Kembali&lt;/a&gt;&quot;;

		mysql_close($connection);

	}else{
		header('Location: jquery_dom.php');
	}
?&gt;
</pre>
<p>Menggunakan perulangan foreach dengan menghitung $_POST['rows']. Jangan lupa untuk setiap perulangan ditambahkan $count untuk mengambil nilai dari form input yang kita namai setiap field nya dengan name_1, 2 3 dst tadi.</p>
<p>Ada pertanyaan? Silahkan berkomentar, jika ada kesalahan mohon diperbaiki ya,,,</p>
]]></content:encoded>
			<wfw:commentRss>http://dudu.web.id/2011/05/insert-multiple-rows-dynamically-with-jquery-php-and-mysql/feed/</wfw:commentRss>
		<slash:comments>45</slash:comments>
		</item>
		<item>
		<title>Mengaktifkan fitur search, sort dan paging pada JQrid dan Codeigniter</title>
		<link>http://dudu.web.id/2011/05/mengaktifkan-fitur-search-pada-jqrid-dan-codeigniter/</link>
		<comments>http://dudu.web.id/2011/05/mengaktifkan-fitur-search-pada-jqrid-dan-codeigniter/#comments</comments>
		<pubDate>Thu, 26 May 2011 02:01:13 +0000</pubDate>
		<dc:creator>dudu</dc:creator>
				<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[jqgrid]]></category>
		<category><![CDATA[Jqueryui]]></category>

		<guid isPermaLink="false">http://dudu.web.id/?p=417</guid>
		<description><![CDATA[Sebelumnya saya mohon maaf, jika pada artikel sebelumnya Tutorial menggunakan Codeigniter dan JqGrid ternyata masih banyak terdapat kesalahan pada codingnya . Misalnya fungsi sorting dan search belum bisa jalan, kemudia fungsi pagination juga masih eror (. Kali ini saya berusaha memperbaiki kesalahan tersebut, dengan mengaktifkan fitur search, sorting dan paging pada jqgrid tersebut. Berbekal dari google, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://dudu.web.id/wp-content/uploads/2010/11/jqgrid.png"><img class="alignnone size-full wp-image-348" title="jqgrid" src="http://dudu.web.id/wp-content/uploads/2010/11/jqgrid.png" alt="" width="462" height="188" /></a></p>
<p>Sebelumnya saya mohon maaf, jika pada artikel sebelumnya <a href="http://dudu.web.id/?p=347">Tutorial menggunakan Codeigniter dan JqGrid</a> ternyata masih banyak terdapat kesalahan pada codingnya <img src='http://dudu.web.id/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> . Misalnya fungsi sorting dan search belum bisa jalan, kemudia fungsi pagination juga masih eror <img src='http://dudu.web.id/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> (.</p>
<p>Kali ini saya berusaha memperbaiki kesalahan tersebut, dengan mengaktifkan fitur search, sorting dan paging pada jqgrid tersebut.<br />
<span id="more-417"></span><br />
Berbekal dari <a href="http://www.google.com">google</a>, dan akhirnya menemukan blog <a href="http://blog.brzezinka.eu/webmaster-tips/jquery/how-to-enable-the-search-functionality-in-jqgrid">ini</a>.. Mulau saya kutak katik koding yang dahulu.. ternyata banyak salahnya saya <img src='http://dudu.web.id/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  gapapa deh, namanya juga belajar. Sebelumnya saya mengubah file view, menjadi seperti ini..</p>
<pre class="brush: php; title: ; notranslate">
&lt;!DOCTYPE HTML&gt;
&lt;html lang=&quot;en-US&quot;&gt;
 	&lt;head&gt;
		&lt;link rel=&quot;stylesheet&quot; href=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.6/themes/base/jquery-ui.css&quot; type=&quot;text/css&quot; media=&quot;all&quot; /&gt;
		&lt;link rel=&quot;stylesheet&quot; href=&quot;http://static.jquery.com/ui/css/demo-docs-theme/ui.theme.css&quot; type=&quot;text/css&quot; media=&quot;all&quot; /&gt;
		&lt;link type=&quot;text/css&quot; href=&quot;&lt;?php echo base_url()?&gt;jqgrid/css/ui.jqgrid.css&quot; rel=&quot;stylesheet&quot; /&gt;
		&lt;link type=&quot;text/css&quot; href=&quot;&lt;?php echo base_url()?&gt;jqgrid/css/jquery.searchFilter.css&quot; rel=&quot;stylesheet&quot; /&gt;
		&lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js&quot;&gt;&lt;/script&gt;
        &lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.11/jquery-ui.min.js&quot;&gt;&lt;/script&gt;
        &lt;script type=&quot;text/javascript&quot; src=&quot;&lt;?php echo base_url(); ?&gt;jqgrid/js/i18n/grid.locale-en.js&quot;&gt;&lt;/script&gt;
        &lt;script type=&quot;text/javascript&quot; src=&quot;&lt;?php echo base_url(); ?&gt;jqgrid/jquery.jqGrid.js&quot;&gt;&lt;/script&gt;
        &lt;script type=&quot;text/javascript&quot; src=&quot;&lt;?php echo base_url(); ?&gt;jqgrid/jquery.jqGrid.min.js&quot;&gt;&lt;/script&gt;
        &lt;script type=&quot;text/javascript&quot; src=&quot;&lt;?php echo base_url(); ?&gt;jqgrid/jquery.layout.js&quot;&gt;&lt;/script&gt;

		&lt;title&gt;Demo Jquery JqGrid Codeigniter&lt;/title&gt;
	&lt;/head&gt;
	&lt;body&gt;
		&lt;?
			$ci =&amp; get_instance();
			$base_url = base_url();
		?&gt;

		&lt;script type=&quot;text/javascript&quot;&gt;
			jQuery().ready(function (){
				jQuery(&quot;#list1&quot;).jqGrid({
		   			url:'&lt;?=$base_url.'index.php/daily/loadDataGrid'?&gt;',      //another controller function for generating data
					mtype : &quot;post&quot;,             //Ajax request type. It also could be GET
					datatype: &quot;json&quot;,            //supported formats XML, JSON or Arrray
		   			colNames:['Date','Name','Amount'],       //Grid column headings
		   			colModel:[
				   		{name:'date',index:'date', width:30, align:&quot;left&quot;},
				   		{name:'name',index:'name', width:20, align:&quot;left&quot;},
				   		{name:'amount',index:'amount', width:20, align:&quot;right&quot;},
		  			],
				   	rowNum:10,
				   	width: 450,
						height: 300,
				   	rowList:[10,20,30],
				   	pager: '#pager1',
				   	sortname: 'id',
				    viewrecords: true,
					rownumbers: true,
					gridview: true,
					caption:&quot;List Daily&quot;
				}).navGrid('#pager1',{edit:false,add:false,del:false});
			});
		&lt;/script&gt;

		&lt;table id=&quot;list1&quot;&gt;&lt;/table&gt; &lt;!--Grid table--&gt;
		&lt;div id=&quot;pager1&quot;&gt;&lt;/div&gt;  &lt;!--pagination div--&gt;
	&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Intinya perubahan view adalah membetulkan file javascript yang dipanggil (dulu ga tau, asal manggil aja). Kemudian pada controller, ada beberapa yang saya betulkan, terutama pada fungsi untuk memanggil jqgridnya (dulu saya memakai nama fungsinya function loadDataGrid). Yang saya lakukan adalah menambahkan beberapa parameter yang digunakan pada searching data, paging dan sorting. Untuk lebih jelasnya script function loadDataGrid sebagai berikut :</p>
<pre class="brush: php; title: ; notranslate">
function loadDataGrid(){
		$page = isset($_POST['page'])?$_POST['page']:1; // get the requested page
		$limit = isset($_POST['rows'])?$_POST['rows']:10; // get how many rows we want to have into the grid
		$sidx = isset($_POST['sidx'])?$_POST['sidx']:'name'; // get index row - i.e. user click to sort
		$sord = isset($_POST['sord'])?$_POST['sord']:''; // get the direction

        $start = $limit*$page - $limit; // do not put $limit*($page - 1)
		$start = ($start&lt;0)?0:$start;  // make sure that $start is not a negative value

		$where = &quot;&quot;; //if there is no search request sent by jqgrid, $where should be empty
        $searchField = isset($_POST['searchField']) ? $_POST['searchField'] : false;
        $searchOper = isset($_POST['searchOper']) ? $_POST['searchOper']: false;
        $searchString = isset($_POST['searchString']) ? $_POST['searchString'] : false;

        if ($_POST['_search'] == 'true') {
            $ops = array(
            'eq'=&gt;'=', //equal
            'ne'=&gt;'&lt;&gt;',//not equal
            'lt'=&gt;'&lt;', //less than
            'le'=&gt;'&lt;=',//less than or equal
            'gt'=&gt;'&gt;', //greater than
            'ge'=&gt;'&gt;=',//greater than or equal
            'bw'=&gt;'LIKE', //begins with
            'bn'=&gt;'NOT LIKE', //doesn't begin with
            'in'=&gt;'LIKE', //is in
            'ni'=&gt;'NOT LIKE', //is not in
            'ew'=&gt;'LIKE', //ends with
            'en'=&gt;'NOT LIKE', //doesn't end with
            'cn'=&gt;'LIKE', // contains
            'nc'=&gt;'NOT LIKE'  //doesn't contain
            );

            foreach ($ops as $key=&gt;$value){
                if ($searchOper==$key) {
                    $ops = $value;
                }
            }
            if($searchOper == 'eq' ) $searchString = $searchString;
            if($searchOper == 'bw' || $searchOper == 'bn') $searchString .= '%';
            if($searchOper == 'ew' || $searchOper == 'en' ) $searchString = '%'.$searchString;
            if($searchOper == 'cn' || $searchOper == 'nc' || $searchOper == 'in' || $searchOper == 'ni') $searchString = '%'.$searchString.'%';

            $where = &quot;$searchField $ops '$searchString' &quot;; //create where parameter for search data
        }

		if(!$sidx) $sidx =1;
        $count = $this-&gt;db-&gt;count_all_results('daily'); //get total rows from table daily

		if( $count &gt; 0 ) {
			$total_pages = ceil($count/$limit);    //calculating total number of pages
		} else {
			$total_pages = 0;
		}

		if ($page &gt; $total_pages) $page=$total_pages;
   		$query = $this-&gt;MDaily-&gt;getAllGrid($start,$limit,$sidx,$sord,$where); //add parameter to model

		$responce-&gt;page = $page;
		$responce-&gt;total = $total_pages;
		$responce-&gt;records = $count;
		$i=0;
		foreach($query as $row) {
			$responce-&gt;rows[$i]['id']=$row-&gt;id;
			$responce-&gt;rows[$i]['cell']=array($row-&gt;date,$row-&gt;name,$row-&gt;amount);
			$i++;
		}
		echo json_encode($responce);
  }
</pre>
<p>banyak perubahannya ya? hehehe.. maklum saya juga masih belajar.. Dan untuk model, saya membuat sebuah fungsi baru yaitu getAllGrid dengan parameternya ada banyak (lihat source codenya langsung) seperti berikut :</p>
<pre class="brush: php; title: ; notranslate">
function getAllGrid($start,$limit,$sidx,$sord,$where){
    $this-&gt;db-&gt;select('id,date,name,amount');
    $this-&gt;db-&gt;limit($limit);
    if($where != NULL)$this-&gt;db-&gt;where($where,NULL,FALSE);
    $this-&gt;db-&gt;order_by($sidx,$sord);
    $query = $this-&gt;db-&gt;get('daily',$limit,$start);

    return $query-&gt;result();
  }
</pre>
<p>terdapat if dalam fungsi tersebut, digunakan kalau ada parameter where, maka dilakuakan query menggunakan where tersebut, jika tidak ya tidak menggunakan where <img src='http://dudu.web.id/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Semoga berhasil.. Ingat, untuk menjalankan program ini harus terhubung ke internet, soalnya jquery nya saya ambil langsung dari internet <img src='http://dudu.web.id/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> . Dan juga harus mengikuti artikel <a href="http://dudu.web.id/?p=347">yang ini</a> dulu..</p>
<p>Demo masih tetap pada halaman <a href="http://dudu.web.id/ci_ku/index.php/daily/jqGrid">berikut </a></p>
<p>Untuk lebih jelasnya tentang perubahan yang saya gunakan, bisa di cek di <a href="https://github.com/dwijonarko/ci_ku/">github saya </a></p>
]]></content:encoded>
			<wfw:commentRss>http://dudu.web.id/2011/05/mengaktifkan-fitur-search-pada-jqrid-dan-codeigniter/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Insert &#8211; Edit &#8211; Delete dengan Codeigniter 2.0</title>
		<link>http://dudu.web.id/2011/05/insert-edit-delete-dengan-codeigniter-2-0/</link>
		<comments>http://dudu.web.id/2011/05/insert-edit-delete-dengan-codeigniter-2-0/#comments</comments>
		<pubDate>Wed, 25 May 2011 05:00:15 +0000</pubDate>
		<dc:creator>dudu</dc:creator>
				<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[codeigniter 2.0]]></category>
		<category><![CDATA[CRUD]]></category>
		<category><![CDATA[Delete]]></category>
		<category><![CDATA[Edit]]></category>
		<category><![CDATA[Insert]]></category>

		<guid isPermaLink="false">http://dudu.web.id/?p=412</guid>
		<description><![CDATA[Melanjutkan artikel sebelumnya Tampil data memakai Codeigniter versi 2.0.2 sekarang kita tambahkan pada aplikasi kita fungsi untuk menyimpan, edit dan delete data. Dalam aplikasi pendaftaran user ini, saya menyimpan password dengan meng-enkripsi md5 terlebih dahulu untuk field password. Kemudian pada waktu edit,password tidak akan tampil. Jika field password tidak diedit, maka password tidak di ganti, [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://i52.tinypic.com/kcjjts.jpg" alt="Inert Edit Delete dengan Codeigniter 2.0" /><br />
Melanjutkan artikel sebelumnya <a href="http://dudu.web.id/2011/05/tampil-data-memakai-codeigniter-versi-2-0-2/">Tampil data memakai Codeigniter versi 2.0.2</a> sekarang kita tambahkan pada aplikasi kita fungsi untuk menyimpan, edit dan delete data.</p>
<p>Dalam aplikasi pendaftaran user ini, saya menyimpan password dengan meng-enkripsi md5 terlebih dahulu untuk field password. Kemudian pada waktu edit,password tidak akan tampil. Jika field password tidak diedit, maka password tidak di ganti, tetapi jika filed input password diubah, maka password akan diubah, dengan fungsi enkripsi md5 tentunya.<br />
<span id="more-412"></span><br />
Kalau dilihat dari sisi coding, ga terlalu jauh dengan script terdahulu, tetapi saya menambahkan fungsi validasi inputannya. Sehingga pada controller user, kita tambahkan fungsi edit untuk menampilkan data yang akan diedit, fungsi submit yang berfungsi menangani submit dari form input dan edit, dan fungsi delete untuk menghapus data. Scriptnya adalah sebagai berikut :</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
class User extends CI_Controller{

	/*---script sebelumnya---*/

	function submit(){
		if ($this-&gt;input-&gt;post('submit')){

			if ($this-&gt;input-&gt;post('id')){
				$this-&gt;form_validation-&gt;set_rules('username', 'Username', 'required|min_length[5]|max_length[12]');
				$this-&gt;form_validation-&gt;set_rules('password', 'Password', 'matches[passconf]');
				$this-&gt;form_validation-&gt;set_rules('fullname', 'Fullname', 'required|min_length[5]|max_length[25]');

				if ($this-&gt;form_validation-&gt;run() == FALSE){
					$data['id'] = $this-&gt;input-&gt;post('id');
					$data['username'] = set_value('username');
					$data['fullname'] = set_value('fullname');
					$this-&gt;load-&gt;view('view_user/edit',$data);
				}else{
					$this-&gt;Model_user-&gt;update();
        	redirect('user/index');
        }
			}else{
				$this-&gt;form_validation-&gt;set_rules('username', 'Username', 'required|min_length[5]|max_length[12]');
				$this-&gt;form_validation-&gt;set_rules('password', 'Password', 'required|matches[passconf]');
				$this-&gt;form_validation-&gt;set_rules('passconf', 'Password Confirmation', 'required');
				$this-&gt;form_validation-&gt;set_rules('fullname', 'Fullname', 'required|min_length[5]|max_length[25]');

        if ($this-&gt;form_validation-&gt;run() == FALSE){
						$data['query'] = $this-&gt;Model_user-&gt;getAll();
						$this-&gt;load-&gt;view('view_user/input',$data);
				}else{
	          $this-&gt;Model_user-&gt;save();
  	        redirect('user/index');
  	    }
      }
		}
	}

	function edit(){
  	$id=$this-&gt;uri-&gt;segment(3);
  	$data['result']=$this-&gt;Model_user-&gt;getUser($id);

    if (empty($id) or count($data['result'])==0 ){
    	redirect('user/index');
    }else{
	    $result=$this-&gt;Model_user-&gt;getUser($id);
	    $data['id'] = $result['id'];
	    $data['username'] = $result['username'];
			$data['fullname'] = $result['fullname'];
	    $this-&gt;load-&gt;view('view_user/edit', $data);
    }
  }

  function delete($id){
  	$this-&gt;db-&gt;delete('user', array('id' =&gt; $id));
		redirect('user/index');
  }
}
</pre>
<p>agak panjang ya <img src='http://dudu.web.id/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  mungkin jika Anda menemukan yang lebih pendek, bisa kasih tau saya <img src='http://dudu.web.id/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Untuk modelnya ditambahkan fungsi seperti dibawah ini :</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
class Model_user extends CI_Model{

/*---fungsi sebelumnya ---*/	

	function getUser($id){
		$this-&gt;db-&gt;where('id', $id);
    $query = $this-&gt;db-&gt;get('user'); 

    return $query-&gt;row_array();
	}

	function save(){
    $username = $this-&gt;input-&gt;post('username');
    $password = $this-&gt;input-&gt;post('password');
    $fullname = $this-&gt;input-&gt;post('fullname');
    $data = array(
      'username'=&gt;$username,
      'password'=&gt;md5($password),
      'fullname'=&gt;$fullname
    );
    $this-&gt;db-&gt;insert('user',$data);
  }

  function update(){
    $id   = $this-&gt;input-&gt;post('id');
		$username = $this-&gt;input-&gt;post('username');
		$password = $this-&gt;input-&gt;post('password');
    $fullname = $this-&gt;input-&gt;post('fullname');
    if ($password==''){
    	$data = array(
      'username'=&gt;$username,
      'fullname'=&gt;$fullname
    );
    }else{
    	$data = array(
      'username'=&gt;$username,
      'password'=&gt;md5($password),
      'fullname'=&gt;$fullname
    );
    }

    $this-&gt;db-&gt;where('id',$id);
    $this-&gt;db-&gt;update('user',$data);
  }
}
</pre>
<p>Untuk view, saya membuat file edit.php pada folder view_user yang scriptnya sebagai berikut :</p>
<pre class="brush: php; title: ; notranslate">
&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
  &lt;head&gt;
    &lt;meta charset=&quot;utf-8&quot;&gt;
    &lt;title&gt;Data User&lt;/title&gt;
  &lt;/head&gt;
  &lt;body&gt;
    &lt;div id=&quot;form_input&quot; title=&quot;Edit Data&quot;&gt;
      &lt;table&gt;
        &lt;?php echo validation_errors(); ?&gt;
        &lt;?php echo form_open('user/submit'); ?&gt;
        &lt;tr &gt;
            &lt;td&gt; &lt;?php echo form_label('User Name : '); ?&gt;&lt;/td&gt;&lt;?php echo form_hidden('id',$id); ?&gt;
            &lt;td&gt; &lt;?php echo form_input('username',$username,'id=&quot;username&quot;'); ?&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;?php echo form_label('Password : ');?&gt; &lt;/td&gt;
            &lt;td&gt; &lt;?php echo form_password('password','','id=&quot;password&quot;'); ?&gt;&lt;/td&gt;
        &lt;/tr&gt;
         &lt;tr&gt;
            &lt;td&gt; &lt;?php echo form_label('Repeat Password : ');?&gt; &lt;/td&gt;
            &lt;td&gt; &lt;?php echo form_password('passconf','','id=&quot;passconf&quot;'); ?&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;?php echo form_label('Full Name : ');?&gt; &lt;/td&gt;
            &lt;td&gt; &lt;?php echo form_input('fullname', $fullname,'id=&quot;fullname&quot;'); ?&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
        		&lt;td&gt;&lt;?php echo form_submit('submit','Save')?&gt;
        &lt;/tr&gt;
      &lt;/table&gt;
      &lt;/div&gt;
  &lt;/body&gt;
&lt;/html&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://dudu.web.id/2011/05/insert-edit-delete-dengan-codeigniter-2-0/feed/</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
		<item>
		<title>Tampil data memakai Codeigniter versi 2.0.2</title>
		<link>http://dudu.web.id/2011/05/tampil-data-memakai-codeigniter-versi-2-0-2/</link>
		<comments>http://dudu.web.id/2011/05/tampil-data-memakai-codeigniter-versi-2-0-2/#comments</comments>
		<pubDate>Tue, 24 May 2011 02:50:31 +0000</pubDate>
		<dc:creator>dudu</dc:creator>
				<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[codeigniter 2.0]]></category>
		<category><![CDATA[CRUD]]></category>

		<guid isPermaLink="false">http://dudu.web.id/?p=405</guid>
		<description><![CDATA[Dalam artikel terdauhulu : Codeigniter dasar &#8211; Membuat insert data Codeigniter dasar &#8211; Menampilkan dan menghapus Codeigniter dasar &#8211; Membuat Edit data Codeigniter dasar &#8211; Belajar Ajax dengan Jquery Menghapus data dengan JQuery CRUD sederhana dengan JQuery, JQueryUI dan Codeigniter Menggunakan Codeigniter dan JQGrid Kesemuanya menggunakan Codeigniter versi 1.7.3 (kalo saya tidak salah ingat..) Nah [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="Codeigniter 2.0" src="http://i52.tinypic.com/kcjjts.jpg" alt="Codeigniter 2.0" width="431" height="361" /></p>
<p>Dalam artikel terdauhulu :<br />
<a title="Tutorial menggunakan Codeigniter dan JqGrid" href="http://dudu.web.id/2010/11/tutorial-menggunakan-codeigniter-dan-jqgrid/"> </a></p>
<p><a title="Codeigniter Dasar – Membuat Insert Data" href="http://dudu.web.id/2010/04/codeigniter-dasar-membuat-insert-data/">Codeigniter dasar &#8211; Membuat insert data</a></p>
<p><a title="Codeigniter dasar – Menampilkan dan Menghapus Data" href="http://dudu.web.id/2010/04/codeigniter-dasar-menampilkan-dan-menghapus-data/">Codeigniter dasar &#8211; Menampilkan dan menghapus</a></p>
<p><a title="Codeigniter Dasar – Membuat Edit Data" href="http://dudu.web.id/2010/07/codeigniter-dasar-%e2%80%93-membuat-edit-data/">Codeigniter dasar &#8211; Membuat Edit data</a></p>
<p><a title="Codeigniter Dasar – Belajar AJAX dengan JQuery" href="http://dudu.web.id/2010/04/codeigniter-dasar-belajar-ajax-dengan-jquery/">Codeigniter dasar &#8211; Belajar Ajax dengan Jquery</a></p>
<p><a title="Codeigniter Dasar – Menghapus data dengan Jquery" href="http://dudu.web.id/2010/04/codeigniter-dasar-menghapus-data-dengan-jquery/">Menghapus data dengan JQuery</a></p>
<p><a title="CRUD sederhana dengan jquery, jqueryui, dan Codeigniter" href="http://dudu.web.id/2010/11/crud-sederhana-dengan-jquery-jqueryui-dan-codeigniter/">CRUD sederhana dengan JQuery, JQueryUI dan Codeigniter</a></p>
<p><a title="Tutorial menggunakan Codeigniter dan JqGrid" href="http://dudu.web.id/2010/11/tutorial-menggunakan-codeigniter-dan-jqgrid/">Menggunakan Codeigniter dan JQGrid</a></p>
<p>Kesemuanya menggunakan Codeigniter versi 1.7.3 (kalo saya tidak salah ingat..) Nah berhubung sekarang sudah ada yang versi terbaru, berikut ini CRUD sederhana dengan Codeigniter verse 2.0.2 silahkan cari perbedaannya dengan yang versi terdahulu.</p>
<p><span id="more-405"></span></p>
<p>Misalnya, kita akan membuat aplikasi pendaftaran user.. Untuk databasenya adalah sebagai berikut :</p>
<pre class="brush: php; title: ; notranslate">CREATE TABLE IF NOT EXISTS `user` (
  `id` int(3) NOT NULL AUTO_INCREMENT,
  `username` varchar(15) NOT NULL,
  `password` text NOT NULL,
  `fullname` varchar(50) NOT NULL,
  PRIMARY KEY (`id`)
)
</pre>
<p>Sebelum membuat controller dan sebagainya, silahkan sesuaikan pada application/config/config.php</p>
<pre class="brush: php; title: ; notranslate">
$config['base_url']= 'http://localhost/nama_folder_ci/';
</pre>
<p>application/config/autoload.php</p>
<pre class="brush: php; title: ; notranslate">
$autoload['libraries'] = array('database','form_validation');
$autoload['helper'] = array('url','form');
</pre>
<p>application/config/database.php</p>
<pre class="brush: php; title: ; notranslate">
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root'; //user mysql kalian
$db['default']['password'] = ''; //password mysql kalian
$db['default']['database'] = 'codeigniter'; //nama database kalian
$db['default']['dbdriver'] = 'mysql';
...dst
</pre>
<p>Nah untuk cotroller, saya buat dalam fungsi index yang nantinya terdapat form input dan tabel data yang di inputkan.. controllernya dan fungsi indexnya</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
class User extends CI_Controller{

	function __construct(){
		parent::__construct();
		$this-&gt;load-&gt;model('Model_user');
	}

	function index(){
		$data['query'] = $this-&gt;Model_user-&gt;getAll();
		$this-&gt;load-&gt;view('view_user/input',$data);
	}
}
</pre>
<p>Jangan lupa membuat model_user, dengan fungsi untuk menampilkan data scriptnya :</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
class Model_user extends CI_Model{
        function __construct(){
		parent::__construct();
	}

	function getAll(){
		$this-&gt;db-&gt;select('id,username,fullname');
                $this-&gt;db-&gt;from('user');
                $this-&gt;db-&gt;limit(10);
                $this-&gt;db-&gt;order_by('id','ASC');
                $query = $this-&gt;db-&gt;get();

                return $query-&gt;result();
	}
}
</pre>
<p>Untuk tampilannya, saya lebih menyenangi membuat sebuah folder untuk setiap crud <img src='http://dudu.web.id/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  jadi dalam folder views saya membuat folder dengan nama user_views, dan di dalamnya saya membuat view input.php dan show.php.<br />
input.php digunakan untuk inputan form, scriptnya sebagai berikut :</p>
<pre class="brush: php; title: ; notranslate">
&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
  &lt;head&gt;
    &lt;meta charset=&quot;utf-8&quot;&gt;
    &lt;title&gt;Data User&lt;/title&gt;
  &lt;/head&gt;
  &lt;body&gt;
    &lt;div id=&quot;form_input&quot; title=&quot;Input / Edit Data&quot;&gt;
      &lt;table&gt;
        &lt;?php echo validation_errors(); ?&gt;
        &lt;?php echo form_open('user/submit'); ?&gt;
        &lt;tr &gt;
            &lt;td&gt; &lt;?php echo form_label('User Name : '); ?&gt;&lt;/td&gt;
            &lt;td&gt; &lt;?php echo form_input('username',set_value('username'),'id=&quot;username&quot;'); ?&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;?php echo form_label('Password : ');?&gt; &lt;/td&gt;
            &lt;td&gt; &lt;?php echo form_password('password','','id=&quot;password&quot;'); ?&gt;&lt;/td&gt;
        &lt;/tr&gt;
         &lt;tr&gt;
            &lt;td&gt; &lt;?php echo form_label('Repeat Password : ');?&gt; &lt;/td&gt;
            &lt;td&gt; &lt;?php echo form_password('passconf','','id=&quot;passconf&quot;'); ?&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;?php echo form_label('Full Name : ');?&gt; &lt;/td&gt;
            &lt;td&gt; &lt;?php echo form_input('fullname', set_value('fullname'),'id=&quot;fullname&quot;'); ?&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
        		&lt;td&gt;&lt;?php echo form_submit('submit','Save')?&gt;
        &lt;/tr&gt;
      &lt;/table&gt;
      &lt;/div&gt;
      &lt;div id=&quot;show&quot;&gt;
        &lt;?php $this-&gt;load-&gt;view('view_user/show'); ?&gt;
    &lt;/div&gt;
    &lt;/div&gt;
  &lt;/body&gt;
&lt;/html&gt;
</pre>
<p>sedangkan show.php scriptnya adalah sebagai berikut :</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
	if (isset($query) &amp;&amp; count($query) &gt; 0){
	?&gt;
	&lt;h1&gt;Data User&lt;/h1&gt;
	&lt;table width=&quot;400&quot; border=&quot;1&quot;&gt;
 	&lt;tr &gt;
	 &lt;th&gt;No&lt;/th&gt;
	 &lt;th&gt;Username&lt;/th&gt;
	 &lt;th&gt;Fullname&lt;/th&gt;
	 &lt;th&gt;Edit&lt;/th&gt;
	 &lt;th&gt;Delete&lt;/th&gt;
 &lt;/tr&gt;
 &lt;?php
 $i=0;
 foreach ($query as $row){
 $i++;
 echo &quot;&lt;tr class=\&quot;record\&quot;&gt;&quot;;
 echo    &quot;&lt;td&gt;$i&lt;/td&gt;&quot;;
 echo    &quot;&lt;td&gt;$row-&gt;username&lt;/td&gt;&quot;;
 echo    &quot;&lt;td&gt;$row-&gt;fullname&lt;/td&gt;&quot;;
 echo    &quot;&lt;td&gt;&lt;a href=&quot;.base_url().&quot;index.php/user/edit/$row-&gt;id&gt;Edit&lt;/a&gt;&lt;/td&gt;&quot;;
 echo    &quot;&lt;td&gt;&lt;a href=&quot;.base_url().&quot;index.php/user/delete/$row-&gt;id&gt;Delete&lt;/a&gt;&lt;/td&gt;&quot;;
 echo  &quot;&lt;/tr&gt;&quot;;
 }
 ?&gt;
&lt;/table&gt;
&lt;?php
	}
?&gt;
</pre>
<p>sampai sini, kita sebenarnya sudah selesai untuk membuat fungsi menampilkan data dari database, coba masukkan data lewat phpmyadmin, insyaalloh udah bisa tampil&#8230; Untuk simpan dan edit serta delete, lanjut di post berikutnya ya <img src='http://dudu.web.id/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://dudu.web.id/2011/05/tampil-data-memakai-codeigniter-versi-2-0-2/feed/</wfw:commentRss>
		<slash:comments>42</slash:comments>
		</item>
		<item>
		<title>Chained DropDown dengan Jquery dan Codeigniter</title>
		<link>http://dudu.web.id/2011/02/chained-dropdown-dengan-jquery-dan-codeigniter/</link>
		<comments>http://dudu.web.id/2011/02/chained-dropdown-dengan-jquery-dan-codeigniter/#comments</comments>
		<pubDate>Mon, 14 Feb 2011 07:16:58 +0000</pubDate>
		<dc:creator>dudu</dc:creator>
				<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Chained Dropdown]]></category>
		<category><![CDATA[Dropdown Select]]></category>
		<category><![CDATA[Linked Dropdown]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Sub Dropdown]]></category>

		<guid isPermaLink="false">http://dudu.web.id/?p=383</guid>
		<description><![CDATA[*gambarnya aneh Selamat datang kembali, yeah&#8230; setelah kemarin pusing dengan aktifitas di tempat kerja, akhirnya bisa refreshing lagi, kangen-kangenan lagi dengan Codeigniter dan JQuery. Rencananya sih pengen nyoba yang 2.0, tapi nanggung ah, masih pake yang versi lama dulu. Beberapa waktu lalu sempat ditanyain cara buat dropdown yang nyambung (istilahnya banyak sih), ada pula yang [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://dudu.web.id/wp-content/uploads/2011/02/Screenshot-Chain-Select-With-Codeigniter-and-Jquery-Mozilla-Firefox.png"><img class="alignnone size-full wp-image-384" title="Chain Select With Codeigniter and Jquery - Mozilla Firefox" src="http://dudu.web.id/wp-content/uploads/2011/02/Screenshot-Chain-Select-With-Codeigniter-and-Jquery-Mozilla-Firefox.png" alt="" width="469" height="221" /></a></p>
<p>*gambarnya aneh <img src='http://dudu.web.id/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Selamat datang kembali, yeah&#8230; setelah kemarin pusing dengan aktifitas di tempat kerja, akhirnya bisa refreshing lagi, kangen-kangenan lagi dengan Codeigniter dan JQuery. Rencananya sih pengen nyoba yang 2.0, tapi nanggung ah, masih pake yang versi lama dulu.</p>
<p>Beberapa waktu lalu sempat ditanyain cara buat dropdown yang nyambung (istilahnya banyak sih), ada pula yang kasih istilah Sub Dropdown. Yaitu select/dropdown 1 yang kalo dipilih, nanti dropdown 2 listnya akan berubah sesuai kategori di dropdown 1. Contoh sederhananya ya ketika milih propinsi, maka dorpdown 2 akan muncul pilihan kota sesuai propinsi di drodown 1 (kaya di skrinsut <img src='http://dudu.web.id/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  ).</p>
<p>Karena saya biasa pake CI, ya wes langsung ta buat aja..</p>
<p><span id="more-383"></span></p>
<p><strong>Controller :</strong></p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
class Chain extends Controller{

	function __construct(){
		parent::Controller();
		$this-&gt;load-&gt;model('MChain');
	}

	function index(){

		$data['option_propinsi'] = $this-&gt;MChain-&gt;getPropinsiList();
		$this-&gt;load-&gt;view('chain/index',$data);
	}

	function select_kota(){
		$data['option_kota'] = $this-&gt;MChain-&gt;getKotaList();
		$this-&gt;load-&gt;view('chain/kota',$data);
	}
}
?&gt;
</pre>
<p>Dua function, yang pertama index, untuk menampilkan halaman awalnya, kemudian select_kota itu dijalankan lewat ajax untuk memanggil dropdowon dua yang isinya kota sesuai propinsi pada dropdown pertama.</p>
<p><strong>Model :</strong></p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
class MChain extends Model{
	function __construct(){
		parent::Model();
	}

	function getPropinsiList(){
		$result = array();
		$this-&gt;db-&gt;select('*');
		$this-&gt;db-&gt;from('propinsi');
		$this-&gt;db-&gt;order_by('propinsi','ASC');
		$array_keys_values = $this-&gt;db-&gt;get();
        foreach ($array_keys_values-&gt;result() as $row)
        {
            $result[0]= '-Pilih Propinsi-';
            $result[$row-&gt;propinsi_id]= $row-&gt;propinsi;
        }

        return $result;
	}

	function getKotaList(){
		$propinsi_id = $this-&gt;input-&gt;post('propinsi_id');
		$result = array();
		$this-&gt;db-&gt;select('*');
		$this-&gt;db-&gt;from('kota_kabupaten');
		$this-&gt;db-&gt;where('propinsi_id',$propinsi_id);
		$this-&gt;db-&gt;order_by('kota_kabupaten','ASC');
		$array_keys_values = $this-&gt;db-&gt;get();
        foreach ($array_keys_values-&gt;result() as $row)
        {
            $result[0]= '-Pilih Kota / Kabupaten-';
            $result[$row-&gt;kota_id]= $row-&gt;kota_kabupaten;
        }

        return $result;
	}

}
?&gt;
</pre>
<p>Dua fungsi yang hampir sama, sama-sama memanggil isi dari tabel, kemudian ditampilkan sebagi list pada dropdown. Kalo fungsi yang kedua, itu ditambah statement where, sesuai kategori propinsi yang dipilih.</p>
<p><strong>View :</strong><br />
Saya buat dua view, yang pertama untuk halaman depannya, kemudian yang kedua adalah untuk menampilkan dropdown dua untuk kota/kabupaten. Viewnya sebagai berikut :<br />
index.php</p>
<pre class="brush: php; title: ; notranslate">
&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
  &lt;head&gt;
    &lt;meta charset=&quot;utf-8&quot;&gt;
    &lt;title&gt;Chain Select With Codeigniter and Jquery&lt;/title&gt;
    &lt;link rel=&quot;stylesheet&quot; href=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.6/themes/base/jquery-ui.css&quot; type=&quot;text/css&quot; media=&quot;all&quot; /&gt;
		&lt;link rel=&quot;stylesheet&quot; href=&quot;http://static.jquery.com/ui/css/demo-docs-theme/ui.theme.css&quot; type=&quot;text/	css&quot; media=&quot;all&quot; /&gt;
		&lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
		&lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.6/jquery-ui.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
  &lt;/head&gt;
  &lt;body&gt;
    &lt;!-- page content --&gt;
    &lt;div id=&quot;propinsi&quot; style=&quot;width:250px;float:left;&quot;&gt;
    Propinsi : &lt;br/&gt;
    &lt;?php
    	echo form_dropdown(&quot;provinsi_id&quot;,$option_propinsi,&quot;&quot;,&quot;id='propinsi_id'&quot;);
    ?&gt;
    &lt;/div&gt;
    &lt;div id=&quot;kota&quot;&gt;
    Kota / Kabupaten :&lt;br/&gt;
   	&lt;?php
    	echo form_dropdown(&quot;kota_id&quot;,array('Pilih Kota / Kabupaten'=&gt;'Pilih Propinsi Dahulu'),'','disabled');
    ?&gt;
    &lt;/div&gt;
    &lt;script type=&quot;text/javascript&quot;&gt;
	  	$(&quot;#propinsi_id&quot;).change(function(){
	    		var propinsi_id = {propinsi_id:$(&quot;#propinsi_id&quot;).val()};
	    		$.ajax({
						type: &quot;POST&quot;,
						url : &quot;&lt;?php echo site_url('chain/select_kota')?&gt;&quot;,
						data: propinsi_id,
						success: function(msg){
							$('#kota').html(msg);
						}
				  	});
	    });
	   &lt;/script&gt;
  &lt;/body&gt;
&lt;/html&gt;
</pre>
<p>kota.php</p>
<pre class="brush: php; title: ; notranslate">
Kota / Kabupaten :&lt;br/&gt;
   	&lt;?php
    	echo form_dropdown(&quot;kota_id&quot;,$option_kota,'');
    ?&gt;
</pre>
<p>Prosesnya adalah di view index.php, dropdown pertama diberikan sebuah id, kemudian id tersebut dipanggil dengan jquery, dengan menambahkan parameter value yg dipilih. Kemudian memanggil controller select_kota, memanggil model getKotaList sesuai paramater pada dropdown propinsi, lalu hasilnya akan diletakkan pada div kota. Begitulah kira-kira langkahnya <img src='http://dudu.web.id/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Source nya ada di <a href="https://github.com/dwijonarko/ci_ku" target="_blank">sini</a></p>
<p>Ada beberapa bugs ketika saya coba, ketika di coba di localhost. semua berjalan lancar, tetapi ketika saya coba upload di hosting, ternyata scriptnya jadi ga jalan.. POST nya ga bisa dikirim oleh jquery&#8230; aneh.. ada yang bisa nemu erorrnya??</p>
<blockquote><p>30-03-2011 : Pagi ini saya upload ulang filenya, dan tiba-tiba bisa jalan di servernya. Coba di cek deh <a href="http://dudu.web.id/ci_ku/index.php/chain">http://dudu.web.id/ci_ku/index.php/chain</a> ga tau kenapa..</p></blockquote>
<p>Oh ya, unttuk databasenya saya download dari <a href="http://muhammad.zamroni.net/download-data-propinsi-dan-kota-kabupaten-se-indonesia.html#header" target="_blank">sini</a>, thx to mas <a href="http://twitter.com/matriphe" target="_blank">@matriphe</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dudu.web.id/2011/02/chained-dropdown-dengan-jquery-dan-codeigniter/feed/</wfw:commentRss>
		<slash:comments>129</slash:comments>
		</item>
	</channel>
</rss>

