<?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>夢の翼 &#187; リズキ</title>
	<atom:link href="http://neo.rizkhey.net/author/admin/feed" rel="self" type="application/rss+xml" />
	<link>http://neo.rizkhey.net</link>
	<description>~ Wings of Dream ~</description>
	<lastBuildDate>Wed, 08 Feb 2012 14:57:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>[newb] try mod. UI &#8211; Android OS</title>
		<link>http://neo.rizkhey.net/2012/02/4310-newb-try-mod-ui-android-os</link>
		<comments>http://neo.rizkhey.net/2012/02/4310-newb-try-mod-ui-android-os#comments</comments>
		<pubDate>Wed, 08 Feb 2012 13:52:12 +0000</pubDate>
		<dc:creator>リズキ</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Android 2.3]]></category>
		<category><![CDATA[Sony Ericson]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[Xperia Arc]]></category>

		<guid isPermaLink="false">http://neo.rizkhey.net/?p=4310</guid>
		<description><![CDATA[My first time making themes for Android, It's using custom launcher GOLauncher EX, using idea from Simplicity and Windows Phone 7 Metro UI]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Modifying UI(<em>User Interface</em>) mungkin sudah saya di masa lalu saat menggunakan Linux (Ubuntu 9.x), tetapi memodifikasi tampilan UI untuk perangkat mobile, ini adalah pertama kali saya lakukan. Paling tidak karena <em>cellphone</em> saya yang sekarang merupakan <em>cellphone</em> pertama kali yang bisa dimodifikasi UI-nya.</p>
<blockquote style="float: right; font-size: 1.3em; width: 250px; margin-right: 10px;"><p>For user, UI mod. is very anticipated. But for maker, it&#8217;s different</p></blockquote>
<p style="text-align: justify;">Dari sisi user, tentu user sangat senang. Apalagi pada kaum muda yang cukup &#8220;senang-ngoprek&#8221;, tetapi dari sisi developer, mereka menyebutnya ini adalah bencana. Why? Karena dengan mudahnya mengubah UI, sehingga sebuah produk tidak memiliki ciri unik(yang selalu ada di produk tersebut) untuk membedakan dengan yang lain. For example, Windows(PC)ciri khususnya adalah taskbar &amp; start menu, kemudian semenjak versi Windows Vista terdapat tampilan aero. Atau MacOSX yang selelu bertampilan minimalis dengan warna dominan putih-abu-abu(ga cuman OSX tapi sampai iOS juga ber cirikas sama). Untuk user mungkin hal ini sangat membosankan karena user ingin tampil berbeda satu denan yang lainnya, tetapi untuk produsen pembuat brand-nya merasa itu bukan hal yang menyenangkan karena band ciri khas dari si produsen tidak bisa muncul karena ditutupi oleh modifikasi UI dari sisi user.</p>
<p style="text-align: justify;">OK whatever with that, since I&#8217;m user not the maker of Android <img src='http://neo.rizkhey.net/smilies/yahoo_bigsmile.gif' alt='&#58;&#68;' class='wp-smiley' width='18' height='18' title='&#58;&#68;' /> . Hasil belajar otodidak hal pertama yang harus dimiliki untuk memodifikasi UI dari Android adalah Launcher. FYI I&#8217;m using SonyEricson Xperia Arc. It&#8217;s very slow one for the hi-end smart phone for now. Intinya setelah berkutat seharian, dan mencoba menggunakan</p>
<div id="attachment_4315" class="wp-caption aligncenter" style="width: 460px"><a href="http://neo.rizkhey.net/wp-content/uploads/2012/02/my_anzu.jpg"><img class="size-medium wp-image-4315" title="My Xperia Arc Lock-screen and home screen" src="http://neo.rizkhey.net/wp-content/uploads/2012/02/my_anzu-450x198.jpg" alt="My Xperia Arc Lock-screen and home screen" width="450" height="198" /></a><p class="wp-caption-text">My Xperia Arc Lock-screen and home screen (All image get from DeviantART me Just using it for personal use)</p></div>
<p style="text-align: justify;">Ok, Launcher yang pertama kali saya pakai(dan sampai sekarang saya gunakan) adalah <em>GOLauncher EX</em>. Dari situ lock screen yang saya gunakan juga dari &#8216;GOLocker&#8217; dengan theme &#8220;Metro UI&#8221;(paling kiri).</p>
<div id="attachment_4325" class="wp-caption aligncenter" style="width: 262px"><a href="http://neo.rizkhey.net/wp-content/uploads/2012/02/screenshot_2012-02-08_19521.jpg"><img class="size-medium wp-image-4325" title="My Minimalist Screen" src="http://neo.rizkhey.net/wp-content/uploads/2012/02/screenshot_2012-02-08_19521-252x450.jpg" alt="My Minimalist Screen" width="252" height="450" /></a><p class="wp-caption-text">My Minimalist Screen</p></div>
<p style="text-align: justify;">Untuk layar pertama untuk jam, saya ingin tampil seminimalis mungkin <img src='http://neo.rizkhey.net/smilies/yahoo_bigsmile.gif' alt='&#58;&#68;' class='wp-smiley' width='18' height='18' title='&#58;&#68;' /> . Untuk itu, saya menggunakan &#8220;<em>LED Clock</em>&#8221; dan battery indicator menggunakan &#8220;<em>BattStat</em>&#8220;.  Untuk menu/dock background saya menggunakan image yang saya buat sendiri di Adobe Potoshop(simplenya hanya background transparant berwarna hitam), untuk icon-icon pada dock saya juga membuat icon sendiri dengan bantuan Photoshop.</p>
<div id="attachment_4327" class="wp-caption aligncenter" style="width: 262px"><a href="http://neo.rizkhey.net/wp-content/uploads/2012/02/screenshot_2012-02-08_1952_21.jpg"><img class="size-medium wp-image-4327" title="So full with Tile thumbnail" src="http://neo.rizkhey.net/wp-content/uploads/2012/02/screenshot_2012-02-08_1952_21-252x450.jpg" alt="So full with Tile thumbnail" width="252" height="450" /></a><p class="wp-caption-text">So full with Tile thumbnail, the idea taken from Windows Phone 7 Retro <img src='http://neo.rizkhey.net/smilies/yahoo_smiley.gif' alt='&#58;&#41;' class='wp-smiley' width='18' height='18' title='&#58;&#41;' /></p></div>
<div id="attachment_4326" class="wp-caption aligncenter" style="width: 262px"><a href="http://neo.rizkhey.net/wp-content/uploads/2012/02/screenshot_2012-02-08_1952_11.jpg"><img class="size-medium wp-image-4326" title="Last screen for calendar" src="http://neo.rizkhey.net/wp-content/uploads/2012/02/screenshot_2012-02-08_1952_11-252x450.jpg" alt="Last screen for calendar" width="252" height="450" /></a><p class="wp-caption-text">Last screen for calendar</p></div>
<p style="text-align: justify;">Layar berikutnya penuh dengan Tile Icon, ide ini diambil dari Windows Phone 7.5 Mango(kemarin sempet megang-megang dan coba-coba Nokia Lumia 800). Icon-iconnya saya membuatnya dengan Photoshop, dan untuk memasang ukuran custom di home-screen menggunakan apps. Desktop Visualizer. And last one the same concept at last for half screen <img src='http://neo.rizkhey.net/smilies/yahoo_bigsmile.gif' alt='&#58;&#68;' class='wp-smiley' width='18' height='18' title='&#58;&#68;' />, bwahnya saya butuh melihat kalender dari &#8220;<em>GO Widget</em>&#8221; dengan theme &#8220;<em>Transparency</em>&#8220;.</p>
<p style="text-align: justify;">Simplenya sama seperti di Linux, icon terbuat dari file <em>png</em> atau <em>jpg</em>. mendukung <em>opacity</em> juga terus terang dengan demikian jauh mempermudah pembuatan icon custom-nya <img src='http://neo.rizkhey.net/smilies/yahoo_smiley.gif' alt='&#58;&#41;' class='wp-smiley' width='18' height='18' title='&#58;&#41;' /></p>
<p style="text-align: justify;">Akhirnya that&#8217;s how I make my first themes&#8230; <img src='http://neo.rizkhey.net/smilies/yahoo_smiley.gif' alt='&#58;&#41;' class='wp-smiley' width='18' height='18' title='&#58;&#41;' /></p>
<h2 style="text-align: justify;">Credits:</h2>
<p>Image used on this theme are taken from one or two DeviantArt gallery:</p>
<ul>
<li><a href="http://kurodot.deviantart.com" target="_blank">http://kurodot.deviantart.com</a></li>
<li><a href="http://vivi-s.deviantart.com" target="_blank">http://vivi-s.deviantart.com</a></li>
<li><a href="http://nutcase23.deviantart.com" target="_blank">http://nutcase23.deviantart.com</a></li>
</ul>
<img src="http://neo.rizkhey.net/?ak_action=api_record_view&id=4310&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://neo.rizkhey.net/2012/02/4310-newb-try-mod-ui-android-os/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>End of Hardware era, the beginning of Nendoroid era?</title>
		<link>http://neo.rizkhey.net/2012/02/4294-end-of-hardware-era-the-beginning-of-nendoroid-era</link>
		<comments>http://neo.rizkhey.net/2012/02/4294-end-of-hardware-era-the-beginning-of-nendoroid-era#comments</comments>
		<pubDate>Mon, 06 Feb 2012 04:49:10 +0000</pubDate>
		<dc:creator>リズキ</dc:creator>
				<category><![CDATA[Nendoroids]]></category>
		<category><![CDATA[Anime]]></category>
		<category><![CDATA[Figure]]></category>
		<category><![CDATA[Hatsune Miku]]></category>
		<category><![CDATA[Kosaka Kirino]]></category>
		<category><![CDATA[Lucky Star OVA]]></category>
		<category><![CDATA[Nendoroid]]></category>
		<category><![CDATA[OreImo]]></category>

		<guid isPermaLink="false">http://neo.rizkhey.net/?p=4294</guid>
		<description><![CDATA[Sudah lama saya tidak bermain hardware PC, mugnkin bosan, mungkin sudah eneg dan mungkin tak ada waktu. Saya pikir itu adalah hal yang sangat baik mengingat akhirnya saya bisa terlepas dari ketergantungan (  ) yang sangat menguras uang. Tetapi sepertinya tidak 
Semenjak dulu rasanya saya ingin memiliki action figure, tetapi saat itu keadaan ekonomi [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_4298" class="wp-caption aligncenter" style="width: 460px"><a href="http://neo.rizkhey.net/wp-content/uploads/2012/02/DSC_0091.jpg"><img class="size-medium wp-image-4298" title="My very first Nendoroid" src="http://neo.rizkhey.net/wp-content/uploads/2012/02/DSC_0091-450x337.jpg" alt="My very first Nendoroid" width="450" height="337" /></a><p class="wp-caption-text">My very first Nendoroid</p></div>
<p style="text-align: justify;">Sudah lama saya tidak bermain hardware PC, mugnkin bosan, mungkin sudah eneg dan mungkin tak ada waktu. Saya pikir itu adalah hal yang sangat baik mengingat akhirnya saya bisa terlepas dari ketergantungan ( <img src='http://neo.rizkhey.net/smilies/yahoo_tongue.gif' alt='&#58;&#80;' class='wp-smiley' width='18' height='18' title='&#58;&#80;' /> ) yang sangat menguras uang. Tetapi sepertinya tidak <img src='http://neo.rizkhey.net/smilies/yahoo_bigsmile.gif' alt='&#58;&#68;' class='wp-smiley' width='18' height='18' title='&#58;&#68;' /></p>
<p style="text-align: justify;">Semenjak dulu rasanya saya ingin memiliki action figure, tetapi saat itu keadaan ekonomi masih tidak mungkin (Karena masih bergantung sama ortu <img src='http://neo.rizkhey.net/smilies/yahoo_tongue.gif' alt='&#58;&#80;' class='wp-smiley' width='18' height='18' title='&#58;&#80;' /> ). Bukan hal lain karena harga Action figure seperti ini jauh lebih mahal dari seri Hi-grade atau bahkan Master grade Gundam Kit Bandai <img src='http://neo.rizkhey.net/smilies/yahoo_bigsmile.gif' alt='&#58;&#68;' class='wp-smiley' width='18' height='18' title='&#58;&#68;' /> . Tetapi dengan kondisi sekarang, saya mulai bisa membelinya semenjak sudah bisa cari duit sendiri ( <img src='http://neo.rizkhey.net/smilies/yahoo_laughloud.gif' alt='&#58;&#41;&#41;' class='wp-smiley' width='18' height='18' title='&#58;&#41;&#41;' /> ).</p>
<p style="text-align: justify;">Salah satu action figure yang ingin saya miliki adalah N<em>endoroid</em>. Nendoroid adalah salah satu jenis action figure yang dibuat &#8220;<em><strong>chibi</strong></em>&#8221; atau di-bonsai <img src='http://neo.rizkhey.net/smilies/yahoo_bigsmile.gif' alt='&#58;&#68;' class='wp-smiley' width='18' height='18' title='&#58;&#68;' /> . Kenapa saya tertarik dengan nendoroid? Simplenya aja, <em>most of them cuter</em> than the figure yang dalam ukuran skala aslinya <img src='http://neo.rizkhey.net/smilies/yahoo_smiley.gif' alt='&#58;&#41;' class='wp-smiley' width='18' height='18' title='&#58;&#41;' /> berikutnya adalah, kebanyakan seperti biasa limited edition. BIasa hanya diproduksi 1000-2000 pcs saja.</p>
<p style="text-align: justify;">Kemarin, kebetulan saya membeli sebuah nendoroid(yang ga sengaja, niatnya cuman mau lihat-lihat saja) yaitu seri Mikkumiku Kagami(versi Cosplay Kagami dalam Lucky Star OVA) yang dibuat oleh Good Smile Company(perusahaan kawakan yang membuat nendoroid, dan figure-figure berkualitas) seharga sekitar Rp 700.000,- . Mahal? Maybe <img src='http://neo.rizkhey.net/smilies/yahoo_tongue.gif' alt='&#58;&#80;' class='wp-smiley' width='18' height='18' title='&#58;&#80;' /></p>
<div id="attachment_4296" class="wp-caption aligncenter" style="width: 359px"><a href="http://neo.rizkhey.net/wp-content/uploads/2012/02/DSC_0094.jpg"><img class="size-medium wp-image-4296" title="Mikkumiku Kagami nendoroid" src="http://neo.rizkhey.net/wp-content/uploads/2012/02/DSC_0094-349x450.jpg" alt="Mikkumiku Kagami Nendoroid" width="349" height="450" /></a><p class="wp-caption-text">Mikkumiku Kagami nendoroid</p></div>
<div id="attachment_4297" class="wp-caption aligncenter" style="width: 460px"><a href="http://neo.rizkhey.net/wp-content/uploads/2012/02/DSC_0096.jpg"><img class="size-medium wp-image-4297" title="Mikkumiku Kagami Nendoroid" src="http://neo.rizkhey.net/wp-content/uploads/2012/02/DSC_0096-450x337.jpg" alt="Mikkumiku Kagami Nendoroid" width="450" height="337" /></a><p class="wp-caption-text">Mikkumiku Kagami Nendoroid</p></div>
<p>Nendoroid ini memiliki 3 face yang bsia diganti dan beberapa aksesoris&#8230; dan akhirnya, nendoroid ini saya hadiahkan kepada adik saya kemarin untuk hadiah ulang tahun <img src='http://neo.rizkhey.net/smilies/yahoo_laughloud.gif' alt='&#58;&#41;&#41;' class='wp-smiley' width='18' height='18' title='&#58;&#41;&#41;' /> kebetulan dia suka Hatsune miku &amp; tahu Lucky Star <img src='http://neo.rizkhey.net/smilies/yahoo_tongue.gif' alt='&#58;&#80;' class='wp-smiley' width='18' height='18' title='&#58;&#80;' /> .</p>
<p>kepergian Nendoroid ini tidak berhenti, kemarin saya akhrinya memutuskan membeli Nendoroid lain yang memang sudah saya inginkan dari dulu(semenjak animenya tayang), Kosaka Kirino.</p>
<p>&nbsp;</p>
<div id="attachment_4300" class="wp-caption aligncenter" style="width: 347px"><a href="http://neo.rizkhey.net/wp-content/uploads/2012/02/gsc_nendoroid_kosaka_kirino03.jpg"><img class="size-medium wp-image-4300" title="Nendoroid Kosaka Kirino re-run" src="http://neo.rizkhey.net/wp-content/uploads/2012/02/gsc_nendoroid_kosaka_kirino03-337x450.jpg" alt="Nendoroid Kosaka Kirino re-run" width="337" height="450" /></a><p class="wp-caption-text">Nendoroid Kosaka Kirino re-run in order... <img src='http://neo.rizkhey.net/smilies/yahoo_bigsmile.gif' alt='&#58;&#68;' class='wp-smiley' width='18' height='18' title='&#58;&#68;' /></p></div>
<p>&nbsp;</p>
<p>And what I waiting for next is this one :</p>
<div id="attachment_4299" class="wp-caption aligncenter" style="width: 444px"><a href="http://neo.rizkhey.net/wp-content/uploads/2012/02/o0515053311768450221.jpg"><img class="size-medium wp-image-4299" title="Nendoroid Snow Miku : Fluffy Coat Ver." src="http://neo.rizkhey.net/wp-content/uploads/2012/02/o0515053311768450221-434x450.jpg" alt="Nendoroid Snow Miku : Fluffy Coat Ver." width="434" height="450" /></a><p class="wp-caption-text">Nendoroid Snow Miku : Fluffy Coat Ver.</p></div>
<p>release date 02-12 on WOnfest 2012 <img src='http://neo.rizkhey.net/smilies/yahoo_bigsmile.gif' alt='&#58;&#68;' class='wp-smiley' width='18' height='18' title='&#58;&#68;' /></p>
<img src="http://neo.rizkhey.net/?ak_action=api_record_view&id=4294&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://neo.rizkhey.net/2012/02/4294-end-of-hardware-era-the-beginning-of-nendoroid-era/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Clone Windows 7 Window Box with HTML &amp; CSS3</title>
		<link>http://neo.rizkhey.net/2012/01/4243-clone-windows-7-window-box-with-html-css3</link>
		<comments>http://neo.rizkhey.net/2012/01/4243-clone-windows-7-window-box-with-html-css3#comments</comments>
		<pubDate>Sat, 28 Jan 2012 14:53:19 +0000</pubDate>
		<dc:creator>リズキ</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://neo.rizkhey.net/?p=4243</guid>
		<description><![CDATA[Apakah Anda sudah pernah melihat Ubuntu Online Tour? Apabila belum mungkin Anda bisa ke website Ubuntu, ada sebuah link di bagian bawah halaman  utama. Tour ini merupakan complete replica Ubuntu dalam HTML &#38; Javascript. Very cool I think 
Semenjak melihat demo tersebut, saya punya keinginan membuat UI yang sama seperti itu yang bisa digunakan dalam [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Apakah Anda sudah pernah melihat Ubuntu Online Tour? Apabila belum mungkin Anda bisa ke website <a href="http://ubuntu.com">Ubuntu</a>, ada sebuah link di bagian bawah halaman  utama. Tour ini merupakan complete replica Ubuntu dalam HTML &amp; Javascript. Very cool I think <img src='http://neo.rizkhey.net/smilies/yahoo_bigsmile.gif' alt='&#58;&#68;' class='wp-smiley' width='18' height='18' title='&#58;&#68;' /></p>
<p style="text-align: justify;">Semenjak melihat demo tersebut, saya punya keinginan membuat UI yang sama seperti itu yang bisa digunakan dalam sebuah web-application. Dengan type seperti ini, User tidak perlu bolak-balik ke beberapa page karena 1 halaman hanya dapat mengakomodir 1 proses. Dengan demikian produktifitas user dapat meningkat. Plus saya tidak usah membuat form-form khusus di setiap page-page tertentu.</p>
<p><div id="attachment_4250" class="wp-caption aligncenter" style="width: 460px"><a href="http://neo.rizkhey.net/wp-content/uploads/2012/01/ilus1.jpg"><img class="size-medium wp-image-4250" title="Tutorial result" src="http://neo.rizkhey.net/wp-content/uploads/2012/01/ilus1-450x345.jpg" alt="Tutorial result" width="450" height="345" /></a><p class="wp-caption-text">Tutorial result</p></div><span id="more-4243"></span></p>
<p style="text-align: justify;">Well untuk pemulaan, kita harus membuat desain windownya terlebih dahulu, untuk itu dalam tutorial kali ini saya akan membuat sebuah box window mirip dengan Windows 7 (walau tak sama 100% <img src='http://neo.rizkhey.net/smilies/yahoo_smiley.gif' alt='&#58;&#41;' class='wp-smiley' width='18' height='18' title='&#58;&#41;' /> ). Ini akan menjadi dasar User interface yang saya ceritakan di atas sekaligus mendemokan artikel tentang CSS3 yang saya tulis sebelumnya (<a title="3 My favorite CSS3" href="http://neo.rizkhey.net/2012/01/4195-3-omy-favorite-css3">3 My Favorite CSS3</a>).</p>
<p style="text-align: justify;">Untuk permulaan buatlah sebuah folder untuk menampung file pekerjaan Anda. Saya menggunakan nama &#8220;design&#8221;, dan di dalamnya buatlah 2 buah folder yitu:</p>
<ul>
<li>images</li>
<li>css</li>
</ul>
<p style="text-align: justify;">Sebelum memulai pekerjaan kita, download-lah file-file images yang dibutuhkan.</p>
<div class="download_box"><a title="Images pack" href="http://neo.rizkhey.net/wp-content/uploads/2012/01/images.zip">Images download</a></div>
<blockquote style="margin-top: 20px;">
<p style="text-align: justify;">The background taken from theme pack waterfall in Windows theme</p>
</blockquote>
<p style="text-align: justify;">Extract semua file di dalam file zip ke folder &#8216;images&#8217;. Setelah itu buatlah sebuah file css di dalam folder &#8220;<em>css</em>&#8221; dengan nama &#8220;<em>main.css</em>&#8220;, dan sebuah file html di folder utama bernama &#8220;index.html&#8221;.</p>
<p style="text-align: justify;">Buka file &#8220;index.html&#8221; dan mulailah menulis tag-tag HTML sbb:</p>
<p>[html]<br />
<!DOCTYPE html><br />
<html><br />
    <head></p>
<link href="css/main.css" type="text/css" rel="stylesheet" />
    </head><br />
    <body></p>
<div class="main_container"></div>
<p>    </body><br />
</html><br />
[/html]</p>
<p>Lalu bukalah &#8220;main.css&#8221; dan tulislah copy-lah beberapa code untuk CSS-nya sbb:<br />
[css]<br />
body {<br />
    /* make little floaty from the top  */<br />
    margin-top: 100px;<br />
    /* set your desktop background  */<br />
    background-image: url(../images/the_bg.jpg);<br />
    /* windows 7 using Segoe UI font but it&#8217;s not<br />
     * very common on other OS, we will using Verdana instead<br />
     */<br />
    font-family: Verdana,Helvetica,sans-serif;<br />
    /* set font size&#8230; well it&#8217;s up to you */<br />
    font-size: 0.8em;<br />
}</p>
<p>/* some oldies browser make blue border in image link<br />
 * this one will remove all blue border<br />
 */<br />
a img{ border: none; }</p>
<p>/* hyperlink global rule */<br />
a:link, a:visited {<br />
    color: #0066CC;<br />
    text-decoration: none;<br />
}</p>
<p>a:hover{<br />
    text-decoration: underline;<br />
}</p>
<p>.clear{<br />
    clear: both;<br />
}<br />
[/css]</p>
<p>Cobalah buka file HTML tersebut di browser, Tampilan akan kurang lebih seperti gambar berikut ini:<br />
<a href="http://neo.rizkhey.net/wp-content/uploads/2012/01/body_css.jpg"><img src="http://neo.rizkhey.net/wp-content/uploads/2012/01/body_css-442x450.jpg" alt="Body CSS" title="Body CSS" width="442" height="450" class="aligncenter size-medium wp-image-4256" /></a></p>
<p>Anda melihat sebuah div:<br />
[html]
<div class="main_container"></div>
<p>[/html]<br />
Dimana semua isi dari window akan ada disana, maka tambahkan CSS  class dengan nama &#8216;main_container&#8217;, lalu isi dengan CSS script sbb:<br />
[css]<br />
/* Main container is the main DIV contained the Window frame */<br />
.main_container {<br />
    /* Magin left-right set auto to make it in center */<br />
    margin-left: auto;<br />
    margin-right: auto; </p>
<p>    /* width of windo we set to 70% */<br />
    width: 70%;<br />
    min-width: 800px;</p>
<p>    /* set background image */<br />
    background-image: url(../images/window_bg.png);</p>
<p>    /* set the border color */<br />
    border: 1px solid #666666;<br />
    /* CSS3 droping shadow for window */<br />
    -moz-box-shadow : 5px 5px 15px #000000;     /* mozilla prefix */<br />
    -webkit-box-shadow : 5px 5px 15px #000000;  /* webkit prefix (chrome/safari) */<br />
    box-shadow : 5px 5px 15px #000000;          /* legal css 3 only */</p>
<p>    /* CSS3 makes rounded box */<br />
    -moz-border-radius: 6px;<br />
    -webkit-border-radius: 6px;<br />
    border-radius: 6px;</p>
<p>    /* make padding to make the border feel real */<br />
    padding: 0px 5px 5px 5px;</p>
<p>}<br />
[/css]</p>
<p>Coba refresh HTML, maka akan mendapati sebuah box di tengah layar seperti berikut:<br />
<a href="http://neo.rizkhey.net/wp-content/uploads/2012/01/container_start.jpg"><img src="http://neo.rizkhey.net/wp-content/uploads/2012/01/container_start-441x450.jpg" alt="Container window" title="Container window" width="441" height="450" class="aligncenter size-medium wp-image-4261" /></a></p>
<p>Dalam pembuatan container ini saya menggunakan 2 efek dari CSS3 yaitu border radius dan juga box-shadow untuk membuat efek round corner dan juga sedikit kosmetik untuk shadow.</p>
<p>Kita lanjut ke langkah selanjutnya. kita akan membuat navigasi dan juga title dari sebuah window. Hasilnya akn seperti di bawah ini.</p>
<p><a href="http://neo.rizkhey.net/wp-content/uploads/2012/01/header.jpg"><img src="http://neo.rizkhey.net/wp-content/uploads/2012/01/header-450x220.jpg" alt="Header navigation" title="Header navigation" width="450" height="220" class="aligncenter size-medium wp-image-4273" /></a></p>
<p>Untuk menghasilkan hasil seperti di atas, kita tambahkan HTML script berikut ini di dalam div ber-class &#8216;<em><strong>main_container</strong></em>&#8216;<br />
[html]<br />
            <!-- MAIN CONTAINER FOR WINDOW START --></p>
<div class="main_container">
<p>            <!-- HEADER WINDOW(TITLE, CLOSE BTN, ETC) START --></p>
<div class="window_header">
<div class="window_title">Window name goes here</div>
<div class="btn_list">
<div><a href="#" title="Minimize"><img alt="Minimize window" src="images/minime.png"></a></div>
<div><a href="#" title="Maximize"><img alt="sign out" src="images/btn.png"></a></div>
<div><a href="#" title="close"><img alt="sign out" src="images/logout.png"></a></div>
</p></div>
<div class="clear"></div>
</p></div>
<p>            <!-- HEADER WINDOW(TITLE, CLOSE BTN, ETC) END --><br />
[/html]</p>
<p>Bagian Header di bungus dalam class &#8216;<em>window_header</em>&#8216; dimana ditempati oleh box untuk title dan juga 3 tombol navigasi(minimize, Maximize, dan Close button). Dan kemudian tambahkan beberapa line CSS berikut ini ke dalam file CSS Anda:</p>
<p>[css]<br />
/* ============= CSS for header area ============== */</p>
<p>/* Window title area, title in upper left */<br />
.window_title{<br />
    font-size: 0.9em;<br />
    padding: 2px;<br />
    color: #fff;<br />
    text-align: center;<br />
    background-image: url(&#8220;../images/darken_bg.png&#8221;);<br />
    border-left: 1px solid #999999;<br />
    border-right: 1px solid #999999;<br />
    border-bottom: 1px solid #999999;<br />
    font-weight: bolder;<br />
    width: 200px;<br />
    float: left;<br />
    /* bottom border make round */<br />
    border-bottom-left-radius: 5px;<br />
    border-bottom-right-radius: 5px;<br />
    /* add little shadow */<br />
    box-shadow: 1px 1px 1px #000000;<br />
}</p>
<p>/* Button List area, like Minimize, max, close button */<br />
.btn_list{<br />
    float: right;<br />
    padding: 0px;<br />
}</p>
<p>/* make the easy effect, just fade it with CSS3 */<br />
.btn_list a:link,.btn_list a:visited{<br />
    opacity : 0.6;<br />
}</p>
<p>/* make the button fully shown */<br />
.btn_list a:hover{<br />
    opacity : 1;<br />
}</p>
<p>.btn_list div{<br />
    float: left;<br />
}<br />
/* ============= CSS for header area END ============== */<br />
[/css]</p>
<p>Saya coba terangkan sedikit CSS-nya:</p>
<blockquote><p><strong>Line 9</strong> Saya memberikan sebuah background hitam transparant  karena pada line 7 saya set warna tulisan menjadi putih(#fff).<br />
<strong>Line 10-12</strong> Bagian title area kita beri border kiri, bwah, dan bagian kanan saja.<br />
<strong>Line 14</strong> Panjang 200px, sesuaikan dengan panjang title Anda.<br />
<strong>Line 15</strong> kita set box agar berada di sebelah kiri(float: left).<br />
<strong>Line 17-18</strong> Kita terapkan <strong>CSS 3</strong>, disini saya memberi efek round-corner di bagian bawah box.<br />
<strong>Line 20</strong> Terakhir, another CSS3, kita beri bayangan tipis di bagian bawah box.</p></blockquote>
<p>Ok, apabila Anda me-refresh browser, Anda mendapati bahwa box bagian title window sudah terbentuk di sebelah kiri, sedangkan untuk bagian kanan belum terbentuk <img src='http://neo.rizkhey.net/smilies/yahoo_tongue.gif' alt='&#58;&#80;' class='wp-smiley' width='18' height='18' title='&#58;&#80;' /></p>
<p>Untuk Class &#8220;btn_list&#8221; kita set agar berada di kanan(float:right), sisanya beberapa class CSS untuk button(dimana saya memilih menggunakan float agar terlihat menempel satu sama lain). Serta efek &#8220;opacity&#8221;(dari CSS3) untuk keadaan normal sehingga terlihat lebih transparant. Dan pada saat hiver, kita set opacity kembali ke nilai 1(dimana nilai opacity 0 berarti akan menghilang sama sekali dan 1 akan menampilkan element seperti pada keadaan normal/no-opacity).</p>
<p>Ok&#8230; next kita akan buat sebuah box untuk navigasi history atau yang dikenal sebagai breadcrumb. Hasilnya kurang lebih nantinya akan seperti berikut ini:</p>
<p><a href="http://neo.rizkhey.net/wp-content/uploads/2012/01/breadcrumb.jpg"><img src="http://neo.rizkhey.net/wp-content/uploads/2012/01/breadcrumb-450x270.jpg" alt="Next is Breadcrumb" title="Next is Breadcrumb" width="450" height="270" class="aligncenter size-medium wp-image-4279" /></a></p>
<p>Untuk membuat tampilan breadcrumb dan juga search box, tambahkan script HTML berikut ini di bawah bagian header:</p>
<p>[html]<br />
            <!-- HEADER NAVIGATION START --></p>
<div class="upper_navigation">
<div class="breadcrumb_container">
<div class="breadcrumb_root"></div>
<div class="breadcrumb_item">
<ul>
<li><a href="#">Root node</a></li>
<li><a href="#">Node one</a></li>
<li><a href="#">Node two</a></li>
<li><a href="#">Node two</a></li>
<li><a href="#">Node two</a></li>
<li><a href="#">Node two</a></li>
</ul></div>
<div class="clear"></div>
</p></div>
<div class="search_box">
<form action="#">
<input type="text" name="textbox" />
<input type="submit" value="" />
                    </form>
<div class="clear"></div>
</p></div>
<div class="clear"></div>
</p></div>
<p>            <!-- HEADER NAVIGATION END --><br />
[/html]</p>
<blockquote>
<h3>Before you go on&#8230;.</h3>
<p>Sampai sejauh ini, HTML kita akan seperti ini:<br />
<a href="javascript:void(null);" onclick="s_toggleDisplay(document.getElementById('SID494693586'), this, 'Show &#9660;', 'Hide &#9650;');">Show &#9660;</a></p>
<div id='SID494693586' style='display:none;'>
<p>[html]<br />
<!DOCTYPE html><br />
<html><br />
    <head><br />
        <!--<br />
        <script src="js/jquery.js" type="text/javascript" ></script><br />
        <script src="js/jquery-ui-1.8.16.custom.min.js" type="text/javascript" ></script></p>
<link href="css/jquery-ui-1.8.16.cupertino.css" type="text/css" rel="stylesheet" />
        --></p>
<link href="css/main.css" type="text/css" rel="stylesheet" />
<p>    </head><br />
    <body></p>
<p>        <!-- MAIN CONTAINER FOR WINDOW START --></p>
<div class="main_container">
<p>            <!-- HEADER WINDOW(TITLE, CLOSE BTN, ETC) START --></p>
<div class="window_header">
<div class="window_title">Window name goes here</div>
<div class="btn_list">
<div><a href="#" title="Minimize"><img alt="Minimize window" src="images/minime.png"></a></div>
<div><a href="#" title="Maximize"><img alt="sign out" src="images/btn.png"></a></div>
<div><a href="#" title="close"><img alt="sign out" src="images/logout.png"></a></div>
</p></div>
<div class="clear"></div>
</p></div>
<p>            <!-- HEADER WINDOW(TITLE, CLOSE BTN, ETC) END --></p>
<p>            <!-- HEADER NAVIGATION START --></p>
<div class="upper_navigation">
<div class="breadcrumb_container">
<div class="breadcrumb_root"></div>
<div class="breadcrumb_item">
<ul>
<li><a href="#">Root node</a></li>
<li><a href="#">Node one</a></li>
<li><a href="#">Node two</a></li>
<li><a href="#">Node two</a></li>
<li><a href="#">Node two</a></li>
<li><a href="#">Node two</a></li>
</ul></div>
<div class="clear"></div>
</p></div>
<div class="search_box">
<form action="#">
<input type="text" name="textbox" />
<input type="submit" value="" />
                    </form>
<div class="clear"></div>
</p></div>
<div class="clear"></div>
</p></div>
<p>            <!-- HEADER NAVIGATION END --></p></div>
<p>        <!-- MAIN CONTAINER FOR WINDOW END --></p>
<p>    </body><br />
</html><br />
[/html]</p>
</div>
</blockquote>
<p>Ok, next the CSS...<br />
[css]<br />
/* ============= CSS for header NAV. area START ============== */<br />
.upper_navigation{<br />
    margin-top: 7px;<br />
    margin-bottom:8px;<br />
}</p>
<p>.breadcrumb_container{<br />
    /* Breadcrumb navi is in the left side so make it float in the left */<br />
    float: left;<br />
    /* 75:25% => 75=> breadcrumb, 25 Search box */<br />
    width: 75%;<br />
    /* the color is white */<br />
    background: #fff;</p>
<p>    padding: 3px;</p>
<p>    border: solid 1px #666666;</p>
<p>    /* little rounded */<br />
    -moz-border-radius : 3px;<br />
    -webkit-border-radius : 3px;<br />
    border-radius : 3px;</p>
<p>    /* thin shadow */<br />
    -moz-box-shadow : 1px 1px 3px #666;<br />
    -webkit-box-shadow : 1px 1px 3px #666;<br />
    box-shadow : 1px 1px 3px #666;<br />
}</p>
<p>/* breadcrumb root have "folder" image */<br />
.breadcrumb_root{<br />
    float: left;<br />
    background-image: url(../images/gtk-open_20.png);<br />
    background-repeat: no-repeat;<br />
    width: 20px;<br />
    height: 18px;<br />
}</p>
<p>/* breadcrumb listing, becarefull with content width */<br />
.breadcrumb_item{<br />
    float: left;<br />
}</p>
<p>.breadcrumb_item ul{<br />
    margin-top: 0px;<br />
    margin-bottom: 0px;<br />
    padding-left: 0px;<br />
}</p>
<p>.breadcrumb_item ul li{<br />
    display: inline;<br />
    background: url(../images/node.png);<br />
    background-repeat: no-repeat;<br />
    padding-left: 10px;<br />
    width: 100px;<br />
}</p>
<p>.breadcrumb_item a:link,.breadcrumb_item a:visited{<br />
    text-decoration: none;<br />
    color: #000;<br />
    padding: 5px;<br />
}<br />
.breadcrumb_item a:hover{<br />
    background-image: url(../images/breadcrumb_hover.png);<br />
    background-repeat: repeat-x;<br />
    border: solid 1px #999999;<br />
    padding: 4px;<br />
}</p>
<p>/* Search Box CSS Classes */<br />
.search_box{<br />
    /* make height equals the breadcrumb height around 24px */<br />
    height: 24px;<br />
    /*<br />
    set magin from the left around 77% (remmeber the breadcrumb section is 75 in width)<br />
    at last give space 2% from breadcrumb box<br />
    */<br />
    margin-left: 77%;<br />
    /* also set the bg */<br />
    background: #fff;</p>
<p>    /* the rest is same with breadcrumb box */<br />
    border: solid 1px #666666;<br />
    -moz-border-radius : 3px;<br />
    -webkit-border-radius : 3px;</p>
<p>    border-radius : 3px;<br />
    -moz-box-shadow : 1px 1px 3px #666;<br />
    -webkit-box-shadow : 1px 1px 3px #666;<br />
    box-shadow : 1px 1px 3px #666;<br />
}</p>
<p>/*<br />
    search box styling,the width set to 80% if greater than 80% will throw<br />
    the submit button bellow the textbox in Opera(only)<br />
*/<br />
.search_box input[type=text]{<br />
    border: none;<br />
    padding: 0px 0px 0px 5px;<br />
    height: 23px;<br />
    float: left;<br />
    width: 80%;<br />
}<br />
/* Button with background image set it in the right of the box */<br />
.search_box input[type=submit]{<br />
    border: none;<br />
    background-color: transparent;<br />
    background-image: url(../images/search_btn.png);<br />
    background-repeat: no-repeat;<br />
    background-position: center center;<br />
    height: 23px;<br />
    float: right;<br />
}<br />
/* ============= CSS for header NAV. area END ============== */<br />
[/css]</p>
<p>Untuk penjelasannya, kurang lebih seperti yang tertulis diatas <img src='http://neo.rizkhey.net/smilies/yahoo_bigsmile.gif' alt='&#58;&#68;' class='wp-smiley' width='18' height='18' title='&#58;&#68;' /></p>
<p>Next bagian utama. Bagian utama dibagi 4 bagian. Bagian atas(toolbar, bisa Anda isi dengan link, pada div ber-class "content_toolbar"), bagian sidebar(div ber-class "window_side_bar"), bagian content(Div ber-class "window_content"), dan footer(div ber-class "window_footer").<br />
[html]<br />
            <!-- main container for content START --></p>
<div class="window_main_container">
<div class="content_toolbar">
                    add special toolbar/link here
                </div>
<div class="window_side_bar">
<ul>
<li><a href="#">Main Menu item</a></li>
<li>
                            This is Root menu 1</p>
<ul>
<li><a href="#">Menu item</a></li>
<li><a href="#">Menu item</a>
<ul>
<li><a href="#">sub of Menu item</a></li>
</ul>
</li>
<li><a href="#">Menu item</a></li>
</ul>
</li>
<li>
                            This is Root menu 2</p>
<ul>
<li><a href="#">Menu item</a></li>
<li><a href="#">Menu item</a></li>
<li><a href="#">Menu item</a></li>
</ul>
</li>
</ul></div>
<div class="window_content">
<div class="content_wrapper">
<h2>Lorem ipsum dolor sit ame</h2>
<div class="content_desc">
                            Page description in here, you can<br />
                            describe your page content to your user what is this page for.
                        </div>
<fieldset>
<legend>Field set title</legend>
<p>                            Field set content</p>
<div style="padding: 3px;">
<input type="text" name="txt_textbox" /></div>
<div style="padding: 3px;">
<select>
<option value="1" >2</option>
<option value="2" >3</option>
<option value="3" >4</option>
</select></div>
<div style="padding: 3px;">
                                <textarea name="txt_textarea">This is text area</textarea>
                            </div>
<div style="padding: 3px;">
<input type="submit" />
                                <a href="#">Some hyperlink</a>
                            </div>
</fieldset></div>
</p></div>
<div class="clear"></div>
</p></div>
<p>            <!-- main container for content END--></p>
<p>            <!-- WINDOW FOOTER AREA --></p>
<div class="window_footer"></div>
<p>            <!-- WINDOW FOOTER AREA --><br />
[/html]</p>
<p>don't forget... the CSS<br />
[css]<br />
/* ======= CSS for main content area(content&#038;sidebar) START ======= */<br />
.window_main_container{<br />
    /* Set background to white */<br />
    background-color: #fff;<br />
    /* set space between title area to content box */<br />
    margin-top: 5px;</p>
<p>    /* set some border */<br />
    border-left: 1px solid #585151;<br />
    border-right: 1px solid #585151;<br />
    border-top: 1px solid #585151;<br />
    /* Bottom border is blue */<br />
    border-bottom: 1px solid #CCD9EA;<br />
}</p>
<p>/* ontent upper toolbar */<br />
.content_toolbar{<br />
    height: 16px;<br />
    background-image: url("../images/bg_toolbar.png");<br />
    background-repeat: repeat-x;<br />
    padding: 8px 5px 5px 5px;<br />
    font-size: 11px;<br />
    border-bottom: solid 1px #CCD9EA;<br />
}</p>
<p>/* sidebar classes */<br />
.window_side_bar{<br />
    float: left;<br />
    width: 200px;<br />
    padding: 5px;<br />
    font-size: 0.9em;<br />
}</p>
<p>.window_side_bar a:link, .window_side_bar a:visited{<br />
    color: #151C55;<br />
    text-decoration: none;<br />
}</p>
<p>.window_side_bar a:hover{<br />
    text-decoration: underline;<br />
    color: #0066CC;<br />
}</p>
<p>.window_side_bar ul{<br />
    list-style: none;<br />
    color: #151C55;<br />
    font-weight: bolder;<br />
    padding-left: 10px;<br />
    padding-bottom: 10px;<br />
}</p>
<p>.window_side_bar ul li{<br />
    padding-bottom: 5px;<br />
}</p>
<p>.window_side_bar ul li ul{<br />
    list-style: none;<br />
    color: #151C55;<br />
    padding-left: 10px;<br />
    padding-top: 3px;<br />
}</p>
<p>.window_side_bar ul li ul li{<br />
    padding-left: 10px;<br />
    font-weight: normal;<br />
    font-size: 11px;<br />
    padding-bottom: 0px;<br />
}</p>
<p>/* This is class for main content window, all content will go here */<br />
.window_content{<br />
    background-image: url("../images/bg_sidebar.jpg");<br />
    background-repeat: repeat-y;<br />
    /* set min height for main container : D */<br />
    min-height:  400px;<br />
    padding: 0px 0px 0px 210px;<br />
    top: 0px;<br />
    left: 0px;<br />
}</p>
<p>.content_wrapper{<br />
    padding: 2px 10px 5px 10px;<br />
}</p>
<p>/* ======= CSS for main content area(content&#038;sidebar) END ======= */</p>
<p>.window_footer{</p>
<p>    /* Footer window background color */<br />
    background-color: #F1F5FB;<br />
    /* set height window footer */<br />
    height: 65px;<br />
    /* footer upper border */</p>
<p>    border-left: 1px solid #585151;<br />
    border-right: 1px solid #585151;<br />
}</p>
<p>/* content styling */<br />
h2 {<br />
    color: #4776BD;<br />
    font-weight: normal;<br />
    font-size: medium;<br />
}<br />
.content_desc{<br />
    padding-bottom: 20px;<br />
    font-style: italic;<br />
}<br />
.window_content{<br />
    font-size: 11px;<br />
}</p>
<p>fieldset{<br />
    border: 1px solid #CCCCCC;<br />
}</p>
<p>legend{<br />
    color: #003399;<br />
    font-size: 1.1em;<br />
}</p>
<p>/* input object classes */<br />
.window_content input[type=text],<br />
.window_content input[type=password],<br />
.window_content input[type=date],<br />
.window_content input[type=file],<br />
.window_content select{<br />
    font-size: small;<br />
    width: 250px;<br />
    -moz-border-radius:3px;<br />
    -webkit-border-radius:3px;<br />
    border-radius:3px;<br />
    border: solid 1px #7DA2CE;<br />
    padding: 3px;<br />
}</p>
<p>textarea{<br />
    font-family: Arial, Helvetica, sans-serif;<br />
    font-size: small;<br />
    width: 250px;<br />
    height: 60px;<br />
    resize: true;<br />
    -moz-border-radius:3px;<br />
    -webkit-border-radius:3px;<br />
    border-radius:3px;<br />
    border: solid 1px #7DA2CE;<br />
    padding: 3px;<br />
}<br />
[/css]</p>
<p>Ok, kurang lebih sekarang file HTML &#038; CSS keseluruhan akan seperti berikut:</p>
<blockquote><p>
HTML file<br />
<a href="javascript:void(null);" onclick="s_toggleDisplay(document.getElementById('SID1117297769'), this, 'Show &#9660;', 'Hide &#9650;');">Show &#9660;</a></p>
<div id='SID1117297769' style='display:none;'>
<p>[html]<br />
<!DOCTYPE html><br />
<html><br />
    <head></p>
<link href="css/main.css" type="text/css" rel="stylesheet" />
    </head><br />
    <body></p>
<p>        <!-- MAIN CONTAINER FOR WINDOW START --></p>
<div class="main_container">
<p>            <!-- HEADER WINDOW(TITLE, CLOSE BTN, ETC) START --></p>
<div class="window_header">
<div class="window_title">Window name goes here</div>
<div class="btn_list">
<div><a href="#" title="Minimize"><img alt="Minimize window" src="images/minime.png"></a></div>
<div><a href="#" title="Maximize"><img alt="sign out" src="images/btn.png"></a></div>
<div><a href="#" title="close"><img alt="sign out" src="images/logout.png"></a></div>
</p></div>
<div class="clear"></div>
</p></div>
<p>            <!-- HEADER WINDOW(TITLE, CLOSE BTN, ETC) END --></p>
<p>            <!-- HEADER NAVIGATION START --></p>
<div class="upper_navigation">
<div class="breadcrumb_container">
<div class="breadcrumb_root"></div>
<div class="breadcrumb_item">
<ul>
<li><a href="#">Root node</a></li>
<li><a href="#">Node one</a></li>
<li><a href="#">Node two</a></li>
<li><a href="#">Node two</a></li>
<li><a href="#">Node two</a></li>
<li><a href="#">Node two</a></li>
</ul></div>
<div class="clear"></div>
</p></div>
<div class="search_box">
<form action="#">
<input type="text" name="textbox" />
<input type="submit" value="" />
                    </form>
<div class="clear"></div>
</p></div>
<div class="clear"></div>
</p></div>
<p>            <!-- HEADER NAVIGATION END --></p>
<p>            <!-- main container for content START --></p>
<div class="window_main_container">
<div class="content_toolbar">
                    add special toolbar/link here
                </div>
<div class="window_side_bar">
<ul>
<li><a href="#">Main Menu item</a></li>
<li>
                            This is Root menu 1</p>
<ul>
<li><a href="#">Menu item</a></li>
<li><a href="#">Menu item</a>
<ul>
<li><a href="#">sub of Menu item</a></li>
</ul>
</li>
<li><a href="#">Menu item</a></li>
</ul>
</li>
<li>
                            This is Root menu 2</p>
<ul>
<li><a href="#">Menu item</a></li>
<li><a href="#">Menu item</a></li>
<li><a href="#">Menu item</a></li>
</ul>
</li>
</ul></div>
<div class="window_content">
<div class="content_wrapper">
<h2>Lorem ipsum dolor sit ame</h2>
<div class="content_desc">
                            Page description in here, you can<br />
                            describe your page content to your user what is this page for.
                        </div>
<fieldset>
<legend>Field set title</legend>
<p>                            Field set content</p>
<div style="padding: 3px;">
<input type="text" name="txt_textbox" /></div>
<div style="padding: 3px;">
<select>
<option value="1" >2</option>
<option value="2" >3</option>
<option value="3" >4</option>
</select></div>
<div style="padding: 3px;">
                                <textarea name="txt_textarea">This is text area</textarea>
                            </div>
<div style="padding: 3px;">
<input type="submit" />
                                <a href="#">Some hyperlink</a>
                            </div>
</fieldset></div>
</p></div>
<div class="clear"></div>
</p></div>
<p>            <!-- main container for content END--></p>
<p>            <!-- WINDOW FOOTER AREA --></p>
<div class="window_footer"></div>
<p>            <!-- WINDOW FOOTER AREA -->
        </div>
<p>        <!-- MAIN CONTAINER FOR WINDOW END --></p>
<p>    </body><br />
</html><br />
[/html]</p>
</div>
</blockquote>
<blockquote><p>
CSS:<br />
<a href="javascript:void(null);" onclick="s_toggleDisplay(document.getElementById('SID272145233'), this, 'Show &#9660;', 'Hide &#9650;');">Show &#9660;</a></p>
<div id='SID272145233' style='display:none;'>
<p>[css]<br />
body {<br />
    /* make little floaty from the top : D */<br />
    margin-top: 100px;<br />
    /* set your desktop background : D */<br />
    background-image: url(../images/the_bg.jpg);<br />
    /* windows 7 using Segoe UI font but it's not<br />
     * very common on other OS, we will using Verdana instead<br />
     */<br />
    font-family: Verdana,Helvetica,sans-serif;<br />
    /* set font size... well it's up to you */<br />
    font-size: 0.8em;<br />
}</p>
<p>/* some oldies browser make blue border in image link<br />
 * this one will remove all blue border<br />
 */<br />
a img{ border: none; }</p>
<p>/* hyperlink global rule */<br />
a:link, a:visited {<br />
    color: #0066CC;<br />
    text-decoration: none;<br />
}</p>
<p>a:hover{<br />
    text-decoration: underline;<br />
}</p>
<p>.clear{<br />
    clear: both;<br />
}</p>
<p>/* Main container is the main DIV contained the Window frame */<br />
.main_container {<br />
    /* Magin left-right set auto to make it in center */<br />
    margin-left: auto;<br />
    margin-right: auto; </p>
<p>    /* width of windo we set to 70% */<br />
    width: 70%;<br />
    min-width: 800px;</p>
<p>    /* set background image */<br />
    background-image: url(../images/window_bg.png);</p>
<p>    /* set the border color */<br />
    border: 1px solid #666666;<br />
    /* CSS3 droping shadow for window */<br />
    -moz-box-shadow : 5px 5px 15px #000000;     /* mozilla prefix */<br />
    -webkit-box-shadow : 5px 5px 15px #000000;  /* webkit prefix (chrome/safari) */<br />
    box-shadow : 5px 5px 15px #000000;          /* legal css 3 only */</p>
<p>    /* CSS3 makes rounded box */<br />
    -moz-border-radius: 6px;<br />
    -webkit-border-radius: 6px;<br />
    border-radius: 6px;</p>
<p>    /* make padding to make the border feel real : D */<br />
    padding: 0px 5px 5px 5px;</p>
<p>}</p>
<p>/* ============= CSS for header area ============== */</p>
<p>/* Window title area, title in upper left */<br />
.window_title{<br />
    font-size: 0.9em;<br />
    padding: 2px;<br />
    color: #fff;<br />
    text-align: center;<br />
    background-image: url("../images/darken_bg.png");<br />
    border-left: 1px solid #999999;<br />
    border-right: 1px solid #999999;<br />
    border-bottom: 1px solid #999999;<br />
    font-weight: bolder;<br />
    width: 200px;<br />
    float: left;<br />
    /* bottom border make round */<br />
    border-bottom-left-radius: 5px;<br />
    border-bottom-right-radius: 5px;<br />
    /* add little shadow */<br />
    box-shadow: 1px 1px 1px #000000;<br />
}</p>
<p>/* Button List area, like Minimize, max, close button */<br />
.btn_list{<br />
    float: right;<br />
    padding: 0px;<br />
}</p>
<p>/* make the easy effect, just fade it with CSS3 */<br />
.btn_list a:link,.btn_list a:visited{<br />
    opacity : 0.6;<br />
}</p>
<p>/* make the button fully shown */<br />
.btn_list a:hover{<br />
    opacity : 1;<br />
}</p>
<p>.btn_list div{<br />
    float: left;<br />
}<br />
/* ============= CSS for header area END ============== */</p>
<p>/* ============= CSS for header NAV. area START ============== */<br />
.upper_navigation{<br />
    margin-top: 7px;<br />
    margin-bottom:8px;<br />
}</p>
<p>.breadcrumb_container{<br />
    /* Breadcrumb navi is in the left side so make it float in the left */<br />
    float: left;<br />
    /* 75:25% => 75=> breadcrumb, 25 Search box */<br />
    width: 75%;<br />
    /* the color is white */<br />
    background: #fff;</p>
<p>    padding: 3px;</p>
<p>    border: solid 1px #666666;</p>
<p>    /* little rounded */<br />
    -moz-border-radius : 3px;<br />
    -webkit-border-radius : 3px;<br />
    border-radius : 3px;</p>
<p>    /* thin shadow */<br />
    -moz-box-shadow : 1px 1px 3px #666;<br />
    -webkit-box-shadow : 1px 1px 3px #666;<br />
    box-shadow : 1px 1px 3px #666;<br />
}</p>
<p>/* breadcrumb root have "folder" image */<br />
.breadcrumb_root{<br />
    float: left;<br />
    background-image: url(../images/gtk-open_20.png);<br />
    background-repeat: no-repeat;<br />
    width: 20px;<br />
    height: 18px;<br />
}</p>
<p>/* breadcrumb listing, becarefull with content width */<br />
.breadcrumb_item{<br />
    float: left;<br />
}</p>
<p>.breadcrumb_item ul{<br />
    margin-top: 0px;<br />
    margin-bottom: 0px;<br />
    padding-left: 0px;<br />
}</p>
<p>.breadcrumb_item ul li{<br />
    display: inline;<br />
    background: url(../images/node.png);<br />
    background-repeat: no-repeat;<br />
    padding-left: 10px;<br />
    width: 100px;<br />
}</p>
<p>.breadcrumb_item a:link,.breadcrumb_item a:visited{<br />
    text-decoration: none;<br />
    color: #000;<br />
    padding: 5px;<br />
}<br />
.breadcrumb_item a:hover{<br />
    background-image: url(../images/breadcrumb_hover.png);<br />
    background-repeat: repeat-x;<br />
    border: solid 1px #999999;<br />
    padding: 4px;<br />
}</p>
<p>/* Search Box CSS Classes */<br />
.search_box{<br />
    /* make height equals the breadcrumb height around 24px */<br />
    height: 24px;<br />
    /*<br />
    set magin from the left around 77% (remmeber the breadcrumb section is 75 in width)<br />
    at last give space 2% from breadcrumb box<br />
    */<br />
    margin-left: 77%;<br />
    /* also set the bg */<br />
    background: #fff;</p>
<p>    /* the rest is same with breadcrumb box */<br />
    border: solid 1px #666666;<br />
    -moz-border-radius : 3px;<br />
    -webkit-border-radius : 3px;</p>
<p>    border-radius : 3px;<br />
    -moz-box-shadow : 1px 1px 3px #666;<br />
    -webkit-box-shadow : 1px 1px 3px #666;<br />
    box-shadow : 1px 1px 3px #666;<br />
}</p>
<p>/*<br />
    search box styling,the width set to 80% if greater than 80% will throw<br />
    the submit button bellow the textbox in Opera(only)<br />
*/<br />
.search_box input[type=text]{<br />
    border: none;<br />
    padding: 0px 0px 0px 5px;<br />
    height: 23px;<br />
    float: left;<br />
    width: 80%;<br />
}<br />
/* Button with background image set it in the right of the box */<br />
.search_box input[type=submit]{<br />
    border: none;<br />
    background-color: transparent;<br />
    background-image: url(../images/search_btn.png);<br />
    background-repeat: no-repeat;<br />
    background-position: center center;<br />
    height: 23px;<br />
    float: right;<br />
}<br />
/* ============= CSS for header NAV. area END ============== */</p>
<p>/* ======= CSS for main content area(content&#038;sidebar) START ======= */<br />
.window_main_container{<br />
    /* Set background to white */<br />
    background-color: #fff;<br />
    /* set space between title area to content box */<br />
    margin-top: 5px;</p>
<p>    /* set some border */<br />
    border-left: 1px solid #585151;<br />
    border-right: 1px solid #585151;<br />
    border-top: 1px solid #585151;<br />
    /* Bottom border is blue */<br />
    border-bottom: 1px solid #CCD9EA;<br />
}</p>
<p>/* ontent upper toolbar */<br />
.content_toolbar{<br />
    height: 16px;<br />
    background-image: url("../images/bg_toolbar.png");<br />
    background-repeat: repeat-x;<br />
    padding: 8px 5px 5px 5px;<br />
    font-size: 11px;<br />
    border-bottom: solid 1px #CCD9EA;<br />
}</p>
<p>/* sidebar classes */<br />
.window_side_bar{<br />
    float: left;<br />
    width: 200px;<br />
    padding: 5px;<br />
    font-size: 0.9em;<br />
}</p>
<p>.window_side_bar a:link, .window_side_bar a:visited{<br />
    color: #151C55;<br />
    text-decoration: none;<br />
}</p>
<p>.window_side_bar a:hover{<br />
    text-decoration: underline;<br />
    color: #0066CC;<br />
}</p>
<p>.window_side_bar ul{<br />
    list-style: none;<br />
    color: #151C55;<br />
    font-weight: bolder;<br />
    padding-left: 10px;<br />
    padding-bottom: 10px;<br />
}</p>
<p>.window_side_bar ul li{<br />
    padding-bottom: 5px;<br />
}</p>
<p>.window_side_bar ul li ul{<br />
    list-style: none;<br />
    color: #151C55;<br />
    padding-left: 10px;<br />
    padding-top: 3px;<br />
}</p>
<p>.window_side_bar ul li ul li{<br />
    padding-left: 10px;<br />
    font-weight: normal;<br />
    font-size: 11px;<br />
    padding-bottom: 0px;<br />
}</p>
<p>/* This is class for main content window, all content will go here */<br />
.window_content{<br />
    background-image: url("../images/bg_sidebar.jpg");<br />
    background-repeat: repeat-y;<br />
    /* set min height for main container : D */<br />
    min-height:  400px;<br />
    padding: 0px 0px 0px 210px;<br />
    top: 0px;<br />
    left: 0px;<br />
}</p>
<p>.content_wrapper{<br />
    padding: 2px 10px 5px 10px;<br />
}</p>
<p>/* ======= CSS for main content area(content&#038;sidebar) END ======= */</p>
<p>.window_footer{</p>
<p>    /* Footer window background color */<br />
    background-color: #F1F5FB;<br />
    /* set height window footer */<br />
    height: 65px;<br />
    /* footer upper border */</p>
<p>    border-left: 1px solid #585151;<br />
    border-right: 1px solid #585151;<br />
}</p>
<p>/* content styling */<br />
h2 {<br />
    color: #4776BD;<br />
    font-weight: normal;<br />
    font-size: medium;<br />
}<br />
.content_desc{<br />
    padding-bottom: 20px;<br />
    font-style: italic;<br />
}<br />
.window_content{<br />
    font-size: 11px;<br />
}</p>
<p>fieldset{<br />
    border: 1px solid #CCCCCC;<br />
}</p>
<p>legend{<br />
    color: #003399;<br />
    font-size: 1.1em;<br />
}</p>
<p>/* input object classes */<br />
.window_content input[type=text],<br />
.window_content input[type=password],<br />
.window_content input[type=date],<br />
.window_content input[type=file],<br />
.window_content select{<br />
    font-size: small;<br />
    width: 250px;<br />
    -moz-border-radius:3px;<br />
    -webkit-border-radius:3px;<br />
    border-radius:3px;<br />
    border: solid 1px #7DA2CE;<br />
    padding: 3px;<br />
}</p>
<p>textarea{<br />
    font-family: Arial, Helvetica, sans-serif;<br />
    font-size: small;<br />
    width: 250px;<br />
    height: 60px;<br />
    resize: true;<br />
    -moz-border-radius:3px;<br />
    -webkit-border-radius:3px;<br />
    border-radius:3px;<br />
    border: solid 1px #7DA2CE;<br />
    padding: 3px;<br />
}<br />
[/css]</p>
</div>
</blockquote>
<p>Okey... now refresh your browser... and the final result will be like this image:<br />
<div id="attachment_4250" class="wp-caption aligncenter" style="width: 460px"><a href="http://neo.rizkhey.net/wp-content/uploads/2012/01/ilus1.jpg"><img src="http://neo.rizkhey.net/wp-content/uploads/2012/01/ilus1-450x345.jpg" alt="Tutorial result" title="Tutorial result" width="450" height="345" class="size-medium wp-image-4250" /></a><p class="wp-caption-text">Tutorial result</p></div></p>
<blockquote>
<h3>Known Issue...</h3>
<p>As you know ... it's alll about Internet Explorer. IE 8 will be okay although there is no round corner, but not IE 7 and older IE, it'll mess the design.
</p></blockquote>
<p>Sekian tutorial kali ini, Thank you <img src='http://neo.rizkhey.net/smilies/yahoo_bigsmile.gif' alt='&#58;&#68;' class='wp-smiley' width='18' height='18' title='&#58;&#68;' /></p>
<div class="download_box">
<a href='http://neo.rizkhey.net/wp-content/uploads/2012/01/design.zip'>Download Source Code</a></div>
<img src="http://neo.rizkhey.net/?ak_action=api_record_view&id=4243&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://neo.rizkhey.net/2012/01/4243-clone-windows-7-window-box-with-html-css3/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Chrome feat. Hatsune Miku &#8211; Tell your World</title>
		<link>http://neo.rizkhey.net/2012/01/4264-chrome-feat-hatsunemiku-tell-your-world</link>
		<comments>http://neo.rizkhey.net/2012/01/4264-chrome-feat-hatsunemiku-tell-your-world#comments</comments>
		<pubDate>Mon, 23 Jan 2012 03:53:12 +0000</pubDate>
		<dc:creator>リズキ</dc:creator>
				<category><![CDATA[J-Pop]]></category>
		<category><![CDATA[Music Video]]></category>
		<category><![CDATA[Google Chrome]]></category>
		<category><![CDATA[Hatsune Miku]]></category>
		<category><![CDATA[Tell your World]]></category>
		<category><![CDATA[Vocaloid]]></category>

		<guid isPermaLink="false">http://neo.rizkhey.net/?p=4264</guid>
		<description><![CDATA[
Beberapa waktu lalu saya mendapatkan sebuah video link di sebuah website luar sana yang berisi musik dari Vocaloid, Hatsune Miku. Bagusnya musik ini menjadi background promosional Google Chrome.
Judul Musik-nya sendiri adalah &#8220;Tell your World&#8221;, ga beberapa lama dari situs tersebut juga mengatakan bahwa Lagu ini sempat menduduki peringkat 1 iTunes Japan.
Hatsune miku sendiri adalah sebuah [...]]]></description>
			<content:encoded><![CDATA[<div style="text-align=center;"><iframe src="http://www.youtube.com/embed/MGt25mv4-2Q" frameborder="0" width="560" height="315"></iframe></div>
<p style="text-align: justify;">Beberapa waktu lalu saya mendapatkan sebuah video link di sebuah website luar sana yang berisi musik dari Vocaloid, Hatsune Miku. Bagusnya musik ini menjadi background promosional Google Chrome.</p>
<p style="text-align: justify;">Judul Musik-nya sendiri adalah &#8220;Tell your World&#8221;, ga beberapa lama dari situs tersebut juga mengatakan bahwa Lagu ini sempat menduduki peringkat 1 iTunes Japan.</p>
<p style="text-align: justify;">Hatsune miku sendiri adalah sebuah program dari beberapa saudara Vocaloidnya yang digunakan untuk membuat vocal sebuah lagu. Awalnya sekitar beberapa tahun lalu, saya tidak begitu suka dengan Vocaloid, tetapi setelah diberi Video Thanks giving 39 sekitar setahun yang lalu, saya menjadi fans-nya.</p>
<p style="text-align: justify;">Kalau diumpamakan dunia software mungkin Vocaloid adalah bahasa pemprograman bebas/opensource tak terikan lisensi/biaya, Anda cukup mempelajari bagaimana menggunakan softwarenya, dan Anda bisa menciptakan Lagu, dan Viola&#8230; jadilah Musik ciptaan Anda sendiri tinggal Anda publish ke <em>public-public services</em> Seperti Youtube atau nico-nico douga. If You&#8217;re lucky enough, Your songs maybe will be used on Hatsune Miku next Live concert <img src='http://neo.rizkhey.net/smilies/yahoo_bigsmile.gif' alt='&#58;&#68;' class='wp-smiley' width='18' height='18' title='&#58;&#68;' /></p>
<p style="text-align: justify;">Well can&#8217;t be helped&#8230; this songs is superb after all <img src='http://neo.rizkhey.net/smilies/yahoo_bigsmile.gif' alt='&#58;&#68;' class='wp-smiley' width='18' height='18' title='&#58;&#68;' /></p>
<img src="http://neo.rizkhey.net/?ak_action=api_record_view&id=4264&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://neo.rizkhey.net/2012/01/4264-chrome-feat-hatsunemiku-tell-your-world/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>3 My favorite CSS3</title>
		<link>http://neo.rizkhey.net/2012/01/4195-3-omy-favorite-css3</link>
		<comments>http://neo.rizkhey.net/2012/01/4195-3-omy-favorite-css3#comments</comments>
		<pubDate>Sat, 21 Jan 2012 12:10:32 +0000</pubDate>
		<dc:creator>リズキ</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[css3]]></category>

		<guid isPermaLink="false">http://neo.rizkhey.net/?p=4195</guid>
		<description><![CDATA[Saya masih ingat sekitar tahun 2007-an dimana website suka menggunakan round-corner, shadow effect dengan menggunakan image. Kebutuhan memang terpenuhi dengan cara itu, hanya saja tidak sesederhana menuliskan 1 line CSS dan semua itu jadi. Kini, dengan CSS3 semua itu jadi lebih mudah. Saya mencoba membahas beberapa CSS3 favorit saya  ]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Saya masih ingat benar tahun 2007-2008 banyak website yang menggunakan <em>rounded-corner</em>, saat itu CSS3 mungkin belom terdengar. para desainer menggunakan pendekatan rounded-corner image untuk menutupi sudut-sudut yang tidak melengkung.</p>
<blockquote style="float: right; font-size: 1.3em; width: 300px; padding: 5px;"><p>It&#8217;s not as easy as writing 1 line of CSS, but now we can</p></blockquote>
<p style="text-align: justify;">Banyak yang sering terbatas dengan ukuran(<em>width</em>) yang terbatas karena image-nya statis, Untungnya para perancang standart di luar sana mengerti kebutuhan ini untuk kebutuhan desain yang lebih menarik dan juga lebih mudah. Sekarang kita dengan mudah menuliskan 1 line CSS seperti halnya mendefinisikan border sebuah elemen.</p>
<p><span id="more-4195"></span></p>
<blockquote style="float: left; font-size: 1.3em; width: 250px;margin-right:10px;"><p>Internet explorer? ah you know who the villain isn&#8217;t <img src='http://neo.rizkhey.net/smilies/yahoo_tongue.gif' alt='&#58;&#80;' class='wp-smiley' width='18' height='18' title='&#58;&#80;' /></p></blockquote>
<p style="text-align: justify;">Bagaimana dengan Browser compatibility? Seperti biasa Internet Explorer selalu tertinggal. Tidak usah menyebutkan Internet Explorer6, bahkan 8 pun belum mensupport CSS3 ini, baru Internet Explorer mensupport CSS3. Sangat disayangkan semenjak Browser mobile seperti Dolphin(Android) dapat mensupportnya dengan baik. Sementara Mozilla Firefox, Webkit browser(Safari &amp; Chrome), dan Opera sudah dapat menjalakan fasilitas ini dengan baik.</p>
<p style="text-align: justify;">Mozilla firefox (untuk yang mempunyai versi &lt; 4), didepan line CSS ditambahkan prefix &#8220;<em>-moz-</em>&#8220;, sementara untuk Chrome dan Safari untuk menanggulangi versi tua, dapat menggunakan prefix &#8220;<em>-webkit-</em>&#8220;.</p>
<p style="text-align: justify;">Oke cukup penjelasannya, saya akan coba bahas beberapa modul CSS3 yang saya sukai untuk project keseharian saya:</p>
<h3 style="text-align: justify;">1. border-radius</h3>
<p style="text-align: justify;">Border radius adalah yang saya bahas di atas, berfungsi untuk membuat <em>rounded-corner</em>. Syntaxnya sangat sederhana</p>
<p>[css]<br />
/* for Mozila */<br />
-moz-border-radius: [num]px;<br />
/* for Webkit */<br />
-webkit-border-radius: [num]px;</p>
<p>border-radius: [num]px;<br />
[/css]</p>
<div style="border-radius: 5px; height: 50px; border: solid 1px #000;width:300px;padding:5px;">User modern Firefox, Webkit browser, Opera and IE9 will see the corner rounded by 5 pixels</div>
<p>Bagaimana apabila yang diinginkan sudut tertentu saja? There is another way <img src='http://neo.rizkhey.net/smilies/yahoo_smiley.gif' alt='&#58;&#41;' class='wp-smiley' width='18' height='18' title='&#58;&#41;' /></p>
<p>[css]<br />
/* bottom-left radius */<br />
-moz-border-radius-bottomleft: 5px;<br />
border-bottom-left-radius: 5px;<br />
/* bottom-right radius */<br />
-moz-border-radius-bottomright : 5px;<br />
border-bottom-right-radius: 5px;<br />
/* top-left radius */<br />
-moz-border-radius-topleft : 5px;<br />
border-top-left-radius: 5px;</p>
<p>/* top-right radius */<br />
-moz-border-radius-topright: 5px;<br />
border-top-right-radius: 5px;<br />
[/css]</p>
<div style="padding:5px;border: solid 1px #000; width:300px; -moz-border-radius-bottomright: 20px;border-bottom-right-radius: 20px;">
not all corner rounded here
</div>
<h3 style="padding-top:30px;">2. box-shadow</h3>
<p style="text-align: justify;">Sama dengan rounded border, syntax CSS3 ini akan membuat shadow disekeliling box</p>
<p>[css]<br />
/* for mozilla */<br />
-moz-box-shadow : [horizontal-coor]px [vertical-coor]px [blur-radius]px [shadow-color]<br />
/* for webkit */<br />
-webkit-box-shadow : [horizontal-coor]px [vertical-coor]px [blur-radius]px [shadow-color]</p>
<p>box-shadow : [horizontal-coor]px [vertical-coor]px [blur-radius]px [shadow-color]<br />
[/css]</p>
<p>Example</p>
<div style="border-radius: 5px; width: 400px; border: solid 1px #000;padding:5px;box-shadow:5px 5px 5px #666666;">User modern Firefox, Webkit browser, Opera and IE9 will see the corner rounded by 5 pixels with some shadow</div>
<h3 style="padding-top:30px;">3. Opacity</h3>
<p>Agak jarang dipake tapi lumayan berguna dan mempermudah pekerjaan, berfungsi mengatur opacity sebuah element.<br />
[css]opacity:[0-1];[/css]<br />
Derajat opacity antara 0 dan 1. Contoh:</p>
<p>[html highlight_lines="8"]</p>
<style>
.container_msg{
	background:url(wp-content/uploads/2012/01/css3-150x150.jpg);
	width:300px;
}
.the_box{
	background-color:#000;
	opacity:0.5;
	width:300px;
	padding:5px;
	border: solid 1px #000;
	color:#fff
}
</style>
<div class="container_msg">
<div class="the_box">This is should be&#8230;</div>
</div>
<p>[/html]</p>
<div style="width:300px;background:url(http://neo.rizkhey.net/wp-content/uploads/2012/01/css3-150x150.jpg)">
<div style="background-color:#000;opacity:0.5;width:300px;padding:5px;border: solid 1px #000;color:#fff">This is should be&#8230;</div>
</div>
<p style="text-align:justify;">Itulah 3 dari banyak CSS3 yang paling sering saya gunakan. Karena secara user yang menggunakan IE masih agak troublesome, tentinysa saya tidak menggunakan untuk bagian -bagian kritis, dan hanya sebagai kosmetik bukan seperti jaman CSS1 ke CSS2 yang ada sampai tata letak(Overflow, top, left, etc) yang membuat cukup kacaw layout apabila browser tidak mendukung seperti jaman sekitar 2006-an saat IE6 masih sebagian besar browser</p>
<p style="text-align:justify;">Untuk mempelajari lebih jauh CSS3, Anda dapat belajar di <a href="http://www.css3.info/preview/" title="css3.info" target="_blank">CSS3.info</a>, saya juga belajar dari web tersebut <img src='http://neo.rizkhey.net/smilies/yahoo_smiley.gif' alt='&#58;&#41;' class='wp-smiley' width='18' height='18' title='&#58;&#41;' />.</p>
<img src="http://neo.rizkhey.net/?ak_action=api_record_view&id=4195&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://neo.rizkhey.net/2012/01/4195-3-omy-favorite-css3/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Blackout days</title>
		<link>http://neo.rizkhey.net/2012/01/4188-the-blackout-days</link>
		<comments>http://neo.rizkhey.net/2012/01/4188-the-blackout-days#comments</comments>
		<pubDate>Thu, 19 Jan 2012 04:58:30 +0000</pubDate>
		<dc:creator>リズキ</dc:creator>
				<category><![CDATA[Public Services]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://neo.rizkhey.net/?p=4188</guid>
		<description><![CDATA[Hari ini nampaknya sedang cukup ramai, terutama jagat Internet karena terjadinya aksi protest RUU yang tarjadi di Amerika Serikat. RUU yang dikenal dengan SOPA dan PIPA ini dinilai sangat merugikan masyarakat dan kalangan IT Network. Apabila ini diresmikan maka akan dipastikan akan merugikan banyak sekali pihak terutama pada perusahaan besar seperti Facebook, Google, yahoo dkk.
SOPA/PIPA [...]]]></description>
			<content:encoded><![CDATA[<p>Hari ini nampaknya sedang cukup ramai, terutama jagat Internet karena terjadinya aksi protest RUU yang tarjadi di Amerika Serikat. RUU yang dikenal dengan SOPA dan PIPA ini dinilai sangat merugikan masyarakat dan kalangan IT Network. Apabila ini diresmikan maka akan dipastikan akan merugikan banyak sekali pihak terutama pada perusahaan besar seperti Facebook, Google, yahoo dkk.</p>
<p>SOPA/PIPA ini awalnya memang bertujuan baik yaitu untuk membatasi nilai pembajakan yang tinggi terutama film-film hollywood, tetapi ternyata tidak hanya sampai disitu saja.</p>
<p>Untuk lebih jelasnya apa itu SOPA/PIPA bisa disaksikan di tautan video berikut ini:</p>
<p><iframe src="http://player.vimeo.com/video/31100268?byline=0&amp;portrait=0" frameborder="0" width="400" height="225"></iframe></p>
<p><a href="http://vimeo.com/31100268">PROTECT IP / SOPA Breaks The Internet</a> from <a href="http://vimeo.com/fightforthefuture">Fight for the Future</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>Dalam video diatas dijelaskan bahwa Pemerintah Amerika berhak menutup situs apabila memiliki tautan/link/content yang melanggar copyright. Sebagai contoh seorang user facebook, menaruh video klip musik yang diupload orang lain di Youtube dan yang mengupload bukan oleh sipemilik video(mungkin studio produksinya), maka Facebook harus menghapus tautan tersebut dan Youtube harus mensensor/menghapus video tersebut. Apabila tidak dilakukan maka Facebook atau Youtube bisa saja ditutup oleh pemerintah. Karena dalam peraturan ini dianggap bahwa penyedia service bertanggung jawab penuh atas content dari situsnya.</p>
<p>Hari ini Wikipedia menutup layanan ensiklopedi-nya yang berbahasa Inggris sebagai rasa protes terhadap Rancangan Undang-undang ini. Selain itu, WordPress, dan juga sampai php.net juga mengikuti aksi ini.</p>
<div id="attachment_4189" class="wp-caption aligncenter" style="width: 460px"><a href="http://neo.rizkhey.net/wp-content/uploads/2012/01/blackout.jpg"><img class="size-medium wp-image-4189" title="blackout" src="http://neo.rizkhey.net/wp-content/uploads/2012/01/blackout-450x347.jpg" alt="Blackout Wikipedia" width="450" height="347" /></a><p class="wp-caption-text">Halaman Black out WIkipedia berbahasa Inggriss</p></div>
<div id="attachment_4191" class="wp-caption aligncenter" style="width: 460px"><a href="http://neo.rizkhey.net/wp-content/uploads/2012/01/wp.jpg"><img class="size-medium wp-image-4191" title="Blackout page WordPress.org" src="http://neo.rizkhey.net/wp-content/uploads/2012/01/wp-450x309.jpg" alt="Blackout page WordPress.org" width="450" height="309" /></a><p class="wp-caption-text">Blackout page WordPress.org, WordPress menyediakan plugin Blackout khusus untuk aksi ini bagi pemngguna WordPress</p></div>
<p>&nbsp;</p>
<div id="attachment_4190" class="wp-caption aligncenter" style="width: 460px"><a href="http://neo.rizkhey.net/wp-content/uploads/2012/01/php.jpg"><img class="size-medium wp-image-4190" title="php.net" src="http://neo.rizkhey.net/wp-content/uploads/2012/01/php-450x200.jpg" alt="php.net blackout page" width="450" height="200" /></a><p class="wp-caption-text">PHP.net ikut andil dalam aksi ini</p></div>
<p>Selain pihak-pihak di atas pihak seperti Google juga melakukan protes dengan menutupi logo Google di search enginenya.</p>
<img src="http://neo.rizkhey.net/?ak_action=api_record_view&id=4188&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://neo.rizkhey.net/2012/01/4188-the-blackout-days/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CPU Eater Movie Clip Subtitle and how to fix it</title>
		<link>http://neo.rizkhey.net/2012/01/4176-cpu-eater-movie-clip-subtitle-and-how-to-fix-it</link>
		<comments>http://neo.rizkhey.net/2012/01/4176-cpu-eater-movie-clip-subtitle-and-how-to-fix-it#comments</comments>
		<pubDate>Sat, 14 Jan 2012 16:33:37 +0000</pubDate>
		<dc:creator>リズキ</dc:creator>
				<category><![CDATA[Guide]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[decode]]></category>
		<category><![CDATA[Full HD 1080p]]></category>
		<category><![CDATA[H264]]></category>
		<category><![CDATA[mkv]]></category>
		<category><![CDATA[subtitle]]></category>

		<guid isPermaLink="false">http://neo.rizkhey.net/?p=4176</guid>
		<description><![CDATA[Normalnya memainkan 1080p H264  video dengan kontainer  MKV adalah pekerjaan mudah dengan Intel core i5 apalagi i5 yang digunakan adalah seri terbaru. Maka dari itu saya terkejut ketika bekerja sambil mendengarkan musik dari klip konser tiba-tiba notebook ini terasa berat. Ketika saya membuka "Task Manager" ternyat CPU usage melonjak sekitar 70-80%.
]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Cerita ini bermula sewaktu saya bekerja sambil mendengarkan musik dari video klip yang saya bawa dari rumah. Tetapi sewaktu bekerja, saya bingung kenapa notebook yang saya gunakan menjadi berat dan agak kurang responsive. Tanpa pikir panjang, saya membuka task manager dan mendapati CPU usage lebih dari 50% bahkan berada di 70-80%.</p>
<p style="text-align: justify;">Berikut potongan saat CPU usage naik.</p>
<div style="text-align: center;"><iframe src="http://www.youtube.com/embed/cD9nrX-rq40" frameborder="0" width="560" height="315"></iframe></div>
<blockquote style="float: right; font-size: 1.3em; width: 250px;"><p>What&#8217;s wrong? Even 1080p H264 without Hardware decoding is very piece of cake for Intel Core i5 even in mobile version&#8230;</p></blockquote>
<p><span id="more-4176"></span></p>
<p style="text-align: justify;">Anehnya peristiwa ini terjadi hanya saat subtitle muncul saja, dan CPU usage normal kembali saat subtitle hilang. Paling parah saat subtitle sering berubah apalagi pada line-line yang berlirik cepat.</p>
<p style="text-align: justify;">Pertama-tama saya coba menginstall ulang codec-nya. Tetapi nihil tidak ada hasil, CPU usage terus di tinggi. Berikutnya saya mencoba mencari di Google, sayangnya saya kebingungan keyword apa yang harus saya pakai <img src='http://neo.rizkhey.net/smilies/yahoo_tongue.gif' alt='&#58;&#80;' class='wp-smiley' width='18' height='18' title='&#58;&#80;' /></p>
<p style="text-align: justify;">Setelah beberapa lama mencari akhirnya saya menemukan jawabannya. Pada link tersebut dia menganjurkan untuk meng-uncheck opsi &#8220;Allow animation when buffering&#8221; opsi pada &#8220;DirectVobSub&#8221;. Tapi ahsilnya nihil, tetap tinggi <img src='http://neo.rizkhey.net/smilies/yahoo_sad.gif' alt='&#58;&#40;' class='wp-smiley' width='18' height='18' title='&#58;&#40;' /></p>
<p style="text-align: justify;">Kemudian saya coba melihat-lihat option pada MPC-HC, dan menemukan opsi serupa di dalam meny &#8220;<em><strong>Subtitle</strong></em>&#8220;, lalu saya mencoba meng-uncheck opsi tersebut, merestart MPC-HC dan akhirnya masalah hilang.</p>
<div id="attachment_4178" class="wp-caption aligncenter" style="width: 460px"><a href="http://neo.rizkhey.net/wp-content/uploads/2012/01/add.jpg"><img class="size-medium wp-image-4178" title="Subtitle Option " src="http://neo.rizkhey.net/wp-content/uploads/2012/01/add-450x344.jpg" alt="Subtitle Option " width="450" height="344" /></a><p class="wp-caption-text">Fixing hi. CPU usage with uncheck opsi &quot;Allow animation when buffering&quot; <img src='http://neo.rizkhey.net/smilies/yahoo_smiley.gif' alt='&#58;&#41;' class='wp-smiley' width='18' height='18' title='&#58;&#41;' /></p></div>
<img src="http://neo.rizkhey.net/?ak_action=api_record_view&id=4176&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://neo.rizkhey.net/2012/01/4176-cpu-eater-movie-clip-subtitle-and-how-to-fix-it/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fixing Select Limit Issue for Microsoft SQL Server Driver in Codeigniter</title>
		<link>http://neo.rizkhey.net/2012/01/4136-fixing-select-limit-issue-for-microsoft-sql-server-driver-in-codeigniter</link>
		<comments>http://neo.rizkhey.net/2012/01/4136-fixing-select-limit-issue-for-microsoft-sql-server-driver-in-codeigniter#comments</comments>
		<pubDate>Fri, 13 Jan 2012 10:33:34 +0000</pubDate>
		<dc:creator>リズキ</dc:creator>
				<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[Microsoft SQL Server]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[sqlsrv]]></category>

		<guid isPermaLink="false">http://neo.rizkhey.net/?p=4136</guid>
		<description><![CDATA[Driver untuk mengakses Microsoft SQL server telah disediakan oleh framework CodeIgniter semenjak saya mencoba framework ini pertama kali (versi 1.6 kalau tak salah) sekitar 1-2 tahun lalu. Walau begitu saat itu untuk fungsi emulasi LIMIT yang dibutuhkan untuk pagination tidak berjalan seperti seharusnya. Bahkan sampai sekarang, versi 2.1.0 tetap demikian. Setelah perjalanan lama ini, akhirnya saya menemukan modifikasi cukup ampuh agar pagination dengan database Microsoft SQL server dapat berjalan baik di CodeIgniter.]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Sekitar tahun 2008 saya mulai melihat framework-framework yang umum dan disebar di Internet saat itu. Salah satunya yang cukup terkenal saat itu(hingga sekarang) adalah CodeIgniter. Pada saat itu saya membutuhkan sebuah framework untuk membuat proyek yang menggunakan Microsoft SQL Server(<em>As requested from my client</em>). Karena dalam PHP saya kurang perpengalaman menggunakan MS SQL sebagai DBMS-nya, akhirnya saya mencoba CI untuk calon framework yang saya akan gunakan.</p>
<p><span id="more-4136"></span></p>
<p style="text-align: justify;">Sayangnya hal itu kandas karena pada saat itu driver untuk MS SQL server yang disediakan oleh CI terutama dalam hal limit-nya bisa dibilang cacat. Walau metodologi yang digunakan sama dengan yang digunakan oleh ADODB(saya pernah bahas di artikel : <a title="Emulate Microsoft SQL Server Select Limit(2005 and above)" href="http://neo.rizkhey.net/2012/01/4100-emulate-microsoft-sql-server-select-limit2005-and-above">Emulate Microsoft SQL Server Select Limit(2005 and above)</a>), sayangnya apabila ADODB masih memilah lagi resultnya supaya yang dikembalikan seperti yang diminta user, sedangkan CI mengembalikannya mentah-mentah.</p>
<blockquote><p style="text-align: justify;">Sebelum melaju lebih jauh, syarat mutlak yang dibutuhkan adalah Anda sudah menggunakan Microsoft SQL Server 2005 atau lebih tinggi, karena cara ini tidak berjalan pada Database Ms. SQL Server 2000, dan driver PHP ke Ms. SQL Server baik mssql atau sqlsrv telah terinstall pada server Anda</p>
</blockquote>
<p style="text-align: justify;">Untuk lebih memahami, cobalah membuat sebuah table dengan nama &#8220;strong>tutorial_limit</strong>&#8221; di database MSSQL Anda dengan meng-execute SQL berikut ini.<br />
[sql]<br />
CREATE TABLE [dbo].[tutorial_limit](<br />
	[id] [int] IDENTITY(1,1) NOT NULL,<br />
	[name] [varchar](200) NOT NULL,<br />
	[some_random] [varchar](255) NOT NULL,<br />
 CONSTRAINT [PK_tutorial_limit] PRIMARY KEY CLUSTERED<br />
(<br />
	[id] ASC<br />
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]<br />
) ON [PRIMARY]<br />
[/sql]</p>
<p style="text-align: justify;">Lalu set koneksi database Anda ke Database MS SQL Anda menggunakan driver mssql/sqlsrv. Sebagai contoh, config yang saya gunakan adalah sbb:</p>
<p>[php num="51"]<br />
$db['default']['hostname'] = &#8216;.&#8217;;<br />
$db['default']['username'] = &#8216;sa&#8217;;<br />
$db['default']['password'] = &#8216;sa&#8217;;<br />
$db['default']['database'] = &#8216;tutorial&#8217;;<br />
$db['default']['dbdriver'] = &#8216;sqlsrv&#8217;;<br />
$db['default']['dbprefix'] = &#8221;;<br />
$db['default']['pconnect'] = TRUE;<br />
$db['default']['db_debug'] = TRUE;<br />
$db['default']['cache_on'] = FALSE;<br />
$db['default']['cachedir'] = &#8221;;<br />
$db['default']['char_set'] = &#8216;utf8&#8242;;<br />
$db['default']['dbcollat'] = &#8216;utf8_general_ci&#8217;;<br />
$db['default']['swap_pre'] = &#8221;;<br />
$db['default']['autoinit'] = TRUE;<br />
$db['default']['stricton'] = FALSE;<br />
[/php]</p>
<p style="text-align: justify;">Saya menggunakan extension <a title="SQLSRV, native Microsoft SQL Server Extension for PHP" href="http://neo.rizkhey.net/2011/04/3913-sqlsrv-native-microsoft-sql-server-extension-for-php">Ms. SQL Server Native(sqlsrv)</a> karena XAMPP yang saya gunakan Apachenya sudah menggunakan compile-an dari VC9 begitu juga dengan PHP-nya(mssql extension dll yang saya punya hanya untuk VC6 <img src='http://neo.rizkhey.net/smilies/yahoo_tongue.gif' alt='&#58;&#80;' class='wp-smiley' width='18' height='18' title='&#58;&#80;' /> )</p>
<p>Kemudian buatlah sebuah file controller dengan nama &#8220;<strong>paging_example.php</strong>&#8221; isilah dengan code berikut ini:<br />
[php]<br />
<?php<br />
/**<br />
* @property CI_Form_validation $form_validation<br />
* @property CI_Input $input<br />
* @property CI_DB_active_record $db<br />
* @property CI_DB_forge $dbforge<br />
* @property CI_Session $session<br />
* @property CI_Loader $load<br />
* @property CI_Upload $upload<br />
*/</p>
<p>class Paging_example extends CI_Controller<br />
{</p>
<p>    function  __construct() {<br />
        parent::__construct();<br />
        $this->load->database();<br />
        $this->load->library(array(&#8216;table&#8217;,'pagination&#8217;));<br />
    }</p>
<p>    function insert_dummy()<br />
    {<br />
            for ( $i = 0 ; $i < 300 ; $i++ )<br />
            {<br />
                    $data_insert = array(<br />
                            'name' => &#8216;this is row &#8216; . ($i+1),<br />
                            &#8216;some_random&#8217; => sha1($i)<br />
                    );</p>
<p>                    $this->db->insert(&#8216;tutorial_limit&#8217;,$data_insert);<br />
            }<br />
    }</p>
<p>    function some_paging()<br />
    {<br />
        /* set base config of pagination */<br />
        $config['base_url'] = base_url() . &#8216;paging_example/some_paging&#8217;;<br />
        $config['total_rows'] = $this->db->count_all_results(&#8216;tutorial_limit&#8217;);<br />
        $config['per_page'] = 10;</p>
<p>        $this->pagination->initialize($config);</p>
<p>        $data['records'] = $this->db->get(&#8216;tutorial_limit&#8217;, $config['per_page'], $this->uri->segment(3));<br />
        $data['link_pagination'] = $this->pagination->create_links();<br />
        $this->load->view(&#8216;pagination&#8217;,$data);<br />
    }<br />
}</p>
<p>?><br />
[/php]</p>
<p>Kita sekalian buat untuk view-nya, kita buat sebuah file dengan nama &#8220;<strong>pagination.php</strong>&#8221; isilah dengan code berikut ini:</p>
<p>[html]<br />
<html><br />
    <head></p>
<p>    </head><br />
    <body><br />
        <?php if ( $records->num_rows() > 0 ){ ?><br />
            <?php echo $this->table->generate($records); ?><br />
        <?php } ?><br />
        <?php echo $link_pagination; ?><br />
    </body><br />
</html><br />
[/html]</p>
<p style="text-align: justify;">Perhatikan kode controller di atas, kita akan membuat dua page, yaitu &#8220;insert_dummy&#8221; dan juga &#8220;some_paging&#8221;. untuk melakukan tutorial ini, kita membutuhkan data-data dummy untuk pagination, maka dari itu kita akan coba insert dummy data secara otomatis sebanyak 300 row.</p>
<p style="text-align: justify;">Execute-lah page &#8220;insert_dummy&#8221; tersebut(arahkan browser ke <strong>http://[your_host]/[path_to_ci_directory]/index.php/paging_example/insert_dummy</strong>), sehingga apabila anda lihat, table yang Anda buat sudah berisi 300 row.</p>
<div id="attachment_4142" class="wp-caption aligncenter" style="width: 460px"><a href="http://neo.rizkhey.net/wp-content/uploads/2012/01/sql_dummy_data.jpg"><img src="http://neo.rizkhey.net/wp-content/uploads/2012/01/sql_dummy_data-450x428.jpg" alt="Dummy Data sebanyak 300 row" title="Dummy Data sebanyak 300 row" width="450" height="428" class="size-medium wp-image-4142" /></a><p class="wp-caption-text">Dummy Data sebanyak 300 row</p></div>
<p style="text-align: justify;">Kemudian cobalah jalankan page &#8220;some_paging&#8221; (arahkan browser ke <strong>http://[your_host]/[path_to_ci_directory]/index.php/paging_example/some_paging</strong>) </p>
<div id="attachment_4144" class="wp-caption aligncenter" style="width: 460px"><a href="http://neo.rizkhey.net/wp-content/uploads/2012/01/paging_1st_page.jpg"><img src="http://neo.rizkhey.net/wp-content/uploads/2012/01/paging_1st_page-450x258.jpg" alt="1st Page of Pagination" title="1st Page of Pagination" width="450" height="258" class="size-medium wp-image-4144" /></a><p class="wp-caption-text">Saat halaman &quot;some_paging&quot; dijalankan akan muncul seperti ini kurang lebih</p></div>
<p style="text-align: justify;">Tidak nampak sesuatu yang aneh? tentu saja ini baru halaman utama. Apabila Anda melihat/membuka SQL-server Profiler, Anda akan melihat query yang di execute adalah:</p>
<p>[sql]SELECT TOP 10 * FROM tutorial_limit[/sql]</p>
<p style="text-align: justify;">Ok&#8230; mari kita klik halaman kedua  <img src='http://neo.rizkhey.net/smilies/yahoo_smiley.gif' alt='&#58;&#41;' class='wp-smiley' width='18' height='18' title='&#58;&#41;' /> </p>
<div id="attachment_4146" class="wp-caption aligncenter" style="width: 460px"><a href="http://neo.rizkhey.net/wp-content/uploads/2012/01/2nd_page.jpg"><img src="http://neo.rizkhey.net/wp-content/uploads/2012/01/2nd_page-450x427.jpg" alt="2nd page" title="2nd page" width="450" height="427" class="size-medium wp-image-4146" /></a><p class="wp-caption-text">Kekacuan muncul mulai page kedua dimana hasil yang tidampilkan sebanyak 20 row padahal seharusnya yang di kembalikan hanya 10 row data saja</p></div>
<p style="text-align: justify;">SQL yang kita lihat mungkin akan seperti ini:</p>
<p>[sql]SELECT TOP 20 * FROM tutorial_limit[/sql]</p>
<p style="text-align: justify;">Lanjuut&#8230;. ke 3rd page <img src='http://neo.rizkhey.net/smilies/yahoo_bigsmile.gif' alt='&#58;&#68;' class='wp-smiley' width='18' height='18' title='&#58;&#68;' /> </p>
<div id="attachment_4145" class="wp-caption aligncenter" style="width: 460px"><a href="http://neo.rizkhey.net/wp-content/uploads/2012/01/3rd_page.jpg"><img src="http://neo.rizkhey.net/wp-content/uploads/2012/01/3rd_page-450x427.jpg" alt="3rd page" title="3rd page" width="450" height="427" class="size-medium wp-image-4145" /></a><p class="wp-caption-text">Kekacuan terus berlanjut, untuk halaman ketiga mengembalikan 30 row <img src='http://neo.rizkhey.net/smilies/yahoo_smiley.gif' alt='&#58;&#41;' class='wp-smiley' width='18' height='18' title='&#58;&#41;' /></p></div>
<p style="text-align: justify;">Lanjutnya sudah pasti akan menjadi seperti ini:</p>
<p>[sql]SELECT TOP 30 * FROM tutorial_limit[/sql]</p>
<p style="text-align: justify;">Dengan kata lain semakin ke belakang jumlah record yang ditampilkan akan berjumlah </p>
<div class="codecolorer-container text vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">[jumlah record per page] * [current page]</div></div>
<h4>Penyelesaian</h4>
<p style="text-align: justify;">Untuk menyelesaikan masalah ini, kita bisa membuka file di dalam folder </p>
<p>Untuk yang menggunakan <strong><em>mssql</em></strong> extension</p>
<div class="codecolorer-container text vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">system/database/drivers/mssql/mmsql_driver.php</div></div>
<p>Untuk yang menggunakan <strong><em>sqlsrv</em></strong> extension</p>
<div class="codecolorer-container text vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">system/database/drivers/sqlsrv/sqlsrv_driver.php</div></div>
<p style="text-align: justify;">Carilah method &#8220;<em>_limit</em>&#8221; di file yang Anda buka(di kedua driver baik sqlsrv atau mssql berisi kode yang sama persis):</p>
<p>[php]<br />
/**<br />
	 * Limit string<br />
	 *<br />
	 * Generates a platform-specific LIMIT clause<br />
	 *<br />
	 * @access	public<br />
	 * @param	string	the sql query string<br />
	 * @param	integer	the number of rows to limit the query to<br />
	 * @param	integer	the offset value<br />
	 * @return	string<br />
	 */<br />
	function _limit($sql, $limit, $offset)<br />
	{<br />
		$i = $limit + $offset;</p>
<p>		return preg_replace(&#8216;/(^\SELECT (DISTINCT)?)/i&#8217;,'\\1 TOP &#8216;.$i.&#8217; &#8216;, $sql);<br />
	}<br />
[/php]</p>
<p style="text-align: justify;">Saya pernah membahas sebelumnya bagaimana melimit hasil query Microsoft SQL Server di level database dan bukan di level PHP (<a href="http://neo.rizkhey.net/2012/01/4100-emulate-microsoft-sql-server-select-limit2005-and-above" title="Emulate Microsoft SQL Server Select Limit(2005 and above)">disini</a>), dalam kasus ini saya akan menggunakan kode serupa agar fungsi limit untuk driver Microsoft SQL server di CI ini(baik menggunakan <em>mssql </em>ataupun <em>sqlsrv</em>) dapat berjalan seperti seharusnya. Caranya replace seluruh isi method &#8220;<em>__limit</em>&#8221; menjadi seperti snippet berikut ini:</p>
<p>[php]<br />
    /**<br />
	 * Limit string<br />
	 *<br />
	 * Generates a platform-specific LIMIT clause<br />
	 *<br />
	 * @access	public<br />
	 * @param	string	the sql query string<br />
	 * @param	integer	the number of rows to limit the query to<br />
	 * @param	integer	the offset value<br />
	 * @return	string<br />
	 */<br />
	function _limit($sql, $limit, $offset)<br />
	{</p>
<p>		$sql = str_replace(&#8220;\n&#8221;, &#8221; &#8220;, $sql);</p>
<p>		$orderby = stristr($sql, &#8216;ORDER BY&#8217;);</p>
<p>		if (!$orderby)<br />
		{<br />
			$over = &#8216;ORDER BY (SELECT 0)&#8217;;<br />
		}<br />
		else<br />
		{<br />
			$over = preg_replace(&#8216;/\&#8221;[^,]*\&#8221;.\&#8221;([^,]*)\&#8221;/i&#8217;, &#8216;&#8221;inner_tbl&#8221;.&#8221;$1&#8243;&#8216;, $orderby);<br />
		}</p>
<p>		// Remove ORDER BY clause from $sql<br />
		$sql = preg_replace(&#8216;/\s+ORDER BY(.*)/&#8217;, &#8221;, $sql);</p>
<p>		// Add ORDER BY clause as an argument for ROW_NUMBER()<br />
		$sql = &#8220;SELECT ROW_NUMBER() OVER ($over) AS \&#8221;ZEND_DB_ROWNUM\&#8221;, * FROM ($sql) AS inner_tbl&#8221;;</p>
<p>		$start = $offset + 1;<br />
		$end = $offset + $limit;</p>
<p>		$sql = &#8220;WITH outer_tbl AS ($sql) SELECT * FROM outer_tbl WHERE ZEND_DB_ROWNUM BETWEEN $start AND $end&#8221;;</p>
<p>		return $sql;<br />
	}<br />
[/php] </p>
<blockquote><p style="text-align: justify;">Setelah diubah save file driver tersebut. Apabila Anda menggunakan extension &#8220;<em>sqlsrv</em>&#8221; ada sedikit masalah yang harus dihadapi lagi, apabila Anda merefresh halaman pagination, maka Anda tidak akan menampilkan satu row datapun, tetapi pagination berjalan tanpa ada error/warning. </p>
<p style="text-align: justify;">Hal ini diakibatkan karena masih ada Bug pada driver library SQLSRV dari Microsoft(sampai yang saat ini saya gunakan versi 2.0) dimana pada query yang complex, fungsi yang digunakan untuk me-<em>return</em> jumlah row(<em><strong>sqlsrv_num_rows</strong></em>) akan mereturn nilai &#8220;-1&#8243; dan bukan jumlah row yang dikembalikan. Sehingga otomatis tidak mengembalikan apapun. Untuk mengatasinya, Anda bisa mengedit file &#8220;<strong>system\database\drivers\sqlsrv\sqlsrv_result.php</strong>&#8221; carilah method &#8220;<strong>num_rows</strong>&#8220;. Ubah kode dari:</p>
<p>[php]<br />
    function num_rows()<br />
	{<br />
		return @sqlsrv_num_rows($this->result_id);<br />
	}<br />
[/php]<br />
menjadi:<br />
[php]<br />
    function num_rows()<br />
	{<br />
		$num_row = @sqlsrv_num_rows($this->result_id);<br />
		if ( $num_row == -1 ){ return 1; }<br />
                else { return $num_row; }</p>
<p>	}<br />
[/php]</p>
<p style="text-align: justify;">Sekarang apabila Anda save dan coba refresh, seharusnya sudah normal. Ini dikarenakan dalam class html table akan mengecek apakah object hasil query yang diberikan memiliki result > 0 atau tidak. Secara koding akan seperti ini:</p>
<p>[php]<br />
if ( $query->num_rows() > 0 ){<br />
 //do something like printing row data/etc<br />
}<br />
[/php]</p>
<p style="text-align: justify;">Tetapi karena hasil dari method &#8220;num_rows()&#8221; adalah -1 sehingga kondisi tidak terpenuhi maka PHP tidak menulis apapun. Mod diatas digunakan untuk mengakali, apabila yang direturn(oleh sqlsrv library dalam PHP) adalah -1, maka dari si driver(dalam CI db driver) akan mereturn nilai 1 sehingga kondisi terpenuhi dan <em>loop </em>untuk menulis hasil row akan berjalan.</p>
<p style="text-align: justify;">Hal ini akan selalu terjadi apabila Anda menggunakan perintah <strong>limit</strong> di Active record class. Apabila Anda ingin mengetahui jumlah row yang dihasilkan secara pasti, saya biasa mengakali dengan perintah dasar &#8220;<strong>count</strong>&#8221; dalam PHP.</p>
<p>[php]<br />
$real_num_row = count($query->result_array());<br />
[/php]
</p></blockquote>
<p>Okay.. let&#8217;s roll&#8230; kita lihat hasilnya <img src='http://neo.rizkhey.net/smilies/yahoo_smiley.gif' alt='&#58;&#41;' class='wp-smiley' width='18' height='18' title='&#58;&#41;' /></p>
<div id="attachment_4162" class="wp-caption aligncenter" style="width: 460px"><a href="http://neo.rizkhey.net/wp-content/uploads/2012/01/1st_fix.jpg"><img src="http://neo.rizkhey.net/wp-content/uploads/2012/01/1st_fix-450x295.jpg" alt="1st page FIX" title="1st page FIX" width="450" height="295" class="size-medium wp-image-4162" /></a><p class="wp-caption-text">1st page FIX (yay... tentu saja, sejak semula masalah tidak timbul di halaman pertama <img src='http://neo.rizkhey.net/smilies/yahoo_smiley.gif' alt='&#58;&#41;' class='wp-smiley' width='18' height='18' title='&#58;&#41;' /> )</p></div>
<p>Lanjut ke halaman kedua yang mana sebelum kita modifikasi jumlah row yang muncul berjumlah 10&#8230; dan hasilnya&#8230;.</p>
<div id="attachment_4163" class="wp-caption aligncenter" style="width: 460px"><a href="http://neo.rizkhey.net/wp-content/uploads/2012/01/2nd_fix.jpg"><img src="http://neo.rizkhey.net/wp-content/uploads/2012/01/2nd_fix-450x295.jpg" alt="2nd Page Fix" title="2nd Page Fix" width="450" height="295" class="size-medium wp-image-4163" /></a><p class="wp-caption-text">Yeah, Halaman kedua masalah selesai... tidak ada lagi 20 row yang muncul</p></div>
<p>Ok fix&#8230; mari kita langsung lompat ke halaman yang agak jauh, dan hasilnya&#8230;.</p>
<div id="attachment_4161" class="wp-caption aligncenter" style="width: 460px"><a href="http://neo.rizkhey.net/wp-content/uploads/2012/01/fix.jpg"><img src="http://neo.rizkhey.net/wp-content/uploads/2012/01/fix-450x304.jpg" alt="Page 28, FIX!!" title="Page 28, FIX!!" width="450" height="304" class="size-medium wp-image-4161" /></a><p class="wp-caption-text">Yes, we have no problem now <img src='http://neo.rizkhey.net/smilies/yahoo_smiley.gif' alt='&#58;&#41;' class='wp-smiley' width='18' height='18' title='&#58;&#41;' /></p></div>
<p>Apabila Anda perhatikan, dalam setiap list akan menambahkan satu kolom bernama &#8216;ZEND_DB_ROWNUM&#8217;. Anda dapat sembunyikan kolom tersebut secara manual.</p>
<p>Thankyou <img src='http://neo.rizkhey.net/smilies/yahoo_bigsmile.gif' alt='&#58;&#68;' class='wp-smiley' width='18' height='18' title='&#58;&#68;' /> </p>
<img src="http://neo.rizkhey.net/?ak_action=api_record_view&id=4136&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://neo.rizkhey.net/2012/01/4136-fixing-select-limit-issue-for-microsoft-sql-server-driver-in-codeigniter/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQLSRV db Driver bug on Codeigniter 2.x.x</title>
		<link>http://neo.rizkhey.net/2012/01/4121-sqlsrv-db-driver-bug-on-codeigniter-2-x-x</link>
		<comments>http://neo.rizkhey.net/2012/01/4121-sqlsrv-db-driver-bug-on-codeigniter-2-x-x#comments</comments>
		<pubDate>Thu, 12 Jan 2012 05:10:10 +0000</pubDate>
		<dc:creator>リズキ</dc:creator>
				<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://neo.rizkhey.net/?p=4121</guid>
		<description><![CDATA[Setelah sekian lama akhirnya di Codeigniter 2.x.x menyediakan sebuah driver untuk SQL Server menggunakan SQLSRV. Sesuatu yang menarik dan bagus karena mulai di PHP 5.3 fungsi library "mssql" sudah tidak disertakan lagi.. Sayang... di awal setting config saja sampai di Code igniter 2.10 langsung error... Dalam post ini akan menjelaskan bagaimana cara memperbaiki driver sqlsrv agar bekerja dengan baik.]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Beberapa dari Anda mungkin bertanya, kenapa saya menggunakan Ms. SQL Server untuk membuat program dengan PHP. Agak aneh dan tidak cocok, beberapa dari Anda mungkin berpikiran bahwa Ms SQL server adalah DBMS yang agak ngeselin(karena hanya jalan di Microsoft platform). Well inilah alasannya:</p>
<blockquote>
<p style="text-align: justify;">Kantor saya adalah salah satu dari banyak yang dulunya banyak menggunakan aplikasi <em>.net</em> yang cukup &#8216;berumur&#8217; sehingga masih banyak database SQL Server berceceran. Tetapi pada dasarnya sebuah perusahaan yang terus berkembang, kebutuhan terus bertambah dan selalu ada istilah &#8220;<em>tambal sulam</em>&#8221; sampai pada suatu titik akhirnya diputuskan membuat aplikasi baru dan kadang mereka masih ingin mempertahankan database lama(terikat lisensi yang sudah dibeli mungkin <img src='http://neo.rizkhey.net/smilies/yahoo_smiley.gif' alt='&#58;&#41;' class='wp-smiley' width='18' height='18' title='&#58;&#41;' /> ). Sehingga mau tidak mau walupun saya menggunakan PHP untuk membuat program mereka, saya menggunakan SQL server sebagai databasenya.</p>
</blockquote>
<p><span id="more-4121"></span></p>
<p style="text-align: justify;">Saat saya mengupgrade development <em>environment</em> ke VC 9 untuk PHP, bukanlah tanpa tantangan terutama datang dari database connection ke Microsoft SQL server dimana library standart (mssql) sudah tidak ada lagi semenjak versi 5.3 series. Mau tidak mau  salah satu yang bisa saya gunakan adalah <a title="SQLSRV, native Microsoft SQL Server Extension for PHP" href="http://neo.rizkhey.net/2011/04/3913-sqlsrv-native-microsoft-sql-server-extension-for-php">native SQL Server driver for PHP</a>(<em>sqlsrv</em>). Kebetulan beberapa waktu lalu saya memutuskan untuk terjun ke salah satu Framework termudah, yaitu Codeigniter. Saya punya rencana untuk menggunakan CI ini sejak lama, tetapi baru di versi 2.x.x ini saya akhirnya bisa terjun ke dalam CI karena sudah menyediakan driver native SQLSRV. Tetapi sayang tidak semulus itu. Error langsung muncul ketika saya meload halaman web, walau configuration database sudah benar.</p>
<div id="attachment_4122" class="wp-caption aligncenter" style="width: 460px"><a href="http://neo.rizkhey.net/wp-content/uploads/2012/01/error.jpg"><img src="http://neo.rizkhey.net/wp-content/uploads/2012/01/error-450x329.jpg" alt="CI error, cannot connect to SQL server database melalui driver SQLSRV walau config sudah benar" title="CI error, cannot connect to SQL server database melalui driver SQLSRV walau config sudah benar" width="450" height="329" class="size-medium wp-image-4122" /></a><p class="wp-caption-text">CI error, cannot connect to SQL server database melalui driver SQLSRV walau config sudah benar</p></div>
<p>Config yang sata gunakan kurang lebih seperti ini(application/config/database.php):</p>
<p>[php highlight_lines="60" num="51"]<br />
$active_group = &#8216;default&#8217;;<br />
$active_record = TRUE;</p>
<p>$db['default']['hostname'] = &#8216;.&#8217;;<br />
$db['default']['username'] = &#8216;sa&#8217;;<br />
$db['default']['password'] = &#8216;sa&#8217;;<br />
$db['default']['database'] = &#8216;tutorial&#8217;;<br />
$db['default']['dbdriver'] = &#8216;sqlsrv&#8217;;<br />
$db['default']['dbprefix'] = &#8221;;<br />
$db['default']['pconnect'] = TRUE;<br />
$db['default']['db_debug'] = TRUE;<br />
$db['default']['cache_on'] = FALSE;<br />
$db['default']['cachedir'] = &#8221;;<br />
$db['default']['char_set'] = &#8216;utf8&#8242;;<br />
$db['default']['dbcollat'] = &#8216;utf8_general_ci&#8217;;<br />
$db['default']['swap_pre'] = &#8221;;<br />
$db['default']['autoinit'] = TRUE;<br />
$db['default']['stricton'] = FALSE;<br />
[/php]</p>
<p style="text-align: justify;">Lalu pada config autoload(application/config/autoload.php), saya melakukan auto loading untuk library database</p>
<p>[php num="55"]$autoload['libraries'] = array(&#8216;database&#8217;);[/php]</p>
<p>Dan hasilnya&#8230; adalah gambar di atas saat meload halaman welcome default CI <img src='http://neo.rizkhey.net/smilies/yahoo_smiley.gif' alt='&#58;&#41;' class='wp-smiley' width='18' height='18' title='&#58;&#41;' /></p>
<p style="text-align: justify;">So&#8230; dimana saya salah? ataukah Bug?</p>
<p style="text-align: justify;">Contoh di atas saya menggunakan versi terakhir(2.1.0), yang notabene juga terjadi di versi sebelumnya(2.0.3). Setelah mencoba-coba akhirnya ada hal yang harus diperbaiki di file &#8220;<strong>sqlsrv_driver.php</strong>&#8220;(<em>system\database\drivers\sqlsrv\sqlsrv_driver.php</em>).</p>
<p style="text-align: justify;">Kesalahan terjadi sangat simple, pada sekitar line 89 pada method &#8216;db_pcconnect&#8217;</p>
<p>[php num="81"]<br />
     /**<br />
	 * Persistent database connection<br />
	 *<br />
	 * @access	private called by the base class<br />
	 * @return	resource<br />
	 */<br />
	function db_pconnect()<br />
	{<br />
		$this->db_connect(TRUE);<br />
	}<br />
[/php]</p>
<p>Perhatikan keterangan dokumentasi dari method itu pada tag <em><strong>@return</strong></em> harusnya me-return sebuah resource, tetapi nyatanya tidak ada syntax return disini, sehingga pastinya akan dianggap false oleh si pemanggil. Akibatnya koneksi dianggap gagal. Coba tambahkan kata &#8220;return&#8221; di awal line 89, sehingga menjadi:</p>
<p>[php num="81"]<br />
    /**<br />
	 * Persistent database connection<br />
	 *<br />
	 * @access	private called by the base class<br />
	 * @return	resource<br />
	 */<br />
	function db_pconnect()<br />
	{<br />
		return $this->db_connect(TRUE);<br />
	}<br />
[/php]</p>
<p>Simpan dan coba refresh halaman, seharusnya error sudah tidak nampak lagi.</p>
<p>Langkah ini sebenarnya tidak perlu apabila Anda mengeset option &#8220;pcconnect&#8221; ke FALSE(lihat line 60 pada config code di atas).<br />
[php num="60"]$db['default']['pconnect'] = FALSE;[/php]</p>
<img src="http://neo.rizkhey.net/?ak_action=api_record_view&id=4121&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://neo.rizkhey.net/2012/01/4121-sqlsrv-db-driver-bug-on-codeigniter-2-x-x/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Emulate Microsoft SQL Server Select Limit(2005 and above)</title>
		<link>http://neo.rizkhey.net/2012/01/4100-emulate-microsoft-sql-server-select-limit2005-and-above</link>
		<comments>http://neo.rizkhey.net/2012/01/4100-emulate-microsoft-sql-server-select-limit2005-and-above#comments</comments>
		<pubDate>Thu, 12 Jan 2012 03:17:10 +0000</pubDate>
		<dc:creator>リズキ</dc:creator>
				<category><![CDATA[Guide]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[limit]]></category>
		<category><![CDATA[Microsoft SQL Server]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://neo.rizkhey.net/?p=4100</guid>
		<description><![CDATA[SQL server adalah salah satu DBMS yang cukup favorit(Selain MySQL yang free atau Oracle yang memang sudah jadi pentolnya DBMS). Beberapa kali saya menggunakan SQL server sebagai DBMS project saya. Karena saya menggunakan PHP sebagai main programing language, agak sulit awalnya saat saya mencari cara untuk melakukan pagination dengan menggunakan SQL server.
Latar belakang kenapa saya [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">SQL server adalah salah satu DBMS yang cukup favorit(Selain MySQL yang free atau Oracle yang memang sudah jadi pentolnya DBMS). Beberapa kali saya menggunakan SQL server sebagai DBMS project saya. Karena saya menggunakan PHP sebagai main programing language, agak sulit awalnya saat saya mencari cara untuk melakukan pagination dengan menggunakan SQL server.</p>
<p style="text-align: justify;">Latar belakang kenapa saya menulis post ini adalah:</p>
<p><span id="more-4100"></span></p>
<blockquote style="text-align: justify;"><p>Seperti yang kita tahu seperti MySQL atau Postgre SQL memiliki fungsi LIMIT(Yang katanya bukan merupakan standart SQL internasional) dan sangat mudah untuk melimit hasil query, tetapi tidak untuk MSSQL server.</p>
<p>Saya  masih ingat dulu akhirnya saya bermain dengan XML data source dengan menggunakan Adobe Spry dataset untuk melakukan paging, hanya saja pastinya karena diload semua, apabila data sudah amat banyak bukan main lamanya.</p>
<p>Setelah beberapa lama akhirnya saya menggunakan Database Abstraction Layer dengan menggunakan <a title="ADODB for PHP" href="http://adodb.sourceforge.net/" target="_blank">ADODB</a> untuk PHP. library yang besar ini mempunyai virtualisasi untuk LIMIT function. Tetapi apabila kita tinjau lebih dalam virtualisasi Limit, yang disediakan ternyata hanya akan membantu sesaat. Kenapa demikian?</p>
<p>Banyak yang mengakali fungsi limit untuk SQL server di PHP menggunakan perintah TOP di SQL querynya, kemudian return data ke pengakses berdasarkan logic di PHP. Dengan kata lain semakin besar offsetnya, akan semakin besar overhead yang terjadi. Sebagai contoh mungkin apabila kita mau melihat 40 record pertama, library ADODB akan membuat syntax </p>
<p>[sql]SELECT TOP 40 * FROM some_table[/sql]</p>
<p>Karena kasusnya adalah 40 row pertama sehingga akan langsung dikembalikan semuanya. Tetapi apabila kita hendak melihat 40 row kedua(di halaman/pahge kedua misalnya), maka library ADODB  akan membuat query:<br />
[sql]SELECT TOP 80 * FROM some_table[/sql]<br />
Lalu hasilnya akan me-<em>return</em> 80 row data, kemudian diseleksi lagi untuk row 0-39 akan diabaikan, dan row 40-79 akan di return. </p>
<p>Okay&#8230; itu masih <em>acceptable  </em>karena isinya hanya under 100 row&#8230; bahkan 1000 row masih bisa dibilang tidak begitu pengaruh&#8230; lalu apabila yang kita hendak lakukan pagination adalah 200.000 row? maka apabila kita ingin melihat halaman terakhir, maka ke 200.000 row akan di retrieve oleh PHP dan hanya diambil 40 row terakhir saja. Inilah yang membuat overhead.</p>
</blockquote>
<p><!--more--></p>
<p style="text-align: justify;">Saya  masih ingat dulu untuk melakukan Limitasi Select data, Query harus dirubah cukup panjang. Pastinya tidak bisa dibilang query standard lagi dan tidak bisa diterapkan secara mudah dengan banyak query yang sudah ada(aka harus dibongkar query-nya). Tentunya bukan sesuatu yang enak di dengar oleh telinga Developer <img src='http://neo.rizkhey.net/smilies/yahoo_bigsmile.gif' alt='&#58;&#68;' class='wp-smiley' width='18' height='18' title='&#58;&#68;' /> . Setelah kemarin saya iseng memulai belajar Zend Framework mata saya tertuju di salah satu library <a title="Zend Framework" href="http://framework.zend.com/" target="_blank">Zend Framework</a> yaitu &#8220;db&#8221; yang di dalamnya sudah terdapat adapter untuk extensi &#8220;<em><a href="http://neo.rizkhey.net/2011/04/3913-sqlsrv-native-microsoft-sql-server-extension-for-php" title="SQLSRV, native Microsoft SQL Server Extension for PHP">sqlsrv</a></em>&#8221; Dan setelah dibaca sedikit demi sedikit saya mengambil satu bagian yang menarik yang tugasnya untuk melakukan LIMIT(Little modified <img src='http://neo.rizkhey.net/smilies/yahoo_bigsmile.gif' alt='&#58;&#68;' class='wp-smiley' width='18' height='18' title='&#58;&#68;' /> ).</p>
<p>[php]<br />
/**<br />
* Adds an adapter-specific LIMIT clause to the SELECT statement.<br />
*<br />
* @param string $sql<br />
* @param integer $count<br />
* @param integer $offset OPTIONAL<br />
* @return string<br />
* @throws Zend_Db_Adapter_Sqlsrv_Exception<br />
*/<br />
function limit($sql, $count, $offset = 0)<br />
{<br />
	$orderby = stristr($sql, &#8216;ORDER BY&#8217;);</p>
<p>	if (!$orderby) {<br />
		$over = &#8216;ORDER BY (SELECT 0)&#8217;;<br />
	} else {<br />
		$over = preg_replace(&#8216;/\&#8221;[^,]*\&#8221;.\&#8221;([^,]*)\&#8221;/i&#8217;, &#8216;&#8221;inner_tbl&#8221;.&#8221;$1&#8243;&#8216;, $orderby);<br />
	}</p>
<p>	// Remove ORDER BY clause from $sql<br />
	$sql = preg_replace(&#8216;/\s+ORDER BY(.*)/&#8217;, &#8221;, $sql);</p>
<p>	// Add ORDER BY clause as an argument for ROW_NUMBER()<br />
	$sql = &#8220;SELECT ROW_NUMBER() OVER ($over) AS \&#8221;ZEND_DB_ROWNUM\&#8221;, * FROM ($sql) AS inner_tbl&#8221;;</p>
<p>	$start = $offset + 1;<br />
	$end = $offset + $count;</p>
<p>	$sql = &#8220;WITH outer_tbl AS ($sql) SELECT * FROM outer_tbl WHERE CAST(ZEND_DB_ROWNUM as bigint ) BETWEEN $start AND $end&#8221;;</p>
<p>	return $sql;<br />
}<br />
[/php]</p>
<p style="text-align: justify;">Fungsi diatas manambahkan SQL query menjadi agak panjang, tetapi paling tidak sudah dibantu pembuatnnya tinggal dibungkus dalam class Database Abstraction layer milik Anda atau digunakan ala kadarnya <img src='http://neo.rizkhey.net/smilies/yahoo_smiley.gif' alt='&#58;&#41;' class='wp-smiley' width='18' height='18' title='&#58;&#41;' /></p>
<p style="text-align: justify;">Contoh pemakaian(apabila menggunakan <strong><em><a href="http://neo.rizkhey.net/2011/04/3913-sqlsrv-native-microsoft-sql-server-extension-for-php" title="SQLSRV, native Microsoft SQL Server Extension for PHP">sqlsrv </a></em></strong>extension, kurang lebih sama dengan <strong><em>mssql</em></strong> function biasa):</p>
<p>[php]<br />
$conn = sqlsrv_connect( &#8220;SERVERADDRS/IPADDRESS&#8221;, array(&#8220;UID&#8221; => &#8216;sqlserv_userid&#8217;, &#8220;PWD&#8221; => &#8216;sqlserv_password&#8217;, &#8220;Database&#8221;=>&#8221;dbname&#8221;));<br />
if( $conn === false )<br />
{<br />
	echo &#8220;Could not connect.\n&#8221;;<br />
	die( print_r( sqlsrv_errors(), true));<br />
}</p>
<p>$str = &#8220;SELECT * FROM TBObject WHERE 1=1 ORDER BY Name &#8220;;</p>
<p>//fetch data from record 11 of 20 record<br />
$stmt = sqlsrv_query( $conn, limit($str,20,11), array(), array( &#8220;Scrollable&#8221; => SQLSRV_CURSOR_KEYSET ));<br />
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_BOTH))<br />
{<br />
	var_dump($row);<br />
}<br />
[/php]</p>
<p>Contoh dengan <strong><em>mssql</em></strong> Function:<br />
[php]<br />
mssql_connect(&#8217;10.0.0.23&#8242;, &#8216;sa&#8217;, &#8216;xxxx&#8217;);<br />
mssql_select_db(&#8216;dbname&#8217;);</p>
<p>$str = &#8220;SELECT * FROM TBObject WHERE 1=1 ORDER BY Name &#8220;;</p>
<p>$result = mssql_query(limit($str, 20,11));</p>
<p>while($r = mssql_fetch_array($result))<br />
{<br />
	var_dump($r);<br />
}<br />
[/php]</p>
<p style="text-align: justify;">Fungsi diatas akan mengubah Query seperti:</p>
<p>[sql]SELECT * FROM TBObject WHERE 1=1 ORDER BY Name[/sql]</p>
<p style="text-align: justify;">Fungsi diatas akan mengubah Query seperti:</p>
<p>[sql]WITH outer_tbl AS (SELECT ROW_NUMBER() OVER (ORDER BY Name ) AS &#8220;ZEND_DB_ROWNUM&#8221;, * FROM (SELECT * FROM TBObject WHERE 1=1) AS inner_tbl) SELECT * FROM outer_tbl WHERE CAST(ZEND_DB_ROWNUM as bigint ) BETWEEN 12 AND 31[/sql]</p>
<p style="text-align: justify;">Good Luck <img src='http://neo.rizkhey.net/smilies/yahoo_bigsmile.gif' alt='&#58;&#68;' class='wp-smiley' width='18' height='18' title='&#58;&#68;' /></p>
<blockquote><p>Artikel ini sebenarnya pernah saya tulis, hanya tak sengaja terhapus saat error pada server terjadi beberapa waktu lalu, sehingga saya rewrite ulang dengan draft yang pernah saya buat <img src='http://neo.rizkhey.net/smilies/yahoo_smiley.gif' alt='&#58;&#41;' class='wp-smiley' width='18' height='18' title='&#58;&#41;' /> </p></blockquote>
<img src="http://neo.rizkhey.net/?ak_action=api_record_view&id=4100&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://neo.rizkhey.net/2012/01/4100-emulate-microsoft-sql-server-select-limit2005-and-above/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

