<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ruangkecil.Or.id &#187; Visual Basic</title>
	<atom:link href="http://www.ruangkecil.or.id/category/development/visual-basic/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ruangkecil.or.id</link>
	<description>Jerry Peter personal weblog and playground area</description>
	<lastBuildDate>Sat, 12 Jun 2010 17:06:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>LINQ to XML (Part 3)</title>
		<link>http://www.ruangkecil.or.id/2009/02/21/linq-to-xml-part-3/#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=linq-to-xml-part-3</link>
		<comments>http://www.ruangkecil.or.id/2009/02/21/linq-to-xml-part-3/#comments</comments>
		<pubDate>Sat, 21 Feb 2009 15:08:14 +0000</pubDate>
		<dc:creator>Jerry Peter</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[Visual Basic]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://www.ruangkecil.or.id/?p=81</guid>
		<description><![CDATA[Posting LINQ part ke 3,akan membahas tentang pengunaan LINQ dalam melakukan query terhadap data XML, sebagai contoh sederhana kita mempunyai XML yang berisi contact seperti berikut:


&#60;?xml version=&#34;1.0&#34; encoding=&#34;utf-8&#34; ?&#62;
 &#60;Contact&#62;
 &#60;ContactPerson id=&#34;01&#34;&#62;
 &#60;nama&#62;Jerry Peter&#60;/nama&#62;
 &#60;email&#62;jerry.peter@gmail.com&#60;/email&#62;
 &#60;blog&#62;www.ruangkecil.or.id&#60;/blog&#62;
 &#60;/person&#62;
 &#60;ContactPerson id=&#34;02&#34;&#62;
 &#60;nama&#62;Jerry&#60;/nama&#62;
 &#60;email&#62;jerry@gmail.com&#60;/email&#62;
 &#60;blog&#62;www.jerry.com&#60;/blog&#62;
 &#60;/ContactPerson &#62;
 &#60;ContactPerson id=&#34;03&#34;&#62;
 &#60;nama&#62;peter&#60;/nama&#62;
 &#60;email&#62;peter@yahoo.com&#60;/email&#62;
 &#60;blog&#62;www.peter.com&#60;/blog&#62;
 &#60;/ContactPerson &#62;
 &#60;/Contact&#62;

Dari format diatas terlihat [...]


Related posts:<ol><li><a href='http://www.ruangkecil.or.id/2008/02/15/linq-to-object-part-2/' rel='bookmark' title='Permanent Link: LINQ to OBJECT (Part 2)'>LINQ to OBJECT (Part 2)</a></li><li><a href='http://www.ruangkecil.or.id/2008/02/05/berkenalan-dengan-linq-part-1/' rel='bookmark' title='Permanent Link: Berkenalan dengan LINQ (Part 1)'>Berkenalan dengan LINQ (Part 1)</a></li><li><a href='http://www.ruangkecil.or.id/2008/02/25/linq-to-sql-part-4/' rel='bookmark' title='Permanent Link: LINQ to SQL (Part 4)'>LINQ to SQL (Part 4)</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>Posting LINQ part ke 3,akan membahas tentang pengunaan LINQ dalam melakukan query terhadap data XML, sebagai contoh sederhana kita mempunyai XML yang berisi contact seperti berikut:<span id="more-81"></span></p>
<pre class="brush: jscript;">

&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
 &lt;Contact&gt;
 &lt;ContactPerson id=&quot;01&quot;&gt;
 &lt;nama&gt;Jerry Peter&lt;/nama&gt;
 &lt;email&gt;jerry.peter@gmail.com&lt;/email&gt;
 &lt;blog&gt;www.ruangkecil.or.id&lt;/blog&gt;
 &lt;/person&gt;
 &lt;ContactPerson id=&quot;02&quot;&gt;
 &lt;nama&gt;Jerry&lt;/nama&gt;
 &lt;email&gt;jerry@gmail.com&lt;/email&gt;
 &lt;blog&gt;www.jerry.com&lt;/blog&gt;
 &lt;/ContactPerson &gt;
 &lt;ContactPerson id=&quot;03&quot;&gt;
 &lt;nama&gt;peter&lt;/nama&gt;
 &lt;email&gt;peter@yahoo.com&lt;/email&gt;
 &lt;blog&gt;www.peter.com&lt;/blog&gt;
 &lt;/ContactPerson &gt;
 &lt;/Contact&gt;
</pre>
<p>Dari format diatas terlihat masing-masing contactPerson memiliki (Nama, email dan blog), selanjutnya misalkan kita ingin mengambil data NAMA saja dari struktur XML contact diatas. Yang perlu kita lakukan adalah melakukan load data XML tersebut kedalam sebuah variable kemudian dengan bantuan LINQ kita tuliskan sintaks sederhana berikut:</p>
<pre class="brush: jscript;">

Dim LINQ = From nama In ContactXML...&lt;nama&gt; _
 Select nama.value
</pre>
<p>Sederhana sekali bukan <img src='http://www.ruangkecil.or.id/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Mungkin terlihat keyword yang baru dari sintaks diatas yaitu tanda … (titik titik titik)<br />
Keyword ini terdapat pada VS 2008 dan dapat kita gunakan untuk mengambil data TAG ELEMENT XML yang langsung kita perlukan, dari contoh diatas kita mengambil semua element dengan TAG &lt;NAMA&gt; dari struktur data XML yang ada.</p>
<p>Jika pernah mengunakan pembacaan struktur DOM (Document Object Model) mungkin keyword … ini sama dengan pengunaan pembacaan dengan method getElementByTagName.</p>
<p>Pada VS 2008 kita juga dapat menuliskan langsung struktur format XML kedalam sebuah variable dengan cara berikut:</p>
<pre class="brush: jscript;">

Dim ContactXML = &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;Contact&gt;
&lt;ContactPerson id=&quot;01&quot;&gt;
&lt;nama&gt;Jerry Peter&lt;/nama&gt;
&lt;email&gt;jerry.peter@gmail.com&lt;/email&gt;
&lt;blog&gt;www.ruangkecil.or.id&lt;/blog&gt;
&lt;/ContactPerson&gt;
&lt;ContactPerson id=&quot;02&quot;&gt;
&lt;nama&gt;Jerry&lt;/nama&gt;
&lt;email&gt;jerry@gmail.com&lt;/email&gt;
&lt;blog&gt;www.jerry.com&lt;/blog&gt;
&lt;/ContactPerson&gt;
&lt;ContactPerson id=&quot;03&quot;&gt;
&lt;nama&gt;peter&lt;/nama&gt;
&lt;email&gt;peter@yahoo.com&lt;/email&gt;
&lt;blog&gt;www.peter.com&lt;/blog&gt;
&lt;/ContactPerson&gt;
&lt;/Contact&gt;
</pre>
<p>Dengan penulisan diatas maka secara automatis variable ContactXML akan memiliki format type data XDocument, dan juga langsung memapung data format XML yang kita tuliskan.</p>
<p>Jika diperhatikan lagi penulisan nilai data diatas kita tidak perlu memisahkan masing-masing baris dengan mengunakan separator “ _ “ dan VS2008 tetap mengetahui maksud data selanjutnya masih tetap bagian dari format XML yang sedang kita tuliskan. Dan jika kita mencoba menuliskan sebuah TAG baru kedalam format XML yg sedang dituliskan VS2008 juga secara automatis membuatkan TAG penutup untuk kita.<br />
Sekarang coba kita gabungkan script diatas kedalam sebuah contoh project sederhana pembacaan XML dengan LINQ, pertama buatlah sebuah project Visual Basic pada Visual Studio kemdian tambahkan sebuah tombol kedalam form yang ada, dan tuliskan script berikut kedalam event click tombol tersebut.</p>
<pre class="brush: jscript;">

Dim ContactXML = &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;Contact&gt;
&lt;ContactPerson id=&quot;01&quot;&gt;
&lt;nama&gt;Jerry Peter&lt;/nama&gt;
&lt;email&gt;jerry.peter@gmail.com&lt;/email&gt;
&lt;blog&gt;www.ruangkecil.or.id&lt;/blog&gt;
&lt;/ContactPerson&gt;
&lt;ContactPerson id=&quot;02&quot;&gt;
&lt;nama&gt;Jerry&lt;/nama&gt;
&lt;email&gt;jerry@gmail.com&lt;/email&gt;
&lt;blog&gt;www.jerry.com&lt;/blog&gt;
&lt;/ContactPerson&gt;
&lt;ContactPerson id=&quot;03&quot;&gt;
&lt;nama&gt;peter&lt;/nama&gt;
&lt;email&gt;peter@yahoo.com&lt;/email&gt;
&lt;blog&gt;www.peter.com&lt;/blog&gt;
&lt;/ContactPerson&gt;
&lt;/Contact&gt;

Dim LINQ = From nama In ContactXML...&lt;nama&gt; _
Select nama.Value

Dim hasil = &quot;-- DATA PADA TAG NAMA --&quot; &amp; vbCrLf &amp; vbCrLf
For Each nama In LINQ
hasil = hasil &amp; nama.toString &amp; vbCrLf
Next

MsgBox(hasil)
</pre>
<p>Setelah selesai coba RUN project tersebut, dan click tombol yang ada. Jika lancar seharusnya akan muncul MessageBox dengan data seperti gambar berikut:</p>
<div id="attachment_84" class="wp-caption aligncenter" style="width: 194px"><img class="size-full wp-image-84" title="LINQ2XML" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/xml1.jpg" alt="LINQ2XML" width="184" height="168" /><p class="wp-caption-text">LINQ2XML</p></div>
<p>Perlu diperhatikan sedikit penulisan SELECT pada LINQ diatas kita menuliskan sintaks berikut, dimana kita langsung mengambil VALUE dari tag &lt;nama&gt;</p>
<pre class="brush: jscript;">

Dim LINQ = From nama In ContactXML...&lt;nama&gt; _
 Select nama.Value
</pre>
<p>Jika kita ganti script diatas dengan script berikut</p>
<pre class="brush: jscript;">
Dim LINQ = From nama In ContactXML...&lt;nama&gt; _
 Select nama
</pre>
<p>Dan coba jalankan kembali program tersebut maka akan ditampilkan hasil seperti gambar berikut:</p>
<div id="attachment_85" class="wp-caption aligncenter" style="width: 197px"><img class="size-full wp-image-85" title="LINQ2XML" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/xml2.jpg" alt="LINQ2XML" width="187" height="171" /><p class="wp-caption-text">LINQ2XML</p></div>
<p>Data yang dihasilkan akan berisi semua TAG NAMA secara lengkap berikut dengan data TAG yang XML-nya. Pengunaan VALUE sebelumnya mungkin sama dengan penulisan innerHtml jika kita pernah mengunakan pembacaan dengan DOM.</p>
<p><strong>Load XML data</strong><br />
Selanjutnya kita mencoba melakukan pembacaan data XML pada sebuah file terpisah bukan dengan penulisan langsung seperti pada contoh sebelumnya.</p>
<p>Untuk melakukan LOAD data XML kedalam sebuah variable kita akan mengunakan fasilitas load pada object XDocument, penulisan sintaksnya seperti berikut:</p>
<pre class="brush: jscript;">
Dim &lt;nama variable&gt; = XDocument.Load(&lt;URL data xml&gt;)
</pre>
<p>Untuk mencoba kita gunakan contoh sebelumnya, namun sekarang kita coba pisahkan data XML kedalam file terpisah.  Untuk membuat XML data pada file terpisah kita perlu menambahkan sebuah file XML dari menu Solution Explorer Click kanan pilih ADD &#8211;&gt; new item.</p>
<div id="attachment_82" class="wp-caption aligncenter" style="width: 379px"><img class="size-full wp-image-82" title="add-item" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/add-item.jpg" alt="add-item" width="369" height="416" /><p class="wp-caption-text">add-item</p></div>
<p>Kemudian pilih XML File untuk tipe document yg akan ditambahkan, dan beri nama DATA.XML untuk contoh ini. Setelah selesai tuliskan ulang struktur XML sebelumnya ada cukup di copy dan paste ulang data sebelumnya.</p>
<div id="attachment_88" class="wp-caption aligncenter" style="width: 410px"><img class="size-full wp-image-88" title="add-xml2" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/add-xml2.jpg" alt="add-xml2" width="400" height="242" /><p class="wp-caption-text">add-xml2</p></div>
<pre class="brush: jscript;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
 &lt;Contact&gt;
 &lt;ContactPerson id=&quot;01&quot;&gt;
 &lt;nama&gt;Jerry Peter&lt;/nama&gt;
 &lt;email&gt;jerry.peter@gmail.com&lt;/email&gt;
 &lt;blog&gt;www.ruangkecil.or.id&lt;/blog&gt;
 &lt;/ContactPerson&gt;
 &lt;ContactPerson id=&quot;02&quot;&gt;
 &lt;nama&gt;Jerry&lt;/nama&gt;
 &lt;email&gt;jerry@gmail.com&lt;/email&gt;
 &lt;blog&gt;www.jerry.com&lt;/blog&gt;
 &lt;/ContactPerson&gt;
 &lt;ContactPerson id=&quot;03&quot;&gt;
 &lt;nama&gt;peter&lt;/nama&gt;
 &lt;email&gt;peter@yahoo.com&lt;/email&gt;
 &lt;blog&gt;www.peter.com&lt;/blog&gt;
 &lt;/ContactPerson&gt;
 &lt;/Contact&gt;
</pre>
<p>Dari form yang ada sebelumnya tambahkan sebuah tombol baru kedalamnya dan tuliskan script berikut kedalam event click tombol yg baru ditambahkan untuk melakukan LOAD data XML dari file terpisah dan melakukan pembacaan data didalamnya.</p>
<pre class="brush: jscript;">

 Dim contactXML = XDocument.Load(CurDir() &amp; &quot;\data.xml&quot;)

 Dim LINQ = From nama In contactXML...&lt;nama&gt; _
 Select nama

 Dim hasil = &quot;-- DATA PADA TAG NAMA --&quot; &amp; vbCrLf &amp; vbCrLf
 For Each nama In LINQ
 hasil = hasil &amp; nama.ToString &amp; vbCrLf
 Next

 MsgBox(hasil)
</pre>
<p>Selanjutnya coba jalankan dan kembali project tersebut dan tekan tombol yang baru ditambahkan, jika tidak ada masalah seharusnya hasil masih sama dengan contoh sebelumnya dengan menampilkan MSGBOX baru berisi data TAG NAMA.</p>
<p><span style="text-decoration: underline;">Catatan:</span><br />
<span style="font-style: italic;"> Saat menekan tombol baru yang dibuat sebelumnya, mungkin muncul pesan error seperti berikut :</span></p>
<p><span style="font-style: italic;"> </span></p>
<div id="attachment_89" class="wp-caption aligncenter" style="width: 410px"><img class="size-full wp-image-89" title="LINQ2XML" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/LINQ2XML.jpg" alt="LINQ2XML" width="400" height="75" /><p class="wp-caption-text">LINQ2XML</p></div>
<p>Tenang kesalahan bukan pada script kita, jika diperhatikan proses program curdir() pencarian data XML mengacu pada folder debug bukan pada root program project kita, hal ini karena saat melakukan debugging VS menjalankan program temporary yang dibuat pada folder [NamaProject] &#8211;&gt; BIN &#8211;&gt; [Debug], bukan pada folder root project.</p>
<p>Untuk mengatasi error tsb kita cukup copy saja DATA.XML kita kedalam folder tersebut untuk keperluan selama proses debugging.</p>
<p>Dari contoh sebelumnya kita coba gantikan proses LINQ yg ada dgn script berikut, dan coba jalankan kembali dan perhatikan hasil yang ditampilkan:</p>
<pre class="brush: jscript;">
Dim LINQ = From nama In contactXML...&lt;ContactPerson&gt; _
 Select nama
</pre>
<p>Hasil proses dengan script pembacaan tag element &lt;ContactPerson&gt;</p>
<div id="attachment_83" class="wp-caption aligncenter" style="width: 252px"><img class="size-full wp-image-83" title="hasil-xml" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/hasil-xml.jpg" alt="hasil-xml" width="242" height="317" /><p class="wp-caption-text">hasil-xml</p></div>
<p>Jika kita mencoba mencari sebuah tag Element &lt;ContactPerson&gt;, maka semua data ChildElement yang ada dari TAG yang kita minta akan ikut terambil. Dari contoh ini &lt;ContactPerson&gt; memiliki 3 buah childElement (&lt;nama&gt;,&lt;email&gt;,&lt;url&gt;).</p>
<p><span style="text-decoration: underline;"> Catatan:</span><br />
<span style="font-style: italic;"> Perlu diperhatikan juga pengunaan pencarian TAG element ini bersifat Case Sensitive atau penulisan nama TAG harus benar-benar sama , pengunaan Huruf besar dan kecil akan bepengaruh pada proses pencarian.</span></p>
<p><span style="font-weight: bold;">MEMBUAT XML DOCUMENT DENGAN LINQ</span><br />
Penjelasan sebelumnya kita membahas pembacaan sebuah document XML, sekarang kita coba membuat sebuah XML dan mengkombinasikannya dengan pengunaan LINQ untuk proses pengambilan data.</p>
<p>Seperti dijelaskan sebelumnya kita dapat menuliskan langsung struktur XML document kedalam sebuah variable, selain XML statis kita juga dapat membuat dynamic XML untuk nilai data yg ingin kita tampilkan.</p>
<p>Sebagai contoh kita gunakan script berikut untuk membuat XML document yang mengambil data JAM dari computer kita.</p>
<pre class="brush: jscript;">
Dim oXML = &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
 &lt;Jam&gt;
 &lt;%= Now() %&gt;
 &lt;/Jam&gt;

 My.Computer.FileSystem.WriteAllText  (&quot;c:\first.xml&quot;, oXML.ToString, False)

 Process.Start(&quot;c:\first.xml&quot;)
</pre>
<p>Baris 1,2,3,4     : Proses pembuatan XML data dengan 1 buah tag yang kita beri nama &lt;jam&gt;, isi value dari tag ini akan mengambil dynamic data dari waktu yang ada pada komputer kita dengan sintaks &lt;%= Now() %&gt;<br />
Baris 6,7    : Memanfaatkan My keyword untuk membuat file XML baru C:\First.xml yang datanya diambil dari variable oXML yang telah dibuat sebelumnya.<br />
Baris 9    : Membuka file c:\first.xml yang baru selesai dibuat.</p>
<p>Setelah selesai coba jalankan proses diatas, jika tidak ada masalah seharusnya akan ditampilkan data first.xml yang baru kita buat pada sebuah browser seperti gambar berikut:</p>
<div id="attachment_87" class="wp-caption aligncenter" style="width: 307px"><img class="size-full wp-image-87" title="xml-hasil2" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/xml-hasil2.jpg" alt="xml-hasil2" width="297" height="211" /><p class="wp-caption-text">xml-hasil2</p></div>
<p>Contoh diatas belum mengunakan LINQ dalam proses pembuatan data, kita baru mencoba proses sederhana membuat sebuah document XML yang mengambil data secara dynamic.</p>
<p>Sekarang kita coba mengunakan LINQ to OBJECT untuk membuat sebuah data XML, disini kita akan membaca daftar program yang berajalan pada computer kita.</p>
<p>Untuk mengambil daftar proses berjalan pada computer, kita mengunakan sintaks berikut :</p>
<pre class="brush: jscript;">

System.Diagnostics.Process.GetProcesses
</pre>
<p>Dari sintaks diatas kita akan mendapatkan daftar proses yang sedang berjalan pada computer kita seperti yang terdapat pada Task manager, dari daftar tersebut kita akan mencoba membuat XML file yang berisi daftar proses berjalan pada computer kita, untuk mencoba proses ini tuliskan script berikut apda sebuah event tombol click yang ada pada form project kita.</p>
<p>Tambahkan sebuah tombol kedalam form yang ada pada project kita, kemudian tuliskan script berikut pada sebuah event click tombol tersebut:</p>
<pre class="brush: jscript;">
Dim oXML = &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
 &lt;TaskManager&gt;
 &lt;%= From p In System.Diagnostics.Process.GetProcesses _
 Select &lt;proses&gt;
 &lt;id&gt;&lt;%= p.Id %&gt;&lt;/id&gt;
 &lt;nama&gt;&lt;%= p.ProcessName %&gt;&lt;/nama&gt;
 &lt;memory&gt;&lt;%= p.PagedMemorySize %&gt;&lt;/memory&gt;
 &lt;/proses&gt; %&gt;
 &lt;/TaskManager&gt;

 My.Computer.FileSystem.WriteAllText _
 (&quot;c:\proses.xml&quot;, oXML.ToString, False)

 Process.Start(&quot;c:\proses.xml&quot;)
</pre>
<p>Proses pembuatan dynamic data XML dengan LINQ terletak pada bagian script berikut:</p>
<pre class="brush: jscript;">
&lt;%= From p In System.Diagnostics.Process.GetProcesses _
 Select &lt;proses&gt;
 &lt;id&gt;&lt;%= p.Id %&gt;&lt;/id&gt;
 &lt;nama&gt;&lt;%= p.ProcessName %&gt;&lt;/nama&gt;
 &lt;memory&gt;&lt;%= p.PagedMemorySize %&gt;&lt;/memory&gt;
 &lt;/proses&gt; %&gt;
</pre>
<p>Disini LINQ akan mengambil object proses berjalan pada system komputer kita, kemudian hasil query yang didapat akan dibuat sebagai struktur data ELEMENT XML &lt;proses&gt; yang didalamnya terdapat 3 buah childElement (id, nama dan memory). Jika kita jalankan proses tersebut nantinya akan terbentuk file c:\proses.xml yang berisi data proses yang sedang berjalan pada computer kita.<br />
Bagian terakhir dari script diatas Process.Start(&#8220;c:\proses.xml&#8221;)adalah untuk menampilkan data hasil proses, secara default proses akan membuka browser untuk memampilkan data XML yang telah terbentuk seperti gambar berikut:</p>
<div id="attachment_86" class="wp-caption aligncenter" style="width: 543px"><img class="size-full wp-image-86" title="xml-hasil2" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/xml-hasil2.gif" alt="xml-hasil2" width="533" height="521" /><p class="wp-caption-text">xml-hasil2</p></div>


<p>Related posts:<ol><li><a href='http://www.ruangkecil.or.id/2008/02/15/linq-to-object-part-2/' rel='bookmark' title='Permanent Link: LINQ to OBJECT (Part 2)'>LINQ to OBJECT (Part 2)</a></li><li><a href='http://www.ruangkecil.or.id/2008/02/05/berkenalan-dengan-linq-part-1/' rel='bookmark' title='Permanent Link: Berkenalan dengan LINQ (Part 1)'>Berkenalan dengan LINQ (Part 1)</a></li><li><a href='http://www.ruangkecil.or.id/2008/02/25/linq-to-sql-part-4/' rel='bookmark' title='Permanent Link: LINQ to SQL (Part 4)'>LINQ to SQL (Part 4)</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.ruangkecil.or.id/2009/02/21/linq-to-xml-part-3/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Installasi AJAX Toolkits pada Visual Studio 2005</title>
		<link>http://www.ruangkecil.or.id/2008/07/23/installasi-ajax-toolkits-pada-visual-studio-2005/#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=installasi-ajax-toolkits-pada-visual-studio-2005</link>
		<comments>http://www.ruangkecil.or.id/2008/07/23/installasi-ajax-toolkits-pada-visual-studio-2005/#comments</comments>
		<pubDate>Wed, 23 Jul 2008 16:10:59 +0000</pubDate>
		<dc:creator>Jerry Peter</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Visual Basic]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[plugins]]></category>

		<guid isPermaLink="false">http://www.ruangkecil.or.id/?p=120</guid>
		<description><![CDATA[Sebelum melakukan proses dibawah ini sebaiknya install terlebih dahulu ASP.NET AJAX Extention 1.0 pada Visual Studio 2005, file installasi dapat di download dari link berikut : http://go.microsoft.com/fwlink/?LinkID=77296
Setelah selesai menginstall ASP AJAX Extention, lakukan step2 berikut untuk installasi AJAX Control Toolkits

1. Download source AJAX Control Toolkits &#8211;  http://www.asp.net/ajax/downloads/
2. Extract data hasil download
3. Open folder hasil [...]


Related posts:<ol><li><a href='http://www.ruangkecil.or.id/2008/08/17/error-installasi-visual-studio-2008-di-vista/' rel='bookmark' title='Permanent Link: Error installasi Visual Studio 2008 di Vista'>Error installasi Visual Studio 2008 di Vista</a></li><li><a href='http://www.ruangkecil.or.id/2006/11/18/mx-ajax-dreamwaver-plugin/' rel='bookmark' title='Permanent Link: MX AJAX &#8211; Dreamwaver plugin'>MX AJAX &#8211; Dreamwaver plugin</a></li><li><a href='http://www.ruangkecil.or.id/2008/01/05/ajax-asynchronous-javascript-and-xml-part-1/' rel='bookmark' title='Permanent Link: AJAX &#8211; Asynchronous JavaScript And XML (PART 1)'>AJAX &#8211; Asynchronous JavaScript And XML (PART 1)</a></li></ol>]]></description>
			<content:encoded><![CDATA[<div id="attachment_118" class="wp-caption alignleft" style="width: 207px"><img class="size-full wp-image-118 " title="AJAX Toolkits" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/111.gif" alt="AJAX Toolkits" width="197" height="200" /><p class="wp-caption-text">AJAX Toolkits</p></div>
<p>Sebelum melakukan proses dibawah ini sebaiknya install terlebih dahulu ASP.NET AJAX Extention 1.0 pada Visual Studio 2005, file installasi dapat di download dari link berikut :<a href="http://go.microsoft.com/fwlink/?LinkID=77296" target="_blank"> http://go.microsoft.com/fwlink/?LinkID=77296</a></p>
<p>Setelah selesai menginstall ASP AJAX Extention, lakukan step2 berikut untuk installasi AJAX Control Toolkits<br />
<span id="more-120"></span><br />
1. Download source AJAX Control Toolkits &#8211; <a href="http://www.asp.net/ajax/downloads/" target="_blank"> http://www.asp.net/ajax/downloads/</a><br />
2. Extract data hasil download<br />
3. Open folder hasil extract<br />
4. Cari file AjaxControlToolkit.SLN  dan buka file tersebut dengan Visual studio 2005</p>
<div id="attachment_108" class="wp-caption aligncenter" style="width: 440px"><img class="size-full wp-image-108" title="AJAX Toolkits" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/11.gif" alt="AJAX Toolkits" width="430" height="198" /><p class="wp-caption-text">AJAX Toolkits</p></div>
<p>5. Setelah project terbuka pada Visual Studio lakukan BUILD untuk templateVSI, hal ini untuk membuat VSI file installasi</p>
<div id="attachment_109" class="wp-caption aligncenter" style="width: 324px"><img class="size-full wp-image-109" title="AJAX Toolkits" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/2.gif" alt="AJAX Toolkits" width="314" height="432" /><p class="wp-caption-text">AJAX Toolkits</p></div>
<p>6. Setelah build selesai maka akan terbentuk file <span style="font-weight: bold;">AjaxControlExtender.VSI</span> pada folder <span style="font-weight: bold;">[Drive]:\&#8230;\AjaxControlToolkit\TemplateVSI\bin\</span> dimana source tersebut berada</p>
<div id="attachment_110" class="wp-caption aligncenter" style="width: 440px"><img class="size-full wp-image-110" title="AJAX Toolkits" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/41.gif" alt="AJAX Toolkits" width="430" height="380" /><p class="wp-caption-text">AJAX Toolkits</p></div>
<p>9. Setelah tombol NEXT ditekan akan muncul windows baru seperti gambar dibawah, sebagai konfirmasi installasi kita cukup menekan tombol FINISH dan proses installasi component akan dilakukan oleh VisualStudio 2005.</p>
<div id="attachment_111" class="wp-caption aligncenter" style="width: 440px"><img class="size-full wp-image-111" title="Ajax Toolkits" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/51.gif" alt="Ajax Toolkits" width="430" height="380" /><p class="wp-caption-text">Ajax Toolkits</p></div>
<p>10. Jika tidak ada masalah dalam proses installasi maka setelah selesai akan muncul windows form hasil proses seperti gambar berikut.</p>
<div id="attachment_112" class="wp-caption aligncenter" style="width: 440px"><img class="size-full wp-image-112" title="AJAX Toolkits" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/61.gif" alt="AJAX Toolkits" width="430" height="380" /><p class="wp-caption-text">AJAX Toolkits</p></div>
<p>11. Sampai disini AJAX Control Toolkits telah selesai terinstall pada Visual Studio 2005, dan kita bisa mulai mengunakannya.</p>
<p>12. Buka visual studio 2005, pilih menu FILE &#8211;&gt; NEW &#8211;&gt; Web Site&#8230;</p>
<div id="attachment_113" class="wp-caption aligncenter" style="width: 418px"><img class="size-full wp-image-113" title="AJAX Toolkits" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/6A.gif" alt="AJAX Toolkits" width="408" height="129" /><p class="wp-caption-text">AJAX Toolkits</p></div>
<p>13. Pada form New Web Site pilih ASP.NET AJAX Control Toolkits website kemudian tekan tombol OK</p>
<div id="attachment_114" class="wp-caption aligncenter" style="width: 440px"><img class="size-full wp-image-114" title="AJAX Toolkits" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/71.gif" alt="AJAX Toolkits" width="430" height="239" /><p class="wp-caption-text">AJAX Toolkits</p></div>
<p>14. Selanjutnya akan terbentuk beberapa file berikut pada Visual Studio Solution Explorer</p>
<div id="attachment_115" class="wp-caption aligncenter" style="width: 304px"><img class="size-full wp-image-115" title="AJAX Toolkits" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/8.gif" alt="AJAX Toolkits" width="294" height="170" /><p class="wp-caption-text">AJAX Toolkits</p></div>
<p>15. Selanjutnya bukalah file Default.aspx yang terdapat pada Solution Explorer, dan perhatikan Toolbox yang terdapat pada visual studio 2005. Disana belum terlihat adanya component AJAX Control toolkits yang ingin kita gunakan, untuk menambahkannya click kanan pada area dibawah TAB General dan pilih ADD TAB.</p>
<div id="attachment_116" class="wp-caption aligncenter" style="width: 262px"><img class="size-full wp-image-116" title="AJAX Toolkits" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/9.gif" alt="AJAX Toolkits" width="252" height="286" /><p class="wp-caption-text">AJAX Toolkits</p></div>
<p>16. Setelah Tab baru terbentuk berinama AJAX Control Toolkits (atau bisa digunakan nama lain sesuai keinginan)</p>
<div id="attachment_117" class="wp-caption aligncenter" style="width: 262px"><img class="size-full wp-image-117" title="AJAX Toolkits" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/10.gif" alt="AJAX Toolkits" width="252" height="286" /><p class="wp-caption-text">AJAX Toolkits</p></div>
<p>17. Setelah selesai memberi nama pada TAB baru tersebut click kanan pada Area kosong dibawahnya dan pilih Choose Item &#8230;</p>
<div id="attachment_118" class="wp-caption aligncenter" style="width: 291px"><img class="size-full wp-image-118" title="AJAX Toolkits" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/111.gif" alt="AJAX Toolkits" width="281" height="286" /><p class="wp-caption-text">AJAX Toolkits</p></div>
<p>18. Pada window form Choose Toolbox Item yang muncul click tombol browse untuk memanggil file .DLL milik AJAX Control Toolkits.</p>
<div id="attachment_121" class="wp-caption aligncenter" style="width: 440px"><img class="size-full wp-image-121" title="AJAX Toolkits" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/121.gif" alt="AJAX Toolkits" width="430" height="307" /><p class="wp-caption-text">AJAX Toolkits</p></div>
<p>19. Kemudian cari file <span style="font-weight: bold;">AJAXControlToolkits.dll</span> yang secara default berada pada folder <span style="font-weight: bold;">[Drive]:\&#8230;\AjaxControlToolkit\SampleWebSite\Bin\ </span></p>
<div id="attachment_119" class="wp-caption aligncenter" style="width: 440px"><img class="size-full wp-image-119" title="AJAX Toolkits" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/132.gif" alt="AJAX Toolkits" width="430" height="276" /><p class="wp-caption-text">AJAX Toolkits</p></div>
<p>20. Setelah add file .DLL tersebut component AJAX akan tampil pada toolbox yang baru dibuat sebelumnya dan siap <span style="text-decoration: line-through;">di pake</span> digunakan.</p>
<div id="attachment_122" class="wp-caption aligncenter" style="width: 190px"><img class="size-full wp-image-122" title="AJAX Toolkits" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/14.gif" alt="AJAX Toolkits" width="180" height="340" /><p class="wp-caption-text">AJAX Toolkits</p></div>


<p>Related posts:<ol><li><a href='http://www.ruangkecil.or.id/2008/08/17/error-installasi-visual-studio-2008-di-vista/' rel='bookmark' title='Permanent Link: Error installasi Visual Studio 2008 di Vista'>Error installasi Visual Studio 2008 di Vista</a></li><li><a href='http://www.ruangkecil.or.id/2006/11/18/mx-ajax-dreamwaver-plugin/' rel='bookmark' title='Permanent Link: MX AJAX &#8211; Dreamwaver plugin'>MX AJAX &#8211; Dreamwaver plugin</a></li><li><a href='http://www.ruangkecil.or.id/2008/01/05/ajax-asynchronous-javascript-and-xml-part-1/' rel='bookmark' title='Permanent Link: AJAX &#8211; Asynchronous JavaScript And XML (PART 1)'>AJAX &#8211; Asynchronous JavaScript And XML (PART 1)</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.ruangkecil.or.id/2008/07/23/installasi-ajax-toolkits-pada-visual-studio-2005/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LINQ to SQL (Part 4)</title>
		<link>http://www.ruangkecil.or.id/2008/02/25/linq-to-sql-part-4/#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=linq-to-sql-part-4</link>
		<comments>http://www.ruangkecil.or.id/2008/02/25/linq-to-sql-part-4/#comments</comments>
		<pubDate>Mon, 25 Feb 2008 15:29:35 +0000</pubDate>
		<dc:creator>Jerry Peter</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[Visual Basic]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://www.ruangkecil.or.id/?p=95</guid>
		<description><![CDATA[Berikutnya kita akan membahas tentang pengunaan LINQ dalam melakukan query terhadap sebuah database, untuk memudahkan pengunaan LINQ to SQL pada visual Studio 2008 diperkenalkan sebuah template LINQ to SQL Classes. Dengan template ini kita akan lebih mudah membuat object model dari sebuah table database yang akan digunakan, saat membuat template ini akan dihadirkan sebuah Layar [...]


Related posts:<ol><li><a href='http://www.ruangkecil.or.id/2008/02/05/berkenalan-dengan-linq-part-1/' rel='bookmark' title='Permanent Link: Berkenalan dengan LINQ (Part 1)'>Berkenalan dengan LINQ (Part 1)</a></li><li><a href='http://www.ruangkecil.or.id/2008/02/15/linq-to-object-part-2/' rel='bookmark' title='Permanent Link: LINQ to OBJECT (Part 2)'>LINQ to OBJECT (Part 2)</a></li><li><a href='http://www.ruangkecil.or.id/2009/02/21/linq-to-xml-part-3/' rel='bookmark' title='Permanent Link: LINQ to XML (Part 3)'>LINQ to XML (Part 3)</a></li></ol>]]></description>
			<content:encoded><![CDATA[<div id="attachment_82" class="wp-caption alignleft" style="width: 160px"><img class="size-thumbnail wp-image-82" title="add-item" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/add-item-150x150.jpg" alt="add-item" width="150" height="150" /><p class="wp-caption-text">add-item</p></div>
<p>Berikutnya kita akan membahas tentang pengunaan LINQ dalam melakukan query terhadap sebuah database, untuk memudahkan pengunaan LINQ to SQL pada visual Studio 2008 diperkenalkan sebuah template LINQ to SQL Classes. Dengan template ini kita akan lebih mudah membuat object model dari sebuah table database yang akan digunakan, saat membuat template ini akan dihadirkan sebuah Layar design yang diberinama Object Relational (O/R) Deginer, pada layar ini kita dapat melakukan Drag &amp; Drop table yang ada dari server explorer dan selanjutnya Visual Studio akan membuatkan sebuah class object model untuk kita berikut visualisasi dari class tersebut. Biar tidak terlalu banyak teori berbentuk tulisan kita coba saja langsung pengunaan template ini.<span id="more-95"></span></p>
<p>Untuk pengunaan LINQ to SQL pada visual studio 2008 telah ditambahkan sebuah template item yang bernama LINQ to SQL Classes.</p>
<div id="attachment_96" class="wp-caption aligncenter" style="width: 410px"><img class="size-full wp-image-96" title="LINQ SQL Classes" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/LINQ-SQL-Classes.jpg" alt="LINQ SQL Classes" width="400" height="218" /><p class="wp-caption-text">LINQ SQL Classes</p></div>
<p>Template item ini akan membantu kita membuat sebuah class object dari struktur database yang ada, nantinya akan kita sebut sebagai DataContext, kemudian dari DataContext ini dapat kita gunakan untuk pembacaan dengan LINQ.</p>
<p>Pertama buatlah sebuah project visual basic baru, kemudian tambahkan item baru dengan click kanan pada project dalam Solution explorer dan pilih ADD &#8211;&gt; New item.</p>
<div id="attachment_94" class="wp-caption aligncenter" style="width: 379px"><img class="size-full wp-image-94" title="Add Item" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/add-item11.jpg" alt="Add Item" width="369" height="416" /><p class="wp-caption-text">Add Item</p></div>
<p>Dari template item yang tersedia pilih LINQ to SQL Classes, dan beri nama LINQtoSQL.dbml. kemudian click tombol ADD</p>
<div id="attachment_92" class="wp-caption aligncenter" style="width: 310px"><img class="size-full wp-image-92" title="Add LINQ Classes" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/add-linq-classes.jpg" alt="Add LINQ Classes" width="300" height="304" /><p class="wp-caption-text">Add LINQ Classes</p></div>
<p>Setelah proses ini kita akan mendapatkan sebuah file baru berextention .dbml pada project kita, dan juga akan muncul sebuah layar kerja Object Relational  baru seperti gambar berikut:</p>
<div id="attachment_97" class="wp-caption aligncenter" style="width: 446px"><img class="size-full wp-image-97" title="LINQ Object Relational designer" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/OR.jpg" alt="LINQ Object Relational designer" width="436" height="323" /><p class="wp-caption-text">LINQ Object Relational designer</p></div>
<p>Pada bagian (1) kita dapat letakan table database kedalamnya, dan secara automatis VS2008 akan membuatkan sebuah class object baru dari table yang kita letakan didalamnya berikut dengan gambaran visualisasinya.</p>
<p>Pada bagian (2) dapat kita letakan method atau Store Procedure yang ada dari dalam database kita, nantinya kita dapat memanggil Store procedure tersebut sebagai sebuah method dalam proses pengunaannya.</p>
<p>Pada contoh ini saya akan mengunakan table Customers dari database Northwind dari SQL Server Express edititon yang telah terinstall di computer saya.<br />
jika belum memiliki bisa download dari link berikut: www.microsoft.com/express</p>
<p>Untuk membuat class object baru, kita hanya perlu membuka panel Server Explorer kita yang telah terkonesi dengan database dan kemudian melakukan Drag and Drop data table yang akan dibuat Class objectnya dari Server Explorer (1) kedalam Area Object Relational (2). Hasil proses drag and drop akan terbentuk class object baru yang bernama DataContext (3).</p>
<div id="attachment_98" class="wp-caption aligncenter" style="width: 428px"><img class="size-full wp-image-98" title="LINQ 2 SQL" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/grid.jpg" alt="LINQ 2 SQL" width="418" height="230" /><p class="wp-caption-text">LINQ 2 SQL</p></div>
<p>Struktur class object DataContext  yang terbentuk pada Area Object Relational (2), akan benar-benar sama dengan struktur database yang kita drag dari Server Explorer (1).</p>
<p>Setelah DataContext terbentuk, maka kita dapat mengunakan class tersebut pada form kerja kita. Untuk itu sekarang cobalah buka Code editor untuk Form1 yang akan kita gunakan, kemudian tambahkan deklarasikan variable baru yang mengambil struktur dari DataContext pada bagian atas script setelah baris Public class Form1.</p>
<pre class="brush: jscript;">
Private dc As New LINQtoSQLDataContext
</pre>
<p><strong>Catatan:</strong><br />
<em>Nama dataContext dapat dilihat pada properties panel, seperti pada nomor (3) gambar diatas.</em></p>
<p>Kemudian tambahkan sebuah tombol baru kedalam form yang digunakan dan tambahkan script proses berikut kedalam event click.</p>
<pre class="brush: jscript;">
Dim LINQ = From cust In dc.Customers _
 Where cust.Country.ToLower = &quot;germany&quot; _
 Order By cust.CompanyName _
 Select cust

 Dim hasil = &quot;-- Data Customer Northwind --&quot; &amp; vbCrLf
 For Each cust In LINQ
 hasil = hasil &amp; cust.CompanyName &amp; vbCrLf
 Next

 MsgBox(hasil)
</pre>
<p>Baris 1,2,3,4    : Merupakan proses LINQ yang mengambil data cust dari dalam DataContext customer yang telah kita bentuk sebelumnya pada file .dbml, proses juga melakukan filter hanya pada data2 customer yang berasal dari Germany, dan kemudian melakukan pengaturan urutan berdasarkan CompanyName.</p>
<p>Baris (selanjutnya)    : Setelah selesai melakukan proses query, selanjutnya proses akan menampilkan data2 yang didapat kedalam sebuah msgbox visual basic.</p>
<p>Jika tidak ada masalah maka akan dihasilkan msgbox seperti gambar berikut:</p>
<div id="attachment_99" class="wp-caption aligncenter" style="width: 194px"><img class="size-full wp-image-99" title="hasil" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/hasil.jpg" alt="hasil" width="184" height="256" /><p class="wp-caption-text">hasil</p></div>
<p>Dari gambaran pengunaan diatas mudah2an proses pengunaan Class Object LINQ to SQL dengan memanfaatkan template class pada file .dbml menjadi lebih jelas.</p>
<p><strong>LINQ SQL dan dataReader</strong><br />
Sekarang mari kita bandingkan sedikit proses yang sama dengan mengunakan Native connection mengunakan connectionString dan DataReader.</p>
<p>Tambahkan sebuah tombol baru kedalam form yang ada, dan pada event click tombol tersebut tuliskan script proses berikut:</p>
<pre class="brush: jscript;">
 Dim connectionStr As String
 Dim cn As SqlConnection
 Dim cmd As SqlCommand
 Dim dr As SqlDataReader

 ' Connection String untuk connection kedalam Database Nortwind
 connectionStr = &quot;Data Source=localhost;” _
 “Initial Catalog=Northwind;Integrated Security=True&quot;
 cn = New SqlConnection(connectionStr)
 cn.Open()

 ' Query data Customer yang ada dalam database Nortwind
 cmd=New SqlCommand(&quot;Select * from Customers where Country='Germany'&quot;, cn)
 dr = cmd.ExecuteReader

 ' Proses LINQ membaca DataReader yang telah dibuat sebelumnya
 Dim LINQ = From cust In dr _
 Select ID = cust.item(&quot;CustomerID&quot;), _
 Name = cust.item(&quot;CompanyName&quot;)

 ' Menampilkan data hasil query kedalam messagebox
 Dim hasil = &quot;-- Data customer dari Jerman -- &quot; &amp; vbCrLf
 For Each cust In LINQ
 hasil = hasil &amp; cust.ID &amp; &quot; - &quot; &amp; cust.Name &amp; vbCrLf
 Next

 MsgBox(hasil)
 </pre>
<p><span style="text-decoration: underline;">Catatan:</span><br />
<em> Ganti terlebih dahulu ConnectionStr yang digunakan diatas dengan Connection String dimana program akan digunakan</em></p>
<p>Setelah selesai cobalah jalankan program dan click tombol yang ada didalamnya, jika tidak terdapat masalah maka akan ditampilkan semua data Customers yang berasal dari Negara Jerman seperti query yang kita lakukan.</p>
<div id="attachment_100" class="wp-caption aligncenter" style="width: 189px"><img class="size-full wp-image-100" title="hasil2" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/hasil2.jpg" alt="hasil2" width="179" height="226" /><p class="wp-caption-text">hasil2</p></div>
<p>Contoh diatas hanya sebagai pengenalan LINQ dalam mengakses dataReader yang telah ada, namun proses diatas terlihat tidak efisien karena kita melakukan 2 kali proses query, pertama Query untuk dataReader dan kedua query pada proses LINQ.</p>
<p><strong>LINQ SQL dan DataContext</strong><br />
Dari 2 contoh sebelumnya kita telah mencoba membuat koneksi kedalam database memanfaatkan Template class LINQ to SQL yang telah disediakan VS2008 untuk membentuk DATACONTEXT, dan contoh kedua mengunakan koneksi yang biasa dilakukan mengunakan ConnectionString dan juga DataReader.</p>
<p>Contoh berikutnya kita akan mencoba mengkombinasikan kedua proses sebelumnya, kita akan membuat koneksi kedalam database mengunakan connectionString dan juga membuat sebuah object DataContext dengan menuliskan script untuk membaca isi table Customers seperti contoh2 sebelumnya</p>
<p>Agar dapat mengunakan dan membuat object DataContext dalam project, menambahkan Reference pengunaan System.data.linq dan juga meng-import System.Data.Linq namespace tersebut kedalam project kita.</p>
<p>Untuk menambahkan Referene project click kanan pada nama project dibagian Solution explorer &#8211;&gt; add reference, kemudian cari reference untuk System.data.linq yang ingin ditambahkan.</p>
<div id="attachment_101" class="wp-caption aligncenter" style="width: 193px"><img class="size-full wp-image-101" title="add-reference" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/add-reference.jpg" alt="add-reference" width="183" height="306" /><p class="wp-caption-text">add-reference</p></div>
<p>Kemudian untuk mengimport namespace tersebut cukup letakan script berikut dibagian awal project kita.</p>
<pre class="brush: jscript;">
Imports System.Data.Linq
</pre>
<p>Setelah mengimport Namespace tersebut maka kita dapat membuat object DataContext dengan mengunakan script pada project kita, berikut sintaks pembuatannya mengunakan sebuah connectionString.</p>
<pre class="brush: jscript;">
Dim connectionStr = &quot;Data Source=localhost;” &amp; _
 “Initial Catalog=Northwind;” &amp; _
 ”Integrated Security=True&quot;
 Dim Db = New DataContext(connectionStr)
</pre>
<p>Setelah proses diatas kita telah memiliki sebuat object DataContext sama seperti kita membuatnya dengan mengunakan Template class SQL to LINQ pada contoh pertama, namun kali ini object yang kita buat bersifat onthefly (Virtual dan tersimpan didalam memory), kita tidak memiliki visualisasi gambar seperti contoh pertama.</p>
<p>Berikutnya untuk mengunakan salah satu table yang ada didalamnya kita akan memanfaatkan getTable method yang ada didalam object DataContext.<br />
Untuk mengunakan getTable kita memerlukan struktur class dari table yang akan kita gunakan, disini kita akan memanfaatkan struktur class yang telah dibentuk dalam proses Template classes LINQ to SQL, sintaks lengkap pengunaan getTable adalah sebagai berikut:</p>
<pre class="brush: jscript;">
Public Function GetTable(Of TEntity As Class)() As Table(Of TEntity)
</pre>
<p>Dari sintaks diatas terlihat bawa function/method getTable memerlukan 1 parameter ber-type Class yang harus disertakan dalam pengunaannya, kemudian proses getTable akan mengembalikan hasil berupa data berType Table yang akan ditampung kedalam parameter class yang kita berikan.</p>
<p>Dari contoh kita sebelumnya kita perlu menuliskan script berikut untuk mengambil data table Customer dalam database Northwind, kemudian memampung data table kedalam format class Customer yang telah dibentuk pada file .dbml.</p>
<pre class="brush: jscript;">
Dim Customers As Table(Of Customer) = Db.GetTable(Of Customer)()
</pre>
<p>Secara lengkap penulisan script pengunaan DataContext dan juga class Customer yang telah terbentuk adalah seperti dibawah.</p>
<pre class="brush: jscript;">

 ’---- Membuat object DataContext ------
 Dim connectionStr = &quot;Data Source=localhost;” &amp; _
 “Initial Catalog=Northwind;” &amp; _
 ”Integrated Security=True&quot;
 Dim Db = New DataContext(connectionStr)

 ’---- Membaca table CUSTOMERS kedalam class Customer  ------
 Dim Customers As Table(Of Customer) = Db.GetTable(Of Customer)()

 ’---- Melakukan query kedalam class customers table ------
 Dim Query = From cust In Customers _
 Where cust.Country = &quot;germany&quot; _
 Select cust

 ’---- Membaca data hasil query LINQ  ------
 Dim hasil = &quot;-- Data customer dari Jerman -- &quot; &amp; vbCrLf
 For Each cust In Query
 hasil = hasil &amp; cust.CustomerID &amp; &quot;-&quot; &amp; cust.Country &amp; vbCrLf
 Next
 MsgBox(hasil)
 </pre>
<p><strong>BINDING data LINQ kedalam Grid </strong><br />
Sekarang kita akan mencoba melakukan Binding data hasil proses query LINQ kedalam sebuah object Grid. Untuk mencoba proses ini buatlah sebuah project Visual Basic baru dan beri nama BINDING.</p>
<p>Setelah project terbentuk tambahkan sebuah template clasess LINQ to SQL kedalam project dan beri nama Customer.dbml (lihat contoh proses menambahkan class ini pada penjelasan sebelumnya).</p>
<p>Setelah class terbentuk dan Layar O/R kosong ditampilkan, lakukan Drag &amp; Drop table customers dari table Northwinds kedalam layar O/R yang ada.</p>
<div id="attachment_103" class="wp-caption aligncenter" style="width: 419px"><img class="size-full wp-image-103" title="BINDING data LINQ kedalam Grid " src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/hasil4.jpg" alt="BINDING data LINQ kedalam Grid " width="409" height="267" /><p class="wp-caption-text">BINDING data LINQ kedalam Grid </p></div>
<p>Setelah class customer terbentuk pada layar O/R, sekarang kita kembali pada form VB yang ada dan tambahkan sebuah object DataGridView kedalamnya dan beri nama oGrid.</p>
<div id="attachment_102" class="wp-caption aligncenter" style="width: 428px"><img class="size-full wp-image-102" title="LINQ 2 SQL" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/grid1.jpg" alt="LINQ 2 SQL" width="418" height="230" /><p class="wp-caption-text">LINQ 2 SQL</p></div>
<p>Kemudian pada double click area kosong pada Form yang ada agar kita masuk kedalam layar code editor, tambahkan script berikut pada bagian atas script setelah deklarasi class form1.</p>
<pre class="brush: jscript;">
Public dc As New CustomerDataContext()
</pre>
<p>Lalu tambahkan proses berikut kedalam event Load dari form yang kita gunakan.</p>
<pre class="brush: jscript;">
'-- Binding DataContext Customers kedalam Grid ---
 oGrid.DataSource = dc.customers
</pre>
<p>Setelah selesai jalankan project tersebut dengan menekan tombol (F5), maka hasil pembacaan data LINQ telah ditambahkan kedalam Grid yang kita miliki seperti gambar berikut:</p>
<div id="attachment_104" class="wp-caption aligncenter" style="width: 376px"><img class="size-full wp-image-104" title="LINQ 2 SQL" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/OpenGrid.jpg" alt="LINQ 2 SQL" width="366" height="331" /><p class="wp-caption-text">LINQ 2 SQL</p></div>
<p>Dengan proses diatas kita telah melakukan BINDING DataContext kedalam datasource dari object Grid, semua data yang ada pada table customers akan ditampilkan pada Grid, namun  jika kita ingin melakukan filter dan sedikit manipulasi urutan index terhadap data yang akan ditampilkan kita perlu mengunakan proses LINQ seperti berikut:</p>
<pre class="brush: jscript;">

'-- Proses pembacaan data dengan LINQ ---
 Dim Customers = From data In dc.Customers _
 Where data.Country = &quot;UK&quot; _
 Order By data.CompanyName _
 Select data

 '-- Binding data LINQ Customers kedalam Grid ---
 oGrid.DataSource = Customers
 </pre>
<p>Contoh diatas kita lakukan Filter data untuk customers yang berasal dari “UK” dan kemudian melakukan pengurutan data berdasarkan CompanyName, pada bagian terakhir kita BINDING data hasil proses LINQ kedalam DataSource object Grid.</p>
<p>Untuk BINDING data ini kita dapat melakukan kepada semua object yang memiliki/mendukung DataSource type didalamnya, kita dapat parsing data hasil LINQ kedalam ListBox, ComboBox dsb.</p>
<p>Sekian pembahasan kita tentang berkenalan dengan LINQ pada visual basic, belum semua kemapuan dari LINQ kita bahas disini. Mudah-mudahan tutorial singkat ini memberikan cukup gambaran pengunaan LINQ.</p>
<p>Selamat mencoba,<br />
Happy coding.</p>


<p>Related posts:<ol><li><a href='http://www.ruangkecil.or.id/2008/02/05/berkenalan-dengan-linq-part-1/' rel='bookmark' title='Permanent Link: Berkenalan dengan LINQ (Part 1)'>Berkenalan dengan LINQ (Part 1)</a></li><li><a href='http://www.ruangkecil.or.id/2008/02/15/linq-to-object-part-2/' rel='bookmark' title='Permanent Link: LINQ to OBJECT (Part 2)'>LINQ to OBJECT (Part 2)</a></li><li><a href='http://www.ruangkecil.or.id/2009/02/21/linq-to-xml-part-3/' rel='bookmark' title='Permanent Link: LINQ to XML (Part 3)'>LINQ to XML (Part 3)</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.ruangkecil.or.id/2008/02/25/linq-to-sql-part-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LINQ to OBJECT (Part 2)</title>
		<link>http://www.ruangkecil.or.id/2008/02/15/linq-to-object-part-2/#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=linq-to-object-part-2</link>
		<comments>http://www.ruangkecil.or.id/2008/02/15/linq-to-object-part-2/#comments</comments>
		<pubDate>Fri, 15 Feb 2008 14:31:27 +0000</pubDate>
		<dc:creator>Jerry Peter</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[Visual Basic]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://www.ruangkecil.or.id/?p=70</guid>
		<description><![CDATA[Berikut merupakan posting lanjutan tentang pemanfaatan LINQ pada Visual Studio Sekarang kita coba kemapuan LINQ dalam melakukan proses query kedalam OBJECT collection (Array, ArrayList, HashTable, Directory, List dan juga user define collection).

Berikut sample pengunaan LINQ dalam mengakses system file pada computer kita.
[javasript]
Dim FileList = From file In My.Computer.FileSystem.GetFiles(CurDir()) _
Select file
Dim hasil = &#8220;DAFTAR FILE&#8221; + [...]


Related posts:<ol><li><a href='http://www.ruangkecil.or.id/2008/02/05/berkenalan-dengan-linq-part-1/' rel='bookmark' title='Permanent Link: Berkenalan dengan LINQ (Part 1)'>Berkenalan dengan LINQ (Part 1)</a></li><li><a href='http://www.ruangkecil.or.id/2008/02/25/linq-to-sql-part-4/' rel='bookmark' title='Permanent Link: LINQ to SQL (Part 4)'>LINQ to SQL (Part 4)</a></li><li><a href='http://www.ruangkecil.or.id/2009/02/21/linq-to-xml-part-3/' rel='bookmark' title='Permanent Link: LINQ to XML (Part 3)'>LINQ to XML (Part 3)</a></li></ol>]]></description>
			<content:encoded><![CDATA[<div id="attachment_76" class="wp-caption alignleft" style="width: 160px"><img class="size-thumbnail wp-image-76" title="LINQ 2 Object" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/linq2object-150x133.jpg" alt="LINQ 2 Object" width="150" height="133" /><p class="wp-caption-text">LINQ 2 Object</p></div>
<p>Berikut merupakan posting lanjutan tentang pemanfaatan LINQ pada Visual Studio Sekarang kita coba kemapuan LINQ dalam melakukan proses query kedalam OBJECT collection (Array, ArrayList, HashTable, Directory, List dan juga user define collection).<br />
<span id="more-70"></span><br />
Berikut sample pengunaan LINQ dalam mengakses system file pada computer kita.</p>
<p>[javasript]</p>
<p>Dim FileList = From file In My.Computer.FileSystem.GetFiles(CurDir()) _<br />
Select file</p>
<p>Dim hasil = &#8220;DAFTAR FILE&#8221; + vbCrLf<br />
For Each file In FileList<br />
hasil = hasil + &#8221; &#8221; + file.ToString + vbCrLf<br />
Next</p>
<p>MsgBox(hasil)</p>
<p>[/javascript]</p>
<p>Proses diatas melakukan Query terhadap system File yang ada computer kita, dan kemudian menampilkan daftar hasil query yg didapatkan. Proses diatas akan menampilkan data seperti gambar berikut:</p>
<div id="attachment_76" class="wp-caption aligncenter" style="width: 410px"><img class="size-full wp-image-76" title="LINQ 2 Object" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/linq2object.jpg" alt="LINQ 2 Object" width="400" height="133" /><p class="wp-caption-text">LINQ 2 Object</p></div>
<p><strong>Local Type Inference </strong><br />
Sebelumnya lebih jauh membahas LINQ, kita berkenalan sebentar dengan istilah Local Type Inference dalam visual basic karena tehnik ini akan digunakan pada proses LINQ, istilah LOCAL TYPE INFENRENCE ini adalah kemampuan menyimpulkan type data yang kita berikan kedalam sebuah variable berdasarkan nilai yang dimasukan.</p>
<p>Contoh:</p>
<pre class="brush: jscript;">

Dim cData = &quot;Jakarta – Indonesia&quot;
 Dim nNilai = 666
</pre>
<p>Dengan local type inference, maka secara automatis akan segera menyimpulkan bahwa variable cData memiliki type String dan nNilai memiliki type data Integer.</p>
<p>Pada sintaks LINQ kita akan sering menuliskan proses seperti berikut :</p>
<pre class="brush: jscript;">

Dim Hasil = From num In numbers _
 Where num Mod 2 = 0 _
 Select num
</pre>
<p>Dari sintaks LINQ diatas kita mengunakan kemampuan Local type inference pada VB, dari proses diatas automatis variable akan berisi type data IEnumerable(T) collection walaupun kita tidak mendeklarasikan sebelumnya.</p>
<p><span style="text-decoration: underline;"> Catatan:</span><br />
<em> IEnumerable(T), Maksud tanda (T) disini adalah type data sesuai hasil proses, bisa berupa IEnumerable (of String/char/integer/dsb)<br />
Jika kita mengarahkan cursor mouse keatas nama variable HASIL maka kita akan segera diinformasikan type data yang diberikan untuk variable tsb. Hal ini juga berlaku saat kita melakukan proses LINQ pada XML atau database.</em></p>
<p><em> </em></p>
<div id="attachment_77" class="wp-caption aligncenter" style="width: 419px"><em><em><img class="size-full wp-image-77" title="LINQ" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/tips.jpg" alt="LINQ" width="409" height="71" /></em></em><p class="wp-caption-text">LINQ</p></div>
<p><em> </em></p>
<p>Sekarang kita kembali lagi kedalam pembahasan tentang LINQ to OBJECT, object-object apa saja sih sebenarnya yang dapat diproses mengunakan LINQ. Menurut MSDN semua object collection dapat kita query mengunakan LINQ, object2 ini antara lain Array, ArrayList, HashTable, Dirctory ataupun type collection object yg kita buat sendiri.</p>
<p>Sekarang kita coba saja satu persatu pengunaan LINQ pada object2 tersebut.</p>
<p><strong>ARRAY COLLECTION</strong><br />
Berikut contoh pengunaan LINQ pada ARRAY Collection, disini kita akan membuat sebuah variable array berisi nama-nama hari, kemudian kita melakukan query untuk data array yang memiliki huruf depan “S” saja.</p>
<pre class="brush: jscript;">
 Dim aHARI() As String = _
 {&quot;senin&quot;, &quot;selasa&quot;, &quot;rabu&quot;, &quot;kamis&quot;, &quot;jum’at&quot;, &quot;sabtu&quot;, &quot;minggu&quot;}

 Dim LINQ = From item In aHARI _
 Where Microsoft.VisualBasic.Left(item, 1) = &quot;s&quot; _
 Select item

 Dim hasil = &quot;HASIL QUERY&quot; &amp; vbCrLf
 For Each item In LINQ
 hasil = hasil &amp; item &amp; vbCrLf
 Next

 MsgBox(hasil)
</pre>
<p>Dari proses diatas akan dihasilkan nilai “Senin, Selasa, Sabtu” pada messagebox.</p>
<div id="attachment_72" class="wp-caption aligncenter" style="width: 140px"><img class="size-full wp-image-72" title="LINQ array" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/array1.gif" alt="LINQ array" width="130" height="155" /><p class="wp-caption-text">LINQ array</p></div>
<p><strong>ARRAYLIST COLLECTION</strong><br />
Sekarang kita coba mengunakan LINQ pada ARRAYLIST Collection, contoh berikut kita akan membuat array list berisi nama-nama kota, kemudian kita melakukan query untuk kota2 yang berhuruf depan “J”.</p>
<pre class="brush: jscript;">

Dim aKOTA As New ArrayList
 aKOTA.Add(&quot;Jakarta&quot;)
 aKOTA.Add(&quot;Bandung&quot;)
 aKOTA.Add(&quot;Malang&quot;)
 aKOTA.Add(&quot;Jambi&quot;)
 aKOTA.Add(&quot;Surabaya&quot;)
 aKOTA.Add(&quot;Medan&quot;)

 Dim LINQ = From item In aKOTA _
 Where Microsoft.VisualBasic.Left(item, 1) = &quot;J&quot; _
 Select item

 Dim hasil = &quot;HASIL QUERY KOTA&quot; &amp; vbCrLf
 For Each item In LINQ
 hasil = hasil &amp; item &amp; vbCrLf
 Next
 MsgBox(hasil)
</pre>
<p>Dari hasil diatas akan terdapat data “Jakarta dan Jambi” pada messagebox.</p>
<div id="attachment_73" class="wp-caption aligncenter" style="width: 128px"><img class="size-full wp-image-73" title="LINQ array" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/array2.gif" alt="LINQ array" width="118" height="122" /><p class="wp-caption-text">LINQ array</p></div>
<p><strong>HASHTABLE COLLECTION</strong><br />
Berikut contoh query data LINQ pada HASHTABLE Collection, disini kita akan membuat variable HashTable yg berisi data2 String berikut keyed untuk masing2 data tsb, kemudian kita akan mengquery data untuk keyed yg lebih dari 3 saja.</p>
<pre class="brush: jscript;">

Dim oHashTable As New Hashtable
 oHashTable.Add(1, &quot;Jerry&quot;)
 oHashTable.Add(2, &quot;Peter&quot;)
 oHashTable.Add(3, &quot;Visual&quot;)
 oHashTable.Add(4, &quot;Studio&quot;)
 oHashTable.Add(5, &quot;Hash&quot;)
 oHashTable.Add(6, &quot;Table&quot;)
 oHashTable.Add(7, &quot;LINQ&quot;)

 Dim LINQ = From item In oHashTable _
 Where item.key &gt; 3 _
 Order By item.key _
 Select item

 Dim HASIL = &quot;HASIL QUERY HASHTABLE&quot; &amp; vbCrLf
 For Each item As DictionaryEntry In LINQ
 HASIL=HASIL &amp; &quot;KEY:&quot; &amp; item.Key &amp; &quot; VALUE:&quot; &amp; item.Value &amp; vbCrLf
 Next

 MsgBox(HASIL)
</pre>
<p>Dari proses tersebut akan dihasilkan data “Studio, Hash, Table, LINQ” pada messagebox yang muncul.</p>
<div id="attachment_74" class="wp-caption aligncenter" style="width: 183px"><img class="size-full wp-image-74" title="LINQ array" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/array3.gif" alt="LINQ array" width="173" height="173" /><p class="wp-caption-text">LINQ array</p></div>
<p><strong>USER DEFINE ARRAYLIST COLLECTION</strong><br />
Proses terakhir kita coba mengunakan LINQ untuk mengakses sebuah Type data yang collection yang kita buat sendiri. Pada contoh berikut kita coba membuat sebuah class object baru PRODUCT, untuk membuat class baru ini click kanan pada nama project yang ada pada Solution explorer &#8211;&gt; add &#8211;&gt; class.</p>
<div id="attachment_71" class="wp-caption aligncenter" style="width: 310px"><img class="size-full wp-image-71" title="add-class-vb" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/add-class-vb.jpg" alt="add-class-vb" width="300" height="334" /><p class="wp-caption-text">add-class-vb</p></div>
<p>Berikan nama class tersebut PRODUCT.VB, Kemudian buat struktur class dengan 4 buah property dengan sintaks berikut</p>
<pre class="brush: jscript;">
 Public Class product
 Public ProductID As String
 Public Nama As String
 Public Supplier As String
 Public HNA As Integer
 Public HPP As Integer
 End Class
</pre>
<p>Sekarang kita kembali pada form project kita, tambahkan sebuah tombol kedalam form dan isi script proses berikut pada event Click tombol yang baru dibuat.</p>
<pre class="brush: jscript;">

Dim product1 As New product With {.ProductID = &quot;01&quot;, _
 .Nama = &quot;Obat batuk&quot;, _
 .Supplier = &quot;SUPPLIER_A&quot;, _
 .HNA = 1000, _
 .HPP = 900}
 Dim product2 As New product With {.ProductID = &quot;02&quot;, _
 .Nama = &quot;Obat pusing&quot;, _
 .Supplier = &quot;SUPPLIER_A&quot;, _
 .HNA = 1500, _
 .HPP = 1200}
 Dim product3 As New product With {.ProductID = &quot;02&quot;, _
 .Nama = &quot;Obat tidur&quot;, _
 .Supplier = &quot;SUPPLIER_B&quot;, _
 .HNA = 2500, _
 .HPP = 2400}

 Dim aProduct As New ArrayList()
 aProduct.Add(product1)
 aProduct.Add(product2)
 aProduct.Add(product3)

 Dim LINQ = From item As product In aProduct _
 Where item.HPP &gt; 1000 _
 Select item

 For Each item In LINQ
 MsgBox(&quot;Product ID  : &quot; &amp; item.ProductID &amp; vbCrLf &amp; _
 &quot;Nama product: &quot; &amp; item.Nama &amp; vbCrLf &amp; _
 &quot;HNA : &quot; &amp; item.HNA &amp; vbCrLf &amp; _
 &quot;HPP : &quot; &amp; item.HPP)
 Next
</pre>
<p>Baris 1 – 15    : Membuat 3 buah variable baru berikut nilainya dari class product.vb<br />
Baris 16 – 19     : Membuat sebuah variable ArrayList dan menambahkan 3 buah variable product yg telah dibuat sebelumnya.<br />
Baris 21 – 23    : Melakukan proses LINQ untuk mengambil data product yg memiliki HPP lebih besar dari 1000.<br />
Baris 24 – 29    : Melakukan proses loop membaca data hasil proses LINQ sebelumnya, dari proses ini seharusnya muncul 2 kali messagebox yang menampilkan data product 001 dan 002.</p>
<p>Contoh diatas hanya gambaran mengunakan User define collection, dan mengakses -nya mengunakan LINQ, pada real applikasi seharusnya lebih effektif mengunakan database untuk kasus pembuatan daftar barang.</p>
<p>Masih ada beberapa fasilitas lain yang dapat kita gunakan dalam LINQ to Object seperti JOIN, AGGREGATE, DISTINCT, GROUP dsb. Namun untuk perkenalan awal dengan LINQ kita bahas beberapa hal diatas dahulu, untuk lebih jauh lagi akan dibuat pada posting terpisah nantinya.</p>
<div id="attachment_75" class="wp-caption aligncenter" style="width: 425px"><img class="size-full wp-image-75" title="LINQ array" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/array4.jpg" alt="LINQ array" width="415" height="160" /><p class="wp-caption-text">LINQ array</p></div>
<p>s</p>


<p>Related posts:<ol><li><a href='http://www.ruangkecil.or.id/2008/02/05/berkenalan-dengan-linq-part-1/' rel='bookmark' title='Permanent Link: Berkenalan dengan LINQ (Part 1)'>Berkenalan dengan LINQ (Part 1)</a></li><li><a href='http://www.ruangkecil.or.id/2008/02/25/linq-to-sql-part-4/' rel='bookmark' title='Permanent Link: LINQ to SQL (Part 4)'>LINQ to SQL (Part 4)</a></li><li><a href='http://www.ruangkecil.or.id/2009/02/21/linq-to-xml-part-3/' rel='bookmark' title='Permanent Link: LINQ to XML (Part 3)'>LINQ to XML (Part 3)</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.ruangkecil.or.id/2008/02/15/linq-to-object-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Berkenalan dengan LINQ (Part 1)</title>
		<link>http://www.ruangkecil.or.id/2008/02/05/berkenalan-dengan-linq-part-1/#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=berkenalan-dengan-linq-part-1</link>
		<comments>http://www.ruangkecil.or.id/2008/02/05/berkenalan-dengan-linq-part-1/#comments</comments>
		<pubDate>Tue, 05 Feb 2008 13:40:53 +0000</pubDate>
		<dc:creator>Jerry Peter</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[Visual Basic]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://www.ruangkecil.or.id/?p=67</guid>
		<description><![CDATA[LINQ singkatan dari Language Integrated Query, lalu apa bedanya sih dengan Query yang selama ini digunakan dalam database? Salah satu perbedaannya LINQ selain bisa melakukan query pada database juga dapat melakukan query terhadap data dalam format XML, Entities, Object dan sebagainya.
Secara singkat konsepnya sama dengan ODBC yang menjadi jembatan dalam mengakses database dalam berbagi format. [...]


Related posts:<ol><li><a href='http://www.ruangkecil.or.id/2008/02/15/linq-to-object-part-2/' rel='bookmark' title='Permanent Link: LINQ to OBJECT (Part 2)'>LINQ to OBJECT (Part 2)</a></li><li><a href='http://www.ruangkecil.or.id/2008/02/25/linq-to-sql-part-4/' rel='bookmark' title='Permanent Link: LINQ to SQL (Part 4)'>LINQ to SQL (Part 4)</a></li><li><a href='http://www.ruangkecil.or.id/2009/02/21/linq-to-xml-part-3/' rel='bookmark' title='Permanent Link: LINQ to XML (Part 3)'>LINQ to XML (Part 3)</a></li></ol>]]></description>
			<content:encoded><![CDATA[<div id="attachment_68" class="wp-caption alignleft" style="width: 160px"><img class="size-thumbnail wp-image-68" title="LINQ" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/linq-150x150.jpg" alt="LINQ" width="150" height="150" /><p class="wp-caption-text">LINQ</p></div>
<p>LINQ singkatan dari Language Integrated Query, lalu apa bedanya sih dengan Query yang selama ini digunakan dalam database? Salah satu perbedaannya LINQ selain bisa melakukan query pada database juga dapat melakukan query terhadap data dalam format XML, Entities, Object dan sebagainya.</p>
<p>Secara singkat konsepnya sama dengan ODBC yang menjadi jembatan dalam mengakses database dalam berbagi format. LINQ disini juga menjadi jembatan perantara dalam mengakses berbagai format struktur data. Selama format data mendukung IEnumerable Type maka LINQ dapat melakukan query kedalamnya.<span id="more-67"></span></p>
<p>Sebagai contoh, seperti biasa kita mulai ritual dengan coba membuat script “Hello World” untuk melihat proses LINQ.</p>
<pre class="brush: php;">

Dim aKata() As String={&quot;Hello&quot;,&quot;World&quot;,&quot;Visual&quot;,&quot;Studio&quot;,&quot;LINQ&quot;}
 Dim LINQ = From item In aKata _
 Select item
 For Each k In LINQ
 Console.WriteLine(k)
 Next
</pre>
<p>Baris 1        : proses deklarasi variable ARRAY String<br />
Baris 2,3    : Sintaks pengunaan LINQ, untuk mencoba melakukan query kedalam format data ARRAY string yang telah di deklarasikan sebelumnya. Hasil proses query akan disimpan kedalam variable LINQl.<br />
Baris 4,5,6    : Proses membaca data hasil query dengan LINQ dan menampilkannya pada console.</p>
<p>Dari contoh diatas kita lihat LINQ melakukan Query data kedalam sebuah ARRAY collection, secara sintaks juga mungkin tidak jauh berbeda dengan pengunaan QUERY pada SQL, perbedaanya keyword FORM digunakan diawal dan keyword SELECT digunakan pada bagian akhir. Selain Form dan Select kita juga dapat mengunakan WHERE dan ORDER seperti pada SQL Query untuk melakukan filter data dan pengurutan data.</p>
<p><strong>WHERE</strong><br />
Berikut sample pengunaan WHERE dalam LINQ untuk melakukan filter data.</p>
<pre class="brush: php;">

Dim aNumbers() As Integer = {0, 1, 2, 3, 4, 5, 6}
 Dim LINQ = From num In aNumbers _
 Where num Mod 2 = 0 _
 Select num
 For Each number In LINQ
 Console.Write(number &amp; &quot; &quot;)
 Next
</pre>
<p>Baris 1        : Pembuatan variable array integer<br />
Baris 2,3,4    : Sintaks pengunaan WHERE pada LINQ untuk melakukan filter data, disini dilakukan filter terhadap nilai2 integer yg habis dibagi 2 dengan (MOD), dari proses ini hasil yg diperoleh hanyalah data2 bilangan genap.<br />
Baris 5,6,7    : Proses loop pembacaan data dan menampilkan data pada console.</p>
<p><strong>ORDER</strong><br />
Selanjutnya contoh berikut pengunaan ORDER dalam melakukan pengurutan data pada LINQ.</p>
<pre class="brush: php;">

Dim aData() As Char = {&quot;B&quot;, &quot;D&quot;, &quot;C&quot;, &quot;A&quot;, &quot;F&quot;, &quot;E&quot;, &quot;G&quot;}
 Dim LINQ = From item In aData _
 Order By item _
 Select item
 For Each item In LINQ
 Console.Write(item &amp; &quot; &quot;)
 Next
</pre>
<p>Baris 1    : Pembuatan data Array character yang urutannya masih berantakan<br />
Baris 2,3,4    : Melakukan proses query Array data dan melakukan Index pada hasil yang dapatkan.<br />
Baris 5,6,7    : Proses loop pembacaan data dan memampilkan data pada console</p>
<p>Contoh2 diatas hanya sebagian proses pengunaan LINQ, hanya sebagai perkenalan awal bagaimana LINQ dapat melakukan Query kedalam format data selain Query yang biasa dilakukan dalam struktur database. Keyword-keyword yg digunakan pada LINQ ini juga mungkin hamper sama dengan penguaan Keyword pada Query dalam SQL, kalau dilihat perbedaanya hanya pada letak penulisannya saja.</p>
<p>Teknologi LINQ ini sendiri diperkenalkan pertama kali oleh Anders Hejlsberg dalam Microsoft Profesional Developers Conference (PDC) tahun  2005, tujuannya adalah membuat standarisasi dan memudahkan pattern proses pengaksesan data. Dengan adanya standart pengaksesan data maka para developer/programmer dapat melakukan cara yg sama dalam memproses beberapa format data (Database, XML ataupun Collection data object)</p>
<p>Berikut diagram arsitektur LINQ secara global dalam proses pengaksesan data.</p>
<p style="text-align: center;">
<div id="attachment_68" class="wp-caption aligncenter" style="width: 460px"><img class="size-full wp-image-68 " title="LINQ" src="http://www.ruangkecil.or.id/wp-content/uploads/2009/11/linq.jpg" alt="LINQ" width="450" height="286" /><p class="wp-caption-text">LINQ</p></div>
<p>Secara global terlihat LINQ dapat digunakan untuk melakukan query kedalam beberapa format data berikut :</p>
<ul>
<li>LINQ to Object</li>
<li>LINQ to XML</li>
<li>LINQ to Database (SQL dan Dataset)</li>
<li>LINQ to Entity</li>
</ul>
<p>Pembahasan detail masing2 proses diatas kita bahas di posting2 berikutnya</p>


<p>Related posts:<ol><li><a href='http://www.ruangkecil.or.id/2008/02/15/linq-to-object-part-2/' rel='bookmark' title='Permanent Link: LINQ to OBJECT (Part 2)'>LINQ to OBJECT (Part 2)</a></li><li><a href='http://www.ruangkecil.or.id/2008/02/25/linq-to-sql-part-4/' rel='bookmark' title='Permanent Link: LINQ to SQL (Part 4)'>LINQ to SQL (Part 4)</a></li><li><a href='http://www.ruangkecil.or.id/2009/02/21/linq-to-xml-part-3/' rel='bookmark' title='Permanent Link: LINQ to XML (Part 3)'>LINQ to XML (Part 3)</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.ruangkecil.or.id/2008/02/05/berkenalan-dengan-linq-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
