<?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>Blog of Dimaz &#187; Programming</title>
	<atom:link href="http://dimaz.web.id/category/computer/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://dimaz.web.id</link>
	<description>The story of my mind</description>
	<lastBuildDate>Sun, 13 May 2012 23:56:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Kompresi Executable Files Menggunakan UPX</title>
		<link>http://dimaz.web.id/computer/programming/kompresi-executable-files-menggunakan-upx/</link>
		<comments>http://dimaz.web.id/computer/programming/kompresi-executable-files-menggunakan-upx/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 10:03:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[executable]]></category>
		<category><![CDATA[kompresi]]></category>
		<category><![CDATA[UPX]]></category>

		<guid isPermaLink="false">http://dimaz.web.id/?p=1916</guid>
		<description><![CDATA[Hari ini aku belajar beberapa hal. Salah satunya adalah ide tentang mengkompres file executable karena file exe aplikasiku kini telah mencapai hampir 10MB. Di zaman modern ini ukuran 10MB mungkin tidak banyak artinya, tetapi lain halnya apabila aku harus mentransport file tersebut ke komputer klien setiap kali ada update. Nah, idenya tentu saja mengkompres file [...]]]></description>
			<content:encoded><![CDATA[<p>Hari ini aku belajar beberapa hal. Salah satunya adalah ide tentang mengkompres file executable karena file exe aplikasiku kini telah mencapai hampir 10MB. Di zaman modern ini ukuran 10MB mungkin tidak banyak artinya, tetapi lain halnya apabila aku harus mentransport file tersebut ke komputer klien setiap kali ada update. Nah, idenya tentu saja mengkompres file tersebut agar ukurannya tidak terlalu besar. Salah satu opsinya adalah menggunakan UPX.<br />
<span id="more-1916"></span><br />
UPX ini cukup populer di kalangan pembuat virus, karena seringkali virus dikompres menggunakan UPX sehingga ukurannya jadi mengecil. Padahal UPX sendiri bukan program jahat, hanya disalahgunakan saja. Nah, kita dapat memanfaatkan UPX untuk mengecilkan ukuran file exe kita.<br />
Anda bisa mendownload aplikasi UPX yang opensource di <a href="http://upx.sourceforge.net/">sini</a>. UPX ini multiplatform sehingga tidak hanya dapat diterapkan dalam sistem operasi Windows saja, tetapi juga dalam keluarga Linux.<br />
UPX ini dijalankan dalam lingkungan CLI, command line interface.</p>
<blockquote><p>
                       Ultimate Packer for eXecutables<br />
                          Copyright (C) 1996 &#8211; 2010<br />
UPX 3.07w       Markus Oberhumer, Laszlo Molnar &#038; John Reiser   Sep 08th 2010</p>
<p>Usage: upx [-123456789dlthVL] [-qvfk] [-o file] file..</p>
<p>Commands:<br />
  -1     compress faster                   -9    compress better<br />
  -d     decompress                        -l    list compressed file<br />
  -t     test compressed file              -V    display version number<br />
  -h     give more help                    -L    display software license<br />
Options:<br />
  -q     be quiet                          -v    be verbose<br />
  -oFILE write output to &#8216;FILE&#8217;<br />
  -f     force compression of suspicious files<br />
  -k     keep backup files<br />
file..   executables to (de)compress</p>
<p>Type &#8216;upx &#8211;help&#8217; for more detailed help.</p>
<p>UPX comes with ABSOLUTELY NO WARRANTY; for details visit http://upx.sf.net
</p></blockquote>
<p>Apabila Anda bekerja dalam lingkungan Delphi IDE, Anda dapat mengintegrasikannya dalam IDE. Caranya, melalui menu tools -> configure tools.<br />
Klik tombol [Add...], kemudian isikan isian berikut</p>
<p>Title = UPX EXE COMPRESSOR // akan muncul di toolbar<br />
Program = C:\bin\upx307w\upx.exe // tergantung path Anda menyimpan aplikasi upx<br />
Working dir //kosongkan saja<br />
Parameters = -9 $EXENAME</p>
<p>Parameter -9 ini adalah kompresi maksimal, walaupun memakan waktu yang lama.<br />
Untuk menjalankannya, jalankan melalui menu Tools -> UPX EXE COMPRESSOR (atau tergantung nama yang Anda masukkan tadi).</p>
<h4>Incoming search terms for the article:</h4><ul><li><a href="http://dimaz.web.id/computer/programming/kompresi-executable-files-menggunakan-upx/" title="upx307w">upx307w</a> (1)</li></ul><div class="al2fb_like_button"><div id="fb-root"></div><script type="text/javascript">
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=290579107645395";
  fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "facebook-jssdk"));
</script>
<fb:like href="http://dimaz.web.id/computer/programming/kompresi-executable-files-menggunakan-upx/" layout="standard" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div><div class="al2fb_comments_plugin"><div id="fb-root"></div><script type="text/javascript">
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=290579107645395";
  fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "facebook-jssdk"));
