<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://semarang.netindonesia.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Dotnet Semarang</title><link>http://semarang.netindonesia.net/blogs/default.aspx</link><description>Tempat mangkal dotnet mania semarang dan sekitarnya</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 (Build: 60809.935)</generator><item><title>Silverlight for Real LOB Application</title><link>http://semarang.netindonesia.net/blogs/cahnom/archive/2007/10/03/Silverlight-for-Real-LOB-Application.aspx</link><pubDate>Wed, 03 Oct 2007 02:30:00 GMT</pubDate><guid isPermaLink="false">227211f7-47d1-4d09-b2ba-bd75c546b02a:107</guid><dc:creator>cahnom</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Silverlight merupakan RIA (Rich Internet Application) yang dibuat oleh Microsoft. Silverlight tidak hanya dapat digunakan untuk animasi. Dengan kombinasi Silverlight dan ASP.NET AJAX, dapat juga digunakan dalam dunia bisnis secara nyata.&lt;/p&gt;&lt;p&gt;Saya buat beberapa aplikasi pendukung SAP untuk PT. Indonesia Epson Industry menggunakan teknologi ASP.NET AJAX,&amp;nbsp; Silverlight dan ExtJs. ASP.NET AJAX digunakan untuk komunikasi anatara browser dengan webservice, Silverlight untuk presentation yang ringan dan interaktif sedangkan ExtJs (www.extjs.com) digunakan untuk membuat UI yang menarik. Kombinasi ketiga teknologi tersebut menghasilkan aplikasi yang ringan, interaktif dan menarik untuk dilihat. Berikut adalah screenshoot salah satu halaman aplikasi intranet yang saya buat untuk Epson.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;a href="http://semarang.netindonesia.net/photos/blogs_atlas/images/108/original.aspx" title="Silverlight Charting" target="_blank"&gt;&lt;img alt="Silverlight Charting" height="307" src="http://semarang.netindonesia.net/photos/blogs_atlas/images/108/425x307.aspx" title="Silverlight Charting" width="425" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Dulunya untuk membuat charting di ASP.NET saya gunakan GDI+ yang digenerate oleh ASP.NET generic http handler. Ternyata cara tersebut tidak bisa fleksibel. Akhirnya saya coba untuk beralih menggunakan Silverlight dan ternyata sungguh menakjubkan. Chart yang dibikin dengan Silverlight dapat tampilkan dengan cepat dan &amp;quot;interaktif&amp;quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Walaupun hanya berbekal Visual Studio 2008 Express, saya bisa menyelesaikan beberapa modul aplikasi yang dibutuhkan. Rencana semua aplikasi yang ada di Epson akan saya buat dengan ASP.NET AJAX dan Silverlight. Semoga setelah melihat hasil aplikasi yang dibikin menggunakan Silverlight ini, tahun depan Epson menganggarkan untuk membeli Visual Studio Orcas. Dan beberapa aplikasi akan saya migrasi ke .NET 3.5.&lt;br /&gt;&lt;/p&gt;&lt;img src="http://semarang.netindonesia.net/aggbug.aspx?PostID=107" width="1" height="1"&gt;</description><category domain="http://semarang.netindonesia.net/blogs/cahnom/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Mashup</title><link>http://semarang.netindonesia.net/blogs/cahnom/archive/2007/07/20/Mashup.aspx</link><pubDate>Fri, 20 Jul 2007 03:47:27 GMT</pubDate><guid isPermaLink="false">227211f7-47d1-4d09-b2ba-bd75c546b02a:105</guid><dc:creator>cahnom</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Mashup adalah website atau aplikasi web yang isinya berasal dari lebih dari satu sumber. Isi dari website ini biasanya berasal dari penyedia layanan pihak ke tiga dengan antarmuka yang disebut sebagai API. Berbeda dengan RSS yang hanya mempublikasikan berita, mashup bisa berupa peta, foto, informasi produk, berita, dll. Sebagai contoh, dengan mashup bisa mengambil foto dari flickr, menjual barang yang dijual di eBay pada situs kita, menampilkan peta dari googlemap.&lt;/p&gt; &lt;p&gt;Pembuatan website dengan mashup tidak harus mengerti pemprograman. Terdapat tool yang dapat digunakan untuk membuat website dengan mashup seperti &lt;a href="http://www.mapbuilder.net/"&gt;Mapbuilder&lt;/a&gt; atau &lt;a href="http://code.google.com/gme/index.html"&gt;Goole Mashup Editor&lt;/a&gt;. Dengan tool tersebut dapat dibuat layanan sederhana tanpa harus menulis kode.&lt;/p&gt; &lt;p&gt;Biasanya untuk memanfaatkan mashup diperlukan pendaftaran ke penyedia layanan. Sebagai contoh, untuk menggunakan layanan Google Map API, dapat dilakukan pendaftaran melalui situs &lt;a title="http://www.google.com/apis/maps/signup.html" href="http://www.google.com/apis/maps/signup.html"&gt;http://www.google.com/apis/maps/signup.html&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Untuk memulai membuat mashup, masing-masing API memiliki cara tersendiri. Silakan baca dokumentasi pada masing-masing API.&lt;/p&gt;&lt;img src="http://semarang.netindonesia.net/aggbug.aspx?PostID=105" width="1" height="1"&gt;</description></item><item><title>Mendaftar Domain .web.id (Gratis)</title><link>http://semarang.netindonesia.net/blogs/cahnom/archive/2007/06/13/Mendaftar-Domain-.web.id-_2800_Gratis_2900_.aspx</link><pubDate>Wed, 13 Jun 2007 04:08:34 GMT</pubDate><guid isPermaLink="false">227211f7-47d1-4d09-b2ba-bd75c546b02a:103</guid><dc:creator>cahnom</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Dari beberapa permintaan mengenai panduan gimana mendapatkan domain web.id, saya tulis beberapa langkah praktis untuk mendaftar.&lt;/p&gt; &lt;h3&gt;Daftar User di register.web.id&lt;/h3&gt; &lt;p&gt;Buka halaman &lt;a href="http://register.web.id"&gt;http://register.web.id&lt;/a&gt;. Jika anda belum memiliki account di register.web.id, lakukan pendafataran terlebih dahulu dengan&amp;nbsp;klik [&lt;a href="http://register.net.id/registrant?navigation=tambah"&gt;Register&lt;/a&gt;]. Isi formulir dengan benar. &lt;em&gt;Username &lt;/em&gt;boleh tidak sama dengan domain yang akan kita daftarkan.&lt;/p&gt; &lt;h3&gt;Mendaftarkan Domain Baru&lt;/h3&gt; &lt;p&gt;Setelah proses registrasi selesai, login dengan user anda. Dan kerjakan langkah-langkah berikut.&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Periksa domain yang akan didaftarkan apakah masih tersedia atau tidak. Masuk ke halaman&amp;nbsp;&lt;a href="http://register.net.id/domain?navigation=check"&gt;pemeriksaan domain&lt;/a&gt;. &lt;/li&gt; &lt;li&gt;Masukkan domain yang akan diperiksa dan pilih induk domain yang diinginkan (dalam hal ini kita ingin mendaftar domain .web.id)&lt;/li&gt; &lt;li&gt;Jika domain terlah digunakan oleh orang lain, ganti nama domain yang lain. Jika domain masih tersedia, klik tombol [Register] di bawah.&lt;/li&gt; &lt;li&gt;Isi formulir pendaftaran domain dengan lengkap dan benar. &lt;br&gt;Name diisi dengan nama anda&lt;br&gt;Registrant type: Personal&lt;br&gt;Primary server diisi dengan nameserver anda (contoh: ns1.myhosting.com). Jika belum memiliki nameserver bisa diisi sembarang dulu, bisa diubah di kemudian hari.&lt;br&gt;Net Address diisi dengan IP address nameserver anda.&lt;/li&gt; &lt;li&gt;Setelah semua formulir diisi dengan benar, klik tombol [Register]&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Langkah selanjutnya adalah upload dokumen&lt;/p&gt; &lt;h3&gt;Upload Dokumen&lt;/h3&gt; &lt;p&gt;Untuk melakukan upload dokument, klik menu [&lt;a href="http://register.net.id/main?navigation=forward&amp;amp;url=document&amp;amp;menu_category=1"&gt;Document Management&lt;/a&gt;], dan klik tombol [&lt;a href="http://register.net.id/document?navigation=tambah"&gt;Create&lt;/a&gt;] untuk upload dokumen baru.&lt;/p&gt; &lt;p&gt;Pada halaman Document Submission:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Pilih domain yang telah didaftarkan (belum disetujui)&lt;/li&gt; &lt;li&gt;Pilih dokument type dengan KTP atau SIM (sesuai dengan dokument yang akan diupload)&lt;/li&gt; &lt;li&gt;Document&amp;nbsp;number diisi dengan nomor KTP atau SIM (contoh: KTP#11.1234.010171.0064)&lt;/li&gt; &lt;li&gt;Browse file hasil pindaian (scan) KTP atau SIM&lt;/li&gt; &lt;li&gt;Klik [Submit] untuk mengirim dokumen&lt;/li&gt;&lt;/ol&gt; &lt;h3&gt;Selesai&lt;/h3&gt; &lt;p&gt;Pendaftaran domain web.id selesai. Silakan tunggu beberapa waktu untuk mendapatkan persetujuan dari DepKomInfo. Domain saya dalam waktu kurang dari 24 jam disetujui. Namun teman saya yang butuh waktu satu minggu baru disetujui, tergantung dari kesibukan petugas DepKomInfo.&lt;/p&gt; &lt;p&gt;Setelah domain disetujui, maksimal butuh waktu 1x24jam untuk bisa mengakses domain baru kita. Lamanya waktu tergantung waktu&amp;nbsp;sinkronisasi domain baru dengan pengelola domain internasional.&lt;/p&gt; &lt;p&gt;Setelah domain baru selesai dibuat, tinggal setting nameserver di komputer server / shared hosting. Setting di komputer server bisa lihat dokumentasi dari masing-masing OS. Sedangkan untuk shared hosting, bisa lihat manualnya di masing-masing hosting provider.&lt;/p&gt; &lt;p&gt;Selamat melakukan registrasi di domain web.id&lt;/p&gt;&lt;img src="http://semarang.netindonesia.net/aggbug.aspx?PostID=103" width="1" height="1"&gt;</description></item><item><title>Gempa di Sumbawa</title><link>http://semarang.netindonesia.net/blogs/cahnom/archive/2007/05/24/Gempa-di-Sumbawa.aspx</link><pubDate>Thu, 24 May 2007 01:52:54 GMT</pubDate><guid isPermaLink="false">227211f7-47d1-4d09-b2ba-bd75c546b02a:101</guid><dc:creator>cahnom</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Pagi ini telah terjadi gempa di daerah Sumbawa NTB pada &lt;b&gt;&lt;a href="http://www.gfz-potsdam.de/geofon/alerts/ev070524010021/"&gt;2007-05-24 01:06:24&lt;/a&gt;&lt;/b&gt;&amp;nbsp;GMT (atau sekitar pukul 09:06:24 WITA). Sumber &lt;a href="http://geofon.gfz-potsdam.de/db/eqinfo.php"&gt;http://geofon.gfz-potsdam.de/db/eqinfo.php&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Tapi yang disayangkan sampai tulisan ini ditulis belum ada data dari &lt;a href="http://www.bmg.go.id/gempaterkini.asp"&gt;BMG&lt;/a&gt;, padahal dari &lt;a href="http://www.gfz-potsdam.de/geofon/new/netabs/ge.html"&gt;jaringan GEOFON&lt;/a&gt; sudah ada beberapa saat setelah kejadian. Apa sebenarnya yang terjadi dengan BMG kita? Apa peralatan yang dimiliki sudah terlalu usang atau orang-orangnya belum bangun dari tidur?&lt;/p&gt;&lt;img src="http://semarang.netindonesia.net/aggbug.aspx?PostID=101" width="1" height="1"&gt;</description></item><item><title>Ajax or AJAX?</title><link>http://semarang.netindonesia.net/blogs/cahnom/archive/2007/05/12/Ajax-or-AJAX_3F00_.aspx</link><pubDate>Sat, 12 May 2007 10:38:59 GMT</pubDate><guid isPermaLink="false">227211f7-47d1-4d09-b2ba-bd75c546b02a:100</guid><dc:creator>cahnom</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;Ungkapan Ajax pertama kali dikenalkan oleh &lt;a href="http://blog.jjg.net/"&gt;Jesse James Garrett&lt;/a&gt; untuk mendeskripsikan gaya aplikasi web dan teknologi-teknologi yang menyertainya, sehingga dapat membuat aplikasi web yang interaktif. Pada mulanya, ungkapan Ajax yang tersebar di web adalah sebuah akronim AJAX (Asynchronous JavaScript And XML). Saat ini kenyataannya huruf "X" pada AJAX tidak representatif untuk menunjukkan format data yang digunakan&amp;nbsp;sebagai komunikasi&amp;nbsp;client dengan server web semenjak banyak aplikasi Ajax yang beralih menggunakan JSON. JSON merupakan alternatif format pertukaran data yang lebih sederhana dan lebih efisien. Daripada merubah akronim AJAX menjadi AJAJ pada aplikasi web yang lebih interaktif ini, ungkapan Ajax digunakan tetap dipertahankan namun bukanlah sebuah akronim AJAX.&lt;/p&gt;&lt;img src="http://semarang.netindonesia.net/aggbug.aspx?PostID=100" width="1" height="1"&gt;</description><category domain="http://semarang.netindonesia.net/blogs/cahnom/archive/tags/AJAX/default.aspx">AJAX</category></item><item><title>ASP.NET Enter Key Problem</title><link>http://semarang.netindonesia.net/blogs/cahnom/archive/2007/05/10/ASP.NET-Enter-Key-Problem.aspx</link><pubDate>Thu, 10 May 2007 06:47:39 GMT</pubDate><guid isPermaLink="false">227211f7-47d1-4d09-b2ba-bd75c546b02a:99</guid><dc:creator>cahnom</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Pada pembuatan sebuah halaman web, terkadang terdapat beberapa input dan beberapa tombol (&lt;em&gt;button&lt;/em&gt;). Ketika&amp;nbsp;cursor focus ke sebuah textbox dan tekan tombol Enter, akan terjadi postback ke server.&amp;nbsp;Sebagai contoh bila dalam halaman terdapat dua buah textbox dan dua buah tombol separti pada kode berikut:&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="57F11A72-B0E5-49c7-9094-E3A15BD5B5E7:d1e3e970-60c6-481b-bcc9-5307cec3c4ba" style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;&lt;pre style="background-color:White;"&gt;&lt;div&gt;&lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:TextBox &lt;/span&gt;&lt;span style="color:#FF0000;"&gt;ID&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;=&amp;quot;TextBox1&amp;quot;&lt;/span&gt;&lt;span style="color:#FF0000;"&gt; runat&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:TextBox&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;
&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:Button &lt;/span&gt;&lt;span style="color:#FF0000;"&gt;ID&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;=&amp;quot;Button1&amp;quot;&lt;/span&gt;&lt;span style="color:#FF0000;"&gt; runat&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style="color:#FF0000;"&gt; Text&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;=&amp;quot;Button&amp;quot;&lt;/span&gt;&lt;span style="color:#FF0000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;
&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:TextBox &lt;/span&gt;&lt;span style="color:#FF0000;"&gt;ID&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;=&amp;quot;TextBox2&amp;quot;&lt;/span&gt;&lt;span style="color:#FF0000;"&gt; runat&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:TextBox&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;
&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:Button &lt;/span&gt;&lt;span style="color:#FF0000;"&gt;ID&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;=&amp;quot;Button2&amp;quot;&lt;/span&gt;&lt;span style="color:#FF0000;"&gt; runat&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style="color:#FF0000;"&gt; Text&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;=&amp;quot;Button&amp;quot;&lt;/span&gt;&lt;span style="color:#FF0000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Setelah mengisi TextBox1 dan menekan tombol enter, terjadi postback ke server dan Event Click pada Button1 akan dikerjakan. Begitu *** jika TextBox2 yang diisi dan tombol Enter ditekan, Event Click pada Button1 yang dikerjakan, padahal yang diinginkan adalah Button2 yang harus dikerjakan.&lt;/p&gt;
&lt;p&gt;Untuk memecahkan masalah ini, pada ASP.NET 2.0 terdapat property DefaultButton pada Form dan Panel. Dalam kasus ini, digunakan Panel karena kedua TextBox tersebut berada dalam satu Form. Kelompokkan masing-masing inputan beserta default tombolnya ke dalam Panel.&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="57F11A72-B0E5-49c7-9094-E3A15BD5B5E7:e23d429c-e5e8-4057-9dba-f2dfbe1e034f" style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;&lt;pre style="background-color:White;"&gt;&lt;div&gt;&lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:Panel &lt;/span&gt;&lt;span style="color:#FF0000;"&gt;ID&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;=&amp;quot;Panel1&amp;quot;&lt;/span&gt;&lt;span style="color:#FF0000;"&gt; runat&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style="color:#FF0000;"&gt; DefaultButton&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;=&amp;quot;Button1&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;
    &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:TextBox &lt;/span&gt;&lt;span style="color:#FF0000;"&gt;ID&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;=&amp;quot;TextBox1&amp;quot;&lt;/span&gt;&lt;span style="color:#FF0000;"&gt; runat&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:TextBox&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;
    &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:Button &lt;/span&gt;&lt;span style="color:#FF0000;"&gt;ID&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;=&amp;quot;Button1&amp;quot;&lt;/span&gt;&lt;span style="color:#FF0000;"&gt; runat&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style="color:#FF0000;"&gt; Text&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;=&amp;quot;Button&amp;quot;&lt;/span&gt;&lt;span style="color:#FF0000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;
