<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Ahmad Tanwir&#039;s blog</title>
	<atom:link href="http://ahmadtanwir.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://ahmadtanwir.wordpress.com</link>
	<description>Tempat pembuangan sampah pikiran</description>
	<lastBuildDate>Tue, 23 Aug 2011 02:16:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='ahmadtanwir.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/9b5821d4f8b99ff39e70b2dcc9a1f5da?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Ahmad Tanwir&#039;s blog</title>
		<link>http://ahmadtanwir.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://ahmadtanwir.wordpress.com/osd.xml" title="Ahmad Tanwir&#039;s blog" />
	<atom:link rel='hub' href='http://ahmadtanwir.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Gentoo, Distribusi GNU/Linux untuk Developer</title>
		<link>http://ahmadtanwir.wordpress.com/2011/04/28/gentoo-distribusi-gnulinux-untuk-developer/</link>
		<comments>http://ahmadtanwir.wordpress.com/2011/04/28/gentoo-distribusi-gnulinux-untuk-developer/#comments</comments>
		<pubDate>Thu, 28 Apr 2011 05:04:36 +0000</pubDate>
		<dc:creator>Ahmad Tanwir</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://ahmadtanwir.wordpress.com/?p=345</guid>
		<description><![CDATA[Lebih dari dua tahun menggunakan Debian, akhirnya saya kembali selingkuh dengan Gentoo. Karena waktu yang cukup padat, installasi yang dimulai seminggu yang lalu belum juga ready to use sampai saat ini, sehingga terpikir untuk menulis artikel ini. Mencoba mereview salah satu distribusi GNU/Linux (selanjutnya saya sebut ‘distro’) favorit saya, Gentoo. Gentoo merupakan salah satu distro [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ahmadtanwir.wordpress.com&amp;blog=2033191&amp;post=345&amp;subd=ahmadtanwir&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://linuxjak.web.id"><br />
</a><a href="http://ahmadtanwir.files.wordpress.com/2011/04/28gentoo_logo.jpg"><img class="alignleft size-medium wp-image-349" title="28gentoo_logo" src="http://ahmadtanwir.files.wordpress.com/2011/04/28gentoo_logo.jpg?w=300&#038;h=300" alt="" width="300" height="300" /></a>Lebih dari dua tahun menggunakan Debian, akhirnya saya kembali selingkuh dengan Gentoo. Karena waktu yang cukup padat, installasi yang dimulai seminggu yang lalu belum juga ready to use sampai saat ini, sehingga terpikir untuk menulis artikel ini.</p>
<p>Mencoba mereview salah satu distribusi GNU/Linux (selanjutnya saya sebut ‘distro’) favorit saya, Gentoo. Gentoo merupakan salah satu distro induk, yakni distro yang dibangun dari nol, selain Slackware, Debian, Redhat dan masih banyak lagi yang lain. Dibanding distro induk lainnya, usia Gentoo masih cukup muda, pertama direlease oleh Daniel Robbins pada tahun 2004. Lalu apa yang membuat distro ini menarik? Berikut ulasannya.<span id="more-345"></span></p>
<p>Distribusi Source code</p>
<p>Satu hal yang membedakan gentoo dari distro lain adalah Gentoo mendistribusikan paket aplikasinya berbasis source code, yang ini berarti pengguna Gentoo harus melakukan kompilasi sendiri ketika melakukan installasi. Live DVD yang dapat diunduh di website resmi gentoo (http://gentoo.org) sendiri hanya merupakan versi coba-coba. Akibatnya waktu installasi Gentoo terbilang ekstrim, terakhir saya melakukan installasi sampai siap pakai, memakan waktu lebih dari 48 jam, itupun memakan reseource prosesor mencapai di atas 90% setiap saatnya.</p>
<p>Meskipun melakukan kompilasi sendiri, bukan berarti source code yang sudah di unduh di kompilasi secara manual, karena Gentoo sudah menyediakan management paket yang sangat powerfull, yang disebut Portage. Portage menjadi jantung dari Gentoo, kita dapat menentukan jenis kernel, tipe aristektur komputer, configurasi hardware pada Portage.</p>
<p>Fleksibelitas Sistem</p>
<p>Dimulai sejak installasi sistem, kita di bebaskan untuk memilih komponen sesuai keingan kita, kita dapat langsung memilih tipe dan versi kernel yang ingin kita install. Gentoo tak hanya memberikan pilihan kernel linux, tapi juga kernel FreeBSD dan Darwin (MacOS). Jenis kompiler untuk kompilasi sistem pun bisa di pilih sesuka hati. Berangkat ke GUI dan desktop, tentu saja kita di berikan kebebasan untuk memilih destop favorit kita. O ya, Gnome 3 juga sudah tersedia di Gentoo. Namun, flexibelitas Gentoo yang terlalu tinggi membuat Gentoo sulit untuk digunakan.</p>
<p>Salah satu yang tercepat</p>
<p>Gentoo merupakan salah satu distro tercepat, hal ini disebabkan karena kompilasi langsung dilakukan di komputer lokal, sehingga optimalisasi secara khusus diperuntukkan untuk spek komputer yang kita install. Inilah alasan Daniel Robbins menamai distro buatannya ‘Gentoo’, yaitu berasal dari nama spesies penguin yang berenang paling cepat.</p>
<p>Continues Release</p>
<p>Tidak seperti kebanyakan distro yang melakukan release rutin dalam jangka waktu tertentu, Gentoo cendrung tidak memiliki waktu release. Lho? Apa ini berarti aplikasi gentoo cendrung obsolute? Tentu tidak. Setiap saat kita bisa memperbaharui system, bisa sekali sebulan, sekali seminggu, bahkan setiap hari. Jadi tidak pernah ada release party untuk Gentoo.</p>
<p>Dokumentasi yang lengkap</p>
<p>Hal yang patut di acungi jempol untuk Gentoo, dengan kesulitan yang mutlak yang di alami oleh sebagain user, gentoo memberikan dokumentasi yang sangat lengkap untuk penggunanya. Hampir semua hal dalam Gentoo terdokumentasi dengan sangat baik. Dokumentasi gentoo tersedia dalam berbagai bahasa, termasuk bahasa indonesia (http://www.gentoo.org/doc/id/index.xml). Jika dokumen resmi dirasa kurang, kita bisa mengacu ke wiki gentoo yang beralamat di http://en.gentoo-wiki.com, yang merupakan kontribusi dari pengguna.</p>
<p>Gentoo memang bukan distro yang di tujukan untuk semua pengguna. Jadi jangan pernah mempromosikan Gentoo kepada orang yang belum sama sekali mengenal GNU/Linux, bisa-bisa orang tersebut ogah migrasi ke GNU/Linux. Tapi bila anda seoarang geek tulen, menyukai GNU/Linux, dan seorang hacker, saya kira tidak ada salahnya untuk memulai menyiksa komputer anda dengan mengintall Gentoo.</p>
<br />Filed under: <a href='http://ahmadtanwir.wordpress.com/category/programming/'>Programming</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ahmadtanwir.wordpress.com/345/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ahmadtanwir.wordpress.com/345/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ahmadtanwir.wordpress.com/345/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ahmadtanwir.wordpress.com/345/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ahmadtanwir.wordpress.com/345/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ahmadtanwir.wordpress.com/345/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ahmadtanwir.wordpress.com/345/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ahmadtanwir.wordpress.com/345/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ahmadtanwir.wordpress.com/345/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ahmadtanwir.wordpress.com/345/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ahmadtanwir.wordpress.com/345/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ahmadtanwir.wordpress.com/345/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ahmadtanwir.wordpress.com/345/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ahmadtanwir.wordpress.com/345/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ahmadtanwir.wordpress.com&amp;blog=2033191&amp;post=345&amp;subd=ahmadtanwir&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ahmadtanwir.wordpress.com/2011/04/28/gentoo-distribusi-gnulinux-untuk-developer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>0.000000 0.000000</georss:point>
		<geo:lat>0.000000</geo:lat>
		<geo:long>0.000000</geo:long>
		<media:content url="http://0.gravatar.com/avatar/6b25dc284e3f0f31cab71580e7c75521?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ata</media:title>
		</media:content>

		<media:content url="http://ahmadtanwir.files.wordpress.com/2011/04/28gentoo_logo.jpg?w=300" medium="image">
			<media:title type="html">28gentoo_logo</media:title>
		</media:content>
	</item>
		<item>
		<title>Scala, calon kuat pengganti bahasa pemrograman java di atas flatform Java?</title>
		<link>http://ahmadtanwir.wordpress.com/2011/04/17/scala-calon-kuat-pengganti-bahasa-pemrograman-java-di-atas-flatform-java/</link>
		<comments>http://ahmadtanwir.wordpress.com/2011/04/17/scala-calon-kuat-pengganti-bahasa-pemrograman-java-di-atas-flatform-java/#comments</comments>
		<pubDate>Sun, 17 Apr 2011 04:13:10 +0000</pubDate>
		<dc:creator>Ahmad Tanwir</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://ahmadtanwir.wordpress.com/?p=333</guid>
		<description><![CDATA[Pertama kali James Gosling mengumumkan kehadiran Java, cukup banyak sambutan baik dari programmer di dunia. Dengan prinsip &#8220;write once running everywhere&#8221;, Java menjadi solusi yang hebat kala itu. Perkembangan dan kenaran Java kala itu sulit untuk dibendung, mulai banyak di adopsi oleh banyak perusahaan-perusahaan besar semisal IBM, SUN (yang kini almarhum). Seiring dengan berjalannya waktu, Java [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ahmadtanwir.wordpress.com&amp;blog=2033191&amp;post=333&amp;subd=ahmadtanwir&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://ahmadtanwir.files.wordpress.com/2011/04/thumb-java-duke-guitar.png"><img class="alignleft size-full wp-image-335" title="thumb-java-duke-guitar" src="http://ahmadtanwir.files.wordpress.com/2011/04/thumb-java-duke-guitar.png?w=540" alt=""   /></a>Pertama kali James Gosling mengumumkan kehadiran Java, cukup banyak sambutan baik dari programmer di dunia. Dengan prinsip &#8220;write once running everywhere&#8221;, Java menjadi solusi yang hebat kala itu. Perkembangan dan kenaran Java kala itu sulit untuk dibendung, mulai banyak di adopsi oleh banyak perusahaan-perusahaan besar semisal IBM, SUN (yang kini almarhum). Seiring dengan berjalannya waktu, Java semakin mature. Java Virtual Machine (JVM) semakin hebat, waktu eksekusi program semakin cepat, bahkan menandingi kecepatan native language seperti C.<span id="more-333"></span></p>
<p>Sayangnya flatform yang hebat tidak disertai dengan perkembangan bahasa pemrograman java itu sendiri. Bahasa pemrograman java, seperti artis 70-an kini sudah tua, tidak lagi menarik untuk di pelajari.  Perubahan besar terakhir terjadi sejak rilis nya Java versi 1.5,  beberapa banyak feature baru di bahasa pemrograman java yang di tambahkan, sebut saja Generic dan Anotation. Walau cukup baik, tapi feature tersebut tidak lantas membuat bahasa pemrograman java kembali mempesona.</p>
<p>Pengembangan Java yang bersifat opensource membuat java banyak mendapat kontribusi dari komunitas. Antara lain, mulai banyaknnya porting bahasa pemrograman untuk di jalankan di atas JVM, sebut saja JRuby yang merupakan porting dari Ruby, Jython yang merupakan porting dari Python, lahir juga Groovy yang notabane nya terlahir untuk Java. Memang bahasa-bahasa tersebut cukup mempesona, tapi tidak lantas cukup untuk menggantikan bahasa pemrograman java, penyebab nya tidak lain adalah masalah <em>performance</em> dan <em>scalability</em> yang sulit untuk menyaingi program yang ditulis langsung menggunakan bahasa pemrograman java.</p>
<p><a href="http://ahmadtanwir.files.wordpress.com/2011/04/scala_logo2008.png"><img class="alignleft size-full wp-image-336" title="Scala_Logo2008" src="http://ahmadtanwir.files.wordpress.com/2011/04/scala_logo2008.png?w=540" alt=""   /></a>Adalah seorang <a href="http://lamp.epfl.ch/~odersky/">Martin Odersky</a>, sesorang yang sangat berpengaruh  dalam dunia Java, pengembangan compiler untuk Java, yang juga menambahkan feature generic dan anotation pada Java versi 1.5, melakukan research untuk mengabungkan konsep <em>Object Oriented Programing </em>(OOP) dan <em>Functional Programming </em>(FP) dalam bahasa pemrograman baru yang berjalan di atas JVM, yang kemudian disebut <a href="http://www.scala-lang.org">Scala</a>.</p>
<p><a href="http://www.scala-lang.org">Scala</a> sendiri merupakan singkatan dari <em>Scalable Language</em>. Seperti namanya, bahasa ini dibuat untuk menggantikan bahasa pemrograman java. Scala mengambil bagian tersetruktur dari OOP dan bagian expresif dari FP.  <a href="http://twitter.com">Twitter</a>, <a href="http://foursquare.com">Foursqueare</a>, <a href="http://linkedin.com">LinkedIn</a>, Sony, SAP dan juga <a href="http://www.novell.com/products/vibe-cloud/">Novel Vibe</a> adalah beberapa contoh penggunaan scala secara besar. Maka tidak diragukan lagi bahwa memang Scala cukup ampuh untuk menggantikan bahasa pemrograman java.</p>
<p>Scala, seperti halnya bahasa pemrograman java, ketika di-<em>compile  </em>akan menghasilkan byte code Java. Menariknya, hasil kompilasi Scala 100% <em>compatible </em>dengan hasil kompilasi bahasa pemrograman java. Hal ini memungkinkan <em>class</em> yang dibuat oleh bahasa pemrograman java bisa dipanggil langsung dari scala, dan demikian sebaliknya. Akibatnya, semua <em>library</em> Java yang jumlahnya sangat besar dapat dipakai oleh Scala. Menarik bukan?</p>
<p>Berikut contoh program &#8216;Hello World&#8217;  menggunakan Scala:</p>
<p><pre class="brush: scala;">
object HelloWorld {
   def main(args: Array[String])  = println(&quot;Hello, world!&quot;)
 }
</pre></p>
<p>Dan berikut, contoh quicksort menggunakan Scala:</p>
<p><pre class="brush: scala;">
def qsort: List[Int] =&gt; List[Int] = {
  case Nil =&gt; Nil
  case pivot :: tail =&gt;
    val (smaller, rest) = tail.partition(_ &lt; pivot)
    qsort(smaller) ::: pivot :: qsort(rest)
}
</pre></p>
<p>Sekian pengenalan singkat tentang Scala dari newbie, semoga bermanfaat..</p>
<br />Filed under: <a href='http://ahmadtanwir.wordpress.com/category/programming/'>Programming</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ahmadtanwir.wordpress.com/333/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ahmadtanwir.wordpress.com/333/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ahmadtanwir.wordpress.com/333/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ahmadtanwir.wordpress.com/333/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ahmadtanwir.wordpress.com/333/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ahmadtanwir.wordpress.com/333/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ahmadtanwir.wordpress.com/333/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ahmadtanwir.wordpress.com/333/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ahmadtanwir.wordpress.com/333/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ahmadtanwir.wordpress.com/333/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ahmadtanwir.wordpress.com/333/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ahmadtanwir.wordpress.com/333/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ahmadtanwir.wordpress.com/333/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ahmadtanwir.wordpress.com/333/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ahmadtanwir.wordpress.com&amp;blog=2033191&amp;post=333&amp;subd=ahmadtanwir&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ahmadtanwir.wordpress.com/2011/04/17/scala-calon-kuat-pengganti-bahasa-pemrograman-java-di-atas-flatform-java/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6b25dc284e3f0f31cab71580e7c75521?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ata</media:title>
		</media:content>

		<media:content url="http://ahmadtanwir.files.wordpress.com/2011/04/thumb-java-duke-guitar.png" medium="image">
			<media:title type="html">thumb-java-duke-guitar</media:title>
		</media:content>

		<media:content url="http://ahmadtanwir.files.wordpress.com/2011/04/scala_logo2008.png" medium="image">
			<media:title type="html">Scala_Logo2008</media:title>
		</media:content>
	</item>
		<item>
		<title>Membuat PHP templating engine sederhana.</title>
		<link>http://ahmadtanwir.wordpress.com/2010/08/22/membuat-php-templating-engine-sederhana/</link>
		<comments>http://ahmadtanwir.wordpress.com/2010/08/22/membuat-php-templating-engine-sederhana/#comments</comments>
		<pubDate>Sun, 22 Aug 2010 08:50:49 +0000</pubDate>
		<dc:creator>Ahmad Tanwir</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://ahmadtanwir.wordpress.com/?p=317</guid>
		<description><![CDATA[Templating engine berfungsi untuk memisahkan antara logic dan tempilan, ada banyak templating engine PHP antara lain Smarty, Twigs dan lain-lain.  Namun sering kali jadi sulit untuk menggunakannya karena harus mempelajari Syntax baru.  Kita juga bisa dapat membuat template engine sederhana sendiri yang hanya membutuhkan beberapa beris code. Kode kunci pada templating ini adalah fungsi ob_start() [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ahmadtanwir.wordpress.com&amp;blog=2033191&amp;post=317&amp;subd=ahmadtanwir&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://ahmadtanwir.files.wordpress.com/2010/08/templateenginediagram1.gif"><img class="alignleft size-medium wp-image-319" title="templateEngineDiagram1" src="http://ahmadtanwir.files.wordpress.com/2010/08/templateenginediagram1.gif?w=300&#038;h=121" alt="" width="300" height="121" /></a><br />
Templating engine berfungsi untuk memisahkan antara logic dan tempilan, ada banyak templating engine PHP antara lain Smarty, Twigs dan lain-lain.  Namun sering kali jadi sulit untuk menggunakannya karena harus mempelajari Syntax baru.  Kita juga bisa dapat membuat template engine sederhana sendiri yang hanya membutuhkan beberapa beris code. <span id="more-317"></span></p>
<p><pre class="brush: php;">
&lt;?php
// file: Template.php
class Template
{
    protected $path;
    protected $object;

    public function __construct($path)
    {
        $this-&gt;path = $path;
    }
    public function render($object = null)
    {
        extract(get_object_vars($this-&gt;object?:$this));
        ob_start();
        include $this-&gt;path;
        return ob_get_clean();
    }

    public function setObject($object)
    {
        $this-&gt;object = $object;
    }

    public function display()
    {
        echo $this-&gt;render();
    }
}
</pre></p>
<p>Kode kunci pada templating ini adalah fungsi ob_start() dan fungsi ob_get_clean(). Fungsi ob_start akan membuat semua output tidak dikeluarkan secara langsung. Sementara objek ob_get_clean akan mengambil semua output tertunda dari php dan mengkonversinya menjadi string.</p>
<p>Fungsi lainnya disana adalah fungsi extract, fungsi ini akan membuat semua array menjadi variable.. sementara get_object_vars akan menambil semua property dalam objek dan kemudian mengubahnya menjadi array.</p>
<p>Cara penggunaannya cukup simple, berikut setting dan logic yang di perlukan.</p>
<p><pre class="brush: php;">
// file: index.php
require 'Template.php';

$tpl = new Template('content.phtml');
$tpl-&gt;name = 'Some One';
$tpl-&gt;email = 'some@gmail.com';

$layout = new Template('layout.phtml');
$layout-&gt;title = 'Something title';
$layout-&gt;content = $tpl;

$layout-&gt;display();
</pre></p>
<p>kita memerlukan kode untuk layoutnya, layout dapat digunakan untuk lebih dari satu content template.</p>
<p><pre class="brush: php;">
&lt;!-- layout.phtml --&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;&lt;?php echo $title?&gt;&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div id=&quot;container&quot;&gt;
    &lt;div id=&quot;header&quot;&gt;
        &lt;h1&gt;&lt;?php echo $title ?&gt;&lt;/h1&gt;
    &lt;/div&gt;
    &lt;div id=&quot;content&quot;&gt;
        &lt;?php echo $content ?&gt;
    &lt;/div&gt;
    &lt;div id=&quot;footer&quot;&gt;
        &amp;copy;Something
    &lt;/div&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre></p>
<p>Salah satu content template nya adalah:</p>
<p><pre class="brush: php;">
&lt;!-- file: content.phtml --&gt;
&lt;p&gt;Name : &lt;?php echo $name?&gt;&lt;/p&gt;
&lt;p&gt;Email : &lt;?php echo $email?&gt;&lt;/p&gt;
</pre></p>
<p>Mudah bukan. Semoga bisa jadi ispirasi..</p>
<br />Filed under: <a href='http://ahmadtanwir.wordpress.com/category/programming/'>Programming</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ahmadtanwir.wordpress.com/317/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ahmadtanwir.wordpress.com/317/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ahmadtanwir.wordpress.com/317/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ahmadtanwir.wordpress.com/317/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ahmadtanwir.wordpress.com/317/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ahmadtanwir.wordpress.com/317/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ahmadtanwir.wordpress.com/317/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ahmadtanwir.wordpress.com/317/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ahmadtanwir.wordpress.com/317/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ahmadtanwir.wordpress.com/317/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ahmadtanwir.wordpress.com/317/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ahmadtanwir.wordpress.com/317/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ahmadtanwir.wordpress.com/317/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ahmadtanwir.wordpress.com/317/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ahmadtanwir.wordpress.com&amp;blog=2033191&amp;post=317&amp;subd=ahmadtanwir&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ahmadtanwir.wordpress.com/2010/08/22/membuat-php-templating-engine-sederhana/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6b25dc284e3f0f31cab71580e7c75521?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ata</media:title>
		</media:content>

		<media:content url="http://ahmadtanwir.files.wordpress.com/2010/08/templateenginediagram1.gif?w=300" medium="image">
			<media:title type="html">templateEngineDiagram1</media:title>
		</media:content>
	</item>
		<item>
		<title>Pengenalan Unit Testing</title>
		<link>http://ahmadtanwir.wordpress.com/2010/08/18/pengenalan-unit-testing/</link>
		<comments>http://ahmadtanwir.wordpress.com/2010/08/18/pengenalan-unit-testing/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 07:00:56 +0000</pubDate>
		<dc:creator>Ahmad Tanwir</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://ahmadtanwir.wordpress.com/?p=303</guid>
		<description><![CDATA[Saat kuliah dulu kita mengenal 2 macam testing perangkat lunak: blackbox dan whitebox. Blackbox testing mengacu pada requirement feature dari user,  tiap feture yang di minta oleh user akan di lakukan test, seperti namanya testing secara blackbox dilakukan tanpa melihat code dari aplikasi.  Untuk testing ini, alangkah baiknya dilakukan oleh user yang terlibat dalam aplikasi [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ahmadtanwir.wordpress.com&amp;blog=2033191&amp;post=303&amp;subd=ahmadtanwir&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://ahmadtanwir.files.wordpress.com/2010/08/sw_testing.jpg"><img class="alignleft size-medium wp-image-311" title="sw_testing" src="http://ahmadtanwir.files.wordpress.com/2010/08/sw_testing.jpg?w=300&#038;h=260" alt="" width="300" height="260" /></a>Saat kuliah dulu kita mengenal 2 macam testing perangkat lunak: blackbox dan whitebox. Blackbox testing mengacu pada requirement feature dari user,  tiap feture yang di minta oleh user akan di lakukan test, seperti namanya testing secara blackbox dilakukan tanpa melihat code dari aplikasi.  Untuk testing ini, alangkah baiknya dilakukan oleh user yang terlibat dalam aplikasi yang sedang (atau telah) di kembangkan.</p>
<p>Whitebox testing mengacu pada testing sisi developer, berupa testing yang di lakukan pada unit terkecil dalam sebuah aplikasi, dalam hal ini berupa kode program. Pada aplikasi yang dikembangkan secara prosudural, unit terkecil adalah prosedur (atau fungsi), sementara untuk aplikasi yang dikembangkan secara object unit terkecil adalah method. <span id="more-303"></span></p>
<p>Unit testing sendiri dilakukan dengan membuat class terpisah untuk melakukan testing pada class sudah ada (yang terkadang juga blm ada), mendefinisikan setiap kemungkinan yang akan dilakukan setiap method dan memastikan output yang di hasilkan sesuai dengan yang di harapkan. Dan dari penjelasan tersebut jelas-jelas unit testing sendiri jelas merupakan jenis white box, dimana developer melihat langsung kode yang akan di ujicoba.</p>
<p>Sekilas mungkin terlihat bahwa penggunaan testing unit hanya akan menambah pekerjaan, membuang waktu, membuang tenaga. Lalu kenapa kita harus melakukan testing unit jika misalnya kita sudah membuat kode program dan sudah di ujicoba secara fungsional dan pun sudah sesuai dengan keinginan user? Ok, jika anda berpikir demikian, maka memang ada benarnya begitu adanya.</p>
<p>Tapi ingat, itu jika code program sudah ada, namun pada prakteknya unit testing digunakan untuk mendefinisikan setiap pekerjaan yang harus dilakukan dan  hasil yang diharapkan  oleh kode program yang akan dibuat.  Dengan kata lain, penggunaan unit testing dilakukan untuk pengembangan perangkat lunak berbasis testing atau dalam bahasa kerennya di sebut Test Driven Development (TDD). Dimana hal yang dilakukan dalam TDD adalah menulis testingnya terlebih dahulu, baru diikuti dengan menulis kode program yang didasarkan pada case testing yang telah dibuat.</p>
<p>Secara singkat, beberapa tahapan yang dilakukan dalam TDD adalah:</p>
<ol>
<li>Tambah Kode Testing</li>
<li>Melakukan Testing,</li>
<li>Menulis kode program</li>
<li>Menjalankan semua kode testing secara otomastis</li>
<li>memastikan semua testing berhasil dilakukan, jika iya ulangi dari kembali dari langkah pertama</li>
</ol>
<p>Untuk lebih jelasnya, perhatikan gambar di bawah ini.</p>
<div id="attachment_306" class="wp-caption aligncenter" style="width: 510px"><a href="http://ahmadtanwir.files.wordpress.com/2010/08/test-driven_development.png"><img class="size-full wp-image-306" title="Test-driven_development" src="http://ahmadtanwir.files.wordpress.com/2010/08/test-driven_development.png?w=540" alt=""   /></a><p class="wp-caption-text">source: wikipedia.org</p></div>
<br />Filed under: <a href='http://ahmadtanwir.wordpress.com/category/programming/'>Programming</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ahmadtanwir.wordpress.com/303/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ahmadtanwir.wordpress.com/303/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ahmadtanwir.wordpress.com/303/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ahmadtanwir.wordpress.com/303/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ahmadtanwir.wordpress.com/303/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ahmadtanwir.wordpress.com/303/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ahmadtanwir.wordpress.com/303/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ahmadtanwir.wordpress.com/303/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ahmadtanwir.wordpress.com/303/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ahmadtanwir.wordpress.com/303/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ahmadtanwir.wordpress.com/303/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ahmadtanwir.wordpress.com/303/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ahmadtanwir.wordpress.com/303/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ahmadtanwir.wordpress.com/303/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ahmadtanwir.wordpress.com&amp;blog=2033191&amp;post=303&amp;subd=ahmadtanwir&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ahmadtanwir.wordpress.com/2010/08/18/pengenalan-unit-testing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6b25dc284e3f0f31cab71580e7c75521?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ata</media:title>
		</media:content>

		<media:content url="http://ahmadtanwir.files.wordpress.com/2010/08/sw_testing.jpg?w=300" medium="image">
			<media:title type="html">sw_testing</media:title>
		</media:content>

		<media:content url="http://ahmadtanwir.files.wordpress.com/2010/08/test-driven_development.png" medium="image">
			<media:title type="html">Test-driven_development</media:title>
		</media:content>
	</item>
		<item>
		<title>Joomla (dokumen yang dibuang sayang)</title>
		<link>http://ahmadtanwir.wordpress.com/2010/03/18/joomla-2/</link>
		<comments>http://ahmadtanwir.wordpress.com/2010/03/18/joomla-2/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 08:09:24 +0000</pubDate>
		<dc:creator>Ahmad Tanwir</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://ahmadtanwir.wordpress.com/2010/03/18/joomla-2/</guid>
		<description><![CDATA[Artikel ini saya buat tahun 2007, sayang aja kalo ga di publish dan membasi di google docs. Selamat membaca COMPONENT Component adalah fungsi-fungsi khusus yang bisa ditambahkan pada Joomla. Beberapa component standar yang sudah tersedia di Joomla antara lain: Banner Contact NewsFeeds Polls Search WebLinks BANNERS Banner adalah iklan yang tampil pada website dan biasanya [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ahmadtanwir.wordpress.com&amp;blog=2033191&amp;post=292&amp;subd=ahmadtanwir&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><em>Artikel ini saya buat tahun 2007, sayang aja kalo ga di publish dan membasi di google docs. Selamat membaca</em></p>
<h1 class="western"><span style="font-family:'Times New Roman', serif;">COMPONENT</span></h1>
<p><span style="font-family:'Times New Roman', serif;"><em>Component</em></span></p>
<p>adalah  fungsi-fungsi khusus yang bisa ditambahkan pada Joomla.</p>
<p>Beberapa <em>component</em> standar yang sudah tersedia di Joomla</p>
<p>antara lain:</p>
<ol>
<li><span style="font-family:'Times New Roman', serif;">Banner</span></li>
<li><span style="font-family:'Times New Roman', serif;">Contact</span></li>
<li><span style="font-family:'Times New Roman', serif;">NewsFeeds</span></li>
<li><span style="font-family:'Times New Roman', serif;">Polls</span></li>
<li><span style="font-family:'Times New Roman', serif;">Search</span></li>
<li><span style="font-family:'Times New Roman', serif;">WebLinks</span></li>
</ol>
<h3 class="western"><span id="more-292"></span></h3>
<h3 class="western"><span style="font-family:'Times New Roman', serif;"><span style="font-size:medium;">BANNERS</span></span></h3>
<p><span style="font-family:'Times New Roman', serif;">Banner adalah iklan yang</span></p>
<p>tampil pada website dan biasanya berbentuk gambar (sepertinya sudah</p>
<p>tidak asing bukan?). Pada halaman administrator Component Banners</p>
<p>dapat di akses dengan</p>
<ol>
<li><span style="font-family:'Times New Roman', serif;">Klik menu Component</span></li>
<li><span style="font-family:'Times New Roman', serif;">Pilih Pilih Banners</span></li>
</ol>
<p><span style="font-family:'Times New Roman', serif;">Lebih jelasnya, bisa dilihat</span></p>
<p>pada gambar dibawah:</p>
<p><img src="http://docs.google.com/File?id=ddsh3krg_4gb3vnwcn_b" border="0" alt="" width="325" height="216" align="BOTTOM" /></p>
<p><span style="font-family:'Times New Roman', serif;">Nah, pada submenu Banners</span></p>
<p>tersebut ada tiga pilihan yaitu:</p>
<ul>
<li><span style="font-family:'Times New Roman', serif;">Banners</span></li>
<li><span style="font-family:'Times New Roman', serif;">Clients</span></li>
<li><span style="font-family:'Times New Roman', serif;">Categories</span></li>
</ul>
<h4 class="western"><span style="font-family:'Times New Roman', serif;"><strong>Menambah Client pada Banner</p>
<p></strong><strong>Manager</strong></p>
<p></span></h4>
<p><span style="font-family:'Times New Roman', serif;">Hal pertama yang harus di</span></p>
<p>lakukan adalah menambahkan klien anda ke <strong><em>Banner Client Manager</em></strong></p>
<p><em>, </em>caranya:</p>
<ol>
<li><span style="font-family:'Times New Roman', serif;">Padahalaman administrator, pilih <strong>Component |  Banners | Clients</strong>
<p></span></li>
<li>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Klik</span></p>
<p>Icon <strong>New </strong>untuk menambahkan klien</li>
<li>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Masukkan</span></p>
<p>data-data klient yang dibutuhkan</p>
<p style="font-weight:medium;"><img src="http://docs.google.com/File?id=ddsh3krg_5hr6gj2cq_b" border="0" alt="" width="615" height="251" align="BOTTOM" /></p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">berikut</span></p>
<p>penjelasan tentang Form:</p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;"><strong>Client</strong></span></p>
<p><strong> </strong><strong>Name</strong> : Nama klien</p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;"><strong>Cantact</strong></span></p>
<p><strong> </strong><strong>Name </strong>: Isikan kontak klien yang dapat dihubungi</p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;"><strong>Contact</strong></span></p>
<p><strong> </strong><strong>Email </strong>: Isikan dengan alamat email dari klien</p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;"><strong>Extra</strong></span></p>
<p><strong> </strong><strong>Information</strong> : isikan dengan tambahan informasi tentang klien</li>
<li>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Setelah</span></p>
<p>semua data di isi, simpanlah data klien dengan meng-klik tombol <strong>Save</strong></li>
</ol>
<h4 class="western"><span style="font-family:'Times New Roman', serif;"><strong>Meng-upload</p>
<p></strong><strong>Gambar Banner  pada Media Manager</strong></p>
<p></span></h4>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Sebelum</span></p>
<p>menambahkan informasi tentang Banner, gambar yang akan kita jadikan</p>
<p>sebagai banner haruslah di upload terlebih dahulu ke <strong>Media</strong></p>
<p><strong> </strong></p>
<p><strong>Manager</strong>.</p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Gambar</span></p>
<p>Banner yang akan kita buat kali ini adalah Gambar Banner dalam ukuran</p>
<p>besar, dalam hal ini Joomla mengizinkan ukuran banner ukuran besar</p>
<p>adalah 468 x 60 pixel. O ya, perlu di ingat bahwa ukuran file</p>
<p>sebaiknya tidak melebihi 20 kB (maksudnya agar tidak membebani</p>
<p>website), dan harus dalam format jpg,png atau gif.  Berikut contoh</p>
<p>banner yang akan di upload, maklum penulis tidak pandai mendesain</p>
<p> <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p style="font-weight:medium;"><img src="http://docs.google.com/File?id=ddsh3krg_6cxp53kft_b" border="0" alt="" width="376" height="56" align="BOTTOM" /></p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Berikut</span></p>
<p>langkah-langkah dalam meng-upload Gambar Banner</p>
<ol>
<li>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Pilih</span></p>
<p>menu <strong>Site | Media Manager</strong></li>
<li>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Pilih</span></p>
<p>folder <strong>Media | Banners </strong>pada menu tree</p>
<p style="font-weight:medium;"><img src="http://docs.google.com/File?id=ddsh3krg_7ftc9jnd9_b" border="0" alt="" width="177" height="176" /></p>
</li>
<li>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Klik</span></p>
<p>tombol <strong>Browse&#8230;</strong> kemudian pilih gambar yang sudah disiapkan</p>
<p>sebelumnya. Lalu klik tombol <strong>Start Upload.</strong></li>
</ol>
<h4 class="western"><span style="font-family:'Times New Roman', serif;"><strong>Menambah</p>
<p></strong><strong>Kategori Banner</strong></p>
<p></span></h4>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Agar</span></p>
<p>banner bisa ter-manage dengan baik, maka perlu untuk menambahkan</p>
<p>Kategori untuk Banner yang akan dibuat, caranya adalah sebagai</p>
<p>berikut:</p>
<ol>
<li>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Pada</span></p>
<p>halaman administrator, pilih<strong> Component |  Banners | Categories</strong></li>
<li>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Klik</span></p>
<p>icon<strong> New</strong></li>
<li>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Isikan form dengan data yang</span></p>
<p>diminta</p>
<p style="font-weight:medium;"><img src="http://docs.google.com/File?id=ddsh3krg_8hhkkwphs_b" border="0" alt="" width="541" height="478" align="BOTTOM" /></p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">berikut keterangan form di atas:</span></p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;"><strong>Title</strong> :</span></p>
<p>isikan dengan judul kategori</p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;"><strong>Alias </strong> :</span></p>
<p>isikan dengan alias dari kategori</p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;"><strong>Published</strong> :</span></p>
<p>apakah karegori banner ini akan ditampilkan atau tidak</p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;"><strong>Access</strong></span></p>
<p><strong> </strong><strong>Leve</strong>l	: hak akses yang diberikan pada Banner, isikan saja dengan</p>
<p>public, karena tentunya anda mengingikan banner bisa dilihat semua</p>
<p>orang bukan <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;"><strong>Image</strong> :</span></p>
<p>icon/image yang digunakan untuk menandai jenis banner ini</p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;"><strong>Image</strong></span></p>
<p><strong> </strong><strong>Position</strong>: Posisi icon Jenis Banner ini berada.</p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;"><strong>Description</strong> :</span></p>
<p>Deskripsi dari ketegori banner ini</p>
<p style="font-weight:medium;">
</li>
<li>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Simpan</span></p>
<p>data yang telah dimasukkan dengan meng-klik icon <strong>Save </strong>atau</p>
<p><strong>Apply</strong></li>
</ol>
<h4 class="western"><span style="font-family:'Times New Roman', serif;"><strong>Menambahkan</p>
<p></strong><strong>Banner pada Banner Manager</strong></p>
<p></span></h4>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Setelah</span></p>
<p>tadi menambahkan klien, sekarang saatnya menambah banner untuk si</p>
<p>klien, sekaligus menggunkan banner image yang sudah di upload.</p>
<p>Berikut langkah-langkah yang harus dilakukan:</p>
<ol>
<li>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Pada</span></p>
<p>halaman administrator,pilih <strong>Component | Banner | Banners</strong></li>
<li>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Klik icon <strong>New</strong></span></p>
</li>
<li>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Isikan data yang diminta pada</span></p>
<p>form yang telah tersedia.</p>
<p style="font-weight:medium;"><img src="http://docs.google.com/File?id=ddsh3krg_9k4jkfgf4_b" border="0" alt="" width="639" height="472" align="BOTTOM" /></p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Berikut keterangan form di atas</span></p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;"><strong>Nama </strong> : isi dengan nama</span></p>
<p>Banner</p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;"><strong>Alias </strong> : isi dengan nama</span></p>
<p>alias dari banner</p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;"><strong>Show Banner</strong> : Apakaha</span></p>
<p>banner akan di tampilkan atau tidak</p>
<p style="font-weight:medium;"><span style="color:#c5000b;"><span style="font-family:'Times New Roman', serif;"><strong>Sticky </strong> :</span></span></p>
<p>Sticky banners are preferred or not &lt;&#8211; bingung maksudnya</p>
<p style="font-weight:medium;"><span style="color:#000000;"><span style="font-family:'Times New Roman', serif;"><strong>Order </strong> :</span></span></p>
<p>Isikan dengan berapa kali banner akan ditampikan</p>
<p style="font-weight:medium;"><span style="color:#000000;"><span style="font-family:'Times New Roman', serif;"><strong>Category</strong> :</span></span></p>
<p>isikan dengan kategori banner, yang sebelumnya sudah dibuat</p>
<p style="font-weight:medium;"><span style="color:#000000;"><span style="font-family:'Times New Roman', serif;"><strong>Client</strong></span></span></p>
<p><strong> </strong><strong>Name</strong> : Isikan dengan klien yang memiliki banner ini</p>
<p style="font-weight:medium;"><span style="color:#000000;"><span style="font-family:'Times New Roman', serif;"><strong>Impression</strong></span></span></p>
<p><strong> </strong><strong>Purched</strong> : -</p>
<p style="font-weight:medium;"><span style="color:#000000;"><span style="font-family:'Times New Roman', serif;"><strong>Click</strong></span></span></p>
<p><strong> </strong><strong>URL</strong> : URL tujuan bila Banner di klik</p>
<p style="font-weight:medium;"><span style="color:#000000;"><span style="font-family:'Times New Roman', serif;"><strong>Click </strong> :</span></span></p>
<p>Jumlah kali Banner di klik, dan tombol <strong>Reset </strong>disampingnya</p>
<p>untuk me- 				  reset jumlah klik ke 0.</p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;"><strong>Costum Banner Code</strong>: Anda</span></p>
<p>dapat memasukkan Code tambahan yang dimiliki banner 				  tersebut</p>
<p><span style="font-family:'Times New Roman', serif;"><strong>Description/Note</strong></span></p>
<p><strong> </strong><span style="font-weight:medium;">: Keterarangan tambahan untuk</span></p>
<p>banner</p>
<p><span style="font-family:'Times New Roman', serif;"><strong>Banner</strong></span></p>
<p><strong> </strong><strong>Image Selector</strong><span style="font-weight:medium;">: Combo Box</span></p>
<p>untuk memilih gambar banner yang tersedia, seperti yang</p>
<p>sudah disiapkan di atas</p>
<p><span style="font-family:'Times New Roman', serif;"><strong>Banner</strong></span></p>
<p><strong> </strong><strong>Image </strong><span style="font-weight:medium;">: Gambar yang muncul</span></p>
<p>setelah gambar pada <em>Banner Image Selector </em>dipilih</p>
<p style="font-weight:medium;">
</li>
<li><span style="font-family:'Times New Roman', serif;"><span style="font-weight:medium;">Simpandata yang sudah diisikan dengan mengklik icon <strong>Save.</strong>
<p></span></span></li>
</ol>
<p style="font-weight:medium;">
<h3 class="western"><span style="font-family:'Times New Roman', serif;"><strong>CONTACT</strong></span></h3>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Contact adalah komponen yang</span></p>
<p>digunakan untuk memberikan informasi kontak yang dihbungi dalam situs</p>
<p>web. Contact digunakan untuk memberikan saran, tanggapan, keluhan</p>
<p>atau apapun kepada pemilik website.</p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Komponen Contact  terdiri dari:</span></p>
<ol>
<li>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Contact (manage contact)</span></p>
</li>
<li>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Categories (Categories Contact)</span></p>
</li>
</ol>
<h4 class="western">Menambah Kategori pada Contact Categories Manager</h4>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Sebelum</span></p>
<p>menambahkan daftar kontak, hal pertama yang harus dilakukan adalah</p>
<p>menambah <strong>Contact Categories </strong>, caranya cukup mudah :</p>
<ol>
<li>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Pada</span></p>
<p>halaman administrator,pilih <strong>Component | Contact | Categories</strong></li>
<li>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Klik</span></p>
<p>icon<strong> New</strong></li>
<li>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Isikan data yang diminta. </span></p>
<p style="font-weight:medium;"><img src="http://docs.google.com/File?id=ddsh3krg_10pq7x636t_b" border="0" alt="" width="529" height="376" align="BOTTOM" /></p>
</li>
<li>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Klik</span></p>
<p>icon <strong>Save</strong> atau <strong>Apply</strong> untuk menyimpan data yang sudah</p>
<p>diisi.</li>
</ol>
<h4 class="western">Menambah Contact pada Contact Manager</h4>
<p>Setelah</p>
<p>mengisi <em>Category Contact </em><span style="font-weight:medium;">,</span></p>
<p>lanjutkan dengan menambahakan Contact pada Contact Manager, caranya</p>
<p>simple juga:</p>
<ol>
<li>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Pada</span></p>
<p>halaman administrator,pilih <strong>Component | Contacts | Contacts</strong></li>
<li>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Isikan data yang diminta</span></p>
<p style="font-weight:medium;"><img src="http://docs.google.com/File?id=ddsh3krg_11dk3w7chg_b" border="0" alt="" width="620" height="689" align="BOTTOM" /></p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;"><strong>Name </strong> : nama kontak</span></p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;"><strong>Alias </strong> : panggilan</span></p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;"><strong>Published</strong> : Mau</span></p>
<p>ditampilkan atau tidak.</p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;"><strong>Category</strong> : Kategori</span></p>
<p>kontak, bisa di isikan dengan kategori kontak yang sudah di isikan</p>
<p>sebelumnya</p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;"><strong>Linked to User:</strong></span></p>
<p>Menentukan user mana yang akan menerima pesan ketika pengunjung</p>
<p>mengirimkan pesan</p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;"><strong>Contacts Position</strong>:</span></p>
<p>Posisi/ Jabatan kontak</p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;"><strong>Street Address</strong> : Alamat</span></p>
<p>kontak</p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;"><strong>Town/Suburl</strong> : isikan</span></p>
<p>dengan kota</p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;"><strong>State/County</strong> : Provinsi /</span></p>
<p>Negara bagian</p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;"><strong>Web URL</strong> : isikan dengan</span></p>
<p>alammat website kontak bila tersedia</p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;"><strong>Miscellaneous Information</strong>:</span></p>
<p>informasi tambahan tentang contact</li>
<li>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Klik icon <strong>Save</strong> untuk</span></p>
<p>menyimpan Kontak</li>
</ol>
<h3 class="western">News Feed</h3>
<p><em>News Feed </em> adalah komponen</p>
<p>yang memungkin website anda menampilkan konten website lain melalui</p>
<p>RSS (<em>Really Simple Syndication</em>).</p>
<p>Terdapat 2 pilihan pengaturan pada</p>
<p>komponen<em> News Feed </em>ini, yaitu:</p>
<ol>
<li>News Feeds</li>
<li>Categories</li>
</ol>
<h4 class="western">Menambah News Feeds</h4>
<p>Sebelum menambahkan News Feeds, terlebih dahulu sebaiknya anda</p>
<p>menambahkan Category untuk News Feeds, caranya tidak jauh berbeda</p>
<p>(bahkan sama) dengan menambahkan category pada Component-componet</p>
<p>sebelumnya, jadi tidak akan dibahas lagi. Untuk menambahkan News</p>
<p>Feed, ikutilah langkah-lankah berikut ini:</p>
<ol>
<li>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Pada</span></p>
<p>halaman administrator,pilih <strong>Component | News Feeds | Feeds</strong></li>
<li>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Klik</span></p>
<p>icon<strong> New </strong>untuk menambahkan Feeds</li>
<li>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Isikan data yang di minta</span></p>
<p style="font-weight:medium;"><img src="http://docs.google.com/File?id=ddsh3krg_12dk8nsfdc_b" border="0" alt="" width="401" height="223" align="BOTTOM" /></p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Berikut keterangan lebih lanjut</span></p>
<p>tentang gambar di atas</p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;"><strong>Name </strong> :</span></p>
<p>isikan dengan nama News Feeds</p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;"><strong>Alias </strong> :isikan</span></p>
<p>dengan aliasnya</p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;"><strong>Pubished</strong> :</span></p>
<p>akan ditampilkan ataukah tidak</p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;"><strong>Category</strong> :</span></p>
<p>pilih kategori yang sudah dimasukkan sebelumnya</p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;"><strong>Links </strong> :</span></p>
<p>Isikan dengan alamat RSS, misalnya</p>
<p><em><a href="http://localhost/cms/wordpress/?feed=rss2">http://localhost/cms/wordpress/?feed=rss2</a></em></p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;"><strong>Number</strong></span></p>
<p><strong> </strong><strong>of Articles</strong>: Isikan dengan berapa banyak artikel yang akan</p>
<p>dimuat</p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;"><strong>Cache</strong></span></p>
<p><strong> </strong><strong>Time </strong>: Tenggang waktu (dalam detik) yang diberikan untuk</p>
<p>merefresh konten yang dimuat</p>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;"><strong>Ordering</strong> :</span></p>
<p>Urutan News Feeds yang akan dibuat</li>
<li>
<p style="font-weight:medium;"><span style="font-family:'Times New Roman', serif;">Klik icon <strong>Save</strong> untuk</span></p>
<p>menyimpan News feeds</li>
</ol>
<h4 class="western">POLLS</h4>
<p>Polls adalah salah satu komponen Joomla</p>
<p>yang memungkinkan untuk memberikan pertanyaan Polling untuk</p>
<p>pengunjung, dan pengujung dapat memberikan suara/vote-nya pada</p>
<p>komponen ini.</p>
<p>Untuk melakukan penambahan pada</p>
<p>komponen ini, carannya adalah sebagai berikut:</p>
<ol>
<li>Dari halaman Administrator, Pilih<strong>Component | Pools</strong></li>
<li>
<p style="font-weight:medium;">Klik <strong>New</strong></p>
<p>untuk menambah Polling baru</li>
<li>
<p style="font-weight:medium;">Isikan data</p>
<p>yang diminta</p>
<p style="font-weight:medium;"><img src="http://docs.google.com/File?id=ddsh3krg_13g68sh5g4_b" border="0" alt="" width="596" height="264" align="BOTTOM" /></p>
<p style="font-weight:medium;">Baiklah, yang</p>
<p>terlihat baru dari gambar di atas adalah</p>
<p style="font-weight:medium;"><strong>Lags</strong> :</p>
<p>Isikan field ini dengan angka. Lags ini berfungsi untuk memberikan</p>
<p>batas waktu pada vote yang diberikan oleh User yang sama</p>
<p style="font-weight:medium;"><strong>Options</strong>:</p>
<p>Isikan opsi dari pertanyaan sebanyak yang anda inginkan (Makimal 20</p>
<p>pertanyaan)</li>
<li><span style="font-weight:medium;">Untukmenyimpan data Polling, klik-lah icon <strong>Save</strong>
<p></span></li>
</ol>
<p style="font-weight:medium;">
<h3 class="western"><strong>WEB LINKS</strong></h3>
<p style="font-weight:medium;">Komponen</p>
<p>yang satu fungsi adalah untuk menampilkan koleksi link-link favorit</p>
<p>anda yang dapat di tentukan dan dibuat sendiri. komponen Web Links</p>
<p>terdiri dari dua pilihan, yakni <em>Links</em></p>
<p>dan <em>Categories. </em>Namun</p>
<p>disini hanya akan dibahas bagaimana membuat Link baru, karena untuk</p>
<p>Categories tidak jauh berbeda(bahkan sama dengan komponen-komponen</p>
<p>sebelumnya).</p>
<h4 class="western">Membuat Web Links</h4>
<p>Ok, pastikan sebelumnya anda</p>
<p>sudah membuat <em>Categories</em></p>
<p>untuk web Links. Untuk menambah Link baru, caranya adalah sebagai</p>
<p>berikut:</p>
<ol>
<li>Dari halaman Administrator,Pilih <strong>Component | Web Links | Links</strong></li>
<li><span style="font-weight:medium;">Klik<strong>New</strong><span style="font-weight:medium;"> untuk menambah</span>Link baru
<p></span></li>
<li>
<p style="font-weight:medium;">Isikan data</p>
<p>Link yang diminta, seperti gambar di bawah</p>
<p style="font-weight:medium;"><img src="http://docs.google.com/File?id=ddsh3krg_14gxmqnxfr_b" border="0" alt="" width="588" height="252" align="BOTTOM" /></p>
<p><span style="font-weight:medium;">Yang</span></p>
<p>terlihat baru di atas adalah pada fieldset <strong>Parameter</strong><span style="font-weight:medium;">,</span></p>
<p>yakni Combo Box <strong>Target</strong><span style="font-weight:medium;">.</span></p>
<p>Pada Combo Box Target terdapat tiga buah Opsi, yakni:</p>
<p><span style="font-weight:medium;">-</span></p>
<p><em>Parrent Window with Browser Navigation, </em>Situs</p>
<p>target akan muncul pada jendela yang sama, dan disertai dengan</p>
<p>navigasi pada browser</p>
<p><span style="font-weight:medium;">-</span></p>
<p><em>New Window with Browser Navigation</em>,</p>
<p>Situs target akan muncul pada jendela yang baru dan disertakan</p>
<p>dengan navigasi pada browser</p>
<p><span style="font-weight:medium;"><em>New Window without Browser</em></span></p>
<p><em> </em><em>Navigation</em>, Situs target akan</p>
<p>muncul pada jendela yang baru dan tidak disertakan dengan navigasi</p>
<p>pada browser</li>
<li><span style="font-weight:medium;">Klik<strong>Save</strong><span style="font-weight:medium;"> untuk menyimpan</span>Links
<p></span></li>
</ol>
<p style="font-weight:medium;">
<h3 class="western">Menambahkan / Menginstall Component baru</h3>
<p>Bila komponen yang disediakan secara default oleh Joomla dirasa</p>
<p>kurang, anda dapat menambahkan komponen baru yang dapat di download</p>
<p>di <a href="http://extensions.joomla.org/">http://extensions.joomla.org</a></p>
<p>. Untuk menambakan Komponen baru, caranya:</p>
<ol>
<li>Pada halaman Administrator, pilih <strong>Extensions | </strong><strong>Install/Uninstall</strong></li>
<li>carilah file mentah (file componet) yang akan di installdengan mengklik tombol <strong>Browse&#8230;</strong></li>
<li>
<p style="font-weight:medium;">Setelah meng-klik tombol</p>
<p><strong>Browse&#8230; </strong>maka akan muncul dialog box untuk mencari file</p>
<p>mentah, setelah menemukan filenya, klik open.</li>
<li>
<p style="font-weight:medium;">Selanjutnya klik tombol <em>Upload</em></p>
<p><em> </em><em>&amp; Install</em></li>
</ol>
<p style="font-weight:medium;">
<br />Filed under: <a href='http://ahmadtanwir.wordpress.com/category/programming/'>Programming</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ahmadtanwir.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ahmadtanwir.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ahmadtanwir.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ahmadtanwir.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ahmadtanwir.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ahmadtanwir.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ahmadtanwir.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ahmadtanwir.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ahmadtanwir.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ahmadtanwir.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ahmadtanwir.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ahmadtanwir.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ahmadtanwir.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ahmadtanwir.wordpress.com/292/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ahmadtanwir.wordpress.com&amp;blog=2033191&amp;post=292&amp;subd=ahmadtanwir&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ahmadtanwir.wordpress.com/2010/03/18/joomla-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6b25dc284e3f0f31cab71580e7c75521?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ata</media:title>
		</media:content>

		<media:content url="http://docs.google.com/File?id=ddsh3krg_4gb3vnwcn_b" medium="image" />

		<media:content url="http://docs.google.com/File?id=ddsh3krg_5hr6gj2cq_b" medium="image" />

		<media:content url="http://docs.google.com/File?id=ddsh3krg_6cxp53kft_b" medium="image" />

		<media:content url="http://docs.google.com/File?id=ddsh3krg_7ftc9jnd9_b" medium="image" />

		<media:content url="http://docs.google.com/File?id=ddsh3krg_8hhkkwphs_b" medium="image" />

		<media:content url="http://docs.google.com/File?id=ddsh3krg_9k4jkfgf4_b" medium="image" />

		<media:content url="http://docs.google.com/File?id=ddsh3krg_10pq7x636t_b" medium="image" />

		<media:content url="http://docs.google.com/File?id=ddsh3krg_11dk3w7chg_b" medium="image" />

		<media:content url="http://docs.google.com/File?id=ddsh3krg_12dk8nsfdc_b" medium="image" />

		<media:content url="http://docs.google.com/File?id=ddsh3krg_13g68sh5g4_b" medium="image" />

		<media:content url="http://docs.google.com/File?id=ddsh3krg_14gxmqnxfr_b" medium="image" />
	</item>
		<item>
		<title>Active Record pada PHP? Why Not?</title>
		<link>http://ahmadtanwir.wordpress.com/2010/02/20/active-record-pada-php-why-not/</link>
		<comments>http://ahmadtanwir.wordpress.com/2010/02/20/active-record-pada-php-why-not/#comments</comments>
		<pubDate>Sat, 20 Feb 2010 04:27:58 +0000</pubDate>
		<dc:creator>Ahmad Tanwir</dc:creator>
				<category><![CDATA[OOP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://ahmadtanwir.wordpress.com/?p=277</guid>
		<description><![CDATA[Teringat tahun 2008 yang lalu ketika seminar dan workshop (gratis + makan + sertifikat) Ruby On Rails (yang selanjutnya saya singkat &#8220;rails&#8221; biar ga capek ngetiknya) di Bandung yang berlokasi di PT INTI. Waktu itu Arie Kusuma Atmaja selaku geek kelas kakap menjadi pemateri. Dan saya sangat berterima kasih pada kang Diki Ayam niwat0ri yang [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ahmadtanwir.wordpress.com&amp;blog=2033191&amp;post=277&amp;subd=ahmadtanwir&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="attachment_285" class="wp-caption alignleft" style="width: 310px"><a href="http://ahmadtanwir.files.wordpress.com/2010/02/activerecord.jpg"><img class="size-medium wp-image-285 " title="ActiveRecord" src="http://ahmadtanwir.files.wordpress.com/2010/02/activerecord.jpg?w=300&#038;h=196" alt="Sumber: davidhayden.com" width="300" height="196" /></a><p class="wp-caption-text">Sumber: davidhayden.com</p></div>
<p>Teringat tahun 2008 yang lalu ketika seminar dan workshop (gratis + makan + sertifikat) Ruby On Rails (yang selanjutnya saya singkat &#8220;rails&#8221; biar ga capek ngetiknya) di Bandung yang berlokasi di PT INTI. Waktu itu <a href="http://ariekusumaatmaja.wordpress.com">Arie Kusuma Atmaja</a> selaku geek kelas kakap menjadi  pemateri.  Dan saya sangat berterima kasih pada <a href="http://chickenstrip.wordpress.com/">kang Diki  <del datetime="2010-02-19T07:08:33+00:00">Ayam</del> niwat0ri </a>yang dengan baik hatinya mau mendaftarkan saya..</p>
<p>Dengan gaya geeknya Ari (yang kata temen-temen saya mirip saya yang sekarang), dia menjelaska gaya coding Ruby yang sangat elegan, dan bagaimana si jenius <a href="http://www.loudthinking.com/">David Heinemeier Hansson</a> membuat Rails yang membuat nama Ruby terangkat dari yang semula hanyalah bahasa pemrogramannya milik orang jepang.<span id="more-277"></span></p>
<div id="attachment_286" class="wp-caption alignright" style="width: 209px"><a href="http://ahmadtanwir.files.wordpress.com/2010/02/dhh-railsconf.jpg"><img class="size-medium wp-image-286" title="dhh-railsconf" src="http://ahmadtanwir.files.wordpress.com/2010/02/dhh-railsconf.jpg?w=199&#038;h=300" alt="" width="199" height="300" /></a><p class="wp-caption-text">David Heinemeier Hansson</p></div>
<p>Salah satu konsep yang pertama kali di usung rails adalah ActiveRecord. Dan entah dengan berbagai alasan, banyak programmer PHP yang coba <del datetime="2010-02-20T03:58:06+00:00">memaksakan untuk</del> meniru konsep ini. Sebut saja CakePHP, Prado (dan Yii), Akelos dan lain-lain.  Setelah meluncurnya PHP 5.3 beberapa bulan yang lalu, akhirnya implementasi ActiveRecord di PHP lebih terlihat elegan, contohnya pada <a href="http://www.phpactiverecord.org/">PHPActiveRecord</a>.</p>
<p>Berbeda dengan ORM, ActiveRecord memaksa kita untuk membuat table di database terlebih dahulu, entah itu secara langsung atau melalui tools, yang kalau di Rails di sebut db migration.</p>
<p>Sebenarnya membuat sebuah ActiveRecord tidaklah begitu sulit. Beberapa hari yang lalu saya coba untuk membuat implemtasi Active Record di PHP 5.3, tutorialnya saya tuliskan di wiki, dan code nya saya hosting di github (jangan lupa di fork yah!).</p>
<p>Tutorialnya:</p>
<p><a href="http://wiki.ostric.org/php/intermediate/active-record">http://wiki.ostric.org/php/intermediate/active-record</a></p>
<p>Code-nya:</p>
<p><a href="http://github.com/ata/active-record">http://github.com/ata/active-record</a></p>
<p>Eh ngomomong-ngomong, Rails 3 udah rilis beta, dan di ketahui mengganti nama dan konsep DBAL nya menjadi ActiveRelation. Cayo??? Pasti banyak yang ikut-ikutan lagi..</p>
<div id="attachment_280" class="wp-caption aligncenter" style="width: 233px"><a href="http://ahmadtanwir.files.wordpress.com/2010/02/opo_iki.jpg"><img class="size-medium wp-image-280" title="opo_iki" src="http://ahmadtanwir.files.wordpress.com/2010/02/opo_iki.jpg?w=223&#038;h=300" alt="" width="223" height="300" /></a><p class="wp-caption-text">Siapa ini?</p></div>
<br />Filed under: <a href='http://ahmadtanwir.wordpress.com/category/programming/oop/'>OOP</a>, <a href='http://ahmadtanwir.wordpress.com/category/programming/php-programming/'>PHP</a>, <a href='http://ahmadtanwir.wordpress.com/category/php/'>PHP</a>, <a href='http://ahmadtanwir.wordpress.com/category/programming/'>Programming</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ahmadtanwir.wordpress.com/277/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ahmadtanwir.wordpress.com/277/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ahmadtanwir.wordpress.com/277/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ahmadtanwir.wordpress.com/277/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ahmadtanwir.wordpress.com/277/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ahmadtanwir.wordpress.com/277/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ahmadtanwir.wordpress.com/277/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ahmadtanwir.wordpress.com/277/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ahmadtanwir.wordpress.com/277/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ahmadtanwir.wordpress.com/277/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ahmadtanwir.wordpress.com/277/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ahmadtanwir.wordpress.com/277/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ahmadtanwir.wordpress.com/277/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ahmadtanwir.wordpress.com/277/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ahmadtanwir.wordpress.com&amp;blog=2033191&amp;post=277&amp;subd=ahmadtanwir&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ahmadtanwir.wordpress.com/2010/02/20/active-record-pada-php-why-not/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6b25dc284e3f0f31cab71580e7c75521?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ata</media:title>
		</media:content>

		<media:content url="http://ahmadtanwir.files.wordpress.com/2010/02/activerecord.jpg?w=300" medium="image">
			<media:title type="html">ActiveRecord</media:title>
		</media:content>

		<media:content url="http://ahmadtanwir.files.wordpress.com/2010/02/dhh-railsconf.jpg?w=199" medium="image">
			<media:title type="html">dhh-railsconf</media:title>
		</media:content>

		<media:content url="http://ahmadtanwir.files.wordpress.com/2010/02/opo_iki.jpg?w=223" medium="image">
			<media:title type="html">opo_iki</media:title>
		</media:content>
	</item>
		<item>
		<title>Roles Schema di Mondrian</title>
		<link>http://ahmadtanwir.wordpress.com/2009/12/14/roles-schema-di-mondrian/</link>
		<comments>http://ahmadtanwir.wordpress.com/2009/12/14/roles-schema-di-mondrian/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 05:58:44 +0000</pubDate>
		<dc:creator>Ahmad Tanwir</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://ahmadtanwir.wordpress.com/?p=250</guid>
		<description><![CDATA[Sepertinya di buang sayang jika tugas praktikum Data Ware House tidak saya masukkan ke blog. Disini saya kebagian tugas untuk membuat module tentang schema Mondrian, tepatnya di bagian Union Roles &#38; Setting a Connection&#8217;s Roles. Mendifiniskan Role Pembahasan Union Roles &#38; Setting a Connection&#8217;s Roles tidak terlepas Access controll pada Schema mondrian. Untuk itu disini [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ahmadtanwir.wordpress.com&amp;blog=2033191&amp;post=250&amp;subd=ahmadtanwir&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" src="http://onsmart.files.wordpress.com/2007/08/pentaho_functional_architecture.jpg?w=291&#038;h=284" alt="" width="291" height="284" />Sepertinya di buang sayang jika tugas praktikum Data Ware House tidak saya masukkan ke blog. Disini saya kebagian tugas untuk membuat module tentang schema Mondrian, tepatnya di bagian Union Roles &amp; Setting a Connection&#8217;s Roles.</p>
<h3>Mendifiniskan Role</h3>
<p>Pembahasan Union Roles &amp; Setting a Connection&#8217;s Roles tidak terlepas Access controll pada Schema mondrian. Untuk itu disini saya akan sedikit membahasanya, meskpun tentunya secara sekilas.  Namun untuk untuk memahami tentang access controll, tentunya sebelumnya harus memahami schema mondrian dengan baik, namun itu tidak akan saya bahas disini, silahkan mengacu pada dokumentasi mondrian. <span id="more-250"></span></p>
<p>Anggap saja sekarang anda memiki data yang baik, namun tak menginginkan semua orang dapat mengakses data anda secara bebas. Solusinya adalah anda dapat mendifiniskan access controll terhadap schema yang telah anda buat, dan pada schema mondrian access controll di sebut denga <em>Role</em>.</p>
<p>Untuk mendifinisikan Role, digunakan tag &lt;Role&gt; yang merupakan child dari Tag &lt;Schema&gt; dan definisikan paling akhir dari child &lt;Schema&gt; tepatnya setelah tag &lt;Cube&gt; yang terakhir. Contohnya:</p>
<p><pre class="brush: xml;">
&lt;Role name=&quot;California manager&quot;&gt;
    &lt;SchemaGrant access=&quot;none&quot;&gt;
        &lt;CubeGrant cube=&quot;Sales&quot; access=&quot;all&quot;&gt;
            &lt;HierarchyGrant hierarchy=&quot;[Store]&quot; access=&quot;custom&quot; topLevel=&quot;[Store].[Store Country]&quot;&gt;
                &lt;MemberGrant member=&quot;[Store].[USA].[CA]&quot; access=&quot;all&quot;/&gt;
                &lt;MemberGrant member=&quot;[Store].[USA].[CA].[Los Angeles]&quot; access=&quot;none&quot;/&gt;
            &lt;/HierarchyGrant&gt;
            &lt;HierarchyGrant hierarchy=&quot;[Customers]&quot; access=&quot;custom&quot; topLevel=&quot;[Customers].[State Province]&quot; bottomLevel=&quot;[Customers].[City]&quot;&gt;
                &lt;MemberGrant member=&quot;[Customers].[USA].[CA]&quot; access=&quot;all&quot;/&gt;
                &lt;MemberGrant member=&quot;[Customers].[USA].[CA].[Los Angeles]&quot; access=&quot;none&quot;/&gt;
            &lt;/HierarchyGrant&gt;
            &lt;HierarchyGrant hierarchy=&quot;[Gender]&quot; access=&quot;none&quot;/&gt;
        &lt;/CubeGrant&gt;
    &lt;/SchemaGrant&gt;
&lt;/Role&gt;
</pre></p>
<div>
<p>Tag &lt;SchmeaGrant&gt;  digunakana untuk mendefinisikan default access pada objek di dalam schema. Tag ini memiliki attribut <em>access </em>yang dapat di isi dengan &#8220;all&#8221; atau &#8220;none&#8221;,  isi dari dari attribut ini akan di overide di definisikan lagi pada attribut objek yang lebih spesifik di <em>childs-</em>nya. Perhatikan contoh di atas pada Tag &lt;SchemaGrant&gt; di atas, atribut access di isi oleh &#8220;none&#8221;, yang berarti semua objek  secara default tidak dapat di  akses. Kemudian pada tag &lt;CubeGrant&gt;  lebih spesifik  didefinisikan bahwa semua cube Sales dapat di akses secara bebas.</p>
</div>
<h3>Union Roles</h3>
<p>Union Roles digunakan untuk menggabungkan beberapa roles. Atau bisa juga berarti Membuat role baru dengan menggunakan kombinasi beberapa role yang sudah ada.  Contohnya:</p>
<p><pre class="brush: xml;">
&lt;Role name=&quot;Coastal manager&quot;&gt;
    &lt;Union&gt;
        &lt;RoleUsage roleName=&quot;California manager&quot; /&gt;
        &lt;RoleUsage roleName=&quot;Eastern sales manager&quot; /&gt;
    &lt;/Union&gt;
&lt;/Role&gt;
</pre></p>
<p>Jadi nantinya role &#8220;Coastal manager&#8221; akan memiliki akses yang berupa gabungan dari akses yang dimiliki oleh &#8220;California manager&#8221; dan &#8220;Eastern sales manager&#8221;.</p>
<h3>Setting Connection&#8217;s Role</h3>
<p>Secara default, semua cube dapat oleh semua role yang ada. Untuk membatasnya, dapat digunakan 2 cara:</p>
<ol>
<li>Pada connection string. Ketika melalukan koneksi pada role tertentu, maka aplikasi akan mengikuti role yang sudah di definisikan.</li>
<li>Langsung pada programingnya. Kita bisa langsung mengganti role pada code java yang sedang mengakses mondrian menggunakan method Connection.setRole(Role)</li>
</ol>
<br />Posted in Open Source, Programming  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ahmadtanwir.wordpress.com/250/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ahmadtanwir.wordpress.com/250/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ahmadtanwir.wordpress.com/250/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ahmadtanwir.wordpress.com/250/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ahmadtanwir.wordpress.com/250/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ahmadtanwir.wordpress.com/250/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ahmadtanwir.wordpress.com/250/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ahmadtanwir.wordpress.com/250/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ahmadtanwir.wordpress.com/250/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ahmadtanwir.wordpress.com/250/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ahmadtanwir.wordpress.com/250/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ahmadtanwir.wordpress.com/250/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ahmadtanwir.wordpress.com/250/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ahmadtanwir.wordpress.com/250/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ahmadtanwir.wordpress.com&amp;blog=2033191&amp;post=250&amp;subd=ahmadtanwir&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ahmadtanwir.wordpress.com/2009/12/14/roles-schema-di-mondrian/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6b25dc284e3f0f31cab71580e7c75521?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ata</media:title>
		</media:content>

		<media:content url="http://onsmart.files.wordpress.com/2007/08/pentaho_functional_architecture.jpg" medium="image" />
	</item>
		<item>
		<title>Programing Concept: Duck Typing</title>
		<link>http://ahmadtanwir.wordpress.com/2009/11/12/programing-concept-duck-typing/</link>
		<comments>http://ahmadtanwir.wordpress.com/2009/11/12/programing-concept-duck-typing/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 06:58:13 +0000</pubDate>
		<dc:creator>Ahmad Tanwir</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://ostric.wordpress.com/?p=164</guid>
		<description><![CDATA[Saya bangga akan diri sendiri yang dalam tiga hari ini terus-menerus melakukan posting di blog ini. Yang pasti kejenuhan membuat aktivitas blogging saya meningkat akhir-akhir ini. Sangat menyenangkan bisa mengisi waktu yang di paksa untuk luang agar bisa berbagi sedikit pengetahuan untuk teman-teman blogger yang akhirnya menemukan blog ini. Dan saya kira aktivitas ini lebih [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ahmadtanwir.wordpress.com&amp;blog=2033191&amp;post=164&amp;subd=ahmadtanwir&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://ahmadtanwir.files.wordpress.com/2009/11/duck.jpg"><img class="alignleft size-medium wp-image-264" title="DUCK" src="http://ahmadtanwir.files.wordpress.com/2009/11/duck.jpg?w=275&#038;h=300" alt="" width="275" height="300" /></a></p>
<p>Saya bangga akan diri sendiri yang dalam tiga hari ini terus-menerus melakukan posting di blog ini. Yang pasti kejenuhan membuat aktivitas blogging saya meningkat akhir-akhir ini. Sangat menyenangkan bisa mengisi waktu yang di paksa untuk luang agar bisa berbagi sedikit pengetahuan untuk teman-teman blogger yang akhirnya menemukan blog ini. Dan saya kira aktivitas ini lebih baik dari pada harus kuliah ke kampus, kemudian hanya duduk melamun di kelas tanpa memperhatikan materi di di ajarkan dengan mulianya oleh dosen-dosen saya yang tercinta. <span id="more-164"></span></p>
<p>Ketika memposting <a href="http://ostric.wordpress.com/2009/11/10/javascript-structure-language/">artikel javascript </a>, saya mendapat istilah yang cukup unik: Duck Typing. Jika suatu bahasa pemrograman di katakan memiliki fitur Duck Typing, itu artinya si bahasa pemrograman dapat langsung mengenal tipe variable yang di masukkan dalam paramater suatu method atau fungsi.</p>
<p>Ok, kita lihat contoh sederhananya dalam bahasa python</p>
<p><pre class="brush: python;">
function calculate(a, b, c) =&gt; return (a+b)*c

example1 = calculate (1, 2, 3)
example2 = calculate ([1, 2, 3], [4, 5, 6], 2)
example3 = calculate ('apples ', 'and oranges, ', 3)

print to_string example1
print to_string example2
print to_string example3
</pre></p>
<p>Output yang di hasilkan</p>
<pre>9
[1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6]
apples and oranges, apples and oranges, apples and oranges,</pre>
<p>Seperti yang terlihat di atas, fungsi <em>calculate</em> langsung mengenali tipe variable dari parameter yang dimasukkan.</p>
<p>Untuk lebih jelasnya,  bisa di perhatikan contoh penggunaan Duck Typing pada Pemrograman Berorientasi object berikut</p>
<p>Contoh Duck Typing pada Python</p>
<p><pre class="brush: python;">
#!/usr/bin/env python
class Duck:
    def quack(self):
        print &quot;Quaaaaaack!&quot;
    def feathers(self):
        print &quot;The duck has white and gray feathers.&quot;

class Person:
    def quack(self):
        print &quot;The person imitates a duck.&quot;
    def feathers(self):
        print &quot;The person takes a feather from the ground and shows it.&quot;

def in_the_forest(duck):
    duck.quack()
    duck.feathers()

def game():
    donald = Duck()
    john = Person()
    in_the_forest(donald)
    in_the_forest(john)

game()
</pre></p>
<p>Contoh Duck Typing pada Ruby</p>
<p><pre class="brush: ruby;">
#!/usr/bin/env ruby
class Duck
    def quack
        puts &quot;Quaaaaaack!&quot;
    end
    def feathers
        puts &quot;The duck has white and gray feathers.&quot;
    end
end
class Person
    def quack
        puts &quot;The person imitates a duck.&quot;
    end
    def feathers
        puts &quot;The person takes a feather from the ground and shows it.&quot;
    end
end
def in_the_forest(duck)
    duck.quack
    duck.feathers
end
def game
    donald = Duck.new
    john = Person.new
    in_the_forest(donald)
    puts
    in_the_forest(john)
end
game

</pre></p>
<p>Output yang di hasilkan oleh kedua skrip program di atas adalah:</p>
<pre>Quaaaaaack!
The duck has white and gray feathers.
The person imitates a duck.
The person takes a feather from the ground and shows it.</pre>
<p>sumber: <a href="http://en.wikipedia.org/wiki/Duck_typing" target="_blank">http://en.wikipedia.org/wiki/Duck_typing</a></p>
<br />Posted in Programming  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ahmadtanwir.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ahmadtanwir.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ahmadtanwir.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ahmadtanwir.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ahmadtanwir.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ahmadtanwir.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ahmadtanwir.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ahmadtanwir.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ahmadtanwir.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ahmadtanwir.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ahmadtanwir.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ahmadtanwir.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ahmadtanwir.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ahmadtanwir.wordpress.com/164/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ahmadtanwir.wordpress.com&amp;blog=2033191&amp;post=164&amp;subd=ahmadtanwir&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ahmadtanwir.wordpress.com/2009/11/12/programing-concept-duck-typing/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6b25dc284e3f0f31cab71580e7c75521?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ata</media:title>
		</media:content>

		<media:content url="http://ahmadtanwir.files.wordpress.com/2009/11/duck.jpg?w=275" medium="image">
			<media:title type="html">DUCK</media:title>
		</media:content>
	</item>
		<item>
		<title>OOP PHP in Practice: Request Handler</title>
		<link>http://ahmadtanwir.wordpress.com/2009/11/11/oop-php-in-practice-request-handler/</link>
		<comments>http://ahmadtanwir.wordpress.com/2009/11/11/oop-php-in-practice-request-handler/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 00:00:24 +0000</pubDate>
		<dc:creator>Ahmad Tanwir</dc:creator>
				<category><![CDATA[OOP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://ostric.wordpress.com/?p=122</guid>
		<description><![CDATA[Saya baru sadar satu hal, ternyata dengan menulis saya bisa melupakan SEJENAK masalah-masalah keseharian yang sedang saya hadapi. Sejenak saya bisa melupakan tugas-tugas kuliah yang membuat stres, sejenak saya bisa melupakan bahwa pada semester ini saya terancam tidak lulus pada salah satu matakuliah, sejenak saya bisa melupakan Jurnal Seminar yang sampai sekarang belum saya tulis. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ahmadtanwir.wordpress.com&amp;blog=2033191&amp;post=122&amp;subd=ahmadtanwir&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://ahmadtanwir.files.wordpress.com/2009/11/mvc.png"><img class="alignleft size-medium wp-image-266" title="mvc" src="http://ahmadtanwir.files.wordpress.com/2009/11/mvc.png?w=300&#038;h=240" alt="" width="300" height="240" /></a>Saya baru sadar satu hal, ternyata dengan menulis saya bisa melupakan SEJENAK masalah-masalah keseharian yang sedang saya hadapi. Sejenak saya bisa melupakan tugas-tugas kuliah yang membuat stres, sejenak saya bisa melupakan bahwa pada semester ini saya terancam tidak lulus pada salah satu matakuliah, sejenak saya bisa melupakan Jurnal Seminar yang sampai sekarang belum saya tulis.  Namun dari semua itu, yang terpenting adalah sejenak saya bisa melupakan masalah saya dengan seseorang yang dari semalam tidak berkenan menjawab telpon saya, entah apa alasannya, namun kuharap dia baik-baik saja. <span id="more-122"></span></p>
<p>Setelah berkutat dengan konsep-konsep pemrograman berorientasi object yang sering kali membingungkan. Tak ada salahnya untuk posting kali ini saya mencoba untuk mengimplemtasikan hal yang bisa di perbuat oleh object itu sendiri.</p>
<p>Salah satu implementasi pemrograman berbasis object pada PHP adalah Request Handler, yaitu aplikasi untuk menghandle request (dalam bentuk url) yang kemudian mengekseskusi class dan method yang sesuai. dalam hal ini mungkin anda harus mengerti sedikit tentang konsep MVC, namun tak semua, cukup poin C nya saja, yaitu Controller. Jadi class yang di akses dinamakan class Controller,dan method yang di akses di sebut action.</p>
<p>Misalnya kita ingin mengakses url <a href="http://localhost/aplikasi/foo/bar" target="_self">http://localhost/aplikasi/foo/bar</a> , maka kitta menginginkan class php yang di eksekusi adalah class <em>FooController</em> dan methode <em>bar</em></p>
<p>Untuk itu, kita bisa membuat library sederhana untuk mengimplemtasikannya. Disini saya mengatur susunan library seperti di bawah ini:</p>
<pre>- apikasi
  |- controllers
      |- FooController.php
  |- lib
      |- Request.php
      |- RequestHandler.php
  |- index.php
  |- .htaccess</pre>
<p>Berikut source codenya:</p>
<p>class Request sebagi model untuk menampung data Request yang di terjemahkan dari URL</p>
<p><pre class="brush: php;">

&lt;?php

/* nama file: Request.php */

class Request{

    private $controllerName;
    private $actionName;
    private $params = array();

    public function __construct()
    {
        if(isset($_SERVER['PATH_INFO'])) {
            $this-&gt;params = explode('/',substr($_SERVER['PATH_INFO'],1));

            $this-&gt;controllerName = ucfirst(array_shift($this-&gt;params));
            if(count($this-&gt;params) &gt; 0) {
                $this-&gt;actionName = array_shift($this-&gt;params);
            }

        }
    }

    public function getControllerName()
    {
        return $this-&gt;controllerName;
    }

    public function getActionName()
    {
        return $this-&gt;actionName;
    }

    public function getParams()
    {
        return $this-&gt;params;
    }

    public function setControllerName($controllerName)
    {
        $this-&gt;controllerName = $controllerName;
    }

    public function setActionName($actionName)
    {
        $this-&gt;actionName = $actionName;
    }

}

</pre></p>
<p>Class PHP yang berfungsi untuk menghandle Request</p>
<p><pre class="brush: php;">

&lt;?php

/* nama file: RequestHandler.php */

class RequestHandler
{
    private $request;
    private $defaultController = 'Site';
    private $defaultAction = 'index';
    private $controllerPostfix = 'Controller';
    private $view;

    public function __construct(Request $request)
    {
        $this-&gt;request = $request;
    }

    public function run()
    {

        if($this-&gt;request-&gt;getControllerName() === null) {
            $this-&gt;request-&gt;setControllerName($this-&gt;defaultController);
        }
        if($this-&gt;request-&gt;getActionName() === null) {
            $this-&gt;request-&gt;setActionName($this-&gt;defaultAction);
        }

        $cn = $this-&gt;request-&gt;getControllerName() . $this-&gt;controllerPostfix;

        $c = new $cn();

        $m = $this-&gt;request-&gt;getActionName();

        call_user_func_array(array($c,$m),
            $this-&gt;request-&gt;getParams()
        );
    }

    public function setDefaultController($defaultController)
    {
        $this-&gt;defaultController = $defaultController;
    }

    public function setDefaultAction($defaultAction)
    {
        $this-&gt;defaultAction =  $defaultAction;
    }

    public function setControllerPostfix($controllerPostfix)
    {
        $this-&gt;controllerPostfix = $controllerPostfix;
    }

    public function setViewDir($viewDir)
    {
        $this-&gt;viewDir = $viewDir;
    }

}

</pre></p>
<p>File Index yang pertama di akses</p>
<p><pre class="brush: php;">

&lt;?php

/* nama file: index.php */

define('APP_DIR', dirname(__FILE__));

function __autoload($className){
    if(file_exists(APP_DIR . &quot;/lib/$className.php&quot;)) {
        require_once(APP_DIR .&quot;/lib/$className.php&quot;);
    } else {
        require_once(APP_DIR . &quot;/controllers/$className.php&quot;);
    }

}

$handler = new RequestHandler(new Request());
$handler-&gt;run();

</pre></p>
<p>Class PHP yang akan di panggil</p>
<p><pre class="brush: php;">

&lt;?php
/* nama file: FooController.php */

class FooController{
    public function bar(){
       echo &quot;Hello World&quot;;
    }
}
</pre></p>
<p>Dan terakhir file .htaccess</p>
<p><pre class="brush: plain;">

&lt;IfModule mod_rewrite.c&gt;
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php/$1 [L]
&lt;/IfModule&gt;

</pre></p>
<p>Baiklah, saya sadar sepenuhnya bahwa tulisan ini belumlah sempurna, bahkan malahan masih membingunkan, tapi nanti akan coba saya sempurnakan lagi, karena sekarang saya harus berangkat ke kampus untuk misi perdamaian.</p>
<p>Selamat mencoba <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br />Posted in OOP, PHP, Programming  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ahmadtanwir.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ahmadtanwir.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ahmadtanwir.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ahmadtanwir.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ahmadtanwir.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ahmadtanwir.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ahmadtanwir.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ahmadtanwir.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ahmadtanwir.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ahmadtanwir.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ahmadtanwir.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ahmadtanwir.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ahmadtanwir.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ahmadtanwir.wordpress.com/122/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ahmadtanwir.wordpress.com&amp;blog=2033191&amp;post=122&amp;subd=ahmadtanwir&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ahmadtanwir.wordpress.com/2009/11/11/oop-php-in-practice-request-handler/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6b25dc284e3f0f31cab71580e7c75521?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ata</media:title>
		</media:content>

		<media:content url="http://ahmadtanwir.files.wordpress.com/2009/11/mvc.png?w=300" medium="image">
			<media:title type="html">mvc</media:title>
		</media:content>
	</item>
		<item>
		<title>Javascript: Structure Language</title>
		<link>http://ahmadtanwir.wordpress.com/2009/11/10/javascript-structure-language/</link>
		<comments>http://ahmadtanwir.wordpress.com/2009/11/10/javascript-structure-language/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 20:51:23 +0000</pubDate>
		<dc:creator>Ahmad Tanwir</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://ostric.wordpress.com/2009/11/10/pemrograman-javascript-konsep-bahasa/</guid>
		<description><![CDATA[Saya sadar sepenuhnya bahwa dari awal saya lebih suka menyampahi blog ini dengan konsep-konsep pemrograman yang teoritis dan membosankan, dan bukan dengan tutorial bahasa pemrograman yang lebih bersifat aplikatif. Jika anda protes dan mengelaluhkan hal ini, maka saya persilahkan anda untuk menutup tab browser yang sedang membuka halaman blog ini, lalu membuka blog orang lain [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ahmadtanwir.wordpress.com&amp;blog=2033191&amp;post=94&amp;subd=ahmadtanwir&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="    alignleft" style="margin:10px;" title="Javascript" src="http://fat04.files.wordpress.com/2009/08/javascript.jpg?w=211&#038;h=158" alt="" width="211" height="158" /></p>
<p>Saya sadar sepenuhnya bahwa dari awal saya lebih suka menyampahi blog ini dengan konsep-konsep pemrograman yang teoritis dan membosankan, dan bukan dengan tutorial bahasa pemrograman yang lebih bersifat aplikatif. Jika anda protes dan mengelaluhkan hal ini, maka saya persilahkan anda untuk menutup tab browser yang sedang membuka halaman blog ini, lalu membuka blog orang lain yang lebih banyak memberikan tutorial, atau saya lebih menyarankan anda untuk membeli buku-buku tentang javascript yang ada di gramedia. Disini saya hanya mencoba menuangkan pikiran dan opini yang berasal dari pikiran saya. Ini blog, bukan karya ilmiah, saya bebas donk mengungkapkan isi pikiran saya. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <span id="more-94"></span></p>
<p><strong>Scripting Programming pada Browser</strong></p>
<p>Hampir semua developer lebih menyukai javascript untuk keperluan scripting programing pada browser, namun bukan berari javascript cuma berkerja di browser lho! Ternyata berdasarkan yang saya di <a href="http://en.wikipedia.org/wiki/Server-side_JavaScript" target="_blank">wikipedia</a>, javascript juga dapat di implimentasikan menjadi server programing layaknya PHP, selengkapnya bisa anda baca di:  <a href="http://en.wikipedia.org/wiki/Server-side_JavaScript" target="_blank">http://en.wikipedia.org/wiki/Server-side_JavaScript</a>.</p>
<p>Ok, back to topic. Browser sebagai <em>run time environment</em> nya javascript akan menjalankan javascript yang embeded pada script HTML ataupun yang di <em>include</em> kan pada  html.<br />
Contoh yang embeded pada HTML:</p>
<p><pre class="brush: xml;">
&lt;!-- nama file: index.html --&gt;
&lt;input type=&quot;button&quot; value=&quot;Tekan di sini&quot; onclick=&quot;halo();&quot;&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
    function halo() {
        alert( &quot;Halo Dunia!&quot; );
    }
&lt;/script&gt;
</pre></p>
<p>contoh yang di include kan pada HTML:<br />
file HTMLnya:</p>
<p><pre class="brush: xml;">
&lt;!-- nama file: index.html --&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;script.js&quot;&gt;&lt;/script&gt;
&lt;input type=&quot;button&quot; value=&quot;Tekan di sini&quot; onclick=&quot;halo();&quot;&gt;
</pre></p>
<p>file javascriptnya:</p>
<p><pre class="brush: jscript;">
/* nama file: script.js */
 function halo() {
     alert( &quot;Halo Dunia!&quot; );
 }
</pre></p>
<p><strong> Java dan Javascript</strong></p>
<p>Pertanyaan yang paling saya sering temukan ketika seseorang pertama kali belajar Javascript adalah, &#8220;Apa sih perbedaan Java dan Javascript?&#8221;. Terus terang saya agak bosan juga mendengar dan harus menjawab pertanyaan tersebut. Dari pada menjawab perbedaan antara kedua bahasa pemrograman tersebut (karena saking banyaknya perbedaan), maka saya lebih suka memberitahukan persamaannya, dan persamaannya adalah: sama-sama ada nama &#8220;java&#8221;nya, dan selebihnya perbeda. Karena kedua bahasa ini sama sekali berbeda,maka jangan pernah beranggapan bahwa dengan mempelajari javascript anda akan lebih mudah mempelajari java, atau sebaliknya. Malahan saya sarankan ketika mempelajari (atau menggunakan) Javascript, sejenak lupakan konsep dan struktur yang ada di Java, karena (sekali lagi saya ingatkan) Java dan Javascript sama sekali berbeda.</p>
<p>Penasaran kenapa dinamakan Javascript?</p>
<p>Ceritanya begini, pada tahun 1995, Netscape memperkenalkan bahasa pemrograman scripting yang di beri nama LiveScript yang berfungsi sebagai bahasa sederhana untuk browser Nestcape Navigator 2, browser yang sangat populer pada saat itu. Kemudian sejalan dengan gencarnya kerjasama antara Nestcape dan Sun (pengembang bahasa pemrograman Java) pada masa itu, maka pada tanggal 4 desember 1995 Nestcape memberikan nama JavaScript kepada bahasa tersebut. Pada saat yang bersamaan, Microsoft sendiri mencoba untuk mengadaptasikan teknologi yang mereka sebut sebagai JScript di browser milik mereka yaitu Internet Explorer 3. Sruktur pemrograman JavaScript sendiri merupakan adopsi dari bahasa pemrograman C dengan pola penulisan yang lebih sederhana dari bahasa C tersebut.</p>
<p><strong>Struktur Language</strong></p>
<p>Karena menggunakan C style, maka gaya penulisan javascript menggunakan keyword dan symbol yang ada pada bahasa C juga.</p>
<p><pre class="brush: jscript;">
if(&lt;kondisi&gt;){
    // perintah
} else {
    // perintah
}

switch(&lt;kondisi&gt;) {
    case 1: /*perintah*/;break;
    case 2: /*perintah*/;break;
    default: /*perintah*/;
}

while(&lt;kondisi&gt;) {
   // perintah
}

do {
   // statement
} while (&lt;kondisi&gt;)

</pre></p>
<p>Tak perlu di bahas lagi kan tentang apa itu apa itu if..else, swich..case, while..do dan do..while?</p>
<p><strong>Dynamic Typing</strong></p>
<p>Sama seperti kebanyak bahasa pemrograman scripting lainnya (perl, ruby, python dan php), javascript mengenal tipe data pada variable langsung berdasarkan value dari variable tersebut.</p>
<p><pre class="brush: jscript;">
var var1 = 'Hello World';//  variable bertipe string
var var2 = &quot;Hello World&quot;;// variable bertipe string (sama dengan yang di atas)
var var3 = 10; //  variable bertipe integer
var var4 = 2.5; //  variable bertipe float
var var5 = new Object(); // variable bertipe object
var var6 = {name:&quot;ata&quot;,nim:&quot;060650&quot;}; // variable bertipe object
var var7 = [1,2,3]; // variable bertipe array
var var8 = function() {document.write(&quot;Hello World&quot;)}// variable bertipe fungsi
</pre></p>
<p>O iya, javascript juga mendukung <a href="http://ostric.wordpress.com/2009/11/12/programing-concept-duck-typing/" target="_blank">Duck Typing</a>.</p>
<p>&nbsp;</p>
<p>Sumber:</p>
<ul>
<li><span style="background-color:#ffffff;"><a href="http://fat04.wordpress.com/2009/08/31/mengenal-javascript/" target="_blank">http://fat04.wordpress.com/2009/08/31/mengenal-javascript/</a></span></li>
<li><span style="background-color:#ffffff;"><a href="http://en.wikipedia.org/wiki/Javascript" target="_blank">http://en.wikipedia.org/wiki/Javascript</a></span></li>
</ul>
<br />Posted in Javascript, Open Source, Programming  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ahmadtanwir.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ahmadtanwir.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ahmadtanwir.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ahmadtanwir.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ahmadtanwir.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ahmadtanwir.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ahmadtanwir.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ahmadtanwir.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ahmadtanwir.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ahmadtanwir.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ahmadtanwir.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ahmadtanwir.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ahmadtanwir.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ahmadtanwir.wordpress.com/94/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ahmadtanwir.wordpress.com&amp;blog=2033191&amp;post=94&amp;subd=ahmadtanwir&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ahmadtanwir.wordpress.com/2009/11/10/javascript-structure-language/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6b25dc284e3f0f31cab71580e7c75521?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ata</media:title>
		</media:content>

		<media:content url="http://fat04.files.wordpress.com/2009/08/javascript.jpg" medium="image">
			<media:title type="html">Javascript</media:title>
		</media:content>
	</item>
	</channel>
</rss>