</script>
<fb:comments num_posts="2" width="450" colorscheme="light" href="http://dimaz.web.id/computer/programming/kompresi-executable-files-menggunakan-upx/"></fb:comments></div>]]></content:encoded>
			<wfw:commentRss>http://dimaz.web.id/computer/programming/kompresi-executable-files-menggunakan-upx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Membuat Auto Log Off Pada Delphi</title>
		<link>http://dimaz.web.id/computer/programming/membuat-auto-log-off-pada-delphi/</link>
		<comments>http://dimaz.web.id/computer/programming/membuat-auto-log-off-pada-delphi/#comments</comments>
		<pubDate>Mon, 17 Oct 2011 14:39:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[auto log off]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[delphipages]]></category>
		<category><![CDATA[secondsidle]]></category>

		<guid isPermaLink="false">http://dimaz.web.id/?p=1901</guid>
		<description><![CDATA[Dalam proses pembuatan aplikasi, terkadang user menginginkan agar keamanan aplikasinya benar-benar diperhatikan, termasuk auto log off apabila tidak digunakan dalam selang waktu tertentu. Nah, pada Delphi, hal ini mudah dilakukan. Pada intinya, kita harus mengecek idle time aplikasi tersebut, kemudian apabila telah melewati jangka waktu yang telah ditentukan, aplikasi akan menutup seluruh form yang terbuka, [...]]]></description>
			<content:encoded><![CDATA[<p>Dalam proses pembuatan aplikasi, terkadang user menginginkan agar keamanan aplikasinya benar-benar diperhatikan, termasuk auto log off apabila tidak digunakan dalam selang waktu tertentu. Nah, pada Delphi, hal ini mudah dilakukan. Pada intinya, kita harus mengecek idle time aplikasi tersebut, kemudian apabila telah melewati jangka waktu yang telah ditentukan, aplikasi akan menutup seluruh form yang terbuka, termasuk juga mematikan koneksi database.<br />
<span id="more-1901"></span><br />
Yang Anda perlukan hanyalah sebuah komponen Timer dan beberapa baris kode.<br />
Mari kita namakan Timer ini sebagai TimerAutoSignOut dan letakkan di form utama, sebut saja frmMain.<br />
Pertama, kita akan buat global function seperti di bawah ini.</p>
<pre class="brush: delphi; title: ; notranslate">
function SecondsIdle: DWord;
var
   liInfo: TLastInputInfo;
begin
   liInfo.cbSize := SizeOf(TLastInputInfo) ;
   GetLastInputInfo(liInfo) ;
   Result := (GetTickCount - liInfo.dwTime) DIV 1000;
end;
</pre>
<p>Function SecondsIdle akan mengembalikan nilai berapa lama aplikasi telah idle (dalam satuan detik). Hasil dari SecondsIdle ini akan kita evaluasi dengan treshold atau nilai yang telah kita tentukan sebelumnya. Evaluasi akan dipicu oleh Timer yang telah kita buat sebelumnya. Dalam contoh di bawah akan kita set bahwa aplikasi akan menutup jika idle 30 menit (1800 detik).</p>
<pre class="brush: delphi; title: ; notranslate">
procedure TfrmMain.TimerAutoSignOutTimer(Sender: TObject);
var i : integer;
begin
  // auto shutdown jika idle selama 10 detik
  if SecondsIdle &gt;= 1800 then
  begin
    for i := 0 to Screen.FormCount-1 do
    begin
      if Screen.Forms[i] &lt;&gt; self then
      begin
        Screen.Forms[i].Close;
      end;
    end;
  end;
end;
</pre>
<p>Diambil dari berbagai sumber, salah satunya <a href="http://www.delphipages.com/forum/showthread.php?t=75286">Delphipages</a>.</p>
<h4>Incoming search terms for the article:</h4><ul><li><a href="http://dimaz.web.id/computer/programming/membuat-auto-log-off-pada-delphi/" title="membuat antivirus dengan delphi">membuat antivirus dengan delphi</a> (1)</li><li><a href="http://dimaz.web.id/computer/programming/membuat-auto-log-off-pada-delphi/" title="membuat auto shutdown delphi 7">membuat auto shutdown delphi 7</a> (1)</li><li><a href="http://dimaz.web.id/computer/programming/membuat-auto-log-off-pada-delphi/" title="membuat shutdown di delphi 7">membuat shutdown di delphi 7</a> (1)</li></ul><div class="al2fb_like_button"><div id="fb-root"></div><script type="text/javascript">
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=290579107645395";
  fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "facebook-jssdk"));
</script>
<fb:like href="http://dimaz.web.id/computer/programming/membuat-auto-log-off-pada-delphi/" layout="standard" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div><div class="al2fb_comments_plugin"><div id="fb-root"></div><script type="text/javascript">
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=290579107645395";
  fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "facebook-jssdk"));