&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:Panel&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;
&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:Panel &lt;/span&gt;&lt;span style="color:#FF0000;"&gt;ID&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;=&amp;quot;Panel2&amp;quot;&lt;/span&gt;&lt;span style="color:#FF0000;"&gt; runat&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style="color:#FF0000;"&gt; DefaultButton&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;=&amp;quot;Button2&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;
    &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:TextBox &lt;/span&gt;&lt;span style="color:#FF0000;"&gt;ID&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;=&amp;quot;TextBox2&amp;quot;&lt;/span&gt;&lt;span style="color:#FF0000;"&gt; runat&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:TextBox&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;
    &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:Button &lt;/span&gt;&lt;span style="color:#FF0000;"&gt;ID&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;=&amp;quot;Button2&amp;quot;&lt;/span&gt;&lt;span style="color:#FF0000;"&gt; runat&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style="color:#FF0000;"&gt; Text&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;=&amp;quot;Button&amp;quot;&lt;/span&gt;&lt;span style="color:#FF0000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;
&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:Panel&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Pada ASP.NET 1.1 diperlukan trik khusus menggunakan Javascript untuk melakukan hal ini. Tambahkan code berikut pada event Load&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="57F11A72-B0E5-49c7-9094-E3A15BD5B5E7:6c5a230c-e570-4aa7-a34c-58b0bd4f90ad" style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;&lt;pre style="background-color:White;"&gt;&lt;div&gt;&lt;span style="color:#000000;"&gt;TextBox1.Attributes.Add(&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;onkeydown&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;, 
    &lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;if(event.which || event.keyCode)&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000000;"&gt;+&lt;/span&gt;&lt;span style="color:#000000;"&gt;
    &lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;{if ((event.which == 13) || (event.keyCode == 13)) &lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000000;"&gt;+&lt;/span&gt;&lt;span style="color:#000000;"&gt;
    &lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;{document.getElementById('&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;+&lt;/span&gt;&lt;span style="color:#000000;"&gt;Button1.UniqueID&lt;/span&gt;&lt;span style="color:#000000;"&gt;+&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;').click();return false;}} &lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000000;"&gt;+&lt;/span&gt;&lt;span style="color:#000000;"&gt;
    &lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;else {return true}; &lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;);
TextBox2.Attributes.Add(&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;onkeydown&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;, 
    &lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;if(event.which || event.keyCode)&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000000;"&gt;+&lt;/span&gt;&lt;span style="color:#000000;"&gt;
    &lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;{if ((event.which == 13) || (event.keyCode == 13)) &lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000000;"&gt;+&lt;/span&gt;&lt;span style="color:#000000;"&gt;
    &lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;{document.getElementById('&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;+&lt;/span&gt;&lt;span style="color:#000000;"&gt;Button2.UniqueID&lt;/span&gt;&lt;span style="color:#000000;"&gt;+&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;').click();return false;}} &lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000000;"&gt;+&lt;/span&gt;&lt;span style="color:#000000;"&gt;
    &lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;else {return true}; &lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;);
&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Pada kode di atas, jika saat kursor sedang berada di TextBox{n}, ketika tombol Enter ditekan (keycode untuk tombol enter adalah 13) maka akan memanggil method &lt;code&gt;click &lt;/code&gt;pada Button{n}. Pada Firefox, &lt;code&gt;event.keyCode &lt;/code&gt;tidak berjalan dengan baik, sebagai penggantinya digunakan &lt;code&gt;event.which&lt;/code&gt;.&lt;/p&gt;&lt;img src="http://semarang.netindonesia.net/aggbug.aspx?PostID=99" width="1" height="1"&gt;</description></item><item><title>Belajar terus sampai muntah ...huekkk</title><link>http://semarang.netindonesia.net/blogs/simbah/archive/2007/04/03/Belajar-terus-sampai-muntah-_2E002E002E00_huekkk.aspx</link><pubDate>Tue, 03 Apr 2007 06:42:00 GMT</pubDate><guid isPermaLink="false">227211f7-47d1-4d09-b2ba-bd75c546b02a:96</guid><dc:creator>simbah</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Duh cucuku, akhir-akhir ini simbah mumet.&amp;nbsp; njaluk tulung kerokan karo sopo hehehe..&lt;/p&gt;&lt;p&gt;Sing gawe mbah mumet kii...lha lagi sinau net 2.0 wae rung kelar... malah saiki ono &lt;a href="http://www.netfx3.com/" title="Net Framework 3.0"&gt;net framework 3.0&lt;/a&gt;. weleh-weleh.. piye jall...&lt;/p&gt;&lt;p&gt;mumet tohh ?&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://semarang.netindonesia.net/aggbug.aspx?PostID=96" width="1" height="1"&gt;</description></item><item><title>Balek Maning neng Java</title><link>http://semarang.netindonesia.net/blogs/cahnom/archive/2007/04/03/Balek-Maning-neng-Java.aspx</link><pubDate>Tue, 03 Apr 2007 05:07:00 GMT</pubDate><guid isPermaLink="false">227211f7-47d1-4d09-b2ba-bd75c546b02a:95</guid><dc:creator>cahnom</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Wis genep sak pendak dino aku ngasto winten Jakarta. Rodo bingung sih... Wayah neng Semarang saben dino ngomong karo rencang-rencange nganggo Boso Jowo. Basan pindah menyang Jakarta, kabeh podho ngomong loe-gue... Aku ora biso kon ngomong loe-gue, lha wong biyasane ngomong sampean-aku/kulo saiki kon melu-melu loe-gue. Tinimbang kaku mendingan nganggo kamu-aku wae, luweh gambang diucapke.&lt;/p&gt;&lt;p&gt;Alhamdulillah, dino iki salah siji karyawan neng kene ono sing Wong Jowo, gelem ngomong Boso Jowo. Ya... etung-etung ijeh biso ngomong Boso Jowo neng Jakarta. Biasane wong Jowo sing wis boro menyang Jakarta podo lali karo basane dewe.&amp;nbsp;Balek-balek neng ndeso loe-gue-ne ijeh digowo-gowo. Embuh ngaya yen wis dadi wong Jakarte opo pancen bener-bener lali karo boso&amp;nbsp;emake dewe.&lt;/p&gt;&lt;p&gt;Mbuh kerjo neng Jakarta, pengene tetep Boso Jowo. Sampe anak putuku meh tak ajari Boso Jowo kromo sing bener, ojo melu-melu kanca-kancane sing urip neng Jowo tapi ora biso Boso Jowo.&lt;/p&gt;&lt;p&gt;Ono cerito meneh pas jamane aku kuliah neng Undip. Kenalan karo&amp;nbsp;cah wedok, cah Tembalang asli, tak takoni nganggo Boso Jowo Inggil ora mudeng. Ki bocah pancen ora biso Boso Jowo opo mung ethok-ethok ora biso. Aku mikir, yen ora soko awake dewe sing njogo Boso Emake, sopo meneh. Suwe-suwe Boso Jowo biso ilang.&lt;/p&gt;&lt;p&gt;Ayo podo dijogo Budoyo Jawi meniko supados mboten ilang&amp;nbsp;kanton cerito.&lt;/p&gt;&lt;img src="http://semarang.netindonesia.net/aggbug.aspx?PostID=95" width="1" height="1"&gt;</description><category domain="http://semarang.netindonesia.net/blogs/cahnom/archive/tags/Boso+Jowo/default.aspx">Boso Jowo</category></item><item><title>First Day In Jakarta</title><link>http://semarang.netindonesia.net/blogs/cahnom/archive/2007/03/26/First-Day-In-Jakarta.aspx</link><pubDate>Mon, 26 Mar 2007 10:30:00 GMT</pubDate><guid isPermaLink="false">227211f7-47d1-4d09-b2ba-bd75c546b02a:94</guid><dc:creator>cahnom</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Hari ini merupakan hari pertamaku kerja di Jakarta. Cape, sebelum subuh harus bangun, tepat setelah sholat subuh harus mandi dan sarapan dengan secangkir sereal dan roti. Mengejar waktu biar ga kesiangan dan terjebak kemacetan jalanan ibukota.&lt;/p&gt;&lt;p&gt;Sejenak setelah menunggu ankot di depan gerbang perumahan Om saya di Perumahan Wahana Pondok Gede, akhirnya datang juga angkot yang ditunggu. Saya naik angkot menuju Terminal Kampung Rambutan dengan menempuh waktu sekitar 30 menit.&lt;/p&gt;&lt;p&gt; Dilanjutkan dengan naik bus kota menuju Terminal Lebak Bulus, yach... nunggu agak lama di bus alias ngetem cari penumpang. &lt;/p&gt;&lt;p&gt;Sampai Lebak Bulus sekitar jam 7:10, saya cari angkot nomor S14, yang saya naiki ternyata bukan S14 tapi cuma nomor 14. Gak tahu huruf S di depannya itu punya arti atau tidak. Di tengah perjalanan saya bingung koq angkotnya masuk tol? Padahal sebelumnya angkot tersebut tidak masuk tol. Saya tanya sopir apakah angkotnya melewati Jl. Bintaro Permai dijawab tidak dan akhirnya saya turun.&lt;/p&gt;&lt;p&gt;Bingung juga karena belum pernah pernah menginjakkan kaki di daerah tersebut. Akhirnya saya putuskan untuk naik ojek, eh ternyata sudah deket banget, kira-kira cuma 1km saja.&lt;/p&gt;&lt;p&gt;Sesampai di kantor pulkul 7:30, pintu masih terkunci. Sambil menunggu karyawan lain sampai kantor saya duduk di ruko sebelah. Akhirnya tidak selang beberapa lama saya melihat mobil Suzuki Katana hendak parkir di depan kantor. Pak &lt;a href="http://geeks.netindonesia.net/user/Profile.aspx?UserID=2347"&gt;Agung&lt;/a&gt; keluar dari mobilnya dan mengetuk pintu kantor untuk meminta dibukakan office boy yang ada di lantai atas.&lt;/p&gt;&lt;p&gt;Sesampai di dalam ternyata masih sepi. Saya langsung ditunjukkan komputer yang akan saya gunakan. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Hari ini hari pertamaku bekerja di PT. Bataviasoft. Pekerjaanku hari ini hanya install komputer dari awal (fresh) untuk diisi software developer tool, senjata andalan seorang programmer. &lt;/p&gt;&lt;p&gt;Sesaat sebelum makan siang saya diberi tugas oleh Pak Fajar untuk mempelajari dokumen project yang sedang dikerjakan saat ini. Alhamdulillah sedikit demi sedikit saya dapat memahaminya dengan baik.&lt;/p&gt;&lt;p&gt;Sehabis makan siang saya diminta mengutak-atik project yang dikerjakan tersebut. Alhamdulillah sore harinya pekerjaan hari ini sudah terselesaikan dengan baik.&lt;/p&gt;&lt;p&gt;Kesan pertama, bekerja dalam tim yang kompak sangat menyenangkan. Tidak ada kesenjangan antara senior dengan junior, antara atasan dan bawahan, antara boss dan karjawan. Semoga situasi ini dapat berlangsung sampai perusahaan ini tumbuh besar dan memiliki sebesar Microsoft saat ini. Amin.&lt;/p&gt;&lt;p&gt;Saatnya pulang, saya harus pulang biar tidak kemalaman di jalan. Soalnya angkot untuk pulang ke rumah tidak sampai malam, hanya sampai jam 21:00 saja.&amp;nbsp;&lt;/p&gt;&lt;img src="http://semarang.netindonesia.net/aggbug.aspx?PostID=94" width="1" height="1"&gt;</description></item><item><title>Generics</title><link>http://semarang.netindonesia.net/blogs/cahnom/archive/2007/03/08/Generics.aspx</link><pubDate>Thu, 08 Mar 2007 07:55:00 GMT</pubDate><guid isPermaLink="false">227211f7-47d1-4d09-b2ba-bd75c546b02a:88</guid><dc:creator>cahnom</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Generics merupakan &lt;em&gt;type &lt;/em&gt;baru dalam .NET 2.0. Framework .NET 2.0 memiliki beberapa class generic dalam namespace &lt;em&gt;System.Collections.Generic&lt;/em&gt;, di antaranya &lt;em&gt;Dictionary, Queue, SortedDictionary, dan SortedList&lt;/em&gt;. Class-class tersebut bekerja seperti halnya class nongeneric dalam namespace &lt;em&gt;System.Collections&lt;/em&gt; dengan penambahan kinerja dan &lt;em&gt;type safety&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kegunaan Generics.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Pada Framework .NET 1.0 dan 1.1 biasanya menggunakan class &lt;em&gt;Object &lt;/em&gt;pada parameter dan member untuk melakukan &lt;em&gt;casting &lt;/em&gt;dari dan ke class &lt;em&gt;Object&lt;/em&gt;. Ada dua kelebihan generics dibandingkan dengan class &lt;em&gt;Object&lt;/em&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Mengurangi kesalahan saat &lt;em&gt;run-time&lt;/em&gt;&lt;/strong&gt;. &lt;em&gt;Compiler &lt;/em&gt;tidak dapat mendeteksi kesalahan jika terdapat &lt;em&gt;casting &lt;/em&gt;dari dan ke class &lt;em&gt;Object&lt;/em&gt;. Sebagai contoh, jika terdapat castring dari string ke class &lt;em&gt;Object &lt;/em&gt;dan dilakukan casting dari class &lt;em&gt;Object &lt;/em&gt;tersebut ke integer, &lt;em&gt;compiler &lt;/em&gt;tidak dapat mendeteksi kesalahan tersebut. Pada saat program dijalankan, &lt;em&gt;runtime &lt;/em&gt;.NET melempar &lt;em&gt;exception &lt;/em&gt;karena terdapat kesalahan casting dari string ke integer. Dengan menggunakan generic, compiler dapat memberitahukan kesalahan ini sebelum program dijalankan. Dengan generic juga dapat ditentukan &lt;em&gt;constraint &lt;/em&gt;untuk membatasi class-class yang digunakan pada generic, sehingga &lt;em&gt;compiler &lt;/em&gt;dapat mendeteksi &lt;em&gt;type &lt;/em&gt;yang tidak cocok.&lt;/li&gt;

