[Tutorial] Belajar LINQ di C#

Forum diskusi pemrograman Visual C# .NET

[Tutorial] Belajar LINQ di C#

Postby flack » 14 Apr 2010, 19:47

Tutorial kali ini adalah menunjukan bagaimana menulis query LINQ di dalam pemrograman C# di Visual Studio.

Membuat Project C#
Sebelum menulis kode programnya, kita membuat project C# terlebih dahulu.
  1. Buka Visual Studio
  2. Buat Project melalu menu File > New > Project
  3. Pilih Visual C# -> Console Application
  4. Dan jangan lupa tentukan target .NET Framework 3.5.
  5. Kemudian tentukan nama project, dan klik Create.
Dan program awal kita akan menjadi seperti ini :
Code: Select all
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Belajar_Linq
{
    class Program
    {
        static void Main(string[] args)
        {
        }
    }
}


Membuat Data Source dalam Memory
Salah data source yang paling mudah untuk implementasi penggunaan query LINQ adalah Mahasiswa. Oleh karena itu kita akan menggunakan kelas Mahasiswa untuk implementasi query LINQ ini nantinya. Sedikit info mengenai kelas Mahasiswa, tiap mahasiswa mempunya Nama, NIM, dan Nilai. Yang dimana ini nantinya merupakan property yang akan dipakai dalam kelas Mahasiswa.
Sedikit tambahan, property Nilai mahasiswa disini adalah merupakan kumpulan data nilai, jadi bukan merupakan satu data nilai saja.

Membuat Kelas Mahasiswa
Untuk itu kita akan membuat kelas mahasiswa, dengan mengakses menu Project > Add Class... Kemudian beri nama Mahasiswa.cs. Di dalam kelas Mahasiswa ini property Nilai merupakan sebuah kelas List yang bertipe integer. Kelas List ini merupakan bagian dari namespace System.Collection.Generics. Kode kelas Mahasiswa adalah kira-kira seperti ini :
Code: Select all
class Mahasiswa
{
    public string Nama { get; set; }
    public string NIM { get; set; }
    public List<int> Nilai { get; set; }

    public Mahasiswa(string nama,string  nim, List<int> nilai)
    {
        Nama = nama;
        NIM = nim;
        Nilai = nilai;
    }
}


Membuat Objek List dari Kelas Mahasiswa
Kemudian kelas Mahasiswa yang kita buat tadi kita buat objeknya (dalam bentuk list data mahasiswa) di dalam fungsi Main() program:
Code: Select all
static void Main(string[] args)
{
    List<Mahasiswa> dataMahasiswa = new List<Mahasiswa>
    {
        new Mahasiswa(
            "agoesdoubleb",
            "080916001",
            new List<int> { 75, 86, 67, 21 }),

        new Mahasiswa(
            "flack",
            "080916002",
            new List<int> { 65, 90, 70, 87 }),

        new Mahasiswa(
            "pujanggabageur",
            "080916003",
            new List<int> { 80, 86, 90, 95 }),

        new Mahasiswa(
            "gyus",
            "080916004",
            new List<int> { 70, 90, 78, 87 }),

        new Mahasiswa(
            "mbahlawoe",
            "080916005",
            new List<int> { 75, 86, 67, 21 }),

        new Mahasiswa(
            "trail",
            "080916006",
            new List<int> { 65, 90, 70, 87 }),

        new Mahasiswa(
            "vberror13",
            "080916007",
            new List<int> { 80, 86, 90, 95 }),

        new Mahasiswa(
            "zigoalcapone",
            "080916008",
            new List<int> { 70, 90, 78, 87 }),

        new Mahasiswa(
            "kamar82",
            "080916009",
            new List<int> { 70, 90, 78, 87 }),

        new Mahasiswa(
            "pujisusanto",
            "080916010",
            new List<int> { 100, 100, 100, 100 })
    };

}


