LINQ Tutorial , LINQ To SQL Overview | Iksan Komputer

Wednesday, August 7, 2019

LINQ Tutorial , LINQ To SQL Overview

Language Integrated Query adalah membawa sebuah nuansa baru bag lunak dalam hal pengaksesan data.

SELAMA LEBIH DARI 20 tahun pemrograman berorientasi objek telah berkembang pesat menjadi sebuah paradigma utama yang digunakan untuk pengembangan perangkat lunak. API dan framework memungkinkan pengembangan perangkat lunak secara cepat dan efisien. Namun, ada satu hal yang kurang berkembang yaitu belum adanya media yang efektif untuk menggabungkan antara bahasa dengan paradigma berorientasi objek dengan database relasional atau representasi data lainnya yang bukan direpresentasikan sebagai objek. Masalah ini sering disebut dengan istilah object/relational impedance mismatch. Ini adalah permasalahan di mana terjadi adanya perbedaan antara dunia objek pada bahasa pemrograman berorientasi objek dengan dunia relasional pada database berbasis relasional. Sehingga dengan adanya permasalahan ini, maka para pengembang perangkat lunak harus berhadapan dengan hibridisasi antara kedua dunia relasional dan dunia objek.

Arsitektur LINQ
Seiring dengan berjalannya waktu, ada banyak alternatif yang telah dikembangkan untuk mengatasi masalah di atas dan mempermudah pengembang perangkat lunak dalam berhubungan dengan basis data. Sebagai contoh pada pertengahan 90-an telah dikembangkan ODBC (Open Database Connectivity) yang dilanjutkan dengan dikembangkannya JDBC untuk bahasa java dan ADO .NET untuk platform .NET. Namun, yang sekarang sedang cukup fenomenal di kalangan industri perangkat lunak adalah berkembangnya Automated Mapping Tools atau yang akrab dikenal dengan ORM (Object Relational Mapping) Tools.

Untuk kategori ini ada banyak pilihan yang tersebar, sebut saja EJB (Enterprise Java Beans) 3.0, JDO (Java Data Object) 2.0, dan (N) Hibernate. ORM membedakan dirinya dengan alternatif lainnya dengan cara membuat sebuah layertambahan yang akan menerjemahkan sebuah objek menjadi relational data dan sebaliknya. Sehingga idealnya dengan menggunakan ORM pengembang perangkat lunak tidak perlu lagi dipusingkan dengan Query SQL ketika akan menyimpan sebuah objek ke basis data.


Pada akhir akhir ini pun telah muncul sebuah teknologi alternatif lain dalam hal pengaksesan data. Teknologi baru ini adalah Language Intergrated Query atau yang sering disingkat dengan LINQ. UNO kali pertama diperkenalkan oleh Anders Hejlsberg dalam Microsoft Professional Developers Conference (PDC) 2005. LINQ mengambil satu langkah ke depan pada pengaksesan basis data dengan mengintegrasikan sintaks query ke dalam bahasa pemrograman. Pendekatan yang diambil LINQ sebenarnya akan tetap menggunakan ORM sebagai layer yang akan memetakan objek ke dalam basis data. Namun, ada perbedaan dengan ORM yaitu ORM hanyalah merupakan sebuah API yang digunakan dari bahasa pemrograman, sedangkan LINQ tidak hanya terdiri dari sebuah API saja melainkan sudah mengintegrasikan query ke dalam bahasa pemrograman. Selain itu, LINQ juga mendukung pengaksesan data lain yang berupa objek dan XML.

1.    LINQ to Object

Merupakan sekumpulan API yang mengandung sejumlah standard query operators (SQO) untuk mengambil data dari sembarang objek yang mengimplementasikan interface IEnumerable<T>. Query ini digunakan terhadap data yang ada dalam memory.

2.    LINQtoADO.NET

Merupakan API yang memberikan kemampuan SQO untuk dapat bekerja terhadap basis data Relational. Ada tiga subbagian dalam UNQ to ADO NET, yaitu LINQ to SQL untuk melakukan query terhadap database relasional seperti Microsoft SQL Server, LINQ to Dataset untuk melakukan query terhadap data sets dan data tables yang ada pada ADO .NET, dan terakhir LINQ to Entities yang merupakan solusi dari Microsoft ORM yang memungkinkan pengembang perangkat lunak menggunakan Entities secara deklaratif dalam menspesifikasikan struktur dari objek bisnis dan menggunakan LINQ untuk melakukan query terhadapnya.

3.    LINQtoXML

Merupakan API yang memberikan kemampuan SQO untuk bekerja terhadap XML termasuk di dalamnya kemampuan untuk membuat sebuah XML document.
Artikel ini secara khusus akan membahas bagaimana penggunaan LINQ untuk berinteraksi dengan basis data relational yang menggunakan API yang disebut DLINQ pada arsitektur yang digambarkan di Gambar 1. Secara lebih detail DLINQ digambarkan pada Gambar 2, dalam gambar ini terlihat bahwa query dari bahasa C# akan diproses oleh lapisan DLinq untuk diterjemahkan menjadi Query SQL untuk kemudian dikirimkan ke basis data. Ketika basis data mengembalikan sekumpulan data yang berbentuk row data tersebut oleh DLinq akan diterjemahkan menjadi objek untuk kemudian diproses pada bagian aplikasi. Ketika objek tersebut telah selesai diproses, maka objek tersebut akan kembali diterjemahkan menjadi sebuah statement SQL atau stored procedure untuk disimpan di basis data.