&lt;li&gt;&lt;strong&gt;Perbaikan Kinerja&lt;/strong&gt;. Casting membutuhkan &lt;em&gt;boxing &lt;/em&gt;(konversi dari &lt;em&gt;value type &lt;/em&gt;ke &lt;em&gt;reference type&lt;/em&gt;) dan &lt;em&gt;unboxing &lt;/em&gt;(konversi dari &lt;em&gt;reference type &lt;/em&gt;ke &lt;em&gt;value type&lt;/em&gt;) yang membutuhkan sumber daya prosesor lebih banyak dan kinerja program lebih lambat. Dengan menggunakan generic tidak diperlukan &lt;em&gt;casting &lt;/em&gt;atau &lt;em&gt;boxing &lt;/em&gt;sehingga menambah kinerja &lt;em&gt;run-time&lt;/em&gt;.&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&amp;nbsp;Untuk memahami perbedaan antara penggunaan class &lt;em&gt;Object&lt;/em&gt; dan generic, lihat contoh program berikut:&lt;/p&gt;
&lt;div style="border:1px solid #7f7f7f;padding:5px;font-family:monospace,courier;"&gt;class Obj &lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public Object t;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public Object u;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public Obj(Object _t, Object _u) &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t = _t;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u = _u;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class Gen&amp;lt;T, U&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public T t;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public U u;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public Get(T _t, U _u)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t = _t;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u = _u;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
}&amp;nbsp;&lt;/div&gt;
&lt;p&gt;Seperti terlihat pada program di atas, class &lt;span style="font-style:italic;"&gt;Obj &lt;/span&gt;memiliki dua member dengan type &lt;em&gt;Object&lt;/em&gt;. Class &lt;span style="font-style:italic;"&gt;Gen &lt;/span&gt;memiliki dua member dengan dua member dengan type T dan U. Pada class &lt;span style="font-style:italic;"&gt;Obj&lt;/span&gt;, padameter dapat diisi oleh sembarang type sedangkan pada class &lt;span style="font-style:italic;"&gt;Gen &lt;/span&gt;variable sudah ditentukan typenya sehingga meminimalkan kesalahan &lt;span style="font-style:italic;"&gt;run-time&lt;/span&gt;.&lt;br /&gt;
&lt;span style="font-weight:bold;"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-weight:bold;"&gt;Penggunaan Type Generic&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Ketika menggunakan Type Generic, anda harus menentukan type yang digunakan. Berikut contoh penggunaan class &lt;span style="font-style:italic;"&gt;Obj&lt;/span&gt; dan &lt;span style="font-style:italic;"&gt;Gen&lt;/span&gt;.&lt;/p&gt;
&lt;div style="border:1px solid #7f7f7f;padding:5px;font-family:monospace,courier;"&gt;// Menambahkan dua string menggunakan class Obj&lt;br /&gt;
Obj oa = new Obj(&amp;quot;Hello, &amp;quot;, &amp;quot;World!&amp;quot;);&lt;br /&gt;
Console.WriteLine((string)oa.t + (string)oa.u);&lt;br /&gt;
&lt;br /&gt;
// Menambahkan dua string menggunakan class Gen&lt;br /&gt;
Gen&amp;lt;string, string&amp;gt; ga = new Gen&amp;lt;string, string&amp;gt;(&amp;quot;Hello, &amp;quot;, &amp;quot;World!&amp;quot;);&lt;br /&gt;
Console.WriteLine(ga.t + ga.u);&lt;br /&gt;
&lt;br /&gt;
// Menambahkan double dan int menggunakan class Obj&lt;br /&gt;
Obj ob = new Obj(10.125, 2005);&lt;br /&gt;
Console.WriteLine((double)ob.t + (int)ob.u);&lt;br /&gt;
&lt;br /&gt;
// Menambahkan double dan int menggunakan class Gen&lt;br /&gt;
Gen&amp;lt;double, int&amp;gt; gb = Gen&amp;lt;double, int&amp;gt;(10.125, 2005);&lt;br /&gt;
Console.WriteLine(gb.t + gb.u);&lt;br /&gt;
&lt;/div&gt;
&lt;p&gt;Ketika program dijalankan pada aplikasi console, class Obj dan Gen menghasilkan keluaran yang sama persis. Akan tetapi kode yang menggunakan class Gen akan berjalan lebih cepat dibandingkan dengan class Obj karena tidak memerlukan boxing dan unboxing ke dan dari class Object.&lt;/p&gt;
&lt;p&gt;Contoh program berikut menunjukkan bagaimana compiler memeriksa kesalahan sebelum program dijalankan.&lt;/p&gt;
&lt;div style="border:1px solid #7f7f7f;padding:5px;font-family:monospace,courier;"&gt;// Menambahkan double dan int menggunakan class Gen&lt;br /&gt;
Gen&amp;lt;double, int&amp;gt; gc = Gen&amp;lt;double, int&amp;gt;(10.125, 2005);&lt;br /&gt;
Console.WriteLine(gc.t + gc.u);&lt;br /&gt;&lt;br /&gt;
// Menambahkan double dan int menggunakan class Obj&lt;br /&gt;
Obj oc = new Obj(10.125, 2005);&lt;br /&gt;
Console.WriteLine((int)oc.t + (int)oc.u);&lt;br /&gt;&lt;/div&gt;
&lt;p&gt;Baris terakhir pada kode diatas mengandung kesalahan yaitu nilai oc.t di-casting ke int padahal seharusnya double. Kesalahan tersebut baru diketahui setelah program dijalankan, compiler tidak memberitahukan adanya kesalahan ini pada waktu program di-compile. Dengan menggunakan generic, tentunya lebih memudahkan untuk mendeteksi dan memperbaiki kesalahan sejak dini.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Menggunakan Constraint&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Constraint digunakan untuk membatasi penggunaan parameter dengan type tertentu. Generic mendukung empat jenis constraint yaitu:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Interface.&lt;/strong&gt; Hanya mengijinkan type yang menerapkan interface tertentu untuk menggunakan generic.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Base class. &lt;/strong&gt;Hanya mengijinkan tyoe yang cocok atau diturunkan dari base class tertentu untuk menggunakan generic.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Constructor. &lt;/strong&gt;Dibutuhkan type tertentu untuk menggunakan generic untuk menerapkan constructor  tanpa parameter.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Reference atau value type.&lt;/strong&gt; Dibutuhkan type tertentu untuk menggunakan generic salah satu dari reference atau value type.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Pada C# digunakan klausa &lt;em&gt;where&lt;/em&gt; untuk menerapkan constraint pada generic. Sebagai contoh, class generic berikut harus digunakan hanya oleh type yang menerapkan interface &lt;em&gt;IComparable&lt;/em&gt;.&lt;br /&gt;&lt;/p&gt;&lt;div style="border:1px solid #7f7f7f;padding:5px;font-family:monospace,courier;"&gt;class ComGen&amp;lt;T&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; where T : IComparable&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public T t1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public T t2;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public ComGen(T _t1, T _t2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; t1 = _t1;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; t2 = _t2;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public T Max()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (t2.CompareTo(t1) &amp;lt; 0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return t1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return t1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;p&gt;Class di atas akan di-compile tanpa kesalahan. Namun jika klausa &lt;em&gt;where &lt;/em&gt;dihapus, compiler akan melaporkan kesalahan yang menunjukan bahwa tyoe T tidak mengandung definisi &lt;em&gt;CompareTo&lt;/em&gt;. Dengan memberikan constraint generic kepada class yang mengimplementasikan &lt;em&gt;IComparable&lt;/em&gt;, class tersebut dijamin selalu mengandung method &lt;em&gt;CompareTo&lt;/em&gt;.&lt;/p&gt;&lt;p&gt;Contoh penggunaan generic pada class library Framework .NET 2.0 adalah pada List (System.Collections.Generic.List). Berikut contoh potongan kode yang menggunakan List.&lt;/p&gt;&lt;div style="border:1px solid #7f7f7f;padding:5px;font-family:monospace,courier;"&gt;class ListTest&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public List&amp;lt;Employe&amp;gt; GetEmployes()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; List&amp;lt;Employe&amp;gt; list = new List&amp;lt;Employe&amp;gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Configuration conf = WebConfigurationManager.OpenWebConfiguration();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ConnectionStringSettings setting = conf.ConnectionStrings.ConnectionStrings[&amp;quot;MyConn&amp;quot;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SqlConnection conn = new SqlConnection(setting.ConnectionString);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SqlCommand cmd = new SqlCommand(&amp;quot;SELECT FirstName, LastName, Age FROM Employe&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmd.Open();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SqlDataReader reader = cmd.ExecuteReader();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (reader.Read()) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Employe emp = new Employe(reader[&amp;quot;FirstName&amp;quot;].ToString(), reader[&amp;quot;LastName&amp;quot;].ToString(), Convert.ToInt32(reader[&amp;quot;Age&amp;quot;]));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; list.Add(prs);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reader.Close();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; conn.Close();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return list;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;class Employe&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private string firstname;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private string lastname;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private int age;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string FirstName&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get { return firstname; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set { firstname = value; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public string LastName&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get { return lastname; }&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set { lastname = value; }&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp; public string Age&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get { return age; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set { age= value; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Age(string _firstname, string _lastname, int _age)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; firstname = _firstname;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lastname = _lastname;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; age = _age;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
}&lt;br /&gt;}&amp;nbsp;&lt;br /&gt;  &lt;/div&gt;&lt;p&gt;Contoh program di atas memanfaatkan List (dalam namespace System.Collections.Generic) untuk menampung data Employe ke dalam collection. Class ListTest menggunakan List&amp;lt;Employe&amp;gt; sebagai nilai kembalian untuk method GetEmployes. Untuk mengakses kembalian dari method GetEmployes tidak diperlukan casting melainkan tinggal dipanggil secara langsung.&lt;/p&gt;&lt;div style="border:1px solid #7f7f7f;padding:5px;font-family:monospace,courier;"&gt;// Mengakses method GetEmployes&lt;br /&gt;ListTest lsTest = new ListTest();&lt;br /&gt;List&amp;lt;Employe&amp;gt; list = lsTest.GetEmployes();&lt;br /&gt;for (int i=0; i &amp;lt; list.Count; i++) &lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(&amp;quot;Employe #{0}\n&amp;quot;, i);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(&amp;quot;First Name : {0}\n&amp;quot;, list[i].FirstName);&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(&amp;quot;Last Name&amp;nbsp; : {0}\n&amp;quot;, list[i].LastName);&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(&amp;quot;Age&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : {0}\n&amp;quot;, list[i].Age);&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;p&gt;Dari contoh program di atas dapat dilihat bahwa tidak ada casting sehingga program dapat dibaca dengan mudah, kesalahan ketidakcocokan type dapat terdeteksi pada saat program di-compile serta kinerja program dapat meningkat.&lt;br /&gt;&lt;/p&gt;&lt;img src="http://semarang.netindonesia.net/aggbug.aspx?PostID=88" width="1" height="1"&gt;</description></item><item><title>Setup Microsoft SQL Server 2005 Failover Cluster</title><link>http://semarang.netindonesia.net/blogs/cahnom/archive/2007/01/19/Setup-Microsoft-SQL-Server-2005-Failover-Cluster.aspx</link><pubDate>Fri, 19 Jan 2007 04:13:00 GMT</pubDate><guid isPermaLink="false">227211f7-47d1-4d09-b2ba-bd75c546b02a:87</guid><dc:creator>cahnom</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Langkah demi langkah pembangunan Microsoft SQL Server Fail Over Cluster telah saya dokumentasikan di http://www.masykur.erudeye.net/SQLFOC.aspx&lt;/p&gt;&lt;p&gt;Semoga pengalaman saya tersebut dapat bermanfaat bagi yang lain.&amp;nbsp;&lt;/p&gt;&lt;img src="http://semarang.netindonesia.net/aggbug.aspx?PostID=87" width="1" height="1"&gt;</description></item><item><title>Membuat Pembasmi Brontok</title><link>http://semarang.netindonesia.net/blogs/cahnom/archive/2007/01/03/Membuat-Pembasmi-Brontok.aspx</link><pubDate>Wed, 03 Jan 2007 10:35:00 GMT</pubDate><guid isPermaLink="false">227211f7-47d1-4d09-b2ba-bd75c546b02a:86</guid><dc:creator>cahnom</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Hari ini sungguh menyedihkan... Pekerjaan terganggu akibat seranagn virus Brontok. Semua antivirus yang dimiliki termasuk &lt;a href="http://www.compactbyte.com/"&gt;CompactbyteAV&lt;/a&gt; tidak dapat mengenali varian Brontok terbaru ini. Apa boleh buat, daripada menunggu update antivirus dari vendor terlalu lama yang mungkin bisa memakan waktu 1 minggu aku coba untuk membuat pembasmi brontok menggunakan C#.&lt;/p&gt;