</script>
<fb:comments num_posts="2" width="450" colorscheme="light" href="http://dimaz.web.id/computer/programming/membuat-auto-log-off-pada-delphi/"></fb:comments></div>]]></content:encoded>
			<wfw:commentRss>http://dimaz.web.id/computer/programming/membuat-auto-log-off-pada-delphi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CakePHP : Oracle TimeStamp Format Error</title>
		<link>http://dimaz.web.id/computer/programming/cakephp-programming/cakephp-oracle-timestamp-format-error/</link>
		<comments>http://dimaz.web.id/computer/programming/cakephp-programming/cakephp-oracle-timestamp-format-error/#comments</comments>
		<pubDate>Sun, 28 Aug 2011 03:00:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[oracle]]></category>

		<guid isPermaLink="false">http://dimaz.web.id/?p=1841</guid>
		<description><![CDATA[Ketika aku bermain-main dengan framework CakePHP dengan database Oracle, aku menemukan error Warning (512): SQL Error: ORA-01843: not a valid month [CORE\cake\libs\model\datasources\dbo_source.php, line 684] Permasalahan dari error di atas adalah karena terjadi perbedaan format timestamp antara CakePHP dan Oracle. Pada Oracle, format TimeStamp adalah &#8216;YYYY-MM-DD HH12:MI:SS AM&#8217;, sedangkan default TimeStamp CakePHP adalah &#8216;YYYY-MM-DD HH24:MI:SS&#8217;. Aku [...]]]></description>
			<content:encoded><![CDATA[<p>Ketika aku bermain-main dengan framework CakePHP dengan database Oracle, aku menemukan error</p>
<blockquote><p>Warning (512): SQL Error: ORA-01843: not a valid month [CORE\cake\libs\model\datasources\dbo_source.php, line 684]</p></blockquote>
<p><span id="more-1841"></span><br />
Permasalahan dari error di atas adalah karena terjadi perbedaan format timestamp antara CakePHP dan Oracle.<br />
Pada Oracle, format TimeStamp adalah &#8216;YYYY-MM-DD HH12:MI:SS AM&#8217;, sedangkan default TimeStamp CakePHP adalah &#8216;YYYY-MM-DD HH24:MI:SS&#8217;. </p>
<p>Aku menemukan solusi dengan menambahkan satu baris perintah pada file \cake\libs\model\datasources\dbo\dbo_oracle.php.<br />
Langkah-langkahnya:<br />
1. Carilah function connect()<br />
2. Skrip asli dari function connect() adalah</p>
<pre class="brush: php; title: ; notranslate">
function connect() {
		$config = $this-&gt;config;
		$this-&gt;connected = false;
		$config['charset'] = !empty($config['charset']) ? $config['charset'] : null;

		if (!$config['persistent']) {
			$this-&gt;connection = @ocilogon($config['login'], $config['password'], $config['database'], $config['charset']);
		} else {
			$this-&gt;connection = @ociplogon($config['login'], $config['password'], $config['database'], $config['charset']);
		}

		if ($this-&gt;connection) {
			$this-&gt;connected = true;
			if (!empty($config['nls_sort'])) {
				$this-&gt;execute('ALTER SESSION SET NLS_SORT='.$config['nls_sort']);
			}

			if (!empty($config['nls_comp'])) {
				$this-&gt;execute('ALTER SESSION SET NLS_COMP='.$config['nls_comp']);
			}
			$this-&gt;execute(&quot;ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'&quot;);

		} else {
			$this-&gt;connected = false;
			$this-&gt;_setError();
			return false;
		}
		return $this-&gt;connected;
	}
</pre>
<p>3. Ubah menjadi</p>
<pre class="brush: php; title: ; notranslate">
function connect() {
		$config = $this-&gt;config;
		$this-&gt;connected = false;
		$config['charset'] = !empty($config['charset']) ? $config['charset'] : null;

		if (!$config['persistent']) {
			$this-&gt;connection = @ocilogon($config['login'], $config['password'], $config['database'], $config['charset']);
		} else {
			$this-&gt;connection = @ociplogon($config['login'], $config['password'], $config['database'], $config['charset']);
		}

		if ($this-&gt;connection) {
			$this-&gt;connected = true;
			if (!empty($config['nls_sort'])) {
				$this-&gt;execute('ALTER SESSION SET NLS_SORT='.$config['nls_sort']);
			}

			if (!empty($config['nls_comp'])) {
				$this-&gt;execute('ALTER SESSION SET NLS_COMP='.$config['nls_comp']);
			}
			$this-&gt;execute(&quot;ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'&quot;);
			//---- DIMAZ MODIFY ----//
			$this-&gt;execute(&quot;ALTER SESSION SET NLS_TIMESTAMP_FORMAT='YYYY-MM-DD HH24:MI:SS'&quot;);
		} else {
			$this-&gt;connected = false;
			$this-&gt;_setError();
			return false;
		}
		return $this-&gt;connected;
	}
</pre>
<p>Anda akan melihat tambahan 1 baris perintah yaitu</p>
<pre class="brush: php; title: ; notranslate"> $this-&gt;execute(&quot;ALTER SESSION SET NLS_TIMESTAMP_FORMAT='YYYY-MM-DD HH24:MI:SS'&quot;); </pre>
<p>yang digunakan untuk mengubah session timestamp format menjadi sama dengan timestamp format milik CakePHP.</p>
<p>Silakan dicoba <img src='http://dimaz.web.id/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="al2fb_like_button"><div id="fb-root"></div><script type="text/javascript">
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=290579107645395";
  fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "facebook-jssdk"));
</script>
<fb:like href="http://dimaz.web.id/computer/programming/cakephp-programming/cakephp-oracle-timestamp-format-error/" layout="standard" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div><div class="al2fb_comments_plugin"><div id="fb-root"></div><script type="text/javascript">
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=290579107645395";
  fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "facebook-jssdk"));
</script>
<fb:comments num_posts="2" width="450" colorscheme="light" href="http://dimaz.web.id/computer/programming/cakephp-programming/cakephp-oracle-timestamp-format-error/"></fb:comments></div>]]></content:encoded>
			<wfw:commentRss>http://dimaz.web.id/computer/programming/cakephp-programming/cakephp-oracle-timestamp-format-error/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Deferred Constraints Pada Oracle</title>
		<link>http://dimaz.web.id/computer/programming/basis-data-programming-computer/deferred-constraints-pada-oracle/</link>
		<comments>http://dimaz.web.id/computer/programming/basis-data-programming-computer/deferred-constraints-pada-oracle/#comments</comments>
		<pubDate>Sun, 17 Jul 2011 10:51:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Basis Data]]></category>
		<category><![CDATA[deferrable]]></category>
		<category><![CDATA[deferred]]></category>
		<category><![CDATA[initially deferred]]></category>
		<category><![CDATA[oracle]]></category>

		<guid isPermaLink="false">http://dimaz.web.id/?p=1796</guid>
		<description><![CDATA[Kita tahu bahwa referential integrity merupakan hal yang sangat penting untuk menjaga integritas data, terutama dalam sistem relational database management system (RDBMS) di mana tabel-tabel terhubung satu sama lain dalam hubungan (relasi) tertentu. Akan tetapi ada kalanya kita perlu membuat pengecualian karena desain yang kita buat menuntut hal itu. Oracle mensupport penundaan evaluasi constraint dengan [...]]]></description>
			<content:encoded><![CDATA[<p>Kita tahu bahwa referential integrity merupakan hal yang sangat penting untuk menjaga integritas data, terutama dalam sistem relational database management system (RDBMS) di mana tabel-tabel terhubung satu sama lain dalam hubungan (relasi) tertentu. Akan tetapi ada kalanya kita perlu membuat pengecualian karena desain yang kita buat menuntut hal itu. Oracle mensupport penundaan evaluasi constraint dengan fasilitas <strong>DEFERRED</strong>.<br />
<span id="more-1796"></span><br />
Saya akan mengambil contoh kasus sederhana dari <a href="http://infolab.stanford.edu/~ullman/fcdb/oracle/or-triggers.html" target = "_blank">sini</a>. Kasus ayam dan telur. Kita akan membuat dua tabel yakni chicken dan egg (catatan : struktur tabel hanya merupakan perumpamaan dari kasus deferred constraints dan tidak memperhatikan proses normalisasi maupun aturan desain database yang baik).</p>
<pre class="brush: sql; title: ; notranslate">
CREATE TABLE chicken (cID INT PRIMARY KEY,
                      eID INT REFERENCES egg(eID));
CREATE TABLE egg(eID INT PRIMARY KEY,
                 cID INT REFERENCES chicken(cID));</pre>
<p>Nah, tabel chicken ternyata memiliki foreign key eID yang merupakan primary key dari tabel egg, begitu juga tabel egg memiliki foreign key cID yang merupakan primary key dari tabel chicken. Dengan struktur yang seperti ini, bagaimana kita bisa menginput data chicken sebelum menginput data egg, atau sebaliknya, menginput data egg sebelum menginput data chicken? Dengan kata lain, data mana yang seharusnya kita input terlebih dahulu, chicken atau egg?<br />
Untuk memecahkan masalah ini, kita perlu melakukan modifikasi struktur. </p>
<pre class="brush: sql; title: ; notranslate">CREATE TABLE chicken(cID INT PRIMARY KEY,
                     eID INT);
CREATE TABLE egg(eID INT PRIMARY KEY,
                 cID INT);</pre>
<p>Dalam struktur tabel di atas kita belum memasukkan foreign key. Berikut struktur foreign key nya</p>
<pre class="brush: sql; title: ; notranslate">ALTER TABLE chicken ADD CONSTRAINT chickenREFegg
    FOREIGN KEY (eID) REFERENCES egg(eID)
    INITIALLY DEFERRED DEFERRABLE;
ALTER TABLE egg ADD CONSTRAINT eggREFchicken
    FOREIGN KEY (cID) REFERENCES chicken(cID)
    INITIALLY DEFERRED DEFERRABLE;</pre>
<p>Perhatikan bahwa kita menambahkan baris perintah INITIALLY DEFERRED DEFERRABLE. Kita dapat memecahnya menjadi 2.<br />
<strong>INITIALLY DEFERRED</strong>. Perintah ini mengoverload nilai default <strong>INITIALLY IMMEDIATE</strong> dari setiap tabel yang dibuat. INITIALLY IMMEDIATE artinya sistem akan mengevaluasi nilai segera setelah nilai tersebut diinsert. Tetapi INTIALLY DEFERRED akan menunda evaluasi nilai dalam rangka referential integrity (implementasi constraint) hingga perintah <strong>COMMIT</strong> dijalankan.<br />
<strong>DEFERRABLE</strong>. Perintah ini akan membuat constraint tersebut dapat di-DEFERRED, yang mengoverload nilai default <strong>NOT DEFERRABLE</strong> dari setiap tabel yang dibuat.</p>
<p>Opsi lain, Anda bisa mengeset constraint menjadi <strong>INITIALLY IMMEDIATE DEFERRABLE</strong>, dan pada saat dibutuhkan Anda bisa mengeset session Anda menjadi DEFERRED untuk kemudian mengembalikannya kembali jadi IMMEDIATE saat mode DEFERRED sudah tidak diperlukan, dengan contoh seperti berikut (<a href="http://www.oracle-base.com/articles/8i/ConstraintCheckingUpdates.php" target="_blank">sumber</a>). Misalkan kita memiliki 2 tabel.</p>
<pre class="brush: sql; title: ; notranslate">CREATE TABLE tab1 (id  NUMBER(10), tab2_id NUMBER(10));
CREATE TABLE tab2 (id  NUMBER(10));</pre>
<p>Kita modifikasi tabel untuk menambahkan constraint.</p>
<pre class="brush: sql; title: ; notranslate">ALTER TABLE tab2 ADD PRIMARY KEY (id);</pre>
<pre class="brush: sql; title: ; notranslate">ALTER TABLE tab1 ADD CONSTRAINT fk_tab1_tab2
  FOREIGN KEY (tab2_id)
  REFERENCES tab2 (id)
  DEFERRABLE
  INITIALLY IMMEDIATE;</pre>
<p>Anda dapat mengubah SESSION Anda agar bisa memodifikasi isi tabel dengan mode DEFERRED.</p>
<pre class="brush: sql; title: ; notranslate">ALTER SESSION SET CONSTRAINTS = DEFERRED;</pre>
<p>Kemudian Anda bisa mengembalikan kembali ke mode IMMEDIATE.</p>
<pre class="brush: sql; title: ; notranslate">ALTER SESSION SET CONSTRAINTS = IMMEDIATE;</pre>
<h4>Incoming search terms for the article:</h4><ul><li><a href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/deferred-constraints-pada-oracle/" title="constraint deferred adalah">constraint deferred adalah</a> (1)</li><li><a href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/deferred-constraints-pada-oracle/" title="contoh kasus deferrable initially deferred">contoh kasus deferrable initially deferred</a> (1)</li></ul><div class="al2fb_like_button"><div id="fb-root"></div><script type="text/javascript">
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=290579107645395";
  fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "facebook-jssdk"));
