Wednesday, September 30, 2009

Object Relational Mapping dengan LINQ

Object-relational mapping adalah suatu teknik pemrograman untuk mengkonversi tipe data antara sistem yang tidak kompatibel dalam database relasional dan pemrograman berorientasi object. Mungkin rekan - rekan bisa mengunakan berbagai macam tool ORM baik yang gratis maupun yang komersial..sejauh ini,, nHibernate ( C# ), hibernate ( java ), prject castle, ibatis dan LINQ masih yang paling banyak digunakan karena tool ini sangat powerfull dalam membuat rapid aplikasi..

dalam hal ini, tere menggunakan LINQ yang didistribusikan dalam paket visual studio express edition. LINQ meruapakan singkatan dari Language Integrated Query, dari segi istilah sudah jelas LINQ digunakan untuk mengintegrasi query ke dalam struktur bahasa pemrograman, dalam hal ini menggunakan C#. okey, kita mulai untuk memahami query sederhana menggunakan LINQ.

pertama,, kita buat sebuah class Order ( dalam hal ini, tere asumsikan pembaca suda ngerti basik C# dalam hal object oriented ).

class Order
{
private int _OrderID;
private int _CustomerID;
private double _Cost;
public int OrderID
{
get { return _OrderID; }
set { _OrderID = value; }
}
public int CustomerID
{
get { return _CustomerID; }
set { _CustomerID = value; }
}
public double Cost
{
get { return _Cost; }
set { _Cost = value; }
}
}
class Program
{
static void Main(string[] args)
{

var Orders = new List {
new Order {
OrderID = 1,
CustomerID = 84,
Cost = 159.12
},
new Order {
OrderID = 2,
CustomerID = 7,
Cost = 18.50
},
new Order {
OrderID = 3,
CustomerID = 84,
Cost = 2.89
}
};
// query linq
var Found = from o in Orders
where o.CustomerID == 84
select o.Cost;

// tampil hasil
foreach (var Result in Found)
Console.WriteLine("Cost: " + Result.ToString());
}
}
hasil keluaran program
Cost: 159.12
Cost: 2.89
bagaimana jika pembaca melakukan query
var Found = from o in Orders
where o.CustomerID == 7
select o.Cost;

silakan anda menjawab na yach..hehe..

oke, biar gak bingung, tere coba jelasin yach,,

untuk keyword from o in Orders untuk memulai query pada class Orders, pembaca bisa menggunakan keyword foreach
untuk mengambil nilai collection dari class Orders.

untuk sintak
where o.CustomerID == 84 untuk melakukan filter satu atau beberapa object pada class Order.

smntara utk keyword yg trakhir
select o.Cost berfungsi untuk mengambil nilai collection na.semacam tipe primitive int,


tere kasi contoh laen ya, misalnya kita ingin melakukan komputasi hasil akhir dari Cost yang akan dikalikan dengan pajak 10%
var Found = from o in Orders
where o.CustomerID == 84
select new {
o.OrderID,
o.Cost,
CostWithTax = o.Cost * 1.1
};


ada kasus dimana ada conditional yg lebih dari satu, kita bisa menggunakan
var Found = from o in Orders
where o.CustomerID == 84 && o.Cost > 100
select new {
o.OrderID,
o.Cost,
CostWithTax = o.Cost * 1.1
};
yg artinya akan mencari CustomerId yg bernilai 84 dan Cost na lebih dari 100.


sejauh ini tere harap kalian cukup ngerti dgn apa yg tere tulis,, hehe..utk bagian ini, tere coba jelasin query utk join, pertama,, kita buat satu class lagi yg nama na Costumer

class Customer
{
private int _CustomerID;
private string _Name;
private string _Email;
public int CustomerID
{
get { return _CustomerID; }
set { _CustomerID = value; }
}
public string Name
{
get { return _Name; }
set { _Name = value; }
}
public string Email
{
get { return _Email; }
set { _Email = value; }
}
}

var Customers = new List {
new Customer {
CustomerID = 7,
Name = "tere",
Email = "tere@tere.com"
},
new Customer {
CustomerID = 84,
Name = "igi",
Email = "igi@igi.com"
},
new Customer {
CustomerID = 102,
Name = "anggun",
Email = "anggun@anggun.com"
}
};

var Found = from o in Orders
join c in Customers on o.CustomerID equals c.CustomerID
select new { c.Name, o.OrderID, o.Cost };

foreach (var Result in Found)
Console.WriteLine(Result.Name + " spent " +
Result.Cost.ToString() + " in order " +
Result.OrderID.ToString());

hasil keluaran
igi spent 159.12 in order 1
tere spent 18.5 in order 2
igi spent 2.89 in order 3

cukup mudah bukan menggunakan LINQ ?
sejauh ini, programmer sangat terbantu dengan kehadiran LINQ dalam sistem kerja teamwork.
semoga artikel ini bermanfaat..

BatikKu: We Love Batik Indonesia!

Prambors love batik Indonesia!

Makanya Prambors bangga banget waktu ada kabar bahwa 2 Oktober 2009 ini UNESCO bakal menetapkan batik sebagai warisan budaya Indonesia. Buat nunjukin betapa bangganya Prambors sama batik, wadyabala Prambors pun rame-rame seseruan foto sambil berbatik ria di kantor. Foto-fotonya bisa kamu liat di Photo Gallery Prambors BatiKu ya...

Nah, Prambors ngajak kawula muda untuk ikut nunjukin kebanggaan kamu akan Batik Indonesia. Pilih salah satu cara di bawah ini untuk meng-upload foto kamu bareng temen-temen kamu yang lagi pake batik:
1. Upload foto di Twitter kamu. Jangan lupa tulis #batikindonesia dan @prambors ya. Kita bikin #batikindonesia jadi trending topic! 2. Upload foto di Fan Photos di Fan Page Facebook Prambors di www.facebook.com/prambors

Selain seseruan foto sambil berbatik ria ini, Prambors juga bakal ngegelar lelang batik artis-artis Indonesia lho. Hasil lelang akan disumbangkan untuk terus memajukan Batik Indonesia. Untuk lengkapnya, tungguin aja kabar selanjutnya di Prambors dan www.pramborsfm.com.

Let’s show the world that you’re proud of your heritage!

Bookmark and Share

Kambingjantan: Sebuah Komik Pelajar Bodoh

Komik Komedi ini ditulis oleh Raditya Dika dan diilustrasikan oleh Dio Rudiman. Berisi 6 chapter tentang pengalaman Radith kuliah di Adelaide, Australia. Lengkap dengan penggabaran gaya lebay oleh Dio Rudiman. Simak Radith yang ditaksir cewek Korea, mencoba mempecundangi orang Kediri, membantu teman arabnya mendapatkan bule, sampai membuat seorang Jepang dideportasi. Cerita di komik ini semuanya berbeda dengan buku Kambingjantan yang diterbitkan sebelumnya.