&lt;p&gt;Pertama adalah analisis karakteristik virus Brontok. Virus Brontok yang saya dapat menggunakan ekstensi *.exe dan *.pif yang tersebar di banyak folder dalam harddisk. File virus tersebut mengandung metadata sebagai berikut:&lt;/p&gt;

&lt;table cellpadding="3" cellspacing="0"&gt;

&lt;tr&gt;
&lt;th&gt;Item name&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;


&lt;tr&gt;
&lt;td&gt;Comments&lt;/td&gt;

&lt;td&gt;Bokeph MemendeZ&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;Company&lt;/td&gt;

&lt;td&gt;File Folder&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;File Version&lt;/td&gt;

&lt;td&gt;1.00&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;Internal Name&lt;/td&gt;

&lt;td&gt;BRoNToK&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;Language&lt;/td&gt;

&lt;td&gt;English (United States)&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;Legal Trademark&lt;/td&gt;

&lt;td&gt;Virus Revolution Project&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;Original File name&lt;/td&gt;

&lt;td&gt;BRoNToK.exe&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;Product Name&lt;/td&gt;

&lt;td&gt;BRoNToK&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;Product Version&lt;/td&gt;

&lt;td&gt;1.00&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;Berdasarkan informasi tersebut dapat dibuat pembasmi brontok dengan metadata sebagai kunci pencarian virus. Sebelum melakukan pembersihan file virus brontok, yang harus dilakukan adalah membunuh semua proses virus yang berjalan. Dengan memanfaatkan Windows Management Instrumentation dapat diambil semua proses yang berjalan dan informasi file proses tersebut berada. Jika file proses tersebut mengandung metadata seperti di atas, proses tersebut langsung dibunuh menggunakan namespace System.Diagnostics&lt;/p&gt;&lt;p&gt;Karena keterbatasan waktu, pembasmi brontok yang dibuat hanya berfungsi menghapus semua file virus yang ada tanpa memperbaiki atribut file dan nilai registry yang dirusak oleh virus. Untuk menyembuhkan kerusakan ini dapat digunakan tool HijackThis dan unduh semua &lt;font face="Arial, Arial, Helvetica"&gt;&lt;font color="#0000ff"&gt;&lt;a href="http://www.dougknox.com/xp/file_assoc.htm"&gt;Windows&lt;sup&gt;&amp;reg; &lt;/sup&gt;XP File Association Fixes&lt;/a&gt; &lt;/font&gt;&lt;/font&gt;file dari situs &lt;a href="http://www.dougknox.com/xp/file_assoc.htm"&gt;http://www.dougknox.com/xp/file_assoc.htm&lt;/a&gt;. Tool HijactThis digunakan untuk membuka blocking RegistryTool oleh virus dan menghapus semua startup program virus. Setelah RegistryTool dapat diakses kembali, lakukan penyembuhan pada registry dengan menjalankan file *.reg yang telah diunduh tadi.&lt;/p&gt;&lt;p&gt;Kode sumber project saya sertakan dalam lampiran tulisan ini.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://semarang.netindonesia.net/aggbug.aspx?PostID=86" width="1" height="1"&gt;</description><enclosure url="http://semarang.netindonesia.net/blogs/cahnom/attachment/86.ashx" length="235128" type="application/x-zip-compressed" /><category domain="http://semarang.netindonesia.net/blogs/cahnom/archive/tags/Brontok/default.aspx">Brontok</category><category domain="http://semarang.netindonesia.net/blogs/cahnom/archive/tags/Virus/default.aspx">Virus</category></item><item><title>First Look 2007 Microsoft Office System</title><link>http://semarang.netindonesia.net/blogs/cahnom/archive/2006/12/21/First-Look-2007-Microsoft-Office-System.aspx</link><pubDate>Thu, 21 Dec 2006 03:03:00 GMT</pubDate><guid isPermaLink="false">227211f7-47d1-4d09-b2ba-bd75c546b02a:84</guid><dc:creator>cahnom</dc:creator><slash:comments>0</slash:comments><description>Ingin tahu apa saja yang ada di 2007 Microsoft Office System. Microsoft memberikan eBook setelab 213 halaman yang memaparkan masing-masing fitur dari 2007 Microsoft Office System. Bagi yang ingin tahu tentang teknologi apa yang ada di 2007 Microsoft Office System dapat unduh ebook-nya di http://download.microsoft.com/download/3/5/a/35a8cb9f-1349-4645-ac2a-49ba61834826/First-Look-2007-Microsoft-Office-System.pdf&lt;br /&gt;&lt;img src="http://semarang.netindonesia.net/aggbug.aspx?PostID=84" width="1" height="1"&gt;</description><category domain="http://semarang.netindonesia.net/blogs/cahnom/archive/tags/Microsoft+Office/default.aspx">Microsoft Office</category></item><item><title>Solusi Crystal Report Error &quot;The maximum report processing jobs limit configured by your system administrator has been reached.&quot;</title><link>http://semarang.netindonesia.net/blogs/cahnom/archive/2006/12/19/Solusi-Crystal-Report-Error-_2200_The-maximum-report-processing-jobs-limit-configured-by-your-system-administrator-has-been-reached_2E002200_.aspx</link><pubDate>Tue, 19 Dec 2006 12:44:00 GMT</pubDate><guid isPermaLink="false">227211f7-47d1-4d09-b2ba-bd75c546b02a:83</guid><dc:creator>cahnom</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Lagi enak-enak lihat laporan, menampilkan beberapa laporan sekaligus eiittt.... koq munculnya pesan kesalahan &lt;strong&gt;&amp;quot;The maximum report processing jobs limit configured by your system administrator has been reached.&amp;quot; &lt;/strong&gt;Dengan sedikit kesabaran, dianalisis dan tanya ke Om Google, tidak lama mendapatkan jawaban atas kesalahan tersebut.&lt;/p&gt;&lt;p&gt;Setelah komputer di-start-ulang (restart) penyakit ini akan sembuh sementara namun tidak dapat memberikan solusi yang baik terutama untuk server yang sangat sibuk. Kesalahan ini timbul dikarenakan crystal report engine mengerjakan tugas yang terlalu banyak secara bersamaan. Penulisan kode yang kurang baik juga dapat menimbulkan kesalahan tersebut. Biasanya terjadi akibat Report Document tidak ditutup (close) atau dispose.&lt;/p&gt;&lt;img src="http://semarang.netindonesia.net/aggbug.aspx?PostID=83" width="1" height="1"&gt;</description><category domain="http://semarang.netindonesia.net/blogs/cahnom/archive/tags/Crystal+Report/default.aspx">Crystal Report</category></item><item><title>Apa yang dibutuhkan MS SQL Server 2005 ?</title><link>http://semarang.netindonesia.net/blogs/simbah/archive/2006/12/19/Apa-yang-dibutuhkan-MS-SQL-Server-2005-_3F00_.aspx</link><pubDate>Tue, 19 Dec 2006 02:54:00 GMT</pubDate><guid isPermaLink="false">227211f7-47d1-4d09-b2ba-bd75c546b02a:81</guid><dc:creator>simbah</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Cucu, tulisan ini sengaja simbah buat saat lagi belajar MS SQL Server 2005.&amp;nbsp; Begini kira-kira cara-cara mempersiapkan instalasi secara sederhana :&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Perhatikan jenis ms sql yang dimiliki, Express, Workgroup, Developer, Standart, Enterprise atau Mobile Edition&lt;/li&gt;&lt;li&gt;Lihat Hardware yang dibutuhkan.&amp;nbsp; Seperti biasa MS menuliskan yang paling minimum.&amp;nbsp; Tapi jangan percaya hal itu hehehehe... siapkan aja yang paling maksimal&lt;/li&gt;&lt;li&gt;Perlu diingat, Express&amp;nbsp;dan Workgroup Edition engga bisa jalan di mesin 64 Bit&lt;/li&gt;&lt;li&gt;Memory untuk Express minimal 512 sedangkan yang lainnya minimal 1 Gb&lt;/li&gt;&lt;li&gt;Express,&amp;nbsp;Workgroups, Developer&amp;nbsp;dan Standard bisa jalan di Win XP, Win XP SP2 dan Win 2000 Pro SP 4.&amp;nbsp; Untuk kelas Server, Win 2000 Server SP 4, Win 2003 Standar SP 1, Win 2003 Enterprise SP 1, Win 2003 Datacenter SP 1 dan Windows SBS 2003 SP 1.&lt;/li&gt;&lt;li&gt;Express juga bisa jalan di Windows 2003 Server Web SP 1&lt;/li&gt;&lt;li&gt;Developer jalan di 32 Bit atau 64 Bit, tergantung versi yang dimiliki&lt;/li&gt;&lt;li&gt;Enterprise hanya jalan dikelas Server kecuali Win&amp;nbsp;2003 Server Web SP 1&lt;/li&gt;&lt;li&gt;Minimal butuh Internet Explorer 6 SP 1 &lt;/li&gt;&lt;li&gt;Kalo mau pasang MS SQL Server Reporting Service, butuh IIS 5.0 keatas dan ASP.NET 2.0&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Camkan baik-baik ya cu...&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://semarang.netindonesia.net/aggbug.aspx?PostID=81" width="1" height="1"&gt;</description><category domain="http://semarang.netindonesia.net/blogs/simbah/archive/tags/MS+SQL+Server/default.aspx">MS SQL Server</category></item><item><title>Dot Net Nuke 4.x.x ( Portal Instan )</title><link>http://semarang.netindonesia.net/blogs/sun/archive/2006/11/30/Dot-Net-Nuke-4.x.x-_2800_-Portal-Instan-_2900_.aspx</link><pubDate>Thu, 30 Nov 2006 04:13:00 GMT</pubDate><guid isPermaLink="false">227211f7-47d1-4d09-b2ba-bd75c546b02a:79</guid><dc:creator>Sun</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;font size="-1"&gt;Bismillah hirRahman nirRahim.&lt;/font&gt;&lt;br /&gt;Semoga tulisan yang pertama ini diikuti oleh tulisanku yang kedua, ketiga, dst....&lt;br /&gt;Amin&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Berawal dari kebutuhan untuk membuat web yang cepet maka mau ndak mau akhirnya bertanya juga ke om google dan para senior programmer,setelah mendapat pengarahan dari mereka akhirnya aku ditunjukkan jalan ke CMS yang namanya DotNetNuke ( Dot Net Nuke ... ???? binatang apaan lagi neeh, tanyaku dalem ati ).&lt;br /&gt;&lt;br /&gt;Awal cerita,&lt;br /&gt;Pada jaman dahulu kala DotNetNuke merupakan sebuah Content Management System yang open souce ( gratiss tis tis tis); cuma sekarang, dalam perkembangannya DotNetNuke bukan lagi sebuah CMS akan tetapi telah berkembang menjadi sebuah web portal ( nah looo opo meneh kie )..... dadi nggladrah... wis ah..&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Kembali ke DotNetNuke,&lt;br /&gt;Setelah yakin akan kedigdayaan serta kesaktian DotNetNuke, maka mulailah aku mencari DotNetNuke persi terbaru ( mau don lot nih ceritanya ). nah baru aja mau ngedonlot karena dah nemu situsnya, sang senior programmer dah ngelarang dulu, katanya ginih ( Ngopo ndadak donlot, kie looh aku wis ndonlot.... jupuken neng komputer 192.168.x.x... . dah complit njerit... ono bukune barang :D ). Wah-wah memang punya senior yang kayak gini memang jossss tenan, ngerti apa yang kita mau. ( Thx coyy, besok lagi yah :D ).&lt;/p&gt;&lt;p&gt;Mulailah step-step installasi di local computerku.&lt;br /&gt;Kebutuhan awal dari DotNetNuke dah ada semua di kompiku spt ASP.NET 2.0, SQL 2005 Express, Editor .NET2005 dah ada semua jadi tinggal install DotNetNuke ajah.&lt;br /&gt;Waktu install cepet banget nggak ada 1 menit sampe aku gak percaya ( iki wis bener nginstall opo durung sih ). tapi setelah aku liat di .NET 2005 memang dah keinstall modul DotNetNuke.&amp;nbsp; jadi dah bener.&lt;/p&gt;&lt;p&gt;Buat aplikasi baru New WebSite - DotNetNuke Web Application Framework...., set up, seting sana-sini termasuk web-config, pasang database, compile...... dan.... RUN&lt;/p&gt;&lt;p&gt;dan.... dan.. hasilnya sungguh menakjubkan... Hanya dalam hitungan beberapa menit sebuah portal telah terpampang didepan mata dengan gagahnya....&lt;/p&gt;&lt;p&gt;wuiiih wuiiiihh hebat tenan coy... nih gambarnyaaa.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img alt="gambar DotNetNuke" height="300" src="http://i15.photobucket.com/albums/a367/SunarAC2005/DotNetNuke.jpg" title="gambar DotNetNuke" width="151" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://semarang.netindonesia.net/aggbug.aspx?PostID=79" width="1" height="1"&gt;</description></item><item><title>Pengalaman Baru dengan Windows Vista</title><link>http://semarang.netindonesia.net/blogs/cahnom/archive/2006/11/20/Pengalaman-Baru-dengen-Windows-Vista.aspx</link><pubDate>Mon, 20 Nov 2006 07:23:00 GMT</pubDate><guid isPermaLink="false">227211f7-47d1-4d09-b2ba-bd75c546b02a:77</guid><dc:creator>cahnom</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;&amp;nbsp;&lt;img align="top" height="433" src="http://semarang.netindonesia.net/photos/windows_vista/images/76/original.aspx" style="width:534px;height:433px;" width="534" /&gt;&lt;/p&gt;&lt;p&gt;Alhamdulillah&lt;/p&gt;&lt;p&gt;Hari ini, pagi hari kedatanganku di kantor telah disambut oleh perangkat keras baru -- kartu grafis NVIDIA GeForce FX 5500, harddisk 140GB dan RAM 1GB. Setelah sedikit berkeringat mengganti perangkat keras dengan yang baru, aku coba untuk pasang Windows Vista RC1 yang didapat dari Majalah Chip Edisi 10/2006. Pengalaman pertama pasang Windows Vista tidak 100% mulus. Peratama saya lupa untuk meminta Procuct Key dari Microsoft. Hach.... booting lagi ke Win XP untuk browsing ke Microsoft (&lt;a href="http://www.windowsvista.com/preview/register"&gt;http://www.windowsvista.com/preview/register&lt;/a&gt;) untuk mendapatkan Product Key Windows Vista R1. Microsoft tidak berbelit-belit dalam memberikan Product Key untuk evaluasi tersebut. Saya tinggal masuk dengan Microsoft Passport dan memasukkan beberapa pilihan, Alhamdulillah Product Key secara cuma-cuma diberikan oleh Microsoft kepada saya.&lt;/p&gt;&lt;p&gt;Selanjutnya saya ulangi proses pemasangan Windows Vista dan akhirnya terpasang dengan baik tanpa hambatan yang berarti. Proses pemasangan sangat mudah, boleh dibilang lebih mudah dari Windows sebelumnya.&lt;/p&gt;&lt;p&gt;Setelah Windows Vista terpasang, saya belum menemukan keungulan yang digembar-gemborkan oleh Microsoft selama ini padahal kebutuhan minimum perangkat keras sudah terpenuhi. Setelah mencari di help, tidak sulit untuk mendapatkan referensi bagaimana mengaktifkan Aero di Windows Vista, tinggal search dan dapat deh cara mengaktifkan Aero (&lt;u&gt;&lt;font color="#0066cc"&gt;How do I get Windows Aero?&lt;/font&gt;&lt;/u&gt;).&lt;/p&gt;&lt;p&gt;Ikuti langkah-langkah dalam dokumen tersebut dan hasilnya, Aero yang sangat menarik telah aktif di desktop saya.&lt;/p&gt;&lt;p&gt;Kesan-kesan:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Microsoft berusaha meniru Tiger-nya Mac dengan Aero namun menurut saya belum bisa menggunggulinya. Microsoft hanya sebatas dapat mengekor kejayaan Mac-OS X dalam hal kecantikan animasi desktop.&lt;/li&gt;&lt;li&gt;Walaupun banyak perubahan dalam tampilan Windows Vista namun saya belum menemukan perubahan yang sangat berarti dari versi sebelumnya (mungkin dikarenakan saya belum mencobanya secara keseluruhan kali yach?)&lt;/li&gt;&lt;li&gt;Dari sisi keamanan, cukup baik. Segala sesuatu yang berkaitan dengan administrasi sistem -- instalasi, konfigurasi, update -- selalu dimintakan konfirmasi berupa jendela pop-up. Berbeda dengan pop-up versi Windows sebelumnya, jendela pop-up Vista mendisable semua jendela lainnya. Peningkatan keamanan juga memberikan dampak penurunan kenyamanan karena terlalu banyak pop-up yang muncul.&lt;/li&gt;&lt;li&gt;Masih banyak aplikasi yang tidak dapat berjalan (di-&lt;em&gt;install&lt;/em&gt;) di Vista termasuk software paling gress dari Microsoft (MS Office 2007 Beta 2, dari DVD original-nya Microsoft) walaupun sudah menggunakan &lt;em&gt;Compatibility Mode&lt;/em&gt;.&lt;/li&gt;&lt;li&gt;Ada kemajuan yang cukup melegakan ketika berselancar dengan Internet Explorer 7, saat melakukan download berkas (file) berukuran besar. Walaupun tidak terdapat perubahan tampilan dibandingkan dengan versi sebelumnya (tidak ada tombol &lt;em&gt;resume)&lt;/em&gt; namun aktifitas download dapat dilanjutkan kembali di lain waktu (&lt;em&gt;resume&lt;/em&gt;). Hal ini sangat berbeda dengan versi IE sebelumnya yang sangat kacau dalam pengelolaan download dan memerlukan download manager untuk meningkatkan keberhasilan download.&lt;/li&gt;&lt;/ol&gt;&lt;img src="http://semarang.netindonesia.net/aggbug.aspx?PostID=77" width="1" height="1"&gt;</description><category domain="http://semarang.netindonesia.net/blogs/cahnom/archive/tags/Windows+Vista/default.aspx">Windows Vista</category></item><item><title>Transfer Logins dan Passwords Antar Instance MS SQL Server</title><link>http://semarang.netindonesia.net/blogs/cahnom/archive/2006/11/08/Transfer-Objek-Logins-dan-Passwords-Antar-Instance-MS-SQL-Server.aspx</link><pubDate>Wed, 08 Nov 2006 07:51:00 GMT</pubDate><guid isPermaLink="false">227211f7-47d1-4d09-b2ba-bd75c546b02a:75</guid><dc:creator>cahnom</dc:creator><slash:comments>0</slash:comments><description>&lt;h4&gt;Pendahuluan&lt;/h4&gt;
&lt;p&gt;Terdapat beberapa masalah saat kita memindahkan database dari instance satu ke instance lainnya atau dari mesin server satu ke server lainnya atau saat melakukan upgrade side-by-side MS SQL Server dari versi lama ke versi yang baru. Salah satu masalah tersebut adalah objek login dan password tidak ikut ditransfer padahal semua data telah dipindahkan baik dengan cara backup restore maupun detach dan attach database. Setelah semua data selesai dipindahkan dan berusaha login ke database, akan muncul pesan:&lt;/p&gt;
&lt;div&gt;Msg 18456, Level 16, State 1&lt;br /&gt;
 Login failed for user &amp;#39;%ls&amp;#39;. &lt;br /&gt;