LINQ Step By Step

Seperti telah dibahas secara singkat pada bagian sebelumnya, pada bagian ini akan dijelaskan bagaimana menggunakan LINQ untuk melakukan pengaksesan data. Dalam contoh ini, akan digunakan Visual Studio C# 2008 Express Edition dan SQL Server 2005 Express Edition yang dapat anda Download pada Link berikut ini
  1. Sebelum memulai mengembangkan aplikasi, tentunya kita perlu membuat sebuah skema basis datanya. Dengan menggunakan SQL Server 2005 Management Express Edition buat sebuah database dengan nama LINQTutorial dan skema sebagai berikut:
  2. Buka Visual Studio C# 2008 Express Edition. Jika Anda menggunakan Vista sebagai Operating System, maka sebaiknya aplikasi ini dijalankan pada "administrator mode".
  3. Buat sebuah project baru bertipe Console Application beri nama MyFirstLinqApp.
  4. Buka jendela "Database Explorer". Anda dapat melakukannya secara cepat dengan menekan kombinasi tombol Ctrl+W, L
  5. Klik kanan pada bagian "Data Connection" kemudian pilih "Add Connection ..." pada menu popup yang muncul.
  6. Pada bagian Datasource pilih "Microsoft SQL Server Database File" setelah itu anda akan dihadapkan pada jendela seperti Gambar 3.
  7. Pada bagian "Database file name (new or existing)" arahkan pada file mdf database yang diinginkan (pada komputer penulis lokasi file tersebut ada di C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\ LINQTutorial.mdf).
  8. Tambahkan file baru pada projek yang kita buat. Caranya cukup mudah, Anda hanya perlu menekan kombinasi tombol Ctrl+Shift+A. Kemudian Anda akan dihadapkan pada jendela seperti pada Gambar 4.
  9. Pilih "LINQ to SQL Classes" dan beri nama "LINQData-Classes.dbml"
  10. Kemudian Anda akan dihadapkan pada'jendela "Object Relational Designer". Jendela ini merupakan jendela yang akan membantu Anda dalam membuat sebuah objek yang akan melakukan mapping antara data yang ada di basis data relational kepada objek.
  11. Tarik tabel Employee pada jendela "Database Explorer" ke jendela "Object Relational Designer" kemudian tampilan di jendela Anda akan seperti gambar di bawah ini. Di balik layar sebenarnya Visual Studio secara otomatis akan membangun sebuah kelas turunan dari DataContext yang memetakan data relasional kita ke objek. Kode dari kelas ini dapat dilihat pada file "LINQDataClasses.designer.es" di solusi kita.
  12. Setelah kita selesai membuat kelas DataContext, maka sekarang adalah saatnya kita membuka file "program.es" untuk menulis kode dalam C# untuk melakukan query terhadap basis data. Sintaks di bawah ini akan melakukan query untuk memperoleh alamat dari seseorang yang bemamakan "Ronald":
  13. Setelah menuliskan kode di atas, tekan F5 atau klik menu Debug | Start Debugging, maka tentunya program Anda akan menghasilkan tampilan seperti Gambar 4.
Dari contoh program di atas beberapa pengembang perangkat lunak tentunya akan merasa jangal dengan sintaks yang ditulisnya. Namun, di sinilah letak keunikan dari teknologi LINQ ini. Seperti telah dibahas sebelumnya, sintaks SQL yang dulunya ditulis dengan string sekarang telah dapat secara langsung terintegrasi dalam bahasa pemrograman, kata-kata seperti from, where, dan select yang akrab di dunia SQL telah menjadi kata kunci pada C# 3.0 dan dapat digunakan untuk melakukan query terhadap objek.

Jika kita bedah, maka kode di atas dapat diartikan sebagai berikut. Kata kunci from menyatakan bahwa p merupakan sebuah objek dari sekumpulan objek yang ada dalam koleksi objek dari data. Employee yang dinyatakan dengan kata kunci in. Kemudian dari kumpulan tersebut dengan memakai kata kunci where diambil sebuah objek yang mempunyai atribut nama yang sama dengan "Ronald" dan jika kondisi ini dipenuhi, maka objek tersebut akan masuk ke dalam kumpulan hasil dari query dengan menggunakan kata kunci select.

Penutup

Kemudahan dan kenyamanan dalam penulisan query serta kemampuannya untuk berinteraksi dengan berbagai bentuk representasi data merupakan keunggulan yang ditawarkan oleh LINQ. Kemudian LINQ ini pun tentunya akan membawa aroma deklaratif seperti pada bahasa SQL terhadap bahasa pemrograman yang biasanya bersifat imperatif. Keunikan dan kemudahan ini tentunya akan menjadi sebuah alternatif baru bagi para pengembang perangkat lunak yang menginginkan suasana baru dalam proses interaksinya dengan data.S

LINQ Tutorial , LINQ To SQL Overview Rating: 4.5 Diposkan Oleh: rosari J

0 comments:

Post a Comment