Memulai LINQ
Men-SELECT semua data mahasiswa
Klausa select adalah perintah paling mudah dalam sistem query. Dari dataMahasiswa diatas untuk melakukan SELECT ALL atau men-select semua data bisa seperti ini (taruh dibawah pembuatan kelas object dataMahasiswa :
Code: Select all
var selectAllMahasiswa =
    from mahasiswa in dataMahasiswa select mahasiswa;

Untuk melihat hasilnya kita buat sebuah perulangan foreach, contohnya seperti ini :
Code: Select all
var selectAllMahasiswa =
    from mahasiswa in dataMahasiswa select mahasiswa;

foreach (Mahasiswa mhs in selectAllMahasiswa)
    Console.WriteLine(mhs.Nama);

Hasilnya akan mejadi seperti ini ketika dijalankan :
Code: Select all
agoesdoubleb
flack
pujanggabageur
gyus
mbahlawoe
trail
vberror13
zigoalcapone
kamar82
pujisusanto


Dan SELAMAT, sampai tahap ini Anda sudah dinyatakan bisa melakukan query LINQ dalam C#. :D

Beberapa Perintah-Perintah Dalam LINQ
Syntax WHERE
Bagi Anda yang sudah terbiasa dengan query SQL, maka tidak akan asing dengan klausa ini. Ya, klausa ini adalah untuk memfilter data hasil query sesuai yang di inginkan. Contoh kali ini adalah menampilkan nama mahasiswa yang dimulai dengan huruf pertama “P”.
Code: Select all
var selectWhereNamaDepanP =
    from mahasiswa in dataMahasiswa
    where mahasiswa.Nama.ToLower().Substring(0, 1) == "p"
    select mahasiswa;


Seperti sebelumnya untuk menampilkan hasilnya kita buat perulangan foreach lagi :
Code: Select all
foreach (Mahasiswa mhs in selectWhereNamaDepanP)
    Console.WriteLine(mhs.Nama);


Syntax ORDERBY
Kadang kalanya kita harus menyortir urutan data yang akan ditampilkan agar hasilnya urut dan sesuai keinginan. Oleh karena itu di LINQ disediakan syntax yang dinamakan orderby. Contoh berikut ini adalah mengambil data mahasiswa tetapi di urutkan sesuai dengan NIM-nya :
Code: Select all
var orderByNamaDepan =
    from mahasiswa in dataMahasiswa
    where mahasiswa.Nama.ToLower().Substring(0, 1) == "p"
    orderby mahasiswa.NIM
    select mahasiswa;


Syntax GROUP – BY
Sintaks group by juga sama saja dengan sintax query di sql, yaitu untuk mengelompokan data tertentu. Contoh berikut ini adalah melakukan group terhadap huruf pertama dari mahasiswa :
Code: Select all
var groupNamaDepan =
    from mahasiswa in dataMahasiswa
    group mahasiswa by mahasiswa.Nama.Substring(0, 1);

Setelah kita menggunakan group, otomatis hasil dari query kita berbeda dengan hasil tanpa group. Itu dikarenakan di dalam sistem LINQ tipe data dari hasil group dan non-group berbeda (bisa di lihat saat mengarahkan mouse ke variabel resultnya. Karena berbeda cara untuk menampilkannya juga sedikit dirubah menjadi seperti ini :
Code: Select all
foreach (var mhsGroup in groupNamaDepan)
{
    Console.WriteLine("GROUP : " + mhsGroup.Key);
    foreach (var x in mhsGroup)
    {
        Console.WriteLine("  " + x.Nama);
    }
}



Source Code untuk Tutorial Ini bisa di download di : http://www.i-bego.com/sc/BelajarLINQ.zip

Salam, flack. ~o)
Jangan malu mengklik tombol kopi pada member yang telah membantu atau memberikan pengetahuannya kepada Anda
Dan ingat selalu Peraturan Memposting !

Post flack telah mendapat 3 kopi dari:
irzan2010, pujanggabageur, vberror13
User avatar
flack
Administrator
Administrator
 
Posts: 1257
Joined: 08 Mar 2010, 07:59
Location: Sidoarjo
Memberi kopi: 49 cangkir
Mendapat kopi: 73 cangkir

Re: [Tutorial] Belajar LINQ di C#

Postby mbahlawoe » 15 Apr 2010, 15:46

Saluuut :-bd
Sayang "SESEPI" Gunung..... :)
User avatar
mbahlawoe
C# Moderator
C# Moderator
 
Posts: 1377
Joined: 14 Mar 2010, 00:18
Location: Solo - Jawa Tengah
Memberi kopi: 61 cangkir
Mendapat kopi: 163 cangkir

Re: [Tutorial] Belajar LINQ di C#

Postby flack » 15 Apr 2010, 17:17

Ben no mbah....
Yang penting saya udah ada referensi bahasa indonesia kalau2 lupa di kemudian hari... :D
Jangan malu mengklik tombol kopi pada member yang telah membantu atau memberikan pengetahuannya kepada Anda
Dan ingat selalu Peraturan Memposting !
User avatar
flack
Administrator
Administrator
 
Posts: 1257
Joined: 08 Mar 2010, 07:59
Location: Sidoarjo
Memberi kopi: 49 cangkir
Mendapat kopi: 73 cangkir