&lt;/div&gt;
&lt;p&gt;Masalah ini timbul karena data login dan password tidak disimpan dalam masing-masing database namun disimpan dalam master database sehingga perlu dilakukan pemindahan secara manual.&lt;br /&gt;
&lt;/p&gt;

&lt;h4&gt;Transfer Login dan Password Antar Server MS SQL Server 7.0&lt;/h4&gt;

&lt;p&gt;Fasilitasn Transfer Objek pada SQL Server 7.0 Transformation Services (DTS) dapat digunakan untuk mentransfer login dan user antara dua buah sever tetapi tidak password login SQL Server tidak ikut ditransfer. Untuk mentransfer login dan password pada SQL Server 7.0 ke server lain yang menjalankan SQL Server 7.0 dapat dilakukan dengan langkah-langkah pada sesi &amp;quot;Solusi Lengkap untuk Transfer Login dan Password antar SQL Server dengan Versi yang Berbeda&amp;quot;.&lt;br /&gt;
&lt;/p&gt;
&lt;h4&gt;
Transfer Login dan Password dari SQL Server 7.0 ke SQL Server 2000 atau Antar Instance SQL Server 2000&lt;/h4&gt;
&lt;p&gt;Transfer Login dan Password dari SQL Server 7.0 ke instance SQL Server 2000 atau antar dua Instance SQL Server 2000 dapat dilakukan dengan menggunakan Task Transfer Paket Login pada DTS dalam SQL Server 2000. Langkah-langkah transfer yang dilakukan sebagai berikut:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Konek ke SQL Server 2000 tujuan, pada SQL Server Enterprise Manager pindah ke Data Transformation Services, buka folder, klik-kanan &lt;span style="font-weight:bold;"&gt;Local Packages&lt;/span&gt;, dan klik &lt;span style="font-weight:bold;"&gt;New Package&lt;/span&gt;. &lt;br /&gt;
&lt;/li&gt;

&lt;li&gt;Setelah DTS package designer terbuka, klik &lt;span style="font-weight:bold;"&gt;Transfer Logins Task &lt;/span&gt;pada menu &lt;span style="font-weight:bold;"&gt;Task&lt;/span&gt;. Lengkapi informasi tentang &lt;span style="font-weight:bold;"&gt;Source&lt;/span&gt;, &lt;span style="font-weight:bold;"&gt;Destination &lt;/span&gt;dan tab &lt;span style="font-weight:bold;"&gt;Logins &lt;/span&gt;dengan tepat.&lt;br /&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;span style="font-weight:bold;"&gt;Penting:&lt;/span&gt; SQL Server 2000 tujuan tidak dapat berjalan pada SQL Server 2000 versi 64-bit. Komponen DTS untuk SQL Server 2000 versi 64-bit tidak tersedia.&lt;/p&gt;

&lt;p&gt;&lt;span style="font-weight:bold;"&gt;Catatan:&lt;/span&gt; Metode DTS akan mentransfer password namun tidak mentransfer SID yang asli. Jika login tidak dibuat dengan SID asli dan user database ditransfer ke server yang baru, user database tidak akan berhubungan dengan login. Untuk mentransfer SID asli, lakukan langkah pada sesi &amp;quot;Solusi Lengkap untuk Transfer Login dan Password antar SQL Server dengan Versi yang Berbeda&amp;quot;.&lt;/p&gt;
&lt;h4&gt;Transfer Login dan Password Antar Instance SQL Server 2005&lt;/h4&gt;
&lt;p&gt;Informasi mengenai transfer login dan password antar instance SQL Server 2005 dapat dilihat pada artikel Microsoft Knowledge Base:&lt;/p&gt;

&lt;p&gt; &lt;a class="KBlink" href="http://support.microsoft.com/kb/918992/"&gt;918992&lt;/a&gt;
 How to transfer the logins and the passwords between instances of SQL Server 2005.&lt;/p&gt;
&lt;h4&gt;Solusi Lengkap untuk Transfer Login dan Password antar SQL Server dengan Versi yang Berbeda&lt;/h4&gt;
&lt;p&gt;Metode ini dapat diterapkan untuk:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Transfer login dan password dari SQL Server 7.0 ke SQL Server 7.0.&lt;/li&gt;

&lt;li&gt;Transfer login dan password dari SQL Server 7.0 ke SQL Server 2000.&lt;/li&gt;

&lt;li&gt;Transfer login dan password dari SQL Server 7.0 ke SQL Server 2005.&lt;/li&gt;

&lt;li&gt;Transfer login dan password antar server yang menjalankan instance SQL Server 2000.&lt;/li&gt;

&lt;li&gt;Transfer login dan password dari SQL Server 2000 ke SQL Server 2005.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;strong&gt;Note&lt;/strong&gt; Lihat catatan pada akhir artikel ini mengenai informasi penting tentang langkah-langkah berikut.&lt;br /&gt;
&lt;/p&gt;

&lt;p&gt;Untuk mentransfer login dan password antar versi SQL Server yang berbeda, ikuti langkah-langkah berikut:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Jalankan script di bawah pada SQL Server sumber. Script ini akan membuat dua stored procedure dengan nama sp_hexadecimal dan sp_help_revlogin dalam database master. Lanjutkan langkah 2 setelah pembuatan procedure selesai.&lt;br /&gt;
&lt;strong&gt;
Catatan:&lt;/strong&gt; Procedure di bawah merupakan independen pada tabel sistem SQL Server. Struktur tabel mungkin dapat berubah antar versi SQL Server, dan pengambilan langsung dari tabel system tidak dianjurkan.&lt;br /&gt;
&lt;div style="border:1px solid #a7a7a7;padding-left:3px;background-color:#e7e7e7;font-family:courier new;font-size:small;"&gt;
&lt;pre style="font-family:courier;font-size:small;"&gt;----- Begin Script, Create sp_help_revlogin procedure -----