</script>
<fb:like href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/deferred-constraints-pada-oracle/" layout="standard" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div><div class="al2fb_comments_plugin"><div id="fb-root"></div><script type="text/javascript">
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=290579107645395";
  fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "facebook-jssdk"));
</script>
<fb:comments num_posts="2" width="450" colorscheme="light" href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/deferred-constraints-pada-oracle/"></fb:comments></div>]]></content:encoded>
			<wfw:commentRss>http://dimaz.web.id/computer/programming/basis-data-programming-computer/deferred-constraints-pada-oracle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Network Computing : Connection Lost</title>
		<link>http://dimaz.web.id/computer/programming/basis-data-programming-computer/network-computing-connection-lost/</link>
		<comments>http://dimaz.web.id/computer/programming/basis-data-programming-computer/network-computing-connection-lost/#comments</comments>
		<pubDate>Tue, 05 Jul 2011 21:42:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Basis Data]]></category>
		<category><![CDATA[connection lost]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[firebird]]></category>
		<category><![CDATA[ibdatabase1]]></category>
		<category><![CDATA[ibquery1]]></category>
		<category><![CDATA[network computing]]></category>

		<guid isPermaLink="false">http://dimaz.web.id/?p=1775</guid>
		<description><![CDATA[Program atau aplikasi yang berjalan di jaringan ternyata memiliki kompleksitas yang jauh lebih tinggi ketimbang program standalone. Anda dapat berharap jaringan Anda tidak bermasalah, tetapi begitu Anda harus menjalankan program dalam jaringan yang terputus-putus, tentu saja ada penanganan khusus terhadap connection lost ini. Yang akan saya bahas di sini menggunakan IDE Delphi dan database Firebird, [...]]]></description>
			<content:encoded><![CDATA[<p>Program atau aplikasi yang berjalan di jaringan ternyata memiliki kompleksitas yang jauh lebih tinggi ketimbang program standalone. Anda dapat berharap jaringan Anda tidak bermasalah, tetapi begitu Anda harus menjalankan program dalam jaringan yang terputus-putus, tentu saja ada penanganan khusus terhadap connection lost ini.</p>
<p>Yang akan saya bahas di sini menggunakan IDE Delphi dan database Firebird, dan koneksi menggunakan komponen Interbase bawaan Delphi.<br />
<span id="more-1775"></span><br />
Kita akan sedikit membahas teori tentang tipe koneksi. Pada dasarnya ada 2 tipe koneksi, yaitu connection-oriented dan connectionless. Connection-oriented artinya koneksi (dengan server) akan tetap dipertahankan selama program berjalan, sedangkan connectionless artinya koneksi antara program dengan server hanya akan dibuat ketika program membutuhkan data.</p>
<p>Contoh aplikasi connection-oriented adalah ketika Anda login, Anda akan menjalankan perintah ini:<br />
IBDatabase1.Connected := true;<br />
dan koneksi ini akan diputus ketika seorang pengguna logout atau menutup aplikasi.<br />
Nah, masalahnya, ketika terjadi connection lost, maka ada beberapa perintah yang akan mengeluarkan error ketika dieksekusi, oleh karena itu, kita harus memberinya exception dan menjalankan perintah yang tetap bisa dijalankan sekalipun koneksi jaringan terputus.<br />
Anda dapat membaca <a href="http://mc-computing.com/databases/Delphi/IBX_LC_Code.html">artikel dari mc-computing</a> yang membahas tentang bagaimana menangani connection lost.<br />
Beberapa baris perintah yang error adalah:</p>
<p>- <strong>IBDatabase1.Connected := false;</strong><br />
Anda dapat menambahkan baris perintah IBDatabase1.ForceClose; yang tetap berjalan meski koneksi terputus.<br />
contoh :<br />
<em>try<br />
  IBDatabase1.Connected := false;<br />
  IBDatabase1.ForceClose;<br />
except<br />
end;</em><br />
Jangan lupa juga memeriksa apakah transaksi sedang InTransaction atau tidak, dan me-rollback atau commit.<br />
<em>if IBTransaction1.InTransaction then<br />
begin<br />
  IBTransaction1.Rollback;<br />
  IBTransaction1.Active := False;<br />
end;</em></p>
<p>-<strong>IBQuery1.Open;</strong><br />
Perhatikan, dataset akan selalu menimbulkan exception &#8220;Invalid transaction handle&#8221; ketika dia diberi perintah open, apabila ketika terjadi connection lost dataset tersebut sedang dalam keadaan open dan belum ditutup. Oleh karena itu, mungkin Anda harus sedikit &#8220;membersihkan&#8221; kode-kode Anda dengan menambahkan baris perintah:<br />
<em>IBQuery1.Close;<br />
IBQuery1.Active := false;</em><br />
di setiap akhir query yang Anda lakukan. Tentu saja saya tidak bisa menjelaskan di mana saja baris perintah ini harus diletakkan, karena tergantung pada algoritma dan alur program yang Anda pakai.<br />
Penggunaan tambahan 2 baris di atas juga dapat menghilangkan munculnya exception &#8220;Dataset open&#8221; ketika sebuah form ditutup atau dibuka yang mana dalam form tersebut terdapat dataset yang masih terbuka.</p>
<div class="al2fb_like_button"><div id="fb-root"></div><script type="text/javascript">
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=290579107645395";
  fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "facebook-jssdk"));
