VISUAL C# No.47: Mengenal LINQ dan penerapannya pada Dataset (LINQ Bag 3)


LINQ Bagian 1: Mengenal LINQ dan penerapannya pada Array, Xml dan Sql [Click disini]
LINQ Bagian 2: Mengenal LINQ dan penerapannya pada ArrayList, Strings, File Directories [Click disini]
LINQ Bagian 3: Mengenal LINQ dan penerapannya pada Dataset [Halaman ini]
LINQ Bagian 4: Mengenal LINQ dan penerapannya pada Entities [Belum]

Bila kita berhubungan dengan LinQ dan Data, ada banyak sekali cakupan penerapan LinQ ini dalam .NET, beberapa diantaranya sudah kita bahas pada tutorial sebelumnya.

Transfer data dari SQL Table ke dalam object pada memori terkadang sulit dan rawan error. Maka dari itu LinQ memiliki fasilitas untuk menconvert source data ke dalam IEnumerable object collections.
Ada tiga (3) teknologi LinQ ADO.NET yaitu LinQ to Dataset, LinQ to Entities dan LinQ to SQL
Sekarang kita akan membahas penerapan LinQ pada ADO.NET, yaitu Dataset dan Entities. Sedangkan untuk SQL sudah kita bahas pada tutorial bagian pertama.



A. LINQ TO DATASET

Loading Data dari Database ke Dataset


Dataset merupakan komponen yang sering digunakan dalam ADO.NET. Sudahkan anda mengenal Dataset?
Bila anda belum mengenal Dataset, anda bisa membaca tutorial sebelumnya di sini

Sebagai pengingat, Dataset bisa digunakan sebagai tempat penyimpanan data sementara pada memori cache atau memori ram. Dengan Dataset, anda bisa meloading data anda dari Database kemudian memasukan semuanya dalam penampungan sementara pada memori cache.

Praktek Linq to Dataset


Untuk mempraktekkan bagaimana penggunaan LinQ dalam pengelolaan Dataset, maka kita akan membuat/men-generate Dataset terlebih dahulu.

Anda bisa membuat Dataset, kemudian mengisi datanya dari Database SQL anda. Anda pun bisa mengisi data pada Dataset dengan cara ‘simple DataTable’ seperti pada tutorial sebelumnya.

Pada tutorial ini kita akan mengisi data pada Dataset dengan data dari Database SQL. Meloading data dari SQL kemudian menambahkannya pada Dataset bisa dilakukan dengan banyak cara, anda bisa menggunakan LinQ lagi, bisa juga menggunakan DataAdapter.

Penggunaan LinQ to SQL sudah kita bahas pada tutorial sebelumnya. Sekarang kita akan meloading data dari SQL kemudian memasukkannya ke dalam Dataset dengan menggunakan DataAdapter.

Berikut merupakan contoh kode untuk meloading data dari Database dan memasukkannya ke dalam memori cache (Dataset).


Pada kode di atas, kita menggunakan SqlConnection untuk meloading data. Pada connection string, kita bisa menggunakan symbol @ ataupun tidak menggunakan symbol @.

Symbol ini digunakan untuk memproteksi tanda backslash ‘ \ ‘. Penjelasan lihat pada kode.

Pada akhir kode, kita memasukkan semua data yang sudah terloading ke dalam Dataset dengan menggunakan DataAdapter, kemudian setelah semua sudah selesai kita menampilkan data yang sudah masuk di Dataset dalam format xml dengan method getXml().

Mudah bukan?

Hasil dari kode diatas bisa dilihat pada gambar berikut ini,
Lihat gambar 1:


Mari kita lanjut.....

Kita ketahui bersama bahwa pada contoh kode di atas, hanya terdapat satu buah tabel yaitu ‘Table’. Kita akan mencoba menambahkan satu buah tabel lagi SECARA MANUAL kedalam Dataset segera setelah data berhasil diloading dari database dan dimasukan ke Dataset, tabel yang kita buat yaitu tabel ‘NamaSekolah’.

Lihat contoh code berikut:


Pada kode contoh di atas, pada block finally, kita membuat sebuah tabel baru dan memasukkannya ke dalam Dataset dengan kode:

//[BEGIN HERE...]
DataTable table1 = new DataTable("NamaSekolah");
table1.Columns.Add("Id");
table1.Columns.Add("Sekolah");
table1.Rows.Add(1, "SMANSAKRA");
table1.Rows.Add(2, "SMANDAKRA");
ds.Tables.Add(table1);


Hasil dari kode di atas adalah seperti pada screenshot berikut,
Lihat gambar 2:


Nah, setelah kita behasil meloading data kedalam Dataset serta menambahkan tabel lain kedalam Dataset, saatnya mari kita mencoba menggunakan LinQ.

Menggunakan LinQ untuk akses data dari Dataset


Sebetulnya, istilah query merupakan expression untuk meloading data dari data source. Query biasanya ditulis dengan menggunakan query language tertentu seperti SQL untuk database dan Xquery untuk XML. Dengan latar belakang seperti itu tentu developer harus menguasai beragam bahasa tersebut, tetapi dengan adanya LinQ, kita bisa dengan mudah menginsertkan query dalam bahasa Visual C#.

Ada 2 formula yang digunakan dalam LinQ To Dataset, yaitu ‘query expression syntax’ dan ‘method-based query syntax’.

Query Expression Syntax

Query Expression Syntax merupakan Declarative Query Syntax. Penulisan sintaks ini mirip sekali dengan penulisan SQL yang disisipkan pada pemrograman C#.

Query Expression Syntax diperkenalkan pada C# 3.0 dan Visual Basic 2008.

Berikut merupakan contoh kode dari Query Expression Syntax.

Pada kode contoh sebelumnya, deklarasi Dataset ds berada dalam method main, kita akan mencoba mengeluarkannya dari method main dan kita deklarasikan di dalam class sebelum method main.

Setelah itu kita akan membuat sebuah method baru yang di dalamnya terdapat Query Expression Syntax. Saya menggunakan ‘static modifier’ untuk menyesuaikan kodenya, sudahkah anda paham tentang ‘static modifier’? :P

Lihat kode:


Bisa kita lihat, query kita adalah contoh dari Query Expression Syntax,
Lihat gambar 3:



Mudah bukan??
Anda bisa melihat screenshot hasil running kode,
Lihat gambar 4:


Yuk lanjut,,,,

Method-Based Query Syntax


Untuk method based, kode query tidak mirip sintaks sql seperti di atas, melainkan berupa direct method dengan lamda expressions.

Bingung?

Perhatikan contoh kode berikut, kodenya sama dengan kode sebelumnya, hanya saja method selectData() kita ubah menggunakan method based query.
Lihat code:



Pada kode di atas, kita menggunakan lamda expression, bila belum tau apa itu lamda expression, silahkan buka – buka tutorial berikutnya, atau search di form search di atas, atau search saja di Google.
Lihat gambar 5:


Mudah bukan?? Silahkan baca kodenya, kemudian pahami, mudah dimengerti bukan? Kode yang saya comment out itu merupakan query expression yang kita gunakan pada sebelumnya.

Hasil dapat anda lihat,
Lihat gambar 6:


Contoh – contoh yang kita sampaikan di atas hanyalah gambaran umum dalam LINQ TO DATASET. Banyak sekali trik – trik kompleks yang bisa anda pelajari. Linq sangat membantu sekali dalam pekerjaan anda, so, jangan sampai anda tidak menguasai LinQ :)

Sekian, semoga bermanfaat, salam,

Tidak ada komentar

Diberdayakan oleh Blogger.