Re: [Tutorial] Belajar LINQ di C#

Postby mbahlawoe » 15 Apr 2010, 18:10

flack wrote:Ben no mbah....
Yang penting saya udah ada referensi bahasa indonesia kalau2 lupa di kemudian hari... :D


:D Jadi Sekalian Nyimpen Dokumen Nih....
Sip lah..., tapi ngomong2 temen2 di i-bego yang main c# siapa aja yah?
User avatar
mbahlawoe
C# Moderator
C# Moderator
 
Posts: 1377
Joined: 14 Mar 2010, 00:18
Location: Solo - Jawa Tengah
Memberi kopi: 61 cangkir
Mendapat kopi: 163 cangkir

Re: [Tutorial] Belajar LINQ di C#

Postby vberror13 » 15 Apr 2010, 18:16

:D saya kadang-kadang maen juga di C#, mbah. Tergantung perintah. ... ^:)^
:ymbilly: :ymbilly: :ymbilly: =:) :ymbilly:
Just Because You Are Unique, Doesn't Mean You Are Useful
User avatar
vberror13
Global Moderator
Global Moderator
 
Posts: 1848
Joined: 13 Mar 2010, 20:34
Location: Medan Indonesia
Memberi kopi: 296 cangkir
Mendapat kopi: 321 cangkir

Re: [Tutorial] Belajar LINQ di C#

Postby mbahlawoe » 15 Apr 2010, 18:24

vberror13 wrote::D saya kadang-kadang maen juga di C#, mbah. Tergantung perintah. ... ^:)^


:)) klo yang ini percaya deh.... "Programming Language" nya by request... :-bd
User avatar
mbahlawoe
C# Moderator
C# Moderator
 
Posts: 1377
Joined: 14 Mar 2010, 00:18
Location: Solo - Jawa Tengah
Memberi kopi: 61 cangkir
Mendapat kopi: 163 cangkir

Re: [Tutorial] Belajar LINQ di C#

Postby flack » 15 Apr 2010, 20:40

mbahlawoe wrote:
vberror13 wrote::D saya kadang-kadang maen juga di C#, mbah. Tergantung perintah. ... ^:)^


:)) klo yang ini percaya deh.... "Programming Language" nya by request... :-bd


Kalo itu bukan by request, tapi by money.... :lol: :lol:
Jangan malu mengklik tombol kopi pada member yang telah membantu atau memberikan pengetahuannya kepada Anda
Dan ingat selalu Peraturan Memposting !
User avatar
flack
Administrator
Administrator
 
Posts: 1257
Joined: 08 Mar 2010, 07:59
Location: Sidoarjo
Memberi kopi: 49 cangkir
Mendapat kopi: 73 cangkir

Re: [Tutorial] Belajar LINQ di C#

Postby trail » 16 Apr 2010, 08:06

klo by money saya ikutan ya... :)) :)) :))
@_@....@_@....@_@
User avatar
trail
Database Moderator
Database Moderator
 
Posts: 1348
Joined: 11 Mar 2010, 14:27
Location: Surabaya
Memberi kopi: 47 cangkir
Mendapat kopi: 103 cangkir

Re: [Tutorial] Belajar LINQ di C#

Postby vberror13 » 16 Apr 2010, 12:55

Memang benar sih, by request. Soalnya kalo dipikir-pikir, koding pake vb.net atau C# sama aja. Apalagi kalo projectnya bikin library atau asp.net. Cuma kadang-kadang karena kita bekerja dalam team dan ada yang lebih suka pake c#, jadinya pake C# semua deh. :D
:ymbilly: :ymbilly: :ymbilly: =:) :ymbilly:
Just Because You Are Unique, Doesn't Mean You Are Useful
User avatar
vberror13
Global Moderator
Global Moderator
 
Posts: 1848
Joined: 13 Mar 2010, 20:34
Location: Medan Indonesia
Memberi kopi: 296 cangkir
Mendapat kopi: 321 cangkir

Re: [Tutorial] Belajar LINQ di C#

Postby Rayzen » 21 Apr 2010, 00:39

Om plek eman keren, euy......
^:)^ terimalah hormatku, sensei....
SALUT :-bd
Tetto'ki ri lempu'e, aja' talesse ri tongenge.
User avatar
Rayzen
Prajurit Satu
Prajurit Satu
 
Posts: 244
Joined: 01 Apr 2010, 04:35
Location: Makassar
Memberi kopi: 16 cangkir
Mendapat kopi: 9 cangkir

Next

Return to Visual C#

Who is online

Users browsing this forum: No registered users and 1 guest