USE master
GO
IF OBJECT_ID (&amp;#39;sp_hexadecimal&amp;#39;) IS NOT NULL
  DROP PROCEDURE sp_hexadecimal
GO

CREATE PROCEDURE sp_hexadecimal
    @binvalue varbinary(256),
    @hexvalue varchar(256) OUTPUT
AS
DECLARE @charvalue varchar(256)
DECLARE @i int
DECLARE @length int
DECLARE @hexstring char(16)
SELECT @charvalue = &amp;#39;0x&amp;#39;
SELECT @i = 1
SELECT @length = DATALENGTH (@binvalue)
SELECT @hexstring = &amp;#39;0123456789ABCDEF&amp;#39; 
WHILE (@i &amp;lt;= @length) 
BEGIN
  DECLARE @tempint int
  DECLARE @firstint int
  DECLARE @secondint int
  SELECT @tempint = CONVERT(int, SUBSTRING(@binvalue,@i,1))
  SELECT @firstint = FLOOR(@tempint/16)
  SELECT @secondint = @tempint - (@firstint*16)
  SELECT @charvalue = @charvalue +
    SUBSTRING(@hexstring, @firstint+1, 1) +
    SUBSTRING(@hexstring, @secondint+1, 1)
  SELECT @i = @i + 1
END
SELECT @hexvalue = @charvalue
GO

IF OBJECT_ID (&amp;#39;sp_help_revlogin&amp;#39;) IS NOT NULL
  DROP PROCEDURE sp_help_revlogin
GO
CREATE PROCEDURE sp_help_revlogin @login_name sysname = NULL AS
DECLARE @name    sysname
DECLARE @xstatus int
DECLARE @binpwd  varbinary (256)
DECLARE @txtpwd  sysname
DECLARE @tmpstr  varchar (256)
DECLARE @SID_varbinary varbinary(85)
DECLARE @SID_string varchar(256)

IF (@login_name IS NULL)
  DECLARE login_curs CURSOR FOR 
    SELECT sid, name, xstatus, password FROM master..sysxlogins 
    WHERE srvid IS NULL AND name &amp;lt;&amp;gt; &amp;#39;sa&amp;#39;
ELSE
  DECLARE login_curs CURSOR FOR 
    SELECT sid, name, xstatus, password FROM master..sysxlogins 
    WHERE srvid IS NULL AND name = @login_name
OPEN login_curs 
FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @xstatus, @binpwd
IF (@@fetch_status = -1)
BEGIN
  PRINT &amp;#39;No login(s) found.&amp;#39;
  CLOSE login_curs 
  DEALLOCATE login_curs 
  RETURN -1
END
SET @tmpstr = &amp;#39;/* sp_help_revlogin script &amp;#39; 
PRINT @tmpstr
SET @tmpstr = &amp;#39;** Generated &amp;#39; 
  + CONVERT (varchar, GETDATE()) + &amp;#39; on &amp;#39; + @@SERVERNAME + &amp;#39; */&amp;#39;
PRINT @tmpstr
PRINT &amp;#39;&amp;#39;
PRINT &amp;#39;DECLARE @pwd sysname&amp;#39;
WHILE (@@fetch_status &amp;lt;&amp;gt; -1)
BEGIN
  IF (@@fetch_status &amp;lt;&amp;gt; -2)
  BEGIN
    PRINT &amp;#39;&amp;#39;
    SET @tmpstr = &amp;#39;-- Login: &amp;#39; + @name
    PRINT @tmpstr 
    IF (@xstatus &amp;amp; 4) = 4
    BEGIN -- NT authenticated account/group
      IF (@xstatus &amp;amp; 1) = 1
      BEGIN -- NT login is denied access
        SET @tmpstr = &amp;#39;EXEC master..sp_denylogin &amp;#39;&amp;#39;&amp;#39; + @name + &amp;#39;&amp;#39;&amp;#39;&amp;#39;
        PRINT @tmpstr 
      END
      ELSE BEGIN -- NT login has access
        SET @tmpstr = &amp;#39;EXEC master..sp_grantlogin &amp;#39;&amp;#39;&amp;#39; + @name + &amp;#39;&amp;#39;&amp;#39;&amp;#39;
        PRINT @tmpstr
      END
    END
    ELSE BEGIN -- SQL Server authentication
      IF (@binpwd IS NOT NULL)
      BEGIN -- Non-null password
        EXEC sp_hexadecimal @binpwd, @txtpwd OUT
        IF (@xstatus &amp;amp; 2048) = 2048
          SET @tmpstr = &amp;#39;SET @pwd = CONVERT (varchar(256), &amp;#39; + @txtpwd + &amp;#39;)&amp;#39;
        ELSE
          SET @tmpstr = &amp;#39;SET @pwd = CONVERT (varbinary(256), &amp;#39; + @txtpwd + &amp;#39;)&amp;#39;
        PRINT @tmpstr
	EXEC sp_hexadecimal @SID_varbinary,@SID_string OUT
        SET @tmpstr = &amp;#39;EXEC master..sp_addlogin &amp;#39;&amp;#39;&amp;#39; + @name 
          + &amp;#39;&amp;#39;&amp;#39;, @pwd, @sid = &amp;#39; + @SID_string + &amp;#39;, @encryptopt = &amp;#39;
      END
      ELSE BEGIN 
        -- Null password
	EXEC sp_hexadecimal @SID_varbinary,@SID_string OUT
        SET @tmpstr = &amp;#39;EXEC master..sp_addlogin &amp;#39;&amp;#39;&amp;#39; + @name 
          + &amp;#39;&amp;#39;&amp;#39;, NULL, @sid = &amp;#39; + @SID_string + &amp;#39;, @encryptopt = &amp;#39;
      END
      IF (@xstatus &amp;amp; 2048) = 2048
        -- login upgraded from 6.5

        SET @tmpstr = @tmpstr + &amp;#39;&amp;#39;&amp;#39;skip_encryption_old&amp;#39;&amp;#39;&amp;#39; 
      ELSE 
        SET @tmpstr = @tmpstr + &amp;#39;&amp;#39;&amp;#39;skip_encryption&amp;#39;&amp;#39;&amp;#39;
      PRINT @tmpstr 
    END
  END
  FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @xstatus, @binpwd
  END
CLOSE login_curs 
DEALLOCATE login_curs 
RETURN 0
GO
 ----- End Script -----

&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;/li&gt;

&lt;li&gt;Setelah stored procedure &lt;strong&gt;sp_help_revlogin&lt;/strong&gt; dibuat, jalankan procedure &lt;strong&gt;sp_help_revlogin&lt;/strong&gt; dari Quert Analyzer pada server sumber. Stored procedure &lt;strong&gt;sp_help_revlogin&lt;/strong&gt; dapat digunakan pada SQL Server 7.0 dan SQL Server 2000. Keluaran stored procedure &lt;strong&gt;sp_help_revlogin&lt;/strong&gt; adalah script login untuk membuat login dan password dengan SID asli. Simpan keluaran, dan kemudian paste dan jalankan pada Query Analyzer SQL Server tujuan. Contoh:&lt;br /&gt;
&lt;div style="border:1px solid #a7a7a7;padding-left:3px;background-color:#e7e7e7;font-family:courier new;font-size:small;"&gt;
&lt;pre&gt;EXEC master..sp_help_revlogin
&lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
Sampai sejauh ini proses pemindahan login dan password berjalan lancar.
Informasi lebih jauh dapat dilihat pada &lt;a href="http://support.microsoft.com/kb/246133/"&gt;http://support.microsoft.com/kb/246133/&amp;nbsp;&lt;/a&gt;&lt;img src="http://semarang.netindonesia.net/aggbug.aspx?PostID=75" width="1" height="1"&gt;</description><category domain="http://semarang.netindonesia.net/blogs/cahnom/archive/tags/SQL+Server/default.aspx">SQL Server</category></item><item><title>Migrasi MS SQL Server 2000 ke MS SQL Server 2005</title><link>http://semarang.netindonesia.net/blogs/cahnom/archive/2006/11/01/Migrasi-MS-SQL-Server-2000-ke-MS-SQL-Server-2005.aspx</link><pubDate>Wed, 01 Nov 2006 07:41:00 GMT</pubDate><guid isPermaLink="false">227211f7-47d1-4d09-b2ba-bd75c546b02a:72</guid><dc:creator>cahnom</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Berikut sedikit tulisan mengenai pengalaman saya dalam melakukan migrasi database dari MS SQL Server 2000 ke MS SQL Server 2005.&lt;/p&gt;&lt;p&gt;Ada dua metode migrasi:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;In-Place Migration&lt;/li&gt;&lt;li&gt;Side-By-Side Migration&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Pada metode In-Place Migration, instance SQL Server 2000 ditimpa oleh instance yang baru dengan melakukan instalasi MS SQL Server 2005 dalam mesin yang sama. Metode ini mudah dilakukan dan tidak memerlukan langkah yang rumit. Instance database lama beserta konfigurasinya akan secara otomatis di-upgrade ke instance yang baru. Metode ini memiliki risiko tinggi bila terjadi kegagalan saat proses migrasi. Instance database lama akan sulit di-rollback apabila terjadi kegagalan.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Metode Side-By-Side merupakan metode migrasi dari instance MS SQL Server 2000 ke MS&amp;nbsp; SQL Server 2005 pada mesin yang berbeda. Metode ini lebih rumit dibandingkan dengan metode In-Place. Terdapat beberapa langkah yang harus dilakukan baik sebelum maupun pada saat proses migrasi berlangsung. Metode ini lebih aman dibandingkan metode sebelumnya karena instance database yang lama tidak mengalami perubahan.&lt;/p&gt;&lt;p&gt;Langkah-langkah melakukan migrasi dengan metode Side-By-Side adalah sebagai berikut:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Mengambil data dari instance database lama&lt;br /&gt;Pengambilan data dapat dilakukan dengan dua cara: &lt;a href="http://m006asgx0ofxt7b3k4v5.usercash.com" title="detach"&gt;detach&lt;/a&gt; database dan &lt;a href="http://kh8hot2f53vd245lrh.usercash.com" title="full-backup"&gt;full-backup&lt;/a&gt; database.&lt;/li&gt;&lt;li&gt;Install &lt;a href="http://n412kcbrl9d1ku9lj.usercash.com"&gt;MS SQL Server 2005 Upgrade Advisor&lt;/a&gt; dan jalankan tool tersebut untuk mendapatkan informasi issue yang kemungkinan menjadi penyebab kegagalan saat proses migrasi.&lt;/li&gt;&lt;li&gt;Lakukan perbaikan / penyesuaian terhadap hasil laporan SQL Server 2005 Upgrade Advisor.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://k5on5kpbjlo1lgn.usercash.com"&gt;Instalasi instance MS SQL Server 2005&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Siapkan lokasi datafile dan log file. Contoh: untuk datafile ditempatkan di D:\SQL\Data dan logfile ditempatkan di E:\SQL\Log&lt;/li&gt;&lt;li&gt;Apabila data dari instance yang lama berupa datafile dan log file, salin (copy) data file dan logfile ke lokasi yang telah disiapkan dal lakukan &lt;a href="http://m006asgx0ofxt7b3k4v5.usercash.com"&gt;attach &lt;/a&gt;database. Apabila data instance lama berupa backup database, lakukan restore dengan lokasi datafile dan logfile yang telah ditentukan.&lt;/li&gt;&lt;li&gt;Transfer login dan password menggunakan script yang dapat dilihat di &lt;a href="http://lhzd77-ix4d6tqgd7r.usercash.com"&gt;http://support.microsoft.com/kb/246133/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Lakukan pengujian dengan aplikasi klien yang ada.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Referensi lengkap mengenai proses migrasi basisdata dari MS SQL Server 2000 ke MS SQL Server 2005 dapat diambil &lt;a href="http://lry78d9f-rfmbuc42p.usercash.com"&gt;di sini&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Semoga tulisan ini dapat membantu database administrator dalam melakukan migrasi dari MS SQL Server 2000 ke MS SQL Server 2005.&lt;br /&gt;&lt;/p&gt;&lt;img src="http://semarang.netindonesia.net/aggbug.aspx?PostID=72" width="1" height="1"&gt;</description><category domain="http://semarang.netindonesia.net/blogs/cahnom/archive/tags/SQL+Server/default.aspx">SQL Server</category></item><item><title>GridView (ASP.NET 2.0)</title><link>http://semarang.netindonesia.net/blogs/dokter/archive/2006/10/17/GridView-_2800_ASP.NET-2.0_2900_.aspx</link><pubDate>Tue, 17 Oct 2006 14:02:00 GMT</pubDate><guid isPermaLink="false">227211f7-47d1-4d09-b2ba-bd75c546b02a:71</guid><dc:creator>dokter</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;Hey,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;Saya mau nulis tentang gridview di ASP.NET 2.0. Gridview control&amp;nbsp;adalah &lt;em&gt;&lt;span style="font-family:Arial;"&gt;class &lt;/span&gt;&lt;/em&gt;baru di .net framework 2.0, mungkin sebagian dari pembaca sudah tahu tentang DataGrid control&amp;nbsp;di .net 1.0, GridView ini adalah pengganti DataGrid.&amp;nbsp;Fungsi dasar dari control ini yaitu untuk menampilkan data dari database, dimana setiap kolom mewakili kolom, dan setiap baris mewakili satu record yang terdapat dalam database.&amp;nbsp;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;GridView control memiliki beberapa fungsi sebagai berikut:&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li class="MsoNormal" style="margin:0cm 0cm 0pt;tab-stops:list 36.0pt;"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;built-in sorting (fungsi penyortir data)&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="margin:0cm 0cm 0pt;tab-stops:list 36.0pt;"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;update dan hapus record&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="margin:0cm 0cm 0pt;tab-stops:list 36.0pt;"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;paging (otomatis membuat halaman baru, tiap sekian record yang ditampilkan, tergantung si programmer)&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="margin:0cm 0cm 0pt;tab-stops:list 36.0pt;"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;dsb.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;Dibawah ini akan saya berikan satu contoh sederhana untuk menampilkan data dari Northwind database yang terdapat dalam MSSQL Server 2005&amp;nbsp;EE&amp;nbsp;dengan menggunakan contoh kode, bukan wizard yang terdapat dalam Visual Studio 2005 atau Visual Web Developer Express 2005, karena dengan berlatih menulis kode, diharapkan kita bisa lebih mengerti apa yang terjadi pada proses penampilan data di GridView tersebut.&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li class="MsoNormal" style="margin:0cm 0cm 0pt;tab-stops:list 36.0pt;"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;Deklarasi GridView di design view:&lt;br /&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:maroon;"&gt;GridView&lt;/span&gt; &lt;span style="color:red;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;GridView1&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:maroon;"&gt;GridView&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="margin:0cm 0cm 0pt;color:blue;tab-stops:list 36.0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:Arial;"&gt;Di kode view di dalam method Page_Load, ketik kode dibawah ini:&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p style="margin-left:36pt;"&gt;&lt;span style="font-size:10pt;color:teal;font-family:Arial;"&gt;SqlConnection&lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:Arial;"&gt; conn; &lt;br /&gt;conn = &lt;/span&gt;&lt;span style="font-size:10pt;color:blue;font-family:Arial;"&gt;new&lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:Arial;"&gt; &lt;/span&gt;&lt;span style="font-size:10pt;color:teal;font-family:Arial;"&gt;SqlConnection&lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:Arial;"&gt;(&lt;/span&gt;&lt;span style="font-size:10pt;color:maroon;font-family:Arial;"&gt;@&amp;quot;Data Source=PC-ARIE\sqlexpress;Initial Catalog=NorthwindCS;Integrated Security=True&amp;quot;&lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:Arial;"&gt;); &lt;/span&gt;&lt;span style="font-size:10pt;color:blue;font-family:Arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:teal;font-family:Arial;"&gt;SqlCommand&lt;/span&gt;&lt;span style="font-size:10pt;color:blue;font-family:Arial;"&gt; cmd = new &lt;/span&gt;&lt;span style="font-size:10pt;color:teal;font-family:Arial;"&gt;SqlCommand&lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:Arial;"&gt;(); &lt;br /&gt;cmd.Connection = conn;&lt;br /&gt;cmd.CommandText = &lt;/span&gt;&lt;span style="font-size:10pt;color:maroon;font-family:Arial;"&gt;&amp;quot;SELECT * FROM Customers&amp;quot;&lt;/span&gt;&lt;span style="font-size:10pt;color:blue;font-family:Arial;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:teal;font-family:Arial;"&gt;SqlDataReader&lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:Arial;"&gt; reader; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:blue;font-family:Arial;"&gt;try&lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:Arial;"&gt; &lt;br /&gt;{&lt;br /&gt;conn.Open();&lt;br /&gt;reader = cmd.ExecuteReader();&lt;br /&gt;GridView1.DataSource = reader;&lt;br /&gt;GridView1.DataBind();&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:blue;font-family:Arial;"&gt;catch&lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:Arial;"&gt; { Response.Write(&lt;/span&gt;&lt;span style="font-size:10pt;color:maroon;font-family:Arial;"&gt;&amp;quot;Error&amp;quot;&lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:Arial;"&gt;); } &lt;/span&gt;&lt;span style="font-size:10pt;color:blue;font-family:Arial;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:10pt;color:black;font-family:Arial;"&gt;OK, sekarang penjelasan tentang kode diatas;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:teal;font-family:Arial;"&gt;SqlConnection&lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:Arial;"&gt; conn; &lt;br /&gt;conn = &lt;/span&gt;&lt;span style="font-size:10pt;color:blue;font-family:Arial;"&gt;new&lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:Arial;"&gt; &lt;/span&gt;&lt;span style="font-size:10pt;color:teal;font-family:Arial;"&gt;SqlConnection&lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:Arial;"&gt;(&lt;/span&gt;&lt;span style="font-size:10pt;color:maroon;font-family:Arial;"&gt;@&amp;quot;Data Source=MYCOMPUTER\sqlexpress;Initial Catalog=NorthwindCS;Integrated Security=True&amp;quot;&lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:Arial;"&gt;);&lt;br /&gt;&lt;br /&gt;Kode tersebut membentuk satu objek dari SqlConnection &lt;em&gt;&lt;span style="font-family:Arial;"&gt;class &lt;/span&gt;&lt;/em&gt;yang berfungsi sebagai penghubung aplikasi kita dengan database. Menurut &lt;em&gt;&lt;span style="font-family:Arial;"&gt;connection string&lt;/span&gt;&lt;/em&gt;, database yang ingin kita ambil datanya adalah NorthwindCS yang berada pada komputer MYCOMPUTER, jadi objek ini hanya dapat digunakan untuk menghubungkan aplikasi dengan NorthwindCS database, kecuali kalau kita ganti &lt;em&gt;&lt;span style="font-family:Arial;"&gt;connection string&lt;/span&gt;&lt;/em&gt; dengan yang lain.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:teal;font-family:Arial;"&gt;SqlCommand&lt;/span&gt;&lt;span style="font-size:10pt;color:blue;font-family:Arial;"&gt; cmd = new &lt;/span&gt;&lt;span style="font-size:10pt;color:teal;font-family:Arial;"&gt;SqlCommand&lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:Arial;"&gt;(); &lt;br /&gt;cmd.Connection = conn;&lt;br /&gt;cmd.CommandText = &lt;/span&gt;&lt;span style="font-size:10pt;color:maroon;font-family:Arial;"&gt;&amp;quot;SELECT * FROM Customers&amp;quot;&lt;/span&gt;&lt;span style="font-size:10pt;color:blue;font-family:Arial;"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:Arial;"&gt;&lt;br /&gt;Kode diatas mendeklarasi SqlCommand objek yang berfungsi untuk mendapatkan data berdasarkan perintah yang disampaikan melalui; &lt;br /&gt;&lt;br /&gt;cmd.CommandText = &lt;/span&gt;&lt;span style="font-size:10pt;color:maroon;font-family:Arial;"&gt;&amp;quot;SELECT * FROM Customers&amp;quot;;&lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:Arial;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:10pt;color:black;font-family:Arial;"&gt;Objek koneksi (SqlConnection) tadi harus&amp;nbsp;digunakan bersama dengan objek perintah (SqlCommand) untuk bisa mendapatkan data yang diinginkan. Ini bisa dicapai dengan menulis&amp;nbsp;kode;&lt;br /&gt;&lt;br /&gt;cmd.Connection = conn;&lt;br /&gt;&lt;br /&gt;Kode &lt;/span&gt;&lt;span style="font-size:10pt;color:teal;font-family:Arial;"&gt;SqlDataReader&lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:Arial;"&gt; reader; mendeklarasi satu objek SqlDataReader untuk menerima data yang ada pada database sesuai dengan perintah yang diberikan oleh SqlCommand objek.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ok, sekarang lihat kode selanjutnya di dalam &lt;strong&gt;&lt;em&gt;&lt;span style="font-family:Arial;"&gt;try&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt; blok:&lt;br /&gt;&lt;br /&gt;conn.Open();&lt;br /&gt;reader = cmd.ExecuteReader();&lt;br /&gt;GridView1.DataSource = reader;&lt;br /&gt;GridView1.DataBind();&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Baris pertama adalah untuk membuka koneksi ke database, seperti kita membuka pintu lemari es dulu kalau mau ambil minuman. Kemudian baris kedua adalah data yang diperoleh diserahkan kepada SqlDataReader objek untuk kemudian ditampilkan di GridView control.&lt;br /&gt;Baris yang ketiga adalah menentukan darimanakah GridView ini menerima data untuk ditampilkan, dalam contoh ini, data-data yang diminta ada dalam objek SqlDataReader. &lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:Arial;"&gt;Kemudian, baris yang terakhir adalah proses dimana data ditampilkan menurut kolomnya di database. Proses ini seperti penjilidan buku, dimana kita punya semua halaman dan ingin menjilidnya menjadi sebuah buku.&lt;br /&gt;&lt;br /&gt;That&amp;#39;s it, kalau di &lt;em&gt;&lt;span style="font-family:Arial;"&gt;compile &lt;/span&gt;&lt;/em&gt;dan dilihat di browser internet, anda bakalan melihat data-data dari customer yang ada pada table Customers di NorthwindCS database.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:10pt;color:black;font-family:Arial;"&gt;sekian dulu, maaf klo ada salah-salahnya.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:10pt;color:black;font-family:Arial;"&gt;Sumber: &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:Arial;"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.aspx"&gt;&lt;span&gt;&lt;font color="#800080"&gt;http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.aspx&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:Arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:Arial;"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.aspx"&gt;&lt;span&gt;&lt;font color="#800080"&gt;http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.aspx&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:Arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:Arial;"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.aspx"&gt;&lt;span&gt;&lt;font color="#800080"&gt;http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.aspx&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:Arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:Arial;"&gt;&lt;a href="http://msdn.com/"&gt;&lt;span&gt;http://msdn.com/&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:Arial;"&gt; &lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://semarang.netindonesia.net/aggbug.aspx?PostID=71" width="1" height="1"&gt;</description><category domain="http://semarang.netindonesia.net/blogs/dokter/archive/tags/gridview/default.aspx">gridview</category><category domain="http://semarang.netindonesia.net/blogs/dokter/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://semarang.netindonesia.net/blogs/dokter/archive/tags/sql+server/default.aspx">sql server</category></item><item><title>Memindahkan DTS MS SQL Server</title><link>http://semarang.netindonesia.net/blogs/cahnom/archive/2006/10/10/Memindahkan-DTS-MS-SQL-Server.aspx</link><pubDate>Tue, 10 Oct 2006 08:11:00 GMT</pubDate><guid isPermaLink="false">227211f7-47d1-4d09-b2ba-bd75c546b02a:67</guid><dc:creator>cahnom</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Hmm... ternyata tidak gampang migrasi basisdata dari Microsoft SQL Server 2000 ke Microsoft SQL Server 2005. Terdapat banyak masalah yang terjadi saat migrasi. DTS &lt;span class="a3"&gt;(Data Transformation Services) &lt;/span&gt;pada SQL Server 2005 tidak disediakan lagi, sebagai gantinya Microsoft menyajikan&lt;span class="a3"&gt; SQL Server Integration Services (SSIS).&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Berikut beberapa tulisan yang mungkin dapat berguna dalam proses pemindahan DTS dari mesin satu ke mesin lainnya.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.dbazine.com/sql/sql-articles/larsen8" title="http://www.dbazine.com/sql/sql-articles/larsen8" target="_blank"&gt;http://www.dbazine.com/sql/sql-articles/larsen8&amp;nbsp;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://searchsqlserver.techtarget.com/tip/0,289483,sid87_gci1216481,00.html" title="http://searchsqlserver.techtarget.com/tip/0,289483,sid87_gci1216481,00.html"&gt;http://searchsqlserver.techtarget.com/tip/0,289483,sid87_gci1216481,00.html&amp;nbsp;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.sqldts.com/default.aspx?1" title="http://www.sqldts.com/default.aspx?1"&gt;http://www.sqldts.com/default.aspx?1&amp;nbsp;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Ada buku menarik yang membahas SQL Server Integration Services (SSIS), silakan cari di &lt;a href="http://www.google.com/search?q=%22Professional+SQL+Server+2005+Integration+Services%22+site%3Achmpdf.com" title="Google" target="_blank"&gt;Google&lt;/a&gt; dengan query sebagai berikut:&amp;nbsp; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.google.com/search?q=%22Professional+SQL+Server+2005+Integration+Services%22+site%3Achmpdf.com" title="http://www.google.com/search?q=&amp;quot;Professional SQL Server 2005 Integration Services&amp;quot;+site:chmpdf.com"&gt;http://www.google.com/search?q=&amp;quot;Professional SQL Server 2005 Integration Services&amp;quot;+site:chmpdf.com&amp;nbsp;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://semarang.netindonesia.net/aggbug.aspx?PostID=67" width="1" height="1"&gt;</description><category domain="http://semarang.netindonesia.net/blogs/cahnom/archive/tags/basisdata/default.aspx">basisdata</category></item><item><title>Membuat Server ASP.NET di atas Apache Windows</title><link>http://semarang.netindonesia.net/blogs/cahnom/archive/2006/10/05/Membuat-Server-ASP.NET-di-atas-Apache-Windows.aspx</link><pubDate>Thu, 05 Oct 2006 06:13:00 GMT</pubDate><guid isPermaLink="false">227211f7-47d1-4d09-b2ba-bd75c546b02a:66</guid><dc:creator>cahnom</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Tidak sulit membangun server ASP.NET di atas Apache Windows. Kita hanya butuh &lt;a href="http://www.apache.org/dist/httpd/binaries/win32/apache_2.0.54-win32-x86-no_ssl.msi" title="Apache"&gt;Apache&lt;/a&gt; dan &lt;a href="http://httpd.apache.org/modules/" title="ModApacheDotNet"&gt;ModAspDotNet&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Lakukan pemasangan &lt;a href="http://www.apache.org/dist/httpd/binaries/win32/apache_2.0.54-win32-x86-no_ssl.msi" title="Apache"&gt;Apache&lt;/a&gt; dan diikuti dengan pemasangan &lt;a href="http://httpd.apache.org/modules/" title="ModApacheDotNet"&gt;ModAspDotNet&lt;/a&gt;. Pada akhir baris file konfigurasi apache (httpd.conf) ditambahkan baris sebagai berikut:&lt;/p&gt;
&lt;div style="border:1px solid #cccccc;padding:10px;background-color:#f0f0ee;font-family:courier new;"&gt;
&lt;p class="MsoNormal" style="color:navy;"&gt;&lt;font color="navy" face="Courier New" size="2"&gt;&lt;span style="font-size:10pt;font-family:Courier New;"&gt;&lt;font color="#009f00"&gt;#asp.net&lt;/font&gt; &lt;br /&gt;
LoadModule aspdotnet_module &amp;quot;modules/mod_aspdotnet.so&amp;quot; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="color:navy;"&gt;&lt;font color="navy" face="Courier New" size="2"&gt;&lt;span style="font-size:10pt;font-family:Courier New;"&gt;AddHandler asp.net asax ascx ashx asmx aspx axd config cs csproj licx rem resources resx soap vb vbproj vsdisco webinfo &lt;br /&gt;
&lt;/span&gt;&lt;/font&gt;&lt;font color="navy" face="Courier New" size="2"&gt;&lt;span style="font-size:10pt;font-family:Courier New;"&gt;&lt;br /&gt;
&amp;lt;IfModule mod_aspdotnet.cpp&amp;gt;&amp;nbsp;&lt;br /&gt;
&lt;/span&gt;&lt;/font&gt;&lt;font color="navy" face="Courier New" size="2"&gt;&lt;span style="font-size:10pt;font-family:Courier New;"&gt;&amp;nbsp; &lt;font color="#009f00"&gt;# Mount the ASP.NET /asp application &lt;br /&gt;
&lt;/font&gt;&amp;nbsp; AspNetMount /SampleASP &amp;quot;c:/SampleASP&amp;quot; &lt;br /&gt;
&amp;nbsp; &lt;font color="#009f00"&gt;#/SampleASP is the alias name for asp.net to execute &lt;br /&gt;
&amp;nbsp; #&amp;quot;c:/SampleASP&amp;quot; is the actual execution of files/folders&amp;nbsp; in that location &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="color:navy;"&gt;&lt;font color="navy" face="Courier New" size="2"&gt;&lt;span style="font-size:10pt;font-family:Courier New;"&gt;&amp;nbsp; &lt;font color="#009f00"&gt;# Map all requests for /asp to the application files &lt;br /&gt;
&lt;/font&gt;&amp;nbsp; Alias /SampleASP &amp;quot;c:/SampleASP&amp;quot; &lt;br /&gt;
&amp;nbsp; &lt;font color="#009f00"&gt;#maps /SampleASP request to &amp;quot;c:/SampleASP&amp;quot; &lt;br /&gt;
&amp;nbsp; #now to get to the /SampleASP type &lt;/font&gt;&lt;a href="http://localhost/SampleASP"&gt;&lt;font color="#009f00"&gt;http://localhost/SampleASP&lt;/font&gt;&lt;/a&gt;&lt;font color="#009f00"&gt; &lt;br /&gt;
&amp;nbsp; #It&amp;#39;ll redirect &lt;/font&gt;&lt;a href="http://localhost/SampleASP"&gt;&lt;font color="#009f00"&gt;http://localhost/SampleASP&lt;/font&gt;&lt;/a&gt;&lt;font color="#009f00"&gt; to &amp;quot;c:/SampleASP&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="color:navy;"&gt;&lt;font color="navy" face="Courier New" size="2"&gt;&lt;span style="font-size:10pt;font-family:Courier New;"&gt;&amp;nbsp;&lt;font color="#009f00"&gt; # Allow asp.net scripts to be executed in the /SampleASP example &lt;br /&gt;
&lt;/font&gt;&amp;nbsp; &amp;lt;Directory &amp;quot;c:/SampleASP&amp;quot;&amp;gt; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Options FollowSymlinks ExecCGI &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Order allow,deny &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Allow from all &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; DirectoryIndex index.htm index.aspx &lt;br /&gt;
&amp;nbsp;&amp;nbsp; &lt;font color="#009f00"&gt;#default the index page to .htm and .aspx &lt;br /&gt;
&lt;/font&gt;&amp;nbsp; &amp;lt;/Directory&amp;gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="color:navy;"&gt;&lt;font color="navy" face="Courier New" size="2"&gt;&lt;span style="font-size:10pt;font-family:Courier New;"&gt;&amp;nbsp; &lt;font color="#009f00"&gt;# For all virtual ASP.NET webs, we need the aspnet_client files &lt;br /&gt;
&amp;nbsp; # to serve the client-side helper scripts. &lt;br /&gt;
&lt;/font&gt;&amp;nbsp;
AliasMatch /aspnet_client/system_web/(\d+)_(\d+)_(\d+)_(\d+)/(.*)
&amp;quot;C:/Windows/Microsoft.NET/Framework/v$1.$2.$3/ASP.NETClientFiles/$4&amp;quot; &lt;br /&gt;
&amp;nbsp; &amp;lt;Directory &amp;quot;C:/Windows/Microsoft.NET/Framework/v*/ASP.NETClientFiles&amp;quot;&amp;gt; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Options FollowSymlinks &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Order allow,deny &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Allow from all &lt;br /&gt;
&amp;nbsp; &amp;lt;/Directory&amp;gt; &lt;br /&gt;
&lt;/span&gt;&lt;/font&gt;&lt;font color="navy" face="Courier New" size="2"&gt;&lt;span style="font-size:10pt;font-family:Courier New;"&gt;&amp;lt;/IfModule&amp;gt; &lt;br /&gt;
&lt;/span&gt;&lt;/font&gt;&lt;font color="navy" face="Courier New" size="2"&gt;&lt;span style="font-size:10pt;font-family:Courier New;"&gt;&lt;font color="#009f00"&gt;#asp.net&lt;/font&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Selanjutnya buat direktori C:\SampleASP dan buat file index.aspx&lt;/p&gt;&lt;p&gt;Restart server Apache dan buka alamat &lt;font color="navy" face="Arial" size="2"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;strong&gt;&lt;font color="navy" face="Arial" size="2"&gt;&lt;a href="http://localhost/SampleASP/index.aspx" title="http://localhost/SmartASP/index.aspx"&gt;&lt;strong&gt;http://localhost/SampleASP/index.aspx&lt;/strong&gt;&lt;/a&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Jalan deh....&lt;/p&gt;&lt;p&gt;Mudah bukan?&amp;nbsp;&lt;/p&gt;&lt;img src="http://semarang.netindonesia.net/aggbug.aspx?PostID=66" width="1" height="1"&gt;</description><category domain="http://semarang.netindonesia.net/blogs/cahnom/archive/tags/Apache/default.aspx">Apache</category></item><item><title>Java dan .NET</title><link>http://semarang.netindonesia.net/blogs/cahnom/archive/2006/10/05/Java-vs-.NET.aspx</link><pubDate>Thu, 05 Oct 2006 03:34:00 GMT</pubDate><guid isPermaLink="false">227211f7-47d1-4d09-b2ba-bd75c546b02a:65</guid><dc:creator>cahnom</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Dunia pemprograman semakin lama semakin sempit. Apapun pemprograman yang kita kuasai hasilnya sama saja. Dan satu bahasa juga bisa digunakan untuk apa saja. Ini sepertinya menjadi titik temu antara Java dan MS .NET.&lt;/p&gt;&lt;p&gt;Pada waktu Java diciptakan, salah satu tujuannya adalah untuk membantu programmer cukup menguasai satu bahasa pemprograman dan hasilnya bisa dijalankan dimanapun (&lt;em&gt;Write once run anywhera&lt;/em&gt;). Bertolak belakang dengan Java, Microsoft Membangun Framework .NET dimana programmer tidak perlu belajar bahasa pemprograman yang baru untuk membangun aplikasi yang tangguh dalam lingkungan Microsoft .NET Framework. Apapun bahasanya, platformnya Microsoft .NET Framework (Seperti iklan dimedia masa, apapun makanannya, minumnya ...).&lt;/p&gt;&lt;p&gt;Kini .NET tidak hanya jalan di platform Microsoft, dengan sponsor dari Novel, &lt;a href="http://www.mono-project.com/" title="mono-project" target="_blank"&gt;mono&lt;/a&gt; dibuat untuk menjalankan aplikasi .NET di atas sistem operasi Linux. Tidak hanya aplikasi desktop, aplkasi berbasis ASP.NET juga bisa dijalankan di atas mesin Linux dengan server Apace menggunakan modul &lt;a href="http://www.mono-project.com/Mod_mono" title="mod_mono" target="_blank"&gt;mod_mono&lt;/a&gt; atau &lt;a href="http://www.mono-project.com/ASP.NET" title="XSP"&gt;XSP&lt;/a&gt;. Mainsoft juga menyediakan piranti bantu untuk kompilasi kode .NET baik desktop maupun ASP.NET di atas Java Virtual Machine. Sekarang .NET tidak hanya berjalan di Windows dan Linux saja tapu semua sistem yang terpasang JVM bisa digunakan untuk menjalankan aplikasi .NET.&lt;/p&gt;&lt;p&gt;Jadi cukup belajar satu bahasa yang kita *** sudah bisa membangun aplikasi di atas platform yang berbeda.&amp;nbsp;&lt;/p&gt;&lt;img src="http://semarang.netindonesia.net/aggbug.aspx?PostID=65" width="1" height="1"&gt;</description><category domain="http://semarang.netindonesia.net/blogs/cahnom/archive/tags/Linux/default.aspx">Linux</category><category domain="http://semarang.netindonesia.net/blogs/cahnom/archive/tags/Java/default.aspx">Java</category><category domain="http://semarang.netindonesia.net/blogs/cahnom/archive/tags/mono/default.aspx">mono</category></item><item><title>Setup web server pribadi dengan windows XP pro dan IIS 5.1</title><link>http://semarang.netindonesia.net/blogs/soeharto/archive/2006/10/04/Setup-web-server-pribadi-dengan-windows-XP-pro-dan-IIS-5.1.aspx</link><pubDate>Thu, 05 Oct 2006 03:04:00 GMT</pubDate><guid isPermaLink="false">227211f7-47d1-4d09-b2ba-bd75c546b02a:64</guid><dc:creator>Soeharto</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Kemarin setelah DIM, timbul pertanyaan &amp;quot;Apakah mungkin kalau kita membuat web server pribadi untuk latihan ASP .net ?&amp;quot;. Ternyata setelah googling sana sini, saya dapatkan jawaban atas pertanyaan diatas.&amp;nbsp; &lt;/p&gt;&lt;p&gt;Ternyata mudah untuk memiliki web server pribadi yang terhubung dengan internet tanpa harus memakai software kelas berat seperti Windows Server 2000 / 2003. Cukup dengan menggunakan windows XP professional SP 2 dan Internet Information Server 5.1 (bawaan windows XP).&lt;/p&gt;&lt;p&gt;Lumayan, paling tidak bisa untuk menghemat ongkos web hosting bagi programmer pemula yang baru belajar ASP .Net. &lt;img src="http://semarang.netindonesia.net/emoticons/emotion-4.gif" alt="Stick out tongue" /&gt;&lt;/p&gt;&lt;p&gt;Sekali lagi, web server ini tidak disarankan untuk production server, cuma sekedar untuk development purpose saja.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Keterangan lengkap dapat anda lihat di word document di attachment.&lt;br /&gt;&lt;/p&gt;&lt;img src="http://semarang.netindonesia.net/aggbug.aspx?PostID=64" width="1" height="1"&gt;</description><enclosure url="http://semarang.netindonesia.net/blogs/soeharto/attachment/64.ashx" length="1856000" type="application/msword" /><category domain="http://semarang.netindonesia.net/blogs/soeharto/archive/tags/IIS/default.aspx">IIS</category></item><item><title>Text Editor Pilihan Hati</title><link>http://semarang.netindonesia.net/blogs/simbah/archive/2006/10/05/Text-Editor-Pilihan-Hati.aspx</link><pubDate>Thu, 05 Oct 2006 01:42:00 GMT</pubDate><guid isPermaLink="false">227211f7-47d1-4d09-b2ba-bd75c546b02a:63</guid><dc:creator>simbah</dc:creator><slash:comments>0</slash:comments><description>&lt;strong&gt;Cucu :&lt;br /&gt;&lt;/strong&gt;&lt;blockquote&gt;Mbah saya pengen mulai coding di C# nihh...enaknya pake editor apa ya ?&lt;br /&gt;&lt;/blockquote&gt;&lt;strong&gt;Simbah :&lt;br /&gt;&lt;/strong&gt;&lt;blockquote&gt;Lha kan banyak tools, cucuku.  Kalo yang free, ada &lt;a href="http://www.icsharpcode.net/OpenSource/SD/" title="Shardevelop" target="_blank"&gt;Sharpdevelop&lt;/a&gt;, &lt;a href="http://msdn.microsoft.com/vstudio/express/visualcsharp/" title="Visual C#" target="_blank"&gt;Visual C# Express&lt;/a&gt; dan &lt;a href="http://www.turboexplorer.com" title="Turbo Explorer" target="_blank"&gt;Turbo C#&lt;/a&gt;.  Kalo mau berbayar, ada Visual C#, Borland C#Builder dan Turbo C# Explorer. Tapi saran Simbah sihh...coba pake &lt;a href="http://www.crimsoneditor.com/" title="Crimson" target="_blank"&gt;Crimson Editor&lt;/a&gt;    Cukup menarik untuk programmer pemula &lt;img src="http://semarang.netindonesia.net/emoticons/emotion-2.gif" alt="Big Smile" /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;strong&gt;Cucu :&lt;br /&gt;&lt;/strong&gt;&lt;blockquote&gt;Caranya mbah ?&lt;br /&gt;&lt;/blockquote&gt;&lt;strong&gt;Simbah :&lt;/strong&gt;&lt;br /&gt;&lt;blockquote&gt;Begini cucuku...&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;ul&gt;&lt;li&gt;Download dan install Crimson Editor.  &lt;/li&gt;&lt;li&gt;Kemudian  setting Crimson Editor dari menu Tools - Preferences.  &lt;/li&gt;&lt;li&gt;Pilih menu tools - user tools.  &lt;/li&gt;&lt;li&gt;Terus tulis menu text dengan C# compiler. &lt;/li&gt;&lt;li&gt;Command diarahkan ke file csc.exe (sesuai .NET Framework yang digunakan). &lt;/li&gt;&lt;li&gt;Argument ditulis $(FileName)&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;blockquote&gt;Langkah selanjutnya, tulis code c#, simpan dan kompilasi dengan memilih menu : tools - C# compiler.&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;Lihat hasil (binary) file nya di folder tempat source code c# berada.  Selesai....&lt;br /&gt;&lt;/blockquote&gt;&lt;strong&gt;Cucu :&lt;/strong&gt;&lt;br /&gt;&lt;blockquote&gt;Oke, saya coba dulu mbah&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;img src="http://semarang.netindonesia.net/aggbug.aspx?PostID=63" width="1" height="1"&gt;</description><category domain="http://semarang.netindonesia.net/blogs/simbah/archive/tags/C+Sharp/default.aspx">C Sharp</category></item></channel></rss>