Buku Visual Studio PDF
Buku Visual Studio PDF
APLIKASI PERPUSTAKAAN
dengan menggunakan
.NET Framework 3.5
C# Programming
SQL Server 2005 Express
Perpustakaan Editor
Renny Fitriastuti
dengan Menggunakan .NET
Framework 3.5, C# Programming, Graphic Design & Layout
Lely Yulaena
dan SQL Server 2005 Express
Mardiana
© Majalah PC Media, 2008
Secretary
Hak cipta dilindungi oleh undang-undang. Dilarang Evawani Utami Putri
memperbanyak sebagian atau seluruh isi buku ini
dalam bentuk apapun tanpa izin tertulis dari penerbit. Publishing
PT Dian Digital Media, Jakarta
Printing
Merk Dagang PT Dian Rakyat, Jakarta
Seluruh merk dagang yang digunakan dalam buku
ini merupakan hak cipta dari pemegang merk Editorial Address
dagang masing-masing. Gedung Warta Lt.4
Jl. Kramat IV/11
Jakarta Pusat-10430
Peringatan dan Pernyataan Telp. (021) 315-3731
Segala daya upaya telah dikerahkan agar buku ini Fax. (021) 315-3732
dapat selengkap dan seakurat mungkin, walau
begitu tidak ada pernyataan apapun mengenai Circulation Address
kebenaran maupun kecocokannya. Segala Jl. Rawagirang No. 8
informasi di buku ini disediakan berdasarkan apa Kawasan Industri Pulogadung
adanya. Penulis dan penerbit dengan segala Jakarta Timur-13930,
hormat tidak bertanggung jawab pun tidak Telp. (021) 4682-6816,
7079-6499
memiliki pertanggungjawaban kepada apapun
Fax. (021) 4682-8919
atau siapapun akibat terjadinya kehilangan atau
kerusakan yang mungkin timbul yang berasal dari
informasi yang dikandung dalam buku ini.
Pengantar......................................................................... 7
Bab 1. Persiapan.......................................................... 9
Software yang Dibutuhkan................................................ 9
IIS di Windows Vista dan XP.............................................. 9
Visual C# Express 2008........................................................ 14
Visual Web Developer Express 2008.................................. 16
Instalasi SQL Server Express 2005....................................... 17
Instalasi SQL Server Management Studio Express............ 18
Arsitektur Aplikasi.............................................................. 19
Kompetisi......................................................................... 95
Komunitas....................................................................... 97
Pengantar
Kami ucapkan terimakasih atas keputusan Anda untuk
membaca buku kecil ini. Selain karena banyaknya teknologi
terbaru yang nantinya akan Anda pelajari, buku ini juga
merupakan undangan terbuka untuk mengikuti kompetisi
″.NET Developer Idol 2008″.
Buku ini akan menjelaskan langkah demi langkah pem-
buatan aplikasi perpustakaan buku sederhana menggunakan
.NET Framework 3.5, bahasa pemrograman C#, dan SQL Server
2005 Express. Aplikasi ini mengadopsi arsitektur berlapis tiga
dengan middle-tier yang diimplementasikan dengan Web
Service berbasis Windows Communication Foundation (WCF)
dan LINQ. Data-tier aplikasi menggunakan SQL Server 2005
Express sebagai media basis data yang dilengkapi dengan
Stored Procedure. Interface aplikasi adalah klien berbentuk
web dan desktop yang mengonsumsi middle-tier WCF Service
melalui protokol HTTP.
Contoh aplikasi dalam buku ini (terdapat juga di DVD PC
Media 04/2008) ditujukan untuk memberikan gambaran nyata
bagaimana aplikasi bisnis dibangun dewasa ini. Dengan
pengetahuan yang Anda dapatkan nantinya, baik dari sisi
teknologi baru maupun arsitektur, kami yakin Anda akan
mampu mengikuti ajang kompetisi bergengsi, ″.NET
Developer Idol 2008″.
Pemenang pertamanya berkesempatan mengunjungi
Microsoft Development Center di India. Info lengkapnya buka
halaman 95 buku ini.
Hormat kami,
Redaksi PC Media
Bab 1
Persiapan
Pada bab ini akan dipersiapkan berbagai software
yang diperlukan dalam pengembangan aplikasi
perpustakaan dengan teknologi .NET 3.5
LANGKAH 1
Melalui Start Menu pilih menu Control Panel.
LANGKAH 2
Pada Control Panel pilih Programs kemudian pilih Turn on or
off Windows Features.
LANGKAH 3
Pada dialog box Windows Features, pilih Internet Information
Services. Pada bagian ini pengguna dapat melakukan
pemilihan sesuai kebutuhan dengan melakukan ekspansi dari
masing-masing subfitur yang ada.
LANGKAH ALTERNATIF
Selain menggunakan Windows Features, pembaca juga dapat
menggunakan pendekatan script. Pendekatan script memang
terkesan kompleks, namun demikian tingkat fleksibilitas yang
ditawarkan lebih tinggi.
Berikut adalah script yang dapat digunakan. Script ini dapat
disalin ke berkas teks yang kemudian dapat disimpan dalam
bentuk berkas .bat.
URLAuthorization;IIS-RequestFiltering;IIS-
IPSecurity;IIS-Performance;IIS-
HttpCompressionStatic;IIS-HttpCompressionDynamic;IIS-
WebServerManagementTools;IIS-ManagementConsole;IIS-
ManagementScriptingTools;IIS-ManagementService;IIS-
IIS6ManagementCompatibility;IIS-Metabase;IIS-
WMICompatibility;IIS-LegacyScripts;IIS-
LegacySnapIn;IIS-FTPPublishingService;IIS-
FTPServer;IIS-FTPManagement;WAS-
WindowsActivationService;WAS-ProcessModel;WAS-
NetFxEnvironment;WAS-ConfigurationAPI
LANGKAH 1
Melalui Start Menu pilih menu Control Panel.
LANGKAH 2
Pilih Add or Remove Programs, lalu pilih Add/Remove
Windows Components.
LANGKAH 3
Pada jendela Windows Components yang terlihat, pilih fitur
Internet Information Services (IIS), kemudian lanjutkan
dengan memilih menu Next.
LANGKAH 4
Pada saat instalasi berlangsung, Windows akan meminta
media instalasi Windows XP. Pembaca dapat memasukkan
media instalasi pada saat Windows XP membutuhkannya dan
instalasi akan berjalan dengan baik.
Catatan
Setelah IIS terpasang, komputer akan dapat berfungsi
sebagai sebuah Web Server. Ada kemungkinan terjadi
penurunan kinerja komputer karena adanya beban
tambahan untuk menjalankan Web Server. Pada Windows
XP atau Vista, terdapat juga keterbatasan dari jumlah
koneksi yang dapat dilayani.
LANGKAH 1
Pembaca dapat memilih berkas instalasi Visual C# Express
melalui berkas setup yang bersangkutan. Program instalasi
akan menyalin beberapa berkas instalasi yang dibutuhkan ke
dalam sebuah folder sementara. Setelah penyalinan selesai,
aplikasi setup akan ditampilkan dan hal tersebut yang
menandakan bahwa instalasi siap dimulai.
LANGKAH 2
Pada halaman Welcome to Setup, pembaca dapat
memberikan tanda centang () pada check box untuk
mengirimkan informasi user experience pada saat instalasi ke
Microsoft. Pilih Next untuk melanjutkan.
LANGKAH 3
Aplikasi instalasi akan menampilkan halaman License Terms,
pilih I have read and accept the licence terms, pilih Next untuk
melanjutkan.
LANGKAH 4
Halaman berikutnya berisi pilihan fitur program yang akan
diinstal. Pada bagian ini, penulis menyarankan agar pembaca
memasangkan semua fitur yang ada demi kelancaran dalam
mengembangkan program. Pilih Next untuk melanjutkan.
LANGKAH 5
Berikutnya akan ditampilkan folder tujuan instalasi. Secara
default, folder tujuan telah ditentukan oleh program. Pilih
lokasi yang sesuai dengan ruang disk yang tersisa kemudian
pilih Install.
LANGKAH 6
Proses instalasi akan berlangsung beberapa menit, kemudian
pilih Exit pada saat instalasi telah selesai dilaksanakan.
Berikutnya pembaca dapat melakukan pengecekan hasil
instalasi dengan membuka program Visual C# Express yang
bersangkutan.
LANGKAH 1
Sama halnya dengan instalasi Visual C# Express, pembaca
dapat memilih berkas setup instalasi yang bersangkutan, yang
dalam hal ini setup Visual Web Developer.
LANGKAH 2
Lakukan langkah-langkah yang identik dengan pemasangan
Visual C# Express, sehingga Visual Web Developer dapat
terpasang sebagaimana mestinya.
LANGKAH 3
Setelah terpasang, penulis sarankan untuk melakukan
pengecekan kelengkapan terhadap berbagai perangkat yang
terpasang. Pada bagian ini yakinkan bahwa fitur dan aplikasi-
aplikasi berikut telah terpasang.
LANGKAH 1
Buka media instalasi Visual Studio kemudian telusuri dengan
explorer ke folder \\VCExpress\WCU\SSE. Temukan berkas
SQLEXPR.EXE dan eksekusi untuk instalasi. Hal lain yang dapat
dilakukan adalah men-download versi terakhir dari SQL Server
Express 2005 yang dapat di-download di situs Microsoft.
LANGKAH 2
Demi kemudahan pengembangan, penulis sarankan untuk
memasang secara default. Setelah instalasi berhasil, pembaca
dapat melakukan pengecekan melalui menu Microsoft SQL
Server 2005 > Configuration Tools > SQL Server Configuration
Manager.
LANGKAH 3
Pada SQL Configuration Manager, pilih menu SQL Server 2005
Services > SQL Server (SQLEXPRESS) > pilih konteks menu dan
pilih Start. Yakinkan services yang bersangkutan dapat
berjalan dengan kondisi running.
LANGKAH 1
SQL Server Management Studio Express dapat di-download di
situs Microsoft. Berkas instalasi Management Studio Express
diberi nama SQLServer2005_SSMSEE.msi. Pilih berkas tersebut
dan biarkan instalasi akan berjalan seperti pada umumnya.
LANGKAH 2
Pembaca dapat mengakses SQL Server Management Studio
Express melalui Start Menu SQL Server Express 2005.
Penggunaannya akan dibahas lebih lanjut pada Bab 2.
Arsitektur Aplikasi
Aplikasi yang akan dikembangkan adalah aplikasi sederhana
untuk pengelolaan buku perpustakaan. Pengelolaan yang
dimaksud terbatas pada pengelolaan buku yang meliputi
pemasukan informasi buku, pembaruan informasi buku, dan
juga penghapusan informasi buku.
Aplikasi disusun dengan mengikuti kaidah arsitektur tiga
lapis atau yang lebih dikenal dengan three tier. Arsitektur
three tier terbagi menjadi tiga bagian, yakni data tier yang
berupa basis data, business tier yang berupa pustaka atau
layanan yang terdiri dari berbagai fungsi yang mengonsumsi
Bab 2
Membuat Basis
Data
Basis data modern tidak hanya dilengkapi dengan
Table dan View, tetapi juga Stored Procedure. Bab
ini akan membahas pembuatan basis data aplikasi.
LANGKAH 1
Buka SQL Server Management Studio, hubungkan ke
database dengan memilih login dengan menggunakan
Windows Authentication. Ekspansi Object Explorer untuk
memperoleh bagian Database, lalu pada konteks menu pilih
New Database, kemudian isikan nama LibraryDB.
LANGKAH 2
Basis data akan tampil pada Object Explorer. Berikutnya buat
dua tabel dengan nama TBL_BUKU dan TBL_DAFTAR_ISI. Hal
USE [LibraryDB]
CREATE TABLE [dbo].[TBL_BUKU](
[ISBN] [char](10) COLLATE
SQL_Latin1_General_CP1_CI_AS NOT NULL,
[JUDUL] [varchar](100) COLLATE
SQL_Latin1_General_CP1_CI_AS NULL,
[PENGARANG] [varchar](100) COLLATE
SQL_Latin1_General_CP1_CI_AS NULL,
[PENERBIT] [varchar](100) COLLATE
SQL_Latin1_General_CP1_CI_AS NULL,
[TGL_PENERBITAN] [datetime] NULL,
CONSTRAINT [PK_TBL_BUKU] PRIMARY KEY CLUSTERED
(
[ISBN] ASC
)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON
[PRIMARY]
) ON [PRIMARY]
GO
USE [LibraryDB]
GO
ALTER TABLE [dbo].[TBL_DAFTAR_ISI] WITH CHECK ADD
CONSTRAINT [FK_TBL_DAFTAR_ISI_TBL_BUKU] FOREIGN
KEY([ISBN])
REFERENCES [dbo].[TBL_BUKU] ([ISBN])
GO
ALTER TABLE [dbo].[TBL_DAFTAR_ISI] CHECK CONSTRAINT
[FK_TBL_DAFTAR_ISI_TBL_BUKU]
LANGKAH 3
Pada SQL Server Management Studio, pembaca dapat pula
melakukan perubahan kolom dengan menggunakan
interface Object Explorer > Database > LibraryDB > Tables >
Nama Tabel > Modify.
Pembaca dapat mengubah nama kolom, tipe data, dan juga
batasan seperti Primary Key dan Foreign Key. Hal ini
sebaiknya dilakukan sebelum data dimasukkan.
LANGKAH 4
Pada SQL Server Management Studio, pembaca juga dapat
melakukan pemasukan data. Yaitu, dengan menggunakan
interface Object Explorer > Database > LibraryDB > Tables >
Nama Tabel > Open Table.
Stored Procedure
Stored Procedure didefinisikan sebagai satu atau lebih
pernyataan T-SQL yang disimpan dalam basis data yang
bersangkutan. Stored Procedure dapat dieksekusi melalui kode
klien, Stored Procedure yang lain, atau bahkan melalui Trigger.
Stored Procedure dapat disimpan dalam tiap basis data.
Pada SQL Server, terdapat pula Stored Procedure system yang
dapat dieksekusi oleh tiap-tiap basis data. Stored procedure
tersebut disebut Global Stored Procedure.
Stored Procedure memiliki dukungan sintaksis yang cukup
kaya. Sebagai contoh, pengguna dapat menggunakan
pernyataan TRY.CATCH, pernyataan transaksi, dan tentu
pernyataan T-SQL.
Penggunaan Stored Procedure sebenarnya memiliki
kesamaan dengan perintah T-SQL pada umumnya. Berikut
adalah beberapa alasan mengapa Stored Procedure dapat
menjadi pilihan pendekatan mekanisme pembacaan basis
data.
Konsumsi bandwidth komunikasi yang lebih rendah,
penggunaan T-SQL pada umumnya disimpan dan dieksekusi
pada sisi klien. Klien akan mengirimkan T-SQL tersebut ke
server. Hal ini tidak terjadi bila menggunakan Stored
Procedure. Hal yang dilakukan pada klien hanyalah
memanggil Stored Procedure yang mungkin hanya berupa
kalimat EXECUTE nama_storedprocedure, dengan demikian
tentu dapat dikatakan menghemat lalu-lintas bandwidth.
LANGKAH 1
Buka SQL Server Management Studio, hubungkan ke
database dengan memilih login dengan menggunakan
Windows Authentication. Ekspansi Object Explorer untuk
memperoleh bagian Database > ekspansi bagian Database >
pilih LibraryDB > lakukan ekspansi bagian LibraryDB > pilih
dan ekspansi Programmability > pilih Stored Procedures >
kemudian pada konteks menu pilih New Stored Procedures.
SQL Server Management studio akan membuat template
Stored Procedures yang memudahkan Anda untuk melakukan
pemograman Stored Procedures.
LANGKAH 2
Jendela Query dapat diisi dengan pernyataan T-SQL yang
sesuai dengan kadiah pemograman T-SQL. Pertama-tama buat
Stored Procedures untuk insert pada tabel TBL_BUKU sebagai
berikut.
LANGKAH 3
Berdasarkan contoh langkah-langkah sebelumnya, lakukan
pembuatan Stored Procedures untuk update TBL_BUKU dan
TBL_DAFTAR_ISI sebagai berikut:
LANGKAH 4
Berdasar langkah-langkah sebelumnya, lakukan pembuatan
Bab 3
Mengenal LINQ
LINQ adalah fitur baru pengaksesan data di .NET
Framework 3.5 yang memudahkan query ke semua
tipe data (Objek, XML, basis data, dan lain-lain).
Arsitektur LINQ
LINQ adalah fitur baru dalam bahasa pemrograman di .NET
Framework. Pernyataan LINQ dituliskan menggunakan
sintaksis bahasa pemograman dengan notasi yang mirip
dengan pengaksesan a la koleksi objek menggunakan class
collection
Arsitektur LINQ.
LANGKAH 1
Buka Visual C# Developer kemudian buat sebuah proyek
dengan nama FileInfos dan dengan jenis proyek berupa
Console Applications.
LANGKAH 2
Visual C# akan membuatkan sebuah class utama yang
digunakan sebagai entry point dari sebuah program console
yang diberi nama dengan Program.cs.
Buka program.cs dan tambahkan sebuah Method untuk
melakukan pencarian berkas. Method yang dibuat akan
mengembalikan hasil berupa IEnumerable<T>, penggunaan
class IEnumerable<T> bukan tanpa alasan, tetapi lebih
menekankan kebutuhan LINQ yang banyak memanfaatkan
jenis class demikian. Berikut adalah kode untuk pembacaan
berkas dengan nama method GetFiles:
LANGKAH 3
Pada berkas yang sama, tambahkan kode pada bagian
Method Main. Pada langkah ini, tambahkan sebuah variabel
dan juga lakukan pemanggilan Method GetFiles pada langkah
dua di atas.
LANGKAH 4
Pada tubuh Method Main tambahkan beberapa pernyataan
LINQ yang menganfung makna:
Pencarian berkas dengan ukuran terkecil.
Pencarian berkas dengan ukuran terbesar.
Pencarian berkas-berkas yang berukuran 10 terbesar.
minFile.Length)
select file).Single();
//get file with max length
var queryMinFile = (from file in fileList
where file.Length == (from maxFile in fileList
select maxFile).Max(maxFile => maxFile.Length)
select file).Single();
//get top 10 largest files
var top10LargeFile = (from file in fileList
orderby file.Length descending
select file).Take(10);
LANGKAH 5
Dari setiap hasil yang ada, kemudian ditampilkan dalam
bentuk tampilan Console melalui bantuan class Console.
Berikut adalah kode untuk menampilkan hasil dari
pernyataan berikut:
queryMaxFile.Length);
Console.WriteLine("\nSmallest File on folder {0}
\nName : {1}\nFull Name : {2}\nLength : {3}",
searchFolder, queryMinFile.Name,
queryMinFile.FullName, queryMinFile.Length);
Console.WriteLine("\nTop 10 Largest files on folder
{0}\n", searchFolder);
int i = 0;
foreach(var files in top10LargeFile)
Console.WriteLine("{0}. Name :
{1},Length : {2}\n", ++i,files.Name, files.Length);
Console.ReadLine();
LANGKAH 6
Pada langkah ini, aplikasi yang telah dikembangkan akan
diuji. Yang akan dilakukan kali pertama adalah kompilasi
aplikasi sehingga tidak terdapat kesalahan. Hal ini dapat
dilakukan dengan menggunakan tombol F6 atau memilih
menu Build > Build Solution.
Hal yang menarik pada aplikasi ini adalah dibutuhkan
masukan berupa argumen Method Main. Argumen tersebut
dapat diset pada saat program dieksekusi sebagai contoh:
> Debug > Start Options > kemudian isikan pada command
line arguments dengan isian berupa folder direktori yang
terdapat pada komputer pembaca sebagai contoh F:\My
Videos\Cars .
LANGKAH 7
Setelah melakukan pengisian command line, pembaca dapat
mengeksekusi aplikasi dengan menggunakan tombol F5 atau
memilih menu Debug > Start Debugging. Bila direktori yang
dimasukkan terdapat pada sistem komputer yang
bersangkutan maka akan tampil gambar seperti berikut:
Bab 4
LINQ to SQL
Bab ini menjelaskan pembuatan business tier
aplikasi pengelolaan buku menggunakan fitur
LINQ to SQL dalam .NET Framework 3.5.
LINQ to SQL
Arsitektur LINQ telah dijelaskan dalam Bab 3. Berdasar pada
arsitektur LINQ dan arsitektur aplikasi yang akan
dikembangkan, penggunaan pustaka LINQ to SQL untuk
business tier aplikasi pengelolaan buku adalah pendekatan
yang dipilih.
LINQ to SQL mengimplementasikan IQueryable<T>, yaitu
sebuah class interface yang secara sederhana mengubah
ekspresi LINQ to SQL menjadi pernyataan SQL. Hasilnya
kemudian disimpan menggunakan permodelan ORM atau
dengan kata lain tersimpan di dalam memory komputer. Pada
sisi Runtime, LINQ to SQL mampu melakukan penelusuran
perubahan data yang sedang berada dalam memory,
sehingga apabila terjadi perubahan data, akan dikirim
notifikasi yang memungkinkan pengembang untuk
melakukan penyimpanan ke data yang bersangkutan.
Penggunaan LINQ to SQL tidak terlalu kompleks.
Pengembang dapat mengembangkan suatu aplikasi dengan
dukungan LINQ to SQL dengan empat langkah mudah, yakni:
1. Membuat class yang akan memetakan database yang
bersangkutan.
LANGKAH 1
Buka Visual C# Express 2008, kemudian buat sebuah project
class library dengan car, File > New Project > ClassLibrary >
beri nama proyek dengan nama LibraryDAL.
LANGKAH 2
Pada Solution Explorer, ganti nama berkas Class1.cs menjadi
DAL.cs. Visual C# akan mengonfirmasi perubahan nama
berkas dan juga perubahan nama class.
LANGKAH 3
Buka database explorer melalui menu View > Others
Windows > Database Explorer. Koneksikan dengan memilih
konteks menu Add Connections. Visual C# Express akan
menampilkan dialog peimilihan provider. Pilih Microsoft SQL
Server Database file.
LANGKAH 4
Tambahkan koneksi basis data dengan menelusuri berkas
basis data. Dalam hal ini berkas basis data dinamakan dengan
nama LibraryDB.mdf. Pilih Windows Authentication untuk
memudahkan autentifikasi akses basis data.
LANGKAH 5
Pada Solution Explorer tambahkan berkas LINQ to SQL Classes.
Berkas ini berisi template pemetaan basis data ke class. Berkas
dengan ekstensi .dbml (Database Markup Language) ini tidak
hanya memetakan secara otomatis, tetapi juga
memungkinkan desain Drag and Drop untuk pembuatannya.
LANGKAH 6
Lakukan Drag and Drop dari Database Explorer ke interface
berkas .dbml. Letakkan tabel-tabel pada bagian kiri dan
letakkan semua Stored Procedure ke bagian Methods.
LANGKAH 7
Pilih ruang kosong di bagian kiri dan tekan F4 untuk
menampilkan jendela Properties DataContext. Lakukan
perubahan Serialization Mode dengan mengeset nilainya
menjadi unidirectional.
LANGKAH 8
Pada dasarnya, setiap tabel pada dbml memiliki perilaku
untuk update, insert, dan delete. Secara default, dbml
menggunakan kode yang terbentuk berdasar pada keadaan
table, tetapi pada kesempatan ini digunakan pemetaan
dengan Stored Procedures. Hal ini dapat dilakukan dengan
memilih tabel pada layar desain dbml > pilih
configure.behaviour > dialog akan tampil > pilih behaviours
yang akan dipetakan sebagai contoh behaviours insert pada
peta buku dipetakan dengan stored procedures insert .>
kemudian pada setiap field petakan kolom masukan yang
sesuai dengan class yang dimiliki oleh class LINQ.
LANGKAH 9
LINQ runtime secara otomatis melakukan pengecekan
terhadap data yang ada di memory dan data yang terdapat
pada basis data. Pada class library ini mekanisme pengecekan
dinonaktifkan untuk menyederhanakan pengembangan. Hal
ini dapat dilakukan dengan memilih properties pada tiap-tiap
kolom dan mengubah properties update check menjadi false.
Berdasar pada informasi tersebut, ubah setiap properties
update check tiap-tiap kolom ke false melalui akses menu
dengan beberapa berikut:
1. Pada desain dbml, pilih tabel yang bersangkutan.
2. Pada tabel yang bersangkutan pilih sebuah kolom.
3. Ubah properties update check hingga bernilai false.
LANGKAH 10
Buka berkas DAL.cs dan tambahkan kode konstruktor sebagai
berikut:
Catatan
App.Config adalah berkas XML yang menyimpan nilai-nilai
konfigurasi seperti ConnectionString. Nilai konfigurasi ini
dapat diset melalui properti projek (pilih Properties pada
kontek menu Project di Solution Explorer), ataupun diset
secara manual dengan cara membuka berkas app.config
yang bersangkutan.
LANGKAH 11
Pada berkas DAL.cs tambahkan dua buah Method yang
melakukan pengaksesan LINQ Query. Satu Method untuk
mengambil nilai suatu buku dan Method lainnya untuk
mengambil semua buku yang terdapat di dalam basis data.
LANGKAH 11
Pada berkas DAL.cs tambahkan beberapa Method untuk
melakukan operasi pemasukan, pengubahan, dan
penghapusan data pada tabel TBL_BUKU. Semua operasi ini
menggunakan pernyataan LINQ yang menggunakan pustaka
LINQ to SQL menggunakan pendekatan koleksi objek.
libDC.SubmitChanges();
}
public void UpdateBuku(Buku buku)
{
libDC.Bukus.Attach(buku, true);
libDC.SubmitChanges();
}
public void DeleteBuku(Buku buku)
{
libDC.Bukus.Attach(buku, false);
libDC.Bukus.DeleteOnSubmit(buku);
libDC.SubmitChanges();
}
LANGKAH 12
Pada berkas DAL.cs tambahkan beberapa Method untuk
melakukan operasi pengambilan data daftar isi dalam sebuah
buku dan daftar isi untuk seluruh buku, contohnya seperti
berikut:
LANGKAH 13
Pada berkas DAL.cs tambahkan beberapa Method untuk
melakukan operasi pemasukan, pengubahan, dan
penghapusan data. Semua operasi ini menggunakan
LANGKAH 14
Setelah melakukan pengetikan kode, pembaca dapat
melakukan kompilasi dengan memilih Build > Build Solution.
Yakinkan tidak ada kesalahan ketik karena C# bersifat case
sensitive.
Bab 5
Membuat WCF
Services
Pada bab ini akan dikembangkan WCF Services
aplikasi pengelolaan buku menggunakan Windows
Communication Foundation (WCF).
LANGKAH 2
Buka Visual Web Developer 2008, kemudian buat sebuah
website WCF Service dengan cara memilih File > New Web
Site > WCF Service > pilih HTTP sebagai lokasinya dan beri
alamat Virtual Directory URL http://localhost/LibraryService.
LANGKAH 3
Pada Solution Explorer, hapus class IService.cs dan Service.cs di
dalam folder App_Code. Kemudian tambahkan dua buah
kelas dengan nama ILibraryService.cs dan LibraryService.cs.
LANGKAH 4
Tambahkan reference ke class library LibraryDAL yang telah
dibuat pada Bab 4. Caranya klik kanan pada project kemudian
pilih Add Reference, pada jendela yang muncul pilih tab
LANGKAH 5
Buka berkas ILibraryService.cs dan lakukan perubahan kode
untuk pembuatan interface dari WCF Service sebagai berikut:
using LibraryDAL;
namespace LibraryService.ServiceContract
{
[ServiceContract]
public interface IlibraryService
{
[OperationContract]
Buku[] GetDataSemuaBuku();
[OperationContract]
void TambahBukuBaru(Buku bukuBaru);
[OperationContract]
void UpdateBuku(Buku buku);
[OperationContract]
void HapusBuku(Buku buku);
[OperationContract]
DaftarISI[] GetDataSemuaDaftarISI();
[OperationContract]
DaftarISI[] GetDaftarIsiBerdasarkanBuku(Buku
buku);
[OperationContract]
void TambahDaftarIsiBaru(DaftarISI
daftarIsiBaru);
[OperationContract]
void UpdateDaftarIsi(DaftarISI daftarIsi);
[OperationContract]
void HapusDaftarIsi(DaftarISI daftarIsi);
}
}
LANGKAH 6
Buka berkas LibraryService.cs dan lakukan perubahan kode
sebagai berikut:
using LibraryDAL;
using LibraryService.ServiceContract;
namespace LibraryService.ServiceImplementation
{
public class LibraryService : IlibraryService
{
private DAL dalObject = new
DAL(System.Web.Configuration.WebConfigurationManager.C
onnectionStrings["ConStr"].ConnectionString);
{
dalObject.InsertBukuBaru(bukuBaru);
}
public DaftarISI[]
GetDaftarIsiBerdasarkanBuku(Buku buku)
{
return
dalObject.GetAllDaftarISI(buku).ToArray();
}
dalObject.DeleteDaftarISI(daftarIsi);
}
#endregion
}
}
Catatan
Web.config adalah berkas XML yang menyimpan nilai-nilai
konfigurasi seperti Compilation, httphandlers,
ConnectionString, dan lain-lain. Nilai konfigurasi ini dapat
diset secara manual dengan cara membuka berkas
Web.config yang bersangkutan atau dengan menggunakan
bantuan tools seperti Microsoft Service Configuration
Editor (SvcConfigEditor.exe).
LANGKAH 7
Buka berkas service.svc dan lakukan perubahan pada kode
agar sesuai dengan nama interface dan kelas yang telah
dibuat pada langkah sebelumnya.
LANGKAH 8
Buka berkas Web.config dan pertama lakukan perubahan
pada bagian <connectionStrings/> sebagai berikut:
<connectionStrings>
<add name="ConStr" connectionString="Data
Source=red-dragon\sqlexpress;Initial
Catalog=LibraryDB;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
<system.serviceModel>
<services>
<service
name="LibraryService.ServiceImplementation.Libra
ryService" behaviorConfiguration="ServiceBehavior">
<!-- Service Endpoints -->
<endpoint address=""
binding="wsHttpBinding"
contract="LibraryService.ServiceContract.ILibrar
yService">
LANGKAH 9
Setelah melakukan pengodean, pembaca dapat melakukan
kompilasi web service dengan memilih menu Build > Build
Web Site. Yakinkan tidak terjadi kesalahan saat mengetikkan
kode.
Hasil dari proyek yang dibuat adalah suatu WCF Service
yang dipublikasikan dengan protokol HTTP/Web yang telah
menyediakan beberapa operasi seperti yang telah dibuat.
http://localhost/LibraryService/Service.svc.
Bab 6
Web Forms Klien
Pada bab ini akan dikembangkan aplikasi web klien
dengan ASP.NET 3.5 yang mengonsumsi layanan
WCF Service yang telah dibuat.
ASP.NET 3.5
ASP.NET dapat didefinisikan sebagai framework yang didesain
untuk mengembangkan aplikasi berbasis HTTP/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 (IIS).
ASP.NET adalah framework teknologi yang secara langsung
berkait dengan bahasa pemograman berorientasi objek
(seperti C++, C#, dan VB.NET), framework pengembangan
terkelola berbasis komponen (.NET), dan IDE yang
meningkatkan produktivitas pengembangan (seperti Visual
Web Developer).
Sebagai sebuah framework yang kini telah mencapai versi
3.5 berbagai perbaikan telah diupayakan dan diwujudkan.
Mulai dari aspek perkembangan bahasa pemrograman,
kontrol interface yang beragam, hingga produktivitas
pengembang dengan LINQ dan tingkat responsif interface
halaman web dengan AJAX.
Berikut adalah pengembangan utama pada ASP.NET 3.5:
Tipe data baru, kontrol server, serta pustaka script client
LANGKAH 1
Buka Visual Web Developer 2008, pilih File > New Web Site >
ASP.NET Web Application, kemudian berikan nama aplikasi
web dengan nama LibraryWebApp dengan lokasi
penyimpanan pada filesystem.
LANGKAH 2
Tambahkan referensi ke layanan WCF Service yang telah
dibuat pada bab sebelumnya, yakni dengan memilih nama
proyek (LibraryWindowsApp) > konteks menu > pilih Add
Service Reference.
LANGKAH 3
Referensi WCF Service akan ditampilkan pada folder khusus
dengan nama App_WebReference. Berikutnya akan
ditambahkan interface yang mendukung AJAX, untuk itu
buka berkas default.aspx dan tambahkan sebuah kontrol
ScriptManager dan UpdatePanel.
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1"
runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<%--di isi untuk langkah 4--%>
</asp:UpdatePanel>
</form>
</body>
LANGKAH 4
Aplikasi web yang dibuat akan memanfaatkan kontrol
MultiVew untuk menampilkan dua interface dalam satu
halaman. Sama halnya dengan AJAX, hal ini bertujuan agar
user experience pengguna menjadi lebih baik. Tambahkan
kode berikut pada bagian di antara kontrol UpdatePanel.
</asp:View>
<asp:View ID="DaftarIsi" runat="server">
<%--di isi untuk langkah 8--%>
</asp:View>
</asp:MultiView>
</ContentTemplate>
LANGKAH 5
Penggunaan MultiView alangkah baiknya konsisten dari sisi
tampilan. Sebagai upaya mempertahankan konsistensi
antartabel, akan ditambahkan sebuah inline CSS yang
diletakkan pada bagian kepala (<head>) pada tubuh aspx
sebagai berikut:
LANGKAH 6
Pengelolaan data akan lebih mudah menggunakan suatu
kontrol yang berbentuk tabel. Berdasarkan kondisi tersebut
tambahkan sebuah GridView sebagai berikut. Perhatikan
lokasi penempatan kode ini pada langkah 4.
<table class="style1">
<tr>
<td class="style3" colspan="2">
<asp:GridView ID="gvBuku" runat="server"
AutoGenerateColumns="False"
onrowediting="gvBuku_RowEditing" style="text-align:
left" onrowdeleting="gvBuku_RowDeleting"
onselectedindexchanged="gvBuku_SelectedIndexChanged">
<Columns>
<asp:BoundField DataField="ISBN" HeaderText="ISBN" />
<asp:BoundField DataField="JUDUL" HeaderText="Judul"
/>
<asp:BoundField DataField="PENGARANG"
HeaderText="Pengarang" />
<asp:BoundField DataField="PENERBIT"
HeaderText="Penerbit" />
<asp:BoundField DataField="TGL_PENERBITAN"
HeaderText="Tanggal Terbit" />
<asp:CommandField ButtonType="Button"
InsertVisible="False"
ShowCancelButton="False" ShowEditButton="True" />
<asp:CommandField ButtonType="Button"
InsertVisible="False"
ShowCancelButton="False" ShowDeleteButton="True" />
<asp:CommandField ButtonType="Button"
InsertVisible="False"
SelectText="Daftar ISI" ShowCancelButton="False"
ShowSelectButton="True" />
</Columns>
</asp:GridView>
</td>
</tr>
<tr>
<td class="style4">
</td>
<td>
</td>
</tr>
<tr>
<%--di isi untuk langkah 7--%>
Catatan
Selain menggunakan trik pengodean, pengguna juga dapat
menggunakan mekanisme pembuatan kontrol di atas
dengan menggunakan interface desain ASP.NET untuk
mendesain dan mengonfigurasi DatGRidView. Namun
demikian, karena langkah-langkah yang dilakukan cukup
signifikan dari sisi penulisan dan gambar dibanding
menggunakan kode, maka penulis memutuskan
menggunakan kode dalam pengembangan aplikasi web ini.
Silakan mengacu pada MSDN untuk konfigurasi
DataGridView dengan interface desain.
LANGKAH 7
Langkah 6 bertujuan untuk menampilkan data secara tabular,
pada saat pengguna hendak mengubah data maka
dibutuhkan tampilan editor yang berisi borang perubahan
data. Untuk tujuan tersebut, maka ditambahkan beberapa
kontrol interface sebagai berikut:
<td class="style4">
<asp:Label ID="Label1" runat="server"
Text="ISBN"></asp:Label>
</td><td>
<asp:TextBox ID="textISBN" runat="server"
MaxLength="10" ReadOnly="True"></asp:TextBox>
</td></tr>
<tr><td class="style4">
<asp:Label ID="Label5" runat="server" Text="Judul
Buku"></asp:Label>
</td><td>
<asp:TextBox ID="textJudul" runat="server"
Height="75px" TextMode="MultiLine"
Width="680px"></asp:TextBox>
</td></tr>
<tr><td class="style4">
LANGKAH 8
Sama halnya dengan tampilan interface buku, tampilan
interface daftar isi juga didesain sedemikian rupa agar
konsisten dengan tampilan sebelumnya. Berikut adalah kode
yang digunakan untuk menampilkan interface yang identik
dari sisi tampilan, namun berbeda dari sisi pengikatan data.
<table class="style1">
<tr><td colspan="2">
<asp:GridView ID="gvDaftarIsi" runat="server"
AutoGenerateColumns="False"
onrowdeleting="gvDaftarIsi_RowDeleting"
onrowediting="gvDaftarIsi_RowEditing">
<Columns>
<asp:BoundField DataField="ID_DAFTARISI"
HeaderText="ID" />
<asp:BoundField DataField="ISBN" HeaderText="ISBN" />
<asp:BoundField DataField="ISI" HeaderText="Isi" />
<asp:BoundField DataField="HALAMAN"
HeaderText="Halaman" />
<asp:CommandField ButtonType="Button"
InsertVisible="False"
LANGKAH 9
Perubahan data juga dilakukan dengan menggunakan
borang sebagai berikut. Hal yang membedakan terletak pada
data yang ditampilkan, yakni ISBN, daftar isi dan halaman.
Lanjutkan pengodeannya sebagai berikut:
<tr><td class="style5">
</td><td>
<asp:Label ID="lblIDDaftarIsi" runat="server"
Text="Label" Visible=false></asp:Label>
</td></tr>
<tr><td class="style5">
<asp:Label ID="Label6" runat="server"
Text="ISBN"></asp:Label>
</td><td>
<asp:Label ID="lblISBN" runat="server"
Text="Label"></asp:Label>
</td></tr><tr>
<td class="style5">
<asp:Label ID="Label7" runat="server"
Text="Isi"></asp:Label>
</td><td>
<asp:TextBox ID="textIsi" runat="server"
Height="111px" TextMode="MultiLine"
Width="699px"></asp:TextBox>
</td></tr>
<tr><td class="style5">
<asp:Label ID="Label8" runat="server"
Text="Halaman"></asp:Label>
</td><td>
<asp:TextBox ID="textHalaman" runat="server"
Width="61px"></asp:TextBox>
</td></tr>
<tr><td class="style5"> </td>
<td>
<asp:Button ID="btnSimpanDaftarISI" runat="server"
Text="Simpan" onclick="btnSimpanDaftarISI_Click" />
<asp:Button ID="btnBack" runat="server"
onclick="btnBack_Click" Text="Back" />
</td></tr>
</table>
LANGKAH 10
Berikutnya yang dilakukan adalah melakukan pengodean.
Pengodean diawali dengan melakukan pembacaan buku pada
saat aplikasi web kali pertama dibuka.
LANGKAH 11
Pada saat terjadi perubahan nilai pada DataGridView, baik
berupa pembaruan data atau penghapusan data, maka event
LANGKAH 12
Berikutnya dilakukan mekanisme penyimpanan apabila
terjadi perubahan atau peghapusan data pada buku.
TGL_PENERBITAN = calTglPenerbitan.SelectedDate };
proxyObject.UpdateBuku(upBuku);
LoadBuku();
ClearPage();
}
}
LANGKAH 13
Langkah berikutnya adalah mengikuti dan mengodekan alur
yang mirip dengan data buku, tetapi menangani data yang
berbeda, yakni data daftar isi. Pada langkah ini penulis beri
kesempatan bagi pembaca untuk turut memikirkan
pengodean pada bagian tabel daftar isi. Sebuah petunjuk
adalah langkah pengodeannya sangat mirip. Dan bila
pembaca mengalami kesulitan, silakan mengacu pada kode
dalam CD buku.
LANGKAH 14
Build dan ujicobakan aplikasi web ini. Yakinkan tidak
terdapat kesalahan pengetikan kode. Aplikasi web yang
dihasilkan untuk kesederhanaan pengembangan tidak
menyertakan fitur memasukkan data. Fitur ini akan
diimplementasikan pada klien desktop pada Bab 7.
Bab 7
Windows Form
Klien
Pada bab ini akan dikembangkan aplikasi desktop
klien dengan teknologi Windows Form yang
mengonsumsi layanan WCF Service.
LANGKAH 1
Buka visual C# Express 2008, kemudian buat sebuah proyek
dengan bentuk Windows Form, namakan
LibraryWindowsApp.
LANGKAH 2
Tambahkan referensi ke layanan WCF yang telah dibuat pada
bab sebelumnya, yakni dengan memilih nama proyek
(LibraryWindowsApp) > konteks menu > pilih Add Service
Reference.
Pada dialog masukkan alamat url tempat layanan WCF
tersebut di host, dalam hal ini http://localhost/LibraryService/
Service.svc. Pilih tombol Go >, maka akan tampil
LANGKAH 3
Referensi akan tampil sebagai icon yang menunjukkan bahwa
aplikasi klien yang dimiliki telah memiliki referensi ke layanan
WCF yang telah dikonfigurasikan. Tambahkan beberapa
kontrol interface sesuai dengan tabel berikut:
LANGKAH 4
Halaman Buku pada Tab pertama ditujukan untuk mekanisme
penyimpanan buku ke basis data melalui WCF Service. Pada
halaman tab berikutnya akan dirancang interface untuk
mekanisme penyimpanan daftar isi buku. Berikut adalah
kontrol-kontrol dan rancangan interface:
LANGKAH 5
Berikutnya buka kode pada Form1.cs dengan menggunakan
dengan memilihmenu View > Code. Pada baris setelah
deklarasi class tambahkan sebuah instansi objek untuk class
LibraryServiceClient. Sebagai berikut:
namespace LibraryWindowsApp
{
public partial class Form1 : Form
{
LibraryServiceClient clientProxyObj = new
LibraryServiceClient();
.. kode lain
LANGKAH 6
Aplikasi perlu melakukan pengikatan data pada saat aplikasi
kali pertama dibuka. Dan untuk melakukannya, tambahkan
sebuah method yang melakukan pembacaan buku dan
pembacaan nilai ISBN yang kemudian diikat pada kontrol
yang bersangkutan seperti pada kode berikut ini:
LANGKAH 7
Lakukan pemanggilan dua method di atas pada saat aplikasi
kali pertama di-load (di tubuh konstruktor) dan pada saat
halaman tab berubah (selectedindex) seperti tampak pada
kode berikut.
Penambahan event SelectedIndexChanged pada tabControl
dapat dilakukan dengan memilih kontrol TabControl
kemudian memilih properties > memilih events (simbol
bertanda petir) > dan pilih SelectedIndexChanged dengan
melakukan klik ganda pada kolom yang bersangkutan.
public Form1()
{
InitializeComponent();
LoadDataBuku();
}
private void
tabControl1_SelectedIndexChanged(object sender,
EventArgs e)
{
if (tabControl1.SelectedIndex == 0)
LoadDataBuku();
else
LoadISBN();
}
LANGKAH 8
Pada proyek ubah tampilan dari kode menjadi tampilan
desain aplikasi (dapat dilakukan dengan menggunakan
tombol Shift+F7). Pada desain pilih tombol btnSave dan klik
ganda untuk menampilkan kode event handler Click yang
akan dieksekusi pada saat tombol di klik. Tambahkan kode
berikut:
LANGKAH 9
Pembaca dapat mengujicobakan aplikasi dengan memilih
kompilasi Build (F6). Kemudian melakukan debugging dengan
menggunakan tombol F5. Lakukan percobaan pemasukan
data dan cek ke basis data menggunakan SQL Management
Studio apakah data tersebut telah berhasil masuk.
LANGKAH 10
Setelah melakukan debugging, pembaca dapat kembali ke
tampilan desain interface pada Visual C#. Pilih tabel halaman
dua yang merupakan halaman pengelolaan daftar isi. Pilih
kontrol ComboBox, kemdian Klik dua kali. Visual C# akan
membangkitkan event yang terjadi pada saat nilai pilihan
pada ComboBox tersebut berubah melalui
SelectedIndexChanged.
e.ToString());
textIsi.Text = string.Empty;
nudHalaman.Value = nudHalaman.Minimum;
}
}
private void LoadDataDaftarISI(string isbn)
{
Buku searchBuku = new Buku { ISBN = isbn };
dgvDaftarIsi.DataSource =
clientProxyObj.GetDaftarIsiBerdasarkanBuku(searchBuku)
;
dgvDaftarIsi.Refresh();
}
LANGKAH 11
Berikutnya, untuk menyimpan data daftar isi dari sebuah
buku pengguna dapat melakukan pengesetan nilai dan
menyimpannya melalui event tombol klik btnSimpanIsi.
Penambahan event ini dapat dilakukan dengan cara memilih
tombol btnSimpanIsi kemudian mengkliknya dua kali.
LANGKAH 12
Lakukan kompilasi dengan memilih Build > Build Solution
(F6), kemudian lakukan debugging dan yakinkan aplikasi
dapat menyimpan data baik data buku maupun data daftar
isi.
LANGKAH 13
Hasil kompilasi aplikasi adalah berupa aplikasi .exe. Hal yang
menarik adalah aplikasi berekstensi executable ini dapat diset
berperilaku selayaknya Smart Client, walaupun tidak secara
keseluruhan. Aplikasi dapat dipublikasikan dengan
mekanisme instalasi menggunakan Web Server (ini disebut
ClickOnce deployment). Dengan ClickOnce, executable tidak
perlu diinstal manual ke setiap PC klien. Untuk mencoba
ClickOnce, ikut langkah-langkah berikut ini:
Developer Idol
Jika Anda berhasil mengikuti langkah demi langkah
pembuatan aplikasi perpustakaan buku dari Bab 1 sampai
7, berarti Anda siap menjadi kandidat .NET Developer Idol
2008. Yang perlu Anda lakukan selanjutnya adalah
mendaftar sebagai kandidat:
1. Buat screenshot aplikasi perpustakaan dari PC Anda.
2. Kirimkan ke developeridol2008@hotmail.com.
3. Subjek e-mail: Developer Idol 2008.
4. Berikan informasi nama lengkap dan alamat sesuai KTP.
Hormat kami,
Redaksi PC Media
Komunitas
Untuk membantu Anda dalam mengikuti kompetisi .NET
Developer Idol 2008, kami bekerja sama dengan beberapa
komunitas untuk menyediakan forum diskusi online khusus: