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

<channel>
	<title>thinkrooms &#187; Web Developer</title>
	<atom:link href="http://www.thinkrooms.com/category/it/web-developer/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.thinkrooms.com</link>
	<description>Web Developer, Web Designer, Internet Solution, Network  and System Integration</description>
	<lastBuildDate>Sun, 08 Nov 2009 04:43:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Metodologi Pengembangan Aplikasi Web</title>
		<link>http://www.thinkrooms.com/2009/06/09/metodologi-pengembangan-aplikasi-web/</link>
		<comments>http://www.thinkrooms.com/2009/06/09/metodologi-pengembangan-aplikasi-web/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 08:08:04 +0000</pubDate>
		<dc:creator>tyohan</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[Recommended]]></category>
		<category><![CDATA[Web Developer]]></category>
		<category><![CDATA[artikel]]></category>
		<category><![CDATA[IT Solution]]></category>
		<category><![CDATA[project management]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[web app]]></category>
		<category><![CDATA[web develop]]></category>

		<guid isPermaLink="false">http://www.thinkrooms.com/?p=143</guid>
		<description><![CDATA[Metodologi adalah cara-cara yang digunakan oleh seseorang secara rutin dalam menyelesaikan suatu pekerjaan. Itu menurut pemahaman saya. Kata metodologi banyak digunakan dalam manajemen proyek. Karena kesuksesan proyek juga ditentukan oleh pemilihan metodologi yang akan digunakan dalam proyek itu. Demikian juga dalam proyek pengembangan aplikasi website kita memerlukan metodologi yang tepat agar dapat menghasilkan aplikasi web [...]]]></description>
			<content:encoded><![CDATA[<p>Metodologi adalah cara-cara yang digunakan oleh seseorang secara rutin dalam menyelesaikan suatu pekerjaan. Itu menurut pemahaman saya. Kata metodologi banyak digunakan dalam manajemen proyek. Karena kesuksesan proyek juga ditentukan oleh pemilihan metodologi yang akan digunakan dalam proyek itu. Demikian juga dalam proyek pengembangan aplikasi website kita memerlukan metodologi yang tepat agar dapat menghasilkan aplikasi web sesuai yang diinginkan.</p>
<p>Dalam dunia software engineering, metodologi paling klasik terdiri dari 5 fase yaitu:</p>
<ol>
<li>Fase requirement atau penelusuran kebutuhan, pada fase ini kita mencari tau sebenarnya apa sih yang dibutuhkan, tujuan dari suatu proyek pengembangan aplikasi, dan seperti apa hasil yang diinginkan.</li>
<li>Fase analisa, pada tahapan ini berdasarkan hasil penelusuran kebutuhan maka kita akan memutuskan seperti apa aplikasi yang ingin dibuat, feature apa saja yang diperlukan, masalah yang kemungkinan kita hadapi, apa saja yang kita perlukan dalam proses pengembangan, dsb.</li>
<li>Fase perancangan, pada tahapan ini kita akan membuat rencana atau rancangan mengenai aplikasi yang akan dibuat berdasarkan hasil analisa sebelumnya. Misalnya berdasarkan hasil analisa kita akan membuat aplikasi dengan beberapa feature, nah kita perlu merancang table database yang kira-kira diperlukan untuk feature tersebut. Selain itu sesuai dengan hasil analisa kita membuat tampilan dari aplikasi. Struktur aplikasi yang dibutuhkan kayak bagaimana, fungsi apa saja yang akan dibuat, dsb.</li>
<li>Fase pengembangan, tahapan implementasi hasil dari analisa dan perancangan. Pada tahap ini kita akan menulis kode program sesuai yang telah direncanakan sebelumnya pada fase perancangan. Pada tahapan ini juga dilakukan pengujian terhadap suatu fungsi apakah telah berjalan sesuai yang diinginkan.</li>
<li>Fase installasi, setelah memastikan bahwa semua fungsi telah berjalan baik dan telah memenuhi kriteria yang diinginkan pada fase requirement maka aplikasi akan si setup pada server atau komputer yang akan digunakan untuk menjalankan aplikasi ini.</li>
</ol>
<p>Fase diatas adalah fase standar yang bersifat dinamis. Tidak selamanya tiap fase yang dilewati akan ditinggalkan. Terkadang kita perlu kembali ke fase sebelumnya untuk memperbaiki kekurangan yang ada. Beberapa fase juga ada yang digabungkan agar lebih sederhana atau dipisahkan agar lebih detail.</p>
<p>Itu tadi metodologi klasik dalam proyek pengembangan aplikasi. Bagaimana dengan proyek pengembangan aplikasi web. Pada dasarnya karena sama-sama mengembangkan aplikasi maka metodologi diatas juga dapat digunakan. Namun terkadang kita memerlukan metodologi khusus yang bagi kita lebih nyaman. Saya sendiri memiliki metode tersendiri dalam proses pengembangan aplikasi web. Namun sebenarnya mengadopsi metodologi diatas namun dengan beberapa perubahan atau hanya perubahan kata-kata agar cocok dengan cara saya.</p>
<p>Berikut adalah metodologi pengembangan web yang biasa saya gunakan:</p>
<ol>
<li>Fase requirement, sama dengan metodologi diatas. Pada fase ini saya mencoba mencari tahu beberapa pertanyaan berikut:
<ul>
<li>apa yang dibutuhkan?</li>
<li>apa tujuan dari aplikasi ini?</li>
<li>apa yang ingin dicapai?</li>
<li>apakah ada referensi atau contoh?</li>
<li>siapa sasaran penggunaan aplikasi ini?</li>
</ul>
<p>Setelah memperoleh jawaban dari pertanyaan itu maka saya baru memulai fase berikutnya.</li>
<li>Fase penentuan feature dan fungsi, pada tahapan ini berdasarkan hasil penelusuran kebutuhan dari aplikasi maka saya menentukan feature dan fungsi apa saja yang akan dibuat untuk memenuhi kebutuhan yang ada. Feature dibagi menjadi feature utama atau bagian besar terlebih dahulu baru kemudian didefenisikan menjadi bagian yang lebih kecil. Misalnya pada aplikasi CMS salah satu feature utama adalah blog, kemudian feature blog didefenisikan seperti feature tagging, category, comment, dsb. Pada tahapan ini yang perlu diperhatikan adalah apakah daftar feature dan fungsi yang dibuat telah memenuhi kebutuhan yang diinginkan.</li>
<li>Fase pengumpulan data, konten, gambar, dan file lain yang dibutuhkan dalam pengembangan aplikasi. Berdasarkan daftar feature dan fungsi yang akan dikembangkan maka saya akan mengumpulkan data-data dan file yang diperlukan untuk feature dan fungsi tersebut.</li>
<li>Fase analisa dan perancangan, pada tahapan ini saya mencoba menganalisa data yang telah dikumpulkan pada tahapan sebelumnya dan menuangkan hasil analisa kedalam sebuah rancangan. Misalnya berdasarkan feature yang ada maka saya merancang tabel database yang dibutuhkan oleh tiap feature. Berdasarkan konten dan data  yang ada saya juga melakukan perancangan tampilan aplikasi. Selain itu saya juga menyusun struktur aplikasi seperti menu, sitemap, dsb.</li>
<li>Fase coding, pada tahapan ini saya memulai menulis kode program. Biasanya dimulai dengan mengubah template dari file image Firework ke html. Setelah itu membuat kerangka aplikasi seperti struktur folder dan file dan memulai pengembangan fungsi untuk tiap feature.</li>
<li>Fase setup and testing, pada tahapan ini saya melakukan setup di server dimana aplikasi web nanti akan akan dijalankan. Tentu setelah melakukan testing di komputer lokal terlebih dahulu dan memastikan bahwa semua fungsi berjalan baik. Pada server juga akan dilakukan testing untuk memastikan aplikasi dapat berjalan baik pada server tersebut. Pada tahapan ini juga akan dilakukan beta test dimana beberapa orang akan mencoba menggunakan aplikasi dan memberikan komentar atau feedback terkait dengan fungsi aplikasi.</li>
<li>Fase launching, pada fase ini setelah dipastikan aplikasi berjalan baik pada server maka saya akan melakukan sosialisasi baik di dunia nyata atau maya. Beberapa diantaranya adalah melakukan posting di forum, aplikasi social network seperti facebook, membuat posting di blog, dan sosialisasi lainnya.</li>
</ol>
<p>Itulah metodologi yang saya gunakan dalam pengembangan aplikasi web. Seperti sebelumnya tiap fase tidak bersifat mengikat tapi sebisa mungkin mengikuti alur yang ada. Sebenarnya metodologi diatas juga saya adaptasi dari salah satu metode <a title="Agile Software Development" href="http://en.wikipedia.org/wiki/Agile_software_development" target="_blank">Agile Development</a> yaitu <a title="Feature Driven Development" href="http://www.featuredrivendevelopment.com/" target="_blank">Feature Driven Development(FDD)</a>. FDD merupakan metode pengembangan aplikasi yang mengfokuskan pada feature atau fungsi yang ingin dikembangkan.</p>
<p>Pada dasarnya metodologi dikembangkan untuk membuat hasil suatu pekerjaan menjadi lebih baik. Namun tentu metodologi yang anda gunakan harus sesuai dengan diri anda sendiri. Gunakan metodologi yang paling nyaman menurut anda dan lihat apakah hasil yang dicapai lebih baik. Bila tidak pertimbangkan metodologi lain namun tetap cocok dengan anda.</p>
<h3>Referensi:</h3>
<ul>
<li><a href="http://www.martinbauer.com/articles/fdd_web_development" target="_blank">http://www.martinbauer.com/articles/fdd_web_development</a></li>
<li><a href="http://www.sitepoint.com/article/successful-development/" target="_blank">http://www.sitepoint.com/article/successful-development/</a></li>
<li><a href="http://www.greynium.com/services/web-development-methodology.html" target="_blank">http://www.greynium.com/services/web-development-methodology.html</a></li>
</ul>
<img src="http://www.thinkrooms.com/?ak_action=api_record_view&id=143&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.thinkrooms.com/2009/06/09/metodologi-pengembangan-aplikasi-web/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Menghadapi client yang juga teman</title>
		<link>http://www.thinkrooms.com/2009/02/18/menghadapi-client-yang-juga-tema/</link>
		<comments>http://www.thinkrooms.com/2009/02/18/menghadapi-client-yang-juga-tema/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 13:33:08 +0000</pubDate>
		<dc:creator>tyohan</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Web Developer]]></category>
		<category><![CDATA[freelancer]]></category>

		<guid isPermaLink="false">http://www.thinkrooms.com/?p=131</guid>
		<description><![CDATA[Kemarin seorang teman designer datang bercerita bagaimana dia pusing menghadapi clientnya yang juga temannya. Temannya bisa dibilang gaptek dan kurang mengerti web design. Bagi orang awam macam clientnya itu warna norak, penuh animasi, dan tampilan web jaman dulu merupakan kriteria web yang bagus. Prototype tampilan design web yang dibuat oleh teman saya itu ingin diubah [...]]]></description>
			<content:encoded><![CDATA[<p>Kemarin seorang teman designer datang bercerita bagaimana dia pusing menghadapi clientnya yang juga temannya. Temannya bisa dibilang gaptek dan kurang mengerti web design. Bagi orang awam macam clientnya itu warna norak, penuh animasi, dan tampilan web jaman dulu merupakan kriteria web yang bagus. Prototype tampilan design web yang dibuat oleh teman saya itu ingin diubah dan membuatnya lebih &#8220;menyala&#8221;. Teman saya pusing menjelaskan bagaimana biar temannya mengerti bahwa hasil akhirnya bakal tidak bagus.</p>
<p>Akhirnya teman saya memutuskan untuk mengikuti kemauannya dan mengiyakan perkataan client yang juga temannya itu. Dia mengatakan akan segera membuat design sesuai keinginan client dan kembali lagi dengan design baru. Dia bingung dan bertanya pada saya, betulkan tindakannya? Apa yang harus dilakukan? Menurut saya inilah yang harus dia lakukan untuk menghadapi client semacam itu yang juga teman dekat dia:</p>
<ol>
<li>Profesional, kerjaan dan teman tidak bisa terlalu dicampur adukkan. Tapi bukan berarti faktor pertemanan harus dilupakan. Jangan karena faktor pertemanan berakibat kita sebagai pekerja menjadi tersiksa bekerja dengan bayaran yang tidak sepadan.</li>
<li>Tegas, sistem kerja dan cakupan kerja harus dari awal ditegaskan. Dengan bayaran sekian maka kita akan memberikan hasil dengan cakupan sekian. Dari awal sebaiknya client dijelaskan bahwa sistem kerja misalnya kita akan membuatkan design sesuai dengan yang dia butuhkan dan punya hak untuk 3 kali  melakukan perubahan mayor, untuk perubahan minor mungkin bisa dilakukan sebanyak 5 kali. Dan untuk bayaran sekian kita hanya bisa membuatkan design web tanpa animasi flash dan cakupan hasil kerja lainnya. Dengan adanya kejelasan sistem kerja dan cakupan kerjaan maka diharapkan pekerjaan dapat diselesaikan tepat waktu.</li>
<li>Kita harus bisa menjelaskan kenapa kita membuatkan design seperti itu. Dasar pertimbangan pemilihan warna dan faktor lainnya harus dijelaskan agar dia mengerti. Walaupun misalnya dia tidak mengerti penjelasan kita paling tidak kita telah menyampaikan kewajiban kita.</li>
<li>Bila client meminta perubahan macam-macam yang menurut kita tidak sesuai dengan estetika dan mungkin hasilnya tidak bagus maka kita harus menegaskan bahwa semua perubahan akan masuk dalam hitungan revisi. Bila jumlah revisi atau perubahan melebihi batas maka biaya pengembangan juga akan bertambah.</li>
<li>Client harus mengerti bahwa setiap pengerjaan dan perubahan yang dilakukan membutuhkan tenaga, waktu, dan sumber daya lainnya pada kita. Sehingga teman yang baik pasti mengerti kesusahan kita sebagai seorang freelancer.</li>
</ol>
<p>Itulah menurut saya yang bisa dilakukan kepada client yang juga merupakan teman. Profesionalisme dan pertemanan memang susah untuk disatukan. Terkadang banyak terjadi perpecahan hubungan pertemanan karena masalah kerjaan. Teman yang baik pasti mengerti akan pekerjaan yang dilakoni temannya.</p>
<img src="http://www.thinkrooms.com/?ak_action=api_record_view&id=131&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.thinkrooms.com/2009/02/18/menghadapi-client-yang-juga-tema/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Website Referensi, Bacaan, dan Tutorial Untuk Web Developer dan Web Designer</title>
		<link>http://www.thinkrooms.com/2008/12/06/website-referensi-bacaan-dan-tutorial-untuk-web-developer-dan-web-designer/</link>
		<comments>http://www.thinkrooms.com/2008/12/06/website-referensi-bacaan-dan-tutorial-untuk-web-developer-dan-web-designer/#comments</comments>
		<pubDate>Sat, 06 Dec 2008 08:54:24 +0000</pubDate>
		<dc:creator>tyohan</dc:creator>
				<category><![CDATA[Web Developer]]></category>
		<category><![CDATA[referensi]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[web 2.0]]></category>
		<category><![CDATA[Web Reference]]></category>

		<guid isPermaLink="false">http://www.thinkrooms.com/?p=115</guid>
		<description><![CDATA[Setiap pagi saya memulai hari saya dengan segelas kopi dan Google Reader. Google Reader ini adalah aplikasi untuk aggregator RSS dari website yang telah kita pilih sebelumnya. Website dan blog yang saya aggregate untuk dibaca sehari-hari kebanyakan berisi informasi seputar teknologi dan web. Selain untuk mengikuti perkembangan dunia teknologi dan web, bacaan ini juga menjadi [...]]]></description>
			<content:encoded><![CDATA[<p>Setiap pagi saya memulai hari saya dengan segelas kopi dan <a href="http://www.google.com/reader" target="_blank">Google Reader</a>. Google Reader ini adalah aplikasi untuk aggregator RSS dari website yang telah kita pilih sebelumnya. Website dan blog yang saya aggregate untuk dibaca sehari-hari kebanyakan berisi informasi seputar teknologi dan web. Selain untuk mengikuti perkembangan dunia teknologi dan web, bacaan ini juga menjadi sumber update skill mengenai web development. Melalui blog dan website yang saya baca saya dapat mempelajari beragam teknik pengembangan web dan trend pengembangan yang sedang naik daun.</p>
<p>Berikut adalah beberapa website yang saya aggregate di Google Reader saya yang dapat anda jadikan referensi, bacaan, dan tutorial untuk mengembangkan skill web development anda:</p>
<ol>
<li><a href="http://www.smashingmagazine.com/" target="_blank">Smashing Magazine</a>, salah satu blog favorit saya karena selalu mengumpulkan link-link menarik dan terbaik yang berisi referensi, teknik, dan beragam informasi lainnya yang sangat berguna untuk web development. Salah satu yang banyak dicari adalah theme gratis WordPress, Icon gratis, referensi design web yang menarik, font, tutorial, dan kumpulan informasi lainnya yang sangat berguna untuk mengembangkan skill anda.</li>
<li><a href="http://www.sitepoint.com" target="_blank">Sitepoint</a>, website yang banyak berisi artikel, tutorial, dan referensi buku yang sangat menarik dan berguna untuk pengembangan skill web development.</li>
<li><a href="http://www.webappers.com/" target="_blank">Webappers</a>, website yang banyak memberikan informasi yang menarik untuk para web developer dan web designer misalnya icon gratis, library baru, website menarik, dan beragam informasi seputar dunia web.</li>
<li><a href="http://nettuts.com/" target="_blank">Nettuts</a>, berisikan tutorial web design dan web development. Juga ada beberapa hasil wawancara terhadap para praktisi dunia web yang pengalamannya dapat berguna untuk para praktisi web. Selain itu Nettuts juga memberi informasi resource untuk praktisi web seperti theme, buku wajib, dan lain-lain</li>
<li><a href="http://www.webmongkey.com" target="_blank">WebMongkey</a>, membagi kontennya menjadi 3 kategori yaitu tutorial, artikel, dan kode program. Sangat berguna untuk membantu meningkatkan pengetahuan anda di dunia web development.</li>
<li><a href="http://www.readwriteweb.com/" target="_blank">ReadWriteWeb</a>, blog yang selalu memberikan update informasi mengenai dunia web. Saya biasanya melihat review aplikasi web terbaru di blog ini. Dengan demikian kita dapat mengikuti trend aplikasi web di internet.</li>
<li><a href="http://www.ajaxian.com" target="_blank">Ajaxian</a>, blog yang sangat sering diupdate seputar web programming. Bisa dibilang web ini merangkum informasi yang ada di internet.</li>
<li><a href="http://www.techcrunch.com/" target="_blank">TechCrunch</a>, blog yang memberikan informasi mengenai bisnis di internet. Di blog ini kita bisa menemukan informasi perusahaan-perusahaan yang ada di internet dan perkembangannya.</li>
<li><a href="http://mashable.com/" target="_blank">Mashable</a>, blog yang selalu memberikan update berita dan informasi dunia internet meliputi internet, aplikasi web, programming, online marketing, dan bisnis.</li>
</ol>
<p>Tentu masih banyak resource lainnya, tapi list diatas bisa menjadi langkah awal sumber informasi untuk anda para web maniak. Kalau ada yang ingin menambahkan silakan komentar disini ya. Terima kasih.</p>
<img src="http://www.thinkrooms.com/?ak_action=api_record_view&id=115&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.thinkrooms.com/2008/12/06/website-referensi-bacaan-dan-tutorial-untuk-web-developer-dan-web-designer/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Tips memulai karir sebagai freelancer</title>
		<link>http://www.thinkrooms.com/2008/10/31/tips-memulai-karir-sebagai-freelancer/</link>
		<comments>http://www.thinkrooms.com/2008/10/31/tips-memulai-karir-sebagai-freelancer/#comments</comments>
		<pubDate>Fri, 31 Oct 2008 07:17:36 +0000</pubDate>
		<dc:creator>tyohan</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[Recommended]]></category>
		<category><![CDATA[Web Developer]]></category>
		<category><![CDATA[freelancer]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://www.thinkrooms.com/?p=109</guid>
		<description><![CDATA[Saya memulai karir sebagai full freelancer kurang lebih sekitar 1 tahun lalu. Hasilnya bisa dibilang cukup untuk usaha saya. Pada dasarnya saya tidak terlalu giat mencari proyek dan terkadang dalam sebulan malah sibuk dengan proyek pribadi. Namun buat saya start awal menjadi freelancer cukup membuat saya puas karena dalam sebulan saya mendapat beberapa client bahkan [...]]]></description>
			<content:encoded><![CDATA[<p>Saya memulai karir sebagai full freelancer kurang lebih sekitar 1 tahun lalu. Hasilnya bisa dibilang cukup untuk usaha saya. Pada dasarnya saya tidak terlalu giat mencari proyek dan terkadang dalam sebulan malah sibuk dengan proyek pribadi. Namun buat saya start awal menjadi freelancer cukup membuat saya puas karena dalam sebulan saya mendapat beberapa client bahkan ada yang cukup loyal. Karena itu saya ingin berbagi tips agar bisa memulai karir freelance dengan baik. Berikut tips saya:</p>
<ol>
<li>Sebelum memulai ada beberapa kriteria yang yang sebaiknya anda penuhi agar mempermudah karir anda sebagai freelancer. Bukan syarat mutlak namun sangat berpengaruh akan kemajuan karir freelancer anda. Syarat tersebut antara lain:
<ul>
<li>Menguasai bahasa Inggris, minimal baca tulis. Kalau tidak anda akan kesulitan untuk berkomunikasi dengan client anda.</li>
<li>Memiliki skill yang cukup untuk bersaing dengan freelancer lainnya. Anda harus mempunyai kemampuan yang dapat diandalkan sebelum masuk ke dunia freelancer karena bila anda mengecewakan klien maka akan berdampak pada reputasi anda seterusnya.</li>
<li>Akses internet yang lancar karena semua pekerjaan dan komunikasi melalui internet maka hampir dipastikan syarat ini harus dipenuhi.</li>
<li>Memiliki website sendiri sebagai portofolio anda sehingga klien dengan mudah mengetahui siapa anda. Tidak mutlak tapi sangat membantu untuk meyakinkan klien bahwa anda adalah orang yang dia cari.</li>
</ul>
</li>
<li>Daftar ke website penyedia project. Daftar web yang bisa dicoba bisa lihat di tulisan saya sebelumnya <a href="http://www.thinkrooms.com/2008/10/21/website-untuk-para-creative-freelancer/" target="_blank">“Website untuk para creative freelancer”</a>. Untuk permulaan saya menyarankan menggunakan getafreelancer.com(GAF) karena banyak proyek kecil yang bisa anda coba ikuti. Selain ga ribet harus test, bikin proposal, dan prosedur lainnya yang banyak digunakan di website lain GAF juga tidak terlalu membatasi freelancer dalam jumlah mengikuti penawaran proyek. Tidak seperti website lain yang sangat membatasi jumlah keikutsertaan dalam penawaran proyek untuk account gratis. Untuk memiliki kesempatan lebih ikut dalam penawaran anda harus membayar sekian dollar untuk website lainnya.</li>
<li>Setelah mendaftar, silakan cari proyek yang anda ingin ikuti. Berikut adalah saran dalam memilih proyek:
<ul>
<li>Pilih proyek yang pasti bisa anda selesaikan. Kalau perlu lakukan riset terlebih dahulu sebelum mengikuti penawaran.</li>
<li>Jangan tamak dan langsung ikut menawar pada proyek bernilai besar. Mulailah dengan proyek kecil dengan tujuan mengumpulkan review dan feedback dari client sebanyak mungkin.</li>
<li>Baca secara detail requirement proyek dan pastikan anda memahami apa yang diinginkan oleh pemilik proyek.</li>
<li>Sebaiknya anda memilih spesialis anda, misalnya anda spesialis WordPress, Drupal, atau CMS lainnya. Dengan demikian anda memiliki feedback yang sesuai dengan spesialis anda dan lebih meyakinkan klien lain bila anda menawar proyek serupa yang pernah anda kerjakan sebelumnya.</li>
</ul>
</li>
<li>Setelah memilih proyek, saatnya membujuk klien anda agar memilih anda dalam mengerjakan proyek miliknya. Caranya bisa seperti berikut:
<ul>
<li>Perkenalkan secara singkat diri anda dan kemampuan anda.</li>
<li>Yakinkan klien bahwa anda mengerti apa yang klien anda inginkan.</li>
<li>Berikan saran atau ide yang dapat membuat proyek klien jadi lebih baik.</li>
<li>Tunjukkan apa yang pernah anda buat sebelumnya, sebaiknya tunjukkan karya anda yang kira-kira mirip dengan proyek yang anda tawar.</li>
</ul>
</li>
<li>Bila klien anda tertarik dan membalas pesan anda. Jangan sia-siakan kesempatan. Bujuk rayu dan yakinkan klien bahwa anda tidak akan mengecewakan klien. Namun pastikan requirement, prosedur pengerjaan, biaya, dan pembayaran telah jelas sebelum anda deal dengan klien anda.</li>
<li>Selamat, anda terpilih untuk mengerjakan proyek ini. Bila email pemberitahuan telah sampai di inbox anda, anda harus segera menyiapkan segala sesuatunya untuk memulai proyek anda. Anda bisa menggunakan beberapa tool kolaborasi untuk memudahkan komunikasi dengan klien anda.</li>
<li>Selama pengerjaan proyek, pastikan klien anda mengetahui apa yang anda sedang kerjakan. Minimal 3 hari sekali anda memberikan laporan kepada klien anda. Makin sering makin baik, misalya sehari sekali.</li>
<li>Minta review dan komentar klien anda untuk proyek yang sedang anda kerjakan. Misalnya selesai bagian tampilan, tanyakan komentarnya agar bila ada perubahan tidak perlu dilakukan perubahan besar-besaran bila hal ini anda lakukan di akhir proyek.</li>
<li>Pastikan permintaan klien selama pengerjaan proyek tidak melenceng dari requirement proyek. Bila hanya perubahan kecil maka bisa saja anda penuhi, namun bila perubahan termasuk besar mungkin anda bisa mengajukan perubahan anggaran biaya proyek.</li>
<li>Pastikan klien anda puas dengan pekerjaan anda dengan menyelesaikan proyek tepat waktu dan sesuai dengan requirement proyek. Karena besar kemungkinan klien anda akan meminta anda melakukan pekerjaan lain bila ia puas dengan pekerjaan anda.</li>
</ol>
<p>Demikianlah tips dari saya dalam memulai karir freelance anda. Karena besar kemungkinan bila anda tidak memulai dengan baik dan anda merasakan kegagalan dengan freelance maka anda dapat saja trauma dan tidak ingin melakukannya lagi. Padahal bisa saja kegagalan tersebut bukan karena ketidakmampuan anda, akan tetapi hanya karena kekurangtauan anda bagaimana memulainya dengan baik. Selamat mencoba.</p>
<img src="http://www.thinkrooms.com/?ak_action=api_record_view&id=109&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.thinkrooms.com/2008/10/31/tips-memulai-karir-sebagai-freelancer/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Looping object dengan Prototype javascript di Internet Explorer</title>
		<link>http://www.thinkrooms.com/2008/10/12/looping-object-dengan-prototype-javascript-di-internet-explorer/</link>
		<comments>http://www.thinkrooms.com/2008/10/12/looping-object-dengan-prototype-javascript-di-internet-explorer/#comments</comments>
		<pubDate>Sun, 12 Oct 2008 08:27:31 +0000</pubDate>
		<dc:creator>tyohan</dc:creator>
				<category><![CDATA[Web Developer]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[prototype]]></category>

		<guid isPermaLink="false">http://www.thinkrooms.com/?p=92</guid>
		<description><![CDATA[Internet explorer punya banyak perbedaan dengan browser lain seperti Firefox atau Safari. Mungkin karena merupakan browser yang paling banyak digunakan di dunia sehingga dengan seenaknya pengembangan browser Internet Explorer tidak mengikuti standar yang sama. Katanya sih ke depan IE akan dikembangkan mengikuti standar, namun hingga IE 7, IE stabil yang terakhir dirilis saat tulisan ini [...]]]></description>
			<content:encoded><![CDATA[<p>Internet explorer punya banyak perbedaan dengan browser lain seperti Firefox atau Safari. Mungkin karena merupakan browser yang paling banyak digunakan di dunia sehingga dengan seenaknya pengembangan browser Internet Explorer tidak mengikuti standar yang sama. Katanya sih ke depan IE akan dikembangkan mengikuti standar, namun hingga IE 7, IE stabil yang terakhir dirilis saat tulisan ini dibuat masih memiliki perbedaan dengan browser lainnya untuk penanganan CSS dan Javascript. Salah satunya pada penanganan looping object javascript yang bekerja dengan baik di Firefox dan Safari ternyata tidak dapat berjalan di IE7.</p>
<p>Contoh kode looping pada object Javascript dengan bantuan Prototype Javascript:</p>
<pre>var foo = new Array();
foo[0] = "zero";
foo[1] = "one";
foo[2] = "two";

var out = "";
foo.each(function(obj){
out += obj+ " ";
});

alert(out);</pre>
<p>Kode diatas akan menghasilkan ouput “zero one two” pada browser Firefox dan Safari namun pada IE7 tidak akan menghasilkan apa-apa. Sepertinya tidak terjadi looping sama sekali pada IE7. penggunaan fungsi each yang merupakan fungsi tambahan dari Prototype Javascript untuk memudahkan looping juga tidak membantu. Solusinya adalah menggunakan fungsi lainnya pada Prototype Javascript sebelum melakukan looping dengan fungsi each. Fungsi tersebut adalah <a title="compact Prototype javascript function" href="http://www.prototypejs.org/api/array/compact" target="_blank">compact()</a> yang merupakan fungsi pada prototype yang akan menghilangkan nilai null dalam koleksi objek atau array dan mengembalikan objek atau array tanpa nilai null. Jadi sepertinya yang menjadi permasalahan adalah IE7 tidak dapat melakukan looping bila ada nilai null dalam koleksi array atau objek. Kodenya menjadi seperti berikut:</p>
<pre>var foo = new Array();
foo[0] = "zero";
foo[1] = "one";
foo[2] = "two";

var out = "";
foo.compact().each(function(obj){
out += obj+ " ";
});

alert(out);</pre>
<p>Hasilnya adalah output yang sama dengan Firefox dan Safari. Sesuai dengan yang saya harapkan. Solusi ini saya temukan di <a title="http://hamiltonsonline.net/ross/?tag=array-explorer-ie-iterate" href="http://hamiltonsonline.net/ross/?tag=array-explorer-ie-iterate">http://hamiltonsonline.net/ross/?tag=array-explorer-ie-iterate</a> setelah seharian dipusingkan dengan IE7.</p>
<img src="http://www.thinkrooms.com/?ak_action=api_record_view&id=92&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.thinkrooms.com/2008/10/12/looping-object-dengan-prototype-javascript-di-internet-explorer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Yii Framework, new best performance php framework</title>
		<link>http://www.thinkrooms.com/2008/10/08/yii-framework-new-best-performance-php-framework/</link>
		<comments>http://www.thinkrooms.com/2008/10/08/yii-framework-new-best-performance-php-framework/#comments</comments>
		<pubDate>Wed, 08 Oct 2008 01:45:16 +0000</pubDate>
		<dc:creator>tyohan</dc:creator>
				<category><![CDATA[Prado Framework]]></category>
		<category><![CDATA[Recommended]]></category>
		<category><![CDATA[Web Developer]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[web 2.0]]></category>
		<category><![CDATA[yii]]></category>

		<guid isPermaLink="false">http://www.thinkrooms.com/?p=83</guid>
		<description><![CDATA[Pengembang Prado Qiang Zue memilih mengembangkan framework baru dibandingkan meneruskan Prado 3 ke versi 4. Framework baru ini yang diberi nama Yii merupakan turunan dari Prado karena meminjam konsep dan kelebihan dari Prado namun dengan beberapa perubahan untuk kemampuan yang lebih baik. Perubahan paling signifikan dari framework ini adalah performancenya. Hasil tes membuktikan bahwa Yii [...]]]></description>
			<content:encoded><![CDATA[<p>Pengembang Prado Qiang Zue memilih mengembangkan framework baru dibandingkan meneruskan Prado 3 ke versi 4. Framework baru ini yang diberi nama Yii merupakan turunan dari Prado karena meminjam konsep dan kelebihan dari Prado namun dengan beberapa perubahan untuk kemampuan yang lebih baik. Perubahan paling signifikan dari framework ini adalah performancenya. Hasil tes membuktikan bahwa Yii telah menjadi framework dengan performance terbaik saat ini. Meninggalkan Codeigniter yang selama ini merupakan pemegang sabuk juara performance untuk framework PHP.</p>
<p><img style="max-width: 800px; float: none;" src="http://www.yiiframework.com/images/performance.png" alt="" /></p>
<p>Codeigniter memilih tidak menggunakan seluruh kemampuan Object Oriented Programming(OOP) dengan alasan performance, namun Yii mematahkan anggapan bahwa OOP pasti akan mengorbankan performance. Memang bila dibandingkan dengan structural programming besar kemungkinan OOP tertinggal, namun dengan kemudahan pengembangan aplikasi menjadi nilai lebih bagi pengembangan dengan OOP. Yii yang namanya terisipirasi dari Wii yaitu game console revolusioner merupakan framework murni OOP dan hanya berjalan di PHP 5.1 keatas.<br />
Berikut merupakan beberapa fitur dari Yii:</p>
<ol>
<li>Menggunakan pola MVC, pola standar pengembangan aplikasi yang memisahkan tampilan, logic program, dan model.</li>
<li>Menggunakan database abstraction layer seperti Data Access Objects(DAO) dan Active Record untuk memudahkan interaksi dengan database.</li>
<li>Terintegrasi dengan JQuery Javascript Framework. Walaupun menggunakan JQuery sebagai internal javascript library, namun Yii dapat menggunakan library lainnya tanpa terjadi bentrok.</li>
<li>Mendukung Internationalization (I18N) and localization (L10N) untuk memudahkan pengembangan aplikasi dalam multi bahasa dan lokalisasi seperti penggunaan waktu dan tanggal.</li>
<li>Memiliki layer cache untuk cache data, halaman, sebagian, dan keseluruhan aplikasi sehingga dapat meningkatkan performance dengan beragam pilihan media cache. Penggunaan media cache seperti database, APC, memcache, dan sebagainya dengan mudah diatur tanpa melakukan perubahan besar pada kode.</li>
<li>Fitur penanganan error dan logging, sehingga memudahkan pengembang dalam melakukan debugging aplikasi dalam masa pengembangan aplikasi.</li>
<li>Penggunaan theme, memudahkan pengembang aplikasi dalam merancang tampilan aplikasi.</li>
<li>Console, penggunaan perintah pada console untuk melakukan beragam perintah otomatis seperti meng-generate struktur dasar aplikasi, model, crud, dan sebagainya.</li>
<li>Dukungan authentication dan authorization internal<strong> </strong>sehingga memudahkan pengembangan aplikasi dengan fitur autentikasi.</li>
<li>Widget, seperti pada Prado memiliki komponen pada Yii memiliki widget yaitu semacam kontrol yang memiliki fungsi tertentu seperti autocomplete, datapicker, table, dan lain-lain. Menggunakan JQuery sebagai javascript client sidenya.</li>
<li>Dukungan form input dan validasi. Memudahkan pengembang untuk bekerja dengan form pada aplikasi dan melakukan validasi input dari form.</li>
<li>Modular dan mudah ditambahkan dengan dukungan extensi dan komponen tambahan sehingga beragam fitur tambahan dengan mudah dimasukkan.</li>
</ol>
<p>Saat ini Yii masih dalam versi 1 alpha. Namun menurut pengembang framework ini sudah cukup stabil untuk digunakan dalam produksi. Namun karena framework ini masih baru sehingga penggunanya juga masih sangat sedikit. Namun melihat fitur, kemampuan dan merupakan turunan dari Prado saya tidak ragu untuk memulai menggunakan framework ini.</p>
<p>Reference</p>
<ul>
<li><a title="Prado Forum" href="http://www.pradosoft.com/forum/index.php/topic,11022.0.html" target="_blank">http://www.pradosoft.com/forum/index.php/topic,11022.0.html</a></li>
<li><a title="yii framework" href="http://www.yiiframework.com" target="_blank">http://www.yiiframework.com</a></li>
</ul>
<img src="http://www.thinkrooms.com/?ak_action=api_record_view&id=83&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.thinkrooms.com/2008/10/08/yii-framework-new-best-performance-php-framework/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Screen Scrapper, aplikasi sejenis web crawler untuk mengambil data dari website lain</title>
		<link>http://www.thinkrooms.com/2008/08/25/screen-scrapper-aplikasi-sejenis-web-crawler-untuk-mengambil-data-dari-website-lain/</link>
		<comments>http://www.thinkrooms.com/2008/08/25/screen-scrapper-aplikasi-sejenis-web-crawler-untuk-mengambil-data-dari-website-lain/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 13:38:45 +0000</pubDate>
		<dc:creator>tyohan</dc:creator>
				<category><![CDATA[Prado Framework]]></category>
		<category><![CDATA[Web Developer]]></category>
		<category><![CDATA[curl]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.thinkrooms.com/2008/08/25/screen-scrapper-aplikasi-sejenis-web-crawler-untuk-mengambil-data-dari-website-lain/</guid>
		<description><![CDATA[Saya lagi mengerjakan aplikasi torrent search engine dimana aplikasi ini akan melakukan pencarian ke beberapa torrent indexer pada saat user memberi input keyword torrent yang ingin di cari. Intinya aplikasi ini akan mengambil data dari website lain dan menyajikannya ke user langsung dari aplikasi tersebut.Saya ingin menceritakan beberapa konsep dari aplikasi ini dan class PHP [...]]]></description>
			<content:encoded><![CDATA[<p>Saya lagi mengerjakan aplikasi torrent search engine dimana aplikasi ini akan melakukan pencarian ke beberapa torrent indexer pada saat user memberi input keyword torrent yang ingin di cari. Intinya aplikasi ini akan mengambil data dari website lain dan menyajikannya ke user langsung dari aplikasi tersebut.<br />Saya ingin menceritakan beberapa konsep dari aplikasi ini dan class PHP yang saya gunakan untuk membantu fungsi scrapper pada aplikasi ini. Seperti aplikasi web yang selalu saya bangun dengan Prado maka aplikasi ini juga saya bangun dengan Prado. Prado sangat membantu saya fokus pada logic aplikasi, tidak perlu memusingkan masalah template, caching, dan sebagainya.<br />Konsep kerja dari aplikasi ini adalah sebagai berikut:
<ol>
<li>User memasukkan keyword pada form search di aplikasi</li>
<li>Sesuai dengan keyword user maka aplikasi meload halaman results untuk menampilkan hasil pencarian.</li>
<li>Pada halaman results aplikasi akan melakukan AJAX callback ke aplikasi untuk memanggil fungsi screen scrapper untuk mengambil data dari torrent site indexer. Dengan AJAX maka aplikasi dapat mensimulasikan multi threading pada aplikasi.</li>
<li>Aplikasi akan mengambil data sesuai keyword dari torrent indexer seperti mininova, btjungkie, isohunt, dan lain-lain dengan menggunakan class CURL. CURL adalah class PHP yang berfungsi seperti browser sehingga kita dapat mengambil output HTML dari suatu website.</li>
<li>Hasil pengambilan HTML output akan diparser dimana parser harus dibuat masing-masing untuk tiap website yang ingin diambil datanya. Parser menggunakan phpQuery yang merupakan class PHP yang dibangun diatas class DOM untuk mengakses HTML DOM pada hasil HTML output dari website yang diambil datanya.</li>
<li>Hasil parser akan menyimpan data di database untuk digabungkan dengan semua hasil parser dari tiap web yang diambil datanya. Selain itu hasil juga akan menjadi cache bila ada user memasukkan keyword yang sama dalam jangka waktu tertentu.</li>
<li>Setelah proses parser selesai, aplikasi akan melakukan pencarian ke dalam database yang telah di index dengan full-text indexing sehingga memudahkan pencarian.</li>
<li>Hasil pencarian di database ditampilkan kepada user pada halaman results.</li>
</ol>
<p>Jadi dalam aplikasi ini ada  3 class yang berperan penting yaitu CURL, phpQuery, dan DOM. CURL dan DOM merupakan extension default PHP5 sedangkan phpQuery merupakan class tambahan yang merupakan ported jQuery dari javascript ke PHP untuk manipulasi DOM. <br />Saya juga sempat melakukan perbandingan performance antara DOM, phpQuery, Simple HTML Parser, dan DOMXPath dan hasilnya adalah phpQuery lebih cepat dari lainnya. Selain lebih mudah melakukan parsing ternyata performancenya juga cukup baik. Hasil penelusuran saya juga menemukan bahwa untuk pengambilan content dari website lain lebih baik menggunakan CURL dari pada fungsi lainnya seperti fsockopen. Hal ini merupakan hasil test dari developer lain, dan saya tidak melakukan test langsung karena beberapa developer juga meng-amini hal ini.</p>
<p>Aplikasi semacam ini bisa digunakan untuk aplikasi lain seperti mengambil data kurs dari website bank, aggregator blog atau website berita, dan juga pembaca rss feed. Semua tergantung kreatifitas anda.</p>
<img src="http://www.thinkrooms.com/?ak_action=api_record_view&id=76&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.thinkrooms.com/2008/08/25/screen-scrapper-aplikasi-sejenis-web-crawler-untuk-mengambil-data-dari-website-lain/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Optimalisasi kode program PHP</title>
		<link>http://www.thinkrooms.com/2008/07/08/optimalisasi-kode-program-php/</link>
		<comments>http://www.thinkrooms.com/2008/07/08/optimalisasi-kode-program-php/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 03:28:59 +0000</pubDate>
		<dc:creator>tyohan</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[Recommended]]></category>
		<category><![CDATA[Web Developer]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.thinkrooms.com/?p=69</guid>
		<description><![CDATA[Kita sering menggunakan looping dalam aplikasi buatan kita seperti menggunakan for, while, foreach, dan sebagainya. Tahukan anda pemilihan penggunaan metode looping akan mempengaruhi kecepatan eksekusi aplikasi anda. Anda mungkintidak pernah memikirkan pentingnya optimalisasi kode program karena belum merasakan perbedaan berarti antara kode yang teroptimasi dan tidak. Namun bila anda telah merilis aplikasi anda dan digunakan [...]]]></description>
			<content:encoded><![CDATA[<p>Kita sering menggunakan looping dalam aplikasi buatan kita seperti menggunakan for, while, foreach, dan sebagainya. Tahukan anda pemilihan penggunaan metode looping akan mempengaruhi kecepatan eksekusi aplikasi anda. Anda mungkintidak pernah memikirkan pentingnya optimalisasi kode program karena belum merasakan perbedaan berarti antara kode yang teroptimasi dan tidak. Namun bila anda telah merilis aplikasi anda dan digunakan oleh sangat banyak pengguna maka optimasi aplikasi pasti akan sangat diperlukan.</p>
<p>Resource server akan sangat terbebani oleh aplikasi yang kodenya tidak dioptimalisasi. Banyak orang yang mengatakan bahwa penggunaan framework akan membuat kinerja aplikasi akan berkurang dan resource yang digunakan akan sangat besar dibandingkan tanpa framework. Hal ini tidak 100% benar karena menurut saya performance suatu aplikasi tergantung optimalisasi yang dilakukan. Penggunaan framework memang akan lebih membebani server namun dengan optimalisasi aplikasi maka hal ini bukan suatu kendala. Misalnya penggunaan cache, dengan cache maka isu OOP yang dianut framework yang katanya butuh resource lebih besar hanya berlaku  pada saat awal loading. Load berikutnya resource yang digunakan akan sangat berkurang karena penggunaan cache.</p>
<p>Selain teknik optimalisasi cache ada beragam optimalisasi aplikasi yang dapat kita lakukan. Salah satunya optimalisasi kode program. Optimalisasi kode program akan membantu mengurangi beban server dalam eksekusi kode program pada saat menerima request yang berlebihan. Optimalisasi kode program PHP merupakan optimalisasi yang sangat dasar dalam perancangan aplikasi web. Setelah kode aplikasi di optimalisasi maka dapat kita lanjutkan ke optimalisasi database, dan web server. Berikut adalah beberapa panduan untuk mengoptimalkan kode PHP anda:</p>
<ul>
<li>Sebisa mungkin deklarasikan method dalam class sebagai statik</li>
<li>Gunakan echo dibandingkan print untuk mengirimkan output ke browser.</li>
<li>Gunakan
<pre>echo ‘a’;
echo ‘b’;
echo ‘c’;</pre>
<p>Dibandingkan menggunakan</p>
<pre>$string='a'.'b'.'c';
echo $string;</pre>
</li>
<li>Gunakan foreach dibanding menggunakan while untuk penelusuran.</li>
<li>Unset variable yang telah selesai digunakan terutama variable yang membutuhkan memori besar seperti array.</li>
<li>Hindari penggunakan magic seperti _get, _set, _autoload</li>
<li>Penggunaan require_once membutuhkan resource cukup besar, jadi pergunakan seperlunya.</li>
<li>Gunakan fullpath untuk include atau require karena bila menggunakan variable untuk path misalnya OS Path maka diperlukan waktu tambahan untuk parsing variable.</li>
<li>Hindari penggunaan regex bila masih bisa menggunakan function string seperti srncasecmp, strpbrk, stripos, dan lain-lain.</li>
<li>Untuk perbandingan variable, === akan lebih baik dibandingkan hanya ==.</li>
<li>Tutup koneksi database bila sudah selesai digunakan.</li>
<li>Hindari ouput error sebisa mungkin dalam aplikasi rilis sebaiknya hanya digunakan dalam debugging aplikasi;</li>
<li>Jangan menggunakan fungsi dalam statement loop misalnya for ($x=0; $x &lt; count($array); $x)  karena akan memanggil fungsi untuk setiap loop.</li>
<li>Gunakan kutip untuk mengakses array. row[’id’] is 7  lebih cepat dari $row[id].</li>
<li>Hindari penggunaan variable global.</li>
<li>Gunakan single kutip dibanding menggunakan double kutip karena penggunaan double kutip akan mengecek variable di dalam string. Misalnya echo ‘Isi A=’.$a; lebih cepat dibandingkan echo “Isi A=$a”;</li>
<li>echo $a,$b,$c lebih cepat daripada echo $a.$b.$c</li>
<li>Sebisa mungkin gunakan html dari pada php untuk ouput. Misalnya
<pre>&lt;?php if($a):?&gt;

   &lt;p&gt;A benar&lt;/p&gt;
&lt;?php else:?&gt;

   &lt;p&gt;A salah&lt;/p&gt;
&lt;?php endif; ?&gt;</pre>
<p>Lebih baik dibandingkan</p>
<pre>&lt;?php
if($a)
	echo '&lt;p&gt; A benar &lt;/p&gt;';
else
	echo '&lt;p&gt; B salah &lt;/p&gt;;
?&gt;</pre>
</li>
<li>Gunakan pengecekan variable sebelum mengecek tipe variable. Karena pengecekan tipe variable yang tidak ada akan memakan resource lebih banyak.</li>
<li>++$i lebih baik daripada $i++</li>
<li>gunakan lowercase karena true lebih baik dariTRUE false lebih baik dari FALSE dan null lebih baik dari NULL</li>
<li>$var===null lebih baik daripada  is_null($var)</li>
<li>Untuk memanggil fungsi dalam class maka sebaiknya gunakan reference operator &amp;
<pre>$a= new ClassA;
$b=&amp; $a-&gt;fungsiA();</pre>
<p>akan lebih baik dibandingkan</p>
<pre>$a= new ClassA;
$b=$a-&gt;fungsiA();</pre>
</li>
</ul>
<p>Daftar diatas bukan nilai mutlak dari performance aplikasi anda karena perkembangan PHP memungkinkan optimasi kode program akan lebih baik. Sebaiknya selalu gunakan PHP versi terakhir karena akan selalu ada peningkatan performance. Contohnya PHP5 lebih lebih cepat dibandingkan PHP4. Beberapa panduan diatas hanya sekedar referensi untuk optimalisasi saja, terkadang untuk memudahkan maka kita tidak mengikuti panduan diatas. Hal itu tergantung pilihan dan kebutuhan anda sebagai web developer.</p>
<h3>Referensi:</h3>
<p><a title="http://reinholdweber.com/?p=3" href="http://reinholdweber.com/?p=3">http://reinholdweber.com/?p=3</a></p>
<p><a title="http://www.phpbench.com/" href="http://www.phpbench.com/">http://www.phpbench.com/</a></p>
<p><a title="http://phplens.com/lens/php-book/optimizing-debugging-php.php" href="http://phplens.com/lens/php-book/optimizing-debugging-php.php">http://phplens.com/lens/php-book/optimizing-debugging-php.php</a></p>
<p><a title="http://www.pradosoft.com/wiki/index.php/Coding_Conventions_and_Guidelines" href="http://www.pradosoft.com/wiki/index.php/Coding_Conventions_and_Guidelines">http://www.pradosoft.com/wiki/index.php/Coding_Conventions_and_Guidelines</a></p>
<img src="http://www.thinkrooms.com/?ak_action=api_record_view&id=69&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.thinkrooms.com/2008/07/08/optimalisasi-kode-program-php/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>12 Langkah Menjadi Seorang Web Developer</title>
		<link>http://www.thinkrooms.com/2008/06/23/12-langkah-menjadi-seorang-web-developer/</link>
		<comments>http://www.thinkrooms.com/2008/06/23/12-langkah-menjadi-seorang-web-developer/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 16:06:37 +0000</pubDate>
		<dc:creator>tyohan</dc:creator>
				<category><![CDATA[Recommended]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Web Developer]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://thinkrooms.com/?p=62</guid>
		<description><![CDATA[Tentu anda sudah mengenal apa web itu. Namun mungkin ada yang belum mengerti bagaimana sih membuat web tersebut. Apa yang harus dipelajari untuk menjadi web developer, dan bagaimana untuk hidup dari profesi web developer. Saya mencoba membuat daftar langkah-langkah yang dapat anda tempuh untuk menjadi seorang web developer berdasarkan pengalaman saya sebagai web developer. Semoga [...]]]></description>
			<content:encoded><![CDATA[<p>Tentu anda sudah mengenal apa web itu. Namun mungkin ada yang belum mengerti bagaimana sih membuat web tersebut. Apa yang harus dipelajari untuk menjadi web developer, dan bagaimana untuk hidup dari profesi web developer. Saya mencoba membuat daftar langkah-langkah yang dapat anda tempuh untuk menjadi seorang web developer berdasarkan pengalaman saya sebagai web developer. Semoga daftar ini dapat membantu anda untuk memulai karir sebagai web developer. Tidak panjang lebar inilah langkah-langkah menjadi seorang web developer: <span id="more-62"></span></p>
<ol>
<li>
<div><strong>Belajar bahasa pemrograman web</strong>, untuk memulainya tentu anda harus menguasai bahasa pemrograman web. Dan bahasa yang dikuasai tidak cukup 1 bahasa pemrograman saja karena web dibangun diatas beberapa faktor pendukung.  Bahasa yang sebaiknya anda pelajari untuk menjadi web developer adalah:</div>
<ul>
<li>HTML, merupakan bahasa pemrograman web paling dasar dan mutlak harus dikuasai. HTML adalah bahasa untuk menciptakan tampilan web yang anda lihat di browser. HTML membangun struktur tampilan web seperti header, content, footer, menu, dan sebagainya. Namun untuk menciptakan tampilan yang lebih baik tidak cukup dengan HTML saja masih diperlukan bahasa lain untuk menciptakan tampilan yang lebih baik.</li>
<li>CSS, inilah bahasa pelengkap HTML. Tanpa CSS kita tak akan dapat menciptakan tampilan yang indah. CSS adalah bahasa yang mengatur layout dan tampilan dari web tersebut misalnya warna background, tulisan, font, ukuran, dan sebagainya. Dengan kombinasi HTML dan CSS maka kita dapat menciptakan tampilan yang baik dan indah.</li>
<li>Bahasa scripting web misalnya PHP, ASP, ColdFusion, Python, dan lainnya. Bahasa pemrograman ini adalah bahasa yang akan kita gunakan untuk membangun aplikasi web. Kalau tadi HTML dan CSS merupakan pembangun tampilan dari web tersebut maka bahasa scripting ini adalah pengontrol logika aplikasi web. Bahasa ini menghubungkan aplikasi web kita dengan database dan mengolah input output dari aplikasi kita.  Sebaiknya anda memilih salah satu bahasa untuk didalami. Saya menyarankan menggunakan PHP karena bahasa inilah yang paling banyak digunakan untuk membuat aplikasi web. Dengan sifatnya yang terbuka dan bebas biaya maka kita dengan mudah mempelajari dan membuat aplikasi web dengan mudah. Kelengkapan dokumentasi dan tutorial PHP juga sangat banyak sehingga anda tidak akan kesulitan mempelajari bahasa yang satu ini.</li>
<li>SQL, merupakan bahasa scripting database. Database adalah aplikasi pengolah data yang menyimpan data untuk digunakan bersama aplikasi web kita. Database ada bermacam-macam misalnya MySQL, SQLite, Oracle, PostgreSQL, SQL Server, dan database lainnya. Sangat disarankan untuk memilih salah satu untuk didalami. Walaupun SQL merupakan standar bahasa scripting database namun dengan mempelajari salah satu scripting database yang ada maka kita akan dimudahkan dalam menyimpan, mengelola, dan memberikan output data dengan tersedianya fungsi-fungsi yang akan membantu anda bekerja dengan database.</li>
<li>Javascript, bahasa scripting yang berjalan di browser.  Bahasa ini tidak mutlak dipelajari, namun kalau anda ingin membuat web dengan efek animasi, dan web yang lebih interaktif maka javascript akan membantu anda. Dibandingkan dengan flash untuk membuat efek tertentu, saya lebih memilih Javascript. Kenapa, karena Flash masih memerlukan installasi plugin sedangkan Javascript sudah didukung secara default oleh browser modern.</li>
</ul>
</li>
<li><strong>Pelajari teknik penyelesaian kasus-kasus pemrograman web</strong>. Misalnya bagaimana pemrograman yang berhubungan dengan tanggal, bagaimana menghubungkan web dengan aplikasi lainnya, bagaimana mengakses database, dan beragam teknik lainnya. Dengan mengetahui teknik pemrograman dan penyelesaian kasus-kasus pemrograman web maka anda dapat lebih efektif dalam pemrograman aplikasi web anda.</li>
<li><strong>Pelajari metode pengembangan web yang baik</strong>. Ada banyak metode pengembangan seperti RUP, Agile, dan USDP tapi pada dasarnya mengfokuskan pada analisa, perancangan, pengembangan, dan pengujian. Lakukan pengembangan aplikasi dengan tahapan-tahapan diatas. Lakukan analisa apa yang diperlukan oleh aplikasi ini, kemudian rancang terlebih dahulu aplikasi anda sebelum melakukan coding, lakukan pengembangan atau coding, dan uji coba terlebih dahulu sebelum dirilis atau didelivery. Anda dapat kembali ketahap sebelumnya bila diperlukan. Yang penting, tentukan sendiri metode yang paling baik seusai dengan diri anda.</li>
<li><strong>Belajar mengolah gambar</strong>. Buat apa? Karena dengan gambar maka kita dapat memberikan informasi lebih cepat dan efektif dibandingkan dengan mendeskripsikan dalam text yang panjang. Cukup pelajari Adobe Photoshop atau Adobe Firework yang merupakan software paling umum untuk keperluan gambar web. Pelajari bagaimana membuat gambar seperti icon, background, patern, dan gambar lainnya. Sebenarnya bukan merupakan keharusan karena untuk menciptakan gambar untuk tampilan web karena hal ini lebih cenderung merupakan pekerjaan web designer. Namun bila anda bs membuat gambar untuk web maka akan lebih membantu dibandingkan anda harus meminta tolong teman anda untuk keperluan gambar web anda.</li>
<li><strong>Gunakan framework</strong>, framework merupakan sekumpulan fungsi dan library yang dapat memudahkan pemrograman anda. Gunakan framework sesuai dengan bahasa pemrograman anda. Misalnya ASP menggunakan .NET Framework. Ruby dengan Rails Framework, Python dengan Django Framework, dan PHP yang lebih banyak lagi seperti Prado, Symfony, CakePHP, dan framework lainnya. Lakukan riset dan tentukan pilihan anda framework mana yang akan anda gunakan dan dalami framework tersebut. Jangan terlalu banyak berpindah-pindah framework karena anda tidak akan memperoleh manfaat maksimal karena pemahaman yang terpecah-pecah. Jadi tentukan framework pilihan anda sesuai minat, dan teknik yang anda senangi.</li>
<li><strong>Pelajari teknik-teknik mengoptimalkan aplikasi anda</strong>. Agar aplikasi anda dapat berjalan lebih cepat dan responsif maka anda harus dapat melakukan tuning atau optimalisasi. Pelajari teknik pemrograman web yang baik, pemecahan masalah programming yang efektif, tuning dan optimalisasi database, serta optimasi web server.</li>
<li><strong>Pelajari web server</strong>, akan sangat bermanfaat bila anda mempelajari web server agar anda dapat mengetahui bagaimana menjalankan aplikasi anda di web server. Atau bagaimana cara mengoptimalkan aplikasi di web server. Misalnya penggunaan module caching seperti APC, eAccelerator, dan sebagainya. Atau penggunaan file .htaccess untuk menciptakan friendly URL atau URL yang lebih enak dibaca. Dengan mempelajari web server maka anda dapat mengoptimalkan dan menambahkan feature aplikasi anda di server.</li>
<li><strong>Pelajari penggunaan control panel hosting</strong>. Karena anda akan banyak berhubungan dengan control panel bila anda menyewa hosting untuk web anda. Control panel yang banyak digunakan antara lain Cpanel, Pleks, ISPConfig, dan sebagainya. Dengan memahami penggunaan control panel maka anda dapat mengoptimalkan aplikasi anda di provider hosting anda.</li>
<li><strong>Ikuti perkembangan teknologi web terbaru</strong>. Teknologi web selalu berkembang misalnya munculnya teknologi RSS, PODCasting, dan teknologi lainnya. Pelajari bagaimana membuat dan menggunakan teknologi tersebut di aplikasi anda. Karena aplikasi yang ketinggalan jaman akan ditinggalkan penggunanya juga.</li>
<li><strong>Pelajari manajemen proyek</strong>. Suatu pengembangan aplikasi merupakan suatu proyek yang harus di atur, direncanakan, dan dilakukan dengan baik. Dengan mempelajari manajemen proyek maka anda dapat melakukan kolaborasi dengan yang lain dalam mengembangkan aplikasi.  Anda juga dapat memperoleh efektifitas dan efisiensi waktu dalam menyelesaikan suatu proyek.</li>
<li><strong>Untuk meningkatkan kemampuan anda, selalu asah kemampuan anda dengan mengerjakan aplikasi web</strong>. Entah pekerjaan, atau proyek pribadi. Karena makin banyak aplikasi yang anda buat maka kemampuan anda akan makin baik. Kembangkan ide anda dan realisasikan menjadi suatu aplikasi.</li>
<li>Yang terakhir, jangan mau selalu menjadi web developer yang hanya mengerjakan proyek orang lain. <strong>Anda harus membuat suatu aplikasi yang dapat dijadikan produk atau layanan anda sebagai wujud kemampuan anda</strong>. Produk dan layanan ini dapat anda jual sehingga anda dapat memperoleh hasil dari kemampuan anda dan menikmati hasilnya. Dibandingkan dengan mengerjakan proyek orang lain secara terus-terusan dan dibayar per-proyek tentu akan lebih baik bila anda mengerjakan 1 produk namun anda memperoleh hasil terus-terusan dengan syarat produk anda memiliki nilai jual yang baik.</li>
</ol>
<p>Itulah langkah-langkah dasar untuk menjadi seorang web developer menurut pengalaman saya. Langkah diatas tidaklah cukup, hanya langkah dasar saja. Semoga daftar diatas dapat menjadi pembimbing anda dan bahkan dapat menjadikan anda web developer yang lebih baik lagi. Anda harus terus belajar dan berlatih terus serta selalu menerima perkembangan yang ada agar kemampuan anda terus terasah.</p>
<img src="http://www.thinkrooms.com/?ak_action=api_record_view&id=62&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.thinkrooms.com/2008/06/23/12-langkah-menjadi-seorang-web-developer/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Pemrograman ajax yang baik</title>
		<link>http://www.thinkrooms.com/2008/05/28/pemrograman-ajax-yang-baik/</link>
		<comments>http://www.thinkrooms.com/2008/05/28/pemrograman-ajax-yang-baik/#comments</comments>
		<pubDate>Wed, 28 May 2008 15:53:37 +0000</pubDate>
		<dc:creator>tyohan</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[Web Developer]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://thinkrooms.com/?p=61</guid>
		<description><![CDATA[Tulisan ini terinspirasi dari tulisan saya di sini dimana salah satu pembaca berkomentar bahwa ajax tidaklah seperti yang saya katakan. Memang benar bahwa kita tidak dapat menilai bahwa suatu teknologi bermanfaat atau tidak hanya dengan melihat 2 hasil saja. Sebenarnya ditulias tersebut saya hanya menumpahkan kekesalan saya akan susahnya mengakses email saya di Yahoo dan [...]]]></description>
			<content:encoded><![CDATA[<p>Tulisan ini terinspirasi dari tulisan saya di <a href="http://thinkrooms.com/2008/04/02/web-20-malah-menyusahkan-pengguna-internet-lambat/">sini</a> dimana salah satu pembaca berkomentar bahwa ajax tidaklah seperti yang saya katakan. Memang benar bahwa kita tidak dapat menilai bahwa suatu teknologi bermanfaat atau tidak hanya dengan melihat 2 hasil saja. Sebenarnya ditulias tersebut saya hanya menumpahkan kekesalan saya akan susahnya mengakses email saya di Yahoo dan Gmail yang secara default mengarahkan penggunanya ke tampilan full ajax. Terima kasih banyak atas tanggapannya. Untuk itu saya ingin menuliskan pendapat saya mengenai penggunaan ajax yang baik.</p>
<p>Ajax merupakan teknologi web terbaru yang memungkinkan interaksi pengguna dan web lebih aktraktif dan juga lebih efisien dalam tranfer data Kenapa? Karena dengan ajax kita dapat me-refresh atau me-load sebagian konten yang perlu diupdate.dengan demikian bagian web lainnya seperti header, footer, sidebar, dan bagian lainnya tidak perlu di load ulang. Kita hanya meload konten yang berubah saja. Dengan demikian akan lebih efisien dalam transfer data, aplikasi lebih responsif, dan pengguna lebih mudah berinteraksi dengan web layaknya aplikasi desktop. Pada teknologi web sebelum ajax untuk menampilkan konten yang berubah kita harus meload halaman web secara keseluruhan tanpa peduli bahwa ada bagian web yang kontennya tidak berubah. Namun ada beberapa kekurangan teknologi ajax yang untuk dapat bekerja harus menggunakan browser dengan fungsi javascript yang di aktifkan. Tanpa javascript, ajax tidak akan berjalan. Kekurangan teknologi ajax tersebut adalah:</p>
<ul>
<li>Konten yang ditampilkan dengan ajax tidak dapat dibaca oleh search engine. Hal ini karena javascript hanya aktif di browser, bot search engine tidak dapat menjalankan javascript.  Padahal kebanyakan web memperoleh pengunjung baru dari search engine. Akibatnya konten kita tidak dindex di search engine dan sulit untuk dicari dari search engine.</li>
<li>Hanya dapat berjalan di browser terbaru. Dulu saya membuat aplikasi dengan fitur ajax untuk digunakan internal di kantor saya bekerja. Ternyata banyak komputer kantor masih menggunakan Windows XP tanpa service pack 2. Hasilnya dengan Internet Explorer 6 yang belum mendukung ajax maka aplikasi saya tidak dapat digunakan di beberapa komputer. Melakukan instalasi service pack 2 atau firefox terbaru bukanlah pekerjaan mudah dengan jumlah komputer yang sangat banyak mencapai ratusan.</li>
<li>Web yang menggunakan ajax akan kesulitan untuk ditampilkan di perangkat mobile. Ada banyak pengguna internet menggunakan handphone untuk mengakses internet saat sedang santai. Browser handphone hampir 80% tidak mendukung javascript yang artinya ajax tidak dapat berfungsi bila ditampilkan pada browser handphone.</li>
</ul>
<p>Karena itu penggunaan ajax yang berlebihan dan tidak pada tempatnya akan merugikan kita para developer karena pengguna atau pengunjung web kita akan kesulitan mengakses dan menggunakan web yang kita kembangkan tersebut. Untuk itu inilah tips dan trik menggunakan ajax secara tepat pada aplikasi atau website anda:</p>
<ol>
<li>Pikirkan target pengguna anda, bila sasaran anda adalah pengguna handphone misalnya untuk berjualan konten mobile maka lupakan untuk menggunakan ajax. Karena pengguna atau pengunjung anda  tidak dapat mengaksesnya dengan baik. Apa gunanya anda mengembangkan aplikasi atau web anda tanpa ada pengguna.</li>
<li>Gunakan ajax hanya untuk konten yang betul-betul dinamis alias sangat sering berubah. Jangan gunakan pada konten yang jarang berubah misalnya konten pada blog. Tulisan pada blog biasanya sangat jarang diubah setelah diposting. Biasanya hanya update kecil untuk memperbaiki beberapa tulisan. Walaupun secara konsep, dengan template dan layout yang sama setiap posting maka memungkinkan penggunaan ajax namun dalam hal ini ajax merugikan anda. Karena konten blog anda tidak terbaca oleh search engine dan pengunjung akan kesulitan menemukan tulisan anda di search engine. Contoh konten yang sering berubah adalah tampilan livescore.com yang secara otomatis mereload hasil pertandingan olahraga secara berkala dalam rentang waktu tertentu. Hasilnya score dapat diupdate tanpa mereload tampilan website secara keseluruhan.</li>
<li>Penggunaan pada submit form atau upload file. Contohnya anda bisa menggunakan ajax misalnya pada pengisian komentar dan diload dengan ajax untuk menampilkan komentar yang baru anda submit. Atau upload file dengan ajax tanpa harus mereload keseluruhan website.</li>
<li>Pada aplikasi web biasanya tidak membutuhkan akses search engine, karena hanya ditujukan kepada pengguna aplikasi. Karena itu penggunaan ajax lebih flexibel. Anda dapat menggunakan ajax dimanapun pada aplikasi anda karena biasanya aplikasi web memiliki konten yang sangat dinamis. Selain itu aplikasi lebih memerlukan respon cepat dari interaksi pengguna yang bisa dilakukan dengan ajax. Namun yang perlu diingat, sebaiknya jangan melakukan load objek secara berlebihan yang kemudian kita dapat dengan mudah mengupdate kontennya dengan ajax dan menampilkannya dengan javascript seperti tulisan saya di <a href="http://thinkrooms.com/2008/04/02/web-20-malah-menyusahkan-pengguna-internet-lambat/">sebelumnya</a> mengenai gmail dan yahoo mail yang terlalu berat diakses pada akses awal. Perhatikan selalu ukuran halaman web anda, karena walaupun tampilan lebih responsif namun pada saat load awal akan memakan waktu yang cukup lama.</li>
<li>Gunakan selalu indikator loading atau status dari ajax. Ajax melakukan request atau biasa disebut callback tanpa memberikan indikator status dengan sendirinya. Programmer harus membuatnya agar mampu memberitahukan apakah request atau callback berhasil, sedang loading, atau gagal. Dengan demikian pengguna tidak melakukan klik atau request berlebihan karena tidak mengetahui apakah dia telah melakukan request atau belum dan juga pengguna tidak menunggu terlalu lama tanpa mengetahui hasilnya.</li>
</ol>
<p>Itulah pendapat saya mengenai pemrograman web dengan ajax. Ada yang tidak setuju? Atau mau menambahkan? Silakan berkomentar, saya tunggu agar artikel ini lebih baik lagi. Terima kasih.</p>
<img src="http://www.thinkrooms.com/?ak_action=api_record_view&id=61&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.thinkrooms.com/2008/05/28/pemrograman-ajax-yang-baik/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.489 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2010-07-31 05:13:22 -->