</script>
<fb:like href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/network-computing-connection-lost/" layout="standard" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div><div class="al2fb_comments_plugin"><div id="fb-root"></div><script type="text/javascript">
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=290579107645395";
  fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "facebook-jssdk"));
</script>
<fb:comments num_posts="2" width="450" colorscheme="light" href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/network-computing-connection-lost/"></fb:comments></div>]]></content:encoded>
			<wfw:commentRss>http://dimaz.web.id/computer/programming/basis-data-programming-computer/network-computing-connection-lost/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Melindungi Database Firebird dari Akses SYSDBA</title>
		<link>http://dimaz.web.id/computer/programming/basis-data-programming-computer/melindungi-database-firebird-dari-akses-sysdba/</link>
		<comments>http://dimaz.web.id/computer/programming/basis-data-programming-computer/melindungi-database-firebird-dari-akses-sysdba/#comments</comments>
		<pubDate>Mon, 20 Jun 2011 22:16:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Basis Data]]></category>
		<category><![CDATA[DBMS]]></category>
		<category><![CDATA[fbownermigrator]]></category>
		<category><![CDATA[firebird]]></category>
		<category><![CDATA[sysdba]]></category>

		<guid isPermaLink="false">http://dimaz.web.id/?p=1765</guid>
		<description><![CDATA[Firebird merupakan salah satu solusi kebutuhan database yang bersifat open source, gratis, dan dapat dimanfaatkan untuk kebutuhan apa saja. Firebird akan menjadi sangat bermanfaat apabila Anda memang membutuhkan suatu DBMS yang komprehensif dan memiliki fasilitas storedprocedure, trigger, indexes, transaction, dan banyak lagi. Apabila Anda sudah sering menggunakan database Firebird, mungkin Anda telah akrab dengan akun [...]]]></description>
			<content:encoded><![CDATA[<p>Firebird merupakan salah satu solusi kebutuhan database yang bersifat open source, gratis, dan dapat dimanfaatkan untuk kebutuhan apa saja. Firebird akan menjadi sangat bermanfaat apabila Anda memang membutuhkan suatu DBMS yang komprehensif dan memiliki fasilitas storedprocedure, trigger, indexes, transaction, dan banyak lagi.<br />
<span id="more-1765"></span><br />
Apabila Anda sudah sering menggunakan database Firebird, mungkin Anda telah akrab dengan akun SYSDBA (dan password masterkey), dan bahkan menggunakan akun super administrator tersebut untuk membuat file-file database production Anda. Tetapi menjadi suatu permasalahan apabila Anda hendak membatasi hak akses SYSDBA, mungkin karena Anda ingin melindungi integritas data di dalamnya dari direct access user yang tidak bertanggungjawab. Nah, beberapa waktu lamanya aku mencari cara untuk melindungi database firebird ini dari akses SYSDBA. Model proteksi Firebird yang populer salah satunya adalah milik Accurate, software accounting.</p>
<p>Cara pertama adalah dengan mengubah password standar SYSDBA. Namun mungkin akan menjadi masalah apabila file database kita dikopi ke mesin lain dengan server Firebird yang masih standar, yang tentunya juga masih memiliki password standar. User akan dengan mudah membuka file database kita dengan akun SYSDBA.</p>
<p>Cara kedua, dengan menterjemahkan artikel dari <a href="http://eksa.wordpress.com/2008/09/03/protectun-protect-data-fbib-dari-gangguan-sysdba/">eksa</a> ke dalam program. Namun setelah kucoba, file security2.fdb tidak lagi dapat dibuka dengan akun super administrator, sehingga cara ini mungkin sudah kadaluarsa dengan sistem Firebird di atas versi 1.5.</p>
<p>Cara ketiga, Anda bisa membuat database baru dengan user baru yang Anda buat sendiri. Kemudian Anda bisa memompa data dari database lama ke database baru. Namun masalahnya, apabila Anda sudah terlanjur menciptakan database dengan SYSDBA dan proses development sudah terlampau jauh dengan berbagai rules telah terpasang dalam database Anda, memompa data ke database baru bukan suatu pekerjaan mudah. Anda harus memastikan seluruh data berpindah dengan sempurna.</p>
<p>Cara keempat, Anda bisa menggunakan FBOwnerMigrator yang dibuat oleh <a href="http://blog.upscene.com/thomas/comments.php?y=08&#038;m=07&#038;entry=entry080730-233217">Thomas Steinmaurer</a>. Program utility ini bisa Anda dapatkan dengan menghubungi Thomas Steinmaurer (alamat email ada di tautan). Program ini akan memigrasi ownership database Anda dari SYSDBA ke user baru yang telah Anda create sebelumnya, sehingga pada akhirnya database Anda akan terlindungi dari akses SYSDBA.<br />
(Thanks to Mr. Steinmaurer for his great job)</p>
<p><img src="http://4.bp.blogspot.com/_QSqqZwB3CTk/SQr41EQLPaI/AAAAAAAAAMw/kvv7AZ_3tLI/s400/353px-Ds-firebird-logo.svg.png" alt="firebirdsql" /></p>
<h4>Incoming search terms for the article:</h4><ul><li><a href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/melindungi-database-firebird-dari-akses-sysdba/" title="fbownermigrator">fbownermigrator</a> (2)</li><li><a href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/melindungi-database-firebird-dari-akses-sysdba/" title="firebird database">firebird database</a> (1)</li><li><a href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/melindungi-database-firebird-dari-akses-sysdba/" title="firebird membuka security2 fdb">firebird membuka security2 fdb</a> (1)</li></ul><div class="al2fb_like_button"><div id="fb-root"></div><script type="text/javascript">
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=290579107645395";
  fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "facebook-jssdk"));
</script>
<fb:like href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/melindungi-database-firebird-dari-akses-sysdba/" layout="standard" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div><div class="al2fb_comments_plugin"><div id="fb-root"></div><script type="text/javascript">
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=290579107645395";
  fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "facebook-jssdk"));
