<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6592780324121647341</id><updated>2011-11-28T07:24:28.920+07:00</updated><category term='PHP'/><category term='JQuery'/><category term='VB.Net'/><category term='JavaScript'/><category term='Java'/><category term='CSS'/><category term='VB'/><title type='text'>Listingprogram.Log</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Windra Swastika</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_aceOYK9mWV0/Snn406FYluI/AAAAAAAAARg/SxZqfyVaMog/S220/image.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>41</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-3293712261918935677</id><published>2010-11-03T08:04:00.011+07:00</published><updated>2011-05-30T10:48:12.833+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JQuery'/><title type='text'>Membuat Color Slider Dengan JQuery UI</title><content type='html'>&lt;span style="font-weight: bold;"&gt;JQuery UI merupakan library JavaScript untuk membangun user interface web dengan lebih mudah dan cepat. Salah satu widget user interface yang ada di JQuery UI adalah Slider.&lt;/span&gt;&lt;br /&gt;&lt;p&gt;Tip kali ini adalah memanfaatkan widget slider pada JQuery UI untuk membuat Color Slider (simulasi pencampuran warna RGB). Untuk menampilkan widget slider menggunakan JQuery UI kita dapat menggunakan kode berikut:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;link rel="stylesheet" type="text/css"&lt;br /&gt;href="development-bundle/themes/smoothness/ui.all.css"&amp;gt;&lt;br /&gt;&amp;lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;jQuery UI Slider Example&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;div id="mySlider"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&lt;br /&gt;src="development-bundle/jquery-1.3.2.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&lt;br /&gt;src="development-bundle/ui/ui.core.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&lt;br /&gt;src="development-bundle/ui/ui.slider.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt; $(function(){&lt;br /&gt;  $("#mySlider").slider();&lt;br /&gt;});&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Hasil yang didapatkan ketika ditampilkan di layar adalah sebuah slider seperti pada gambar.&lt;/p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-2eEbAW7Kg3A/TeMTPhqjCiI/AAAAAAAAAfo/xPWFj6G4dYU/s1600/02.tif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 119px;" src="http://3.bp.blogspot.com/-2eEbAW7Kg3A/TeMTPhqjCiI/AAAAAAAAAfo/xPWFj6G4dYU/s320/02.tif" border="0" alt=""id="BLOGGER_PHOTO_ID_5612350718089562658" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Slider tersebut telah memiliki fungsi-fungsi dasar seperti digeser dengan menggunakan mouse atau keyboard. Untuk pembuatan color slider dibutuhkan 3 buah slider yang mewakili warna merah, hijau dan biru. Langkah-langkah pembuatannya adalah sebagai berikut:&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Buat terlebih dulu style sheet yang nanti akan dibutuhkan.&lt;br /&gt;&lt;/li&gt;&lt;pre&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt; &amp;lt;style type="text/css"&amp;gt;&lt;br /&gt; #container {&lt;br /&gt;   width:426px;&lt;br /&gt;   height:150px;&lt;br /&gt;   position:relative;&lt;br /&gt;   font:bold 13px Georgia;&lt;br /&gt;   padding:20px 20px 0;&lt;br /&gt;   background:#eeeeee;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; #container label {&lt;br /&gt;   float:left;&lt;br /&gt;   text-align:right;&lt;br /&gt;   margin:0 30px 26px 0;&lt;br /&gt;   clear:left;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; .ui-slider {&lt;br /&gt;    width:240px;&lt;br /&gt;    float:left;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt; .ui-slider-handle {&lt;br /&gt;   width:15px;&lt;br /&gt;   height:27px;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; #colorBox {&lt;br /&gt;   width:104px;&lt;br /&gt;   height:94px;&lt;br /&gt;   float:right;&lt;br /&gt;   margin:-83px 0 0 0;&lt;br /&gt;   background:#ffffff;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; #container #outputLabel {&lt;br /&gt;    float:right;&lt;br /&gt;   margin:-14px 10px 0 0;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; #output {&lt;br /&gt;   width:100px;&lt;br /&gt;   text-align:center;&lt;br /&gt;   float:right;&lt;br /&gt;   clear:both;&lt;br /&gt;   margin-top:-17px;&lt;br /&gt;}&lt;br /&gt; &amp;lt;/style&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;link rel="stylesheet" type="text/css"&lt;br /&gt;   href="development-bundle/themes/smoothness/ui.all.css"&amp;gt;&lt;br /&gt;&amp;lt;meta http-equiv="Content-Type" content="text/html;&lt;br /&gt;   charset=utf-8"&amp;gt;&lt;br /&gt; &amp;lt;title&amp;gt;jQuery UI Color Slider Example&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;li&gt;Untuk interface utamanya, kita menggunakan tiga buah slider yang mewakili merah, hijau dan biru. Untuk menampilkan widget slider ini dibutuhkan beberapa library, yaitu ui.all.css, jquery-1.3.2.js, ui.core.css, dan ui.slider.js. (File-file tambahan jquery dapat diunduh di &lt;a href="http://docs.jquery.com/Release:jQuery_1.3.2"&gt;http://docs.jquery.com/Release:jQuery_1.3.2&lt;/a&gt;)&lt;/li&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;    &amp;lt;div id="container" class="ui-corner-all ui-widget-content &lt;br /&gt;      ui-helper-clearfix"&amp;gt;&lt;br /&gt;      &amp;lt;label&amp;gt;R:&amp;lt;/label&amp;gt;&amp;lt;div id="rSlider"&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;      &amp;lt;label&amp;gt;G:&amp;lt;/label&amp;gt;&amp;lt;div id="gSlider"&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;      &amp;lt;label&amp;gt;B:&amp;lt;/label&amp;gt;&amp;lt;div id="bSlider"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;      &amp;lt;div id="colorBox" class="ui-corner-all ui-widget- &lt;br /&gt;        content"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;      &amp;lt;input id="output" type="text" value="rgb(255,255,255)"&amp;gt;&lt;br /&gt;      &amp;lt;label id="outputLabel"&amp;gt;Color value:&amp;lt;/label&amp;gt;&lt;br /&gt;    &amp;lt;/div&amp;gt;&lt;br /&gt;    &amp;lt;script type="text/javascript"  &lt;br /&gt;      src="development-bundle/jquery-1.3.2.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;    &amp;lt;script type="text/javascript"  &lt;br /&gt;      src="development-bundle/ui/ui.core.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;    &amp;lt;script type="text/javascript"  &lt;br /&gt;      src="development-bundle/ui/ui.slider.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;    &amp;lt;script type="text/javascript"&amp;gt;       &lt;br /&gt;      $(function(){&lt;br /&gt;        var r = 255,&lt;br /&gt;          g = 255,&lt;br /&gt;          b = 255,&lt;br /&gt;     rgbString;&lt;br /&gt;        var sliderOpts = {&lt;br /&gt;     min:0,&lt;br /&gt;          max: 255,&lt;br /&gt;     value: 255,&lt;br /&gt;          slide: function(e, ui) {&lt;br /&gt;            r = $("#rSlider").slider("value");&lt;br /&gt;            g = $("#gSlider").slider("value");&lt;br /&gt;            b = $("#bSlider").slider("value");&lt;br /&gt;            rgbString = "rgb(" + r + "," + g + "," + b + ")";&lt;br /&gt;            &lt;br /&gt;            $("#colorBox").css({ backgroundColor: rgbString });&lt;br /&gt;            $("#output").val(rgbString);&lt;br /&gt;          }&lt;br /&gt;        };&lt;br /&gt;        $("#rSlider, #gSlider, #bSlider").slider(sliderOpts);&lt;br /&gt;      });&lt;br /&gt;    &amp;lt;/script&amp;gt;&lt;br /&gt;  &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;li&gt;Tampilan yang didapatkan ketika program dijalankan adalah sebagai berikut:&lt;/li&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-lwpbg8bZq7A/TeMTJKsiz0I/AAAAAAAAAfg/DGYir6VtljU/s1600/01.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 187px;" src="http://4.bp.blogspot.com/-lwpbg8bZq7A/TeMTJKsiz0I/AAAAAAAAAfg/DGYir6VtljU/s320/01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5612350608844705602" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-3293712261918935677?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/3293712261918935677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2010/11/membuat-color-slider-dengan-jquery-ui.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/3293712261918935677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/3293712261918935677'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2010/11/membuat-color-slider-dengan-jquery-ui.html' title='Membuat Color Slider Dengan JQuery UI'/><author><name>Windra Swastika</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_aceOYK9mWV0/Snn406FYluI/AAAAAAAAARg/SxZqfyVaMog/S220/image.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-2eEbAW7Kg3A/TeMTPhqjCiI/AAAAAAAAAfo/xPWFj6G4dYU/s72-c/02.tif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-568661574917988479</id><published>2010-02-03T18:58:00.002+07:00</published><updated>2010-02-03T19:03:49.501+07:00</updated><title type='text'>Visual Basic – Mendeteksi CD Rom dan Removable Disk</title><content type='html'>&lt;p class="abstract"&gt;Ingin tahu bagaimana mendeteksi CD Rom dan Removable Drive di Visual Basic? Tips kali ini akan membahas bagaimana mendeteksi CD Rom dan Removable Drive termasuk USB Flash Disc yang tertancap pada komputer saat itu.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Untuk mendeteksi keseluruhan drive yang ada di sebuah komputer, ada dua pemanggilan API (Application Programming Interface) yang dibutuhkan, yaitu Function GetdriveType dan Function GetLogicalDriveStrings. Function GetLogicalDriveStrings akan menghasilkan seluruh drive yang terpasang pada komputer, sedangakan function GetDriveType akan menghasilkan tipe drive. Jenis-jenis drive yang dapat dideteksi adalah Removable, Fixed, Remote, CD Rom dan RAM Drive.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Langkah-langkah untuk membuat programnya adalah:&lt;/p&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Rancang sebuah form dengan sebuah button bernama command1, dua buah label, masing-masing bernama lblCDRom dan lblRemovable.&lt;/li&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Gp4jAV9pQtg/S2ll-aQvvlI/AAAAAAAAAKk/lRQ7jDxykaw/s1600-h/01.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 159px;" src="http://4.bp.blogspot.com/_Gp4jAV9pQtg/S2ll-aQvvlI/AAAAAAAAAKk/lRQ7jDxykaw/s320/01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5433986548275068498" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;li&gt;Bagian deklarasi untuk pemanggilan fungsi API adalah sebagai berikut:&lt;/li&gt;&lt;br /&gt;&lt;pre&gt;Private Declare Function GetDriveType Lib "kernel32" _&lt;br /&gt;  Alias "GetDriveTypeA" (ByVal nDrive As String) As Long&lt;br /&gt;Private Declare Function GetLogicalDriveStrings Lib "kernel32" _ &lt;br /&gt;  Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, _ &lt;br /&gt;  ByVal lpBuffer As String) As Long&lt;br /&gt;&lt;br /&gt;Private Const DRIVE_REMOVABLE = 2&lt;br /&gt;Private Const DRIVE_CDROM = 5&lt;/pre&gt;&lt;br /&gt;&lt;li&gt;Dan event penekanan button:&lt;/li&gt;&lt;br /&gt;&lt;pre&gt;Private Sub Command1_Click()&lt;br /&gt;&lt;br /&gt;Dim r&amp;, allDrives$, JustOneDrive$, pos%, DriveType&amp;&lt;br /&gt;Dim RemovableDrive$, CDRomDrive$&lt;br /&gt;Dim Removable As Integer, CDRom As Integer&lt;br /&gt;&lt;br /&gt;allDrives$ = Space$(64)&lt;br /&gt;r&amp; = GetLogicalDriveStrings(Len(allDrives$), allDrives$)&lt;br /&gt;allDrives$ = Left$(allDrives$, r&amp;)&lt;br /&gt;Do&lt;br /&gt;pos% = InStr(allDrives$, Chr$(0))&lt;br /&gt;If pos% Then&lt;br /&gt;        JustOneDrive$ = Left$(allDrives$, pos%)&lt;br /&gt;        allDrives$ = Mid$(allDrives$, pos% + 1, Len(allDrives$))&lt;br /&gt;        DriveType&amp; = GetDriveType(JustOneDrive$)&lt;br /&gt;        If DriveType&amp; = DRIVE_REMOVABLE Then&lt;br /&gt;           Removable% = True&lt;br /&gt;           RemovableDrive$ = RemovableDrive$ &amp; " " &amp; JustOneDrive$&lt;br /&gt;        End If&lt;br /&gt;        If DriveType&amp; = DRIVE_CDROM Then&lt;br /&gt;           CDRom% = True&lt;br /&gt;           CDRomDrive$ = CDRomDrive$ &amp; " " &amp; JustOneDrive$&lt;br /&gt;        End If&lt;br /&gt;      End If&lt;br /&gt;  Loop Until allDrives$ = ""&lt;br /&gt;  &lt;br /&gt;  If Removable% Then&lt;br /&gt;    LblRemovable = "Drive Removable ditemukan pada drive " &amp; UCase$(RemovableDrive$)&lt;br /&gt;  Else&lt;br /&gt;    LblRemovable = "Tidak ada Drive Removable."&lt;br /&gt;  End If&lt;br /&gt;  &lt;br /&gt;  If CDRom% Then&lt;br /&gt;    lblCDRom = "CD Rom Drive ditemukan pada drive " &amp; UCase$(CDRomDrive$)&lt;br /&gt;  Else&lt;br /&gt;    lblCDRom = "Tidak ada CD Rom."&lt;br /&gt;  End If&lt;br /&gt;    &lt;br /&gt;End Sub&lt;/pre&gt;&lt;br /&gt;&lt;li&gt;Simpan form dengan nama detek.frm. Jalankan program, Anda akan mendapatkan tampilan seperti pada gambar.&lt;/li&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Gp4jAV9pQtg/S2lmFWkBzhI/AAAAAAAAAKs/93Mkl0xlvNc/s1600-h/02.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 157px;" src="http://2.bp.blogspot.com/_Gp4jAV9pQtg/S2lmFWkBzhI/AAAAAAAAAKs/93Mkl0xlvNc/s320/02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5433986667541286418" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-568661574917988479?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/568661574917988479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2010/02/visual-basic-mendeteksi-cd-rom-dan.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/568661574917988479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/568661574917988479'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2010/02/visual-basic-mendeteksi-cd-rom-dan.html' title='Visual Basic – Mendeteksi CD Rom dan Removable Disk'/><author><name>R†</name><uri>http://www.blogger.com/profile/06404935452790331980</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Gp4jAV9pQtg/TAeH2I49RQI/AAAAAAAAAL0/-wOcj-aWl2I/S220/milo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Gp4jAV9pQtg/S2ll-aQvvlI/AAAAAAAAAKk/lRQ7jDxykaw/s72-c/01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-8033748708078446377</id><published>2010-01-23T07:32:00.004+07:00</published><updated>2010-01-23T07:37:46.611+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Menggambar Dengan Menggunakan Objek Font, Color dan Graphics Pada Java</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Java menyediakan berbagai macam objek untuk keperluan grafik 2D yang dapat diakses pada library awt dan swing. Beberapa objek seperti Font, Color dan Graphics dapat dimanfaatkan untuk membuat tampilan grafik yang menarik.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Objek Color adalah objek yang berhubungan dengan pewarnaan. Ketika kita menggambar suatu objek atau menuliskan teks tertentu, Java menerima parameter berupa objek color yang dipanggil melalui method setcolor (pada objek graphics) untuk menentukan warna dari objek tersebut. Objek lain yang dapat diterima adalah objek Font untuk menentukan jenis huruf yang muncul ketika dilakukan penulisan (menggunakan method drawstring) pada Canvas/frame.&lt;br /&gt;&lt;br /&gt;Langkah-langkahnya adalah:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Karena aplikasi ini merupakan aplikasi grafik, maka beberapa library perlu di-import terlebih dulu.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;import java.awt.Color;&lt;br /&gt;import java.awt.Dimension;&lt;br /&gt;import java.awt.Font;&lt;br /&gt;import java.awt.FontMetrics;&lt;br /&gt;import java.awt.Graphics;&lt;br /&gt;&lt;br /&gt;import javax.swing.ImageIcon;&lt;br /&gt;import javax.swing.JComponent;&lt;br /&gt;import javax.swing.JFrame;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;li&gt;Beberapa warna yang perlu didefinisikan menjadi objek terlebih dulu adalah warna m_tRed (untuk menghasilkan efek transparansi warna merah), m_tGreen (untuk menghasilkan efek transparansi warna hijau), m_tBlue (untuk menghasilkan efek transparansi warna biru). Begitu pula untuk font yang hendak digunakan, perlu diinisialisasi terlebih dulu hingga menjadi objek yang nantinya dapat digunakan. Karena nama class adalah MyCanvas, maka penyimpanan file menggunakan nama MyCanvas.java&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;public class MyCanvas extends JComponent {&lt;br /&gt;  private static Color m_tRed = new Color(255, 0, 0, 150);&lt;br /&gt;&lt;br /&gt;  private static Color m_tGreen = new Color(0, 255, 0, 150);&lt;br /&gt;&lt;br /&gt;  private static Color m_tBlue = new Color(0, 0, 255, 150);&lt;br /&gt;&lt;br /&gt;  private static Font monoFont = new Font("Monospaced", Font.BOLD&lt;br /&gt;      | Font.ITALIC, 36);&lt;br /&gt;&lt;br /&gt;  private static Font sanSerifFont = new Font("SanSerif", Font.PLAIN, 12);&lt;br /&gt;&lt;br /&gt;  private static Font serifFont = new Font("Serif", Font.BOLD, 24);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;li&gt;Berikutnya adalah meletakkan proses penggambaran pada method paintComponent (melakukan override). Method ini akan dipanggil secara otomatis ketika sebuah frame (window) menjadi visible atau di-resize.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;public void paintComponent(Graphics g) {&lt;br /&gt;    super.paintComponent(g);&lt;br /&gt;&lt;br /&gt;    // draw entire component white&lt;br /&gt;    g.setColor(Color.white);&lt;br /&gt;    g.fillRect(0, 0, getWidth(), getHeight());&lt;br /&gt;&lt;br /&gt;    // yellow circle&lt;br /&gt;    g.setColor(Color.yellow);&lt;br /&gt;    g.fillOval(0, 0, 240, 240);&lt;br /&gt;&lt;br /&gt;    // magenta circle&lt;br /&gt;    g.setColor(Color.magenta);&lt;br /&gt;    g.fillOval(160, 160, 240, 240);&lt;br /&gt;&lt;br /&gt;    // paint the icon below blue sqaure&lt;br /&gt;    int w = java2sLogo.getIconWidth();&lt;br /&gt;    int h = java2sLogo.getIconHeight();&lt;br /&gt;    java2sLogo.paintIcon(this, g, 280 - (w / 2), 120 - (h / 2));&lt;br /&gt;&lt;br /&gt;    // paint the icon below red sqaure&lt;br /&gt;    java2sLogo.paintIcon(this, g, 120 - (w / 2), 280 - (h / 2));&lt;br /&gt;&lt;br /&gt;    // transparent red square&lt;br /&gt;    g.setColor(m_tRed);&lt;br /&gt;    g.fillRect(60, 220, 120, 120);&lt;br /&gt;&lt;br /&gt;    // transparent green circle&lt;br /&gt;    g.setColor(m_tGreen);&lt;br /&gt;    g.fillOval(140, 140, 120, 120);&lt;br /&gt;&lt;br /&gt;    // transparent blue square&lt;br /&gt;    g.setColor(m_tBlue);&lt;br /&gt;    g.fillRect(220, 60, 120, 120);&lt;br /&gt;&lt;br /&gt;    g.setColor(Color.black);&lt;br /&gt;&lt;br /&gt;    g.setFont(monoFont);&lt;br /&gt;    FontMetrics fm = g.getFontMetrics();&lt;br /&gt;    w = fm.stringWidth("Java Source");&lt;br /&gt;    h = fm.getAscent();&lt;br /&gt;    g.drawString("Java Source", 120 - (w / 2), 120 + (h / 4));&lt;br /&gt;&lt;br /&gt;    g.setFont(sanSerifFont);&lt;br /&gt;    fm = g.getFontMetrics();&lt;br /&gt;    w = fm.stringWidth("and");&lt;br /&gt;    h = fm.getAscent();&lt;br /&gt;    g.drawString("and", 200 - (w / 2), 200 + (h / 4));&lt;br /&gt;&lt;br /&gt;    g.setFont(serifFont);&lt;br /&gt;    fm = g.getFontMetrics();&lt;br /&gt;    w = fm.stringWidth("Support.");&lt;br /&gt;    h = fm.getAscent();&lt;br /&gt;    g.drawString("Support.", 280 - (w / 2), 280 + (h / 4));&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;li&gt;Method lain yang diperlukan adalah method untuk menentukan dimensi dari frame.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;public Dimension getPreferredSize() {&lt;br /&gt;    return new Dimension(400, 400);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public Dimension getMinimumSize() {&lt;br /&gt;    return getPreferredSize();&lt;br /&gt;  }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;li&gt;Terakhir adalah implementasi class MyCanvas menjadi objek yang nyata pada void main.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;  public static void main(String args[]) {&lt;br /&gt;    JFrame mainFrame = new JFrame("Graphics demo");&lt;br /&gt;    mainFrame.getContentPane().add(new MyCanvas());&lt;br /&gt;    mainFrame.pack();&lt;br /&gt;    mainFrame.setVisible(true);&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;li&gt;Untuk menjalankan program Java ini, kita dapat mengompilasi dengan javac.exe serta menjalankan menggunakan java.exe&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&gt; javac MyCanvas.java&lt;br /&gt;&gt; java MyCanvas&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Tampilan yang didapatkan adalah seperti berikut:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_aceOYK9mWV0/S1pErMSrWzI/AAAAAAAAAWA/kFF8_Fk3-wA/s1600-h/02.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 304px; height: 320px;" src="http://4.bp.blogspot.com/_aceOYK9mWV0/S1pErMSrWzI/AAAAAAAAAWA/kFF8_Fk3-wA/s320/02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5429727809573182258" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-8033748708078446377?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/8033748708078446377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2010/01/menggambar-dengan-menggunakan-objek.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/8033748708078446377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/8033748708078446377'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2010/01/menggambar-dengan-menggunakan-objek.html' title='Menggambar Dengan Menggunakan Objek Font, Color dan Graphics Pada Java'/><author><name>Windra Swastika</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_aceOYK9mWV0/Snn406FYluI/AAAAAAAAARg/SxZqfyVaMog/S220/image.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_aceOYK9mWV0/S1pErMSrWzI/AAAAAAAAAWA/kFF8_Fk3-wA/s72-c/02.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-5417706448059639106</id><published>2010-01-23T07:20:00.002+07:00</published><updated>2010-01-23T07:26:00.053+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><title type='text'>Komponen Kalender Pada Layout 2 Kolom</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Situs dengan layout 2 kolom sering digunakan untuk memberikan ruang penambahan untuk komponen tertentu, misalnya clock, kalender, shoutbox, dan sebagainya. Layout 2 kolom ini, dapat dibuat dengan mendefinisikan style menggunakan Cascading Style Sheet (CSS).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Tip kali ini adalah menerapkan layout 2 kolom dengan menambahkan komponen kalender di sisi kanan. Komponen kalender dibuat dengan menggunakan JavaScript.Langkah-langkah untuk membuatnya adalah:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Kita buat kode awal untuk HTML dan mendefinisikan style untuk layout 2 kolom ini.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;html lang="en"&amp;gt; &lt;br /&gt;&amp;lt;head&amp;gt; &lt;br /&gt;  &amp;lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&amp;gt; &lt;br /&gt;  &amp;lt;title&amp;gt;Kalender&amp;lt;/title&amp;gt; &lt;br /&gt;  &amp;lt;style type="text/css"&amp;gt; &lt;br /&gt;    body { background: #bfadad; }&lt;br /&gt;    #container {&lt;br /&gt;      width: 755px;&lt;br /&gt;      margin: 0 0 0 auto;  }    &lt;br /&gt;    #header { height: 70px; }&lt;br /&gt;    #footer {&lt;br /&gt;    height: 68px;&lt;br /&gt;    clear: both; }&lt;br /&gt;#content {&lt;br /&gt;  width: 470px;&lt;br /&gt;  float: left;&lt;br /&gt;  margin-top: -80px;&lt;br /&gt;  padding-left: 46px; }&lt;br /&gt;#navigation {&lt;br /&gt;  width: 190px;&lt;br /&gt;  float: left;&lt;br /&gt;  margin-top: -20px;&lt;br /&gt;  padding-left: 30px; } &lt;br /&gt;&amp;lt;/style&amp;gt; &lt;br /&gt;&amp;lt;/head&amp;gt; &lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;li&gt;Layout dapat dibagi menjadi beberapa bagian, yaitu header (yang diletakkan di atas), content (sebagai bagian utama/isi) dan navigation (tempat meletakkan kalender). &lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;div id="container"&amp;gt;&lt;br /&gt;&amp;lt;div id="header"&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;div id="content"&amp;gt;&lt;br /&gt;&amp;lt;h1&amp;gt;Lorem Ipsum&amp;lt;/h1&amp;gt;&lt;br /&gt;&amp;lt;p&amp;gt;Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut...&amp;lt;/p&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;li&gt;Untuk bagian navigation, kita akan langsung letakkan kode JavaScript untuk menampilkan kalender.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;div id="navigation"&amp;gt;&lt;br /&gt;&amp;lt;SCRIPT LANGUAGE="JavaScript"&amp;gt; &lt;br /&gt;&amp;lt;!-- Begin &lt;br /&gt;monthnames = new Array( "January", "Februrary", "March", "April", "May", "June", "July", &lt;br /&gt;"August", "September", "October", "November", "Decemeber"); &lt;br /&gt;var linkcount=0; &lt;br /&gt;&lt;br /&gt;function addlink(month, day, href) { &lt;br /&gt;  var entry = new Array(3); &lt;br /&gt;  entry[0] = month; &lt;br /&gt;  entry[1] = day; &lt;br /&gt;  entry[2] = href; &lt;br /&gt;  this[linkcount++] = entry; &lt;br /&gt;} &lt;br /&gt;  Array.prototype.addlink = addlink; &lt;br /&gt;  linkdays = new Array(); &lt;br /&gt;  monthdays = new Array(12); &lt;br /&gt;  monthdays[0]=31; monthdays[1]=28; monthdays[2]=31; &lt;br /&gt;  monthdays[3]=30; monthdays[4]=31; monthdays[5]=30; &lt;br /&gt;  monthdays[6]=31; monthdays[7]=31; monthdays[8]=30; &lt;br /&gt;  monthdays[9]=31; monthdays[10]=30; monthdays[11]=31; &lt;br /&gt;  &lt;br /&gt;  todayDate=new Date(); &lt;br /&gt;  thisday=todayDate.getDay(); &lt;br /&gt;  thismonth=todayDate.getMonth(); &lt;br /&gt;  thisdate=todayDate.getDate(); &lt;br /&gt;  thisyear=todayDate.getYear(); &lt;br /&gt;&lt;br /&gt;  thisyear = thisyear % 100; &lt;br /&gt;  thisyear = ((thisyear &amp;lt; 50) ? (2000 + thisyear) : (1900 + thisyear)); &lt;br /&gt;  if (((thisyear % 4 == 0) &amp;&amp; !(thisyear % 100 == 0)) ||(thisyear % 400 == 0)) &lt;br /&gt;    monthdays[1]++; &lt;br /&gt;  &lt;br /&gt;  startspaces=thisdate; &lt;br /&gt;  while (startspaces &amp;gt; 7) startspaces-=7; &lt;br /&gt;  startspaces = thisday - startspaces + 1; &lt;br /&gt;  if (startspaces &amp;lt; 0) startspaces+=7; &lt;br /&gt;&lt;br /&gt;  document.write("&amp;lt;table border=2 bgcolor=white "); &lt;br /&gt;  document.write("bordercolor=black&amp;gt;&amp;lt;font color=black&amp;gt;"); &lt;br /&gt;  document.write("&amp;lt;tr&amp;gt;&amp;lt;td colspan=7&amp;gt;&amp;lt;center&amp;gt;&amp;lt;strong&amp;gt;" + monthnames[thismonth] + " " + thisyear + "&amp;lt;/strong&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;"); &lt;br /&gt;&lt;br /&gt;  document.write("&amp;lt;tr&amp;gt;"); &lt;br /&gt;  document.write("&amp;lt;td align=center&amp;gt;Su&amp;lt;/td&amp;gt;"); &lt;br /&gt;  document.write("&amp;lt;td align=center&amp;gt;M&amp;lt;/td&amp;gt;"); &lt;br /&gt;  document.write("&amp;lt;td align=center&amp;gt;Tu&amp;lt;/td&amp;gt;"); &lt;br /&gt;  document.write("&amp;lt;td align=center&amp;gt;W&amp;lt;/td&amp;gt;"); &lt;br /&gt;  document.write("&amp;lt;td align=center&amp;gt;Th&amp;lt;/td&amp;gt;"); &lt;br /&gt;  document.write("&amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;"); &lt;br /&gt;  document.write("&amp;lt;td align=center&amp;gt;Sa&amp;lt;/td&amp;gt;"); &lt;br /&gt;  document.write("&amp;lt;/tr&amp;gt;"); &lt;br /&gt;  document.write("&amp;lt;tr&amp;gt;"); &lt;br /&gt;&lt;br /&gt;  for (s=0;s&amp;lt;startspaces;s++) { &lt;br /&gt;    document.write("&amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;"); } &lt;br /&gt;  &lt;br /&gt;  count=1; &lt;br /&gt;  while (count &amp;lt;= monthdays[thismonth]) { &lt;br /&gt;    for (b = startspaces;b&amp;lt;7;b++) { &lt;br /&gt;      linktrue=false; &lt;br /&gt;      document.write("&amp;lt;td&amp;gt;"); &lt;br /&gt;      for (c=0;c&amp;lt;linkdays.length;c++) { &lt;br /&gt;        if (linkdays[c] != null) { &lt;br /&gt;          if ((linkdays[c][0]==thismonth + 1) &amp;&amp; (linkdays[c][1]==count)) { &lt;br /&gt;            document.write("&amp;lt;a href=\"" + linkdays[c][2] + "\"&amp;gt;"); &lt;br /&gt;            linktrue=true; &lt;br /&gt;          } &lt;br /&gt;        } &lt;br /&gt;      } &lt;br /&gt;&lt;br /&gt;      if (count==thisdate) { &lt;br /&gt;        document.write("&amp;lt;font color='FF0000'&amp;gt;&amp;lt;strong&amp;gt;"); } &lt;br /&gt;  &lt;br /&gt;      if (count &amp;lt;= monthdays[thismonth]) { &lt;br /&gt;        document.write(count); &lt;br /&gt;      } else { &lt;br /&gt;        document.write(" "); } &lt;br /&gt;  &lt;br /&gt;      if (count==thisdate) { &lt;br /&gt;        document.write("&amp;lt;/strong&amp;gt;&amp;lt;/font&amp;gt;"); &lt;br /&gt;      } &lt;br /&gt;  &lt;br /&gt;      if (linktrue) &lt;br /&gt;        document.write("&amp;lt;/a&amp;gt;"); &lt;br /&gt;      document.write("&amp;lt;/td&amp;gt;"); &lt;br /&gt;      count++; &lt;br /&gt;    } &lt;br /&gt;    document.write("&amp;lt;/tr&amp;gt;"); &lt;br /&gt;    document.write("&amp;lt;tr&amp;gt;"); &lt;br /&gt;    startspaces=0; &lt;br /&gt;  } &lt;br /&gt;  document.write("&amp;lt;/table&amp;gt;&amp;lt;/p&amp;gt;"); // End &lt;br /&gt;--&amp;gt; &amp;lt;/SCRIPT&amp;gt; &lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;div id="footer"&amp;gt;&lt;br /&gt;Copyright &amp;copy; &amp;lt;a href="mailto:your@address.here"&amp;gt;Your Name&amp;lt;/a&amp;gt;.&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&amp;lt;!--container end--&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;li&gt;Berikut adalah contoh tampilan yang didapatkan:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_aceOYK9mWV0/S1pCAD0zkDI/AAAAAAAAAV4/9MOJg0Kcxyo/s1600-h/02.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 223px;" src="http://4.bp.blogspot.com/_aceOYK9mWV0/S1pCAD0zkDI/AAAAAAAAAV4/9MOJg0Kcxyo/s320/02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5429724869542776882" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-5417706448059639106?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/5417706448059639106/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2010/01/komponen-kalender-pada-layout-2-kolom.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/5417706448059639106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/5417706448059639106'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2010/01/komponen-kalender-pada-layout-2-kolom.html' title='Komponen Kalender Pada Layout 2 Kolom'/><author><name>Windra Swastika</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_aceOYK9mWV0/Snn406FYluI/AAAAAAAAARg/SxZqfyVaMog/S220/image.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_aceOYK9mWV0/S1pCAD0zkDI/AAAAAAAAAV4/9MOJg0Kcxyo/s72-c/02.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-290482072222101794</id><published>2010-01-18T15:44:00.003+07:00</published><updated>2010-01-18T15:53:07.311+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>Menerapkan Re-Captcha Untuk Form Pendaftaran</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;CAPTCHA merupakan singkatan dari Completely Automated Public Turing test to tell Computers and Humans. Digunakan untuk melakukan tes dalam menentukan apakah data diisi oleh bot (komputer) atau manusia. CAPTCHA berisikan sebuah atau lebih tulisan yang tidak memiliki arti khusus dengan kumpulan karakter yang didistorsi sedemikian rupa serta background warna tertentu namun masih dalam batas yang wajar untuk dikenali oleh mata manusia. Sedangkan bagi komputer, karakter tersebut tidak dapat terbaca.&lt;br /&gt;&lt;br /&gt;RECAPTCHA tidak jauh berbeda dengan CAPTCHA dan memiliki tujuan utama yang sama. Yang berbeda adalah tulisan yang diminta dimasukkan biasanya minimal dua kata, salah satu merupakan CAPTCHA biasa dan yang lain adalah kata dari sebuah buku atau media cetak yang akan di-digitalisasikan.&lt;br /&gt;&lt;br /&gt;Proses digitalisasi sering kali menghadapi masalah pada karakter yang kurang tajam/banyak noise. Bagi mesin untuk mengenali karakter  semacam itu amatlah sulit, namun bagi mata manusia, hal tersebut tidaklah terlalu sulit. Dari permasalahan digitalisasi tersebut, muncullah ide reCaptcha. Kata dari suatu buku yang sulit didigitalisasi (karena kurang baiknya kualitas scan), ditampilkan sebagai Captcha untuk meminta “bantuan” dari manusia agar mengetikkan kata apa sebenarnya yang dimaksud.&lt;br /&gt;&lt;br /&gt;Untuk menggunakan re-Captcha, kita memerlukan library yang dapat diunduh di situs re-CAPTCHA, yaitu http://www.recaptcha.net. Tip kali ini adalah membuat halaman login dengan validasi menggunakan re-Captcha&lt;br /&gt;&lt;br /&gt;Langkah-langkah untuk membuatnya adalah:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;Kode PHP awal untuk aplikasi ini adalah mendefinisikan publickey dan privatekey. Kedua kunci ini bisa didapatkan dengan gratis melalui registrasi pada recaptcha.net.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;$publickey = "6LeSGAkAAAAAAGHNAavz-_-DsdYdIfV_HoIuam67";&lt;br /&gt;$privatekey = "6LeSGAkAAAAAAGuMfcuG9A0_740-qQ4auCon5piv ";&lt;br /&gt;&lt;br /&gt;require_once('recaptchalib.php');&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Kita siapkan style untuk memperbaiki tampilan form login ini.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&lt;br /&gt;"http://www.w3.org/TR/html4/loose.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml"&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;style&amp;gt;&lt;br /&gt;&lt;br /&gt;.label{&lt;br /&gt;  font-family:Verdana, Arial, Helvetica, sans-serif;&lt;br /&gt;  font-size:11px;&lt;br /&gt;  color:#0066FF;&lt;br /&gt;}&lt;br /&gt;.tableBorder{&lt;br /&gt;  border:solid 1px #0066FF;&lt;br /&gt;  margin-top:100px;&lt;br /&gt;}&lt;br /&gt;.message{&lt;br /&gt;  font-family:Verdana, Arial, Helvetica, sans-serif;&lt;br /&gt;  font-size:14px;&lt;br /&gt;  font-weight:bold;&lt;br /&gt;  color:#0066FF;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&amp;lt;/style&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;PHP Recaptcha&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;div&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Proses berikutnya adalah menampilkan form yang terdiri dari masukan nama, email, telepon, dan password.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;   if(!$_POST)&lt;br /&gt;    {&lt;br /&gt;       echo "&amp;lt;form action=\"\" method=\"POST\"&amp;gt;";&lt;br /&gt;       echo '&amp;lt;table cellpadding="2px" cellspacing="1px" bgcolor="#F4F5F7" width="400px" class="tableBorder" align="center"&amp;gt;';&lt;br /&gt;       echo '&amp;lt;tr&amp;gt;';&lt;br /&gt;       echo '&amp;lt;td colspan="2" bgcolor="#0066FF" align="center" &amp;gt; &amp;lt;/td&amp;gt;';&lt;br /&gt;       echo '&amp;lt;/tr&amp;gt;';&lt;br /&gt;       echo '&amp;lt;tr&amp;gt;';&lt;br /&gt;       echo '&amp;lt;td colspan="2" class="label"&amp;gt; &amp;lt;/td&amp;gt;';&lt;br /&gt;       echo '&amp;lt;/tr&amp;gt;';&lt;br /&gt;       echo "&amp;lt;tr&amp;gt;";&lt;br /&gt;       echo '&amp;lt;td class="label" align="right" width="40%"&amp;gt;Nama:&amp;lt;/td&amp;gt;';&lt;br /&gt;       echo '&amp;lt;td&amp;gt;&amp;lt;input type="text" name="newname"&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;';&lt;br /&gt;       echo '&amp;lt;td class="label" align="right" width="40%"&amp;gt;Email:&amp;lt;/td&amp;gt;';&lt;br /&gt;       echo '&amp;lt;td&amp;gt;&amp;lt;input type="text" name="email"&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;';&lt;br /&gt;   echo '&amp;lt;td class="label" align="right" width="40%"&amp;gt;Telp:&amp;lt;/td&amp;gt;';&lt;br /&gt;       echo '&amp;lt;td&amp;gt;&amp;lt;input type="text" name="telp"&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;';&lt;br /&gt;       echo '&amp;lt;td class="label" align="right" width="40%"&amp;gt;Password:&amp;lt;/td&amp;gt;';&lt;br /&gt;       echo '&amp;lt;td&amp;gt;&amp;lt;input type="password" name="newsandi1"&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;';&lt;br /&gt;       echo '&amp;lt;td class="label" align="right" width="40%"&amp;gt;Re-type Password:&amp;lt;/td&amp;gt;';&lt;br /&gt;       echo '&amp;lt;td&amp;gt;&amp;lt;input type="password" name="newsandi2"&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;';&lt;br /&gt;       echo '&amp;lt;td colspan=2  align="center" class="label" &amp;gt;';&lt;br /&gt;       echo recaptcha_get_html($publickey);&lt;br /&gt;       echo '&amp;lt;/td&amp;gt;';&lt;br /&gt;       echo '&amp;lt;tr&amp;gt;';&lt;br /&gt;       echo '&amp;lt;td colspan=2 align="right"&amp;gt;&amp;lt;input type="submit" value="Submit" /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;';&lt;br /&gt;       echo "&amp;lt;/table&amp;gt;";&lt;br /&gt;     &lt;br /&gt;       echo "&amp;lt;/form&amp;gt;";&lt;br /&gt;     &lt;br /&gt;    }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Proses pengujian dilakukan dengan memanfaatkan fungsi recaptch_check_answer yang ada di library recaptcha. Jika respon benar, maka ditampilkan di layara "Respon re-captcha BENAR".&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    else&lt;br /&gt;    {&lt;br /&gt;      $response = recaptcha_check_answer(&lt;br /&gt;      $privatekey,&lt;br /&gt;      $_SERVER['REMOTE_ADDR'],&lt;br /&gt;      $_POST['recaptcha_challenge_field'],&lt;br /&gt;      $_POST['recaptcha_response_field']);&lt;br /&gt;     &lt;br /&gt;      echo "Nama     : " . $_POST['newname'] . "&amp;lt;br&amp;gt;";&lt;br /&gt;      echo "Email    : " . $_POST['email'] . "&amp;lt;br&amp;gt;";&lt;br /&gt;      echo "Telp     : " . $_POST['telp'] . "&amp;lt;br&amp;gt;";&lt;br /&gt;      echo "Password : " . $_POST['newsandi1'] . "&amp;lt;br&amp;gt;";&lt;br /&gt;      if ( $response-&amp;gt;is_valid )&lt;br /&gt;      {&lt;br /&gt;        echo "&amp;lt;h3&amp;gt;Respon re-captcha BENAR&amp;lt;/h3&amp;gt;";&lt;br /&gt;      &lt;br /&gt;      }&lt;br /&gt;        else&lt;br /&gt;      {&lt;br /&gt;        echo "&amp;lt;h3&amp;gt;Respon re-captcha SALAH&amp;lt;/h3&amp;gt;.";&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt; ?&amp;gt;&lt;br /&gt; &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;5. Berikut adalah beberapa contoh tampilan yang didapatkan:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_aceOYK9mWV0/S1QhTfzNZSI/AAAAAAAAAVo/5S1CKnhU9w0/s1600-h/01.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 307px;" src="http://1.bp.blogspot.com/_aceOYK9mWV0/S1QhTfzNZSI/AAAAAAAAAVo/5S1CKnhU9w0/s320/01.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5428000069725807906" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_aceOYK9mWV0/S1QhaXZkGLI/AAAAAAAAAVw/fde_3W3ORDE/s1600-h/02.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 215px;" src="http://4.bp.blogspot.com/_aceOYK9mWV0/S1QhaXZkGLI/AAAAAAAAAVw/fde_3W3ORDE/s320/02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5428000187729844402" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-290482072222101794?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/290482072222101794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2010/01/menerapkan-re-captcha-untuk-form.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/290482072222101794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/290482072222101794'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2010/01/menerapkan-re-captcha-untuk-form.html' title='Menerapkan Re-Captcha Untuk Form Pendaftaran'/><author><name>Windra Swastika</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_aceOYK9mWV0/Snn406FYluI/AAAAAAAAARg/SxZqfyVaMog/S220/image.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_aceOYK9mWV0/S1QhTfzNZSI/AAAAAAAAAVo/5S1CKnhU9w0/s72-c/01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-3937969698619689053</id><published>2010-01-18T07:53:00.000+07:00</published><updated>2010-01-18T07:54:09.015+07:00</updated><title type='text'>Membuat Calculator dengan Java</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Java merupakan salah satu bahasa pemrograman yang cukup populer baik di kalangan mahasiswa IT maupun programmer/developer. Java mengusung konsep “Write once run anywhere”, yang artinya sekali programmer menuliskan kode untuk membuat suatu aplikasi, maka aplikasi tersebut dapat dijalankan di berbagai macam platform. Sebagai hasilnya, muncullah aplikasi-aplikasi Java pada berbagai platform,  mulai dari Windows, Linux, Web, Mobile Phone, Peripheral dan banyak lagi.&lt;br /&gt;&lt;br /&gt;Sebagai tip awal untuk Java, kita akan membuat aplikasi sederhana, yaitu kalkulator. Aplikasi kalkulator ini menggunakan mode GUI (Graphical User Interface) yang dilengkapi dengan button-button seperti halnya aplikasi Calculator pada Windows.&lt;br /&gt;Langkah-langkahnya adalah:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Karena aplikasi ini merupakan aplikasi grafik, maka beberapa library perlu di-import terlebih dulu.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;import java.awt.BorderLayout;&lt;br /&gt;import java.awt.Button;&lt;br /&gt;import java.awt.Container;&lt;br /&gt;import java.awt.GridLayout;&lt;br /&gt;import java.awt.event.ActionEvent;&lt;br /&gt;import java.awt.event.ActionListener;&lt;br /&gt;&lt;br /&gt;import javax.swing.JApplet;&lt;br /&gt;import javax.swing.JButton;&lt;br /&gt;import javax.swing.JFrame;&lt;br /&gt;import javax.swing.JPanel;&lt;br /&gt;import javax.swing.JTextField;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Aplikasi Calculator merupakan turunan dari class JFrame yang ada di library Java.swing. Kita mendefisinikan terlebih dulu class utamanya, yaitu class Calculator, yang sekaligus menunjukkan nama file untuk aplikasi ini, yaitu Calculator.java.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;public class Calculator extends JFrame {&lt;br /&gt;private JTextField display;&lt;br /&gt;private double arg = 0;&lt;br /&gt;private String op = "=";&lt;br /&gt;private boolean start = true;&lt;br /&gt;TextFieldHandler handler = new TextFieldHandler();&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Kita siapkan sebuah konstruktor (yang pertama dieksekusi oleh aplikasi) untuk aplikasi calculator ini.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;  public Calculator() {&lt;br /&gt;    setLayout(new BorderLayout());&lt;br /&gt;&lt;br /&gt;    display = new JTextField("0");&lt;br /&gt;    display.setEditable(false);&lt;br /&gt;    add(display, "North");&lt;br /&gt;&lt;br /&gt;    JPanel p = new JPanel();&lt;br /&gt;    p.setLayout(new GridLayout(4, 4));&lt;br /&gt;    String buttons = "789/456*123-0.=+";&lt;br /&gt;    for (int i = 0; i &amp;lt; buttons.length(); i++)&lt;br /&gt;      addButton(p, buttons.substring(i, i + 1));&lt;br /&gt;    add(p, "Center");&lt;br /&gt;  }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Pada setiap button, kita perlu memanggil method addActionListener untuk "mendengar" setiap event yang terjadi pada button yang ada.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;private void addButton(Container c, String s) {&lt;br /&gt;  JButton b = new JButton(s);&lt;br /&gt;  c.add(b);&lt;br /&gt;  b.addActionListener(handler);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Event click yang terjadi pada setiap button, akan ditangkap oleh method ActionPerformed. Pada method inilah proses kalkulasi dilakukan.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;private class TextFieldHandler implements ActionListener {&lt;br /&gt;public void actionPerformed( ActionEvent event ) {&lt;br /&gt;  String s = event.getActionCommand();&lt;br /&gt;  if ('0' &lt;= s.charAt(0) &amp;amp;&amp;amp; s.charAt(0) &lt;= '9' || s.equals(".")) {       &lt;br /&gt;    if (start)  //pertama kali user menekan button         &lt;br /&gt;      display.setText(s);       &lt;br /&gt;    else&lt;br /&gt;      display.setText(display.getText() + s);       &lt;br /&gt;    start = false;     &lt;br /&gt;    } else {&lt;br /&gt;    if (start) {         &lt;br /&gt;      if (s.equals("-")) {           &lt;br /&gt;        display.setText(s);           &lt;br /&gt;        start = false;         &lt;br /&gt;      } else           &lt;br /&gt;          op = s;       &lt;br /&gt;    } else {         //text pada display diubah menjadi double           &lt;br /&gt;      calculate(Double.parseDouble(display.getText()));         &lt;br /&gt;      op = s;         &lt;br /&gt;      start = true;&lt;br /&gt;    } &lt;br /&gt;  }   &lt;br /&gt;} } &lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Setelah database sukses dibuat, kita dapat menjalankan program VB.Net untuk menguji apakah koneksi dapat dibuat atau tidak. Konfigurasi standard yang kita masukkan adalah: Server: localhost, Username: root, Password: [kosong], Database: testkoneksi&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;  public void calculate(double n) {&lt;br /&gt;  if (op.equals("+"))&lt;br /&gt;    arg += n;&lt;br /&gt;  else if (op.equals("-"))&lt;br /&gt;    arg -= n;&lt;br /&gt;  else if (op.equals("*"))&lt;br /&gt;    arg *= n;&lt;br /&gt;  else if (op.equals("/"))&lt;br /&gt;    arg /= n;&lt;br /&gt;  else if (op.equals("="))&lt;br /&gt;    arg = n;&lt;br /&gt;  //hasil ditampilkan&lt;br /&gt;  display.setText("" + arg);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Terakhir adalah membuat void main yang merupakan penerapan class Calculator yang telah dibuat.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;public static void main(String[] args) {&lt;br /&gt;  Calculator calc = new Calculator();&lt;br /&gt;  calc.setTitle("Calculator");&lt;br /&gt;  calc.setSize(200, 200);&lt;br /&gt;  calc.setVisible(true);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Untuk menjalankan program Java ini, kita dapat mengompilasi dengan javac.exe serta menjalankan menggunakan java.exe&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&gt; javac Calculator.java&lt;br /&gt;&lt;br /&gt;&gt; java Calculator&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Tampilan yang didapatkan adalah seperti berikut:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_aceOYK9mWV0/S1Ov2bZ-mkI/AAAAAAAAAVg/Wv8RQ3eSOU0/s1600-h/01.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 303px; height: 306px;" src="http://1.bp.blogspot.com/_aceOYK9mWV0/S1Ov2bZ-mkI/AAAAAAAAAVg/Wv8RQ3eSOU0/s320/01.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5427875325516094018" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-3937969698619689053?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/3937969698619689053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2010/01/membuat-calculator-dengan-java.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/3937969698619689053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/3937969698619689053'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2010/01/membuat-calculator-dengan-java.html' title='Membuat Calculator dengan Java'/><author><name>Windra Swastika</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_aceOYK9mWV0/Snn406FYluI/AAAAAAAAARg/SxZqfyVaMog/S220/image.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_aceOYK9mWV0/S1Ov2bZ-mkI/AAAAAAAAAVg/Wv8RQ3eSOU0/s72-c/01.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-143189771732878123</id><published>2010-01-05T20:16:00.001+07:00</published><updated>2010-01-05T20:21:32.985+07:00</updated><title type='text'>Visual Basic – Membuat Teks Berjalan</title><content type='html'>&lt;p class="abstract"&gt;Teks berjalan seringkali digunakan pada display di toko untuk menarik perhatian. Dengan program yang pendek, kita dapat membuat teks berjalan seperti itu.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Langkah-langkah pembuatannya:&lt;/p&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Buat form baru dengan 2 buah label yang bernama lblteks1 dan lblteks2. Sebuah timer yang bernama timer1 serta sebuah command button yang bernama cmdExit.&lt;/li&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Gp4jAV9pQtg/S0M8mBi4_tI/AAAAAAAAAKc/6Yv51NTBgWw/s1600-h/02.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 300px; height: 167px;" src="http://2.bp.blogspot.com/_Gp4jAV9pQtg/S0M8mBi4_tI/AAAAAAAAAKc/6Yv51NTBgWw/s320/02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5423245000231681746" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;li&gt;Interval untuk timer diubah menjadi 100. Logika programnya adalah meletakkan huruf terakhir pada posisi pertama setiap 0.1 detik (100 milisekon). Efek yang dihasilkan adalah teks berjalan dari kiri ke kanan. Sedangkan untuk teks yang berjalan dari kanan ke kiri, dilakukan dengan meletakkan huruf pertama pada posisi terakhir.&lt;/li&gt;&lt;br /&gt;&lt;pre&gt;Private Sub cmdExit_Click()&lt;br /&gt;  End&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub Form_Load()&lt;br /&gt;  lblTeks1.Caption = "If you think you can win, you can win. "&lt;br /&gt;  lblTeks2.Caption = "Faith is necessary to victory. "&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub Timer1_Timer()&lt;br /&gt;  s$ = lblTeks1.Caption&lt;br /&gt;  s$ = Right$(s$, 1) &amp; Mid$(s$, 1, Len(s$) - 1)&lt;br /&gt;  lblTeks1.Caption = s$&lt;br /&gt;  &lt;br /&gt;  s$ = lblTeks2.Caption&lt;br /&gt;  s$ = Mid$(s$, 2, Len(s$)) &amp; Left$(s$, 1)&lt;br /&gt;  lblTeks2.Caption = s$&lt;br /&gt;End Sub&lt;/pre&gt;&lt;br /&gt;&lt;li&gt;Simpan form dengan nama FrmScroll. Lalu jalankan program dengan menekan tombol F5. Anda akan mendapatkan tampilan:&lt;/li&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Gp4jAV9pQtg/S0M8lnDWDjI/AAAAAAAAAKU/hn4y2iWbGuw/s1600-h/01.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 300px; height: 167px;" src="http://2.bp.blogspot.com/_Gp4jAV9pQtg/S0M8lnDWDjI/AAAAAAAAAKU/hn4y2iWbGuw/s320/01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5423244993120046642" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-143189771732878123?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/143189771732878123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2010/01/visual-basic-membuat-teks-berjalan.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/143189771732878123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/143189771732878123'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2010/01/visual-basic-membuat-teks-berjalan.html' title='Visual Basic – Membuat Teks Berjalan'/><author><name>R†</name><uri>http://www.blogger.com/profile/06404935452790331980</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Gp4jAV9pQtg/TAeH2I49RQI/AAAAAAAAAL0/-wOcj-aWl2I/S220/milo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Gp4jAV9pQtg/S0M8mBi4_tI/AAAAAAAAAKc/6Yv51NTBgWw/s72-c/02.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-3110951123790794686</id><published>2009-12-29T23:34:00.003+07:00</published><updated>2009-12-29T23:41:57.795+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>Dasar-dasar Pembuatan Situs Jejaring Sosial - Bag. 2</title><content type='html'>&lt;b&gt;Di posting lalu, kita mempelajari tentan dasar-dasar pembuatan situs jejaring sosial, khususnya pembuatan fungsi untuk membuat tabel user dan membuat tabel untuk menyimpan koneksi teman. Pada posting ini, akan didemokan bagaimana membuat aplikasi kecil berupa statistik teman, seperti berapa jumlah teman pria, wanita, single, in relationship, usia dan sebagainya.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Langkah-langkah untuk membuatnya adalah:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Dengan memanfaatkan function.php yang telah dibuat, kita membuat tabel user dan teman.  Struktur untuk tabel user adalah ID, Nama, Password, Tahun lahir, Status, Sex, DateEntry dan TimeEntry. Status mempunyai jenis field angka yang mewakili Single (1), In Relationship (2), It’s Complicated (3), Married (4). Sedangkan Sex diwakili oleh karakter M (Male) dan F (Female).&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;require_once('function.php');&lt;br /&gt;&lt;br /&gt;createTable("user",array("ID","Nama","Password","TahunLahir","Status","Sex","DateEntry","TimeEntry"),&lt;br /&gt;array("int(2)","char(40)","char(40)","char(5)","int(2)","char(2)","DATE","TIME"));&lt;br /&gt;&lt;br /&gt;createTable("Teman",array("ID","Teman","DateEntry","TimeEntry"),&lt;br /&gt;array("char(4)","char(4)","DATE","TIME"));&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Berikutnya kita mencoba untuk mengisikan data dummy dengan memanggil perintah insert yang ada pada function.php. Pada data dummy ini, kita mensimulasikan ada 10 user yang terdaftar (disimpan pada tabel user). Koneksi teman disimpan pada tabel teman.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;insert("user",array("001","Duck 1",sha1('001'),"1986","2","M"));&lt;br /&gt;insert("user",array("002"," Duck 2",sha1('002'),"1981","4","M"));&lt;br /&gt;insert("user",array("003"," Duck 3",sha1('003'),"1988","2","F"));&lt;br /&gt;insert("user",array("004"," Duck 4",sha1('004'),"1989","1","M"));&lt;br /&gt;insert("user",array("005"," Duck 5",sha1('005'),"1991","1","F"));&lt;br /&gt;insert("user",array("006"," Duck 6",sha1('006'),"1977","3","M"));&lt;br /&gt;insert("user",array("007"," Duck 7",sha1('007'),"1990","2","M"));&lt;br /&gt;insert("user",array("008"," Duck 8",sha1('008'),"1975","1","M"));&lt;br /&gt;insert("user",array("009"," Duck 9",sha1('009'),"1979","3","M"));&lt;br /&gt;insert("user",array("010"," Duck 10",sha1('010'),"1984","2","F"));&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;insert("Teman",array("001","002"));&lt;br /&gt;insert("Teman",array("001","005"));&lt;br /&gt;insert("Teman",array("001","007"));&lt;br /&gt;insert("Teman",array("002","001"));&lt;br /&gt;insert("Teman",array("002","003"));&lt;br /&gt;insert("Teman",array("002","004"));&lt;br /&gt;insert("Teman",array("002","005"));&lt;br /&gt;insert("Teman",array("002","006"));&lt;br /&gt;insert("Teman",array("002","007"));&lt;br /&gt;insert("Teman",array("002","008"));&lt;br /&gt;insert("Teman",array("002","009"));&lt;br /&gt;insert("Teman",array("002","010"));&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Dari data teman di atas, kita dapat membaca bahwa ID 001 berteman dengan ID 002, 005, dan 007. Sedangkan 002 berteman dengan semua yang ada di table user.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Untuk menampilkan statistik, kita bisa mencegat dengan menambahkan beberapa perintah SQL untuk mengolah datanya. Pencegatan ini kita lakukan pada function login2 (di function.php). Mula-mula kita melakukan pengujian apakah password telah dimasukkan dengan benar. Jika benar, browser akan menampilkan selamat datang serta menghitung jumlah teman yang dipunyai.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;function login2($userInput, $pass) {&lt;br /&gt; mysql_connect("localhost", "root", "");&lt;br /&gt; mysql_select_db('faceduuk'); &lt;br /&gt;&lt;br /&gt; $query = "SELECT * FROM user WHERE ID = '".$userInput."';"; &lt;br /&gt;&lt;br /&gt; $res = mysql_query($query); &lt;br /&gt; if (mysql_numrows($res) &amp;lt;= 0) {&lt;br /&gt;   echo "User ID is not available.&amp;lt;br /&amp;gt;";&lt;br /&gt; } else&lt;br /&gt; {&lt;br /&gt;   $pass2=sha1($pass);&lt;br /&gt;   $row = mysql_fetch_assoc($res); &lt;br /&gt;   if ($row['Password']==$pass2) {&lt;br /&gt;     echo "&amp;lt;h1&amp;gt;Selamat datang, ". $row['Nama'] . "&amp;lt;/h1&amp;gt;";&lt;br /&gt;  &lt;br /&gt; $id=$row['ID']; &lt;br /&gt;&lt;br /&gt;   $teman = mysql_query("SELECT * FROM teman where id='$id'");&lt;br /&gt; $jumlahTeman = mysql_num_rows($teman);&lt;br /&gt; echo "&amp;lt;br&amp;gt;Jumlah teman Anda : $jumlahTeman";&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Kemudian proses perhitungan statistik dimulai dengan menghitung jumlah teman pria, wanita, single, in relationship, dan merried.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt; $tteman = mysql_query("SELECT * FROM teman where id='$id'");&lt;br /&gt; $jumlahTemanPria = 0;&lt;br /&gt; for ($i=1; $i&amp;lt;=$jumlahTeman; $i++) {&lt;br /&gt;  $rows=mysql_fetch_array($tteman);&lt;br /&gt;  $jumlahTemanPria += mysql_num_rows(mysql_query("SELECT * FROM USER where id='$rows[1]' and sex='M'"));&lt;br /&gt; }&lt;br /&gt; echo "&amp;lt;br&amp;gt;Teman pria : $jumlahTemanPria - ".floor($jumlahTemanPria/$jumlahTeman*100)."%";&lt;br /&gt;  &lt;br /&gt; $jumlahTemanWanita = $jumlahTeman-$jumlahTemanPria;&lt;br /&gt; echo "&amp;lt;br&amp;gt;Teman wanita : $jumlahTemanWanita - ".floor($jumlahTemanWanita/$jumlahTeman*100)."%&amp;lt;br&amp;gt;";&lt;br /&gt;  &lt;br /&gt; $tteman = mysql_query("SELECT * FROM teman where id='$id'");&lt;br /&gt; $jumlahTemanSingle = 0;&lt;br /&gt; for ($i=1; $i&amp;lt;=$jumlahTeman; $i++) {&lt;br /&gt;  $rows=mysql_fetch_array($tteman);&lt;br /&gt;  $jumlahTemanSingle += mysql_num_rows(mysql_query("SELECT * FROM USER where id='$rows[1]' and status='1'"));&lt;br /&gt; }&lt;br /&gt; echo "&amp;lt;br&amp;gt;Single : $jumlahTemanSingle - ".floor($jumlahTemanSingle/$jumlahTeman*100)."%";&lt;br /&gt; &lt;br /&gt; $tteman = mysql_query("SELECT * FROM teman where id='$id'");&lt;br /&gt; $jumlahTemanInR = 0;&lt;br /&gt; for ($i=1; $i&amp;lt;=$jumlahTeman; $i++) {&lt;br /&gt;  $rows=mysql_fetch_array($tteman);&lt;br /&gt;  $jumlahTemanInR += mysql_num_rows(mysql_query("SELECT * FROM USER where id='$rows[1]' and status='2'"));&lt;br /&gt; }&lt;br /&gt; echo "&amp;lt;br&amp;gt;In Relationship : $jumlahTemanInR - ".floor($jumlahTemanInR/$jumlahTeman*100)."%"; &lt;br /&gt; &lt;br /&gt; $tteman = mysql_query("SELECT * FROM teman where id='$id'");&lt;br /&gt; $jumlahTemanMerried = 0;&lt;br /&gt; for ($i=1; $i&amp;lt;=$jumlahTeman; $i++) {&lt;br /&gt;  $rows=mysql_fetch_array($tteman);&lt;br /&gt;  $jumlahTemanMerried += mysql_num_rows(mysql_query("SELECT * FROM USER where id='$rows[1]' and status='4'"));&lt;br /&gt; } &lt;br /&gt; echo "&amp;lt;br&amp;gt;Married : $jumlahTemanMerried - ".floor($jumlahTemanMerried/$jumlahTeman*100)."%";&lt;br /&gt; &lt;br /&gt; $tteman = mysql_query("SELECT * FROM teman where id='$id'");&lt;br /&gt; $jumlahUmurTeman = 0;&lt;br /&gt; for ($i=1; $i&amp;lt;=$jumlahTeman; $i++) {&lt;br /&gt;  $rows=mysql_fetch_array($tteman);&lt;br /&gt;  $rows=mysql_fetch_array(mysql_query("SELECT TahunLahir FROM USER where id='$rows[1]'"));&lt;br /&gt;  $jumlahUmurTeman += 2009-$rows[0];&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; echo "&amp;lt;br&amp;gt;";&lt;br /&gt; echo "&amp;lt;br&amp;gt;Rata-rata usia : ".floor($jumlahUmurTeman/$jumlahTeman);&lt;br /&gt;   } // = password&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; } // user exist&lt;br /&gt;} // function login&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Untuk melakukan fungsi pemanggilan login2, kita dapat membuat aplikasi kecil berikut:&lt;br /&gt;&lt;pre&gt;&amp;lt;?php&lt;br /&gt;require_once('function.php');&lt;br /&gt;login2("001","001");&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Tampilan berikut merupakan tampilan yang didapatkan untuk pemanggilan login 001. Gambar berikutnya menunjukkan jika pemanggilan fungsi login diubah menjadi login2("002","002");&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_aceOYK9mWV0/SzowzBqh9YI/AAAAAAAAAVQ/egEMv7sOvSQ/s1600-h/02.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 265px;" src="http://2.bp.blogspot.com/_aceOYK9mWV0/SzowzBqh9YI/AAAAAAAAAVQ/egEMv7sOvSQ/s320/02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5420698754672096642" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_aceOYK9mWV0/Szow5SlX2vI/AAAAAAAAAVY/nCH5xhX5_pk/s1600-h/01.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 265px;" src="http://1.bp.blogspot.com/_aceOYK9mWV0/Szow5SlX2vI/AAAAAAAAAVY/nCH5xhX5_pk/s320/01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5420698862293080818" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-3110951123790794686?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/3110951123790794686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2009/12/dasar-dasar-pembuatan-situs-jejaring_29.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/3110951123790794686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/3110951123790794686'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2009/12/dasar-dasar-pembuatan-situs-jejaring_29.html' title='Dasar-dasar Pembuatan Situs Jejaring Sosial - Bag. 2'/><author><name>Windra Swastika</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_aceOYK9mWV0/Snn406FYluI/AAAAAAAAARg/SxZqfyVaMog/S220/image.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_aceOYK9mWV0/SzowzBqh9YI/AAAAAAAAAVQ/egEMv7sOvSQ/s72-c/02.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-8372215131274924057</id><published>2009-12-29T23:25:00.004+07:00</published><updated>2009-12-29T23:40:57.132+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>Dasar-dasar Pembuatan Situs Jejaring Sosial - Bag. 1</title><content type='html'>&lt;b&gt;Situs jejaring sosial seperti Facebook, MySpace ataupun Twitter sepertinya telah menjadi candu tersendiri bagi penggunanya. Beberapa tidak dapat memulai rutinitas hariannya sebelum membuat situs jejaring sosial untuk membaca kabar-kabar terbaru dari teman-temannya.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Kesuksesan dari situs jejaring sosial, membuat banyak pengembang web membuat situs serupa. Namun tentu saja pioneer dan mereka yang punya diferensiasilah yang akan lebih digemari.&lt;br /&gt;&lt;br /&gt;Sulitkah membuat situs jejaring sosial? Dengan menggunakan PHP (bahasa pemrograman yang juga digunakan oleh Facebook) dan MySQL, kita akan menerapkan konsep sederhana dari suatu situs jejaring sosial, di mana user dapat mendaftar, login dan menampilkan jumlah serta nama teman.&lt;br /&gt;&lt;br /&gt;Langkah-langkah untuk membuatnya adalah:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Kita buat suatu fungsi bernama createTable untuk membuat tabel pada database MySQL faceduuk. &lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;function createTable($table_name, $field_name, $field_type) {&lt;br /&gt;  $query = "CREATE TABLE IF NOT EXISTS ".$table_name." (";&lt;br /&gt;  for ($i = 0; $i &amp;lt; count($field_name); $i++) {&lt;br /&gt;    $query .= $field_name[$i]." ".$field_type[$i];&lt;br /&gt;    if ($i != count($field_name)-1) $query .= ", ";&lt;br /&gt;  }&lt;br /&gt;  $query .= ")";&lt;br /&gt;  mysql_connect("localhost", "root", "");&lt;br /&gt;  mysql_select_db('faceduuk');&lt;br /&gt;  mysql_query($query);&lt;br /&gt;  echo $query;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;createTable("user", array("UserID", "Password", "Nama", "TanggalEntry", "JamEntry"), array("char(10)", "char(40)", "char(40)", "date", "time"));&lt;br /&gt;&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Fungsi kedua yang akan kita buat adalah fungsi insert. Tujuan dari fungsi insert adalah memasukkan data pada tabel. Pada saat proses pendaftaran, fungsi ini akan dipanggil untuk menyimpan data yang telah dientry user ke dalam tabel.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;function insert($tabel, $ins) {&lt;br /&gt;  mysql_connect("localhost", "root", "");&lt;br /&gt;  mysql_select_db('faceduuk');  &lt;br /&gt;&lt;br /&gt;  $tanggal = date("Y-m-d");&lt;br /&gt;  $jam = date("G:i:s");&lt;br /&gt;  $data = "";&lt;br /&gt;  for ($i=0; $i&amp;lt;count($ins); $i++) {&lt;br /&gt;    $data .= "'".$ins[$i]."',";&lt;br /&gt;  }&lt;br /&gt; &lt;br /&gt;  $query = "INSERT INTO ". $tabel . &lt;br /&gt;  " VALUES (".$data." '".$tanggal."', '".$jam."');";&lt;br /&gt;  mysql_query($query);     &lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Fungsi ketiga adalah fungsi saat user melakukan login. Simpan kumpulan fungsi ini dengan function.php.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;function login2($userInput, $pass) {&lt;br /&gt;  mysql_connect("localhost", "root", "");&lt;br /&gt;  mysql_select_db('faceduuk');  &lt;br /&gt;  &lt;br /&gt;  $query = "SELECT * FROM user WHERE userID = '".$userInput."';";  &lt;br /&gt;&lt;br /&gt;  $res = mysql_query($query);  &lt;br /&gt;  if (mysql_numrows($res) &amp;lt;= 0) {&lt;br /&gt;    echo "UserID is not available.&amp;lt;br /&amp;gt;";&lt;br /&gt;  } else&lt;br /&gt;  {&lt;br /&gt;    $pass2=md5($pass);&lt;br /&gt;    $row = mysql_fetch_assoc($res);&lt;br /&gt;    if ($row['Password']==$pass2) {&lt;br /&gt;      echo "&amp;lt;h1&amp;gt;Selamat datang, ". $row['Nama'] . "&amp;lt;/h1&amp;gt;";&lt;br /&gt;      echo "&amp;lt;br&amp;gt;Teman Anda:&amp;lt;br&amp;gt;";&lt;br /&gt;      &lt;br /&gt;      //cari teman&lt;br /&gt;      $query = "SELECT * FROM teman WHERE userID = '".$userInput."';";  &lt;br /&gt;      $res = mysql_query($query);  &lt;br /&gt;      $tot = mysql_numrows($res);&lt;br /&gt;      echo "&amp;lt;strong&amp;gt;&amp;lt;ul&amp;gt;";&lt;br /&gt;      for ($i = 0; $i &amp;lt; mysql_numrows($res); $i++) {&lt;br /&gt;        $row = mysql_fetch_assoc($res);&lt;br /&gt;        echo "&amp;lt;li&amp;gt;".$row['teman']."&amp;lt;/li&amp;gt;";&lt;br /&gt;      }      &lt;br /&gt;      &lt;br /&gt;      $query = "SELECT * FROM teman WHERE teman = '".$userInput."';";  &lt;br /&gt;      $res = mysql_query($query);  &lt;br /&gt;      $tot += mysql_numrows($res);&lt;br /&gt;      for ($i = 0; $i &amp;lt; mysql_numrows($res); $i++) {&lt;br /&gt;        $row = mysql_fetch_assoc($res);&lt;br /&gt;        echo "&amp;lt;li&amp;gt;".$row['userID']."&amp;lt;/li&amp;gt;";&lt;br /&gt;      }      &lt;br /&gt;      echo "&amp;lt;/ul&amp;gt;&amp;lt;/strong&amp;gt;&amp;lt;br&amp;gt;";&lt;br /&gt;      echo "Jumlah teman: ".$tot;&lt;br /&gt;    } &lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Dengan memanfaatkan fungsi createTable, kita akan membuat dua buah tabel. Tabel pertama adalah tabel yang berisi data user (dengan field UserID, Password, Nama, TanggalEntry dan JamEntry) dan tabel kedua merupakan tabel teman (dengan field UserID, Teman, TanggalEntry dan JamEntry). Tabel teman ini menunjukkan siapa berteman dengan siapa. Setelah membuat tabel, kita isikan data teman secara manual. Tentu pada penerapannya, kita perlu membuat sebuah form untuk melakukan registrasi. Simpan file ini dengan nama data.php.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;  require("function.php");&lt;br /&gt;  createTable("user", array("UserID", "Password", "Nama", "TanggalEntry", "JamEntry"), array("char(10)", "char(40)", "char(40)", "date", "time"));&lt;br /&gt;  &lt;br /&gt;  insert("user", array("kwek",md5("kwek"),"Kwek Bebek"));  &lt;br /&gt;  insert("user", array("kwak",md5("kwak"),"Kwak Bebek"));  &lt;br /&gt;  insert("user", array("kwik",md5("kwik"),"Kwik Bebek"));  &lt;br /&gt;  insert("user", array("kwok",md5("kwok"),"Kwok Bebek"));  &lt;br /&gt;&lt;br /&gt;  createTable("teman", array("userID","teman", "tanggal", "jam"), &lt;br /&gt;  array("char(10)","char(10)", "date", "time"));&lt;br /&gt;  insert("teman",array("kwak","kwek"));&lt;br /&gt;  insert("teman",array("kwak","kwik"));&lt;br /&gt;  insert("teman",array("kwak","kwok"));&lt;br /&gt;  insert("teman",array("kwek","kwok"));&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Dari data di atas, tabel user akan berisi 4 buah record, yaitu kwek, kwak, kwok dan kwik. Lalu dari tabel teman, kita menyisipkan 4 buah record, yaitu kwak berteman dengan kwek, kwak berteman dengan kwik, kwak berteman dengan kwok dan kwek berteman dengan kwok.&lt;br /&gt;&lt;li&gt;Fungsi terakhir, yaitu fungsi login dapat kita gunakan untuk mensimulasikan saat user melakukan login. Agar praktis, kita akan panggil langsung fungsi login ke dalam sebuah file php. Simpan file php dengan nama testlogin.php. &lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;Faceduuk&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;  require("function.php");&lt;br /&gt;  login2("kwak", "kwak");&lt;br /&gt;?&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt; &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;li&gt;Tampilan berikut merupakan tampilan yang didapatkan untuk pemanggilan login kwak. Gambar berikutnya menunjukkan jika pemanggilan fungsi login diubah menjadi login2("kwek","kwek");&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_aceOYK9mWV0/SzovOI8sleI/AAAAAAAAAVA/uKw7ZMiEQmw/s1600-h/01.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 294px;" src="http://1.bp.blogspot.com/_aceOYK9mWV0/SzovOI8sleI/AAAAAAAAAVA/uKw7ZMiEQmw/s320/01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5420697021460551138" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_aceOYK9mWV0/SzovVC6dXFI/AAAAAAAAAVI/iAUdgLP25_c/s1600-h/02.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 294px;" src="http://2.bp.blogspot.com/_aceOYK9mWV0/SzovVC6dXFI/AAAAAAAAAVI/iAUdgLP25_c/s320/02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5420697140099636306" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-8372215131274924057?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/8372215131274924057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2009/12/dasar-dasar-pembuatan-situs-jejaring.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/8372215131274924057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/8372215131274924057'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2009/12/dasar-dasar-pembuatan-situs-jejaring.html' title='Dasar-dasar Pembuatan Situs Jejaring Sosial - Bag. 1'/><author><name>Windra Swastika</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_aceOYK9mWV0/Snn406FYluI/AAAAAAAAARg/SxZqfyVaMog/S220/image.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_aceOYK9mWV0/SzovOI8sleI/AAAAAAAAAVA/uKw7ZMiEQmw/s72-c/01.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-2770828170402688727</id><published>2009-12-27T20:29:00.002+07:00</published><updated>2009-12-27T20:38:41.807+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='VB'/><title type='text'>Visual Basic – Memotret Layar Dengan VB</title><content type='html'>&lt;p class="abstract"&gt;Windows menyediakan fasilitas pemotretan layar dengan menggunakan tombol print-screen. Program yang menyediakan fasilitas pemotretan layar ini adalah Hypersnap dan AcdSee. Sulitkah membuat program pemotretan layar?&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Dengan menggunakan VB, kita bisa mensimulasikan penekanan tombol Print-Screen ini, dan meletakkan ke dalam sebuah picture box. Langkah-langkah pembuatannya:&lt;/p&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Buat form baru dengan 2 buah picture box yang bernama picOuter dan picInner, sebuah Scroll bar vertikal yang bernama VBar, sebuah scroll bar horisontal bernama Hbar dan dua buah command button, masing-masing bernama cmdCapture dan cmdExit.&lt;/li&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Gp4jAV9pQtg/Szdi_hNvo6I/AAAAAAAAAJM/BZZ1Aue2zIQ/s1600-h/01.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 294px;" src="http://3.bp.blogspot.com/_Gp4jAV9pQtg/Szdi_hNvo6I/AAAAAAAAAJM/BZZ1Aue2zIQ/s320/01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5419909519950980002" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;li&gt;Modul yang diperlukan yaitu: Sub PrintScreen untuk mensimulasikan penekanan tombol Print Screen dan menampilkan pada picture box serta Sub ArrangeScrollsBars untuk mengatur scroll bar vertikal dan horisontal.&lt;/li&gt;&lt;br /&gt;&lt;pre&gt;Private Function PrintScreen(PictureBox As PictureBox) As Boolean&lt;br /&gt;  On Error GoTo ErrorTrap&lt;br /&gt;  Clipboard.Clear&lt;br /&gt;  DoEvents&lt;br /&gt;  &lt;br /&gt;  '0 = layar, 1 = form&lt;br /&gt;  keybd_event vbKeySnapshot, 0, 0&amp;, 0&amp;&lt;br /&gt;   &lt;br /&gt;  DoEvents&lt;br /&gt;  Set PictureBox.Picture = Clipboard.GetData(0)&lt;br /&gt;  DoEvents&lt;br /&gt;  'Clipboard.Clear&lt;br /&gt;  PrintScreen = True&lt;br /&gt;&lt;br /&gt;ErrorTrap:&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;Private Sub ArrangeScrollBars()&lt;br /&gt;  Dim have_wid As Single, have_hgt As Single&lt;br /&gt;  Dim need_wid As Single, need_hgt As Single&lt;br /&gt;  Dim need_hbar As Boolean, need_vbar As Boolean&lt;br /&gt;&lt;br /&gt;  On Error Resume Next&lt;br /&gt;  If WindowState = vbMinimized Then Exit Sub&lt;br /&gt;&lt;br /&gt;  need_wid = picInner.Width + (picOuter.Width - picOuter.ScaleWidth)&lt;br /&gt;  need_hgt = picInner.Height + (picOuter.Height - picOuter.ScaleHeight)&lt;br /&gt;  have_wid = picOuter.Width&lt;br /&gt;  have_hgt = picOuter.Height&lt;br /&gt;  need_hbar = (need_wid &gt; have_wid)&lt;br /&gt;  If need_hbar Then have_hgt = have_hgt - HBar.Height&lt;br /&gt;&lt;br /&gt;  need_vbar = (need_hgt &gt; have_hgt)&lt;br /&gt;  If need_vbar Then&lt;br /&gt;    have_wid = have_wid - VBar.Width&lt;br /&gt;    If Not need_hbar Then&lt;br /&gt;      need_hbar = (need_wid &gt; have_wid)&lt;br /&gt;      If need_hbar Then have_hgt = have_hgt - HBar.Height&lt;br /&gt;    End If&lt;br /&gt;  End If&lt;br /&gt;&lt;br /&gt;  picOuter.Move picOuter.Left, picOuter.Top, have_wid, have_hgt&lt;br /&gt;&lt;br /&gt;  If need_hbar Then&lt;br /&gt;    HBar.Move picOuter.Left, have_hgt, have_wid&lt;br /&gt;    HBar.Min = 0&lt;br /&gt;    HBar.Max = picOuter.ScaleWidth - picInner.Width&lt;br /&gt;    HBar.LargeChange = picOuter.ScaleWidth&lt;br /&gt;    HBar.SmallChange = picOuter.ScaleWidth / 5&lt;br /&gt;    HBar.Visible = True&lt;br /&gt;  Else&lt;br /&gt;    HBar.Visible = False&lt;br /&gt;  End If&lt;br /&gt;&lt;br /&gt;  If need_vbar Then&lt;br /&gt;    VBar.Move picOuter.Left + picOuter.Width, picOuter.Top, VBar.Width, have_hgt&lt;br /&gt;    VBar.Min = 0&lt;br /&gt;    VBar.Max = picOuter.ScaleHeight - picInner.Height&lt;br /&gt;    VBar.LargeChange = picOuter.ScaleHeight&lt;br /&gt;    VBar.SmallChange = picOuter.ScaleHeight / 5&lt;br /&gt;    VBar.Visible = True&lt;br /&gt;  Else&lt;br /&gt;    VBar.Visible = False&lt;br /&gt;  End If&lt;br /&gt;End Sub&lt;/pre&gt;&lt;br /&gt;&lt;li&gt;Berikutnya adalah mengatur event untuk pergeseran scroll bar, form load serta penekanan button.&lt;/li&gt;&lt;br /&gt;&lt;pre&gt;Option Explicit&lt;br /&gt;&lt;br /&gt;Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)&lt;br /&gt;&lt;br /&gt;Private Sub cmdCapture_Click()&lt;br /&gt;  On Error Resume Next&lt;br /&gt;&lt;br /&gt;  picInner.Picture = LoadPicture("")&lt;br /&gt;  Me.WindowState = vbMinimized&lt;br /&gt;  PrintScreen picInner&lt;br /&gt;  Me.WindowState = vbNormal&lt;br /&gt;  ArrangeScrollBars&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub cmdExit_Click()&lt;br /&gt;  End&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub Form_Load()&lt;br /&gt;  Dim Counter As Integer&lt;br /&gt;  Dim TempString() As String&lt;br /&gt;&lt;br /&gt;  On Error Resume Next&lt;br /&gt;  picInner.Move picOuter.ScaleLeft, picOuter.ScaleTop, picOuter.ScaleWidth, picOuter.ScaleHeight&lt;br /&gt;  &lt;br /&gt;End Sub&lt;/pre&gt;&lt;br /&gt;4. Simpan program, lalu jalankan. Tampilan yang Anda dapatkan seperti pada gambar.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Gp4jAV9pQtg/SzdjAO8lfrI/AAAAAAAAAJU/1i8BILpxPGw/s1600-h/02.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 294px;" src="http://3.bp.blogspot.com/_Gp4jAV9pQtg/SzdjAO8lfrI/AAAAAAAAAJU/1i8BILpxPGw/s320/02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5419909532227042994" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-2770828170402688727?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/2770828170402688727/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2009/12/visual-basic-memotret-layar-dengan-vb.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/2770828170402688727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/2770828170402688727'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2009/12/visual-basic-memotret-layar-dengan-vb.html' title='Visual Basic – Memotret Layar Dengan VB'/><author><name>R†</name><uri>http://www.blogger.com/profile/06404935452790331980</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Gp4jAV9pQtg/TAeH2I49RQI/AAAAAAAAAL0/-wOcj-aWl2I/S220/milo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Gp4jAV9pQtg/Szdi_hNvo6I/AAAAAAAAAJM/BZZ1Aue2zIQ/s72-c/01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-7360403492781726415</id><published>2009-11-29T12:10:00.003+07:00</published><updated>2009-11-29T12:21:43.030+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB'/><title type='text'>Visual Basic – Simulasi Pencampuran Warna</title><content type='html'>&lt;p class="abstract"&gt;Salah satu mode warna yang dikenal dalam pengolahan grafis adalah mode RGB. Mode RGB merupakan mode untuk membentuk suatu warna lewat intensitas merah (Red), hijau (Green) dan biru (Biru). Dengan menggunakan VB, kita dapat membuat simulasi pencampuran warna mode RGB ini.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Masing-masing intensitas berkisar antara 0 sampai dengan 255 (dalam heksa FF). Angka 0 adalah yang paling rendah dan 255 adalah yang paling tinggi. Pencampuran warna dengan intesitas 0 semua akan menghasilkan warna hitam, sedangkan pencampuran warna dengan intensitas 255 semua akan menghasilkan warna putih. Untuk membuat simulasi pencampuran warna ini, langkahnya:&lt;/p&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Buat form baru dengan 3 buah frame untuk mengatur intensitas merah, hijau dan biru. Masing-masing frame berisi sebuah shape (berbentuk lingkaran dengan nama shape1), slider (yang bernama slider) dan textbox. Shape1 dan slider merupakan array dengan index 0 untuk shape1 dan slide di frame biru, 1 untuk shape1 dan slider di frame hijau dan 2 untuk shape1 dan slider di frame merah. Sedangkan textbox pada masing-masing frame bernama txtblue, txtgreen dan txtred.&lt;br /&gt;Tambahkan sebuah button dengan nama cmdExit dan frame lagi untuk menampilkan hasil pencampuran dengan sebuah shape yang bernama shape2 serta label2 untuk menampilkan nilai dari warna pencampuran.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Gp4jAV9pQtg/SxIEs0Zv0ZI/AAAAAAAAAIg/dL2SiFVaYgs/s1600/01.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 242px;" src="http://3.bp.blogspot.com/_Gp4jAV9pQtg/SxIEs0Zv0ZI/AAAAAAAAAIg/dL2SiFVaYgs/s320/01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5409391270452777362" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Fungsi-fungsi yang diperlukan yaitu: getinten untuk mendapatkan intensitas warna serta setcolor untuk menampilkan hasil dari pencampuran warna pada shape2.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Private Sub getinten()&lt;br /&gt;&lt;br /&gt;  Dim tmp As Long&lt;br /&gt;  tmp = Shape2.BackColor&lt;br /&gt;  While tmp &gt; &amp;HFF&lt;br /&gt;    tmp = tmp - &amp;H100&lt;br /&gt;  Wend&lt;br /&gt;  redvalue = tmp&lt;br /&gt;  &lt;br /&gt;  tmp = (Shape2.BackColor - redvalue) / &amp;H100&lt;br /&gt;  While tmp &gt; &amp;HFF&lt;br /&gt;    tmp = tmp - &amp;H100&lt;br /&gt;  Wend&lt;br /&gt;  greenvalue = tmp&lt;br /&gt;  &lt;br /&gt;  bluevalue = Shape2.BackColor \ &amp;H10000&lt;br /&gt;  &lt;br /&gt;  'jangan lupa ngeset slidernya...&lt;br /&gt;  Dim persentase As Integer&lt;br /&gt;    slider(2).Value = redvalue&lt;br /&gt;    persentase = redvalue * 100 / 255&lt;br /&gt;    txtRed.Text = Str(persentase) + " %"&lt;br /&gt;&lt;br /&gt;    slider(1).Value = greenvalue&lt;br /&gt;    persentase = greenvalue * 100 / 255&lt;br /&gt;    txtGreen.Text = Str(persentase) + " %"&lt;br /&gt;  &lt;br /&gt;    slider(0).Value = bluevalue&lt;br /&gt;    persentase = bluevalue * 100 / 255&lt;br /&gt;    txtBlue.Text = Str(persentase) + " %"&lt;br /&gt;  &lt;br /&gt;  'sekarang taruh intensitasnya di tempatnya&lt;br /&gt;  setcolor&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub setcolor()&lt;br /&gt;  Shape1(0).BackColor = bluevalue * 256 ^ 2&lt;br /&gt;  Shape1(1).BackColor = greenvalue * 256&lt;br /&gt;  Shape1(2).BackColor = redvalue  &lt;br /&gt;  Shape2.BackColor = Shape1(0).BackColor + Shape1(1).BackColor + Shape1(2).BackColor&lt;br /&gt;End Sub&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Berikutnya adalah mengatur event untuk pergeseran slider serta form load.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Private Sub cmdExit_Click()&lt;br /&gt;  End&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub Form_Load()&lt;br /&gt;  Dim Index, persentase As Integer&lt;br /&gt;  redvalue = 0&lt;br /&gt;  greenvalue = 0&lt;br /&gt;  bluevalue = 0&lt;br /&gt;&lt;br /&gt;  setcolor&lt;br /&gt;  &lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub Slider_Scroll(Index As Integer)&lt;br /&gt;  Dim persentase As Integer&lt;br /&gt;  persentase = slider(Index).Value * 100 / 256&lt;br /&gt;  &lt;br /&gt;  Select Case Index&lt;br /&gt;  Case 0&lt;br /&gt;    bluevalue = slider(0).Value&lt;br /&gt;    txtBlue.Text = Str(persentase) + " %"&lt;br /&gt;    Shape1(0).BackColor = bluevalue * 256 ^ 2&lt;br /&gt;  Case 1&lt;br /&gt;    greenvalue = slider(1).Value&lt;br /&gt;    txtGreen.Text = Str(persentase) + " %"&lt;br /&gt;    Shape1(1).BackColor = greenvalue * 256&lt;br /&gt;  Case 2&lt;br /&gt;    redvalue = slider(2).Value&lt;br /&gt;    txtRed.Text = Str(persentase) + " %"&lt;br /&gt;    Shape1(2).BackColor = redvalue&lt;br /&gt;  End Select&lt;br /&gt;  Shape2.BackColor = Shape1(0).BackColor + Shape1(1).BackColor + Shape1(2).BackColor&lt;br /&gt;  lblINtensitas.Caption = Shape2.BackColor &amp; " (" &amp; Hex$(Shape2.BackColor) &amp; ")"&lt;br /&gt;End Sub&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Simpan program, lalu jalankan. Tampilan yang Anda dapatkan seperti pada gambar.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Gp4jAV9pQtg/SxIE1FF4FYI/AAAAAAAAAIo/lLZ5ns7duIU/s1600/02.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 225px;" src="http://1.bp.blogspot.com/_Gp4jAV9pQtg/SxIE1FF4FYI/AAAAAAAAAIo/lLZ5ns7duIU/s320/02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5409391412371789186" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-7360403492781726415?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/7360403492781726415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2009/11/visual-basic-simulasi-pencampuran-warna.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/7360403492781726415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/7360403492781726415'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2009/11/visual-basic-simulasi-pencampuran-warna.html' title='Visual Basic – Simulasi Pencampuran Warna'/><author><name>R†</name><uri>http://www.blogger.com/profile/06404935452790331980</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Gp4jAV9pQtg/TAeH2I49RQI/AAAAAAAAAL0/-wOcj-aWl2I/S220/milo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Gp4jAV9pQtg/SxIEs0Zv0ZI/AAAAAAAAAIg/dL2SiFVaYgs/s72-c/01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-4267862735036491357</id><published>2009-11-20T20:15:00.002+07:00</published><updated>2009-11-20T20:20:04.694+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB'/><title type='text'>Visual Basic – Koversi Latin Ke Romawi</title><content type='html'>&lt;p class="abstract"&gt;Angka romawi termasuk salah satu sistem penghitungan tertua yang diperkenalkan oleh bangsa Romawi. Walaupun sistem perhitungan modern saat ini menggunakan angka latin, tapi angka romawi ini ternyata masih sering kita temui. Trik VB kali ini adalah mengonversi angka latin menjadi angka romawi.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;VB memang tidak menyediakan secara khusus fungsi untuk mengubah angka latin ke romawi atau sebaliknya. Tapi dengan melihat pola angka romawi, kita dapat membuat sebuah fungsi yang mengonversi angka latin menjadi romawi. &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Langkah-langkahnya adalah:&lt;/p&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Buat form baru dengan dua buat text box yang bernama txtnumber (untuk memasukkan angka latin) dan txthasil untuk menampilkan hasil konversi. Tambahkan juga sebuah command button yang bernama cmdconvert.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Gp4jAV9pQtg/SwaXI1F-6dI/AAAAAAAAAIQ/EVc4ukZCbxc/s1600/01.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 266px; height: 308px;" src="http://2.bp.blogspot.com/_Gp4jAV9pQtg/SwaXI1F-6dI/AAAAAAAAAIQ/EVc4ukZCbxc/s320/01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5406174580651780562" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Ketikan fungsi untuk mengonversi.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Function Latin2Roman(number As Long) As String&lt;br /&gt;  Dim n As Long&lt;br /&gt;  Dim j As Integer, i As Integer&lt;br /&gt;  Dim Rom, Latin&lt;br /&gt;  Dim Romawi As String&lt;br /&gt;  &lt;br /&gt;  Rom = Array("i", "iv", "v", "ix", _&lt;br /&gt;              "x", "xl", "l", "xc", _&lt;br /&gt;              "c", "cd", "d", "cm", _&lt;br /&gt;              "m")&lt;br /&gt;              &lt;br /&gt;  Latin = Array(1, 4, 5, 9, _&lt;br /&gt;                10, 40, 50, 90, _&lt;br /&gt;                100, 400, 500, 900, _&lt;br /&gt;                1000)&lt;br /&gt;  &lt;br /&gt;  Romawi = ""&lt;br /&gt;  &lt;br /&gt;  For j = 12 To 0 Step -1&lt;br /&gt;    n = Int(number / Latin(j))&lt;br /&gt;    If n &lt;&gt; 0 Then&lt;br /&gt;      For i = 1 To n&lt;br /&gt;        Romawi = Romawi &amp; Rom(j)&lt;br /&gt;      Next i&lt;br /&gt;    End If&lt;br /&gt;    number = number Mod Latin(j)&lt;br /&gt;  Next&lt;br /&gt;  Latin2Roman = Romawi&lt;br /&gt;&lt;br /&gt;End Function&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Berikutnya adalah mengatur event untuk penekanan button koversi.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Private Sub cmdConvert_Click()&lt;br /&gt;  If Val(txtNumber.Text) = 0 Then Exit Sub&lt;br /&gt;  txthasil.Text = Latin2Roman(Val(txtNumber.Text))&lt;br /&gt;End Sub&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Simpan program, lalu jalankan. Tampilan yang Anda dapatkan seperti pada gambar.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Gp4jAV9pQtg/SwaXbBkTJLI/AAAAAAAAAIY/8WNreZbPr8M/s1600/02.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 224px; height: 240px;" src="http://4.bp.blogspot.com/_Gp4jAV9pQtg/SwaXbBkTJLI/AAAAAAAAAIY/8WNreZbPr8M/s320/02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5406174893237806258" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-4267862735036491357?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/4267862735036491357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2009/11/visual-basic-koversi-latin-ke-romawi.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/4267862735036491357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/4267862735036491357'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2009/11/visual-basic-koversi-latin-ke-romawi.html' title='Visual Basic – Koversi Latin Ke Romawi'/><author><name>R†</name><uri>http://www.blogger.com/profile/06404935452790331980</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Gp4jAV9pQtg/TAeH2I49RQI/AAAAAAAAAL0/-wOcj-aWl2I/S220/milo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Gp4jAV9pQtg/SwaXI1F-6dI/AAAAAAAAAIQ/EVc4ukZCbxc/s72-c/01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-8096389564953641192</id><published>2009-11-11T04:57:00.004+07:00</published><updated>2009-11-11T05:05:38.671+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>Menggambar Peta Menggunakan Google Maps API</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Pada situs sebuah perusahaan umumnya diberikan informasi singkat tentang lokasi atau alamat perusahaan tersebut. Dengan menggunakan Google Maps API, Anda dapat memberikan sentuhan dengan menggambarkan lokasi perusahaan.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Masih mengupas kemampuan Google Web API, kali ini kita akan bermain-main dengan menggunakan Google Maps. Seperti namanya, Google Maps akan memetakan jalan, rute atau lokasi tertentu dari suatu wilayah dan menampilkannya secara visual, lengkap dengan fasilitas zoom dan foto satelit.&lt;br /&gt;&lt;br /&gt;Langkah-langkah untuk membuatnya adalah:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Membuat header utama untuk kode HTML&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;script src="http://maps.google.com/maps?file=api&amp;amp;v=2&amp;amp;key=your gmap api key here"&lt;br /&gt;type="text/javascript"&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt; Google Map &amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Berikutnya adalah meng-generate map dengan menggunakan JavaScript. Namun untuk inisialisasi data, kita dapat lakukan dengan menggunakan PHP.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;&lt;br /&gt; $KEY = "Google Key Here";&lt;br /&gt; $MAPS_HOST = "maps.google.com";&lt;br /&gt; $delay = 0;&lt;br /&gt; $base_url = "http://" . $MAPS_HOST .&lt;br /&gt;   "/maps/geo?output=xml" . "&amp;amp;key=" . $KEY;&lt;br /&gt; $geocode_pending = true;      &lt;br /&gt; $address = "Malang, Indonesia";&lt;br /&gt;&lt;br /&gt; $latlonArr = array();&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;Setelah mendefinisikan area yang hendak dipetakan, perlu ditentukan lokasi garis bujur dan garis lintang. Lokasi garis bujur dan garis lintang inilah yang akan menjadi parameter bagi Google Maps untuk menggambarkan peta.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;while($geocode_pending)&lt;br /&gt; {&lt;br /&gt;   $request_url = $base_url . "&amp;amp;q=" . urlencode($address);&lt;br /&gt;   $xml = simplexml_load_file($request_url) or die("url not loading");&lt;br /&gt;   $status = $xml-&gt;Response-&gt;Status-&gt;code;&lt;br /&gt;   if (strcmp($status, "200") == 0) {&lt;br /&gt;     // Successful geocode&lt;br /&gt;     $geocode_pending = false;&lt;br /&gt;     $coordinates = $xml-&gt;Response-&gt;Placemark-&gt;Point-&gt;coordinates;&lt;br /&gt;     $coordinatesSplit = split(",", $coordinates);&lt;br /&gt;     // Format: Longitude, Latitude, Altitude&lt;br /&gt;     $lat = $coordinatesSplit[1];&lt;br /&gt;     $lng = $coordinatesSplit[0];&lt;br /&gt;     $latlonArr['lat'] = $lat;&lt;br /&gt;     $latlonArr['lon'] = $lng;&lt;br /&gt;         &lt;br /&gt;   } else if (strcmp($status, "620") == 0) {&lt;br /&gt;     // sent geocodes too fast&lt;br /&gt;     $delay += 100000;&lt;br /&gt;   } else {&lt;br /&gt;     // failure to geocode&lt;br /&gt;     $geocode_pending = false;&lt;br /&gt;   }&lt;br /&gt;   usleep($delay);&lt;br /&gt;   break;&lt;br /&gt; }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Lalu kita memanggil Google Maps API dengan cara menyimpan ke dalam suatu variabel.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt; //plot map&lt;br /&gt; $str =  '&amp;lt;script&amp;gt;&lt;br /&gt;   var map = new GMap2(document.getElementById("map"));&lt;br /&gt;   map.addControl(new GLargeMapControl());&lt;br /&gt;   map.addControl(new GMapTypeControl());&lt;br /&gt;   map.addControl(new GScaleControl());&lt;br /&gt;   map.setCenter(new GLatLng('.$latlonArr['lat'].', '.$latlonArr['lon'].'), 6);&lt;br /&gt;                                               &lt;br /&gt;   // Creates a default marker whose info window displays the given number&lt;br /&gt;   function createMarker(point, number)&lt;br /&gt;   {&lt;br /&gt;     var marker = new GMarker(point);&lt;br /&gt;     // Show this markers index in the info window when it is clicked&lt;br /&gt;     var html = number;&lt;br /&gt;     GEvent.addListener(marker, "click", function() {marker.openInfoWindowHtml(html);});&lt;br /&gt;     return marker;&lt;br /&gt;   };';&lt;br /&gt;   $str .= "var point = new GLatLng(" . $latlonArr['lat'] . "," . $latlonArr['lon'] . ");\n";&lt;br /&gt;   $str .= "var marker = createMarker(point, '" . addslashes($address)."');\n";&lt;br /&gt;   $str .= "map.addOverlay(marker);\n";&lt;br /&gt;   $str .= "&amp;lt;/script&amp;gt;\n";&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Proses penggambaran peta adalah sebagai berikut:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;div id="map" style="width: 500px;height:400px"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt; &amp;lt;?php&lt;br /&gt;  // plot the map with default marker icon&lt;br /&gt;  echo $str;&lt;br /&gt; ?&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Berikut adalah contoh tampilan yang didapatkan:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_aceOYK9mWV0/SvnjmdeEVxI/AAAAAAAAAUk/-G42hvFoAyo/s1600-h/01.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 316px;" src="http://1.bp.blogspot.com/_aceOYK9mWV0/SvnjmdeEVxI/AAAAAAAAAUk/-G42hvFoAyo/s320/01.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5402599477892896530" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-8096389564953641192?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/8096389564953641192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2009/11/menggambar-peta-menggunakan-google-maps.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/8096389564953641192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/8096389564953641192'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2009/11/menggambar-peta-menggunakan-google-maps.html' title='Menggambar Peta Menggunakan Google Maps API'/><author><name>Windra Swastika</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_aceOYK9mWV0/Snn406FYluI/AAAAAAAAARg/SxZqfyVaMog/S220/image.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_aceOYK9mWV0/SvnjmdeEVxI/AAAAAAAAAUk/-G42hvFoAyo/s72-c/01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-8678725165576024551</id><published>2009-11-06T14:28:00.004+07:00</published><updated>2009-11-11T05:08:48.051+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>Memanfaatkan Yahoo! API untuk Saran Perbaikan Kata Kunci Pencarian</title><content type='html'>&lt;strong&gt;Typographical error atau sering disingkat dengan typo merupakan kesalahan ketik yang terjadi selama proses pengetikkan. Terjadinya kesalahan bisa jadi karena selip pada jari saat mengetik sehingga ada karakter yang kurang atau bertambah. Sebagai contoh, mengetikkan kata “Computer” bisa selip menjadi “Compiter” – yang dikarenakan huruf “u” dan “i” bersebelahan pada keyboard. &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Typo ini sempat dimanfaatkan untuk mencuri account user dan password beberapa web-based email atau situs e-banking. Dengan mengamati typo yang sering terjadi saat pengetikan alamat web-based email atau e-banking, beberapa oknum memanfaatkan untuk membuat situs yang serupa. Alih-alih masuk pada situs yang benar, user malah masuk pada situs tiruan tersebut.&lt;br /&gt;&lt;br /&gt;Tidak kalah dengan Google API, Yahoo! juga mempunyai Application Programming Interface (API) yang dapat digunakan untuk memberikan saran perbaikan dari Typo. &lt;br /&gt;Pada aplikasi sederhana ini kita akan membuat sebuah class untuk memanfaatkan Yahoo! API dalam memberikan saran perbaikan dari suatu kata kunci pencarian.&lt;br /&gt;&lt;br /&gt;Langkah-langkah untuk membuatnya adalah:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Kita buat terlebih dulu atribut-atribut yang dibutuhkan. Beberapa atribut penting yang akan digunakan adalah $title (judul dari chart), $data (berisi data dari chart yang hendak digambar), dan $size (menentukan ukuran dari chart)&lt;/li&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt?php&lt;br /&gt;&lt;br /&gt;class spellingSuggestion {&lt;br /&gt;    var $query;&lt;br /&gt;        &lt;br /&gt;    var &lt;br /&gt;       // Alamat Spelling Suggestion dari Yahoo!&lt;br /&gt;       $request_url = 'http://search.yahooapis.com/WebSearchService/V1/spellingSuggestion', &lt;br /&gt;       // xml, json or php (serialized PHP format)&lt;br /&gt;       $output = 'php', &lt;br /&gt;       $appid = '', &lt;br /&gt;       $response = '', &lt;br /&gt;       $result = '';&lt;br /&gt;&lt;br /&gt;    function search( $query ) {&lt;br /&gt;        $this-&gt;query = $query;&lt;br /&gt;        if ( $this-&gt;response = file_get_contents( $this-&gt;request_url . "?appid=" . urlencode( $this-&gt;appid ) . "&amp;output=" . urlencode( $this-&gt;output ) . "&amp;query=" . urlencode( $this-&gt;query ) ) ) &lt;br /&gt;            return true;&lt;br /&gt;        else&lt;br /&gt;            return false;&lt;br /&gt;    }    &lt;br /&gt;&lt;br /&gt;    function getSuggestedWord( $query ) {&lt;br /&gt;        $this-&gt;query = $query;&lt;br /&gt;        $this-&gt;setOutput( 'php' );&lt;br /&gt;        if( $this-&gt;search( $query ) ) {&lt;br /&gt;            $this-&gt;result = unserialize( $this-&gt;response );&lt;br /&gt;            if ( isset( $this-&gt;result['ResultSet']['Result'] ) )&lt;br /&gt;                return $this-&gt;result['ResultSet']['Result'];&lt;br /&gt;            else&lt;br /&gt;                return "";&lt;br /&gt;        }&lt;br /&gt;        else {&lt;br /&gt;            return "";&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    function setOutput( $output ) {&lt;br /&gt;        $this-&gt;output = $output;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;?&amp;gt&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;li&gt;Setelah class selesai, kita akan buat terlebih dulu form untuk meminta masukkan dari user. Masukan dari user tersebut akan menjadi parameter sebagai teks yang hendak diperbaiki dengan memanggil file suggest.php.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"&amp;gt;&amp;lt;head&amp;gt; &lt;br /&gt;&amp;lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;Yahoo! API Spelling Suggestion&amp;lt;/title&amp;gt; &lt;br /&gt;&amp;lt;link href="style.css" rel="stylesheet" type="text/css"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/head&amp;gt; &lt;br /&gt;&amp;lt;body&amp;gt; &lt;br /&gt;  &amp;lt;div class="clear"&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;  &amp;lt;form method="POST" action="suggest.php"&amp;gt;&lt;br /&gt;  &amp;lt;div id="content"&amp;gt; &lt;br /&gt;    &amp;lt;p&amp;gt;Masukkan teks: &amp;lt;/p&amp;gt;&lt;br /&gt;    &amp;lt;p&amp;gt;&amp;lt;form action="" methos="get"&amp;gt;&lt;br /&gt;    &amp;lt;input type="text" name="q" value="" /&amp;gt; &lt;br /&gt;    &amp;lt;input type="submit" name="s" value="Cek" /&amp;gt;&amp;lt;/form&amp;gt;&lt;br /&gt;    &amp;lt;/p&amp;gt;&lt;br /&gt;  &amp;lt;/div&amp;gt;&lt;br /&gt;  &amp;lt;/form&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;/body&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;li&gt;File suggest.php akan menggunakan class yang telah dan mendapatkan outputnya untuk ditampilkan.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;Saran Perbaikan&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;link href="style.css" rel="stylesheet" type="text/css"&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;require_once( 'YahooSpell.php' );&lt;br /&gt;if ( isset( $_POST['q'] ) &amp;&amp; $_POST['q'] != '' ) {&lt;br /&gt;    $query = strip_tags( $_POST['q'] );&lt;br /&gt;    // buat objek&lt;br /&gt;    $spellingSuggestion = new spellingSuggestion();&lt;br /&gt;    // Set the application id&lt;br /&gt;    $spellingSuggestion-&amp;gt;appid = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';&lt;br /&gt;    // Get the suggested word&lt;br /&gt;    $result = $spellingSuggestion-&amp;gt;getSuggestedWord( $query );&lt;br /&gt;    // Respon XML&lt;br /&gt;    $spellingSuggestion-&amp;gt;setOutput( 'xml' );&lt;br /&gt;    $spellingSuggestion-&amp;gt;search( $query );&lt;br /&gt;    $xmlResponse = $spellingSuggestion-&amp;gt;response;    &lt;br /&gt;    &lt;br /&gt;    // Respon PHP&lt;br /&gt;    $spellingSuggestion-&amp;gt;setOutput( 'php' );&lt;br /&gt;    $spellingSuggestion-&amp;gt;search( $query );&lt;br /&gt;    $phpResponse = $spellingSuggestion-&amp;gt;response;    &lt;br /&gt;    &lt;br /&gt;    // Respon XML - JSON&lt;br /&gt;    $spellingSuggestion-&amp;gt;setOutput( 'json' );&lt;br /&gt;    $spellingSuggestion-&amp;gt;search( $query );&lt;br /&gt;    $jsonResponse = $spellingSuggestion-&amp;gt;response;&lt;br /&gt;    &lt;br /&gt;}&lt;br /&gt;    &lt;br /&gt;    echo '&amp;lt;h2&amp;gt;Hasil Pemanggilan API&amp;lt;/h2&amp;gt; ';&lt;br /&gt;    echo '&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Saran perbaikan:&amp;lt;/strong&amp;gt;';&lt;br /&gt;    echo '&amp;lt;h3&amp;gt;';&lt;br /&gt;      if( $result != '' ) &lt;br /&gt;        echo $result; &lt;br /&gt;      else &lt;br /&gt;        echo " Tidak ada perbaikan &amp;lt;/p&amp;gt;";&lt;br /&gt;    echo '&amp;lt;/h3&amp;gt;';    &lt;br /&gt;    echo "&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Respon XML:&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt; ";&lt;br /&gt;    echo "&amp;lt;p&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;";&lt;br /&gt;    echo htmlentities( $xmlResponse ) . "; &amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt; ";&lt;br /&gt;    echo "&amp;lt;/p&amp;gt;    ";&lt;br /&gt;    echo "&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Respon PHP:&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt; ";&lt;br /&gt;    echo "&amp;lt;p&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;" .  htmlentities( $phpResponse ) . "&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt; ";&lt;br /&gt;    echo "&amp;lt;/p&amp;gt;    ";&lt;br /&gt;    echo "&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Respon JSON:&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt; ";&lt;br /&gt;    echo "&amp;lt;p&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;" . htmlentities( $jsonResponse ) . "&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt; ";&lt;br /&gt;    echo "&amp;lt;/p&amp;gt;     ";&lt;br /&gt;    echo "&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt; ";&lt;br /&gt;    echo "&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; ";&lt;br /&gt;    echo "&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt; "&lt;br /&gt;&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;li&gt;Langkah terakhir adalah membuat style untuk memperbaiki tampilan. File style ini disimpan dengan nama style.css yang akan digunakan pada 2 file sebelumnya yaitu test.html dan suggest.php.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;body  {&lt;br /&gt;  font-family: Verdana, Arial, Helvetica, sans-serif;&lt;br /&gt;  font-size: 11px;&lt;br /&gt;  background-color: #FFFFFF;}&lt;br /&gt;  &lt;br /&gt;pre   {&lt;br /&gt;  color:#ff6666;&lt;br /&gt;  padding:10px;&lt;br /&gt;  border:1px solid #666;&lt;br /&gt;  margin: 5px 0;} &lt;br /&gt;  &lt;br /&gt;.clear  {&lt;br /&gt;  display:block;&lt;br /&gt;  clear:both;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;li&gt;Contoh tampilan yang didapatkan adalah sebagai berikut:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_aceOYK9mWV0/SvnkNolWWKI/AAAAAAAAAUs/Dlq1mdVVuXA/s1600-h/01.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 166px;" src="http://4.bp.blogspot.com/_aceOYK9mWV0/SvnkNolWWKI/AAAAAAAAAUs/Dlq1mdVVuXA/s320/01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5402600150891124898" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_aceOYK9mWV0/SvnkXXrfhcI/AAAAAAAAAU0/5WbMB6J-li8/s1600-h/02.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 269px; height: 320px;" src="http://4.bp.blogspot.com/_aceOYK9mWV0/SvnkXXrfhcI/AAAAAAAAAU0/5WbMB6J-li8/s320/02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5402600318152181186" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-8678725165576024551?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/8678725165576024551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2009/11/memanfaatkan-yahoo-api-untuk-saran.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/8678725165576024551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/8678725165576024551'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2009/11/memanfaatkan-yahoo-api-untuk-saran.html' title='Memanfaatkan Yahoo! API untuk Saran Perbaikan Kata Kunci Pencarian'/><author><name>Windra Swastika</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_aceOYK9mWV0/Snn406FYluI/AAAAAAAAARg/SxZqfyVaMog/S220/image.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_aceOYK9mWV0/SvnkNolWWKI/AAAAAAAAAUs/Dlq1mdVVuXA/s72-c/01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-6193400734505622120</id><published>2009-11-05T22:11:00.000+07:00</published><updated>2009-11-05T22:12:01.679+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB'/><title type='text'>Visual Basic - Mengolah Data Array</title><content type='html'>&lt;p class="abstract"&gt;Array termasuk struktur data yang penting dalam bahasa pemrograman terstruktur. Sebuah array mampu menampung banyak data sejenis sekaligus. Pada tip kali ini, diberikan contoh pengolahan data di dalam array untuk melakukan perhitungan total, rata-rata, nilai minimum dan nilai maksimum.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Salah satu keuntungan bahasa Basic dalam mengolah array adalah ukuran array dapat diubah pada saat runtime. Jika pada awal program array disiapkan untuk menampung 100 data misalnya, maka jika sewaktu-waktu pada saat program dijalankan, diperlukan jumlah data lebih dari 100, maka ada perintah REDIM yang dapat dimanfaatkan untuk mengubah ukuran array. Program di bawah ini menunjukkan bagaimana pemanfaatan array untuk menghitung total, rata-rata, nilai minimum dan nilai maksimum.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Langkah-langkahnya adalah:&lt;/p&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Buat form baru, tambahkan 2 buah textbox (dengan nama txtData sebagai textbox untuk entry data dan txtHasil sebagai textbox yang menampilkan hasil pengolahan array), 7 buah command button (cmdInsert, cmdRemove, cmdClear, cmdTotal, cmdRata, cmdMaks, dan cmdMin), sebuah list box (lstData untuk menampung data) serta sebuah label (lblNData untuk menampilkan jumlah data yang telah dimasukkan saat ini). &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Gp4jAV9pQtg/SvLqkQetRKI/AAAAAAAAAHg/r-j5ejekZfQ/s1600-h/01.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 305px;" src="http://3.bp.blogspot.com/_Gp4jAV9pQtg/SvLqkQetRKI/AAAAAAAAAHg/r-j5ejekZfQ/s320/01.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5400636811790599330" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Fungsi pengolahan arraynya ada 3, yaitu: ArraySum untuk menghitung total jumlah (Sigma), ArrayMin untuk menghasilkan nilai terkecil dari array, ArrayMaks untuk menghasilkan nilai terbesar dari array, dan RemoveItem untuk menghapus data ke N di dalam array.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Option Explicit&lt;br /&gt;Dim arr() As Double&lt;br /&gt;&lt;br /&gt;Function ArraySum() As Variant&lt;br /&gt;    Dim i As Long, result As Variant&lt;br /&gt;    For i = LBound(arr) To UBound(arr)&lt;br /&gt;      result = result + arr(i)&lt;br /&gt;    Next&lt;br /&gt;    ArraySum = result&lt;br /&gt;End Function&lt;br /&gt;Function ArrayMin() As Variant&lt;br /&gt;    Dim i As Long, Min As Variant&lt;br /&gt;    Min = arr(0)&lt;br /&gt;    For i = 1 To lstData.ListCount - 1&lt;br /&gt;      If Min &gt; arr(i) Then Min = arr(i)&lt;br /&gt;    Next&lt;br /&gt;    ArrayMin = Min&lt;br /&gt;End Function&lt;br /&gt;Function ArrayMaks() As Variant&lt;br /&gt;    Dim i As Long, Maks As Variant&lt;br /&gt;    Maks = arr(0)&lt;br /&gt;    For i = 1 To lstData.ListCount - 1&lt;br /&gt;      If Maks &lt; arr(i) Then Maks = arr(i)&lt;br /&gt;    Next&lt;br /&gt;    ArrayMaks = Maks&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;Private Sub RemoveItem(n As Long)&lt;br /&gt;  Dim i As Long&lt;br /&gt;  For i = n To lstData.ListCount - 1&lt;br /&gt;    arr(i) = arr(i + 1)&lt;br /&gt;  Next i&lt;br /&gt;  arr(lstData.ListCount - 1) = 0&lt;br /&gt;End Sub&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Berikutnya adalah mengatur event untuk penekanan button serta.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Option Explicit&lt;br /&gt;&lt;br /&gt;Dim arr() As Double&lt;br /&gt;Private Sub cmdClear_Click()&lt;br /&gt;  lstData.Clear&lt;br /&gt;  lblNData.Caption = "Jumlah data : " &amp; lstData.ListCount&lt;br /&gt;  ReDim arr(0)&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub cmdInsert_Click()&lt;br /&gt;  lstData.AddItem Val(txtData.Text)&lt;br /&gt;  ReDim Preserve arr(lstData.ListCount)&lt;br /&gt;  arr(lstData.ListCount - 1) = Val(txtData.Text)&lt;br /&gt;  txtData.Text = ""&lt;br /&gt;  txtData.SetFocus&lt;br /&gt;  lblNData.Caption = "Jumlah data : " &amp; lstData.ListCount&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub cmdMaks_Click()&lt;br /&gt;  txtHasil.Text = Format(ArrayMaks, "##,##0.00")&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub cmdMin_Click()&lt;br /&gt;  txtHasil.Text = Format(ArrayMin, "##,##0.00")&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub cmdRata_Click()&lt;br /&gt;  Dim hasil As Double&lt;br /&gt;  hasil = ArraySum&lt;br /&gt;  txtHasil.Text = Format(hasil / lstData.ListCount, "##,##0.00")&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub cmdRemove_Click()&lt;br /&gt;  If lstData.ListIndex &gt;= 0 Then RemoveItem lstData.ListIndex&lt;br /&gt;  lstData.RemoveItem lstData.ListIndex&lt;br /&gt;  lblNData.Caption = "Jumlah data : " &amp; lstData.ListCount &lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub cmdTotal_Click()&lt;br /&gt;  Dim hasil As Double&lt;br /&gt;  hasil = ArraySum&lt;br /&gt;  txtHasil.Text = Format(hasil, "##,##0.00")&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub Form_Load()&lt;br /&gt;  lstData.Clear&lt;br /&gt;End Sub&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Simpan program, lalu jalankan. Tampilan yang Anda dapatkan seperti pada gambar.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Gp4jAV9pQtg/SvLqklou5OI/AAAAAAAAAHo/YszueRejkDI/s1600-h/02.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 309px; height: 270px;" src="http://1.bp.blogspot.com/_Gp4jAV9pQtg/SvLqklou5OI/AAAAAAAAAHo/YszueRejkDI/s320/02.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5400636817469793506" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-6193400734505622120?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/6193400734505622120/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2009/11/visual-basic-mengolah-data-array.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/6193400734505622120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/6193400734505622120'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2009/11/visual-basic-mengolah-data-array.html' title='Visual Basic - Mengolah Data Array'/><author><name>R†</name><uri>http://www.blogger.com/profile/06404935452790331980</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Gp4jAV9pQtg/TAeH2I49RQI/AAAAAAAAAL0/-wOcj-aWl2I/S220/milo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Gp4jAV9pQtg/SvLqkQetRKI/AAAAAAAAAHg/r-j5ejekZfQ/s72-c/01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-557087875329826350</id><published>2009-10-31T09:39:00.004+07:00</published><updated>2009-10-31T09:53:29.325+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB'/><title type='text'>Visual Basic – Membuat Form yang Transparan</title><content type='html'>&lt;p class="abstract"&gt;Sebuah form merupakan tempat meletakkan kontrol seperti text box, command button, dan label. Form mempunyai properti warna latar belakang yang standardnya adalah warna dari button face.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Anda bisa dengan mudah mengganti warna latar belakang dari sebuah form lewat properti backcolor dengan format &amp;amp;HRRGGBB, di mana &amp;amp;H merupakan notasi untuk bilangan heksa, RR adalah intensitas warna merah, GG adalah intensitas warna hijau dan BB adalah intensitas warna biru (ketiganya dalam notasi bilangan heksa). Tapi bisakah warna latar belakang dari form dibuat transparan? Bisa. Dengan memanfaatkan fungsi API (Application Programming Interface) yang memang disediakan oleh Windows untuk mengatasi keterbatasan perintah-perintah pada VB.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Langkah-langkah membuat form transparan adalah:&lt;/p&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Buat form baru, tambahkan 3 command button (cmdTransparan untuk mengubah form menjadi transparan dan sebaliknya, cmdFrame untuk menghilangkan border dari from dan cmdExit untuk keluar dari program) dan satu text box.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Gp4jAV9pQtg/SuulpOgdCVI/AAAAAAAAAHA/-2NE80P0Y7c/s1600-h/01.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 189px;" src="http://3.bp.blogspot.com/_Gp4jAV9pQtg/SuulpOgdCVI/AAAAAAAAAHA/-2NE80P0Y7c/s320/01.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5398590706021108050" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Buat sebuah modul baru lewat menu Project|Add Module. Pada module inilah deklarasi untuk fungsi-fungsi API diketikkan.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Option Explicit&lt;br /&gt;&lt;br /&gt;Public Declare Function SendMessage _&lt;br /&gt; Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, _&lt;br /&gt; ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long&lt;br /&gt;Public Declare Function CreateRectRgn _&lt;br /&gt; Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, _&lt;br /&gt; ByVal X2 As Long, ByVal Y2 As Long) As Long&lt;br /&gt;Public Declare Function CombineRgn _&lt;br /&gt; Lib "gdi32" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, _&lt;br /&gt; ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long&lt;br /&gt;Public Declare Function SetWindowRgn _&lt;br /&gt; Lib "user32" (ByVal hwnd As Long, ByVal hRgn As Long, _&lt;br /&gt; ByVal bRedraw As Boolean) As Long&lt;br /&gt;Public Declare Function DeleteObject _&lt;br /&gt; Lib "gdi32" (ByVal hObject As Long) As Long&lt;br /&gt;Public Declare Function ReleaseCapture Lib "user32" () As Long&lt;br /&gt;Public Const RGN_OR = 2&lt;br /&gt;Public Const RGN_DIFF = 4&lt;br /&gt;Public Const WM_NCLBUTTONDOWN = &amp;amp;HA1&lt;br /&gt;Public Const HTCAPTION = 2&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Subrutin utamanya adalah Sub changeFormEffect(inEffect As Integer).  Untuk membuat sebuah form transparan, sub ini dipanggil dengan menggunakan parameter 1. Untuk menormalkan form, sub ini dipanggil lagi dengan menggunakan parameter 0.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Private Sub changeFormEffect(inEffect As Integer)&lt;br /&gt;   Dim w As Single, h As Single&lt;br /&gt;   Dim edge As Single, topEdge As Single&lt;br /&gt;   Dim mLeft, mTop&lt;br /&gt;   Dim i As Integer&lt;br /&gt;   Dim r As Long&lt;br /&gt;   Dim outer As Long, inner As Long&lt;br /&gt;  &lt;br /&gt;   w = ScaleX(Width, vbTwips, vbPixels)&lt;br /&gt;   h = ScaleY(Height, vbTwips, vbPixels)&lt;br /&gt;  &lt;br /&gt;   If inEffect = 0 Then&lt;br /&gt;       mFormRegion = CreateRectRgn(0, 0, w, h)&lt;br /&gt;       SetWindowRgn hwnd, mFormRegion, True&lt;br /&gt;       Exit Sub&lt;br /&gt;   End If&lt;br /&gt;  &lt;br /&gt;   mFormRegion = CreateRectRgn(0, 0, 0, 0)&lt;br /&gt;   edge = (w - ScaleWidth) / 2&lt;br /&gt;   topEdge = h - edge - ScaleHeight&lt;br /&gt;   If inEffect = 1 Then&lt;br /&gt;       outer = CreateRectRgn(0, 0, w, h)&lt;br /&gt;       inner = CreateRectRgn(edge, topEdge, w - edge, h - edge)&lt;br /&gt;       CombineRgn mFormRegion, outer, inner, RGN_DIFF&lt;br /&gt;   End If&lt;br /&gt;  &lt;br /&gt;   For i = 0 To Me.Controls.Count - 1&lt;br /&gt;       If Me.Controls(i).Visible = True Then&lt;br /&gt;           mLeft = ScaleX(Me.Controls(i).Left, Me.ScaleMode, vbPixels) + edge&lt;br /&gt;           mTop = ScaleX(Me.Controls(i).Top, Me.ScaleMode, vbPixels) + topEdge&lt;br /&gt;           r = CreateRectRgn(mLeft, mTop, _&lt;br /&gt;               mLeft + ScaleX(Me.Controls(i).Width, Me.ScaleMode, vbPixels), _&lt;br /&gt;               mTop + ScaleY(Me.Controls(i).Height, Me.ScaleMode, vbPixels))&lt;br /&gt;           CombineRgn mFormRegion, r, mFormRegion, RGN_OR&lt;br /&gt;       End If&lt;br /&gt;   Next&lt;br /&gt;   SetWindowRgn hwnd, mFormRegion, True&lt;br /&gt;End Sub&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Berikutnya adalah mengatur event untuk penekanan tombol serta mempersiapkan form pada event form_load.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Option Explicit&lt;br /&gt;&lt;br /&gt;Dim formEffectIndex As Integer&lt;br /&gt;Dim mFormRegion As Long&lt;br /&gt;Dim msg1 As String, msg2 As String&lt;br /&gt;&lt;br /&gt;Private Sub cmdExit_Click()&lt;br /&gt; End&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub cmdFrame_Click()&lt;br /&gt;   If formEffectIndex = 1 Then&lt;br /&gt;       formEffectIndex = 2&lt;br /&gt;   Else&lt;br /&gt;       formEffectIndex = 1&lt;br /&gt;   End If&lt;br /&gt;   changeFormEffect formEffectIndex&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub cmdTransparan_Click()&lt;br /&gt;   If formEffectIndex &lt;&gt; 0 Then&lt;br /&gt;       formEffectIndex = 0&lt;br /&gt;       cmdFrame.Enabled = False&lt;br /&gt;   Else&lt;br /&gt;       formEffectIndex = 1&lt;br /&gt;       cmdFrame.Enabled = True&lt;br /&gt;   End If&lt;br /&gt;   changeFormEffect formEffectIndex&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub Form_Load()&lt;br /&gt;   Me.ScaleMode = vbPixels&lt;br /&gt;   formEffectIndex = 0&lt;br /&gt;   cmdFrame.Enabled = False&lt;br /&gt;   changeFormEffect formEffectIndex&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)&lt;br /&gt;   SetWindowRgn hwnd, 0, False&lt;br /&gt;   DeleteObject mFormRegion&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)&lt;br /&gt;   If Button &lt;&gt; vbLeftButton Then&lt;br /&gt;        Exit Sub&lt;br /&gt;   End If&lt;br /&gt;   ReleaseCapture&lt;br /&gt;   SendMessage Me.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&amp;amp;&lt;br /&gt;End Sub&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Simpan program, lalu jalankan. Tampilan awal form adalah form normal (tidak transparan).&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Gp4jAV9pQtg/SuulpZocQ5I/AAAAAAAAAHI/WGfqRwjl_O8/s1600-h/02.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 258px;" src="http://3.bp.blogspot.com/_Gp4jAV9pQtg/SuulpZocQ5I/AAAAAAAAAHI/WGfqRwjl_O8/s320/02.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5398590709007401874" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Jika Anda mengklik button Transparan, maka Anda akan mendapatkan tampilan seperti pada gambar:&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Gp4jAV9pQtg/SuulplxbzgI/AAAAAAAAAHQ/QALztDMI27o/s1600-h/03.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 258px;" src="http://3.bp.blogspot.com/_Gp4jAV9pQtg/SuulplxbzgI/AAAAAAAAAHQ/QALztDMI27o/s320/03.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5398590712266345986" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Button Frame digunakan untuk menghilangkan frame dari form sehingga form benar-benar transparan.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Gp4jAV9pQtg/Suulp3qwfBI/AAAAAAAAAHY/GjPpDrQiTgQ/s1600-h/04.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 258px;" src="http://1.bp.blogspot.com/_Gp4jAV9pQtg/Suulp3qwfBI/AAAAAAAAAHY/GjPpDrQiTgQ/s320/04.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5398590717070179346" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-557087875329826350?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/557087875329826350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2009/10/visual-basic-membuat-form-yang.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/557087875329826350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/557087875329826350'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2009/10/visual-basic-membuat-form-yang.html' title='Visual Basic – Membuat Form yang Transparan'/><author><name>R†</name><uri>http://www.blogger.com/profile/06404935452790331980</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Gp4jAV9pQtg/TAeH2I49RQI/AAAAAAAAAL0/-wOcj-aWl2I/S220/milo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Gp4jAV9pQtg/SuulpOgdCVI/AAAAAAAAAHA/-2NE80P0Y7c/s72-c/01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-8030155382742279859</id><published>2009-10-17T11:10:00.004+07:00</published><updated>2009-10-17T11:20:51.860+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB'/><title type='text'>Visual Basic – Menampilkan Animasi</title><content type='html'>&lt;p class="abstract"&gt;Animation Control adalah cara termudah untuk menambahkan animasi pada program VB Anda. Dengan Animation Control ini, Anda dapat mem-play file AVI hanya dengan beberapa baris program.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Control ini hanya mendukung file AVI yang tidak ”bersuara” atau file AVI yang telah dikompres dengan menggunakan Run-Length Encoding (RLE). Selain file AVI jenis tersebut, maka akan muncul errror yaitu error 35752 (Unable to open AVI file).&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Komponen Animation control harus ditambahkan terlebih dulu lewat menu Project|Component atau dengan shortcut Ctrl+T. Beri tanda check untuk Microsoft Windows Common Control-2 6.0 atau dengan memilih file MSCOMCT2.OCX lewat button Browse.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Gp4jAV9pQtg/StlFzLrh4DI/AAAAAAAAAGo/4QXxOpkdxGU/s1600-h/01.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 289px;" src="http://1.bp.blogspot.com/_Gp4jAV9pQtg/StlFzLrh4DI/AAAAAAAAAGo/4QXxOpkdxGU/s320/01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5393418774363889714" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Sedangkan untuk form, siapkan 4 buah text box dengan nama txtFileName (digunakan untuk mengisikan nama file AVI yang hendak dijalankan), txtTimes (digunakan untuk mengatur berapa kali animasi dijalankan), txtFrom (digunakan untuk mengisi mulai dari frame ke berapa animasi dijalankan) dan txtTo (digunakan untuk mengisi sampai frame ke berapa animasi dijalankan). Tiga buah command button (dengan nama cmdBrowse, cmdPlay dan cmdStop) serta sebuah animation control (dengan nama animation1).&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Gp4jAV9pQtg/StlF8QptQbI/AAAAAAAAAGw/KrIRYy0l610/s1600-h/02.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 112px;" src="http://2.bp.blogspot.com/_Gp4jAV9pQtg/StlF8QptQbI/AAAAAAAAAGw/KrIRYy0l610/s320/02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5393418930317246898" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Untuk keperluan browse (membuka file AVI), kita akan membutuhkan control Common Dialog. Control Common Dialog ini harus ditambahkan dengan cara yang sama seperti menambahkan Animation Control, yaitu lewat menu Project|Component atau dengan shortcut Ctrl+T. Component yang dipilih adalah Microsoft Common Dialog Control 6.0 atau dengan memilih file COMDLG32.OCX.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Untuk menjalankan file AVI, perintah yang digunakan adalah perintah PLAY. Sintaks penulisan untuk perintah PLAY ini adalah:&lt;/p&gt;&lt;br /&gt;&lt;pre&gt;Play [RepeatCount], [StartFrame], [EndFrame]&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;RepeatCount adalah jumlah pengulangan yang dilakukan. StartFrame adalah frame awal untuk memulai animasi dan EndFrame adalah frame terakhir yang dijalankan. Ketiga perintah tersebut adalah opsional (boleh ditulis, boleh tidak). Jika RepeatCount tidak diisi apa-apa, artinya animasi akan dijalankan terus menerus sampai animasi dihentikan dengan perintah stop.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Program selengkapnya adalah:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Private Sub cmdBrowse_Click()&lt;br /&gt;  CommonDialog1.ShowOpen&lt;br /&gt;  txtFileName.Text = CommonDialog1.FileName&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub cmdPlay_Click()&lt;br /&gt;  Dim times, fromf, tof&lt;br /&gt;  Animation1.Open txtFileName.Text&lt;br /&gt;  If txtTimes.Text &lt;&gt; "" Then times = Val(txtTimes.Text) Else times = -1&lt;br /&gt;  If txtFrom.Text &lt;&gt; "" Then fromf = Val(txtFrom.Text) Else fromf = 0&lt;br /&gt;  If txtTo.Text &lt;&gt; "" Then tof = Val(txtTo.Text) Else tof = -1&lt;br /&gt;  Animation1.Play times, fromf, tof&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub cmdStop_Click()&lt;br /&gt;  Animation1.Stop&lt;br /&gt;  Animation1.Close&lt;br /&gt;End Sub&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Simpan program ini, lalu jalankan. Jika Anda memilih file filecopy.AVI, Anda akan mendapatkan tampilan seperti pada gambar:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Gp4jAV9pQtg/StlGCAOkxhI/AAAAAAAAAG4/txTPp0-MMEs/s1600-h/03.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 112px;" src="http://4.bp.blogspot.com/_Gp4jAV9pQtg/StlGCAOkxhI/AAAAAAAAAG4/txTPp0-MMEs/s320/03.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5393419028987692562" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Catatan:&lt;/strong&gt; Contoh file-file AVI yang bisa dijalankan ada pada folder \Common\Graphics\AVIs yang ada di dalam folder instalasi Visual Studio Anda.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-8030155382742279859?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/8030155382742279859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2009/10/visual-basic-menampilkan-animasi.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/8030155382742279859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/8030155382742279859'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2009/10/visual-basic-menampilkan-animasi.html' title='Visual Basic – Menampilkan Animasi'/><author><name>R†</name><uri>http://www.blogger.com/profile/06404935452790331980</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Gp4jAV9pQtg/TAeH2I49RQI/AAAAAAAAAL0/-wOcj-aWl2I/S220/milo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Gp4jAV9pQtg/StlFzLrh4DI/AAAAAAAAAGo/4QXxOpkdxGU/s72-c/01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-4612465131049116343</id><published>2009-10-01T23:21:00.004+07:00</published><updated>2009-10-01T23:32:11.249+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>Membuat Program Penerjemah Kalimat dengan Google Translate API</title><content type='html'>&lt;p&gt;&lt;b&gt;Pada posting yang lalu, ada program kamus yang dibuat dengan menggunakan PHP dan XML. Keakuratan aplikasi tersebut dalam menerjemahkan akan tergantung dari isi file XML yang ada. Semakin file XML tersebut lengkap, tentunya aplikasi kamus akan nampak semakin canggih.&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Pada tip kali ini, kita akan membuat membuat aplikasi untuk menerjemahkan kalimat Bahasa Indonesia ke dalam empat bahasa dunia, yaitu Inggris, Italia, Spanyol dan Perancis. Tentunya kita tidak akan menyimpan data vocab masing-masing bahasa ataupun mengkodekan struktur grammar dari bahasa-bahasa tersebut. Google Translate API akan dapat kita gunakan untuk membantu dalam melakukan penerjemahan. &lt;/p&gt;&lt;p&gt;Langkah-langkah untuk membuatnya adalah:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Kita buat terlebih dulu halaman awal untuk menerima teks Bahasa Indonesia serta memilih bahasa tujuan. Kita simpan file ini dengan nama index.php sebagai halaman awal yang nanti dipanggil.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;Menerjemahkan dengan Google Translate API&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;h2&amp;gt;Masukkan teks dalam Bahasa Indonesia&amp;lt;/h2&amp;gt;&lt;br /&gt;&amp;lt;form method="post" action="translate.php"&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;&amp;lt;input type="text" size=50 name="teks"&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;&amp;lt;select name="tujuan"&amp;gt;&lt;br /&gt;    &amp;lt;option value="en"&amp;gt;Inggris&amp;lt;/option&amp;gt;&lt;br /&gt;    &amp;lt;option value="it"&amp;gt;Italia&amp;lt;/option&amp;gt;&lt;br /&gt;    &amp;lt;option value="es"&amp;gt;Spanyol&amp;lt;/option&amp;gt;&lt;br /&gt;    &amp;lt;option value="fr"&amp;gt;Perancis&amp;lt;/option&amp;gt;    &lt;br /&gt;&amp;lt;/select&amp;gt;&lt;br /&gt;&amp;lt;input type="submit" value="Terjemahkan" name="oke"&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Kita siapkan modul untuk melakukan proses penerjemahan dalam file PHP yang bernama translate.php. Kita buat terlebih dulu header HTML-nya.&lt;/li&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;Hasil terjemahan&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;style type="text/css"&amp;gt;&lt;br /&gt;body {&lt;br /&gt;      background-color : #FFFFFF;&lt;br /&gt;      font-family : Verdana, Geneva, Arial, Helvetica, sans-serif;&lt;br /&gt;      color : #000088;&lt;br /&gt;      margin: 5px; &lt;br /&gt;      }&lt;br /&gt;&amp;lt;/style&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Berikutnya kita akan membuat sebuah class PHP yang bertugas untuk memanggil Google Translate API dan menampilkan hasil terjemahan dari bahasa yang telah dipilih. Ada beberapa atribut yang perlu dideklarasikan di awal class ini.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;class GoogleTranslateApi{ &lt;br /&gt;&lt;br /&gt;    var $BaseUrl = 'http://ajax.googleapis.com/ajax/services/language/translate'; &lt;br /&gt;    var $FromLang = 'id'; &lt;br /&gt;    var $ToLang = ''; &lt;br /&gt;    var $Version = '1.0'; &lt;br /&gt;     &lt;br /&gt;    var $CallUrl; &lt;br /&gt;     &lt;br /&gt;    var $Text = ''; &lt;br /&gt;     &lt;br /&gt;    var $TranslatedText; &lt;br /&gt;    var $DebugMsg; &lt;br /&gt;    var $DebugStatus; &lt;br /&gt;     &lt;br /&gt;    function GoogleTranslateApi(){ &lt;br /&gt;        $this-&amp;gt;CallUrl = $this-&amp;gt;BaseUrl . "?v=" . &lt;br /&gt;        $this-&amp;gt;Version . "&amp;q=" . urlencode($this-&amp;gt;Text) . &lt;br /&gt;        "&amp;langpair=" . $this-&amp;gt;FromLang . "%7C" . $this-&amp;gt;ToLang; &lt;br /&gt;    } &lt;br /&gt;     &lt;br /&gt;    function makeCallUrl(){ &lt;br /&gt;        $this-&amp;gt;CallUrl = $this-&amp;gt;BaseUrl . "?v=" . &lt;br /&gt;        $this-&amp;gt;Version . "&amp;q=" . urlencode($this-&amp;gt;Text) . &lt;br /&gt;        "&amp;langpair=" . $this-&amp;gt;FromLang . "%7C" . $this-&amp;gt;ToLang; &lt;br /&gt;    } &lt;br /&gt;     &lt;br /&gt;    function translate($text = ''){ &lt;br /&gt;        if($text != ''){ &lt;br /&gt;            $this-&amp;gt;Text = $text; &lt;br /&gt;        } &lt;br /&gt;        $this-&amp;gt;makeCallUrl(); &lt;br /&gt;        if($this-&amp;gt;Text != '' &amp;&amp; $this-&amp;gt;CallUrl != ''){ &lt;br /&gt;            $handle = fopen($this-&amp;gt;CallUrl, "rb"); &lt;br /&gt;            $contents = ''; &lt;br /&gt;            while (!feof($handle)) { &lt;br /&gt;            $contents .= fread($handle, 8192); &lt;br /&gt;            } &lt;br /&gt;            fclose($handle); &lt;br /&gt;             &lt;br /&gt;            $json = json_decode($contents, true); &lt;br /&gt;             &lt;br /&gt;            if($json['responseStatus'] == 200){ //Request berhasil&lt;br /&gt;                $this-&amp;gt;TranslatedText = $json['responseData']['translatedText']; &lt;br /&gt;                $this-&amp;gt;DebugMsg = $json['responseDetails']; &lt;br /&gt;                $this-&amp;gt;DebugStatus = $json['responseStatus']; &lt;br /&gt;                return $this-&amp;gt;TranslatedText; &lt;br /&gt;            } else { //Ada kesalahan&lt;br /&gt;                return false; &lt;br /&gt;                $this-&amp;gt;DebugMsg = $json['responseDetails']; &lt;br /&gt;                $this-&amp;gt;DebugStatus = $json['responseStatus']; &lt;br /&gt;            } &lt;br /&gt;        } else { &lt;br /&gt;            return false; &lt;br /&gt;        } &lt;br /&gt;    } &lt;br /&gt;} &lt;br /&gt;$translate = new GoogleTranslateApi; &lt;br /&gt;$to=$_POST['tujuan'];&lt;br /&gt;&lt;br /&gt;$translate-&amp;gt;FromLang = 'id'; &lt;br /&gt;$translate-&amp;gt;ToLang = $to; &lt;br /&gt;switch ($to)&lt;br /&gt;{&lt;br /&gt;  case 'en':$tolang="Inggris";break;&lt;br /&gt;  case 'it':$tolang="Italia";break;&lt;br /&gt;  case 'es':$tolang="Spanyol";break;&lt;br /&gt;  case 'fr':$tolang="Perancis";break;&lt;br /&gt;} &lt;br /&gt;$teks=$_POST['teks'];&lt;br /&gt;echo '&amp;lt;center&amp;gt;Google menerjemahkan &amp;lt;br&amp;gt; &lt;br /&gt;      &amp;lt;b&amp;gt;"'.$teks.'"&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;      ke dalam bahasa '.$tolang.' menjadi: &amp;lt;br&amp;gt;&amp;lt;b&amp;gt;"';&lt;br /&gt;echo $translate-&amp;gt;translate($teks).'"&amp;lt;/b&amp;gt;'; &lt;br /&gt;&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;li&gt;Berikut adalah beberapa contoh tampilan yang didapatkan:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_aceOYK9mWV0/SsTZVqLsOGI/AAAAAAAAAUU/S4JhjevdVbk/s1600-h/01.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 211px;" src="http://1.bp.blogspot.com/_aceOYK9mWV0/SsTZVqLsOGI/AAAAAAAAAUU/S4JhjevdVbk/s320/01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5387670020365760610" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_aceOYK9mWV0/SsTZejahJRI/AAAAAAAAAUc/XfJ9uyGUCwM/s1600-h/02.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 211px;" src="http://2.bp.blogspot.com/_aceOYK9mWV0/SsTZejahJRI/AAAAAAAAAUc/XfJ9uyGUCwM/s320/02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5387670173167723794" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-4612465131049116343?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/4612465131049116343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2009/10/membuat-program-penerjemah-kalimat.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/4612465131049116343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/4612465131049116343'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2009/10/membuat-program-penerjemah-kalimat.html' title='Membuat Program Penerjemah Kalimat dengan Google Translate API'/><author><name>Windra Swastika</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_aceOYK9mWV0/Snn406FYluI/AAAAAAAAARg/SxZqfyVaMog/S220/image.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_aceOYK9mWV0/SsTZVqLsOGI/AAAAAAAAAUU/S4JhjevdVbk/s72-c/01.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-7302924887518622717</id><published>2009-09-28T21:21:00.002+07:00</published><updated>2009-09-28T21:23:29.294+07:00</updated><title type='text'>Visual Basic – Membuat Fasilitas Find &amp; Replace</title><content type='html'>&lt;p class="abstract"&gt;Pada edisi lalu, kita membuat program File Text Viewer yang digunakan untuk menampilkan file teks. Dengan menggunakan fungsi Replace yang ada di VB, kita dapat menambahkan fasilitas Find &amp; Replace pada program File Text Viewer tersebut.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Fungsi Replace di VB digunakan untuk mencari sebuah string dan menggantinya dengan string yang lain. Keistimewaan fungsi Replace ini adalah dapat melakukan pencarian dengan dimulai pada posisi tertentu serta membatasi penggantian dalam jumlah tertentu.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Sintaks penulisan dari fungsi Replace ini adalah&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Replace(expression, find, replace[, start[, count[, compare]]])&lt;/pre&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Expression merupakan sumber dari teks atau string yang hendak dicari. Find merupakan substring yang hendak dicari. Replace merupakan substring pengganti. Start adalah posisi awal pencarian. Count adalah banyaknya penggantian yang dilakukan dan compare menunjukkan cara pembandingan yang dilakukan. Tiga parameter terakhir bersifat optional, bisa ditulis, bisa tidak.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Untuk membuat fasilitas find &amp; replace ini, buka program file text viewer yang lalu. Tambahkan 3 buah text box (txtfind, txtReplace dan txtCount) serta dua buah command button (cmdReplace dan cmdSave).&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Gp4jAV9pQtg/SsDGrGYFLRI/AAAAAAAAAGY/Fq5I8PhwwZE/s1600-h/01.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 189px;" src="http://4.bp.blogspot.com/_Gp4jAV9pQtg/SsDGrGYFLRI/AAAAAAAAAGY/Fq5I8PhwwZE/s320/01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5386523598083403026" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Tambahkan kode program untuk event cmdReplace_click dan cmdSave_click.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Untuk event cmdReplace_click:&lt;br /&gt;&lt;pre&gt;Private Sub cmdReplace_Click()&lt;br /&gt;  Dim count As Long&lt;br /&gt;  count = Val(txtCount.Text)&lt;br /&gt;  If txtCount.Text = "" Then count = -1&lt;br /&gt;  Text1.Text = Replace(Text1.Text, txtFind.Text, txtReplace.Text, 1, count)&lt;br /&gt;End Sub&lt;/pre&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Untuk event cmdSave_Click:&lt;br /&gt;&lt;pre&gt;Sub FileSave(filename As String)&lt;br /&gt;    Dim fnum As Integer, isOpen As Boolean&lt;br /&gt;    On Error GoTo Error_Handler&lt;br /&gt;    fnum = FreeFile()&lt;br /&gt;    Open filename For Output As #fnum&lt;br /&gt;    isOpen = True&lt;br /&gt;    Print #fnum, Text1.Text&lt;br /&gt;    &lt;br /&gt;Error_Handler:&lt;br /&gt;    If isOpen Then Close #fnum&lt;br /&gt;    If Err Then Err.Raise Err.Number, , Err.Description&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub cmdSave_Click()&lt;br /&gt;  FileSave File1.Path &amp; "\" &amp; File1.filename&lt;br /&gt;End Sub&lt;/pre&gt;&lt;br /&gt;Untuk event-event yang lain, sama dengan pada program file text viewer.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Simpan program di atas, lalu jalankan. Anda akan mendapatkan hasil seperti pada gambar.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Gp4jAV9pQtg/SsDG0IOqv8I/AAAAAAAAAGg/RN3KfsFpX4E/s1600-h/02.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 186px;" src="http://1.bp.blogspot.com/_Gp4jAV9pQtg/SsDG0IOqv8I/AAAAAAAAAGg/RN3KfsFpX4E/s320/02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5386523753199615938" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-7302924887518622717?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/7302924887518622717/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2009/09/visual-basic-membuat-fasilitas-find.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/7302924887518622717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/7302924887518622717'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2009/09/visual-basic-membuat-fasilitas-find.html' title='Visual Basic – Membuat Fasilitas Find &amp; Replace'/><author><name>R†</name><uri>http://www.blogger.com/profile/06404935452790331980</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Gp4jAV9pQtg/TAeH2I49RQI/AAAAAAAAAL0/-wOcj-aWl2I/S220/milo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Gp4jAV9pQtg/SsDGrGYFLRI/AAAAAAAAAGY/Fq5I8PhwwZE/s72-c/01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-152261634538129971</id><published>2009-09-21T13:00:00.002+07:00</published><updated>2009-09-21T13:02:48.138+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB'/><title type='text'>Visual Basic – File Text Viewer</title><content type='html'>&lt;p class="abstract"&gt;Berbeda dengan file executable, file teks adalah file yang hanya terdiri dari karakter-karakter biasa seperti angka, huruf, atau tanda baca (plain text). Dengan menggunakan fungsi file pada VB, Anda dapat dengan mudah menampilkan isi suatu file text.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Untuk membuka sebuah file teks, VB mempunyai perintah OPEN. Sintaks penulisannya adalah:&lt;/p&gt;&lt;br /&gt;&lt;pre&gt;Open "namafile.txt" For Input As #1&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Tambahan perintah setelah nama file dapat terdiri dari 3 macam, yaitu For Input (file dibuka hanya untuk dibaca), For Output (membuat file) dan For Appending (file dibuka dan siap untuk ditambah). Angka di belakang perintah Open menunjukkan file handle. Artinya, operasi file yang dilakukan, bukan lagi mengacu pada nama file, tapi langsung ke file handle.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Di bawah ini adalah fungsi untuk membaca sebuah file teks. Parameternya yaitu nama filenya.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Function ReadTextFileContents(filename As String) As String&lt;br /&gt;    Dim fnum As Integer, isOpen As Boolean&lt;br /&gt;    On Error GoTo Error_Handler&lt;br /&gt;    fnum = FreeFile()&lt;br /&gt;    Open filename For Input As #fnum&lt;br /&gt;    isOpen = True&lt;br /&gt;    ReadTextFileContents = Input(LOF(fnum), fnum)&lt;br /&gt;    &lt;br /&gt;Error_Handler:&lt;br /&gt;    If isOpen Then Close #fnum&lt;br /&gt;    If Err Then Err.Raise Err.Number, , Err.Description&lt;br /&gt;End Function&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Untuk membuat program selengkapnya, siapkan form dengan komponen: drivelistbox (dengan nama drive1), dirlistbox (dengan nama dir1), filelistbox (dengan nama file1), command button (dengan nama cmdView) dan text box (dengan nama text1).&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Gp4jAV9pQtg/SrcWzeOaOxI/AAAAAAAAAGI/4P1IiZdlHjs/s1600-h/01.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 203px;" src="http://1.bp.blogspot.com/_Gp4jAV9pQtg/SrcWzeOaOxI/AAAAAAAAAGI/4P1IiZdlHjs/s320/01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5383796953087359762" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Untuk text1, Anda harus mengubah properti Multiline (pada window properti) menjadi True agar teks dapat ditampilkan per baris (bukan ke samping) serta properti Scrollbars menjadi 3 - Both.&lt;br /&gt;&lt;br /&gt;Untuk event-event-nya:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Private Sub cmdView_Click()&lt;br /&gt;  Text1.Text = ReadTextFileContents(File1.Path &amp; "\" &amp; File1.filename)&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub Dir1_Change()&lt;br /&gt;  File1.Path = Dir1.Path&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub Drive1_Change()&lt;br /&gt;  Dir1.Path = Drive1.Drive&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub File1_DblClick()&lt;br /&gt;  Text1.Text = ReadTextFileContents(File1.Path &amp; "\" &amp; File1.filename)&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub Form_Load()&lt;br /&gt;  File1.Pattern = "*.txt"&lt;br /&gt;  Text1.MultiLine = True&lt;br /&gt;End Sub&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Simpan program di atas, lalu jalankan. Anda akan mendapatkan hasil seperti pada gambar.&lt;/p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Gp4jAV9pQtg/SrcW9OVta-I/AAAAAAAAAGQ/94RNF_M_1CA/s1600-h/02.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 170px;" src="http://3.bp.blogspot.com/_Gp4jAV9pQtg/SrcW9OVta-I/AAAAAAAAAGQ/94RNF_M_1CA/s320/02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5383797120621702114" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-152261634538129971?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/152261634538129971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2009/09/visual-basic-file-text-viewer.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/152261634538129971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/152261634538129971'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2009/09/visual-basic-file-text-viewer.html' title='Visual Basic – File Text Viewer'/><author><name>R†</name><uri>http://www.blogger.com/profile/06404935452790331980</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Gp4jAV9pQtg/TAeH2I49RQI/AAAAAAAAAL0/-wOcj-aWl2I/S220/milo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Gp4jAV9pQtg/SrcWzeOaOxI/AAAAAAAAAGI/4P1IiZdlHjs/s72-c/01.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-8302229067812808413</id><published>2009-09-19T19:01:00.001+07:00</published><updated>2009-09-19T19:05:21.113+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB'/><title type='text'>Visual Basic – Mencari Hari Suatu Tanggal</title><content type='html'>&lt;p class="abstract"&gt;Menghitung umur adalah salah satu perhitungan yang sering dilakukan dalam pengolahan database. Tips kali ini adalah menghitung umur dengan menggunakan VB.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;VB memang menyediakan fungsi untuk menghitung umur dengan menggunakan fungsi DateDiff. Format penulisannya adalah:&lt;/p&gt;&lt;br /&gt;&lt;pre&gt;Umur = DateDiff("yyyy", TanggalLahir, HariIni)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Namun, fungsi DateDiff mempunyai kekurangan, yaitu jika jika tanggal lahir masih belum dilewati, maka umur akan berkurang setahun. Misalnya jika Anda lahir pada tanggal 25 September 1984, dan tanggal hari ini adalah 24 September 2005, maka umur yang dihasilkan dari fungsi DateDiff adalah 21 tahun. Dalam standard perhitungan umur, umur yang benar adalah 20 tahun (baru keesokan harinya umur menjadi 21 tahun).&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Untuk mengatasi hal tersebut, dibuat fungsi khusus yang menghitung umur dengan tepat. Jika tanggal hari ini masih belum melewati tanggal ulang tahun, maka hasil dari fungsi DateDiff akan dikurangi dengan 1.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Function HitungUmur(Ultah As Date, Optional Sekarang As Date = 0) _&lt;br /&gt; As Integer&lt;br /&gt;    Dim intAge As Integer&lt;br /&gt;    If Sekarang = 0 Then&lt;br /&gt;        Sekarang = Date&lt;br /&gt;    End If&lt;br /&gt;    intAge = DateDiff("yyyy", Ultah, Sekarang)&lt;br /&gt;    If Sekarang &lt; DateSerial(Year(Sekarang), Month(Ultah), _&lt;br /&gt;     Day(ultah)) Then&lt;br /&gt;        intAge = intAge - 1&lt;br /&gt;    End If&lt;br /&gt;    HitungUmur = intAge&lt;br /&gt;End Function&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Fungsi di atas mempunyai dua parameter yang berjenis tanggal. Parameter pertama adalah tanggal ulang tahun dan parameter kedua adalah tanggal sekarang yang bersifat opsional (boleh diisi boleh tidak). Bila diisi, maka fungsi hitungumur ini adalah hasil pengurangan dari parameter kedua dikurangi parameter kedua.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Contoh penggunaannya:&lt;/p&gt;&lt;br /&gt;&lt;pre&gt;Private Sub Form_Load()&lt;br /&gt;Dim TglUltah As Date&lt;br /&gt;  TglUltah = #10/25/1984# 'tanggal 25 September 1985&lt;br /&gt;  MsgBox "Umur saat ini: " &amp; HitungUmur(TglUltah)&lt;br /&gt;  End&lt;br /&gt;End Sub&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Tampilan yang dihasilkan:&lt;/p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Gp4jAV9pQtg/SrTI6kPvWtI/AAAAAAAAAGA/XjftBLdP0UY/s1600-h/01.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 104px; height: 107px;" src="http://4.bp.blogspot.com/_Gp4jAV9pQtg/SrTI6kPvWtI/AAAAAAAAAGA/XjftBLdP0UY/s320/01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5383148363102247634" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-8302229067812808413?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/8302229067812808413/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2009/09/visual-basic-mencari-hari-suatu-tanggal.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/8302229067812808413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/8302229067812808413'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2009/09/visual-basic-mencari-hari-suatu-tanggal.html' title='Visual Basic – Mencari Hari Suatu Tanggal'/><author><name>R†</name><uri>http://www.blogger.com/profile/06404935452790331980</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Gp4jAV9pQtg/TAeH2I49RQI/AAAAAAAAAL0/-wOcj-aWl2I/S220/milo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Gp4jAV9pQtg/SrTI6kPvWtI/AAAAAAAAAGA/XjftBLdP0UY/s72-c/01.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-1301462219075800776</id><published>2009-09-12T09:15:00.003+07:00</published><updated>2009-09-12T09:26:42.925+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB'/><title type='text'>VB – Validasi TextBox</title><content type='html'>&lt;p class="abstract"&gt;Jika dalam satu form ada banyak text box yang harus diisi, maka melakukan validasi untuk satu persatu text box tersebut dapat menjadi sangat membosankan. Apakah validasi harus dilakukan satu-persatu? Tidak juga, kita dapat membuat sebuah fungsi validasi yang dapat digunakan untuk semua textbox yang ada dalam sebuah form.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Validasi yang dilakukan adalah melakukan pengujian apakah text box tersebut masih kosong atau sudah terisi. Jika sudah terisi maka validasi berhasil. Jika belum terisi, kedipkan text box tersebut (untuk “menarik” perhatian dari user) dan setfocus ke text box tersebut.&lt;/p&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;    &lt;li&gt;Langkah pertama buat sebuah form dengan banyak text box. Lihat gambar.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;    &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Gp4jAV9pQtg/SqsGaaBmIWI/AAAAAAAAAFw/jepwg7Nah5A/s1600-h/01.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 229px;" src="http://1.bp.blogspot.com/_Gp4jAV9pQtg/SqsGaaBmIWI/AAAAAAAAAFw/jepwg7Nah5A/s320/01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5380401230556569954" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Untuk form tersebut, nama untuk masing-masing textbox adalah text1, text2, text3, text4, text5 dan text6. Sedangkan nama untuk button simpan adalah command1.&lt;br /&gt;&lt;br /&gt;    &lt;li&gt;Sebelum membuat proses validasinya, kita akan terlebih membuat modul untuk mengedipkan (blink) suatu objek. Proses blinking suatu objek dapat dengan mengubah properti backcolor. Lama untuk blinking dapat diatur pada perintah For.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Public Sub Blink(ByVal c As Object)&lt;br /&gt;    Dim OldColor As Double&lt;br /&gt;    Dim Delay As Double&lt;br /&gt;    Dim x As Integer&lt;br /&gt;    &lt;br /&gt;    On Error Resume Next&lt;br /&gt;    OldColor = c.BackColor&lt;br /&gt;    &lt;br /&gt;    For x = 1 To 3  'tiga kali berkedip&lt;br /&gt;      c.BackColor = QBColor(12)&lt;br /&gt;      Delay = Timer&lt;br /&gt;      While Timer - Delay &lt; 0.2&lt;br /&gt;        DoEvents&lt;br /&gt;      Wend&lt;br /&gt;      c.BackColor = OldColor&lt;br /&gt;      Delay = Timer&lt;br /&gt;      While Timer - Delay &lt; 0.2&lt;br /&gt;        DoEvents&lt;br /&gt;      Wend&lt;br /&gt;    Next x&lt;br /&gt;&lt;br /&gt;    If c.Enabled Then&lt;br /&gt;      c.SetFocus&lt;br /&gt;    End If&lt;br /&gt;End Sub&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Sub blink ini dapat diletakkan pada sebuah modul baru atau pada form utama.&lt;br /&gt;&lt;br /&gt;    &lt;li&gt;Langkah ke tiga adalah membuat sub untuk melakukan validasi. Sub ini mempunyai parameter berupa objek. Nantinya, sub ini dipanggil dengan parameter sebuah array yang berisi semua nama text box yang hendak divalidasi.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Public Function ValidateTextBox(obj As Variant) As Boolean&lt;br /&gt;Dim i As Long&lt;br /&gt;  ValidateTextBox = True&lt;br /&gt;  For i = 0 To UBound(obj)&lt;br /&gt;    If obj(i).Text = "" Then&lt;br /&gt;      If obj(i).Enabled Then&lt;br /&gt;        obj(i).SetFocus&lt;br /&gt;      End If&lt;br /&gt;      FlashControl obj(i)&lt;br /&gt;      ValidateTextBox = False&lt;br /&gt;      Exit Function&lt;br /&gt;    End If&lt;br /&gt;  Next i&lt;br /&gt;End Function&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;    &lt;li&gt;Function Validatetextbox, dapat dipanggil ketika event penekanan button Simpan. Di sinilah proses validasi dilakukan.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Private Sub Command1_Click()&lt;br /&gt;  If Not ValidateTextBox(Array(Text1, Text2, Text3, Text4, Text5, Text6)) Then&lt;br /&gt;  Else&lt;br /&gt;    MsgBox "Data sudah lengkap!"&lt;br /&gt;    'lakukan proses penyimpanan&lt;br /&gt;  End If&lt;br /&gt;End Sub&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;    &lt;li&gt;Simpan Form di atas dengan nama FrmValidate. Jalankan program dengan menekan tombol F5. Jika form masih kosong, dan tombol simpan di-klik, maka text box yang kosong akan berkedip dan kursor akan diarahkan pada textbox yang kosong tersebut.&lt;/li&gt;&lt;br /&gt;    &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Gp4jAV9pQtg/SqsGx9HC4QI/AAAAAAAAAF4/UUMHOvEk0r0/s1600-h/02.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 221px;" src="http://3.bp.blogspot.com/_Gp4jAV9pQtg/SqsGx9HC4QI/AAAAAAAAAF4/UUMHOvEk0r0/s320/02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5380401635111657730" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-1301462219075800776?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/1301462219075800776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2009/09/vb-validasi-textbox.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/1301462219075800776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/1301462219075800776'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2009/09/vb-validasi-textbox.html' title='VB – Validasi TextBox'/><author><name>R†</name><uri>http://www.blogger.com/profile/06404935452790331980</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Gp4jAV9pQtg/TAeH2I49RQI/AAAAAAAAAL0/-wOcj-aWl2I/S220/milo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Gp4jAV9pQtg/SqsGaaBmIWI/AAAAAAAAAFw/jepwg7Nah5A/s72-c/01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-6679776104287450962</id><published>2009-09-09T07:45:00.000+07:00</published><updated>2009-09-09T07:55:22.640+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><title type='text'>Multiline Tooltip</title><content type='html'>Tooltip dapat membantu user untuk dapat memberikan keterangan. Pada Microsoft Office, Tooltip telah menjadi standard. Ketika mouse berhenti sejenak di atas sebuah button, maka tooltip ditampilkan. Komponen web pun juga bisa diberi tooltip.&lt;br /&gt;&lt;br /&gt;Tip kali ini adalah membuat multiline tooltip. Dalam sebuah komponen web (gambar misalnya), kita bisa memunculkan tooltip lebih dari satu baris.&lt;br /&gt;&lt;br /&gt;Langkah-langkahnya adalah:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Buat header HTML beserta dengan style sheet-nya&lt;br /&gt;&lt;pre&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;Multiline tooltip&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;style type="text/css"&amp;gt;&lt;br /&gt;.xstooltip&lt;br /&gt;{&lt;br /&gt;visibility: hidden;&lt;br /&gt;position: absolute;&lt;br /&gt;top: 0;&lt;br /&gt;left: 0;&lt;br /&gt;z-index: 2;&lt;br /&gt;&lt;br /&gt;font: normal 8pt sans-serif;&lt;br /&gt;padding: 3px;&lt;br /&gt;border: solid 1px;&lt;br /&gt;&lt;br /&gt;background-repeat: repeat;&lt;br /&gt;background-image: url(blue.png);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&amp;lt;/style&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript" src="tooltip.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Untuk tampilan utamanya adalah:&lt;br /&gt;&lt;pre&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;div id="tooltip_123" class="xstooltip"&amp;gt;&lt;br /&gt;Gunung Bromo&amp;lt;br/&amp;gt;&lt;br /&gt;&amp;lt;br/&amp;gt;&lt;br /&gt;Location: Probolinggo, Jawa Timur&amp;lt;br/&amp;gt;&lt;br /&gt;Ketinggian 2392 meter dari permukaan laut&amp;lt;br/&amp;gt;&lt;br /&gt;Panorama lanskap pengunungan yang sangat spektakuler&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;div id="tooltip_123b" class="xstooltip"&amp;gt;&lt;br /&gt;Gunung Everest&amp;lt;br/&amp;gt;&lt;br /&gt;&amp;lt;br/&amp;gt;&lt;br /&gt;Location: Nepal&amp;lt;br/&amp;gt;&lt;br /&gt;Ketinggian 8850 meter dari permukaan laut&amp;lt;br/&amp;gt;&lt;br /&gt;Merupakan gunung tertinggi di dunia&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;img id="the_image"&lt;br /&gt; src="images.jpg"&lt;br /&gt; onmouseover="xstooltip_show('tooltip_123', 'the_image', 289, 49);"&lt;br /&gt; onmouseout="xstooltip_hide('tooltip_123');"&lt;br /&gt;/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;img id="the_image2"&lt;br /&gt; src="everest.jpg"&lt;br /&gt; onmouseover="xstooltip_show('tooltip_123b', 'the_image2', 289, 49);"&lt;br /&gt; onmouseout="xstooltip_hide('tooltip_123b');"&lt;br /&gt;/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Sebelum menjalankan, buat sebuah file Javascript bernama tooltip.js.&lt;br /&gt;&lt;pre&gt;function xstooltip_findPosX(obj)&lt;br /&gt;{&lt;br /&gt;var curleft = 0;&lt;br /&gt;if (obj.offsetParent)&lt;br /&gt;{&lt;br /&gt; while (obj.offsetParent)&lt;br /&gt;     {&lt;br /&gt;         curleft += obj.offsetLeft&lt;br /&gt;         obj = obj.offsetParent;&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt; else if (obj.x)&lt;br /&gt;     curleft += obj.x;&lt;br /&gt; return curleft;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function xstooltip_findPosY(obj)&lt;br /&gt;{&lt;br /&gt; var curtop = 0;&lt;br /&gt; if (obj.offsetParent)&lt;br /&gt; {&lt;br /&gt;     while (obj.offsetParent)&lt;br /&gt;     {&lt;br /&gt;         curtop += obj.offsetTop&lt;br /&gt;         obj = obj.offsetParent;&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt; else if (obj.y)&lt;br /&gt;     curtop += obj.y;&lt;br /&gt; return curtop;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function xstooltip_show(tooltipId, parentId, posX, posY)&lt;br /&gt;{&lt;br /&gt; it = document.getElementById(tooltipId);&lt;br /&gt;&lt;br /&gt; if ((it.style.top == '' || it.style.top == 0)&lt;br /&gt;     &amp;amp;&amp;amp; (it.style.left == '' || it.style.left == 0))&lt;br /&gt; {&lt;br /&gt;     // need to fixate default size (MSIE problem)&lt;br /&gt;     it.style.width = it.offsetWidth + 'px';&lt;br /&gt;     it.style.height = it.offsetHeight + 'px';&lt;br /&gt;  &lt;br /&gt;     img = document.getElementById(parentId);&lt;br /&gt;&lt;br /&gt;     // if tooltip is too wide, shift left to be within parent&lt;br /&gt;     if (posX + it.offsetWidth &amp;gt; img.offsetWidth) posX = img.offsetWidth -&lt;br /&gt;it.offsetWidth;&lt;br /&gt;     if (posX &amp;lt; 0 ) posX = 0;&lt;br /&gt;  &lt;br /&gt;     x = xstooltip_findPosX(img) + posX;&lt;br /&gt;     y = xstooltip_findPosY(img) + posY;&lt;br /&gt;  &lt;br /&gt;     it.style.top = y + 'px';&lt;br /&gt;     it.style.left = x + 'px';&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; it.style.visibility = 'visible';&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function xstooltip_hide(id)&lt;br /&gt;{&lt;br /&gt; it = document.getElementById(id);&lt;br /&gt; it.style.visibility = 'hidden';&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Simpan dan load pada browser, tampilan yang didapatkan adalah:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_aceOYK9mWV0/Sqb8xqPCpoI/AAAAAAAAAUM/r7Bter6rGwQ/s1600-h/01.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 214px;" src="http://1.bp.blogspot.com/_aceOYK9mWV0/Sqb8xqPCpoI/AAAAAAAAAUM/r7Bter6rGwQ/s320/01.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5379264735021803138" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-6679776104287450962?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/6679776104287450962/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2009/09/multiline-tooltip.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/6679776104287450962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/6679776104287450962'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2009/09/multiline-tooltip.html' title='Multiline Tooltip'/><author><name>Windra Swastika</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_aceOYK9mWV0/Snn406FYluI/AAAAAAAAARg/SxZqfyVaMog/S220/image.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_aceOYK9mWV0/Sqb8xqPCpoI/AAAAAAAAAUM/r7Bter6rGwQ/s72-c/01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-4785887027549706432</id><published>2009-09-05T09:08:00.000+07:00</published><updated>2009-09-04T09:20:17.449+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>Menggambar Chart di PHP dengan Memanfaatkan XML</title><content type='html'>&lt;b&gt;Menggambar chart di sebuah website dapat berguna untuk memvisualisasikan serangkaian data agar lebih mudah terbaca.  Ada banyak cara untuk melakukan penyimpanan data, bisa melalui database, bisa juga melalui XML.&lt;/b&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;Pada tip kali ini, kita akan membuat chart dengan PHP menggunakan data yang disimpan pada sebuah file XML. Menggambar chart di PHP adalah dengan memanfaatkan GD Library yang mempunyai banyak method untuk melakukan pengolahan citra.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Langkah-langkah untuk menggambar Chart dengan memanfaatkan data yang ada di XML adalah sebagai berikut:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;  &lt;li&gt;Buat sebuah file XML yang berisi data yang hendak digambarkan. Simpan file ini dengan nama chart.xml. &lt;/li&gt;&lt;pre&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;br /&gt;&amp;lt;chart&amp;gt;&lt;br /&gt;&amp;lt;bar&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;Budi&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;score&amp;gt;90&amp;lt;/score&amp;gt;&lt;br /&gt;&amp;lt;/bar&amp;gt;&lt;br /&gt;&amp;lt;bar&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;Ahmad S&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;score&amp;gt;100&amp;lt;/score&amp;gt;&lt;br /&gt;&amp;lt;/bar&amp;gt;&lt;br /&gt;&amp;lt;bar&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;Fabiani&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;score&amp;gt;85&amp;lt;/score&amp;gt;&lt;br /&gt;&amp;lt;/bar&amp;gt;&lt;br /&gt;&amp;lt;bar&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;Martin P&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;score&amp;gt;25&amp;lt;/score&amp;gt;&lt;br /&gt;&amp;lt;/bar&amp;gt;&lt;br /&gt;&amp;lt;bar&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;Brandon M&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;score&amp;gt;75&amp;lt;/score&amp;gt;&lt;br /&gt;&amp;lt;/bar&amp;gt;&lt;br /&gt;&amp;lt;bar&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;Venti A&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;score&amp;gt;5&amp;lt;/score&amp;gt;&lt;br /&gt;&amp;lt;/bar&amp;gt;&lt;br /&gt;&amp;lt;bar&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;Natan C&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;score&amp;gt;50&amp;lt;/score&amp;gt;&lt;br /&gt;&amp;lt;/bar&amp;gt;&lt;br /&gt;&amp;lt;/chart&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;ol start="2"&gt;&lt;li&gt;Untuk file PHP yang bertugas mengambil data pada file XML ini dan menampilkan dalam bentuk chart adalah sebagai berikut:&lt;br /&gt;&lt;/li&gt;&lt;pre&gt;&amp;lt;?php&lt;br /&gt;header("Content-type: image/jpeg");&lt;br /&gt;&lt;br /&gt;$filename = "chart.xml";&lt;br /&gt;$chart = simplexml_load_file($filename);&lt;br /&gt;&lt;br /&gt;$iCh = imagecreatetruecolor(750,550);&lt;br /&gt;$dark = imagecolorallocate($iCh,85,85,85);&lt;br /&gt;imagefill($iCh,0,0,$dark);&lt;br /&gt;$bright = imagecolorallocate($iCh,222,222,222);&lt;br /&gt;imageline($iCh,25,500,725,500,$bright);&lt;br /&gt;$gold = imagecolorallocate($iCh,255,240,0);&lt;br /&gt;$x = 50;&lt;br /&gt;$y = 525;&lt;br /&gt;foreach($chart as $bar){&lt;br /&gt;&lt;br /&gt;$name = $bar-&amp;gt;name;&lt;br /&gt;$score = $bar-&amp;gt;score;&lt;br /&gt;$width = 50;&lt;br /&gt;if($score&amp;gt;100) $score = 100;&lt;br /&gt;$height = $score*3;&lt;br /&gt;&lt;br /&gt;imagestring($iCh,3,$x,$y,$name,$gold);&lt;br /&gt;imagefilledrectangle($iCh,$x,$y-26,$x+$width,$y-26-$height,$gold);&lt;br /&gt;&lt;br /&gt;$x += 100;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;imagejpeg($iCh);&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/pre&gt;File PHP ini dapat disimpan dengan nama chart.php&lt;br /&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;ol start="3"&gt;&lt;li&gt;Tampilan yang dihasilkan adalah sebagai berikut:&lt;/li&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_aceOYK9mWV0/SqB34Z4J07I/AAAAAAAAATs/egyN55MBYFI/s1600-h/01.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 290px;" src="http://1.bp.blogspot.com/_aceOYK9mWV0/SqB34Z4J07I/AAAAAAAAATs/egyN55MBYFI/s320/01.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5377429765983163314" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-4785887027549706432?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/4785887027549706432/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2009/09/menggambar-chart-di-php-dengan.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/4785887027549706432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/4785887027549706432'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2009/09/menggambar-chart-di-php-dengan.html' title='Menggambar Chart di PHP dengan Memanfaatkan XML'/><author><name>Windra Swastika</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_aceOYK9mWV0/Snn406FYluI/AAAAAAAAARg/SxZqfyVaMog/S220/image.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_aceOYK9mWV0/SqB34Z4J07I/AAAAAAAAATs/egyN55MBYFI/s72-c/01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-66074400649341746</id><published>2009-09-04T08:51:00.000+07:00</published><updated>2009-09-04T09:19:11.838+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>Mencerminkan Citra Menggunakan PHP</title><content type='html'>&lt;b&gt;Mencerminkan citra adalah salah satu fasilitas penting dalam proses pengolahan citra. Pencerminan dapat dilakukan secara horisontal atau secara vertikal. &lt;/b&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Pada tip kali ini, kita akan membuat sebuah aplikasi PHP sederhana dengan memanfaatkan library GD untuk melakukan pencerminan terhadap suatu citra. Ada 2 macam proses pencerminan yang dibuat di sini, yaitu pencerminan secara horisontal dan pencerminan secara vertikal.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Langkah-langkah untuk membuat proses pencerminan citra ini adalah sebagai berikut:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;  &lt;li&gt;Buat terlebih dulu header untuk file PHP utama dengan style  yang diperlukan.&lt;/li&gt;&lt;pre&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;Flip Image&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;style type="text/css"&amp;gt;&lt;br /&gt;&lt;br /&gt;#original {&lt;br /&gt;display:inline;&lt;br /&gt;border:5px solid #555;&lt;br /&gt;float:left;&lt;br /&gt;padding:10px;&lt;br /&gt;}&lt;br /&gt;&amp;lt;/style&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;ol start="2"&gt;&lt;li&gt;Tampilkan citra yang hendak dicerminkan dengan dilengkapi link untuk melakukan proses pencerminan.&lt;br /&gt;&lt;/li&gt;&lt;pre&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;h1&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;&amp;lt;div id="original"&amp;gt;&lt;br /&gt;&amp;lt;img src="pic2.jpg"/&amp;gt;&lt;br /&gt;&amp;lt;br&amp;gt;&lt;br /&gt;&amp;lt;a href="flipH.php?image=pic2.jpg&amp;amp;tipe=1"&amp;gt;Horizontal Flip&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;br&amp;gt;&lt;br /&gt;&amp;lt;a href="flipH.php?image=pic2.jpg&amp;amp;tipe=2"&amp;gt;Vertical Flip&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;ol start="3"&gt;&lt;li&gt;Tampilkan citra yang hendak dicerminkan dengan dilengkapi link untuk melakukan proses pencerminan.&lt;br /&gt;&lt;/li&gt;&lt;pre&gt;&amp;lt;?php&lt;br /&gt;&lt;br /&gt;$image = $_GET['image'];&lt;br /&gt;$tipe = $_GET['tipe'];&lt;br /&gt;flipH($image, $tipe);&lt;br /&gt;&lt;br /&gt;function flipH($image, $tipe) {&lt;br /&gt;&lt;br /&gt;$xandy = getimagesize($image);&lt;br /&gt;$x = $xandy[0];&lt;br /&gt;$y = $xandy[1];&lt;br /&gt;$type = $xandy[2];&lt;br /&gt;$type = image_type_to_mime_type($type);&lt;br /&gt;header("Content-type: $type");&lt;br /&gt;$r = imagecreatefromjpeg($image);&lt;br /&gt;$i = imagecreatetruecolor($x,$y);&lt;br /&gt;$dark = imagecolorallocate($i,100,100,100);&lt;br /&gt;imagefill($i,0,0,$dark);&lt;br /&gt;&lt;br /&gt;$width = $x;&lt;br /&gt;$height = $y;&lt;br /&gt;&lt;br /&gt;for($cntOne = 0;$cntOne &amp;lt; $width;$cntOne++) {&lt;br /&gt;for($cntTwo = 0;$cntTwo &amp;lt; $height;$cntTwo++) {&lt;br /&gt;if ($tipe == 1)&lt;br /&gt;imagecopy($i,$r,$width-$cntOne,$cntTwo,$cntOne,$cntTwo,1,1);&lt;br /&gt;else&lt;br /&gt;imagecopy($i,$r,$cntOne,$height-$cntTwo,$cntOne,$cntTwo,1,1);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;imagejpeg($i);&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;?&amp;gt;&lt;/pre&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;ol start="4"&gt;&lt;li&gt;Tampilan yang dihasilkan adalah sebagai berikut:&lt;/li&gt;&lt;br /&gt;Gambar asli / Flip Horisontal / Flip Vertical&lt;/ol&gt;&lt;ol start="4"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_aceOYK9mWV0/SqB4nsrrZDI/AAAAAAAAAT0/sS4qqAzObxM/s1600-h/01.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 234px; height: 320px;" src="http://4.bp.blogspot.com/_aceOYK9mWV0/SqB4nsrrZDI/AAAAAAAAAT0/sS4qqAzObxM/s320/01.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5377430578484962354" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_aceOYK9mWV0/SqB4uoU0EoI/AAAAAAAAAT8/30JXPX1O8gY/s1600-h/02.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 234px; height: 320px;" src="http://1.bp.blogspot.com/_aceOYK9mWV0/SqB4uoU0EoI/AAAAAAAAAT8/30JXPX1O8gY/s320/02.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5377430697574404738" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_aceOYK9mWV0/SqB4-u1LM8I/AAAAAAAAAUE/Z03ZVmE039c/s1600-h/03.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 234px; height: 320px;" src="http://4.bp.blogspot.com/_aceOYK9mWV0/SqB4-u1LM8I/AAAAAAAAAUE/Z03ZVmE039c/s320/03.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5377430974198657986" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-66074400649341746?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/66074400649341746/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2009/09/mencerminkan-citra-menggunakan-php.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/66074400649341746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/66074400649341746'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2009/09/mencerminkan-citra-menggunakan-php.html' title='Mencerminkan Citra Menggunakan PHP'/><author><name>Windra Swastika</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_aceOYK9mWV0/Snn406FYluI/AAAAAAAAARg/SxZqfyVaMog/S220/image.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_aceOYK9mWV0/SqB4nsrrZDI/AAAAAAAAAT0/sS4qqAzObxM/s72-c/01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-4702479529196844932</id><published>2009-08-25T14:42:00.000+07:00</published><updated>2009-08-25T14:44:03.518+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.Net'/><title type='text'>VB.Net – Form Transparan Dengan Teks</title><content type='html'>&lt;p class="abstract"&gt;Bentuk Form pada VB.Net dapat dimodifikasi untuk menampilkan form transparan dengan teks di dalamnya. Logika yang digunakan cukup sederhana, yaitu melakukan override pada form yang digunakan.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Langkah-langkah untuk membuat form transparan dengan teks di dalamnya adalah sebagai berikut:&lt;/div&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt; &lt;li&gt;Buat sebuah form kosong. Tidak perlu ditambah komponen apapun, karena kita akan tambahkan komponennya di dalam program.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt; &lt;li&gt;Deklarasi awalnya adalah sebagai berikut:&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Imports System.Windows.Forms&lt;br /&gt;Imports System.Drawing&lt;br /&gt;Imports System.Drawing.Drawing2D&lt;br /&gt;Public Class FormHole&lt;br /&gt;    Public Shared Sub Main()&lt;br /&gt;        Application.Run(New Form1)&lt;br /&gt;    End Sub&lt;br /&gt;End Class&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt; &lt;li&gt;Kode untuk class Form1-nya adalah sebagai berikut:&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Public Class Form1&lt;br /&gt;&lt;br /&gt;    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load&lt;br /&gt;        TransparencyKey = BackColor&lt;br /&gt;        Label1.BackColor = TransparencyKey&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint&lt;br /&gt;        Dim thick_pen As New Pen(Color.Black, 10)&lt;br /&gt;        Dim rect As New Rectangle( _&lt;br /&gt;            e.ClipRectangle.X + 10, _&lt;br /&gt;            e.ClipRectangle.Y + 10, _&lt;br /&gt;            e.ClipRectangle.Width - 20, _&lt;br /&gt;            e.ClipRectangle.Height - 20)&lt;br /&gt;        e.Graphics.DrawEllipse(thick_pen, rect)&lt;br /&gt;        thick_pen.Dispose()&lt;br /&gt;    End Sub&lt;br /&gt;End Class&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt; &lt;li&gt;Untuk memberikan efek transparan ini, kita melakukan override untuk class form1.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()&gt; _&lt;br /&gt;Partial Public Class Form1&lt;br /&gt;    Inherits System.Windows.Forms.Form&lt;br /&gt;&lt;br /&gt;    &lt;System.Diagnostics.DebuggerNonUserCode()&gt; _&lt;br /&gt;    Protected Overrides Sub Dispose(ByVal disposing As Boolean)&lt;br /&gt;        If disposing AndAlso components IsNot Nothing Then&lt;br /&gt;            components.Dispose()&lt;br /&gt;        End If&lt;br /&gt;        MyBase.Dispose(disposing)&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private components As System.ComponentModel.IContainer&lt;br /&gt;&lt;br /&gt;    &lt;System.Diagnostics.DebuggerStepThrough()&gt; _&lt;br /&gt;    Private Sub InitializeComponent()&lt;br /&gt;        Me.Label1 = New System.Windows.Forms.Label&lt;br /&gt;        Me.SuspendLayout()&lt;br /&gt;        Me.Label1.AutoSize = True&lt;br /&gt;        Me.Label1.BackColor = System.Drawing.SystemColors.Control&lt;br /&gt;        Me.Label1.Font = New System.Drawing.Font("Forte", 48.0!, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, CType(0, Byte))&lt;br /&gt;        Me.Label1.Location = New System.Drawing.Point(48, 56)&lt;br /&gt;        Me.Label1.Name = "Label1"&lt;br /&gt;        Me.Label1.Size = New System.Drawing.Size(169, 70)&lt;br /&gt;        Me.Label1.TabIndex = 0&lt;br /&gt;        Me.Label1.Text = "Hole"&lt;br /&gt;        Me.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter&lt;br /&gt;        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)&lt;br /&gt;        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font&lt;br /&gt;        Me.BackColor = System.Drawing.Color.Red&lt;br /&gt;        Me.ClientSize = New System.Drawing.Size(274, 187)&lt;br /&gt;        Me.Controls.Add(Me.Label1)&lt;br /&gt;        Me.Name = "Form1"&lt;br /&gt;        Me.Text = "Form1"&lt;br /&gt;        Me.ResumeLayout(False)&lt;br /&gt;        Me.PerformLayout()&lt;br /&gt;&lt;br /&gt;    End Sub&lt;br /&gt;    Friend WithEvents Label1 As System.Windows.Forms.Label&lt;br /&gt;&lt;br /&gt;End Class&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt; &lt;li&gt;Tampilan yang dihasilkan adalah:&lt;/li&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Gp4jAV9pQtg/SpOWFQR_7EI/AAAAAAAAAFQ/anh7Qo1Z6Es/s1600-h/04.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 223px;" src="http://2.bp.blogspot.com/_Gp4jAV9pQtg/SpOWFQR_7EI/AAAAAAAAAFQ/anh7Qo1Z6Es/s320/04.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5373803797397105730" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-4702479529196844932?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/4702479529196844932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2009/08/vbnet-form-transparan-dengan-teks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/4702479529196844932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/4702479529196844932'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2009/08/vbnet-form-transparan-dengan-teks.html' title='VB.Net – Form Transparan Dengan Teks'/><author><name>R†</name><uri>http://www.blogger.com/profile/06404935452790331980</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Gp4jAV9pQtg/TAeH2I49RQI/AAAAAAAAAL0/-wOcj-aWl2I/S220/milo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Gp4jAV9pQtg/SpOWFQR_7EI/AAAAAAAAAFQ/anh7Qo1Z6Es/s72-c/04.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-8304782675372864428</id><published>2009-08-25T14:38:00.000+07:00</published><updated>2009-08-25T14:42:22.698+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.Net'/><title type='text'>VB.Net – Mencegat Penekanan Keyboard</title><content type='html'>&lt;p class="abstract"&gt;Dalam banyak aplikasi game, pencegatan keyboard mutlak dilakukan. Mulai dari pencegatan untuk tombol karakter biasa (a-z, tanda baca), enter, tanda panah, alt, ctrl, page up, page down, insert, hingga tombol escape. Tombol-tombol ini dicegat agar dapat diberikan respon yang sesuai.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Pada tip kali ini, kita akan mencoba membuat sebuah program kecil untuk mendemokan bagaimana melakukan pencegatan penekanan keyboard pada VB.Net dan kemudian memberikan sebuah respon sederhana terhadap penekanan tombol tersebut.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Langkah-langkah untuk membuatnya adalah:&lt;/div&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt; &lt;li&gt;Buat New Project (Windows Application) dengan sebuah form baru. Komponen-komponen yang ditambahkan adalah:&lt;/li&gt;&lt;br /&gt; &lt;ul&gt;&lt;br /&gt;  &lt;li&gt;Sebuah textbox yang diberi nama textbox1. Properti yang diubah untuk textbox ini adalah property Scrollbars menjadi Vertical dan multiline menjadi True.&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;Textbox lain yang diberi nama textbox2.&lt;/li&gt;&lt;br /&gt; &lt;/ul&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Gp4jAV9pQtg/SpOVRehyc1I/AAAAAAAAAE4/FXO2MlQAhEU/s1600-h/01.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 212px;" src="http://1.bp.blogspot.com/_Gp4jAV9pQtg/SpOVRehyc1I/AAAAAAAAAE4/FXO2MlQAhEU/s320/01.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5373802907868230482" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;li&gt;Untuk inisialisasi, ketikkan kode berikut&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Public Class Form1&lt;br /&gt;    Inherits System.Windows.Forms.Form&lt;br /&gt;    Private myKeyPressHandler As New myKeyPressClass()&lt;br /&gt;&lt;br /&gt;#Region " Windows Form Designer generated code "&lt;br /&gt;    Public Sub New()&lt;br /&gt;        MyBase.New()&lt;br /&gt;&lt;br /&gt;        'This call is required by the Windows Form Designer.&lt;br /&gt;        InitializeComponent()&lt;br /&gt;&lt;br /&gt;        'Add any initialization after the InitializeComponent() call&lt;br /&gt;&lt;br /&gt;        'Handle On KeyPress event of TextBox1: invoke myKeyPressHandler.myKeyCounter method&lt;br /&gt;        AddHandler TextBox1.KeyPress, AddressOf myKeyPressHandler.myKeyCounter&lt;br /&gt;        'Refer myKeyPressHandler.textBox1 by TextBox1&lt;br /&gt;        myKeyPressHandler.textBox1 = TextBox1&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;#End Region&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt; &lt;li&gt;Pencegatan untuk event TextBox2 adalah sebagai berikut:&lt;/li&gt;&lt;br /&gt;&lt;br /&gt; &lt;pre&gt; Private Sub TextBox2_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox2.KeyDown&lt;br /&gt;        MsgBox(e.KeyData.ToString &amp; " pressed. Key Value is " &amp; e.KeyValue.ToString, MsgBoxStyle.Information, "KeyDown Handler")&lt;br /&gt;    End Sub&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt; &lt;li&gt;Untuk mencegat penekanan tombol pada textbox1, kita membuat sebuah class bernama myKeyPressClass, dengan inisialisasi:&lt;br /&gt;&lt;pre&gt;Public Class myKeyPressClass&lt;br /&gt;    Private Shared keyPressCount As Long = 0&lt;br /&gt;    Private Shared backspacePressed As Long = 0&lt;br /&gt;    Private Shared returnPressed As Long = 0&lt;br /&gt;    Private Shared escPressed As Long = 0&lt;br /&gt;    Public textBox1 As TextBox&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt; &lt;li&gt;Respon pencegatan yang diberikan ada pada subrutin myKeyCounter.&lt;/li&gt;&lt;br /&gt;    &lt;pre&gt;Public Sub myKeyCounter(ByVal sender As Object, ByVal ex As KeyPressEventArgs)&lt;br /&gt;        Select Case ex.KeyChar&lt;br /&gt;            Case ControlChars.Back&lt;br /&gt;                backspacePressed = backspacePressed + 1&lt;br /&gt;            Case ControlChars.CrLf&lt;br /&gt;                returnPressed = returnPressed + 1&lt;br /&gt;            Case Convert.ToChar(27)&lt;br /&gt;                escPressed = escPressed + 1&lt;br /&gt;            Case Else&lt;br /&gt;                keyPressCount = keyPressCount + 1&lt;br /&gt;        End Select&lt;br /&gt;&lt;br /&gt;        textBox1.Text = backspacePressed &amp; " backspaces pressed" &amp; _&lt;br /&gt;         ControlChars.CrLf &amp; escPressed &amp; _&lt;br /&gt;         " escapes pressed" &amp; ControlChars.CrLf &amp; returnPressed &amp; _&lt;br /&gt;         " returns pressed" &amp; ControlChars.CrLf &amp; keyPressCount &amp; _&lt;br /&gt;         " other keys pressed" &amp; ControlChars.CrLf&lt;br /&gt;        ex.Handled = True&lt;br /&gt;    End Sub    'myKeyCounter&lt;br /&gt;End Class 'myKeyPressClass&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt; &lt;li&gt;Jika dijalankan tampilan yang didapatkan adalah:&lt;/li&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Gp4jAV9pQtg/SpOVa-u6gWI/AAAAAAAAAFA/KgjUzRaRg10/s1600-h/02.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 294px;" src="http://3.bp.blogspot.com/_Gp4jAV9pQtg/SpOVa-u6gWI/AAAAAAAAAFA/KgjUzRaRg10/s320/02.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5373803071132041570" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Gp4jAV9pQtg/SpOVopMno-I/AAAAAAAAAFI/kdz17OAPe5A/s1600-h/03.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 242px; height: 126px;" src="http://3.bp.blogspot.com/_Gp4jAV9pQtg/SpOVopMno-I/AAAAAAAAAFI/kdz17OAPe5A/s320/03.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5373803305869222882" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-8304782675372864428?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/8304782675372864428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2009/08/vbnet-mencegat-penekanan-keyboard.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/8304782675372864428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/8304782675372864428'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2009/08/vbnet-mencegat-penekanan-keyboard.html' title='VB.Net – Mencegat Penekanan Keyboard'/><author><name>R†</name><uri>http://www.blogger.com/profile/06404935452790331980</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Gp4jAV9pQtg/TAeH2I49RQI/AAAAAAAAAL0/-wOcj-aWl2I/S220/milo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Gp4jAV9pQtg/SpOVRehyc1I/AAAAAAAAAE4/FXO2MlQAhEU/s72-c/01.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-943956009460849604</id><published>2009-08-25T14:35:00.000+07:00</published><updated>2009-08-25T14:37:39.393+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.Net'/><title type='text'>VB.Net – Curlicue Fractal</title><content type='html'>&lt;p class="abstract"&gt;Curlicue Fractal adalah suatu teknik membuat fraktal yang sederhana, namun dapat membentuk berbagai pola fraktal yang menarik.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Tip kali ini adalah membuat efek Curlicue Fractal di VB.Net. Langkah-langkahnya adalah:&lt;/div&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt; &lt;li&gt;Buat sebuah form dengan sebuah textbox bernama txtS, sebuah button bernama btnGo, sebuah combobox bernama cboS (yang berisi list: Pi, ln(2), e, Sqrt(2), Sqrt(3), Sqrt(5), Lambda, Golden Ratio, dan Feigenbaum) serta sebuah picturebox bernama picCanvas.&lt;/li&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Gp4jAV9pQtg/SpOUe4QENxI/AAAAAAAAAEo/I9SiB2wF1Jc/s1600-h/03.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 200px;" src="http://1.bp.blogspot.com/_Gp4jAV9pQtg/SpOUe4QENxI/AAAAAAAAAEo/I9SiB2wF1Jc/s320/03.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5373802038599890706" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;li&gt;Deklarasi awal serta pencegatan untuk untuk event-eventnya adalah sebagai berikut:&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Imports System.Math&lt;br /&gt;Imports System.Drawing.Drawing2D&lt;br /&gt;&lt;br /&gt;Public Class Form1&lt;br /&gt;    Inherits System.Windows.Forms.Form&lt;br /&gt;&lt;br /&gt;    Private Sub btnGo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGo.Click&lt;br /&gt;        picCanvas.Invalidate()&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub picCanvas_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles picCanvas.Resize&lt;br /&gt;        picCanvas.Invalidate()&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub picCanvas_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles picCanvas.Paint&lt;br /&gt;        DrawCurlicue(e.Graphics)&lt;br /&gt;    End Sub&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt; &lt;li&gt;Subrutin utamanya adalah DrawCurlicue serta menentukan konstanta untuk&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Private Sub DrawCurlicue(ByVal gr As Graphics)&lt;br /&gt;  Const SCALE As Integer = 2&lt;br /&gt;  gr.ScaleTransform(SCALE, SCALE, MatrixOrder.Append)&lt;br /&gt;  gr.TranslateTransform(picCanvas.ClientSize.Width \ 2, _&lt;br /&gt;  picCanvas.ClientSize.Width \ 2, MatrixOrder.Append)&lt;br /&gt;&lt;br /&gt;  Dim s As Single = Single.Parse(txtS.Text)&lt;br /&gt;&lt;br /&gt;  Dim theta As Single = 0&lt;br /&gt;  Dim phi As Single = 0&lt;br /&gt;  Dim x0, y0, x1, y1 As Single&lt;br /&gt;  x0 = 0&lt;br /&gt;  y0 = 0&lt;br /&gt;  Dim thin_pen As New Pen(Color.Black, 0)&lt;br /&gt;  For i As Integer = 1 To 10000&lt;br /&gt;    x1 = x0 + Cos(phi)&lt;br /&gt;    y1 = y0 + Sin(phi)&lt;br /&gt;    gr.DrawLine(thin_pen, x0, -y0, x1, -y1)&lt;br /&gt;    x0 = x1&lt;br /&gt;    y0 = y1&lt;br /&gt;&lt;br /&gt;    phi = (theta + phi) Mod (2 * PI)&lt;br /&gt;    theta = (theta + 2 * PI * s) Mod (2 * PI)&lt;br /&gt;  Next i&lt;br /&gt;  thin_pen.Dispose()&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub cboS_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboS.SelectedIndexChanged&lt;br /&gt;  Select Case cboS.Text.ToLower&lt;br /&gt;    Case "pi"&lt;br /&gt;      txtS.Text = PI.ToString&lt;br /&gt;    Case "ln(2)"&lt;br /&gt;      txtS.Text = Log(2).ToString&lt;br /&gt;    Case "e"&lt;br /&gt;      txtS.Text = Math.E.ToString&lt;br /&gt;    Case "sqrt(2)"&lt;br /&gt;      txtS.Text = Sqrt(2).ToString&lt;br /&gt;    Case "sqrt(3)"&lt;br /&gt;      txtS.Text = Sqrt(3).ToString&lt;br /&gt;    Case "sqrt(5)"&lt;br /&gt;      txtS.Text = Sqrt(5).ToString&lt;br /&gt;    Case "lambda"&lt;br /&gt;      txtS.Text = "0.577215664901532860606512090082402431042"&lt;br /&gt;    Case "golden ratio"&lt;br /&gt;      txtS.Text = "1.618033988749894848204586834365638117720"&lt;br /&gt;    Case "feigenbaum"&lt;br /&gt;      txtS.Text = "4.6692016091029906718532038204662016172581855774757686327456513430041343302113147371386897440239480138"&lt;br /&gt;    End Select&lt;br /&gt;    picCanvas.Invalidate()&lt;br /&gt;End Sub&lt;/pre&gt;&lt;br /&gt; &lt;li&gt;Tampilan yang dihasilkan adalah:&lt;/li&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Gp4jAV9pQtg/SpOUms_-0_I/AAAAAAAAAEw/MQgmwWvgTSM/s1600-h/04.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 244px;" src="http://2.bp.blogspot.com/_Gp4jAV9pQtg/SpOUms_-0_I/AAAAAAAAAEw/MQgmwWvgTSM/s320/04.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5373802173018592242" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-943956009460849604?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/943956009460849604/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2009/08/vbnet-curlicue-fractal.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/943956009460849604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/943956009460849604'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2009/08/vbnet-curlicue-fractal.html' title='VB.Net – Curlicue Fractal'/><author><name>R†</name><uri>http://www.blogger.com/profile/06404935452790331980</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Gp4jAV9pQtg/TAeH2I49RQI/AAAAAAAAAL0/-wOcj-aWl2I/S220/milo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Gp4jAV9pQtg/SpOUe4QENxI/AAAAAAAAAEo/I9SiB2wF1Jc/s72-c/03.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-3990219904518743147</id><published>2009-08-25T14:31:00.000+07:00</published><updated>2009-08-25T14:35:28.972+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.Net'/><title type='text'>VB.Net – Membuat Font Viewer dan Efeknya</title><content type='html'>&lt;p class="abstract"&gt;Menampilkan bentuk font dan efek-efeknya adalah hal yang penting bagi para desainer grafis. Dengan menggunakan VB.Net (dan memanfaatkan library System.Drawing.Text), kita dapat membuat sebuah aplikasi font viewer beserta efek-efeknya.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Langkah-langkah untuk membuatnya adalah:&lt;/div&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt; &lt;li&gt;Buat New Project (Windows Application) dengan sebuah form baru. Komponen-komponen yang ditambahkan adalah:&lt;/li&gt;&lt;br /&gt; &lt;ul&gt;&lt;br /&gt;  &lt;li&gt;Sebuah textbox bernama txtSize,&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;4 buah checkbox yang masing-masing bernama chkBold, chkItalic, chkUnderline, chkStrikeout&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;Sebuah listbox bernama lstFont yang digunakan untuk menampung daftar font yang ada di sistem.&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;Sebuah textbox bernama txtSample, dengan properti yang perlu diubah: Anchor menjadi Top, Bottom, Left, Right dan Multiline menjadi True.&lt;/li&gt;&lt;br /&gt; &lt;/ul&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Gp4jAV9pQtg/SpOT4nraxCI/AAAAAAAAAEY/Emz8f0SQRFI/s1600-h/01.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 222px;" src="http://2.bp.blogspot.com/_Gp4jAV9pQtg/SpOT4nraxCI/AAAAAAAAAEY/Emz8f0SQRFI/s320/01.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5373801381316183074" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;li&gt;Saat form pertama kali di-load, list box akan diisi dengan font yang terinstall pada sistem. Pencegatan untuk event form_load adalah sebagai berikut:&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Imports System.Drawing.Text&lt;br /&gt;&lt;br /&gt;Public Class Form1&lt;br /&gt;    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load&lt;br /&gt;        Dim installed_fonts As New InstalledFontCollection&lt;br /&gt;        lstFont.Items.Clear()&lt;br /&gt;        For Each font_family As FontFamily In installed_fonts.Families&lt;br /&gt;            lstFont.Items.Add(font_family.Name)&lt;br /&gt;        Next font_family&lt;br /&gt;        lstFont.SelectedIndex = 0&lt;br /&gt;    End Sub&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt; &lt;li&gt;Jika terjadi perubahan pada checkbox atau listbox, maka akan dipanggil sub ShowSample yang bertugas menampilkan text sesuai dengan font yang dipilih serta efek yang diberikan.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt; &lt;pre&gt;    Private Sub txtSize_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSize.TextChanged, chkBold.Click, chkItalic.Click, chkUnderline.Click, chkStrikeout.Click, lstFont.SelectedIndexChanged&lt;br /&gt;&lt;br /&gt;        ShowSample()&lt;br /&gt;    End Sub&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt; &lt;li&gt;Berikut adalah sub ShowSample untuk menampilkan contoh dari font dan efek yang diberikan&lt;/li&gt;&lt;br /&gt; &lt;pre&gt; Private Sub ShowSample()&lt;br /&gt;        Dim font_style As FontStyle = FontStyle.Regular&lt;br /&gt;        If chkBold.Checked Then font_style = font_style Or FontStyle.Bold&lt;br /&gt;        If chkItalic.Checked Then font_style = font_style Or FontStyle.Italic&lt;br /&gt;        If chkUnderline.Checked Then font_style = font_style Or FontStyle.Underline&lt;br /&gt;        If chkStrikeout.Checked Then font_style = font_style Or FontStyle.Strikeout&lt;br /&gt;&lt;br /&gt;        Dim font_size As Single = 8&lt;br /&gt;        Try&lt;br /&gt;            font_size = Single.Parse(txtSize.Text)&lt;br /&gt;        Catch ex As Exception&lt;br /&gt;        End Try&lt;br /&gt;&lt;br /&gt;        Dim family_name As String = "Times New Roman"&lt;br /&gt;        If Not (lstFont.SelectedItem Is Nothing) Then&lt;br /&gt;            family_name = lstFont.SelectedItem.ToString&lt;br /&gt;        End If&lt;br /&gt;        Dim new_font As New Font( _&lt;br /&gt;            family_name, font_size, font_style)&lt;br /&gt;&lt;br /&gt;        txtSample.Font = new_font&lt;br /&gt;    End Sub&lt;br /&gt;End Class&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt; &lt;li&gt;Jika dijalankan tampilan yang didapatkan adalah:&lt;/li&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Gp4jAV9pQtg/SpOUFN1FKwI/AAAAAAAAAEg/coT-vglSdjo/s1600-h/02.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 221px;" src="http://3.bp.blogspot.com/_Gp4jAV9pQtg/SpOUFN1FKwI/AAAAAAAAAEg/coT-vglSdjo/s320/02.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5373801597715688194" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-3990219904518743147?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/3990219904518743147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2009/08/vbnet-membuat-font-viewer-dan-efeknya.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/3990219904518743147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/3990219904518743147'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2009/08/vbnet-membuat-font-viewer-dan-efeknya.html' title='VB.Net – Membuat Font Viewer dan Efeknya'/><author><name>R†</name><uri>http://www.blogger.com/profile/06404935452790331980</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Gp4jAV9pQtg/TAeH2I49RQI/AAAAAAAAAL0/-wOcj-aWl2I/S220/milo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Gp4jAV9pQtg/SpOT4nraxCI/AAAAAAAAAEY/Emz8f0SQRFI/s72-c/01.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-8684888873603723590</id><published>2009-08-25T14:27:00.000+07:00</published><updated>2009-08-25T14:31:20.934+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.Net'/><title type='text'>VB.Net – Animasi Starfield Dengan GDI+</title><content type='html'>&lt;p class="abstract"&gt;GDI (Graphics Device Interface) merupakan kumpulan API di Windows yang dipergunakan menggambar garis atau kurva, me-render font serta menangani palet baik pada monitor maupun pada printer. Kemampuan GDI dalam menangani grafik ini menjadi dasar dari konsep WYSIWYG (What You See Is What You Get) dari semua aplikasi Windows.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;GDI+ merupakan evolusi dari GDI, yang membuat pengelolaan grafik menjadi jauh lebih mudah. Tip kali ini adalah memanfaatkan GDI+ untuk membuat animasi starfield.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Langkah-langkah untuk membuatnya adalah:&lt;/div&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt; &lt;li&gt;Buat New Project (Windows Application) dengan sebuah form baru dan sebuah picturebox bernama pbstars. Property yang perlu diubah adalah BackColor menjadi hitam, Dock menjad Fill, WaitOnLoad menjadi true.&lt;/li&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Gp4jAV9pQtg/SpOS2W4A0yI/AAAAAAAAAEI/xU3JxEvRSEs/s1600-h/01.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 238px;" src="http://3.bp.blogspot.com/_Gp4jAV9pQtg/SpOS2W4A0yI/AAAAAAAAAEI/xU3JxEvRSEs/s320/01.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5373800242934240034" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;li&gt;Buat sebuah class baru bernama clsStars. Class ini&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Public Class clsStars&lt;br /&gt;    Dim s_direction As Single = 0&lt;br /&gt;    Dim s_angle As Double&lt;br /&gt;    Dim center As Point&lt;br /&gt;    Dim speed As Double = 0.2&lt;br /&gt;    Dim s_accel As Double = 1.1&lt;br /&gt;    Dim s_cd As Integer&lt;br /&gt;    Dim s_x As Integer&lt;br /&gt;    Dim s_y As Integer&lt;br /&gt;    Dim s_pen() As Pen&lt;br /&gt;    Dim s_hold As Double&lt;br /&gt;    Dim s_depth As Integer = 2&lt;br /&gt;    Dim s_count As Integer = 10&lt;br /&gt;    Dim rn As New Random&lt;br /&gt;&lt;br /&gt;    Private Structure fShip&lt;br /&gt;        Dim spoint() As Point&lt;br /&gt;        Dim cv As Single&lt;br /&gt;    End Structure&lt;br /&gt;&lt;br /&gt;    Private Structure Star&lt;br /&gt;        Dim x As Single&lt;br /&gt;        Dim y As Integer&lt;br /&gt;        Dim z As Integer&lt;br /&gt;        Dim xv As Double&lt;br /&gt;        Dim yv As Double&lt;br /&gt;    End Structure&lt;br /&gt;&lt;br /&gt;    Dim Stars() As Star&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt; &lt;li&gt;Beberapa subrutin yang dibutuhkan adalah untuk inisialisasi dan mengatur gerakan star yang muncul.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt; &lt;pre&gt; Public Sub IntializeStar(ByVal depth As Integer, ByVal count As Integer, ByVal x As Integer, ByVal y As Integer)&lt;br /&gt;        ReDim Stars(count)&lt;br /&gt;        ReDim s_pen(depth)&lt;br /&gt;        center = New Point(x / 2, y / 2)&lt;br /&gt;        s_count = count&lt;br /&gt;        s_depth = depth&lt;br /&gt;        s_x = x&lt;br /&gt;        s_y = y&lt;br /&gt;        s_cd = Int(255 / s_depth)&lt;br /&gt;        For x = 0 To s_count Step s_depth&lt;br /&gt;            For y = 1 To depth&lt;br /&gt;                Try&lt;br /&gt;                    Stars(x + y).x = rn.Next(0, s_x)&lt;br /&gt;                    Stars(x + y).y = rn.Next(0, s_y)&lt;br /&gt;                    Stars(x + y).z = y&lt;br /&gt;                    StarAngle(x + y)&lt;br /&gt;                    If x = 0 Then s_pen(y) = New Pen(Color.FromArgb(Int(s_cd * y), Int(s_cd * y), Int(s_cd * y)), 2)&lt;br /&gt;                Catch ex As Exception&lt;br /&gt;&lt;br /&gt;                End Try&lt;br /&gt;            Next&lt;br /&gt;        Next&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub SetShip(ByVal Value As Single)&lt;br /&gt;        s_angle += Value&lt;br /&gt;        If s_angle &gt; 180 Then s_angle = -180&lt;br /&gt;        If s_angle &lt; -180 Then s_angle = 180&lt;br /&gt;        If s_direction &lt; 0 Then&lt;br /&gt;            s_direction += Value * 2&lt;br /&gt;        Else&lt;br /&gt;            s_direction += Value&lt;br /&gt;        End If&lt;br /&gt;        If s_direction &gt; 360 Then s_direction = -360&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub StarAngle(ByVal Id As Integer)&lt;br /&gt;        Dim x As Integer = Stars(Id).x - (center.X)&lt;br /&gt;        Dim y As Integer = Stars(Id).y - (center.Y)&lt;br /&gt;        Dim a As Double = Math.Atan2(y, x)&lt;br /&gt;        Stars(Id).xv = 2 * Math.Cos(a)&lt;br /&gt;        Stars(Id).yv = 2 * Math.Sin(a)&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Public Sub DrawShip(ByVal b As System.Windows.Forms.PaintEventArgs)&lt;br /&gt;        Dim x As Integer&lt;br /&gt;        b.Graphics.TranslateTransform(center.X, center.Y)&lt;br /&gt;        For x = 1 To s_depth&lt;br /&gt;            SetShip(0.01)&lt;br /&gt;            b.Graphics.RotateTransform(s_angle, MatrixOrder.Prepend)&lt;br /&gt;            b.Graphics.DrawPie(s_pen(x), New RectangleF(0, 0, 150, 150), s_direction, s_direction)&lt;br /&gt;            b.Graphics.DrawPie(s_pen(x), New RectangleF(0, 0, 150, 150), s_direction, -s_direction)&lt;br /&gt;        Next&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Public Sub DrawStars(ByVal b As System.Windows.Forms.PaintEventArgs)&lt;br /&gt;        Dim x As Integer&lt;br /&gt;        b.Graphics.Clear(Color.Black)&lt;br /&gt;        For x = 1 To UBound(Stars)&lt;br /&gt;            If Stars(x).y &gt; s_y Or Stars(x).y &lt; 0 Or Stars(x).x &gt; s_x Or Stars(x).x &lt; 0 Then&lt;br /&gt;                Stars(x).x = rn.Next(0, s_x)&lt;br /&gt;                Stars(x).y = rn.Next(0, s_y)&lt;br /&gt;                StarAngle(x)&lt;br /&gt;            Else&lt;br /&gt;                Stars(x).x += Stars(x).xv&lt;br /&gt;                Stars(x).y += Stars(x).yv&lt;br /&gt;                Stars(x).xv *= s_accel + (0.001 * Stars(x).z)&lt;br /&gt;                Stars(x).yv *= s_accel + (0.001 * Stars(x).z)&lt;br /&gt;            End If&lt;br /&gt;            b.Graphics.DrawLine(s_pen(Stars(x).z), CInt(Stars(x).x - Stars(x).xv), CInt(Stars(x).y - Stars(x).yv), Stars(x).x, Stars(x).y)&lt;br /&gt;        Next&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;End Class&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt; &lt;li&gt;Beberapa event yang perlu dicegat untuk di class Form1 adalah sebagai berikut:&lt;/li&gt;&lt;br /&gt;&lt;pre&gt;Public Class Form1&lt;br /&gt;    Dim sf As New clsStars&lt;br /&gt;    Dim WithEvents tm As New Timer&lt;br /&gt;&lt;br /&gt;    Private Sub Tm_Tick1(ByVal sender As Object, ByVal e As System.EventArgs) Handles tm.Tick&lt;br /&gt;        Me.pbStars.Refresh()&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing&lt;br /&gt;        sf = Nothing&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load&lt;br /&gt;        tm.Interval = 15&lt;br /&gt;        tm.Enabled = True&lt;br /&gt;        Init()&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Init()&lt;br /&gt;        Dim tf As Font = New Font("KaiTi", 100, FontStyle.Regular, GraphicsUnit.Pixel)&lt;br /&gt;        sf.IntializeStar(11, 190, Me.Width, Me.Height)&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub pbStars_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles pbStars.Paint&lt;br /&gt;        e.Graphics.SmoothingMode = SmoothingMode.AntiAlias&lt;br /&gt;        sf.DrawStars(e)&lt;br /&gt;        sf.DrawShip(e)&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;End Class&lt;/pre&gt;&lt;br /&gt; &lt;li&gt;Jika dijalankan tampilan yang didapatkan adalah:&lt;/li&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Gp4jAV9pQtg/SpOTGEogkQI/AAAAAAAAAEQ/NwAt8Mq2gGs/s1600-h/02.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 238px;" src="http://2.bp.blogspot.com/_Gp4jAV9pQtg/SpOTGEogkQI/AAAAAAAAAEQ/NwAt8Mq2gGs/s320/02.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5373800512915280130" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-8684888873603723590?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/8684888873603723590/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2009/08/vbnet-animasi-starfield-dengan-gdi.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/8684888873603723590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/8684888873603723590'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2009/08/vbnet-animasi-starfield-dengan-gdi.html' title='VB.Net – Animasi Starfield Dengan GDI+'/><author><name>R†</name><uri>http://www.blogger.com/profile/06404935452790331980</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Gp4jAV9pQtg/TAeH2I49RQI/AAAAAAAAAL0/-wOcj-aWl2I/S220/milo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Gp4jAV9pQtg/SpOS2W4A0yI/AAAAAAAAAEI/xU3JxEvRSEs/s72-c/01.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-3223353804903944813</id><published>2009-08-25T14:06:00.000+07:00</published><updated>2009-08-25T14:26:46.586+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.Net'/><title type='text'>VB.Net – Disable/Enable Task Manager</title><content type='html'>&lt;p class="abstract"&gt;Task manager merupakan aplikasi yang disertakan oleh Windows untuk mengetahui informasi detail mengenai performansi komputer, aplikasi yang saat itu sedang aktif, proses dan penggunaan sumber daya CPU, informasi memori, aktivitas jaringan dan sebagainya.  Task manager juga sering digunakan untuk menghentikan jalannya aplikasi secara paksa.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Task manager dapat ditampilkan dengan menekan tombol Ctrl+Alt+Del secara bersamaan. Karena begitu pentingnya aplikasi task manager ini hingga seringkali menjadi sasaran virus untuk menyembunyikan diri dengan cara men-disable task manager, sehingga saat user menekan Ctrl+Alt+Del, muncul pesan bahwa task manager telah di-disable.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Tip kali ini adalah mensimulasikan untuk men-disable dan meng-enable task manager. Proses untuk men-disable/meng-enable sebenarnya hanyalah melakukan modifikasi pada registry, yaitu pada Software\Microsoft\Windows\CurrentVersion\Policies\System.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Langkah-langkah untuk membuatnya adalah:&lt;/div&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt; &lt;li&gt;Buat New Project (Windows Application) dengan sebuah form baru dengan dua buah button, masing-masig bernama Button1 (untuk men-disable task manager) dan Button2 (untuk meng-enable Task manager).&lt;/li&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Gp4jAV9pQtg/SpOOlU8tydI/AAAAAAAAADw/TZr4J1Lue1k/s1600-h/01.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 259px; height: 192px;" src="http://4.bp.blogspot.com/_Gp4jAV9pQtg/SpOOlU8tydI/AAAAAAAAADw/TZr4J1Lue1k/s320/01.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5373795552312805842" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;li&gt;Inisialisasi awal untuk aplikasi ini adalah sebagai berikut:&lt;/li&gt;&lt;br /&gt; &lt;pre&gt;Option Explicit On&lt;br /&gt;Option Strict On&lt;br /&gt;&lt;br /&gt;Imports Microsoft.Win32&lt;/pre&gt;&lt;br /&gt; &lt;li&gt;Untuk menulis pada registry, kita membuat sebuah structure bernama RegistryValue. RegistryValue ini diarahkan pada Software\Microsoft\Windows\CurrentVersion\Policies\System untuk mendapatkan key serta memodifikasinya.&lt;/li&gt;&lt;br /&gt;&lt;pre&gt;Public Class Form1&lt;br /&gt;&lt;br /&gt;    Private Structure RegistryValue&lt;br /&gt;        Public Path As String&lt;br /&gt;        Public Value As String&lt;br /&gt;    End Structure&lt;br /&gt;&lt;br /&gt;    Private rv As RegistryValue = New RegistryValue()&lt;br /&gt;&lt;br /&gt;    Private ReadOnly Property OpenRegistryKeyForWriting() As RegistryKey&lt;br /&gt;        Get&lt;br /&gt;            Const Path As String = "Software\Microsoft\Windows\CurrentVersion\Policies\System"&lt;br /&gt;            Return Registry.CurrentUser.OpenSubKey(Path, True)&lt;br /&gt;        End Get&lt;br /&gt;    End Property&lt;/pre&gt;&lt;br /&gt; &lt;li&gt;Beberapa fungsi yang diperlukan adalah fungsi untuk EnableDisableTaskManager serta fungsi untuk menguji kompabilitas sistem operasi.&lt;/li&gt;&lt;br /&gt;    &lt;pre&gt;Private Sub EnableDisableTaskmanager(ByVal Index As String)&lt;br /&gt;        Dim hKey As RegistryKey = Nothing&lt;br /&gt;        Try&lt;br /&gt;            Select Case Index&lt;br /&gt;                Case "Disabled"&lt;br /&gt;                    hKey = Me.OpenRegistryKeyForWriting()&lt;br /&gt;                    If hKey Is Nothing Then&lt;br /&gt;                        hKey = Registry.CurrentUser.CreateSubKey(rv.Path)&lt;br /&gt;                        hKey.SetValue(rv.Value, 1, RegistryValueKind.DWord)&lt;br /&gt;                    Else&lt;br /&gt;                        hKey = Registry.CurrentUser.CreateSubKey(rv.Path)&lt;br /&gt;                        hKey.SetValue(rv.Value, 1, RegistryValueKind.DWord)&lt;br /&gt;                    End If&lt;br /&gt;                Case "Enabled"&lt;br /&gt;                    hKey = Me.OpenRegistryKeyForWriting()&lt;br /&gt;                    If hKey IsNot Nothing Then&lt;br /&gt;                        hKey = Registry.CurrentUser.CreateSubKey(rv.Path)&lt;br /&gt;                        hKey.SetValue(rv.Value, 0, RegistryValueKind.DWord)&lt;br /&gt;                    End If&lt;br /&gt;            End Select&lt;br /&gt;        Catch ex As Exception&lt;br /&gt;            MessageBox.Show(ex.Message.ToString(), "Info")&lt;br /&gt;        Finally&lt;br /&gt;            If hKey IsNot Nothing Then&lt;br /&gt;                hKey.Close()&lt;br /&gt;            End If&lt;br /&gt;        End Try&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Function OSVersion() As Boolean&lt;br /&gt;        If System.Environment.OSVersion.Platform = PlatformID.Win32NT = True Then&lt;br /&gt;            Return True&lt;br /&gt;        Else&lt;br /&gt;            Return False&lt;br /&gt;        End If&lt;br /&gt;    End Function&lt;/pre&gt;&lt;br /&gt; &lt;li&gt;Event masing-masing button serta form_load yang perlu dicegat adalah sebagai berikut:&lt;/li&gt;&lt;br /&gt;    &lt;pre&gt;Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _&lt;br /&gt;            Handles MyBase.Load&lt;br /&gt;        If Me.OSVersion = False Then&lt;br /&gt;            MessageBox.Show("This example works only under WinNT or higher...", "Info")&lt;br /&gt;            Application.Exit()&lt;br /&gt;        End If&lt;br /&gt;        Me.CenterToScreen()&lt;br /&gt;        With Me.rv&lt;br /&gt;            .Path = "Software\Microsoft\Windows\CurrentVersion\Policies\System"&lt;br /&gt;            .Value = "DisableTaskMgr"&lt;br /&gt;        End With&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click&lt;br /&gt;        Me.EnableDisableTaskmanager("Disabled")&lt;br /&gt;        MsgBox("Task Manager has been disabled", MsgBoxStyle.Information)&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _&lt;br /&gt;            Handles Button2.Click&lt;br /&gt;        Me.EnableDisableTaskmanager("Enabled")&lt;br /&gt;        MsgBox("Task Manager has been enabled", MsgBoxStyle.Information)&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;End Class&lt;/pre&gt;&lt;br /&gt; &lt;li&gt;Tampilan yang didapatkan adalah:&lt;/li&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Gp4jAV9pQtg/SpOPseIWb5I/AAAAAAAAAD4/DDFlq-ZZ0bs/s1600-h/02.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 118px;" src="http://1.bp.blogspot.com/_Gp4jAV9pQtg/SpOPseIWb5I/AAAAAAAAAD4/DDFlq-ZZ0bs/s320/02.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5373796774548238226" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Jika button Disable Task Manager di-klik dan tombol Ctrl+Alt+Del ditekan, maka akan muncul:&lt;br /&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Gp4jAV9pQtg/SpOQKLC3G5I/AAAAAAAAAEA/jSDgZBUgSOE/s1600-h/03.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 252px; height: 185px;" src="http://1.bp.blogspot.com/_Gp4jAV9pQtg/SpOQKLC3G5I/AAAAAAAAAEA/jSDgZBUgSOE/s320/03.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5373797284821015442" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;li&gt;Pastikan Task Manager telah di-enable kembali sebelum program ditutup.&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-3223353804903944813?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/3223353804903944813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2009/08/vbnet-disableenable-task-manager.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/3223353804903944813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/3223353804903944813'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2009/08/vbnet-disableenable-task-manager.html' title='VB.Net – Disable/Enable Task Manager'/><author><name>R†</name><uri>http://www.blogger.com/profile/06404935452790331980</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Gp4jAV9pQtg/TAeH2I49RQI/AAAAAAAAAL0/-wOcj-aWl2I/S220/milo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Gp4jAV9pQtg/SpOOlU8tydI/AAAAAAAAADw/TZr4J1Lue1k/s72-c/01.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-3920286955212359351</id><published>2009-08-25T13:58:00.000+07:00</published><updated>2009-08-25T14:26:19.248+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.Net'/><title type='text'>VB.Net – Animasi Mata</title><content type='html'>&lt;p class="abstract"&gt;Tip berikut ini akan membuat sebuah animasi mata pada form yang akan selalu mengikuti gerakan mouse. Pergerakan pupil dilakukan dengan menggunakan persamaan lingkaran agar nampak lebih realistis.&lt;/p&gt;&lt;br /&gt;&lt;div&gt;Langkah-langkah untuk membuatnya adalah:&lt;/div&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt; &lt;li&gt;Buat New Project (Windows Application) dengan sebuah form baru. Ubah caption form menjad "Eye Movements!". Tidak perlu ditambahkan apapun dalam form ini, karena mata akan dibuat langsung dalam program.&lt;/li&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Gp4jAV9pQtg/SpOMcrSPjLI/AAAAAAAAADY/XRPt0u8jxiE/s1600-h/01.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 274px;" src="http://3.bp.blogspot.com/_Gp4jAV9pQtg/SpOMcrSPjLI/AAAAAAAAADY/XRPt0u8jxiE/s320/01.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5373793204666600626" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;li&gt;Deklarasi awal untuk animasi mata ini adalah sebagai berikut:&lt;/li&gt;&lt;br /&gt; &lt;pre&gt;'Digunakan untuk menggambar lingkaran&lt;br /&gt;Imports System.Drawing&lt;br /&gt;&lt;br /&gt;Public Class Form1&lt;br /&gt;    Inherits System.Windows.Forms.Form&lt;br /&gt;    Dim crsr As Point&lt;br /&gt;    Dim e1, e2 As Mata&lt;/pre&gt;&lt;br /&gt; &lt;li&gt;Kita perlu membuat sebuah class Mata yang nantinya digunakan ke dalam program.&lt;/li&gt;&lt;br /&gt; &lt;pre&gt;    Class Mata&lt;br /&gt;        'atribut yang pada class mata&lt;br /&gt;        Dim Lft, rght, LPupil, RPupil As Point&lt;br /&gt;        Const EYE_RADIUS As Integer = 30&lt;br /&gt;        Const PUPIL_RADIUS As Integer = 10&lt;br /&gt;&lt;br /&gt;        Public Sub New(ByVal c As Point)&lt;br /&gt;            MyBase.new()&lt;br /&gt;            'membuat instance baru&lt;br /&gt;            Lft = New Point(c.X - EYE_RADIUS - 3, c.Y)&lt;br /&gt;            rght = New Point(c.X + EYE_RADIUS + 3, c.Y)&lt;br /&gt;        End Sub&lt;br /&gt;&lt;br /&gt;        Private Sub FillCircle(ByVal G As Graphics, ByVal Center As Point, ByVal Radius As Integer, ByVal brsh As Brush)&lt;br /&gt;            'menggambar lingkaran untuk pupil&lt;br /&gt;            Dim x, y As Integer&lt;br /&gt;            G.FillEllipse(brsh, Center.X - Radius, Center.Y - Radius, 2 * Radius, 2 * Radius)&lt;br /&gt;        End Sub&lt;br /&gt;&lt;br /&gt;        Private Function compute(ByVal cursor As Point, ByVal eye As Point) As Point&lt;br /&gt;            Dim d As Double, r As Integer&lt;br /&gt;            'menghitung posisi dari pupil untuk mata kiri dan kanan&lt;br /&gt;            'gunakan rumus untuk jarak antara pupil dengan kursor mouse&lt;br /&gt;            'akan selalu mengikuti gerakan dari kursor mose&lt;br /&gt;            'antisipasi jika terjadi kesalahan/overflow dalam perhitungan&lt;br /&gt;            Try&lt;br /&gt;                d = ((cursor.X - eye.X) * (cursor.X - eye.X)) + ((cursor.Y - eye.Y) * (cursor.Y - eye.Y))&lt;br /&gt;                d = Math.Sqrt(d)&lt;br /&gt;                r = EYE_RADIUS - PUPIL_RADIUS&lt;br /&gt;                Return New Point(eye.X + ((cursor.X - eye.X) * r / d), eye.Y + ((cursor.Y - eye.Y) * r / d))&lt;br /&gt;            Catch ex As Exception&lt;br /&gt;                'do nothing &lt;br /&gt;            End Try&lt;br /&gt;        End Function&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        Public Sub stare(ByVal g As Graphics, ByVal cursor As Point)&lt;br /&gt;            Dim brsh As Brush           &lt;br /&gt;            brsh = Brushes.White&lt;br /&gt;            FillCircle(g, Lft, EYE_RADIUS, brsh)&lt;br /&gt;            FillCircle(g, rght, EYE_RADIUS, brsh)&lt;br /&gt;            brsh = Brushes.Black&lt;br /&gt;            LPupil = compute(cursor, Lft)&lt;br /&gt;            FillCircle(g, LPupil, PUPIL_RADIUS, brsh)&lt;br /&gt;            RPupil = compute(cursor, rght)&lt;br /&gt;            FillCircle(g, RPupil, PUPIL_RADIUS, brsh)&lt;br /&gt;        End Sub&lt;br /&gt;&lt;br /&gt;    End Class&lt;/pre&gt;&lt;br /&gt; &lt;li&gt;Event-event yang perlu dicegat adalah&lt;/li&gt;&lt;br /&gt;&lt;pre&gt;Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load&lt;br /&gt;        Width = 505&lt;br /&gt;        Height = 400&lt;br /&gt;        'membuat dua buah mata&lt;br /&gt;        e1 = New Mata(New Point(250, 200))&lt;br /&gt;        crsr = New Point(250, 2000)&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove&lt;br /&gt;        crsr.X = e.X&lt;br /&gt;        crsr.Y = e.Y&lt;br /&gt;        Me.Refresh()&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint&lt;br /&gt;        e1.stare(e.Graphics, crsr)&lt;br /&gt;        e2.stare(e.Graphics, crsr)&lt;br /&gt;        Dim brsh As Brush&lt;br /&gt;        brsh = Brushes.Brown&lt;br /&gt;        e.Graphics.DrawString("MOVE YOUR MOUSE ON THE FORM", Me.Font, brsh, 70, 345)&lt;br /&gt;&lt;br /&gt;End Sub&lt;/pre&gt;&lt;br /&gt; &lt;li&gt;Tampilan yang didapatkan untuk aplikasi di atas adalah:&lt;/li&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Gp4jAV9pQtg/SpOMpt4ZA0I/AAAAAAAAADg/Fr45Iv_DsX0/s1600-h/02.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 254px;" src="http://1.bp.blogspot.com/_Gp4jAV9pQtg/SpOMpt4ZA0I/AAAAAAAAADg/Fr45Iv_DsX0/s320/02.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5373793428701774658" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;li&gt;Karena kita telah membuat class mata, maka untuk menambahkan mata, agar ada 2 mata pada form, kita cukup menginisialisasi objek baru pada form load. Contoh:&lt;/li&gt;&lt;br /&gt;&lt;pre&gt;Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load&lt;br /&gt;        Width = 505&lt;br /&gt;        Height = 400&lt;br /&gt;&lt;br /&gt;        e1 = New Mata(New Point(100, 200))   'mata pertama&lt;br /&gt;        e2 = New Mata(New Point(400, 200))   'mata ke dua&lt;br /&gt;        crsr = New Point(250, 2000)&lt;br /&gt;&lt;br /&gt;    End Sub&lt;/pre&gt;&lt;br /&gt; &lt;li&gt;Untuk event Form1_Paint juga ditambahkan agar kedua mata dapat mengikuti gerakan mouse.&lt;/li&gt;&lt;br /&gt;    &lt;pre&gt;Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint&lt;br /&gt;        e1.stare(e.Graphics, crsr)&lt;br /&gt;        e2.stare(e.Graphics, crsr)&lt;br /&gt;        Dim brsh As Brush&lt;br /&gt;        brsh = Brushes.Brown&lt;br /&gt;        e.Graphics.DrawString("MOVE YOUR MOUSE ON THE FORM", Me.Font, brsh, 70, 345)&lt;br /&gt;&lt;br /&gt;    End Sub&lt;/pre&gt;&lt;br /&gt; &lt;li&gt;Tampilan yang dihasilkan untuk dua buah mata adalah:&lt;/li&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Gp4jAV9pQtg/SpOM45aXtqI/AAAAAAAAADo/HdVfLfdBgw0/s1600-h/03.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 254px;" src="http://4.bp.blogspot.com/_Gp4jAV9pQtg/SpOM45aXtqI/AAAAAAAAADo/HdVfLfdBgw0/s320/03.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5373793689495123618" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-3920286955212359351?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/3920286955212359351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2009/08/vbnet-animasi-mata.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/3920286955212359351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/3920286955212359351'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2009/08/vbnet-animasi-mata.html' title='VB.Net – Animasi Mata'/><author><name>R†</name><uri>http://www.blogger.com/profile/06404935452790331980</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Gp4jAV9pQtg/TAeH2I49RQI/AAAAAAAAAL0/-wOcj-aWl2I/S220/milo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Gp4jAV9pQtg/SpOMcrSPjLI/AAAAAAAAADY/XRPt0u8jxiE/s72-c/01.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-1586205757680725301</id><published>2009-08-21T13:39:00.000+07:00</published><updated>2009-08-21T13:47:42.540+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.Net'/><title type='text'>VB.Net – Mengisi DataGrid dengan Gambar</title><content type='html'>&lt;p class="abstract"&gt;Kontrol DataGrid digunakan untuk menampilkan data dari sebuah database pada VB.NET. Karena ini merupakan satu-satunya komponen grid yang dipunyai Microsoft, umumnya programmer tidak mempunyai banyak pilihan selain memanfaatkan kontrol DataGrid ini untuk menampilkan data atau query pada aplikasi database yang dibuatnya.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Ketika harus menampilkan data, tentunya tidak semua data berupa teks. Bisa jadi data adalah berupa gambar. Apakah DataGrid dapat digunakan untuk menampilkan gambar? Tip berikut adalah salah satu cara untuk menampilkan gambar pada kontrol DataGrid.&lt;/p&gt;&lt;br /&gt;&lt;div&gt;Langkah-langkah untuk membuatnya adalah:&lt;/div&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt; &lt;li&gt;Buat New Project (Windows Application) dengan sebuah form baru yang didalamnya terdapat sebuah command button yang bernama btnRefresh dan sebuah DataGrid yang bernama DataGrid1.&lt;/li&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Gp4jAV9pQtg/So5CrULKioI/AAAAAAAAADI/pOXBYUX5qVc/s1600-h/01.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 249px;" src="http://4.bp.blogspot.com/_Gp4jAV9pQtg/So5CrULKioI/AAAAAAAAADI/pOXBYUX5qVc/s320/01.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5372304717416925826" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;li&gt;Deklarasi awal dari aplikasi ini adalah sebagai berikut:&lt;/li&gt;&lt;br /&gt; &lt;pre&gt;Imports System.IO&lt;br /&gt;imports System.Data.OleDb &lt;br /&gt;Public Class Form1&lt;br /&gt;    Inherits System.Windows.Forms.Form&lt;br /&gt;&lt;br /&gt;    Dim ItemPicture As System.Windows.Forms.PictureBox&lt;br /&gt;    Dim dgCell As DataGridCell&lt;br /&gt;    Dim colStyle As GridColumnStylesCollection&lt;br /&gt;    Dim dgStyle As New DataGridTableStyle&lt;br /&gt;    Dim dgTable As DataGridTextBoxColumn&lt;br /&gt;    Dim blnNew As Boolean = False&lt;br /&gt;    Dim intRow As Integer, intCol As Integer&lt;/pre&gt;&lt;br /&gt; &lt;li&gt;Event-event yang perlu dicegat&lt;/li&gt;&lt;br /&gt; &lt;pre&gt;Private Sub Form1_Load(ByVal sender As System.Object, _&lt;br /&gt;   ByVal e As System.EventArgs) Handles MyBase.Load&lt;br /&gt;        intRow = 0&lt;br /&gt;&lt;br /&gt;        ItemPicture = New PictureBox&lt;br /&gt;        ItemPicture.Width = 148&lt;br /&gt;        ItemPicture.Height = 124&lt;br /&gt;        ItemPicture.Cursor = System.Windows.Forms.Cursors.Arrow&lt;br /&gt;        ItemPicture.Dock = DockStyle.Fill&lt;br /&gt;&lt;br /&gt;        ItemPicture.SizeMode = PictureBoxSizeMode.StretchImage&lt;br /&gt;&lt;br /&gt;        AddHandler ItemPicture.Click, AddressOf ClickCBO&lt;br /&gt;        RefereshRec()&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub ClickCBO(ByVal sender As System.Object, ByVal e As System.EventArgs)&lt;br /&gt;  ItemPicture.ContextMenu = (ImageMenu)&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub btnReferesh_Click(ByVal sender As System.Object, _&lt;br /&gt;  ByVal e As System.EventArgs) Handles btnReferesh.Click&lt;br /&gt;        RefereshRec()&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub DataGrid1_CurrentCellChanged(ByVal sender As Object, _&lt;br /&gt;  ByVal e As System.EventArgs) Handles DataGrid1.CurrentCellChanged&lt;br /&gt;        RetreiveImages()&lt;br /&gt;End Sub&lt;/pre&gt;&lt;br /&gt; &lt;li&gt;Subrutin untuk menampilkan gambarnya adalah:&lt;/li&gt;&lt;br /&gt; &lt;pre&gt;Private Sub RetreiveImages()&lt;br /&gt;  Try&lt;br /&gt;    Dim MyData As Byte() = Nothing&lt;br /&gt;    Dim crPosition As Integer&lt;br /&gt;&lt;br /&gt;    crPosition = Me.BindingContext(dt).Position&lt;br /&gt;&lt;br /&gt;    If blnNew = True Then ItemPicture.Image.Dispose()&lt;br /&gt;    blnNew = True&lt;br /&gt;    MyData = CType(ds.Tables(0).Rows(crPosition)("ItemPicture"), Byte())&lt;br /&gt;&lt;br /&gt;    Dim intData As New Integer&lt;br /&gt;    intData = MyData.GetUpperBound(0)&lt;br /&gt;    Dim fs As New FileStream("c:\tempimage.jpg", _&lt;br /&gt;              FileMode.OpenOrCreate, FileAccess.Write)&lt;br /&gt;    fs.Write(MyData, 0, intData)&lt;br /&gt;    fs.Close()&lt;br /&gt;    MyData = Nothing&lt;br /&gt;    ItemPicture.Image = Image.FromFile("c:\tempimage.jpg")&lt;br /&gt;&lt;br /&gt;  Catch ex As Exception&lt;br /&gt;    '  MessageBox.Show(ex.Message.ToString)&lt;br /&gt;    Finally&lt;br /&gt;        cn.Close()&lt;br /&gt;    End Try&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub RefereshRec()&lt;br /&gt;  cmd.CommandText = "SELECT ItemsID, Item as Item, _&lt;br /&gt;      ItemPicture FROM tblPicture ORDER BY ItemsID"&lt;br /&gt;        cmd.CommandType = CommandType.Text&lt;br /&gt;     cmd.Connection = cn&lt;br /&gt;     da.SelectCommand = cmd&lt;br /&gt;     ds.Clear()&lt;br /&gt;     da.Fill(ds, "tblPicture")&lt;br /&gt;     dt = ds.Tables("tblPicture")&lt;br /&gt;&lt;br /&gt;     dgStyle.MappingName = dt.TableName&lt;br /&gt;     DataGrid1.TableStyles.Add(dgStyle)&lt;br /&gt;     dgStyle.PreferredRowHeight = 135&lt;br /&gt;     dgStyle.PreferredColumnWidth = 205&lt;br /&gt;&lt;br /&gt;     colStyle = DataGrid1.TableStyles(0).GridColumnStyles&lt;br /&gt;     DataGrid1.DataSource = dt&lt;br /&gt;     colStyle(0).Width = 150&lt;br /&gt;     colStyle(1).Width = 150&lt;br /&gt;     colStyle(2).Width = 150&lt;br /&gt;&lt;br /&gt;     dgTable = CType(DataGrid1.TableStyles(0).GridColumnStyles(2), _&lt;br /&gt;                      DataGridTextBoxColumn)&lt;br /&gt;     ItemPicture.Visible = True&lt;br /&gt;     ItemPicture.Focus()&lt;br /&gt;     dgTable.TextBox.Controls.Add(ItemPicture)&lt;br /&gt;&lt;br /&gt;     Dim dgCell As DataGridCell&lt;br /&gt;     dgCell = New DataGridCell(intRow, 2)&lt;br /&gt;     DataGrid1.CurrentCell = dgCell&lt;br /&gt;End Sub&lt;/pre&gt;&lt;br /&gt; &lt;li&gt;Tampilan yang didapatkan untuk aplikasi di atas adalah:&lt;/li&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Gp4jAV9pQtg/So5C7oibBeI/AAAAAAAAADQ/QOVBrTqv06s/s1600-h/02.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 249px;" src="http://2.bp.blogspot.com/_Gp4jAV9pQtg/So5C7oibBeI/AAAAAAAAADQ/QOVBrTqv06s/s320/02.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5372304997761091042" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-1586205757680725301?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/1586205757680725301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2009/08/vbnet-mengisi-datagrid-dengan-gambar.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/1586205757680725301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/1586205757680725301'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2009/08/vbnet-mengisi-datagrid-dengan-gambar.html' title='VB.Net – Mengisi DataGrid dengan Gambar'/><author><name>R†</name><uri>http://www.blogger.com/profile/06404935452790331980</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Gp4jAV9pQtg/TAeH2I49RQI/AAAAAAAAAL0/-wOcj-aWl2I/S220/milo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Gp4jAV9pQtg/So5CrULKioI/AAAAAAAAADI/pOXBYUX5qVc/s72-c/01.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-7848748716341943773</id><published>2009-08-19T18:44:00.000+07:00</published><updated>2009-08-19T18:54:59.310+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>PHP - Membuat Kamus Dengan PHP dan XML</title><content type='html'>&lt;b&gt;Saat ini ada banyak kamus online di Internet yang menawarkan terjemahan dari dan ke berbagai bahasa. Salah satunya adalah Google Translate yang punya kemampuan menerjemahkan bukan hanya kata tapi juga kalimat. &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Pada tip kali ini kita akan mencoba program kamus online dengan menggunakan PHP dan XML. Prinsip yang digunakan adalah meminta masukan sebuah kata, lalu membaca data tersebut dari sebuah file XML dan menampilkannya. Prinsip yang sederhana ini dapat dikembangkan untuk berbagai macam keperluan, misalnya dengan pencarian barang dari sebuah katalog, judul buku untuk perpustakaan, artikel dari sebuah koran dan sebagainya.&lt;br /&gt;&lt;br /&gt;Langkah-langkah untuk membuatnya adalah:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Kita siapkan terlebih dulu sebuah file CSS untuk menunjang tampilannya. File CSS ini dapat disimpan dengan css.css.&lt;br /&gt;&lt;pre&gt;body&lt;br /&gt;{font-family:"Lucida Sans Unicode", "Lucida Grande", Verdana, Arial, Helvetica, sans-serif;&lt;br /&gt;font-size:12px;&lt;br /&gt;color:#000000;&lt;br /&gt;}&lt;br /&gt;a{color:#0033CC;}&lt;br /&gt;h1, h2, p, form{&lt;br /&gt;border:0px;&lt;br /&gt;margin:0px;&lt;br /&gt;padding:0px;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;input{  font-family:"Lucida Sans Unicode", "Lucida Grande", Verdana,&lt;br /&gt;  Arial, Helvetica, sans-serif;&lt;br /&gt;font-size:12px;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;h2{ color:#666666;&lt;br /&gt;margin-bottom:20px;&lt;br /&gt;font-size:16px;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;div.main{&lt;br /&gt;margin:30px auto;&lt;br /&gt;width:340px;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;div.box{&lt;br /&gt;border:solid 1px #c6cfe1;&lt;br /&gt;background:#dfe4ee;&lt;br /&gt;padding:10px;&lt;br /&gt;color:#333333;&lt;br /&gt;margin-bottom:20px;&lt;br /&gt;}&lt;br /&gt;div.box h1 {&lt;br /&gt;font-size:14px;&lt;br /&gt;color:#000000;&lt;br /&gt;padding-bottom:4px;&lt;br /&gt;}&lt;br /&gt;div.box p{padding-bottom:14px;}&lt;br /&gt;&lt;br /&gt;div.box input .input-text{&lt;br /&gt;border:1px solid #3b6e22;&lt;br /&gt;color:#666666;&lt;br /&gt;width:180px;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;div.box label{&lt;br /&gt;display:block;&lt;br /&gt;margin-bottom:10px;&lt;br /&gt;color:#555555;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;div.box label span{&lt;br /&gt;display:block;&lt;br /&gt;float:left;&lt;br /&gt;padding-right:6px;&lt;br /&gt;width:70px;&lt;br /&gt;text-align:right;&lt;br /&gt;font-weight:bold;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol start="2"&gt;&lt;li&gt;Tampilan utama dari program kamus ini disimpan pada file index.html.&lt;br /&gt;&lt;pre&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml"&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;Beautiful Forms&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;link rel="stylesheet" type="text/css" href="css.css"&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;div class="main"&amp;gt;&lt;br /&gt;&amp;lt;h1&amp;gt;Kamus Online&amp;lt;/h1&amp;gt;&lt;br /&gt;&amp;lt;h2&amp;gt;Bahasa Indonesia - Inggris&amp;lt;/h2&amp;gt;&lt;br /&gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;div class="box"&amp;gt;&lt;br /&gt;&amp;lt;h1&amp;gt;Teks&amp;lt;/h1&amp;gt;&lt;br /&gt;&amp;lt;p&amp;gt;Masukkan kata dalam bahasa Indonesia&amp;lt;/p&amp;gt;&lt;br /&gt;&amp;lt;form method="post" action="php.php" style="display:inline" &amp;gt;&lt;br /&gt;&amp;lt;label&amp;gt;&amp;lt;span&amp;gt;Kata&amp;lt;/span&amp;gt;&lt;br /&gt;&amp;lt;input type="text"name="strvar" class="input-text"/&amp;gt;&lt;br /&gt;&amp;lt;/label&amp;gt;&lt;br /&gt;&amp;lt;input type="submit" value="Terjemahkan"&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol start="3"&gt;&lt;li&gt;Untuk menangani prosesnya, kita membuat file php.php yang bertugas untuk membaca file XML dan menampilkan hasil dari terjemahan yang ada.&lt;br /&gt;&lt;pre&gt;&amp;lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;link rel="stylesheet" type="text/css" href="css.css"&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;Untitled Document&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;center&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;div class="box"&amp;gt;&lt;br /&gt;&amp;lt;h1&amp;gt;Hasil dari kata:&lt;br /&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;$strvar=$_POST["strvar"];&lt;br /&gt;echo $strvar . '&amp;lt;/h1&amp;gt;';&lt;br /&gt;$strptr=simplexml_load_file("xml.xml");&lt;br /&gt;foreach($strptr -&amp;gt; dictionary_words as $fin_ptr){&lt;br /&gt;print "&amp;lt;br&amp;gt;";&lt;br /&gt;print "&amp;lt;p&amp;gt;";&lt;br /&gt;print  $fin_ptr -&amp;gt; $strvar;&lt;br /&gt;print "&amp;lt;/p&amp;gt;";&lt;br /&gt;}&lt;br /&gt;?&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/center&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol start="4"&gt;&lt;li&gt;Terakhir adalah membuat file xml.xml yang merupakan data kamus. Struktur dokumen XML yang digunakan adalah menjadikan sebuah kata sebagai element, kemudian memberikan arti pada element content. Berikut adalah contoh untuk file xml.xml yang akan dibaca oleh php.&lt;br /&gt;&lt;pre&gt;&amp;lt;?xml version="1.0" ?&amp;gt;&lt;br /&gt;&amp;lt;dictionary&amp;gt;&lt;br /&gt;&amp;lt;dictionary_words&amp;gt;&lt;br /&gt;&amp;lt;pengetahuan&amp;gt;&lt;br /&gt;erudition, knowing, knowledge, learning&lt;br /&gt;&amp;lt;/pengetahuan&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;belajar&amp;gt;&lt;br /&gt;learn, study&lt;br /&gt;&amp;lt;/belajar&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;mitigasi&amp;gt;&lt;br /&gt;To make less severe, intense, harsh, rigorous, painful, etc.; to soften; to meliorate; to alleviate; to diminish; to lessen; as, to mitigate heat or cold; to mitigate grief. 1913 Webster&lt;br /&gt;&amp;lt;/mitigasi&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/dictionary_words&amp;gt;&lt;br /&gt;&amp;lt;/dictionary&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol start="5"&gt;&lt;li&gt;Jika dijalankan pada browser, maka tampilan yang di dapatnya adalah sebagai berikut:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_aceOYK9mWV0/SovntultKPI/AAAAAAAAAS8/O7Nh7iUlJ40/s1600-h/1.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 304px;" src="http://1.bp.blogspot.com/_aceOYK9mWV0/SovntultKPI/AAAAAAAAAS8/O7Nh7iUlJ40/s320/1.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5371641753355757810" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_aceOYK9mWV0/Sovn0mLVxdI/AAAAAAAAATE/2ssdb78o7es/s1600-h/2.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 198px;" src="http://1.bp.blogspot.com/_aceOYK9mWV0/Sovn0mLVxdI/AAAAAAAAATE/2ssdb78o7es/s320/2.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5371641871356773842" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-7848748716341943773?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/7848748716341943773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2009/08/php-membuat-kamus-dengan-php-dan-xml.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/7848748716341943773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/7848748716341943773'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2009/08/php-membuat-kamus-dengan-php-dan-xml.html' title='PHP - Membuat Kamus Dengan PHP dan XML'/><author><name>Windra Swastika</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_aceOYK9mWV0/Snn406FYluI/AAAAAAAAARg/SxZqfyVaMog/S220/image.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_aceOYK9mWV0/SovntultKPI/AAAAAAAAAS8/O7Nh7iUlJ40/s72-c/1.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-644163946266673207</id><published>2009-08-17T09:55:00.000+07:00</published><updated>2009-08-17T10:10:27.429+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>PHP - Membuat Jadwal Pelajaran Dengan Class PHP</title><content type='html'>&lt;div&gt;Bulan-bulan ini merupakan tahun ajaran baru atau semester baru bagi siswa sekolah menengah ataupun mahasiswa. Tahun ajaran baru berarti jadwal pelajaran yang baru pula. Membuat jadwal pelajaran baru, tidak harus dilakukan pada selembar kertas, tapi bisa juga diupload ke sebuah server sehingga dapat diakses sewaktu-waktu.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Pada tip kali ini, kita akan membuat jadwal pelajaran dengan terlebih dulu membuat class di PHP. Dengan menggunakan sebuah class, maka akan lebih mudah untuk menerapkannya ke dalam berbagai macam jadwal pelajaran tanpa repot  memprogram ulang.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Langkah-langkah untuk membuatnya adalah:&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Kita buat terlebih dulu sebuah class yang bernama schedule.inc.php. Class ini merupakan class utama dalam pembuatan jadwal pelajaran yang diawali dengan menginisialisasikan interval waktu dan waktu awal dari jadwal.&lt;/li&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;&lt;br /&gt;function schedule_generate($classes_arr, $options) {&lt;br /&gt;// gunakan default 30 menit interval jika interval tidak ditentukan&lt;br /&gt;if ( intval($options["row_interval"]) == 0 )&lt;br /&gt;$options["row_interval"] = 30;&lt;br /&gt;&lt;br /&gt;// default Pk.08.00 sebagai awal jika start_time tidak ditentukan&lt;br /&gt;if ( ! isset($options["start_time"]) ) {&lt;br /&gt;$options["start_time"] = 800;&lt;br /&gt;} else {&lt;br /&gt;$time_hour = ($options["start_time"] –&lt;br /&gt;$options["start_time"] % 100) / 100;&lt;br /&gt;&lt;br /&gt;$time_min = $options["start_time"] % 100;&lt;br /&gt;$time_totalmins = $time_hour * 60 + $time_min;&lt;br /&gt;if ( $time_totalmins % $options["row_interval"] &gt; 0)&lt;br /&gt;$time_totalmins = $time_totalmins –&lt;br /&gt;$time_totalmins % $options["row_interval"];&lt;br /&gt;$options["start_time"] = ($time_totalmins –&lt;br /&gt;$time_totalmins % 60) / 60 * 100 +&lt;br /&gt;$time_totalmins % 60;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/ol&gt;&lt;/div&gt;&lt;ol start="2"&gt;&lt;li&gt;Kode berikutnya adalah mendefinisikan akhir dari jadwal. Jika tidak ditentukan, jadwal akan berakhir pada Pk. 22.00&lt;br /&gt;&lt;pre&gt;// default Pk. 22.00&lt;br /&gt;if ( ! isset($options["end_time"]) ) {&lt;br /&gt;$options["end_time"] = 2200;&lt;br /&gt;} else {&lt;br /&gt;// change to the nearest row interval hour down.&lt;br /&gt;$time_hour = ($options["end_time"] –&lt;br /&gt;$options["end_time"] % 100) / 100;&lt;br /&gt;$time_min = $options["end_time"] % 100;&lt;br /&gt;$time_totalmins = $time_hour * 60 + $time_min;&lt;br /&gt;&lt;br /&gt;if ( $time_totalmins % $options["row_interval"] &gt; 0)&lt;br /&gt;$time_totalmins = $time_totalmins –&lt;br /&gt;$time_totalmins % $options["row_interval"];&lt;br /&gt;$options["end_time"] = ($time_totalmins –&lt;br /&gt;$time_totalmins % 60) / 60 * 100 +&lt;br /&gt;$time_totalmins % 60;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;$days_arr = array("Minggu", "Senin",&lt;br /&gt;"Selasa", "Rabu", "Kamis",&lt;br /&gt;"Jumat", "Sabtu");&lt;br /&gt;$days_norow = array(0, 0, 0, 0, 0, 0, 0);&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol start="3"&gt;&lt;li&gt;Pembuatan tabel dilakukan berdasarkan inisialisasi yang dilakukan pada langkah sebelumnya.&lt;br /&gt;&lt;pre&gt;$html = "&amp;lt;table width=\"100%\"&lt;br /&gt;bgcolor=\"#000000\" cellspacing=\"1\"&lt;br /&gt;cellpadding=\"0\"&amp;gt;\n";&lt;br /&gt;&lt;br /&gt;// judul tabel&lt;br /&gt;if ( isset($options["title"]) ) {&lt;br /&gt;$cell_style = "background-color: #000000; color: #ffffff;";&lt;br /&gt;$cell_style .= $options["title_style"];&lt;br /&gt;&lt;br /&gt;$html .= "&amp;lt;tr&amp;gt;\n &amp;lt;th colspan=\"8\"&lt;br /&gt;style=\"$cell_style\"&amp;gt;".$options["title"].&lt;br /&gt;"&amp;lt;/th&amp;gt;\n &amp;lt;/tr&amp;gt;\n";&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;$cell_style = "background-color: #c0c0c0; color: #000000;";&lt;br /&gt;$cell_style .= $options["dayheader_style"];&lt;br /&gt;&lt;br /&gt;$html .= "&amp;lt;tr style=\"$cell_style\"&amp;gt;\n&amp;lt;th&amp;gt; &amp;lt;/th&amp;gt;\n";&lt;br /&gt;&lt;br /&gt;foreach ($days_arr as $day){&lt;br /&gt;$html .= "&amp;lt;th&amp;gt;$day&amp;lt;/th&amp;gt;\n";&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;$html .= "&amp;lt;/tr&amp;gt;\n";&lt;br /&gt;&lt;br /&gt;$cur_time = $options["start_time"];&lt;br /&gt;&lt;br /&gt;while ($cur_time &amp;lt; $options["end_time"]) {&lt;br /&gt;$format_time = date("g:ia", strtotime(substr($cur_time, 0,&lt;br /&gt;strlen($cur_time) - 2).":".substr($cur_time, -2, 2)));&lt;br /&gt;&lt;br /&gt;$cell_style = "background-color: #c0c0c0; color: #000000;";&lt;br /&gt;$cell_style .= $options["time_style"];&lt;br /&gt;&lt;br /&gt;$html .= "&amp;lt;tr bgcolor=\"#ffffff\"&amp;gt;\n&lt;br /&gt;&amp;lt;td align=\"right\" width=\"2%\"&lt;br /&gt;style=\"$cell_style\"&amp;gt;&amp;lt;b&amp;gt;$format_time&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;\n";&lt;br /&gt;&lt;br /&gt;for ($cur_day = 0; $cur_day &amp;lt; 7; $cur_day++) {&lt;br /&gt;if ($days_norow[$cur_day] &amp;gt; 0) {&lt;br /&gt;$days_norow[$cur_day]--;&lt;br /&gt;continue;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;if ( isset($classes_arr[$cur_day][$cur_time]) ) {&lt;br /&gt;$class_interval = intval($classes_arr[$cur_day]&lt;br /&gt;[$cur_time]["interval"]);&lt;br /&gt;if ( $class_interval == 0 )&lt;br /&gt;$class_interval = 60;&lt;br /&gt;// round to nearest interval&lt;br /&gt;$class_span = intval($class_interval / $options["row_interval"]);&lt;br /&gt;&lt;br /&gt;$days_norow[$cur_day] += $class_span - 1;&lt;br /&gt;if ( isset($classes_arr[$cur_day]&lt;br /&gt;[$cur_time]["style"]) )&lt;br /&gt;$cell_style = $options["class_globalstyle"].";&lt;br /&gt;".$classes_arr[$cur_day][$cur_time]["style"];&lt;br /&gt;else&lt;br /&gt;$cell_style = $options["class_globalstyle"];&lt;br /&gt;&lt;br /&gt;$html .= "&amp;lt;td width=\"14%\"&lt;br /&gt;rowspan=\"$class_span\" style=\"$cell_style\"&amp;gt;".&lt;br /&gt;$classes_arr[$cur_day][$cur_time]["html"]."&amp;lt;/td&amp;gt;\n";&lt;br /&gt;&lt;br /&gt;} else {&lt;br /&gt;$html .= "&amp;lt;td width=\"14%\"&amp;gt; &amp;lt;/td&amp;gt;\n";&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;$html .= "&amp;lt;/tr&amp;gt;\n";&lt;br /&gt;$cur_time += $options["row_interval"];&lt;br /&gt;if ($cur_time % 100 &amp;gt;= 60)&lt;br /&gt;$cur_time = $cur_time - $cur_time % 100 + 100;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;$html .= "&amp;lt;/table&amp;gt;\n";&lt;br /&gt;return $html;&lt;br /&gt;}&lt;br /&gt;?&amp;gt;&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol start="4"&gt;&lt;li&gt;Setelah class selesai dibuat, berikutnya adalah memanfaatkan class tersebut untuk membuat jadwal dalam sebuah file baru, schedule.php.&lt;/li&gt;&lt;pre&gt;&amp;lt;?php&lt;br /&gt;require 'schedule.inc.php';&lt;br /&gt;$classes_arr = array(&lt;br /&gt;1 =&amp;gt; array(&lt;br /&gt;800 =&amp;gt; array(&lt;br /&gt;"html" =&amp;gt; "&amp;lt;b&amp;gt;Konsep Sistem Informasi&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;Lab Ole",&lt;br /&gt;"style" =&amp;gt; "background-color: #66CCCC",&lt;br /&gt;"interval" =&amp;gt; 120)),&lt;br /&gt;&lt;br /&gt;3 =&amp;gt; array(&lt;br /&gt;1300 =&amp;gt; array(&lt;br /&gt;"html" =&amp;gt; "&amp;lt;b&amp;gt;Pemrograman Internet&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;Lab Krysten",&lt;br /&gt;"interval" =&amp;gt; 120))&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;$options = array(&lt;br /&gt;"title" =&amp;gt; "Jadwal Mengajar Semester Gasal 2009",&lt;br /&gt;"title_style" =&amp;gt; "font-family: verdana; font-size: 14pt;",&lt;br /&gt;"time_style" =&amp;gt; "font-family: verdana; font-size: 8pt;",&lt;br /&gt;"dayheader_style" =&amp;gt; "font-family: verdana; font-size: 10pt;",&lt;br /&gt;"class_globalstyle" =&amp;gt; "background-color: #c0c0c0;&lt;br /&gt;font-family: verdana; font-size: 8pt; text-align: center;",&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;echo schedule_generate($classes_arr, $options);&lt;br /&gt;&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;/ol&gt;&lt;ol start="5"&gt;&lt;li&gt;Berikut adalah contoh tampilan yang didapatkan:&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;img src="http://2.bp.blogspot.com/_aceOYK9mWV0/SojJqYryL4I/AAAAAAAAAS0/IOXXn-wX8co/s320/01.jpg" style="cursor:pointer; cursor:hand;width: 320px; height: 232px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5370764285657100162" /&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-644163946266673207?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/644163946266673207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2009/08/php-membuat-jadwal-pelajaran-dengan.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/644163946266673207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/644163946266673207'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2009/08/php-membuat-jadwal-pelajaran-dengan.html' title='PHP - Membuat Jadwal Pelajaran Dengan Class PHP'/><author><name>Windra Swastika</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_aceOYK9mWV0/Snn406FYluI/AAAAAAAAARg/SxZqfyVaMog/S220/image.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_aceOYK9mWV0/SojJqYryL4I/AAAAAAAAAS0/IOXXn-wX8co/s72-c/01.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-4988752527126090728</id><published>2009-08-14T07:01:00.000+07:00</published><updated>2009-08-14T07:47:04.263+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>PHP - Captcha Dengan Menggunakan Klik</title><content type='html'>&lt;b&gt;Captcha digunakan pada pengisian form untuk memastikan bahwa user yang saat itu sedang mengisi adalah manusia dan bukan mesin. Ada berbagai model captcha. Yang umum adalah captcha dengan menggunakan teks yang diberikan noise agar mesin tidak dapat membacanya. &lt;/b&gt;&lt;br /&gt;&lt;p&gt;Pada tip kali ini, kita akan membuat teknik captcha dengan klik pada teks tertentu. Dikatakan tepat jika user berhasil mengklik sesuai dengan yang diminta.&lt;/p&gt;&lt;p&gt;Langkah-langkah untuk membuatnya adalah:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Kita siapkan terlebih dulu form yang hendak ditampilkan. Simpan kode di bawah ini dengan nama form.php&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;ob_start('ob_gzhandler');&lt;br /&gt;session_start();&lt;br /&gt;if ($_POST[x]){&lt;br /&gt;$x = $_POST[x];&lt;br /&gt;$y = $_POST[y];&lt;br /&gt;$aa = round(base64_decode($_SESSION['afloat']));&lt;br /&gt;$xc[1] = ($x &gt;= 1) &amp;amp;&amp;amp; ($x &lt;= 17);     &lt;br&gt;$xc[2] = ($x &gt;= 18) &amp;amp;&amp;amp; ($x &lt;= 36);    &lt;br&gt;$xc[3] = ($x &gt;= 37) &amp;amp;&amp;amp; ($x &lt;= 53);    &lt;br&gt;    if (($y &gt;= 18) &amp;amp;&amp;amp; ($y &lt;= 35)){$ab = $aa;}  &lt;br&gt;  elseif (($y &gt;= 36) &amp;amp;&amp;amp; ($y &lt;= 51)){$ab = $aa - 3;}       &lt;br&gt;    else {$ab = $aa - 6;}   &lt;br&gt;      $mess = "Klik tidak pada posisi yang benar";    &lt;br&gt;&lt;br /&gt;&lt;br /&gt;if ($xc[$ab]){   $mess = "Tepat!"; } ?&gt;&lt;br /&gt;&lt;br /&gt;// create random image&lt;br /&gt;$_SESSION[igif] = "image_grid.php?a=" . $afloat . "";&lt;br /&gt;$_SESSION['afloat'] = $afloat;&lt;br /&gt;?&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/ol&gt;&lt;ol start="2"&gt;&lt;li&gt;Tampilan utama untuk form ini adalah sebagai berikut:&lt;br /&gt;&lt;pre&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;style type="text/css"&amp;gt;&lt;br /&gt;.cd {&lt;br /&gt;width: 54px;&lt;br /&gt;height: 69px;&lt;br /&gt;background-image: url(&amp;lt;?=$_SESSION[igif];?&amp;gt;);&lt;br /&gt;background-repeat: no-repeat;&lt;br /&gt;position: relative;&lt;br /&gt;left:&amp;lt;?=rand(-100,100);?&amp;gt;px;&lt;br /&gt;bottom:&amp;lt;?=rand(25,25);?&amp;gt;px;&lt;br /&gt;z-index: 2;&lt;br /&gt;}&lt;br /&gt;&amp;lt;/style&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script language="JavaScript"&amp;gt;&lt;br /&gt;function submitform() {&lt;br /&gt;if (document.xycoords.y.value &amp;lt;?=$aler;?&amp;gt;) {&lt;br /&gt;document.xycoords.submit();}&lt;br /&gt;else {&lt;br /&gt;alert("Klik pada angka di dalam kotak.");&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function xycoord(event) {&lt;br /&gt;imagex = event.offsetX?(event.offsetX):event.pageX-document.getElementById("coord").offsetLeft;&lt;br /&gt;document.xycoords.x.value = imagex;&lt;br /&gt;imagey = event.offsetY?(event.offsetY):event.pageY-document.getElementById("coord").offsetTop;&lt;br /&gt;document.xycoords.y.value = imagey;&lt;br /&gt;}&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;div align="center"&amp;gt;&amp;lt;form name="xycoords" action="&amp;lt;?=$_SERVER['PHP_SELF']; ?&amp;gt;" method="post"&amp;gt;&lt;br /&gt;&amp;lt;table summary="" border="0"&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&lt;br /&gt;&amp;lt;input type="hidden" name="x" /&amp;gt;&lt;br /&gt;&amp;lt;input type="hidden" name="y" /&amp;gt;&lt;br /&gt;&amp;lt;td&amp;gt;&amp;lt;font face="Verdana" size="4" color="#800000"&amp;gt;Demo Click Captcha &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;/table&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;p&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;div id="coord" class="cd" onclick="submitform(xycoord(event))"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&amp;lt;? ob_end_flush();?&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol start="3"&gt;&lt;li&gt;Proses untuk menggambar teks dan menentukan angka yang hendak di-klik dilakukan pada file image_grid.php. Pada proses ini, kita akan menyimpan image pada buffer terlebih dahulu sebelum ditampilkan.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;pre&gt;&amp;lt;?php&lt;br /&gt;ob_start('ob_gzhandler');&lt;br /&gt;session_start();&lt;br /&gt;$a = $_GET['a'];&lt;br /&gt;if ($a == $_SESSION['afloat']){&lt;br /&gt;$aa = round(base64_decode($a)) - 1;&lt;br /&gt;$im = imagecreatetruecolor (54, 69);&lt;br /&gt;$myn = array(1, 2, 3, 4, 5, 6, 7, 8, 9);&lt;br /&gt;$rn = array_rand($myn, 9);&lt;br /&gt;$string1 = "" . $myn[$rn[0]] . " " . $myn[$rn[1]] . " " .&lt;br /&gt;$myn[$rn[2]] . "";&lt;br /&gt;$string2 = "" . $myn[$rn[3]] . " " . $myn[$rn[4]] . " " .&lt;br /&gt;$myn[$rn[5]] . "";&lt;br /&gt;$string3 = "" . $myn[$rn[6]] . " " . $myn[$rn[7]] . " " .&lt;br /&gt;$myn[$rn[8]] . "";&lt;br /&gt;$mynum = "" . $string1 . " " . $string2 . " " .&lt;br /&gt;$string3 . "";&lt;br /&gt;$na = 17;&lt;br /&gt;$nb = 54;&lt;br /&gt;$nc = 0;&lt;br /&gt;$nd = 54;&lt;br /&gt;$ab = explode(" ", $mynum);&lt;br /&gt;$mystring = "Click $ab[$aa]";&lt;br /&gt;&lt;br /&gt;$change = rand(1,9);&lt;br /&gt;$lime = imagecolorallocate($im,0,255,0);&lt;br /&gt;$yellow = imagecolorallocate($im,255,255,0);&lt;br /&gt;$white = imagecolorallocate($im,255,255,255);&lt;br /&gt;$lgray = imagecolorallocate($im,206,206,206);&lt;br /&gt;$gray = imagecolorallocate($im,115,115,115);&lt;br /&gt;$black = imagecolorallocate($im,0,0,0);&lt;br /&gt;$green = imagecolorallocate($im,1,107,0);&lt;br /&gt;$grc = " $lime $yellow $white $lgray $yellow $white $gray $black $green";&lt;br /&gt;$rc = explode(" ", $grc);&lt;br /&gt;$bgc = $rc[$change];&lt;br /&gt;&lt;br /&gt;$bc = imagecolorallocate ($im, 0, 0, 0);&lt;br /&gt;$rd = imagecolorallocate ($im, 255, 0, 0);&lt;br /&gt;$wh = imagecolorallocate ($im, 255, 255, 255);&lt;br /&gt;&lt;br /&gt;if (($change &amp;gt; 3) &amp;amp;&amp;amp; ($change &amp;lt; 7)) { $bc = $rd;}&lt;br /&gt;elseif ($change &amp;gt; 6) { $bc = $wh;}&lt;br /&gt;&lt;br /&gt;imagefilledrectangle ($im, 1, 1, 54, 69, $bgc);&lt;br /&gt;imagerectangle ($im, 0, 0, 53, 68, $bc);&lt;br /&gt;for($i=$na;$i&amp;lt;=$nb;$i+=19)&lt;br /&gt;imageline($im,$i,17,$i,69,$bc);&lt;br /&gt;for($i=$na;$i&amp;lt;=$nb;$i+=17)&lt;br /&gt;imageline($im,0,$i,54,$i,$bc);&lt;br /&gt;&lt;br /&gt;imagestring ( $im, 9, 5, 18,$string1, $bc);&lt;br /&gt;imagestring ( $im, 9, 5, 35,$string2, $bc);&lt;br /&gt;imagestring ( $im, 9, 5, 52,$string3, $bc);&lt;br /&gt;imagestring ($im, 3, 2, 3, "$mystring", $bc);&lt;br /&gt;&lt;br /&gt;header("Content-Type: image/gif");&lt;br /&gt;imagegif($im);&lt;br /&gt;imagedestroy($im);&lt;br /&gt;}&lt;br /&gt;ob_end_flush();&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;/ol&gt;&lt;ol start="4"&gt;&lt;li&gt;Berikut adalah beberapa contoh tampilan yang didapatkan:&lt;br /&gt;&lt;img src="http://2.bp.blogspot.com/_aceOYK9mWV0/SoSrYJCviWI/AAAAAAAAASk/QXWh0wv3Kcs/s320/01.jpg" style="cursor:pointer; cursor:hand;width: 284px; height: 320px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5369605086965107042" /&gt;&lt;img src="http://1.bp.blogspot.com/_aceOYK9mWV0/SoSrqoHUrvI/AAAAAAAAASs/JXJ88Z3Hl8M/s320/02.jpg" style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 284px; height: 320px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5369605404543463154" /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-4988752527126090728?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/4988752527126090728/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2009/08/php-captcha-dengan-menggunakan-klik.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/4988752527126090728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/4988752527126090728'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2009/08/php-captcha-dengan-menggunakan-klik.html' title='PHP - Captcha Dengan Menggunakan Klik'/><author><name>Windra Swastika</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_aceOYK9mWV0/Snn406FYluI/AAAAAAAAARg/SxZqfyVaMog/S220/image.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_aceOYK9mWV0/SoSrYJCviWI/AAAAAAAAASk/QXWh0wv3Kcs/s72-c/01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-3184183333381081195</id><published>2009-08-12T20:55:00.000+07:00</published><updated>2009-08-12T21:08:29.570+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><title type='text'>CSS – Membuat Style Image Caption</title><content type='html'>&lt;b&gt;Standardnya, HTML tidak menyediakan sebuah tag khusus untuk memberikan caption (judul) pada suatu image. Namun dapat diakali dengan menggunakan tabel, yaitu meletakkan caption tersebut pada baris di bawah image. Cara lain adalah membuat tag sendiri dengan menggunakan CSS.&lt;/b&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Tip kali ini adalah membuat class di CSS yang memungkinkan untuk memberikan caption pada suatu image. Agar lebih menarik, maka caption akan muncul ketika cursor mouse masuk dalam area image.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Langkah-langkah untuk membuatnya adalah sebagai berikut:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Buat terlebih dulu CSS dalam sebuah file bernama caption.css. Kita definisikan untuk tag-tag yang umum, yaitu html dan body&lt;/li&gt;&lt;pre&gt;html {&lt;br /&gt;max-height:100%;&lt;br /&gt;padding:0;&lt;br /&gt;margin:0;&lt;br /&gt;border:0;&lt;br /&gt;font-family: sans-serif;&lt;br /&gt;overflow:hidden;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;body {&lt;br /&gt;height:100%;&lt;br /&gt;max-height:100%;&lt;br /&gt;overflow:auto;&lt;br /&gt;padding:0;&lt;br /&gt;margin:0;&lt;br /&gt;border:0;&lt;br /&gt;background-color: transparent;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/ol&gt;&lt;ol start="2"&gt;&lt;li&gt;Untuk menambahkan caption kita membuat sebuah class imgteaser yang secara default adalah hidden. Ketika mouse ada pada area image, maka caption akan ditampilkan.&lt;br /&gt;&lt;pre&gt;#content {&lt;br /&gt;position: absolute;&lt;br /&gt;top:90px;&lt;br /&gt;left:0;&lt;br /&gt;bottom:30px;&lt;br /&gt;right:0;&lt;br /&gt;overflow:auto;&lt;br /&gt;padding:10px;&lt;br /&gt;text-align:left;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;.imgteaser {&lt;br /&gt;margin: 5px;&lt;br /&gt;overflow: hidden;&lt;br /&gt;float: left;&lt;br /&gt;position: relative;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;.imgteaser a {&lt;br /&gt;text-decoration: none;&lt;br /&gt;float: left;&lt;br /&gt;position: relative;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;.imgteaser a:hover {&lt;br /&gt;cursor: pointer;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;.imgteaser a .more {&lt;br /&gt;position: absolute;&lt;br /&gt;right: 0px;&lt;br /&gt;bottom: 0px;&lt;br /&gt;font-size: 10pt;&lt;br /&gt;color: #fff;&lt;br /&gt;background: #000;&lt;br /&gt;padding: 0px;&lt;br /&gt;filter:alpha(opacity=65);&lt;br /&gt;opacity:.65;&lt;br /&gt;-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=65)";&lt;br /&gt;}&lt;br /&gt;.imgteaser a:hover .desc{&lt;br /&gt;display: block;&lt;br /&gt;font-size: 10pt;&lt;br /&gt;padding: 0;&lt;br /&gt;background: #111;&lt;br /&gt;filter:alpha(opacity=100);&lt;br /&gt;opacity:1;&lt;br /&gt;-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";&lt;br /&gt;color: #fff;&lt;br /&gt;position: absolute;&lt;br /&gt;bottom: 0px;&lt;br /&gt;left: 0px;&lt;br /&gt;padding: 10px;&lt;br /&gt;margin: 0;&lt;br /&gt;width: 180px;&lt;br /&gt;border-top: 1px solid #999;&lt;br /&gt;text-align: left;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;.imgteaser a:hover .desc strong {&lt;br /&gt;display: block;&lt;br /&gt;margin-bottom: 0px;&lt;br /&gt;font-size:10pt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;.imgteaser a {&lt;br /&gt;text-align: right;&lt;br /&gt;}&lt;br /&gt;.imgteaser a .desc {display: none; }&lt;br /&gt;.imgteaser a:hover .more { visibility: hidden;}&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol start="3"&gt;&lt;li&gt;Untuk mencoba CSS di atas, kita buat sebuah file HTML bernama caption.html yang akan menggunakan file caption.css yang telah dibuat.&lt;br /&gt;&lt;pre&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;Image Caption&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;link rel="STYLESHEET" type="text/css"&lt;br /&gt;href="caption.css" media="screen"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;div class="imgteaser"&amp;gt;&lt;br /&gt;&amp;lt;a href="#"&amp;gt;&lt;br /&gt;&amp;lt;img src="gitgit.jpg" alt="Air Terjun Gitgit" /&amp;gt;&lt;br /&gt;&amp;lt;span class="more"&amp;gt;» Keterangan&amp;lt;/span&amp;gt;&lt;br /&gt;&amp;lt;span class="desc"&amp;gt;&lt;br /&gt;&amp;lt;strong&amp;gt;&amp;lt;u&amp;gt;Air Terjun Gitgit&amp;lt;/u&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;Menjadi salah satu tujuan&lt;br /&gt;  wisata di daerah Bali Utara.&lt;br /&gt;  Terletak 9 Km dari Kota Singaraja.&lt;br /&gt;&amp;lt;/span&amp;gt;&lt;br /&gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;div class="imgteaser"&amp;gt;&lt;br /&gt;&amp;lt;a href="#"&amp;gt;&lt;br /&gt;&amp;lt;img src="lovina.jpg" alt="Lovina Beach" /&amp;gt;&lt;br /&gt;&amp;lt;span class="more"&amp;gt;» Keterangan&amp;lt;/span&amp;gt;&lt;br /&gt;&amp;lt;span class="desc"&amp;gt;&lt;br /&gt;&amp;lt;strong&amp;gt;&amp;lt;u&amp;gt;Pantai Lovina&amp;lt;/u&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;  Terletak sekitar 9 Km sebelah barat kota Singaraja,&lt;br /&gt;  ini merupakan salah satu obyek wisata yang&lt;br /&gt;  ada di Bali Utara.&lt;br /&gt;&amp;lt;/span&amp;gt;&lt;br /&gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol start="4"&gt;&lt;li&gt;Tampilan pada browser adalah sebagai berikut:&lt;br /&gt;&lt;/li&gt;&lt;img src="http://4.bp.blogspot.com/_aceOYK9mWV0/SoLL3EiHPmI/AAAAAAAAASc/OvPJlF-_Wlk/s320/01.jpg" style="cursor:pointer; cursor:hand;width: 320px; height: 296px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5369077852749119074" /&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-3184183333381081195?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/3184183333381081195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2009/08/css-membuat-style-image-caption.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/3184183333381081195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/3184183333381081195'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2009/08/css-membuat-style-image-caption.html' title='CSS – Membuat Style Image Caption'/><author><name>Windra Swastika</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_aceOYK9mWV0/Snn406FYluI/AAAAAAAAARg/SxZqfyVaMog/S220/image.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_aceOYK9mWV0/SoLL3EiHPmI/AAAAAAAAASc/OvPJlF-_Wlk/s72-c/01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-831685793355588703</id><published>2009-08-12T20:40:00.000+07:00</published><updated>2009-08-12T20:54:18.885+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.Net'/><title type='text'>VB.Net – Membuat Magnifier</title><content type='html'>&lt;div&gt;&lt;b&gt;Magnifier merupakan salah satu fasilitas dari Windows yang dapat digunakan untuk memperbesar suatu area. Tujuannya adalah membuat teks dapat lebih terbaca terutama bagi yang mengalami gangguan pengelihatan.&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Pada tip kali ini, dengan vb.net kita akan membuat magnifier yang dilengkapi dengan skala perbesaran yang dapat ditentukan sendiri dengan menggunakan scrollbar.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Langkah-langkah untuk membuatnya adalah:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Buat sebuah form dengan dengan 3 buah komponen, yaitu timer yang diberi nama tmrRepaint, Statusbar dengan nama stbMagnifier dan VScrollBar yang diberi nama vsbMagnifier. Untuk VScrollBar, agar diletakkan pada sisi kanan, kita ubah property Dock dari none menjadi Right. Demikian juga untuk Timer, property Enabled di-set menjadi True dengan Interval 100.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;img src="http://2.bp.blogspot.com/_aceOYK9mWV0/SoLHhdWsarI/AAAAAAAAASM/mxT8xtPZh-0/s320/01.jpg" style="cursor:pointer; cursor:hand;width: 306px; height: 279px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5369073083408476850" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;ol start="2"&gt;&lt;li&gt;Deklarasi awal untuk project ini adalah sebagai berikut:&lt;/li&gt;&lt;pre&gt;&lt;br /&gt;Public Class Form1&lt;br /&gt;&lt;br /&gt;Inherits System.Windows.Forms.Form&lt;br /&gt;&lt;br /&gt;Public Const BLACKNESS = &amp;amp;H42&lt;br /&gt;Public Const DSTINVERT = &amp;amp;H550009&lt;br /&gt;Public Const CAPTUREBLT = &amp;amp;H40000000&lt;br /&gt;Public Const MERGECOPY = &amp;amp;HC000CA&lt;br /&gt;Public Const MERGEPAINT = &amp;amp;HBB0226&lt;br /&gt;Public Const NOMIRRORBITMAP = &amp;amp;H80000000&lt;br /&gt;Public Const NOTSRCCOPY = &amp;amp;H330008&lt;br /&gt;Public Const NOTSRCERASE = &amp;amp;H1100A6&lt;br /&gt;Public Const PATCOPY = &amp;amp;HF00021&lt;br /&gt;Public Const PATINVERT = &amp;amp;H5A0049&lt;br /&gt;Public Const PATPAINT = &amp;amp;HFB0A09&lt;br /&gt;Public Const SRCCOPY = &amp;amp;HCC0020&lt;br /&gt;Public Const SRCAND = &amp;amp;H8800C6&lt;br /&gt;Public Const SRCERASE = &amp;amp;H440328&lt;br /&gt;Public Const SRCINVERT = &amp;amp;H660046&lt;br /&gt;Public Const SRCPAINT = &amp;amp;HEE0086&lt;br /&gt;Public Const WHITENESS = &amp;amp;HFF0062&lt;br /&gt;&lt;br /&gt;Public Declare Function BitBlt _&lt;br /&gt;Lib "gdi32" Alias "BitBlt" _&lt;br /&gt;(ByVal hDestDC As Integer, _&lt;br /&gt;ByVal x As Integer, _&lt;br /&gt;ByVal y As Integer, _&lt;br /&gt;ByVal nWidth As Integer, _&lt;br /&gt;ByVal nHeight As Integer, _&lt;br /&gt;ByVal hSrcDC As Integer, _&lt;br /&gt;ByVal xSrc As Integer, _&lt;br /&gt;ByVal ySrc As Integer, _&lt;br /&gt;ByVal dwRop As Integer) As Integer&lt;br /&gt;&lt;br /&gt;Public Declare Function GetDesktopWindow _&lt;br /&gt;Lib "user32" () As IntPtr&lt;br /&gt;&lt;br /&gt;Public Declare Function GetDC _&lt;br /&gt;Lib "user32.dll" (ByVal hWnd As IntPtr) _&lt;br /&gt;As IntPtr&lt;br /&gt;&lt;br /&gt;Public Declare Function ReleaseDC _&lt;br /&gt;Lib "user32" (ByVal hwnd As Integer, _&lt;br /&gt;ByVal hdc As Integer) As Integer&lt;br /&gt;&lt;br /&gt;Dim GrayscaleMatrix As Imaging.ColorMatrix = _&lt;br /&gt;New Imaging.ColorMatrix(New Single()() _&lt;br /&gt;       {New Single() {0.3, 0.3, 0.3, 0, 0}, _&lt;br /&gt;        New Single() {0.59, 0.59, 0.59, 0, 0}, _&lt;br /&gt;        New Single() {0.11, 0.11, 0.11, 0, 0}, _&lt;br /&gt;        New Single() {0, 0, 0, 1, 0}, _&lt;br /&gt;        New Single() {0, 0, 0, 0, 1}})&lt;br /&gt;&lt;br /&gt;Dim ImageAttributes As New Imaging.ImageAttributes&lt;br /&gt;&lt;/pre&gt;&lt;/ol&gt;&lt;ol start="3"&gt;&lt;li&gt;Untuk event yang dicegat ada 2, yaitu Form_Load dan tmrRepaint yang akan melakukan refresh dalam interval waktu 0.1 detik.&lt;/li&gt;&lt;pre&gt;Private Sub Form1_Load(ByVal sender As System.Object, _&lt;br /&gt;ByVal e As System.EventArgs) Handles MyBase.Load&lt;br /&gt;&lt;br /&gt;ImageAttributes.SetColorMatrix(GrayscaleMatrix)&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub tmrRepaint_Tick(ByVal sender As System.Object, _&lt;br /&gt;ByVal e As System.EventArgs) _&lt;br /&gt;Handles tmrRepaint.Tick&lt;br /&gt;&lt;br /&gt;RepaintMagnifier()&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/ol&gt;&lt;ol start="4"&gt;&lt;li&gt;Fungsi utama pada aplikasi magnifier ini adalah sub RepaintMagnifier. Pada sub ini, kita menjadikan form sebagai objek yang direferensikan pada objek Graphics, sehingga pada form dapat dilakukan pengolahan grafis (menampilkan bitmap).&lt;/li&gt;&lt;pre&gt;Private Sub RepaintMagnifier()&lt;br /&gt;Dim e As Graphics = Me.CreateGraphics&lt;br /&gt;Dim hr As Integer = Screen.PrimaryScreen.Bounds.Width&lt;br /&gt;Dim vr As Integer = Screen.PrimaryScreen.Bounds.Height&lt;br /&gt;&lt;br /&gt;   'Persentase zoom&lt;br /&gt;Dim percent As Single = Me.vsbMagnifier.Value / 100&lt;br /&gt;Dim lengthX As Single = (Me.Width - Me.vsbMagnifier.Width) * percent&lt;br /&gt;Dim lengthY As Single = (Me.Height - Me.stbMagnifier.Height) * percent&lt;br /&gt;&lt;br /&gt;   'Tulis faktor zoom ke statusbar&lt;br /&gt;Me.stbMagnifier.Text = _&lt;br /&gt;"Zoom Factor : " &amp;amp; _&lt;br /&gt;100 - Me.vsbMagnifier.Value &amp;amp; " X"&lt;br /&gt;&lt;br /&gt;Dim offsetX As Single = lengthX \ 2&lt;br /&gt;Dim offsetY As Single = lengthY \ 2&lt;br /&gt;&lt;br /&gt;Dim blitAreaX As Integer = Me.Width - Me.vsbMagnifier.Width&lt;br /&gt;Dim blitAreaY As Integer = Me.Height - Me.stbMagnifier.Height&lt;br /&gt;&lt;br /&gt;Dim b As New Bitmap(CInt(blitAreaX), CInt(blitAreaY))&lt;br /&gt;Dim g As Graphics = Graphics.FromImage(b)&lt;br /&gt;&lt;br /&gt;g.SmoothingMode = Drawing2D.SmoothingMode.HighSpeed&lt;br /&gt;g.CompositingQuality = Drawing2D.CompositingQuality.HighSpeed&lt;br /&gt;g.PixelOffsetMode = Drawing2D.PixelOffsetMode.HighSpeed&lt;br /&gt;g.InterpolationMode = Drawing2D.InterpolationMode.Low&lt;br /&gt;&lt;br /&gt;e.SmoothingMode = Drawing2D.SmoothingMode.HighSpeed&lt;br /&gt;e.CompositingQuality = Drawing2D.CompositingQuality.HighSpeed&lt;br /&gt;e.PixelOffsetMode = Drawing2D.PixelOffsetMode.HighSpeed&lt;br /&gt;e.InterpolationMode = Drawing2D.InterpolationMode.Low&lt;br /&gt;&lt;br /&gt;Dim hWndWindow As IntPtr = GetDesktopWindow()&lt;br /&gt;Dim hdcWindow As IntPtr = GetDC(hWndWindow)&lt;br /&gt;Dim hdcGraphics As IntPtr = g.GetHdc()&lt;br /&gt;&lt;br /&gt;BitBlt(hdcGraphics.ToInt32, _&lt;br /&gt;0, 0, blitAreaX, blitAreaY, _&lt;br /&gt;hdcWindow.ToInt32, _&lt;br /&gt;Cursor.Current.Position.X - offsetX, _&lt;br /&gt;Cursor.Current.Position.Y - offsetY, _&lt;br /&gt;SRCCOPY Or CAPTUREBLT Or NOMIRRORBITMAP)&lt;br /&gt;&lt;br /&gt;ReleaseDC(hWndWindow.ToInt32, hdcWindow.ToInt32)&lt;br /&gt;g.ReleaseHdc(hdcGraphics)&lt;br /&gt;&lt;br /&gt;e.DrawImage(b, New Rectangle(0, 0, _&lt;br /&gt;blitAreaX, blitAreaY), 0, 0, lengthX, _&lt;br /&gt;lengthY, GraphicsUnit.Pixel)&lt;br /&gt;&lt;br /&gt;   e.Dispose()&lt;br /&gt;End Sub&lt;br /&gt;End Class&lt;br /&gt;&lt;/pre&gt;&lt;/ol&gt;&lt;ol start="5"&gt;&lt;li&gt;Tampilan program ini saat dijalankan adalah sebagai berikut:&lt;/li&gt;&lt;img src="http://4.bp.blogspot.com/_aceOYK9mWV0/SoLJJoMtkwI/AAAAAAAAASU/AyC2b18FlM4/s320/02.jpg" style="cursor:pointer; cursor:hand;width: 250px; height: 320px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5369074873025794818" /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-831685793355588703?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/831685793355588703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2009/08/vbnet-membuat-magnifier.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/831685793355588703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/831685793355588703'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2009/08/vbnet-membuat-magnifier.html' title='VB.Net – Membuat Magnifier'/><author><name>Windra Swastika</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_aceOYK9mWV0/Snn406FYluI/AAAAAAAAARg/SxZqfyVaMog/S220/image.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_aceOYK9mWV0/SoLHhdWsarI/AAAAAAAAASM/mxT8xtPZh-0/s72-c/01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-4776957698093932024</id><published>2009-08-03T12:49:00.000+07:00</published><updated>2009-08-12T11:05:31.785+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.Net'/><title type='text'>VB.Net – Aplikasi Drag-Drop Menggunakan TreeView</title><content type='html'>&lt;p class="abstract"&gt;TreeView merupakan sebuah control yang umum digunakan saat membuat aplikasi yang membutuhkan hirarki tertentu. Seringkali, aplikasi dengan hirarki membutuhkan drag-drop untuk memudahkan pengaturan hirarki. Aplikasi kali ini adalah menerapkan drag-drop pada control TreeView.&lt;/p&gt;&lt;br /&gt;&lt;div&gt;Langkah-langkah untuk membuatnya adalah:&lt;/div&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Buat New Project (Windows Application) dengan sebuah form baru yang dua buah Treeview yang masing-masing bernama TreeView1 dan TreeView2&lt;/li&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Gp4jAV9pQtg/SnZ64wth0KI/AAAAAAAAACs/G46H2ot09h8/s1600-h/01.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 258px;" src="http://1.bp.blogspot.com/_Gp4jAV9pQtg/SnZ64wth0KI/AAAAAAAAACs/G46H2ot09h8/s320/01.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5365611121625649314" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;li&gt;Inisialisasi awal untuk Event Form1_Load adalah dengan memberikan node secara acak pada masing-masing TreeView. Untuk menambahkan node dibutuhkan suatu subruin yang bernama AddRandomNodes.&lt;/li&gt;&lt;br /&gt;&lt;pre&gt;Public Class Form1&lt;br /&gt;Inherits System.Windows.Forms.Form&lt;br /&gt;&lt;br /&gt;Private Sub Form1_Load(ByVal sender As System.Object, _&lt;br /&gt;    ByVal e As System.EventArgs) Handles MyBase.Load&lt;/pre&gt;&lt;pre&gt;&lt;br /&gt;   'Allow the TreeViews to be the target of a DragDrop operation&lt;br /&gt;   'and populate it with some random TreeNodes for the example&lt;br /&gt;   TreeView1.AllowDrop = True&lt;br /&gt;   TreeView2.AllowDrop = True&lt;br /&gt;   TreeView1.HideSelection = False&lt;br /&gt;   TreeView2.HideSelection = False&lt;br /&gt;   AddRandomNodes(TreeView1)&lt;br /&gt;   AddRandomNodes(TreeView2)&lt;br /&gt;&lt;br /&gt;End Sub&lt;/pre&gt;&lt;br /&gt;&lt;li&gt;Untuk subrutin AddRandomNodes, kode-nya adalah:&lt;/li&gt;&lt;br /&gt;&lt;pre&gt;Dim nodeCounter As Integer = 1&lt;br /&gt;&lt;br /&gt;Private Sub AddRandomNodes(ByVal treeView As TreeView)&lt;br /&gt;   Randomize()&lt;br /&gt;&lt;br /&gt;   treeView.BeginUpdate()&lt;br /&gt;   For i As Integer = 0 To CInt(Rnd() * 5)&lt;br /&gt;       Dim rootNode As New TreeNode("Node " &amp;amp; nodeCounter.ToString)&lt;br /&gt;       treeView.Nodes.Add(rootNode)&lt;br /&gt;       nodeCounter += 1&lt;br /&gt;       AddRandomNodes(rootNode)&lt;br /&gt;   Next&lt;br /&gt;   treeView.EndUpdate()&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub AddRandomNodes(ByVal parentNode As TreeNode)&lt;br /&gt;   Dim parents() As String = parentNode.FullPath.Split("\"c)&lt;br /&gt;   If parents.Length = 5 Then Exit Sub&lt;br /&gt;&lt;br /&gt;   For i As Integer = 0 To CInt(Rnd() * 5)&lt;br /&gt;       Dim newNode As New TreeNode("Node " &amp;amp; nodeCounter.ToString)&lt;br /&gt;       nodeCounter += 1&lt;br /&gt;       parentNode.Nodes.Add(newNode)&lt;br /&gt;       AddRandomNodes(newNode)&lt;br /&gt;   Next&lt;br /&gt;&lt;br /&gt;End Sub&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Event-event yang perlu dicegat untuk TreeView adalah:&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Public Sub TreeView1_ItemDrag(ByVal sender As System.Object, _&lt;br /&gt;  ByVal e As System.Windows.Forms.ItemDragEventArgs) Handles _&lt;br /&gt;  TreeView1.ItemDrag, TreeView2.ItemDrag&lt;br /&gt;&lt;br /&gt;   DoDragDrop(e.Item, DragDropEffects.Move)&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Public Sub TreeView1_DragEnter(ByVal sender As System.Object, _&lt;br /&gt;    ByVal e As System.Windows.Forms.DragEventArgs) Handles _&lt;br /&gt;    TreeView1.DragEnter, TreeView2.DragEnter&lt;br /&gt;&lt;br /&gt;   'Apakah ada treenode yang di-drag?&lt;br /&gt;   If e.Data.GetDataPresent("System.Windows.Forms.TreeNode", True) Then&lt;br /&gt;       'Ada treenode&lt;br /&gt;       e.Effect = DragDropEffects.Move&lt;br /&gt;   Else&lt;br /&gt;       'Tidak ditemukan treenode&lt;br /&gt;       e.Effect = DragDropEffects.None&lt;br /&gt;   End If&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Public Sub TreeView1_DragOver(ByVal sender As System.Object, _&lt;br /&gt;     ByVal e As DragEventArgs) Handles TreeView1.DragOver, _&lt;br /&gt;     TreeView2.DragOver&lt;br /&gt;&lt;br /&gt;   'Apa ada treenode yang di-drag&lt;br /&gt;   If e.Data.GetDataPresent("System.Windows.Forms.TreeNode", _&lt;br /&gt;  True) = False Then Exit Sub&lt;br /&gt;&lt;br /&gt;   Dim selectedTreeview As TreeView = CType(sender, TreeView)&lt;br /&gt;&lt;br /&gt;   Dim pt As Point = CType(sender, TreeView).PointToClient(New Point(e.X, e.Y))&lt;br /&gt;   Dim targetNode As TreeNode = selectedTreeview.GetNodeAt(pt)&lt;br /&gt;&lt;br /&gt;   If Not (selectedTreeview Is targetNode) Then&lt;br /&gt;       selectedTreeview.SelectedNode = targetNode&lt;br /&gt;&lt;br /&gt;       Dim dropNode As TreeNode = CType(e.Data.GetData("System.Windows.Forms.TreeNode"), _&lt;br /&gt;            TreeNode)&lt;br /&gt;       Do Until targetNode Is Nothing&lt;br /&gt;           If targetNode Is dropNode Then&lt;br /&gt;               e.Effect = DragDropEffects.None&lt;br /&gt;               Exit Sub&lt;br /&gt;           End If&lt;br /&gt;           targetNode = targetNode.Parent&lt;br /&gt;       Loop&lt;br /&gt;   End If&lt;br /&gt;&lt;br /&gt;   e.Effect = DragDropEffects.Move&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Public Sub TreeView1_DragDrop(ByVal sender As System.Object, _&lt;br /&gt;    ByVal e As System.Windows.Forms.DragEventArgs) Handles _&lt;br /&gt;    TreeView1.DragDrop, TreeView2.DragDrop&lt;br /&gt;&lt;br /&gt;   'Apa ada treenode yang di-drag?&lt;br /&gt;   If e.Data.GetDataPresent("System.Windows.Forms.TreeNode", _&lt;br /&gt; True) = False Then Exit Sub&lt;br /&gt;&lt;br /&gt;   Dim selectedTreeview As TreeView = CType(sender, TreeView)&lt;br /&gt;&lt;br /&gt;   Dim dropNode As TreeNode = CType(e.Data.GetData("System.Windows.Forms.TreeNode"),_&lt;br /&gt;  TreeNode)&lt;br /&gt;&lt;br /&gt;   Dim targetNode As TreeNode = selectedTreeview.SelectedNode&lt;br /&gt;&lt;br /&gt;   'Remove node yang di-drop dari tempat asal&lt;br /&gt;   dropNode.Remove()&lt;br /&gt;&lt;br /&gt;   If targetNode Is Nothing Then&lt;br /&gt;       selectedTreeview.Nodes.Add(dropNode)&lt;br /&gt;   Else&lt;br /&gt;       targetNode.Nodes.Add(dropNode)&lt;br /&gt;   End If&lt;br /&gt;&lt;br /&gt;   dropNode.EnsureVisible()&lt;br /&gt;   selectedTreeview.SelectedNode = dropNode&lt;br /&gt;&lt;br /&gt;End Sub&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Tampilan yang didapatkan untuk aplikasi di atas adalah:&lt;/li&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Gp4jAV9pQtg/SnZ7DjBe2vI/AAAAAAAAAC0/pd2wU5CBP3g/s1600-h/02.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 253px;" src="http://1.bp.blogspot.com/_Gp4jAV9pQtg/SnZ7DjBe2vI/AAAAAAAAAC0/pd2wU5CBP3g/s320/02.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5365611306929806066" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;li&gt;Setelah dipindahkan dengan drag-drop maka hasilnya adalah:&lt;/li&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Gp4jAV9pQtg/SnZ7LvuPsLI/AAAAAAAAAC8/0U7HgEaQnhA/s1600-h/03.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 235px;" src="http://2.bp.blogspot.com/_Gp4jAV9pQtg/SnZ7LvuPsLI/AAAAAAAAAC8/0U7HgEaQnhA/s320/03.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5365611447777734834" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-4776957698093932024?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/4776957698093932024/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2009/08/vbnet-aplikasi-drag-drop-menggunakan.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/4776957698093932024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/4776957698093932024'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2009/08/vbnet-aplikasi-drag-drop-menggunakan.html' title='VB.Net – Aplikasi Drag-Drop Menggunakan TreeView'/><author><name>R†</name><uri>http://www.blogger.com/profile/06404935452790331980</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Gp4jAV9pQtg/TAeH2I49RQI/AAAAAAAAAL0/-wOcj-aWl2I/S220/milo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Gp4jAV9pQtg/SnZ64wth0KI/AAAAAAAAACs/G46H2ot09h8/s72-c/01.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-7154184877785931936</id><published>2009-07-23T11:50:00.000+07:00</published><updated>2009-08-07T08:03:24.102+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.Net'/><title type='text'>VB.Net – Mendapatkan Informasi File</title><content type='html'>&lt;p class="abstract"&gt;Ketika kita melihat property suatu file melalui Windows, kita bisa mendapatkan informasi seperti tipe file, dapat diedit/dibuka dengan program apa, lokasi, ukuran, dibuat dan dimodifikasi tanggal berapa, serta atribut file. Pada tip kali ini, kita akan membuat suatu aplikasi yang dapat menampilkan informasi file yang dilengkapi dengan CRC32, MD5 Hash, short name serta short path yang biasanya dibutuhkan ketika kita melakukan pengaksesan menggunakan program-program yang tidak mendukung long-file-name.&lt;/p&gt;&lt;br /&gt;&lt;div&gt;Langkah-langkah untuk membuatnya adalah:&lt;/div&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt; &lt;li&gt;Buat New Project (Windows Application) 2 buah group box. Group box pertama berisi:&lt;/li&gt;&lt;br /&gt; &lt;ul&gt;&lt;br /&gt;  &lt;li&gt;Command button dengan caption "Select file" yang nantinya digunakan untuk memilih file yang hendak didapatkan informasinya.&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;Text box dengan nama Textbox1. Text box ini untuk menampung nama file yang hendak didapatkan informasinya.&lt;/li&gt;&lt;br /&gt; &lt;/ul&gt;&lt;br /&gt; Group box kedua berisi:&lt;br /&gt; &lt;ul&gt;&lt;br /&gt;  &lt;li&gt;Group box dengan caption Advanced Information dengan sebuah text box bernama Label1. Label1 ini nantinya digunakan untuk menampilkan berbagai informasi dari file.&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;Group box dengan caption HASH dengan dua buah label yang bernama Label2 dan Label3, masing-masing digunakan untuk menampilkan CRC32 dan MD5 Hash.&lt;/li&gt;&lt;br /&gt; &lt;/ul&gt;&lt;br /&gt; Terakhir adalah sebuah button untuk keluar dari program yang bernama Button2.&lt;br/&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Gp4jAV9pQtg/SnFN61mhruI/AAAAAAAAACc/1RL2Db3WOLs/s1600-h/01.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 298px;" src="http://4.bp.blogspot.com/_Gp4jAV9pQtg/SnFN61mhruI/AAAAAAAAACc/1RL2Db3WOLs/s320/01.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5364154304391392994" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;li&gt;Deklarasi yang diperlukan dalam membuat aplikasi ini adalah sebagai berikut:&lt;/li&gt;&lt;br /&gt; &lt;pre&gt;Public Class Form1&lt;br /&gt;&lt;br /&gt;Imports System.IO&lt;br /&gt;Imports System.Security.Cryptography&lt;br /&gt;Imports System.Text&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt; &lt;li&gt;Berikutnya adalah sub rutin untuk mencegat event pengklikan button1. &lt;/li&gt;&lt;br /&gt; &lt;pre&gt;    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click&lt;br /&gt;&lt;br /&gt;        Dim o As OpenFileDialog = New OpenFileDialog&lt;br /&gt;        o.Filter = "All Files (*.*)|*.*"&lt;br /&gt;        If (o.ShowDialog() = DialogResult.OK) Then&lt;br /&gt;            TextBox1.Text = o.FileName&lt;br /&gt;        End If&lt;br /&gt;        '===============================================&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        Dim c As New CRC32&lt;br /&gt;        Dim crc As Integer = 0&lt;br /&gt;        Dim f As FileStream = New FileStream(TextBox1.Text, FileMode.Open, FileAccess.Read, FileShare.Read, 8192)&lt;br /&gt;        crc = c.GetCrc32(f)&lt;br /&gt;        f.Close()&lt;br /&gt;&lt;br /&gt;        f = New FileStream(TextBox1.Text, FileMode.Open, FileAccess.Read, FileShare.Read, 8192)&lt;br /&gt;        Dim md5 As MD5CryptoServiceProvider = New MD5CryptoServiceProvider&lt;br /&gt;        md5.ComputeHash(f)&lt;br /&gt;        f.Close()&lt;br /&gt;&lt;br /&gt;        'mendapatkan informasi file &lt;br /&gt;        Dim chemin As String = TextBox1.Text&lt;br /&gt;        Dim ObjFSO As Object = CreateObject("Scripting.FileSystemObject")&lt;br /&gt;        Dim objFile = ObjFSO.GetFile(TextBox1.Text)&lt;br /&gt;&lt;br /&gt;        Label1.Text = "Name : " &amp; objFile.Name &amp; vbCrLf&lt;br /&gt;        Label1.Text += "Size : " &amp; (objFile.Size) &amp; " (" &amp; (objFile.Size) \ 1048576 &amp; " MB)" &amp; vbCrLf&lt;br /&gt;        Label1.Text += "File Version : " &amp; ObjFSO.GetFileVersion(TextBox1.Text) &amp; vbCrLf&lt;br /&gt;        Label1.Text += "Date created : " &amp; objFile.DateCreated &amp; vbCrLf&lt;br /&gt;        Label1.Text += "Date last accessed : " &amp; objFile.DateLastAccessed &amp; vbCrLf&lt;br /&gt;        Label1.Text += "Date last modified : " &amp; objFile.DateLastModified &amp; vbCrLf&lt;br /&gt;        Label1.Text += "Path : " &amp; objFile.Path &amp; vbCrLf&lt;br /&gt;        Label1.Text += "Short name : " &amp; objFile.ShortName &amp; vbCrLf&lt;br /&gt;        Label1.Text += "Short path : " &amp; objFile.ShortPath &amp; vbCrLf&lt;br /&gt;&lt;br /&gt;        'mendapatkan CRC32 dan menampilkan pada label2&lt;br /&gt;        Label2.Text = "CRC32 Hash : " &amp; String.Format("{0:X8}", crc)&lt;br /&gt;&lt;br /&gt;        'mendapatkan MD5 hash dan menampilkan pada label3&lt;br /&gt;        Dim hash As Byte() = md5.Hash&lt;br /&gt;        Dim buff As StringBuilder = New StringBuilder&lt;br /&gt;        Dim hashByte As Byte&lt;br /&gt;        For Each hashByte In hash&lt;br /&gt;            buff.Append(String.Format("{0:X1}", hashByte))&lt;br /&gt;        Next&lt;br /&gt;        Label3.Text = "MD5 Hash : " &amp; buff.ToString()&lt;br /&gt;&lt;br /&gt;    End Sub&lt;br /&gt;End Class&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt; &lt;li&gt;Terakhir adalah membuat sebuah class baru yang bernama CRC32. &lt;/li&gt;&lt;br /&gt; &lt;pre&gt;Public Class CRC32&lt;br /&gt;    ' Versi 2 dari algoritma CRC32 di VB CRC32 oleh Paul&lt;br /&gt;    ' (wpsjr1@succeed.net) - &lt;br /&gt;&lt;br /&gt;    Private crc32Table() As Integer&lt;br /&gt;    Private Const BUFFER_SIZE As Integer = 1024&lt;br /&gt;&lt;br /&gt;    Public Function GetCrc32(ByRef stream As System.IO.Stream) As Integer&lt;br /&gt;&lt;br /&gt;        Dim crc32Result As Integer&lt;br /&gt;        crc32Result = &amp;HFFFFFFFF&lt;br /&gt;&lt;br /&gt;        Dim buffer(BUFFER_SIZE) As Byte&lt;br /&gt;        Dim readSize As Integer = BUFFER_SIZE&lt;br /&gt;&lt;br /&gt;        Dim count As Integer = stream.Read(buffer, 0, readSize)&lt;br /&gt;        Dim i As Integer&lt;br /&gt;        Dim iLookup As Integer&lt;br /&gt;        Dim tot As Integer = 0&lt;br /&gt;        Do While (count &gt; 0)&lt;br /&gt;            For i = 0 To count - 1&lt;br /&gt;                iLookup = (crc32Result And &amp;HFF) Xor buffer(i)&lt;br /&gt;                crc32Result = ((crc32Result And &amp;HFFFFFF00) \ &amp;H100) And &amp;HFFFFFF   ' nasty shr 8 with vb :/&lt;br /&gt;                crc32Result = crc32Result Xor crc32Table(iLookup)&lt;br /&gt;            Next i&lt;br /&gt;            count = stream.Read(buffer, 0, readSize)&lt;br /&gt;        Loop&lt;br /&gt;&lt;br /&gt;        GetCrc32 = Not (crc32Result)&lt;br /&gt;&lt;br /&gt;    End Function&lt;br /&gt;&lt;br /&gt;    Public Sub New()&lt;br /&gt;&lt;br /&gt;        ' Polinomial yang digunakan CRC32 in PKZip.        &lt;br /&gt;        Dim dwPolynomial As Integer = &amp;HEDB88320&lt;br /&gt;        Dim i As Integer, j As Integer&lt;br /&gt;&lt;br /&gt;        ReDim crc32Table(256)&lt;br /&gt;        Dim dwCrc As Integer&lt;br /&gt;&lt;br /&gt;        For i = 0 To 255&lt;br /&gt;            dwCrc = i&lt;br /&gt;            For j = 8 To 1 Step -1&lt;br /&gt;                If (dwCrc And 1) Then&lt;br /&gt;                    dwCrc = ((dwCrc And &amp;HFFFFFFFE) \ 2&amp;) And &amp;H7FFFFFFF&lt;br /&gt;                    dwCrc = dwCrc Xor dwPolynomial&lt;br /&gt;                Else&lt;br /&gt;                    dwCrc = ((dwCrc And &amp;HFFFFFFFE) \ 2&amp;) And &amp;H7FFFFFFF&lt;br /&gt;                End If&lt;br /&gt;            Next j&lt;br /&gt;            crc32Table(i) = dwCrc&lt;br /&gt;        Next i&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;End Class&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt; &lt;li&gt;Tampilan yang didapatkan adalah sebagai berikut:&lt;/li&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Gp4jAV9pQtg/SnFOPrmJ9sI/AAAAAAAAACk/uC2QqXdIK6Q/s1600-h/02.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 298px;" src="http://3.bp.blogspot.com/_Gp4jAV9pQtg/SnFOPrmJ9sI/AAAAAAAAACk/uC2QqXdIK6Q/s320/02.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5364154662482736834" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-7154184877785931936?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/7154184877785931936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2009/07/vbnet-mendapatkan-informasi-file.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/7154184877785931936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/7154184877785931936'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2009/07/vbnet-mendapatkan-informasi-file.html' title='VB.Net – Mendapatkan Informasi File'/><author><name>R†</name><uri>http://www.blogger.com/profile/06404935452790331980</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Gp4jAV9pQtg/TAeH2I49RQI/AAAAAAAAAL0/-wOcj-aWl2I/S220/milo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Gp4jAV9pQtg/SnFN61mhruI/AAAAAAAAACc/1RL2Db3WOLs/s72-c/01.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6592780324121647341.post-477219073243318517</id><published>2009-07-15T09:08:00.000+07:00</published><updated>2009-08-07T08:03:24.103+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.Net'/><title type='text'>VB.Net – Membuat Captcha</title><content type='html'>&lt;p class="abstract"&gt;Saat ini, saat kita melakukan registrasi ke suatu sistem dalam aplikasi web di internet, kita mendapatkan pertanyaan verifikasi seperti mengetikkan suatu tulisan pada suatu gambar yang sedikit dikaburkan tapi masih bisa terbaca, atau menjawab suatu operasi matematik sederhana. Proses verifikasi seperti itu dilakukan untuk menghindari registrasi otomatis yang dilakukan oleh mesin (bot). Jadi sistem registrasi mencoba memverifikasi bahwa yang register adalah orang, bukan mesin. Program untuk melakukan verifikasi tersebut disebut sebagai captcha.&lt;/p&gt;&lt;br /&gt; &lt;p&gt;Captcha merupakan singkatan dari "Completely Automated Public Turing test to tell Computers and Humans Apart". Ada beberapa metode untuk mendistorsi karakter pada gambar, misalnya dengan tipe font, penambahan latar belakang (gradasi warna), penambahan objek lain yang menutupi karakter/huruf secara acak, perbedaan warna tiap-tiap huruf, dan algoritma distorsi lainnya seperti pembelokan garis atau efek fisheye. Tip kali ini adalah membuat captcha pada VB.Net.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Langkah-langkah untuk membuatnya adalah:&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt; &lt;ol&gt;&lt;br /&gt;  &lt;li&gt;Buat New Project (Windows Application) dengan sebuah form baru yang berisi:&lt;/li&gt;&lt;br /&gt;   &lt;ul&gt;&lt;br /&gt;    &lt;li&gt;Picture Box dengan nama PictureBox1. Picture box ini nantinya akan menampung image captcha yang dihasilkan oleh program.&lt;/li&gt;&lt;br /&gt;    &lt;li&gt;Text box dengan nama Textbox1. Text box ini nantinya akan menampung teks masukan dari user untuk diuji apakan sesuai dengan captcha atau tidak.&lt;/li&gt;&lt;br /&gt;    &lt;li&gt;Command button dengan nama Button2. Command button ini digunakan untuk membandingkan apakah captcha pada picture box dan teks yang dimasukkan pada text box sesuai atau tidak.&lt;/li&gt;&lt;br /&gt;   &lt;/ul&gt;&lt;br /&gt;   &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Gp4jAV9pQtg/Sl_T2LfX2UI/AAAAAAAAACE/vOpYyQbdihE/s1600-h/01.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 297px; height: 218px;" src="http://1.bp.blogspot.com/_Gp4jAV9pQtg/Sl_T2LfX2UI/AAAAAAAAACE/vOpYyQbdihE/s320/01.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5359235009344952642" /&gt;&lt;/a&gt;&lt;br /&gt;  &lt;li&gt;Deklarasi yang diperlukan dalam membuat aplikasi captcha ini adalah sebagai berikut:&lt;/li&gt;&lt;br /&gt;        &lt;pre&gt; Public Class Form1&lt;br /&gt;&lt;br /&gt;    Dim DrawingFont As New Font("Arial", 20)&lt;br /&gt;    Dim CaptchaImage As New Bitmap(140, 40)&lt;br /&gt;    Dim CaptchaGraf As Graphics = Graphics.FromImage(CaptchaImage)&lt;br /&gt;    Dim Alphabet As String = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"&lt;br /&gt;    Dim CaptchaString, TickRandom As String&lt;br /&gt;    Dim ProcessNumber As Integer&lt;/pre&gt;&lt;br /&gt;  &lt;li&gt;Berikutnya adalah sub rutin untuk menghasilkan captcha. Banyaknya karakter yang dihasilkan dalam captcha adalah sebanyak 5 dengan kombinasi huruf besar, huruf kecil dan angka. &lt;/li&gt;&lt;br /&gt;  &lt;pre&gt;    Private Sub GenerateCaptcha()&lt;br /&gt;        ProcessNumber = My.Computer.Clock.LocalTime.Millisecond&lt;br /&gt;        If ProcessNumber &lt; 521 Then&lt;br /&gt;            ProcessNumber = ProcessNumber \ 10&lt;br /&gt;            CaptchaString = Alphabet.Substring(ProcessNumber, 1)&lt;br /&gt;        Else&lt;br /&gt;            CaptchaString = CStr(My.Computer.Clock.LocalTime.Second \ 6)&lt;br /&gt;        End If&lt;br /&gt;        ProcessNumber = My.Computer.Clock.LocalTime.Second&lt;br /&gt;        If ProcessNumber &lt; 30 Then&lt;br /&gt;            ProcessNumber = Math.Abs(ProcessNumber - 8)&lt;br /&gt;            CaptchaString += Alphabet.Substring(ProcessNumber, 1)&lt;br /&gt;        Else&lt;br /&gt;            CaptchaString += CStr(My.Computer.Clock.LocalTime.Minute \ 6)&lt;br /&gt;        End If&lt;br /&gt;        ProcessNumber = My.Computer.Clock.LocalTime.DayOfYear&lt;br /&gt;        If ProcessNumber Mod 2 = 0 Then&lt;br /&gt;            ProcessNumber = ProcessNumber \ 8&lt;br /&gt;            CaptchaString += Alphabet.Substring(ProcessNumber, 1)&lt;br /&gt;        Else&lt;br /&gt;            CaptchaString += CStr(ProcessNumber \ 37)&lt;br /&gt;        End If&lt;br /&gt;        TickRandom = My.Computer.Clock.TickCount.ToString&lt;br /&gt;        ProcessNumber = Val(TickRandom.Substring(TickRandom.Length - 1, 1))&lt;br /&gt;        If ProcessNumber Mod 2 = 0 Then&lt;br /&gt;            CaptchaString += CStr(ProcessNumber)&lt;br /&gt;        Else&lt;br /&gt;            ProcessNumber = Math.Abs(Int(Math.Cos(Val(TickRandom)) * 51))&lt;br /&gt;            CaptchaString += Alphabet.Substring(ProcessNumber, 1)&lt;br /&gt;        End If&lt;br /&gt;        ProcessNumber = My.Computer.Clock.LocalTime.Hour&lt;br /&gt;        If ProcessNumber Mod 2 = 0 Then&lt;br /&gt;            ProcessNumber = Math.Abs(Int(Math.Sin(Val(My.Computer.Clock.LocalTime.Year)) * 51))&lt;br /&gt;            CaptchaString += Alphabet.Substring(ProcessNumber, 1)&lt;br /&gt;        Else&lt;br /&gt;            CaptchaString += CStr(ProcessNumber \ 3)&lt;br /&gt;        End If&lt;br /&gt;        ProcessNumber = My.Computer.Clock.LocalTime.Millisecond&lt;br /&gt;        If ProcessNumber &gt; 521 Then&lt;br /&gt;            ProcessNumber = Math.Abs((ProcessNumber \ 10) - 52)&lt;br /&gt;            CaptchaString += Alphabet.Substring(ProcessNumber, 1)&lt;br /&gt;        Else&lt;br /&gt;            CaptchaString += CStr(My.Computer.Clock.LocalTime.Second \ 6)&lt;br /&gt;        End If&lt;br /&gt;        CaptchaGraf.Clear(Color.White)&lt;br /&gt;&lt;br /&gt;        For hasher As Integer = 0 To 5&lt;br /&gt;            CaptchaGraf.DrawString(CaptchaString.Substring(hasher, 1), DrawingFont, Brushes.Black, hasher * 20 + hasher + ProcessNumber \ 200, (hasher Mod 3) * (ProcessNumber \ 200))&lt;br /&gt;        Next&lt;br /&gt;        PictureBox1.Image = CaptchaImage&lt;br /&gt;    End Sub&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;  &lt;li&gt;Event-event yang perlu dicegah adalah event untuk load form dan klik pada button2.&lt;/li&gt;&lt;br /&gt;  &lt;pre&gt;    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load&lt;br /&gt;        GenerateCaptcha()&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click&lt;br /&gt;        If TextBox1.Text = "" Then Exit Sub&lt;br /&gt;        If TextBox1.Text = CaptchaString Then&lt;br /&gt;            MsgBox("The string is correct." + Chr(13) + "Try another captcha.", MsgBoxStyle.Information)&lt;br /&gt;            TextBox1.Clear()&lt;br /&gt;            GenerateCaptcha()&lt;br /&gt;        Else&lt;br /&gt;            MsgBox("The string is incorrect.", MsgBoxStyle.Exclamation)&lt;br /&gt;            TextBox1.Clear()&lt;br /&gt;            GenerateCaptcha()&lt;br /&gt;        End If&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress&lt;br /&gt;        If e.KeyChar = Chr(13) Then Button2.PerformClick()&lt;br /&gt;    End Sub&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;  &lt;li&gt;Tampilan yang didapatkan adalah sebagai berikut:&lt;/li&gt;&lt;br /&gt;  &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Gp4jAV9pQtg/Sl_UFNW7qeI/AAAAAAAAACM/xWfXA8Ct9vM/s1600-h/02.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 290px; height: 211px;" src="http://1.bp.blogspot.com/_Gp4jAV9pQtg/Sl_UFNW7qeI/AAAAAAAAACM/xWfXA8Ct9vM/s320/02.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5359235267544459746" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Gp4jAV9pQtg/Sl_UOCydMhI/AAAAAAAAACU/QbdP37qM8NA/s1600-h/03.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 177px; height: 126px;" src="http://3.bp.blogspot.com/_Gp4jAV9pQtg/Sl_UOCydMhI/AAAAAAAAACU/QbdP37qM8NA/s320/03.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5359235419325936146" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;/ol&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6592780324121647341-477219073243318517?l=listingprogram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://listingprogram.blogspot.com/feeds/477219073243318517/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://listingprogram.blogspot.com/2009/07/vbnet-membuat-captcha.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/477219073243318517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6592780324121647341/posts/default/477219073243318517'/><link rel='alternate' type='text/html' href='http://listingprogram.blogspot.com/2009/07/vbnet-membuat-captcha.html' title='VB.Net – Membuat Captcha'/><author><name>R†</name><uri>http://www.blogger.com/profile/06404935452790331980</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Gp4jAV9pQtg/TAeH2I49RQI/AAAAAAAAAL0/-wOcj-aWl2I/S220/milo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Gp4jAV9pQtg/Sl_T2LfX2UI/AAAAAAAAACE/vOpYyQbdihE/s72-c/01.png' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
