14 April 2010

Pemanfaatan Web Service pada Windows Form dengan Visual

Web services adalah class yang dikompilasi dan disimpan dalam sebuah web server. Dengan protokol tertentu, sebuah web services dapat diakses baik dalam sebuah jaringan lokal atau intranet, maupun dalam jaringan secara luas atau internet. Sebuah web services tidak hanya dibuat dengan menggunakan bahasa pemrograman Visual Basic .NET , tetapi juga bisa dibuat dengan menggunakan bahasa pemrograman lain yang mendukung penggunaan .NET Framework seperti Visual C#, Visual C++, Java dan yang lain.

Sebuah web service sendiri diwakilkan dalam sebuah URI (Universal Resource Identifier) yang umumnya adalah sebuah alamat web server tersendiri. Dengan mengakses sebuah URI, maka web services menjadi sebuah class yang dapat diakses dari berbagai arah dan dengan berbagai cara baik untuk aplikasi berbasis Windows ataupun aplikasi berbasis web.

Sebuah web service dalam Visual Basic .NET dibuat dengan menggunakan template ASP .NET Web Services Template. Dengan ekstensi file default asmx, sebuah web services secara umum membutuhkan sebuah web server yang mendukung penggunaan ASP .NET dengan versi yang kompatibel (1.0 hingga 2.0) yang telah terinstalasi dengan baik pada sistem operasi tertentu (Windows 2000 - profesional dan server -, Windows XP dan Windows 2003).

Di dalam Visual Basic .NET, sebuah web services lebih dikhususkan untuk aplikasi berbasis web. Tetapi dalam sebuah aplikasi berbasis Windows, penggunaan web services juga akan sangat menguntungkan, baik bagi programmer maupun pihak pengguna. Bagi programmer, penggunaan web services akan mempermudah dalam pendefinisian dan penggunaan class yang akan diakses dalam frekuensi yang akut. Selain itu, dengan adanya web services, programmer dapat dengan mudah melakukan revisi terhadap fungsi yang ada didalam web services tanpa harus melakukan upgrade terhadap program yang telah terinstalasi di komputer client.

Meski sebuah web services hanya ditempatkan dalam sebuah web server di jaringan lokal, tetapi dari sisi pengguna akan meringankan beban komputer client dalam menggunakan sumber daya di aplikasi yang sudah dibuat oleh programmer, karena web services akan dieksekusi di server yang bersangkutan.


Pembuatan Web Services
Web services yang dibuat adalah web services sederhana yang berisi sebuah fungsi yang akan menghitung selisih bulan tanggal sistem dengan tanggal kedua yang akan menjadi parameter inputan dari web services tersebut. Fungsi tersebut nantinya akan menjadi sebuah fungsi publik yang dapat diakses melalui obyek yang terbentuk dari inisialisasi class dari sebuah web services.

Pembuatan web services dimulai dengan membuat project baru di Visual Basic .NET melalui template ASP .NET Web Services Template, dengan asumsi pada kasus ini telah terdapat sebuah web server IIS 6.0 dengan sistem operasi Windows 2003 Enterprise Server.



Kemudian kita buat web services yang berisikan fungsi untuk menghitung selisih bulan, dengan listing sebagai berikut:

Imports System.Web.Services


(Namespace:="http://localhost/HitungBulan/hitung")> _
Public Class Hitung
Inherits System.Web.Services.WebService

[" Web Services Designer Generated Code "]

_
Public Function Menghitung(ByVal xTanggal As Date) As Integer
Return DateDiff(DateInterval.Month, xTanggal, Now)
End Function

End Class

Dalam pembuatan web services tersebut , yang paling penting diperhatikan adalah pembuatan fungsi Menghitung yang akan menjadi fungsi yang akan diakses melalui sebuah aplikasi berbasis Windows. Fungsi tersebut harus bersifat public dan merupakan sebuah fungsi yang telah didefinisikan sebagai sebuah WebMethod sehingga dapat diakses melalui obyek yang akan terbentuk dalam aplikasi.