</script>
<fb:comments num_posts="2" width="450" colorscheme="light" href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/melindungi-database-firebird-dari-akses-sysdba/"></fb:comments></div>]]></content:encoded>
			<wfw:commentRss>http://dimaz.web.id/computer/programming/basis-data-programming-computer/melindungi-database-firebird-dari-akses-sysdba/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Desain Basis Data dengan Data Eksisting, POC, dan Implementasi Sistem</title>
		<link>http://dimaz.web.id/computer/programming/basis-data-programming-computer/desain-basis-data-dengan-data-eksisting-poc-dan-implementasi-sistem/</link>
		<comments>http://dimaz.web.id/computer/programming/basis-data-programming-computer/desain-basis-data-dengan-data-eksisting-poc-dan-implementasi-sistem/#comments</comments>
		<pubDate>Mon, 30 May 2011 22:44:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Basis Data]]></category>
		<category><![CDATA[basis data]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[desain]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://dimaz.web.id/?p=1728</guid>
		<description><![CDATA[Proses desain basis data merupakan salah satu yang paling dasar dilakukan sebelum membuat aplikasi basis data. Dalam perencanaannya, kita bisa memilah-milah data menjadi entitas-entitas, atribut, dan relasi. Kita bisa membaca banyak sekali saran-saran maupun metode-metode dalam penyusunan desain ini, tetapi permasalahan akan semakin bertambah apabila kita harus membuat aplikasi baru dari data yang sudah ada. [...]]]></description>
			<content:encoded><![CDATA[<p>Proses desain basis data merupakan salah satu yang paling dasar dilakukan sebelum membuat aplikasi basis data. Dalam perencanaannya, kita bisa memilah-milah data menjadi entitas-entitas, atribut, dan relasi. Kita bisa membaca banyak sekali saran-saran maupun metode-metode dalam penyusunan desain ini, tetapi permasalahan akan semakin bertambah apabila kita harus membuat aplikasi baru dari data yang sudah ada.<br />
<span id="more-1728"></span><br />
Permasalahan dengan data eksisting adalah kita tidak bisa leluasa berkreasi karena dibatasi oleh ketersediaan data yang ada. Kita tidak dapat memaksakan sebuah desain yang benar-benar atomic, normal (hasil normalisasi), dan efisien. Terkadang kita harus menambahkan atribut, relasi, maupun entitas baru yang sebenarnya tidak dibutuhkan apabila kita membuat basis data kosong.<br />
Apalagi kalau Anda harus berhadapan dengan data eksisting yang jumlahnya besar namun datanya tidak konsisten. Anda memerlukan trik-trik tambahan, salah satunya menempatkan default value pada data-data yang tidak konsisten maupun data kosong.</p>
<p>Dalam proses pembuatan aplikasi, Anda juga harus memperhatikan infrastruktur yang akan menunjang aplikasi Anda. Anda tidak dapat membuat kueri yang memakan waktu dan sumber daya terlalu banyak dalam jaringan yang lambat. Anda dituntut untuk menggunakan koneksi seefisien mungkin supaya jalur data tidak mengganggu proses bisnis organisasi yang Anda layani. Anda mungkin harus bekerja ekstra dalam membuat stored procedure dan trigger yang diletakkan dalam server sehingga mengurangi beban jaringan.</p>
<p>Ketika Anda harus berhadapan dengan kebijakan organisasi tentang hak akses data, Anda juga dituntut memodifikasi skrip (dan bila perlu hak akses basis data) untuk mendukung kebijakan ini, sehingga proses pembuatan aplikasi akan memakan waktu lebih lama. Dalam prosesnya, Anda tidak boleh melupakan Proof of Concept (POC) untuk mencoba apakah teknik-teknik yang akan Anda pakai dapat diterapkan dalam organisasi Anda. POC ini biasanya dilakukan di awal masa pengembangan sehingga proses development dan hasil akhir tidak menjadi sia-sia dan dapat diterapkan dalam organisasi Anda.</p>
<p>Perlu diingat bahwa proses implementasi sistem baru adalah salah satu tahapan yang paling sulit, karena kita dihadapkan pada orang-orang yang memiliki karakteristik yang berbeda. Lain halnya ketika kita berhadapan dengan mesin yang dapat dengan mudah dikendalikan, kita tidak dapat mengubah pola kerja dan pola pikir seseorang untuk menyesuaikan dengan sistem baru yang kita luncurkan.</p>
<div class="al2fb_like_button"><div id="fb-root"></div><script type="text/javascript">
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=290579107645395";
  fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "facebook-jssdk"));
</script>
<fb:like href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/desain-basis-data-dengan-data-eksisting-poc-dan-implementasi-sistem/" layout="standard" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div><div class="al2fb_comments_plugin"><div id="fb-root"></div><script type="text/javascript">
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=290579107645395";
  fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "facebook-jssdk"));
</script>
<fb:comments num_posts="2" width="450" colorscheme="light" href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/desain-basis-data-dengan-data-eksisting-poc-dan-implementasi-sistem/"></fb:comments></div>]]></content:encoded>
			<wfw:commentRss>http://dimaz.web.id/computer/programming/basis-data-programming-computer/desain-basis-data-dengan-data-eksisting-poc-dan-implementasi-sistem/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress Plugin : Ayat Alkitab Random</title>
		<link>http://dimaz.web.id/christianity/wordpress-plugin-ayat-alkitab-random/</link>
		<comments>http://dimaz.web.id/christianity/wordpress-plugin-ayat-alkitab-random/#comments</comments>
		<pubDate>Thu, 29 Jul 2010 15:17:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Christianity]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://dimaz.web.id/?p=1332</guid>
		<description><![CDATA[Iseng-iseng aku bikin plugin gratis untuk menampilkan Bible random verse (ayat Alkitab) berbahasa Indonesia yang terinspirasi dari alkitab.otak.info. Nah, wordpress plugin yang kubuat ini memiliki proses instalasi yang mudah. Syaratnya, Anda harus memiliki wordpress yang terpasang dalam hosting Anda sendiri. Download gratis file plugin Bible random verse Indonesia dahulu, kemudian upload dan ekstrak plugin tersebut [...]]]></description>
			<content:encoded><![CDATA[<p>Iseng-iseng aku bikin plugin gratis untuk menampilkan Bible random verse (ayat Alkitab) berbahasa Indonesia yang terinspirasi dari <a href="http://alkitab.otak.info/">alkitab.otak.info</a>. Nah, wordpress plugin yang kubuat ini memiliki proses instalasi yang mudah. Syaratnya, Anda harus memiliki wordpress yang terpasang dalam hosting Anda sendiri. Download gratis file plugin <a href="http://imzupload.com/5ds5lpi2ryzs/bible-random-verse-indonesia.rar.html">Bible random verse Indonesia</a> dahulu, kemudian upload dan ekstrak plugin tersebut yang hanya memiliki 1 file, yakni bible-random-verse-indonesia.php. Letakkan file tersebut di wp-content/plugins.<br />
<span id="more-1332"></span><br />
Setelah proses upload selesai, masuklah ke wp-admin ke bagian plugin. Aktivasi plugin <strong>Bible Random Verse Indonesia</strong>, kemudian masuklah ke bagian widgets. Di widgets Anda bisa memilih biblerandomverseindonesia dan letakkan widget tersebut di tempat yang Anda sukai.<br />
Setelah itu, Bible random verse akan muncul di halaman depan web Anda.</p>
<p>Perhatian : akan ada sebuah link di bawah setiap ayat Alkitab yang mengarah ke web ini sebagai bayaran atas plugin gratis ini <img src='http://dimaz.web.id/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h4>Incoming search terms for the article:</h4><ul><li><a href="http://dimaz.web.id/christianity/wordpress-plugin-ayat-alkitab-random/" title="cara memasang alkitab pada wordpress">cara memasang alkitab pada wordpress</a> (1)</li></ul><div class="al2fb_like_button"><div id="fb-root"></div><script type="text/javascript">
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=290579107645395";
  fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "facebook-jssdk"));
