Sejak diluncurkan sampai hari ini, H+5, situs tabulasi nasional KPU belum juga lepas dari penderitaannya, sehingga sering tidak dapat memenuhi keingin tahuan banyak orang yang mengikuti perkembangan penghitungan suara.
Untuk sedikit mengurangi beban server KPU, kita bisa membuat halaman tabulasi sendiri yang tidak terlalu banyak tergantung dari mati hidupnya site tabulasi KPU.
Sumber data yang up to date bisa ditarik dari:
http://geeks.netindonesia.net/blogs/tahir/tabulasiservice.asmx
Dengan sumber data yang ditawarkan berupa webservice ini, maka sangat banyak model tabulasi yang bisa kita buat.
Kita coba membuat halaman tabulasi sederhana dengan asp.net dalam bahasa c#.
Buka VisualStudio dan pilih menu File|New|Website:
Lalu pilih ASP.NET Web Site dan beri nama serta tunjukkan project folder yang sesuai.
Tambahkan reference ke webservice sebagai sumber data, caranya di visual studio, sebelah kanan, klik kanan di webfolder pada solution explorer, dan pilih Add Web Reference...
Lalu masukkan informasi webservice URL di atas dan klik add reference.
Ok, sekarang kita sudah mempunyai sumber data, tinggal menyiapkan tampilannya. Untuk menampilkan data kita akan menggunakan tabel.
Double click pada file default.aspx dan aktifkan design view. Lalu dari toolbox, drag and drop GridView control ke design view dari halaman web yang akan kita buat, seperti gambar di bawah ini.
Supaya kita bisa mengurutkan berdasarkan kolom perolehan suara dan lainnya, jangan lupa menset property AllowSortting = true dari GridView, dan double click pada events Sorting.
Setelah itu tekan F7 untuk menampilkan code editor untuk mulai menulis code behind dari halaman tabulasi kita. Berikut adalah source code awalnya:
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
Berikut source code lengkapnya:
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
net.netindonesia.geeks.TabulasiService ts = new net.netindonesia.geeks.TabulasiService();
//ts.Proxy = new WebProxy("1.2.3.4:8080", false); //kalau anda butuh proxy
DataSet ds = new DataSet();
ds = ts.GetTabulasiNasional();
DataTable dt = ds.Tables[0];
Session["dataTable"] = dt;
ViewState["sortOrder"] = "";
bindGridView("", "");
}
}
public void bindGridView(string sortExp, string sortDir)
{
DataView dv = new DataView();
dv = ((DataTable)Session["dataTable"]).DefaultView;
if (sortExp != string.Empty)
{
dv.Sort = string.Format("{0} {1}", sortExp, sortDir);
}
this.GridView1.DataSource = dv;
this.GridView1.DataBind();
}
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
bindGridView(e.SortExpression, sortOrder);
}
public string sortOrder
{
get
{
if (ViewState["sortOrder"].ToString() == "desc")
{
ViewState["sortOrder"] = "asc";
}
else
{
ViewState["sortOrder"] = "desc";
}
return ViewState["sortOrder"].ToString();
}
set
{
ViewState["sortOrder"] = value;
}
}
}
Setelah itu tekan F5 untuk menjalankan halaman tabulasi tersebut dan coba sorting pada kolom PersenSuara:
Untuk mencobanya sendiri, silahkan klik link berikut:
http://prismatek.co.id/tabulasi/tabulasi.aspx
Siapa tahu ada yang pingin tahu, jualan apa aja di site tersebut he he he...
Jika anda puas tinggal deploy ke site anda. Selamat mencoba.
Ada yang mau buat versi SilverLight, WPF, mobile, iphone, wii, console, etc?
Jangan lupa posting link hasil kreasi anda pada comment di bawah ini.