Untuk melakukan pengecekan terhadap sintaks ataupun logika web services tersebut, dapat dilakukan eksekusi web services melalui Visual Basic .NET, sehingga akan muncul browser baru seperti pada gambar berikut:



Setelah web services dieksekusi, maka browser akan menunjukkan semua fungsi publik yang terdapat dalam services tersebut ( dalam kasus in hanya terdapa satu fungsi ). Jika berupa fungsi dengan sebuah parameter lebih, maka dapat dilakukan testing terhadap fungsi tersebut. Tetapi jika tidak terdapat parameter atau sebuah pesan, testing tetap dapat dilakukan meski kadang tidak muncul hasil yang diharapkan.

Saat fungsi di dalam web services dicek, maka bisa dilakukan tes parameter yang ada, dalam hal ini adalah tanggal kedua yang akan dihitung selisih bulannya. Dengan asumsi tanggal sistem saat fungsi ini dijalankan adalah tanggal 26-08-2004, maka hasil yang didapat adalah sebuah dokumen XML dari fungsi tersebut seperti pada gambar berikut:



Pembuatan Windows Form di Visual Basic .NET

Setelah pembuatan web services beserta verifikasi fungsi selesai dilakukan, maka dilakukan pembuatan Windows form yang akan dijadikan sarana pengaksesan web services tersebut. Pembuatan Windows form dilakukan dengan menggunakan template default dari Visual Basic .NET.

Di dalam Windows form tersebut ditempatkan sebuah komponen DateTimePicker , dua buah label dan dua buah button dengan layout form seperti pada gambar berikut:



Pada saat form diload pertama kali, label yang berisi nilai Tanggal hari ini akan berisi tanggal sistem yang sedang aktif, sedangkan untuk komponen DateTimePicker akan menjadi parameter bagi pengguna untuk melakukan perhitungan selisih bulan yang ada. Listing dari form_load adalah sebagai berikut:

Label2.Text &= Now.Today

Pada saat tombol Selisih Bulan ditekan oleh pengguna, maka diharapkan akan muncul pesan yang menyatakan selisih bulan antara tanggal sistem dengan tanggal yang menjadi parameter. Sebelum dilakukan pengetikan listing, maka Windows form tersebut harus terlebih dulu direferensikan kepada web services yang telah kita buat sebelumnya.

Cara melakukan referensi tersebut adalah dengan melakukan pemilihan pada menu Project dan memilih sub menu Add Web Reference. Kemudian selanjutnya diketikkan alamat dari web services yang sudah kita buat.





Saat sebuah web services berhasil direferensikan terhadap sebuah Windows form, maka berarti programmer telah siap untuk menggunakan semua fungsi publik dari class web services tersebut, dengan cara melakukan inisialisasi dari web service tersebut ke dalam listing program. Langkah-langkah akses web services tersebut adalah sebagai berikut:

1. Deklarasikan class baru yang mengacu pada web services yang sudah dibuat. Asumsi yang digunakan adalah web services disimpan pada web server di komputer yang sama, sehingga diarahkan ke localhost, sedangkan untuk kepentingan yang lebih luas, alamat web server dapat diarahkan langsung ke web server yang menampung web services secara langsung.

Dim wsHitung As New localhost.Hitung

2. Lakukan akses terhadap fungsi publik yang terdapat pada web services, lalu tampung hasilnya pada suatu variabel.

Dim xHasil As Integer
xHasil = wsHitung.Menghitung(DateTimePicker1.Value)

3. Tampilkan hasil dari fungsi tersebut sebagai pesan atau sebagai umpan balik terhadap perintah yang lain.

MessageBox.Show("Selisih bulan : " & xHasil.ToString, "Hasil")

4. Musnahkan class yang sudah terbentuk dari web services tersebut untuk menghemat sumber daya dan akses data.

wsHitung.Dispose()

Proses Testing
Proses testing dilakukan dengan eksekusi dari Windows form yang sudah dibuat. Saat eksekusi dijalankan dengan melakukan input parameter tanggal dengan selisih satu tahun pada komponen DateTimePicker, didapat hasil seperti pada gambar berikut:





Sumber : www.h4ruk4n4t4.co.cc