</script>
<fb:like href="http://dimaz.web.id/christianity/wordpress-plugin-ayat-alkitab-random/" layout="standard" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div><div class="al2fb_comments_plugin"><div id="fb-root"></div><script type="text/javascript">
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=290579107645395";
  fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "facebook-jssdk"));
</script>
<fb:comments num_posts="2" width="450" colorscheme="light" href="http://dimaz.web.id/christianity/wordpress-plugin-ayat-alkitab-random/"></fb:comments></div>]]></content:encoded>
			<wfw:commentRss>http://dimaz.web.id/christianity/wordpress-plugin-ayat-alkitab-random/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Membongkar Kode ask.ralarash.com</title>
		<link>http://dimaz.web.id/computer/programming/javascript/membongkar-kode-ask-ralarash-com/</link>
		<comments>http://dimaz.web.id/computer/programming/javascript/membongkar-kode-ask-ralarash-com/#comments</comments>
		<pubDate>Sun, 04 Jul 2010 10:01:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[ask.ralarash.com]]></category>

		<guid isPermaLink="false">http://dimaz.web.id/?p=1184</guid>
		<description><![CDATA[Mari sedikit bermain-main dengan situs ramal iseng ask.ralarash.com. Kenapa iseng? Karena jawabannya random. Yep, random. Kalau Anda sedikit paham skrip, silakan periksa baris perintah yang ada dalam ask.ralarash.com, kebetulan dibangun menggunakan Javascript. var rand=Math.floor(Math.random()*37); var x=arr[rand]; showText(x); Baris pertama menunjukkan random antara 0 &#8211; 36 (ada 37 angka) dan disimpan dalam variabel rand. Baris kedua [...]]]></description>
			<content:encoded><![CDATA[<p>Mari sedikit bermain-main dengan situs ramal iseng ask.ralarash.com. Kenapa iseng? Karena jawabannya random. Yep, random. Kalau Anda sedikit paham skrip, silakan periksa baris perintah yang ada dalam <a href="http://ask.ralarash.com">ask.ralarash.com</a>, kebetulan dibangun menggunakan Javascript.</p>
<blockquote><p>
var rand=Math.floor(Math.random()*37);<br />
var x=arr[rand];<br />
showText(x);</p></blockquote>
<p>Baris pertama menunjukkan random antara 0 &#8211; 36 (ada 37 angka) dan disimpan dalam variabel <strong>rand</strong>.<br />
Baris kedua nilai array (<strong>arr</strong>) ke-<strong>rand</strong> disimpan dalam variabel <strong>x</strong>.<br />
Baris ketiga memunculkan teks yang ada dalam variabel <strong>x</strong>.</p>
<p>Nah, apa saja kemungkinan jawaban yang mungkin muncul? Penasaran? Mari kita simak.<br />
<span id="more-1184"></span><br />
arr[0]=&#8221;Saya kira kamu tidak percaya Ralarash!&#8221;<br />
arr[1]=&#8221;Maaf, ralarash sedang tidak mood untuk meramal&#8221;<br />
arr[1]=&#8221;cobalah untuk berkonsentrasi pada jawaban dan coba lagi&#8221;<br />
arr[3]=&#8221;Maaf, ralarash sedang tidak dapat diganggu&#8221;<br />
arr[4]=&#8221;ralarash tidak menjawab pertanyaan itu&#8230;&#8221;<br />
arr[5]=&#8221;Jangan percaya ramalan jika kamu tidak percaya!&#8221;<br />
arr[6]=&#8221;Cobalah untuk berpikir jernih&#8221;<br />
arr[7]=&#8221;Bukan waktu yang tepat untuk bertanya&#8221;<br />
arr[8]=&#8221;Maaf, roh spiritual tidak dapat hadir&#8221;<br />
arr[9]=&#8221;ralarash tidak akan menjawab pertanyaan kamu lagi&#8221;<br />
arr[10]=&#8221;Mungkin ralarash akan menjawab ini dilain waktu&#8221;<br />
arr[11]=&#8221;Apakah kamu percaya Tuhan?&#8221;<br />
arr[12]=&#8221;Fokus dan coba lagi&#8221;<br />
arr[13]=&#8221;Kenapa ralarash harus mejawab pertanyaan itu?&#8221;<br />
arr[14]=&#8221;Maaf, pertanyaan tidak pantas untuk dijawab!&#8221;<br />
arr[15]=&#8221;Mungkin, teman kamu yang harus mengetik pertanyaan kamu&#8221;<br />
arr[16]=&#8221;Jangan percaya ramalan&#8221;<br />
arr[17]=&#8221;Yakin kamu mau tahu jawabanya?&#8221;<br />
arr[18]=&#8221;Apakah kamu siap mendengar jawabanya?&#8221;<br />
arr[19]=&#8221;Coba teman yang mengetikan pertanyaannya, ralarash tidak konek dengan kamu&#8221;<br />
arr[20]=&#8221;kenapa tidak coba pertanyaan yang lain&#8221;<br />
arr[21]=&#8221;No Comment&#8230;&#8221;<br />
arr[22]=&#8221;Tiada Tuhan selain Allah&#8221;<br />
arr[23]=&#8221;Apakah kamu Atheis?&#8221;<br />
arr[24]=&#8221;Kamu mulai membuat kesal yah..&#8221;<br />
arr[25]=&#8221;ralarash cape dengan pertanyaan kamu&#8221;<br />
arr[26]=&#8221;mmmm&#8230;&#8221;<br />
arr[27]=&#8221;maaf, diskonek dengan roh spiritual&#8221;<br />
arr[28]=&#8221;Masa kamu tidak tahu jawabanya?&#8221;<br />
arr[29]=&#8221;Kamu bukan satu2nya orang yg bertanya ke ralarash&#8221;<br />
arr[30]=&#8221;kita ga konek nih.. coba suruh teman kamu&#8221;<br />
arr[31]=&#8221;Coba ganti topik deh&#8221;<br />
arr[32]=&#8221;maaf.. roh spiritual lagi pada sibuk..&#8221;<br />
arr[33]=&#8221;hahahaha&#8230;&#8221;<br />
arr[34]=&#8221;Semua orang juga tahu jawabanya&#8221;<br />
arr[35]=&#8221;Saya tidak akan bisa tidur jika jadi kamu&#8221;<br />
arr[36]=&#8221;ralarash akan menjawabnya nanti, skrng coba yg lain&#8221;</p>
<p>Nah, sudah jelas kalau jawabannya random, makanya buat iseng aja yak <img src='http://dimaz.web.id/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="al2fb_like_button"><div id="fb-root"></div><script type="text/javascript">
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=290579107645395";
  fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "facebook-jssdk"));
</script>
<fb:like href="http://dimaz.web.id/computer/programming/javascript/membongkar-kode-ask-ralarash-com/" layout="standard" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div><div class="al2fb_comments_plugin"><div id="fb-root"></div><script type="text/javascript">
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=290579107645395";
  fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "facebook-jssdk"));
