Visual Web Developer
Visual Web Developer
Alhamdulillah akhirnya buku ini berhasil di selesaikan. Buku ini adalah buku kecil yang memfokuskan
pendekatan konsep How-To. Konsep How-To menekankan pada pendekatan praktis bagaimana suatu
teknologi diterapkan dan dipakai menggunakan perangkat bantu yang ada.
Pada kesempatan kali ini buku yang dibuat adalah buku yang memfokuskan pengembangan aplikasi
Web dengan menggunakan Visual Web Developer 2008. Buku ini memang membahas berbagai fitur
yang dimiliki oleh Visual Web Developer sebagai perangkat pengembangan web yang baik dan tanpa
investasi alias gratis. Tetapi, jangan salah sangka apapun perangkat yang anda miliki anda tetap dapat
berinovasi dengan ide dan ketekunan anda. Jadi buku ini juga dapat dipakai bagi anda yang
menggunakan perangkat lain untuk pengembangan aplikasi web berbasis ASP.NET.
Buku kecil ini tak luput dari keterlibatan berbagai pihak yang membantu penulis untuk menyelesaikan
buku ini. Penulis ucapkan terima kasih pada Mas Narendra Wicaksono, MIC-UGM Gokilz Team (Bume,
Buem, Kakol, Linq2).. you are the best guys, dan pihak-pihak lain dari komunitas dan juga dari rekan-
rekan penulis yang membantu buku ini sehingga dapat selesai dengan baik.
Tidak ada gading yang tak retak dan tak ada kesempurnaan kecuali milikNYA, alhasil penulis ucapkan
terima kasih untuk menyempatkan membaca buku ini, selamat membaca, dan selamat berinovasi.
Februari 2008
Sebelum Memulai
Prakata
Buku ini dibuat bagi siapapun yang hendak mempelajari teknologi pengembangan dengan ASP.NET 3.5.
Bagian ini akan membahas berbagai persiapan yang dibutuhkan agar anda dapat secara optimal
menggunakan buku ini sebagai salah satu bahan belajar anda. Sebagai persyaratan awal, penulis
berharap bahwa anda telah mengetahui pemograman berorientasi objek, mengetahui sintaks C#, dan
juga dapat memiliki kemauan untuk belajar.
Setalah membaca buku ini, pembaca diharapkan dapat mengetahui dan mengimplementasikan konsep
pemograman ASP.NET 3.5 dengan Visual web Developer 2008 sebagai salah satu perangkat
pengembangannya.
Informasi
Berisi informasi yang selayaknya anda perhatikan demi
kemudahan dan kelancaran penggunaan buku ini
Referensi
Referensi tambahan yang bersifat suplemen dari buku ini
Hindari Ini
Berisi informasi dan rekomendasi berbagai hal yang sebaiknya
tidak dilakukan
Gratis
“anda dapat memperoleh Visual Web Developer 2008 secara
gratis di http://msdn.microsoft.com/vsexpress ”
Dukungan Teknis
Setiap usaha telah dilakukan agar buku ini dan juga kode didalamnya dapat dijadikan referensi anda
belajar. Namun demikian, tidak ada gading yang tak retak, tidak ada ciptaan manusia yang sempurna.
Berbagai masukan, kritik atau ide dapat disampaikan melalui blog penulis yakni.
http://geeks.netindonesia.net/blogs/ridi
Dukungan terbatas yang bersifat non-komersial dapat anda sampaikan pula melalui dua alamat di atas.
ASP.NET
Mengapa ASP.NET
ASP.NET sebuah teknologi yang mungkin sudah tak asing lagi ditelinga web programmer. Teknologi
pengganti ASP yang telah diperkenalkan pada kisaran tahun 2000-an bersamaan dengan .NET
framework, menjadi salah satu standar pengembangan web dinamis yang berskala enterprise. ASP.NET
dapat didefinisikan sebagai platform teknologi yang didesain untuk mengembangkan aplikasi berbasis
web. ASP.NET memungkinkan penggunanya untuk mengembangkan aplikasi web yang dinamis, data-
driven, dan berbagai kemungkinan aplikasi lain yang berjalan di atas sebuah web server. ASP.NET berdiri
sebagai platform teknologi yang secara langsung berkait dengan bahasa pemograman berorientasi objek
(seperti C#), framework pengembangan terkelola berbasis komponen (.NET), dan sebuah perangkat
bantu yang meningkatkan produktifitas pengembangan (seperti Visual Web Developer).
ASP.NET bekerja dengan model pemograman yang sedikit berbeda dengan ASP klasik ataupun PHP.
ASP.NET bekerja dengan suatu runtime eksekusi yang dikenal dengan CLR (Common Language Runtime).
CLR adalah suatu lingkungan eksekusi terkelola (managed) yang merupakan bagian dari teknologi .NET
framework. Linkungan terkelola atau lebih dikenal dengan “managed environment”. Arsitektur
lingkungan terkelola memberikan berbagai keuntungan pada teknologi pengembangan web ini
diantaranya
Performa yang lebih baik, kode ASP.NET dikompilasi oleh CLR. Hal ini yang membedakan
teknologi web ASP.NET dengan teknologi script web seperti ASP. CLR lebih baik dari sisi
performa karena memiliki beberapa optimalisasi performa melalui just-in-time execution,
caching, hingga native optimazation. Konsepnya tidaklah terlalu rumit, trik dibelakang ini adalah
teknologi ASP.NET yang dikompilasi sebanyak dua kali. Pada kompilasi pertama kode diubah
menjadi kode MSIL (Miscrosoft Intermediate Language), sebuah bahasa taingkat menengah
yang bersifat platform agnostics, berikutnya kode MSIL diubah menjadi kode natif, hal yang
menarik JIT tidak mengubah semua kode MSIL menjadi kode natif melainkan hanya kode yang
hendak dieksekusi saja, inilah yang dikenal dengan just-in-time, pada eksekusi selanjutanya
engine tidak perlu melakukan kompilasi karena masih terdapat pada cache.
Platform Agnostics
“Istilah yang mengungkapkan sebuah kemungkinan bahwa
kode/teknologi yang ada dapat diterjemahkan serta dieksekusi
pada suatu lingkungan dengan kombinasi hardware dan software
yang berbeda“
4 Bagian 1 – Teknologi dan Perangkat
Fleksibilitas, ASP.NET dapat menggunakan semua pustaka .NET Base Class Library, sebagai
tambahan pengguna juga dapat memiliki kebebasan untuk memilih bahasa pemograman yang
digunakan seperti VB atau C#.
Setting dan Konfigurasi, ASP.NET menggunakan XML dalam pengaturan setting dan konfigurasi
aplikasi web. Walaupun terkesan sepele, banyak informasi yang esensial yang dapat disimpan
dan memudahkan kita dalam melakukan distribusi serta konfigurasi web.
Keamanan, ASP.NET yang menggunakan pustaka keamanan yang sama dengan .NET framework
dapoat secara fleksibel dikombinasikan dengan menggunakan schema berbasis xml yang dapat
dibuat sesuai dengan kebutuhan.
Setiap halaman pada aplikasi web berbasis ASP.NET menggunakan konsep sharing common resources ,
tentu saja hal ini hanya berlaku pada halaman halaman web yang terdapat dalam satu aplikasi web. Bagi
pakai sumber daya ini diatur oleh suatu mekanisme domain yang dikenal dengan application domain.
Application domain adalah suatu area yang terisolasi yang memisahkan pemetaan sumber daya dari
aplikasi yang satu dengan aplikasi yang lain. Konsep ini memungkinkan bahwa satu web aplikasi yang
satu dengan yang lain saling terisolasi dan aman apabila terjadi kesalahan fatal antara satu web aplikasi
dengan web aplikasi yang lain. Setiap aplikasi web memiliki sesi, cache, dan konfigurasinya sendiri.
Dalam lingkungan pemograman asp.net pada umumnya sebuah aplikasi web memiliki satu direktori
khusus pada web server yang dikenal dengan Virtual Directory. Gambar 1.1 menggambarkan aplikasi
web dalam sebuah web server.
Applicatiuon
Others Web Pages Web Services Configuration & Session
Runtime Data
i.e. ISAPI
Sebuah aplikasi ASP.NET berada dalam sebuah application domain dan sebuah virtual directory, tetapi
dalam sebuah virtual directory dapat dimungkinkan terdapat lebih dari satu aplikasi ASP.NET. Pada
keadaan ini maka aplikasi ASP.NET akan bekerja dalam sebuah application domain, walaupun ini adalah
satu hal yang harus dihindari tetapi secara implisit keadaan ini dapat diatasi melalui konfigurasi per-
aplikasi atau pemisahan application domain pada setiap web aplikasi.
Aplikasi ASP.NET pada umumnya terdiri dari berbagai tipe berkas. Secara umum tipe-tipe berkas pada
ASP.Net digambarkan pada tabel 1.1
ASP.NET juga memiliki struktur direktori yang khusus dan konsisten. Konsistensi ini memberi kemudahan
bagi pengembang dalam memetakan berkas-berkas yang sejenis dalam sebuah direktori. Tabel 2
menampilkan folder-folder yang terdapat dalam ASP.NET
6 Bagian 1 – Teknologi dan Perangkat
ASP.NET Web Services adalah bagian dari teknologi ASP.NET yang memfokuskan pada mekanisme
komunikasi dan penggunaan layanan berbasis web. Saat ini teknologi ASP.NET memungkinkan
pengembang untuk mengembangkan layanan dengan dua cara yakni menggunakan ASP.NET Web
Services atau menggunakan WCF.
Adopsi yang luas dari web services menjadikan web services sebagai solusi primer yang dijadikan
sebagai salah satu enabler technology, yang sangat mendukung proses komunikasi Business To Business
(B2B), multi platform, hingga dukungan komunikasi perangkat yang heterogen.
7 Bagian 1 – Teknologi dan Perangkat
Type data baru, kontrol server, serta pustaka script client yang dapat membantu pengembang
mengembangkan aplikasi berbasis AJAX.
Ekstensi kontrol autentikasi berbasis form, manajemen role, serta konfigurasi profil web services
yang digunakan pada aplikasi web.
ListDataView control penampil data yang fleksibel dari sisi tampilan UI.
LinqDataSource control pengikat data yang berbasiskan teknologi LINQ.
Merge tool aspnet (aspnet_merge.exe) sebuah perangkat yang memberi kemudahan dan
alternatif deployment aplikasi web yang lebih fleksibel.
Objek Deskripsi
XMLHTTPRequest Objek yang berfungsi untuk melakukan panggilan
secara asinkronus melalui protokol HTTP
XMLDocument Objek yang berfungsi untuk memparsing xml data
yang dikirim dan diterima oleh aplikasi
JSON (JavaScript Object Notation) Notasi alternatif dari xml yang banyak digunakan
sebagai data yang dikirim dan diterima
Bila deskripis di atas terlalu teknis, maka secara sederhana Ajax sebenarnya memfokuskan pada suatu
user experience bagi pengguna web yang tengah mengakses web. Pada tabel 1.4 Berikut digambarkan
perbedaan antara sebuah aplikasi web yang menggunakan teknologi Ajax dan tidak menggunakan
teknologi Ajax.
8 Bagian 1 – Teknologi dan Perangkat
Tabel 1.4 Perbandingan User Experience antara aplikasi web yang menggunakan Ajax dengan aplikasi
web yang tidak menggunakan Ajax
Selain user experience yang lebih baik, sebenarnya Ajax juga memberikan suatu peluang komunikasi
yang lebih efisien. Peluang komunikasi yang efisien ini dapat secara mudah dilihat berdasar pola
komunikasi yang dilakukan oleh aplikasi web berteknologi Ajax, pola komunikasi round-trip hanya
dilakukan pada sebagian halaman yang mengalami perubahan saja.
Salah satu fitur utama ASP.NET 3.5 adalah kehadiran pustaka Ajax yang terintegrasi. Apabila pada saat
ASP.NET 2.0 , pustaka Ajax adalah pustaka tambahan bagi ASP.NET yang terpisah, maka pada versi 3.5
ini Ajax adalah bagian dari pustaka ASP.NET. Pembuatan aplikasi Web dengan Ajax memng bukan
perkara yang sulit dan juga bukan perkara yang mudah tanpa framework pustaka ASP.NET, hal ini
dikarenakan pengembang terkadang sering melakukan rutin-rutin yang sama untuk membuat sebuah
aplikasi web menjadi Ajax enabled. Teknologi ASP.NET mengenkapsulasi semuanya menjadi sebuah
pusata terintegrasi dan memberikan kemudahan bagi pengembang untuk menambahkan kemampuan
Ajax pada suatu aplikasi web. Pada Bab 2 , akan dilihat betapa mudahnya pengembang membuat
aplikasi web yang mendukung framework Ajax.
ASP.NET 3.5 dikembangkan lebih lanjut dengan pola pikir produktifitas. Tabel 1.5 menggambarkan
elemen kunci framework ASP.NET 3.5 sub komponen Ajax.
Kata tanpa investasi atau gratis, mungkin oleh sebagian orang dijadikan suatu penghalang yang
membuat sebagian pemikiran bahwa yang gratis itu pasti kurang bagus atau kosong fitur. Microsoft
membuat IDE Visual Studio Express dengan target yang berbeda, perbedaan fitur IDE hanyalah dijadikan
sebagai batasan segmen pengguna, selebihnya teknologi yang digunakan sama tanpa ada kehilangan
satu pusataka-pun yakni .NET Framework.
Pengembang mungkin dapat mengembangkan kode ASP.NET tanpa bantuan Visual Studio, tetapi
melakukan hal tersebut secara berulang-ulang akan menjadi rutinitas yang terkadang membosankan
dan terkadang menurunkan produktifitas. Berapa alasan mengapa menggunakan IDE dapat diungkapkan
sebagai berikut.
IDE memberi kita kemudahan produktifitas dalam melakukan rutin-rutin utama pengembangan
web, seperti membuat project baru, membuat berkas aspx, dan sebagainya.
Solusi pengecekan kesalahan yang terintegrasi. IDE memberi kemudahan kita dalam melakukan
mendeteksi kesalahan yang lebih intuitif.
Web Form Desain, IDE memungkinkan pengembangan dan desain antarmuka semakin mudah
dengan WYSIWYG.
Kemudahan dalam mendebug dan menguji, IDE memberikan kemudahan pengembang dalam
melakukan pengujian aplikasi hingga melakukan debugging perbaris kode.
Ekstensibilitas, IDE memungkinkan kita membuat makro yang memudahkan rutin pekerjaa,
template project custom sesuai kebutuhan, hingga dukungan aplikasi tambahan yang dapat
menempel di Visual Studio.
Web Server yang terintegrasi, IDE menyediakan web server mini yang bersifat fleksibel dan
melekat pada setiap project aplikasi web.
SQL Server Express 2005 didesain untuk kebutuhan bisnis dan personal dengan konteks yang bersifat
sederhana dari sisi availibilitas dan juga jumlah data. Bila melihat lebih jauh SQL Server sendiri terbagi
menjadi beberapa versi mulai dari yang bersifat portable (compact) untuk pengguna perangkat windows
mobile, hingga versi Enterprise untuk pengguna yang membutuhkan skalabilitas. Gambar 3
menunjukkan target penggunaan SQL Server bagi berbagai macam pengguna.
Pengguna SQL Server Express 2005 secara default hanya ditargetkan untuk individu dan akademik,
tetapi penggunaannya dapat ditingkatkan dengan berbagai macam cara. Hal yang paling menarik adalah
adanya dukungan lebih SQL Server Express agar memiliki kemampuan lebih melalui paket terpisah yang
dikenal dengan SQL Server Express Advance Services. SQL Server dengan embel-embel dengan Advance
Services memberi dukungan untuk reporting, pencarian text yang canggih, dan juga perangkat
pengelolaan yang lebih baik.
Sebuah Penutup
Pada bagian ini telah dibicarakan berbagai teknologi yang terkait dengan buku ini. Pengguna akan
memanfaatkan teknologi yang telah diungkapkan pada bagian ini dan menjadi dasar pada bagian buku
lainnya. Teknologi ASP.NET, AJAX, Web Services, hingga SQL Server akan dipadukan dalam suatu Hands
On Lab yang menuntun pembaca untuk dapat memahami teknologi lebih dari sekedar konsep yang
diungkapkan pada bagian ini.
12 Bagian 2 - Tour De Visual Studio Web Developer Hands ON
Sebelum Memulai
Sebelum memulai Hands On Lab ini diharapkan pengguna telah memasang Visual Web Developer 2008.
Pengguna juga dapat memasang IDE dengan versi yang lebih tinggi seperti Visual Studio 2008 standard
atau yang lebih tinggi.
Nama Deskripsi
Start Page Halaman yang berisi informasi dan link tentang project terakhir dan headlines dari
internet.
Properties Jendela yang berisi property dari setiap elemen yang dipilih pada IDE
CSS Explorer Berisi navigasi struktural mengenai desain CSS yang akan dikembangkan
Data Source Berisi halaman yang menampilkan sumber data yang dapat diikat oleh aplikasi
ToolBox Berisi sekumpulan control ASP.NET yang terbagi berdasar kategori aplikasi
Style Berisi navigasi terstruktur skin aplikasi
13 Bagian 2 - Tour De Visual Studio Web Developer Hands ON
Apabila semua menu tidak tampak maka pengguna dapat melihatnya melalui akses menu View seperti
pada Gambar 2.3.
Pada gambar 2.4. Tampak bahwa VWD dapat membantu kita untuk membuat beberapa tipe project
seperti pada tabel 2.2 berikut.
VWD memungkinkan pengguna untuk membuat project dengan lokasi yang berbeda. Setiap tipe project
yang ada dapat dikembangkan di tiga lokasi yakni FileSystem, dimana berkas di simpan dalam sebuah
sistem berkas, FTP dan juga HTTP. Pada pengembangannya kita dapat menggunakan bahasa Visual Basic
dan Visual C#.
15 Bagian 2 - Tour De Visual Studio Web Developer Hands ON
IDE Designer
Salah satu fitur utama IDE adalah kemampuan melakukan pengembangan dengan menggunakan
tampilan ala WYSIWYG. Setelah membuat sebuah project baru, kita dapat membuka designer pada
bagian halaman yang berkestensi seperti aspx, ascx, dsb. Berkas yang terasosiasi pada project dapat
memiliki view yang berbeda-beda. Design memungkinkan kita mendesain dengan tampilan WYSIWYG.
Source akan menampilkan kode antarmuka berkas. Dan Split akan menampilkan antarmuka baik kode
dan tampilan WYSIWYG secara bersamaan.
Pada saat di design view ataupun di source, pengguna dapat melakukan drag and drop komponen dari
toolbox, dengan kata lain pengguna tidak perlu melakukan pengketikan kode secara penuh.
1. Buat sebuah web aplikasi dengan nama HitungHutang. Lihat langkah membuat project web
aplikasi pada bab ini.
2. Berikutnya rancang antarmuka sebagai berikut.
3. Beri nama masing-masing antarmuka kontrol dengan nama sebagai Tabel 2.3.
Tabel 2.3 Tabel Nama Kontrol
Nama Control Properties Value Jenis Control
Label1 Text Beban Hutang Label
16 Bagian 2 - Tour De Visual Studio Web Developer Hands ON
4. Berikutnya kita dapat melakukan pengkodean, untuk melakukan pengkodean kita dapat
melakukan dua buah pendekatan yakni dengan menggunakan inline code atau dengan
menggunakan code behind model. Penulis sendiri menyarankan untuk senantiasa menggunakan
code behind, karena memudahkan dari sisi pengelolaan dan pemisahan kode dengan
antarmuka. Pada Visual Web Developer Designer lakukan pemilihan pada button btnHitung
dengan melakukan klik dua kali.
Setelah anda klik dua kali pada button btnHitung, maka akan ditampilkan kode editor yang
dapat anda isi kode untuk menjalankan komputasi menghitung hutang, seperti Gambar 2.7.
5. Sebelum anda menulis kode dibawah button btnHitung, lebih baik anda tentukan dulu
mekanisme komputasi perhitungan hutang. Dengan field yang tersedia yaitu Beban Hutang,
Tingkat Bunga, Lama Waktu, dan Total Yang Dibayarkan, pengguna diminta untuk memasukkan
nilai Beban Hutang, Tingkat Bunga, dan Lama Waktu, sedangkan untuk field Total Yang
17 Bagian 2 - Tour De Visual Studio Web Developer Hands ON
Dibayarkan akan ditampilkan oleh program setelah pengguna menekan tombol Hitung. Total
Yang Dibayarkan akan dikomputasi oleh program dengan rumus sbb:
Total Yang Dibayarkan= Beban Hutang + ((Beban Hutang * Tingkat Bunga / 100) * Lama Waktu)
Sebagai contoh,
Beban Hutang = Rp. 1.000.000,-
Tingkat Bunga = 5% per bulan
Lama Waktu = 2 bulan
Maka:
= 1000000 + 100000
= 1100000
Pada kode di Gambar 2.8, dapat kita lihat implementasinya terdiri dari empat bagian, yaitu:
Inisialisasi variabel
Disini kita menginisialisasi empat variabel baru yaitu total, hutang, bunga dan waktu
dengan tipe data integer.
Konversi tipe data (string to double)
Pada bagian ini kita mengkonversi tipe data dari teks-teks yang dimasukkan ke dalam
textbox txtHutang, txtBunga, dan txtWaktu yang berupa string. Konversi dilakukan
18 Bagian 2 - Tour De Visual Studio Web Developer Hands ON
karena kita akan melakukan operasi komputasi yang hanya dapat dilakukan pada data-
data numerik. Digunakan tipe data double dibandingkan tipe data lainnya seperti
integer karena mempertimbangkan persentase bunga dan total yang mungkin bertipe
data double.
Komputasi Hitung hutang
Pada bagian ini kita implementasikan rumus komputasi hitung hutang dengan
melakukan komputasi terhadap variabel-variabel double yang kita miliki.
Menampilkan hasil ke textbox
Pada bagian ini kita tampilkan hasil komputasi yang ditampung dalam variabel total ke
dalam textbox txtTotal, sehingga ada proses konversi lagi dari total yang bertipe double
menjadi string.
7. Menguji program hitung hutang melalui Debug > Start Debugging atau tekan tombol F5. Lihat
Gambar 2.9.
Tahap ini akan membuka aplikasi dalam web browser dan ditampilkan form penghitung hutang.
Isikan beban hutang, tingkat bunga, dan lama waktu. Lihat Gambar 2.10.
Setelah itu, tekan tombol Hitung, sehingga didapatkan jumlah total yang harus dibayarkan pada
field terakhir. Lihat Gambar 2.11.
19 Bagian 2 - Tour De Visual Studio Web Developer Hands ON
Apakah AJAX? AJAX merupakan paduan dari beberapa teknologi yang sudah dikenal sebalumnya yaitu
HTML, DOM, XML, Javascript dan teknologi pendukung lainnya. AJAX adalah singkatan dari
Asynchronous JavaScript and XML. Komponen-komponen AJAX meliputi HTML (HyperText Markup
Language), XHTML (Extensible HyperText Markup Language), CSS (Cascading Style Sheets), JavaScript,
DOM (Document Object Model), XML (Extensible Markup Language), XSLT (Extensible Stylesheet
Language Transformations), XMLHttpRequest, dan JSON (JavaScript Object Notation).
Dalam penerapannya, tidak semua teknologi di atas digunakan. Terdapat beberapa teknik komunikasi
yang digunakan untuk implementasi AJAX. Teknik yang umum digunakan adalah dengan menggunakan:
Hidden Frame
Metode ini memanfaatkan frame yang tersembunyi. Biasanya salah satu frame diset dengan
ukuran tinggi/lebar 0 sehingga tidak terlihat di halaman. Frame tersembunyi inilah yang
sebenarnya melakukan request ke dan menerima respon dari server, sehingga frame yang
tampil kelihatan tidak melakukan postback ke server. Javascript digunakan untuk mengambil
data dan mengisi data yang ada di frame tersembunyi ini.
Hidden IFrame
Metode ini hampir sama dengan hidden frame, perbedaannya hanya pada elemen yang
digunakan yaitu IFrame, bukan Frame.
Objek XMLHttpRequest
Metode yang satu ini memanfaatkan ActiveX Objek (IE) atau objek javascript XMLHttpRequest
(Mozilla/Firefox, Safari, Opera). Objek ini yang akan melakukan postback ke server dan
menerima respon balik berupa data (bukan halaman). Data yang didapat dari server kemudian
diolah di klien untuk ditampilkan ke halaman.
Perpaduan teknologi-teknologi tersebut dapat meningkatkan kinerja aplikasi web dan lebih responsif
terhadap aksi pengguna. Dengan AJAX pertukaran data antara klien dan server lebih ringan karena
hanya data yang dipertukarkan (bukan halaman) sehingga aplikasi web dapat berjalan lebih cepat.
Penggunaan Dasar
Dua keistimewaan Ajax adalah dapat:
Langkah-langkah:
1. Pada berkas design form Default.aspx tambahkan komponen ScriptManager dari AJAX
Extentions di Toolbox. Lihat Gambar 2.12.
Letakkan diposisi teratas dari semua komponen label atau teksbox yang menyusun form default
HitungHutang. Lihat Gambar 2.13.
21 Bagian 2 - Tour De Visual Studio Web Developer Hands ON
2. Pada jendela source Default.aspx, geser kode komponen ScriptManager ke posisi dibawah kode
form seperti Gambar 2.14
3. Tetap di jendela source, tambahkan komponen UpdatePanel dari AJAX Extentions di Toolbox.
Lihat Gambar 2.15.
Letakkan kode dari komponen UpdatePanel pada posisi diatas kode label, seperti pada Gambar
2.16.
4. Pindahkan semua kode label, textbox, dan button diantara kode UpdatePanel, sehingga pada
jendela design akan terlihat semua label, textbox dan button akan ditampung didalam
UpdatePanel. Lihat Gambar 2.17.
5. Menguji program HitungHutang melalui Debug > Start Debugging atau tekan tombol F5. Isikan
beban hutang, tingkat bunga, dan lama waktu. Setelah itu, tekan tombol Hitung, sehingga
didapatkan jumlah total yang harus dibayarkan pada field terakhir. Tahap ini sama seperti
pengujian pada program yang belum dipasangi AJAX. Bedanya pada saat tombol Total ditekan,
kita tidak akan melihat form di-reload.
23 Bagian 2 - Tour De Visual Studio Web Developer Hands ON
Deployment Project
Untuk mendeploy aplikasi web, ada tiga cara yang dapat anda pilih yaitu menyalin berkas-berkas dari
mesin deployment ke mesin server (XCopy deployment), menggunakan Microsoft Visual Studio untuk
menyalin website, atau membuat setup program yang menginstall aplikasi. Dalam tutorial ini,
diasumsikan bahwa kita akan mendeploy website pada mesin yang menjalankan IIS.
Menyalin semua berkas merupakan solusi yang paling sederhana, khususnya setelah IIS
dikonfigurasi. Penyalinan dapat dilakukan menggunakan xcopy dari command prompt, atau
biasanya menggunakan Windows Explorer atau tool yang mengijinkan transfer FTP.
Muncul jendela penyalinan website seperti Gambar 2.20., yang menampilkan semua folder dan
berkas pada local project.
Untuk memilih tujuan penyalinan website, klik Connect. Lihat Gambar 2.21.
25 Bagian 2 - Tour De Visual Studio Web Developer Hands ON
Muncul dialog box Open Web Site seperti yang ditampilkan pada Gambar 2.22.
Sisi kiri dari dialog box ini mengijinkan anda untuk menyalin ke salah satu dari empat jenis
tujuan penyalinan.
a. File System. Klik File System, dan anda akan dapat bernavigasi ke sebuah folder dalam local
file system atau sebuah networked drive.
b. Local IIS. Klik icon Create New Web Application yang terletak paling kiri diantara tiga icon di
pojok kanan atas. Sebuah folder website baru muncul dalam tree view dari sistem IIS lokal.
Ubah namanya menjadi Tujuan dan klik Open.
26 Bagian 2 - Tour De Visual Studio Web Developer Hands ON
Pilih semua berkas kemudian klik tombol panah kanan memindah semua berkas terpilih ke
aplikasi virtual yang baru dibuat dalam IIS lokal anda.
c. FTP Site. Pilihan ini mengijinkan anda untuk menggunakan FTP untuk mengirimkan berkas
dari mesin lokal ke server manapun dengan server FTP yang dapat diakses mesin anda.
d. Remote Site. Mirip dengan pilihan Local IIS, namun server tujuan harus menjalankan
Microsoft FrontPage Server Extentions.
Pada dialog box yang muncul, pilih Other Project Types > Setup and Deployment > Web Setup
Project. Lihat Gambar 2.24.
Pada jendela WebSetup1, klik kanan lalu pilih Add > Project Output… Lihat Gambar 2.25.
27 Bagian 2 - Tour De Visual Studio Web Developer Hands ON
Muncul jendela seperti gambar dibawah ini, lalu klik OK. Lihat Gambar 2.26.
Klik menu Build > Build WebSetup1 untuk mengkompilasi setup project ini. Lihat Gambar 2.272.
28 Bagian 2 - Tour De Visual Studio Web Developer Hands ON
Dalam folder Debug dibawah folder proyek, anda akn menemukan berkas Setup.exe dan berkas
WebSetup1.msi.
Jika anda menjalankan Setup.exe, program akan menginstal aplikasi web HitungHutang. Anda
akan diminta untuk menentukan nama dari folder virtual dimana aplikasi web harus diinstal.
Setup program akan membuat direktori virtual didalam IIS.
29 Bagian 3 – Web Aggregator Part 1 | Perancangan Antarmuka
Sebelum Memulai
Pada bagian ini akan dikembangkan sebuah aplikasi web bernama web Aggregator. Aplikasi web ini
secara sederhana adalah layanan search engine yang memberikan informasi berbagai hal yang terkait
dengan kata kunci yang dimasukkan pada kotak masukan.
Aplikasi web Aggregator akan melakukan pencarian ke dua sumber yakni Live Search dan Amazon.
Kedua sumber tersebut menyediakan web services yang akan diakses oleh aplikasi web Aggregator.
Layanan yang diberikan keduanya bersifat gratis namun demikian ada kewajiban pengguna untuk
mendaftar terlebih dahulu untuk menggunakan layanan ini. Pada bagian berikut akan digambarkan
bagaimana cara melakukan pendaftaran di kedua buah web services tersebut.
Pada gambar 3.1 tampak bahwa pengguna dapat mendownload SDK yang dibutuhkan untuk membuat
aplikasi berbasis web services yang dibutuhkan. Berbeda dengan SDK pada umumnya yang mewajibkan
untuk dipasang sebelum mengembangkan aplikasi yang bersangkutan. SDK yang diberikan pada situs ini
hanya seputar contoh dan beberapa referensi dokumentasi yang dapat digunakan untuk
mengembangkan aplikasi. Dengan kata lain, SDK ini bersifat sunah untuk dipasang.
Hal yang wajib untuk dilakukan adalah membuat Application ID. Application ID adalah ID unik yang
digunakan untuk mengidentifikasi pengguna atau konsumen web services yang bersangkutan.
Application ID terdiri dari dua bagian yakni identifier dan nomor identifier. Application ID ini akan
digunakan pada setiap aplikasi yang dikembangkan.
Hal yang menarik pengguna dapat membuat application ID sebanyak-banyaknya, setiap application ID
pada umumnya digunakan untuk mengidentifikasi banyaknya query dalam satu waktu. Pembatasan ini
sebenarnya semata mata untuk menghindari Denial Of Services akibat request akun yang tak terkendali.
Setelah membuat Application ID, pengguna dapat melihat situs yang memudahkan pembelajaran
penggunaan SDK yang bersangkutan dengan alamat http://dev.live.com/livesearch/sdk/ . Pada situs ini
pengguna dapat mengeksplorasi kemampuan Live Search dan mengetahui bagaimana mengembangkan
aplikasi klien dengan web services.
31 Bagian 3 – Web Aggregator Part 1 | Perancangan Antarmuka
Layanan Amazon Web Services terbilang banyak dan beragam, dan tidak semuanya tanpa investasi,
terdapat beberapa layanan Amazon yang mewajibkan pemakainya untuk membayar untuk setiap
transaksi layanan tertentu misalnya Alexa. Hal lain yang menarik dari layanan Web Services adalah,
Amazon memiliki program refrensi penjualan, jadi pengguna yang menggunakan dan mengembangkan
layanan web services amazon ini dapat pula memperoleh tambahan penghasilan melalui program yang
dinamakan DevPay.
Pendaftaran Web Services Amazon bukanlah hal yang sulit pengguna hanya cukup menavigasi ke
http://aws.amazon.com dan memilih sign me up pada halaman kanan dari situs yang bersangkutan
32 Bagian 3 – Web Aggregator Part 1 | Perancangan Antarmuka
Setelah mengisi beberapa informasi yang dibutuhkan pengguna dapat mengaktifkan akun web services
amazonnya melalui menu “Your Web Services Account” seperti pada gambar 3.4 berikut.
Sama halnya dengan Live Search, akses web services amazon juga membutuhkan identifikasi yang unik
pengguna dapat mengetahuinya melalui menu AWS Access Identifier. Pada AWS Access Identifier
pengguna akan memperoleh dua identifier yakni.
Access Key ID, berupa ID utama yang digunakan untuk layanan Web Services amazon yang tidak
berbayar
Secret Key, berupa ID khusus yang digunakan untuk layanan web services amazon yang
berbayar.
Selain itu pengguna juga dapat menambahkan keamanan request melalui penambahan sertifikat x509.
Gambar 3.5
33 Bagian 3 – Web Aggregator Part 1 | Perancangan Antarmuka
Berdasar pada arsitektur deployment pada gambar 6 maka dapat diungkapkan skenario aplikasi sebagai
berikut.
34 Bagian 3 – Web Aggregator Part 1 | Perancangan Antarmuka
Skenario Aplikasi
“Pada beberapa buku software engineering yang mengacu pada
UML, bentuk baku dari skenario aplikasi adalah Use Case”
Bila digenerikkan lagi, secara sederhana komposisi aplikasi Web Aggregator dapat digambarkan seperti
pada gambar berikut.
Live Search
web
Amazon
Services
web
Services
Own Web
Services
Web Aggregator
6. Beri nama dengan Site.Master adalah halaman khusus yang dapat diturunkan ke halaman
ASP.NET lainnya. Site.Master ibarat abstract class untuk antarmuka web pada ASP.NET
Site.Master
Default.aspx Others.aspx
7. Pada Site.Master lakukan pembuatan desain antarmuka web, Visual Studio ataupun Visual Web
Developer mendukung pembuatan antarmuka web yang mengikuti standard seperti XHTML
profile, dan accesibility access.
8. Pada kesempatan ini pengguna menggunakan tamplate sederhana dengan tiga kolom pada
bagian isi. Snippet kode berikut akan membantu anda membuatnya.
OSWD.ORG</a>
</div>
</div>
</form>
</body>
</html>
9. Pada kode diatas tampak digunakan beberapa kontrol esensial yang mungkin bermanfaat pada
saat pengembangan aplikasi web. Tabel berikut menggambarkan control dan fungsinya.
Tabel 3.1 Kontrol ASP.NET pada halaman Site Master
Nama Kontrol Fungsi
ContentPlaceHolder Ibarat suatu ruang yang berperan sebagai ruang panel yang isinya akan
di-override pada bagian content page.
ScriptManager* Berupa kontrol utama pengelola halaman web yang menggunakan
teknologi AJAX
UpdatePanel* Kontrol yang memungkinkan daerah panel yang bersifat asinkron dari
sisi komunikasi update. Daerah didalam UpdatePanel bersifat
asinkron,sementara diluarnya akan menggunakan konsep render
seperti halaman aspx pada umumnya
UpdateProgress* Kontrol update progress berperan menotofikasi perubahan pada saat
terjadi komunikasi asinkron berlangsung antara client dan server
10. Server kontrol yang bertanda * adalah server kontrol yang baru dirilis pada ASP.NET 3.5. Server
kontrol ini juga dikenal dengan Server Kontrol yang didesain untuk Ajax.
ASP.NET Ajax
“Server kontrol Ajax sebenarnya bukanlah kontrol baru pada
ASP.NET. Sekitar tahun 2007, ASP.NET AJAX adalah paket kontrol
server yang terpisah dan dapat didownload secara gratis”
11. Pada kode tampak bahwa dibutuhkan berkas main.css sebagai standar tampilan antarmuka
cascading style sheet. Kode berikut menunjukkan berkas CSS yang digunakan pada aplikasi ini.
* {
padding: 0;
margin: 0;
}
body {
font-family: Arial, Helvetica, sans-serif;
color: #666666;
font-size: 12px;
}
img
{
padding: 3px;
border: solid 1px #e1e1e1;
}
38 Bagian 3 – Web Aggregator Part 1 | Perancangan Antarmuka
img.floatTL
{
float: left;
margin-right: 1.3em;
margin-bottom: 1.0em;
margin-top: 0.5em;
}
blockquote{
font-family: monospace;
color: #838383;
padding: 15px;
border: 1px #d9d9d9 solid;}
#header {
border: 1px solid #ccc;
margin: 5px 5px 5px 5px;
padding: 4px;
height: 60px;
background-color: #C9C9BE;
background-image: url(images/img2.jpg);}
ul {
line-height: 180%;
}
ul {
margin-left: 0;
padding-left: 0;
list-style-position: inside;
}
#header p {
color: #5dff35;
float: left;
padding: 25px 0em 0px 0px;}
#header h1 {
float: left;
padding: 15px 0em 0px 20px;
font-size: 14px;
color: #5dff35;
}
#header h2 {
float: left;
padding: 25px 0em 0px 0px;
font-size: 11px;
font-weight: normal;
}
#header ul {
float: right;
margin: 0;
padding: 25px 0em 0px 0em;
list-style: none;
font-size: 11px;
}
#header li {
39 Bagian 3 – Web Aggregator Part 1 | Perancangan Antarmuka
display: inline;
}
#header a {
display: block;
float: left;
height: 25px;
margin: 0 0 0 8px;
padding: 12px 20px 0 20px;
text-decoration: none;
font-weight: bold;
color: #ffb536
}
#header a:hover {
color: #5dff35;
}
#leftcolumn h1{
color: #7059ff;
font-size: 18px;
text-indent: 10px;}
#leftcolumn h2{
color: #7059ff;
font-size: 16px;
text-indent: 10px;
border-top: 1px dashed;
padding-top: 5px;
margin-top: 10px;}
#centercolumn p{
text-align: justify;
}
#centercolumn h2{
40 Bagian 3 – Web Aggregator Part 1 | Perancangan Antarmuka
color: #7059ff;
font-size: 14px;
text-indent: 10px;
border-top: 1px dashed;
padding-top: 5px;
margin-top: 10px;
}
#centercolumn img {
margin-left: 12%;}
#rightcolumn {
margin: 0 5px 0px 0px;
padding: 4px;
display: inline; /* IE Hack */
width: 21%;
float: left;
border: 1px solid #ccc;
background-color: #fff;
min-height: 300px;
}
* html #rightcolumn {height:300px} /* IE Min-Height Hack */
#rightcolumn h4{
font-size: 13px;
padding-top: 7px;
margin-top: 15px;
border-top: 1px solid;}
#rightcolumn a {
border-bottom: none;
color:#999999;
}
#rightcolumn h3{
text-align: center;
position:static;
}
#footer {
font-size: 10px;
background-color: #fff;
text-align: center;
margin: 10px 5px 5px 5px;
display: inline; /* IE Hack */
41 Bagian 3 – Web Aggregator Part 1 | Perancangan Antarmuka
padding: 4px;
float: left;
width: 97.7%;
}
12. Berita gembiranya CSS dapat didesain dengan mudah tanpa harus melakukan pengkodean
secara manual. Visual Web Developer 2008 dan Visual Studio mendukung desain CSS yang
muktahir dengan bantuan CSS Outline, CSS Builder , dan juga CSS Properties. Berikut
menggambarkan fungsi dari masing-masing perangkat.
a. CSS Outline , berperan menampilkan hirarki CSS dalam bentuk tree.
b. CSS Builder, berperan menampilkan wiyasa atau petunjuk WYSIWYG yang dibutuhkan
dalam mengembangkan CSS.
c. CSS Properties, berupa dialog yang memudahkan pengguna untuk merubah nilai dari
suatu CSS.
13. Menambahkan Gambar bukanlah hal yang sulit. Pada CSS tampak bahwa gambar berada di
lokasi /image/namaimage.jpg. Hal ini dapat dilakukan dengan menambahkan sebuah folder.
Pada visual Studio tambahkan sebuah folder melalui kontek menu pada Project (klik kanan) ->
Add Folder seperti pada gambar berikut.
42 Bagian 3 – Web Aggregator Part 1 | Perancangan Antarmuka
14. Berikutnya tambahkan image dengan cara menyalin secara langsung melalui copy paste ke
folder yang bersangkutan, atau melalui menu Existing Item. Sehingga akan tampak seperti
gambar berikut.
15. Berikutnya akan ditambahkan content page. Content Page adalah halaman yang berisi isi sebuah
halaman web, secara struktural content page adalah halaman turunan dari halaman master
page. Pada Visual Studio pembuatan content page dapat dilakukan dengan memilih berkas
Master Page yang ada pada solution explorer, kemudian memilih kontek menu pada berkas
tersebut dan pilih Add Content Page.
16. Secara default penamaan dari content page adalah halaman dengan nama WebForm1.aspx,
rename berkas tersebut menjadi Default.aspx, dengan cara memilih konteks menu berkas yang
bersangkutan dan memilih rename.
17. Klik dua kali berkas Default.aspx, maka akan tampak kode berikut.
18. Tampak terdapat kontrol yang dinamakan Content, kontrol ini adalah kontrol yang mengacu
pada kontrol ContentPlaceHolder, fungsinya sebagai panel yang dapat diisikan secara bebas
untuk tiap-tiap halaman content page dari master page. Fleksibilitas ini yang menghadirkan
konsitensi isi dan tata letak halaman menggunakan master page.
20. Berikutnya tambahkan kode berikut pada Content 1, sehingga akan tampak sebagai berikut.
21. Pada content 2 akan ditambahkan sebuah kotak masukan yang akan menerima masukan
penguna dalam memasukkan kata kunci yang hendak dimasukkan. Pada content 2 tambahkan
kode berikut.
22. Pada bagian tersebut kita menambahkan satu buah tombol dan satu buah textbox yang
keduanya berada didalam filedset, Filedset adalah standar pada CSS untuk melakukan
pengelompokan antarmuka. Pernyataan runat server menandakan bahwa control tersebut akan
dirender oleh server sementara bagian yang lain adalah properties yang dibutukan agar kontrol
dapat ditampilkan sebagaimana mestinya.
23. Pada Content 2 juga ditambahkan sebuah ListView. ListView adalah kontrol terbaru pada
ASP.NET 3.5 yang berperan mengikat data dan menampilkan data sesuai dengan keinginan dan
template pengguna. ListView dapat ditambahkan melalui kontrol ToolBox pada kategori Data.
24. Lakukan drag and drop dari toobox ke kode. Tambahkan sebuah fieldset dan ubah nama fieldset
yang bersangkutan menjadi ListViewResult sehingga akan tampak sebagai berikut.
<fieldset>
<legend>Search Here</legend>
<asp:TextBox ID="txtSearch" runat="server"></asp:TextBox>
<asp:Button ID="btnSearch" runat="server" Text="Search"/>
</fieldset>
<fieldset>
<legend>Search Result</legend>
<asp:ListView ID="ListViewResult" runat="server">
</asp:ListView>
</fieldset>
</asp:Content>
25. Sebelum menggunakan LIstVIew pengembang wajib mengembangkan apa yang dinamakan
template. Template pada ListView terbagi menjadi beberapa bagian
a. LayoutTemplate, template utama berupa tag html yang merepresentasikan bagaimana
data ditampilkan secara keselurtuhan.
b. EmptyDataTemplate, template untuk data yang tidak ada
c. ItemTamplate, template utama berupa tag html yang menampilkan tiap-tiap data.
d. ItemSeparatorTemplate, template pemisah antara satu data yang satu dengan data
yang lain.
e. AlternatingTemplate, template data pembeda antara data yang satu dengan data yang
lain.
26. Semua template diatas ditambahkan pada bagian diantara ListView ASP.NET , walaupun secara
struktural ke empat template di atas tidak perlu berurut. Penambahan yang sesuai urutan akan
memudahkan dalam memahami kode. Pertama ditambahkan kode LayoutTemplate.
27. Pada layoutTemplate di atas tampak bahwa penambahan beberapa tombol dan juga template
List HTML ditambahkan. Kontrol DataPager berguna dalam mekanisme paging (pembagian
halaman) pada data yang cukup banyak.
28. Berikutnya ditambahkan empty data template, item separator template, dan juga
ItemTemplate.
<EmptyDataTemplate>
No data was returned.
</EmptyDataTemplate>
<ItemTemplate>
<li style="background-color: #E0FFFF;color: #333333;">
<br />
Judul:
<asp:Label ID="nameLabel" runat="server" Text=”” />
<br />
Deskripsi:
<asp:Label ID="descriptionsLabel" runat="server"
Text=”” />
<br />
Links:
<a href=”">Here</a>
<br />
</li>
</ItemTemplate>
<ItemSeparatorTemplate>
<br />
</ItemSeparatorTemplate>
29. Bagian utama yang tampak menarik untuk diperhatikan adalah keberadaan dari ItemTemplate.
ItemTemplate pada kode di atas ditambahkan sebuah list yang kerangkanya telah dideskripsikan
pada bagian layout. Pada kode di atas ditambahkan tiga buah kontrol asp.net yang berupa label
dan link. Tiga kontrol ini pada H.O.L bagian selanjutnya akan mengikat hasil dari web services.
30. Terakhir ditambahkan AlternatingItemTemplate sebagai berikut
<AlternatingItemTemplate>
<li style="background-color: #FFFFFF;color: #284775;">
<br />
Judul:
<asp:Label ID="nameLabel" runat="server" Text=”” />
<br />
Deskripsi:
<asp:Label ID="descriptionsLabel" runat="server"
Text=”” />
<br />
Links:
<a href="">Here</a>
<br />
</li>
</AlternatingItemTemplate>
32. Berikutnya pada content 2 ditambahkan DataGridView , beri nama seperti pada kode berikut
</asp:GridView>
33. Untuk mengatur template dan format tampilan, dapat dilakukan melalui designer view. Hal yang
dilakukan adalah merubah view code ke designer. Pilih kontrol GridView yang bersangkutan
kemudian dilanjutkan dengan memilih smart tag seperti gambar berikut.
34. Berikutnya dapat dilakukan Build untuk web site yang bersangkutan. Hal ini dapat dilakukan
dengan menekan tombol Shift+F5 atau memilih menu Build Solution. Tekan F5 maka halaman
default.aspx akan tampil seperti gambar berikut.
48 Bagian 3 – Web Aggregator Part 1 | Perancangan Antarmuka
35. Pada bagian berikutnya akan diintegrasikan antarmuka yang ada dengan web services Live
Search dan Amazon.
49 Bagian 4 – Web Aggregator Part 2 | Pengembangan Business Process
Sebelum Memulai
Sebelum memulai bagian ini diharapkan pembaca telah berhasil mengembangkan antarmuka yang telah
dikemukakan pada bab sebelumnya dan dapat mengeksekusinya hingga tampak halaman web utama
(default.aspx).
Pada bagian ini selain akan melakukan pengkodean aplikasi web, akan dilakukan pula penambahan web
reference untuk itu diharapkan apda saat melakukan Hand On Lab ini, pembaca terhubung dengan
internet.
Gambar 4.1 Peran Kerja Proxy Class pada aplikasi Web Services
50 Bagian 4 – Web Aggregator Part 2 | Pengembangan Business Process
Bila dieksplorasi lebih lanjut melalui explorer, maka sebenarnya web reference adalah metadata dari
sebuah web services yang dijabarkan sesuai dengan kebutuhan satndar komunikasi web ala Microsoft
.NET yang didalamnya terdiri dari
WSDL
Proxy Class
Berkas komunikasi pengikatan data (.datasource)
Berkas pemetaan ala DISCO (reference.map)
52 Bagian 4 – Web Aggregator Part 2 | Pengembangan Business Process
Informasi mengenai identifikasi unik tersebut dapat ditaruh pada kode, namun demikian ASP.NET
menyediakan cara yang lebih elegan dalam menyimpan infomasi yang bersifat unik dan penting ini.
ASP.NET memiliki suatu struktur mekanisme untuk penyimpanan informasi konfigurasi melalui berkas
terpisah yang dikenal dengan web.config
Berikut adalah informasi spesifik yang hendak kita simpan pada web.config
Berikut adalah langkah-langkah yang dilakukan untuk menambahkan informasi pada Web.config.
<appSettings/>
<connectionStrings/>
3. Buka elemen tag pada appsettings dan ubah menjadi sebagai berikut.
<appSettings>
<add key="proxy" value="xxxxxxx"/>
<add key="user" value="xxx"/>
53 Bagian 4 – Web Aggregator Part 2 | Pengembangan Business Process
<connectionStrings/>
5. Simpan berkas web.config dan yakinkan berkas xml yang bersangkutan well formed
Pemetaan XML response dapat dilakukan dengan berbagai cara yakni menggunakan custom Business
Logic atau menggunakan tipe data yang mendukung koleksi dan pengikatan data seperti menggunakan
DataTable.
Berikut dikemukakan langkah-langkah yang dapat dilakukan untuk melakukan pengikatan data pada
project yang bersangkutan.
1. Tambahkan sebuah class dengan nama Agregator.cs. Hal ini dapat dilakukan dengan cara add
new item -> pilih class -> beri nama Aggregator.cs
2. Visual Studio akan menampilkan berkas class pada solution explorer. Class ini akan menjadi class
yang berkomunikasi langsung dengan web services dan akan mengkonversi hasilnya menjadi
class .NET yang dalam hal ini akan diubah dalam bentuk datatable.
Datatable
”Datatable dapat dibayangkan suatu tabel database yang
disimpan pada memori. Selain memiliki kesamaan dari struktur
tabel yang disimpan secara fisik, datatable juga memberikan
kemampuan sinkronisasi antara tabel fisik yang tersimpan dalam
sistem berkas dengan yang disimpan dalam memori”
55 Bagian 4 – Web Aggregator Part 2 | Pengembangan Business Process
3. Pada class yang bersangkutan tambahkan sebuah method untuk memanggil web services ke
LIve Search sebagai berikut.
//identity
sr.AppID = WebConfigurationManager.AppSettings.Get("liveappid");
SearchResponse srsp = aSearch.Search(sr);
return resultTable;
}
56 Bagian 4 – Web Aggregator Part 2 | Pengembangan Business Process
4. Kode di atas melakukan beberapa hal yakni menerima masukan berupa query string ke Live
Search web services dan mengembalikan dalam bentuk DataTable. Hal-hal yang dilakukan
adalah sebagai berikut
a. Melakukan pengesetan nilai query dan beberapa properties, seperti bahasa kata kunci,
dukungan safesearch, hingga app ID.
b. Mengirim sekumpulan properties dan kata kunci tersebut ke web services yang
bersangkutan.
c. Hasil dari Web Services berupa response diterima dalam variable tertentu (dalam hal ini
SearchResponse).
d. Variabel yang menyimpan hasil kemudian dipetakan ke dalam Datatable. DataTable
yang dibuat memetakan beberapa informasi yakni judul hasil pencarian, deskripsi hasil
pencarian, dan link hasil pencarian.
e. Nilai datatable kemudian dikembalikan sebagai keluaran method.
Safe Search
“Safe Search adalah properti yang digunakan untuk melakukan
filterisasi terhadap hasil keluaran dari Search Engine. Dukungan
Safe Search cukup baik dalam memfilter hasil search engine yang
mungkin tidak layak ditampilkan seperti yang terkait dengan
kekerasan. Pengguna dapat melakukan pengesetan properties
Safe Search secara fleksibel”
5. Pada class yang sama tambahkan method untuk memanggil web services Amazon. Berikut
adalah code untuk melakukan pemanggilan Web Services Amazon
//if proxy enabled, set the web proxy for amazone services
string webProxy = WebConfigurationManager.AppSettings.Get("proxy");
if (webProxy.Length != 0)
{
string user = WebConfigurationManager.AppSettings.Get("user");
string passsword = WebConfigurationManager.AppSettings.Get("password");
ireq.SearchIndex = "Books";
ItemSearchRequest[] lreq = new ItemSearchRequest[1];
lreq[0] = ireq;
isearch.Request = lreq;
//mapping objects
DataTable refTable = new DataTable();
refTable.Columns.Add("Image");
refTable.Columns.Add("Title");
refTable.Columns.Add("URL");
//Tampilkan hasil
Items[] itemsList = iresp.Items;
foreach (Items items in itemsList)
{
Item[] itemList = items.Item;
foreach (Item item in itemList)
{
WebAggregator.amazonews.Image img = item.SmallImage;
string title = item.ItemAttributes.Title;
string url = item.DetailPageURL;
refTable.Rows.Add((img == null ? @"~/images/def.png" : img.URL), title, url);
}
}
return refTable;
}
6. Kode di atas melakukan beberapa hal yakni menerima masukan berupa query string ke Amazon
web services dan mengembalikan dalam bentuk DataTable. Hal-hal yang dilakukan adalah
sebagai berikut
a. Melakukan pengesetan nilai query dan beberapa properties, seperti bahasa kata kunci,
dukungan safesearch, hingga app ID.
b. Mengirim sekumpulan properties dan kata kunci tersebut ke web services yang
bersangkutan.
c. Hasil dari Web Services berupa response diterima dalam variable tertentu (dalam hal ini
ItemSearchResponse).
d. Variabel yang menyimpan hasil kemudian dipetakan ke dalam Datatable. DataTable
yang dibuat memetakan beberapa informasi yakni judul hasil pencarian, URL hasil
pencarian, dan Image hasil pencarian.
e. Nilai datatable kemudian dikembalikan sebagai keluaran method.
7. Pada kode akses Web Services di Amazon dan Live Search tampak jelas bahwa terdapat rutin
yang sama dalam melakukan pengecekan proxy. Hal tersebut harus dihindari demi tercapainya
efisiensi dalam pemograman. Hal ini dikenal dengan konsep refactoring. Pengecekan proxy dan
pengesetan proxy dilakukan dengan mengeset proxy autentifikasi ke proxy class Web Services
yang bersangkutan. Hal yang menarik baik Amazon Proxy Class maupun Live Search keduanya
adalah turunan mendasar dari class SOAPHTTPClientProtocol.
58 Bagian 4 – Web Aggregator Part 2 | Pengembangan Business Process
System.Web.Services.Protocols.
SoapHttpClientProtocol
Gambar 4.9 Relasi antara Proxy Class pad .NET Web Services Class
8. Berdasar pada informasi di atas maka dapat dilakukan pembuatan method yang menerima
masukan SoapClientProtocol. Berikut adalah kode yang dapat ditambahkan pada class
Aggregator.
9. Berikutnya pembaca dapat menghapus kode dibagian pengesetan proxy hingga sebagai berikut
(perhatikan yang bercetak tebal)
Proxy(aSearch);
//identity
sr.AppID = WebConfigurationManager.AppSettings.Get("liveappid");
59 Bagian 4 – Web Aggregator Part 2 | Pengembangan Business Process
return resultTable;
}
//if proxy enabled, set the web proxy for amazone services
Proxy(amazoneService);
//mapping objects
DataTable refTable = new DataTable();
refTable.Columns.Add("Image");
refTable.Columns.Add("Title");
refTable.Columns.Add("URL");
//Tampilkan hasil
Items[] itemsList = iresp.Items;
foreach (Items items in itemsList)
60 Bagian 4 – Web Aggregator Part 2 | Pengembangan Business Process
{
Item[] itemList = items.Item;
foreach (Item item in itemList)
{
WebAggregator.amazonews.Image img = item.SmallImage;
string title = item.ItemAttributes.Title;
string url = item.DetailPageURL;
refTable.Rows.Add((img == null ? @"def.png" : img.URL), title, url);
}
}
return refTable;
}
11. Bila telah direfaktorisasi pengembang dapat melanjutkan melakukan pengikatan data hasil web
service yang dihasilkan ke dalam antarmuka yang telah dirancang. Pengikatan yang dilakukan
sebenanya adalah melakukan pengikatan data hasil web services ke kontrol yang bersangkutan
dalam hal ini LIstview akan diikat dengan data hasil web services dari LiveSearch sementara ,
hasil web services amazon akan diikat dengan DataGRidiew
12. Pada ListView yang telah dirancang modifikasi kodenya hingga tampak sebagai berikut.
<ItemTemplate>
<li style="background-color: #E0FFFF;color: #333333;">
<br />
Judul:
<asp:Label ID="nameLabel" runat="server" Text='<%# Eval("Title") %>' />
<br />
Deskripsi:
<asp:Label ID="descriptionsLabel" runat="server"
Text='<%# Eval("Descriptions") %>' />
<br />
Links:
<a href="<%# DataBinder.Eval(Container.DataItem, "URL") %>">Here</a>
<br />
</li>
</ItemTemplate>
<ItemSeparatorTemplate>
<br />
</ItemSeparatorTemplate>
<AlternatingItemTemplate>
<li style="background-color: #FFFFFF;color: #284775;">
<br />
Judul:
<asp:Label ID="nameLabel" runat="server" Text='<%# Eval("Title") %>' />
<br />
Deskripsi:
<asp:Label ID="descriptionsLabel" runat="server"
Text='<%# Eval("Descriptions") %>' />
<br />
Links:
<a href="<%# DataBinder.Eval(Container.DataItem, "URL") %>">Here</a>
<br />
</li>
</AlternatingItemTemplate>
61 Bagian 4 – Web Aggregator Part 2 | Pengembangan Business Process
13. Pernyataan DataBinder.Eval atau Eval adalah suatu perintah untuk melakukan pengikatan data
yang bersifat dinamis dalam hal ini data yang dihasilkan web services. Data yang diikat
diidentifikasi dengan cara menggunakan id dari masing masing kolom yang telah dikemukakan
pada class Agregator.
14. Hasil dari amazon web services juga diikat oleh daragridview. Berikut adalah kode yang
digunakan pada halaman default.aspx.
</asp:GridView>
15. GridView di atas menggunakan sebuah kolom dan mengikat dua buah data yang ditampilkan
dalam sebuah Hyperlinks. Hal ini tampak jelas pada kode didalam GRidView yang
mengemukakan tag Columns yang didalamnya terdapat HyperLinkField.
16. Lakukan mekanisme build dan yakinkan tidak ada kesalahan.
17. Berikutnya dilakukan pengikatan data yang secara sederhana melakukan pemanggilan melalui
kode pada saat button search di klik. Lakukan
GridViewBookList.DataSource = Aggregator.AmazonDoSearch(txtSearch.Text);
GridViewBookList.DataBind();
}
18. Lakukan build (F6) kemudian ujikan aplikasi yang telah dibuat, dengan melakukan debugging
(F5)
62 Bagian 4 – Web Aggregator Part 2 | Pengembangan Business Process
19. Setelah menguji coba lakukan deployment atau distribusi aplikasi hal ini dapat dilakukan dengan
melakukan Copy WebSite yang dapat diakses melalui menu WebSite -> Copy Website
20. Pilih tombol Connect dan dialog gambar berikut, pilih sesuai dengan kebutuhan. Pada
kesempatan ini penulis memilih local IIS. Pilih Create New Web Application.
63 Bagian 4 – Web Aggregator Part 2 | Pengembangan Business Process
21. Kemudian pilih open dan lakukan pemindahan berkas dengan menggunakan tombol sinkronisasi
berikut.
22. Dengan melakukan mekanisme demikian maka web telah siap diakses dengan alamat yang
bersangkutan. Bila pengguna menggunakan Visual Studio 2008 standard atau yang lebih tinggi
pengguna dapat melakukan berbagai alternatif seperti melakukan distribusi tanpa source code
(multi assembly), single assembly, dan melalui pemaketan project.
64 Bagian 4 – Web Aggregator Part 2 | Pengembangan Business Process
Sebuah Penutup
Program diatas masih membutuhkan berbagai perbaikan atau fitur tambahan, misalkan kata kunci
pencarian yang bisa lebih dikembangkan (advance search), sebagai contoh mencari kata kunci untuk
jurnal juranal resmi (ACM, IEEE), pencarian expert consultant , dan sebagainya.
Penulis berharap dengan membaca ini pembaca dapat terinspirasi dan mengembangkan aplikasi web
yang bermanfaat bagi masyarakat sekitar.