</script>
<fb:comments num_posts="2" width="450" colorscheme="light" href="http://dimaz.web.id/computer/programming/javascript/membongkar-kode-ask-ralarash-com/"></fb:comments></div>]]></content:encoded>
			<wfw:commentRss>http://dimaz.web.id/computer/programming/javascript/membongkar-kode-ask-ralarash-com/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>dfGallery v2.0 by DezinerFolio.com</title>
		<link>http://dimaz.web.id/computer/internet/web/dfgallery-v2-0-by-dezinerfolio-com/</link>
		<comments>http://dimaz.web.id/computer/internet/web/dfgallery-v2-0-by-dezinerfolio-com/#comments</comments>
		<pubDate>Sat, 01 May 2010 01:12:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[dezinerfolio.com]]></category>
		<category><![CDATA[dfgallery]]></category>
		<category><![CDATA[flash gallery]]></category>
		<category><![CDATA[free gallery]]></category>
		<category><![CDATA[gratis]]></category>
		<category><![CDATA[megaupload]]></category>
		<category><![CDATA[upload file]]></category>
		<category><![CDATA[web gallery]]></category>
		<category><![CDATA[web gallery gratis]]></category>

		<guid isPermaLink="false">http://dimaz.web.id/?p=930</guid>
		<description><![CDATA[Bermula dari permintaan teman untuk merombak website jasa fotografinya, aku berkenalan dengan dfGallery, sebuah flash gallery gratis dari dezinerfolio.com. Dfgallery, menurut klaim pembuatnya, adalah salah satu flash gallery terbaik saat ini, walau aku tak terlalu yakin akan hal ini. Namun fitur-fitur yang disediakan cukup baik. Sampel dfGallery yang telah jalan bisa dilihat di www.bulb-photo.com/gallery. Lumayan [...]]]></description>
			<content:encoded><![CDATA[<p>Bermula dari permintaan teman untuk merombak website jasa fotografinya, aku berkenalan dengan dfGallery, sebuah flash gallery gratis dari <a href="http://dezinerfolio.com">dezinerfolio.com</a>.<br />
Dfgallery, menurut klaim pembuatnya, adalah salah satu flash gallery terbaik saat ini, walau aku tak terlalu yakin akan hal ini. Namun fitur-fitur yang disediakan cukup baik.<br />
Sampel dfGallery yang telah jalan bisa dilihat di <a href="http://www.bulb-photo.com/gallery">www.bulb-photo.com/gallery</a>. Lumayan kan?<br />
<span id="more-930"></span></p>
<p>Hanya saja, kekurangan dari gallery ini adalah kesulitan pada saat instalasi. Dfgallery membutuhkan extension PHP tambahan, yaitu curl dan json. Tentang keduanya bisa dicari di Google.<br />
Untuk error curl, silakan hilangkan tanda titik koma di depan kalimat <strong>extension=php_curl.dll</strong> pada berkas php.ini. Tentu saja bisa dilakukan dengan mudah di localhost, namun jika Anda menemui kesulitan pada hostingan, silakan hubungi administratornya.<br />
Jika error curl masih terjadi, kopi berkas libeay32.dll dan ssleay32.dll yang terdapat pada folder PHP ke folder C:\WINDOWS\system32.</p>
<p>Nah, selain error curl dan json, masih ada satu error lagi yang biasanya cukup mengganggu, yaitu <strong>We expected &#8216;true&#8217; from the url : (mydomain)/api/rest/test_curl</strong>. Aku telah merombak beberapa skrip sehingga proses pengecekan untuk url di atas tidak dilakukan.<br />
Pun jangan lupa mengaktifkan fitur mod_rewrite di Apache dengan menghilangkan tanda # di depan kalimat <strong>LoadModule rewrite_module modules/mod_rewrite.so</strong>, kemudian restart Apache-nya.</p>
<p>Berkas dfGallery v2.0 yang <em>running well</em> kuupload di <a href="http://www.megaupload.com/?d=YS6CWJG4">sini</a> dengan password = <strong>dimaz.web.id</strong><br />
Bila ada yang merasa terbantu dengan ini, silakan donasikan beberapa dolar ke paypalku, buat beli kopi <img src='http://dimaz.web.id/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /><br />
(link donate ada di sidebar blog ini)</p>
<p>Sebelum instalasi, Anda perlu melakukan konfigurasi di berkas <strong>app\config\config.php</strong>.<br />
Gantilah kalimat: <strong>$config['base_url'] = &#8216;http://localhost/gallerytest/&#8217;;</strong><br />
dengan URL tempat Anda mengkopi folder dfgallery.</p>
<div class="al2fb_like_button"><div id="fb-root"></div><script type="text/javascript">
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=290579107645395";
  fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "facebook-jssdk"));
</script>
<fb:like href="http://dimaz.web.id/computer/internet/web/dfgallery-v2-0-by-dezinerfolio-com/" layout="standard" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div><div class="al2fb_comments_plugin"><div id="fb-root"></div><script type="text/javascript">
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=290579107645395";
  fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "facebook-jssdk"));
</script>
<fb:comments num_posts="2" width="450" colorscheme="light" href="http://dimaz.web.id/computer/internet/web/dfgallery-v2-0-by-dezinerfolio-com/"></fb:comments></div>]]></content:encoded>
			<wfw:commentRss>http://dimaz.web.id/computer/internet/web/dfgallery-v2-0-by-dezinerfolio-com/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

