Anda di halaman 1dari 0

MEMBANGUN SENDIRI

APLIKASI PERPUSTAKAAN
dengan menggunakan
.NET Framework 3.5
C# Programming
SQL Server 2005 Express
!Cover Buku Visual Studio--1__TEST.indd 1 2/25/2008 1:22:14 PM
!Cover 2-4_Buku Visual Studio.indd 2 2/25/2008 8:49:47 AM
: Membangun Sendiri Aplikasi Perpustakaan 3
Chief Editor
Anton R. Pardede
Project Officer
Suherman
Editor
Renny Fitriastuti
Graphic Design & Layout
Lely Yulaena
Mardiana
Secretary
Evawani Utami Putri
Publishing
PT Dian Digital Media, Jakarta
Printing
PT Dian Rakyat, Jakarta
Editorial Address
Gedung Warta Lt.4
Jl. Kramat IV/11
Jakarta Pusat-10430
Telp. (021) 315-3731
Fax. (021) 315-3732
Circulation Address
Jl. Rawagirang No. 8
Kawasan Industri Pulogadung
Jakarta Timur-13930,
Telp. (021) 4682-6816,
7079-6499
Fax. (021) 4682-8919
Membangun Sendiri
Aplikasi
Perpustakaan
dengan Menggunakan .NET
Framework 3.5, C# Programming,
dan SQL Server 2005 Express
Majalah PC Media, 2008

Hak cipta dilindungi oleh undang-undang. Dilarang
memperbanyak sebagian atau seluruh isi buku ini
dalam bentuk apapun tanpa izin tertulis dari penerbit.
Merk Dagang
Seluruh merk dagang yang digunakan dalam buku
ini merupakan hak cipta dari pemegang merk
dagang masing-masing.
Peringatan dan Pernyataan
Segala daya upaya telah dikerahkan agar buku ini
dapat selengkap dan seakurat mungkin, walau
begitu tidak ada pernyataan apapun mengenai
kebenaran maupun kecocokannya. Segala
informasi di buku ini disediakan berdasarkan apa
adanya. Penulis dan penerbit dengan segala
hormat tidak bertanggung jawab pun tidak
memiliki pertanggungjawaban kepada apapun
atau siapapun akibat terjadinya kehilangan atau
kerusakan yang mungkin timbul yang berasal dari
informasi yang dikandung dalam buku ini.
!KDT + Indeks_grafis.pdf 1 !KDT + Indeks_grafis.pdf 1 2/25/2008 2:23:11 PM 2/25/2008 2:23:11 PM
Daftar Isi
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
Bab 2. Membuat Basis Data................................. 23
Struktur Basis Data............................................................. 23
Stored Procedure ............................................................... 28
Bab 3. Mengenal LINQ............................................ 35
Apa Itu LINQ?..................................................................... 35
Arsitektur LINQ................................................................... 35
Model Eksekusi LINQ.......................................................... 37
Aplikasi LINQ to Object...................................................... 38
Bab 4. LINQ to SQL..................................................... 45
LINQ to SQL......................................................................... 45
Pembuatan Class Library LINQ to SQL............................... 47
4 : Membangun Sendiri Aplikasi Perpustakaan
!KDT + Indeks_grafis.pdf 2 !KDT + Indeks_grafis.pdf 2 2/25/2008 2:23:11 PM 2/25/2008 2:23:11 PM
Bab 5. Membuat WCF Services.......................... 57
Windows Communication Foundation.............................. 57
Pembuatan WCF Services................................................... 59
Menyiapkan Application dalam IIS.................................... 59
Bab 6. Web Forms Klien......................................... 69
ASP.NET 3.5......................................................................... 69
Pengembangan Aplikasi Web Library............................... 70
Bab 7. Windows Form Klien................................ 83
Teknologi Windows Form.................................................. 83
Pengembangan Klien Windows........................................ 84
Kompetisi......................................................................... 95
Komunitas....................................................................... 97
: Membangun Sendiri Aplikasi Perpustakaan 5
!KDT + Indeks_grafis.pdf 3 !KDT + Indeks_grafis.pdf 3 2/25/2008 2:23:11 PM 2/25/2008 2:23:11 PM
!KDT + Indeks_grafis.pdf 4 !KDT + Indeks_grafis.pdf 4 2/25/2008 2:23:11 PM 2/25/2008 2:23:11 PM
PENGANTAR
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
: Membangun Sendiri Aplikasi Perpustakaan 7
!Pengantar_grafis.pdf 1 !Pengantar_grafis.pdf 1 2/25/2008 2:33:30 PM 2/25/2008 2:33:30 PM
!Pengantar_grafis.pdf 2 !Pengantar_grafis.pdf 2 2/25/2008 2:33:30 PM 2/25/2008 2:33:30 PM
PERSIAPAN
Bab 1
Persiapan
Pada bab ini akan dipersiapkan berbagai software
yang diperlukan dalam pengembangan aplikasi
perpustakaan dengan teknologi .NET 3.5
Software yang Dibutuhkan
Sebelum membangun aplikasi sederhana ini, perlu disiapkan
komputer dengan operating system Windows XP SP2 atau
Windows Vista dan beberapa software berikut:
Basis Data : SQL Server Express 2005 dan
SQL Server Management Studio Express
Web Server : Internet Information Services (IIS)
C# IDE : Visual C# Express 2008
ASP.NET IDE : Visual Web Developer Express 2008
Visual C# dan Visual Web Developer Express 2008 dapat
diperoleh di PC Media edisi 02/2008 atau di-download gratis
dari http://msdn.microsoft.com/express.
IIS di Windows Vista dan XP
Pada bagian ini dijelaskan langkah-langkah pemasangan
Internet Information Services sebagai Web Server yang akan
dijadikan bahan pembelajaran dalam buku ini.
: Membangun Sendiri Aplikasi Perpustakaan 9
Bab 1_grafis.pdf 1 Bab 1_grafis.pdf 1 2/25/2008 1:37:08 PM 2/25/2008 1:37:08 PM
PERSIAPAN
Menginstal IIS 7.0 pada Windows Vista
Konsep pemasangan IIS 7.0 pada Windows Vista dapat
dilakukan dengan dua cara, yakni melalui interface atau
melalui script.
Sebuah cara termudah dan yang paling disarankan adalah
menggunakan Control Panel untuk memasang IIS. Secara
default, Windows Vista memasang IIS dengan fitur minimalis.
Walaupun demikian, pengguna dapat memasang berbagai
fitur tambahan lainnya seperti Application Development
Features, Web Management Tools, dan sebagainya, dengan
memilih check box yang dapat dipilih pada dialog Windows
Features.
Windows Features pada Windows Vista.
Berikut adalah langkah-langkah yang dapat dilakukan
untuk melakukan pemasangan IIS 7.0 pada Windows Vista
dengan menggunakan pendekatan dialog Windows Features.
10 : Membangun Sendiri Aplikasi Perpustakaan
Bab 1_grafis.pdf 2 Bab 1_grafis.pdf 2 2/25/2008 1:37:08 PM 2/25/2008 1:37:08 PM
PERSIAPAN
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.
start /w pkgmgr /iu:IIS-WebServerRole;IIS-
;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-
DefaultDocument;IIS-DirectoryBrowsing;IIS-
HttpErrors;IIS-HttpRedirect;IIS-
ApplicationDevelopment;IIS-ASPNET;IIS-
NetFxExtensibility;IIS-ASP;IIS-CGI;IIS-
ISAPIExtensions;IIS-ISAPIFilter;IIS-
ServerSideIncludes;IIS-HealthAndDiagnostics;IIS-
HttpLogging;IIS-LoggingLibraries;IIS-
RequestMonitor;IIS-HttpTracing;IIS-CustomLogging;IIS-
ODBCLogging;IIS-Security;IIS-BasicAuthentication;IIS-
WindowsAuthentication;IIS-DigestAuthentication;IIS-
ClientCertificateMappingAuthentication;IIS-
IISCertificateMappingAuthentication;IIS-
: Membangun Sendiri Aplikasi Perpustakaan 11
Bab 1_grafis.pdf 3 Bab 1_grafis.pdf 3 2/25/2008 1:37:09 PM 2/25/2008 1:37:09 PM
PERSIAPAN
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
Pemasangan IIS pada Windows XP
Versi IIS untuk Windows XP adalah IIS 6.0 dan untuk
keperluan aplikasi ini, penggunaan IIS 6.0 juga diizinkan. Bila
pembaca menggunakan Windows XP, maka IIS dapat
dipasang dengan mengikuti langkah-langkah sebagai berikut:
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.
12 : Membangun Sendiri Aplikasi Perpustakaan
Bab 1_grafis.pdf 4 Bab 1_grafis.pdf 4 2/25/2008 1:37:09 PM 2/25/2008 1:37:09 PM
PERSIAPAN
Pilihan IIS pada Fitur Windows XP.
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.
: Membangun Sendiri Aplikasi Perpustakaan 13
Bab 1_grafis.pdf 5 Bab 1_grafis.pdf 5 2/25/2008 1:37:09 PM 2/25/2008 1:37:09 PM
PERSIAPAN
Visual C# Express 2008
Berikutnya penulis mengajak pembaca untuk memasang salah
satu IDE (Integrated Development Environment)
pemrograman C#. IDE ini akan bermanfaat pada saat
pengembangan aplikasi desktop dan juga class library yang
akan dilakukan pada bab berikutnya. Berikut adalah langkah-
langkah yang dapat dilakukan untuk memasang Visual C#
Express.
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.
14 : Membangun Sendiri Aplikasi Perpustakaan
Bab 1_grafis.pdf 6 Bab 1_grafis.pdf 6 2/25/2008 1:37:09 PM 2/25/2008 1:37:09 PM
PERSIAPAN
Instalasi Visual C# Express 2008.
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.
: Membangun Sendiri Aplikasi Perpustakaan 15
Bab 1_grafis.pdf 7 Bab 1_grafis.pdf 7 2/25/2008 1:37:09 PM 2/25/2008 1:37:09 PM
PERSIAPAN
Visual Web Developer Express 2008
Visual C# mendukung pengembangan aplikasi desktop,
sementara untuk pengembangan aplikasi web dan Web
Services dibutuhkan Visual Web Developer Express 2008.
Berikut adalah langkah-langkah instalasi Visual Web
Developer 2008:
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.
IIS 7.0 untuk Vista dan IIS 6.0 untuk XP.
Visual C# Express 2008.
Visual Web Developer Express 2008.
SQL Express 2005.
MSDN Express library.
16 : Membangun Sendiri Aplikasi Perpustakaan
Bab 1_grafis.pdf 8 Bab 1_grafis.pdf 8 2/25/2008 1:37:09 PM 2/25/2008 1:37:09 PM
PERSIAPAN
Proses instalasi Visual Web Developer.
Instalasi SQL Server Express 2005
SQL Server Express 2005 secara default terpasang pada saat
pembaca melakukan instalasi Visual Web Developer atau
Visual C# Express. Penulis sarankan untuk memasangnya pada
saat instalasi Visual C# dan VWD. Namun demikian, bila hal
tersebut terlewatkan ikuti langkah-langkah di bawah ini:
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.
: Membangun Sendiri Aplikasi Perpustakaan 17
Bab 1_grafis.pdf 9 Bab 1_grafis.pdf 9 2/25/2008 1:37:09 PM 2/25/2008 1:37:09 PM
PERSIAPAN
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.
SQL Configuration Manager.
Instalasi SQL Server Management Studio
Express
SQL Server Express tidak memiliki interface pengelolaan basis
data yang berupa GUI. Berdasarkan pada kebutuhan tersebut,
Microsoft merilis interface grafis pengelolaan SQL Server
dengan nama Management Studio Express. Berikut adalah
langkah-langkah yang dibutuhkan untuk memasangnya.
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.
18 : Membangun Sendiri Aplikasi Perpustakaan
Bab 1_grafis.pdf 10 Bab 1_grafis.pdf 10 2/25/2008 1:37:09 PM 2/25/2008 1:37:09 PM
PERSIAPAN
SQL Server Management Studio Express.
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
: Membangun Sendiri Aplikasi Perpustakaan 19
Bab 1_grafis.pdf 11 Bab 1_grafis.pdf 11 2/25/2008 1:37:09 PM 2/25/2008 1:37:09 PM
PERSIAPAN
data tier, dan bagian yang terakhir adalah presentation tier
yang berupa interface aplikasi yang mengonsumsi business
tier.
Arsitektur aplikasi pengelolaan buku.
Informasi buku disimpan dalam sebuah tier basis data SQL
Server yang terbagi menjadi dua tabel master-detail. Satu
tabel dirancang untuk informasi umum sebuah buku seperti
judul, nomor penerbitan (ISBN), pengarang, dan sebagainya.
Sementara tabel lainnya untuk informasi daftar isi detail dari
buku yang terdapat pada tabel master. Pembuatan basis data
ini akan dibahas lebih lanjut pada Bab 2.
Informasi yang tersimpan akan dikonsumsi melalui class
khusus yang dinamakan business logic class. Class ini akan
menangani berbagai operasi yang terjadi pada basis data
seperti pemasukan, pembaruan, dan penghapusan data buku.
Hal yang menarik pembuatan business logic class ini akan
menggunakan LINQ dan akan dipublikasikan sebagai sebagai
Web Services yang akan dibahas pada Bab 3, 4, dan 5.
20 : Membangun Sendiri Aplikasi Perpustakaan
Bab 1_grafis.pdf 12 Bab 1_grafis.pdf 12 2/25/2008 1:37:09 PM 2/25/2008 1:37:09 PM
PERSIAPAN
Banyak sekali manfaat model arsitektur berlapis dengan
Web Service sebagai interface. Web Services standar industri
yang menjamin interoperabilitas platform. Web Service
dengan IIS sebagai Web Application Server juga memiliki
tingkat skalabilitas yang tinggi. Manfaat lain penggunaan
web services adalah kebebasan dari sisi interface aplikasi.
Pada buku ini penulis mengembangkan dua aplikasi interface
sekaligus yang mengonsumsi lapis business tier yang
diimplementasikan sebagai Web Service. Pengembangan
interface web akan dibahas pada Bab 6, sementara
pengembangan berbasis dekstop akan dibahas pada Bab 7.
: Membangun Sendiri Aplikasi Perpustakaan 21
Bab 1_grafis.pdf 13 Bab 1_grafis.pdf 13 2/25/2008 1:37:09 PM 2/25/2008 1:37:09 PM
Bab 1_grafis.pdf 14 Bab 1_grafis.pdf 14 2/25/2008 1:37:09 PM 2/25/2008 1:37:09 PM
MEMBUAT BASIS DATA
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.
Struktur Basis Data
Basis data yang dibuat adalah basis data untuk aplikasi
perpustakaan. Basis data ini akan dinamakan dengan nama
LibraryDB yang terdiri atas dua tabel, yakni tabel buku dan
tabel daftar isi. Berikut ini langkah-langkah pembuatannya:
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
: Membangun Sendiri Aplikasi Perpustakaan 23
Bab 2_grafis.pdf 1 Bab 2_grafis.pdf 1 2/25/2008 1:37:26 PM 2/25/2008 1:37:26 PM
MEMBUAT BASIS DATA
ini dapat dilakukan dengan menggunakan konteks menu
pada Database > LibraryDB > Tables > New Table.
Tabel pertama (TBL_BUKU) terdiri atas kolom-kolom
berikut:
ISBN , char(10), Primary Key.
JUDUL , varchar(100).
PENGARANG, varchar(100).
PENERBIT, varchar(100).
TGL_PENERBIT, datetime.
Tabel kedua (TBL_DAFTAR_ISI) terdiri atas kolom-kolom
berikut:
ID_DAFTARISI, numeric(18,0), Primay Key.
ISBN, char(10).
ISI, varchar(100).
HALAMAN, tinyint.
Primary Key dapat dibuat dengan melakukan pemilihan
pada kolom yang bersangkutan > pilih konteks menu > pilih
Primary Key.
Selain menggunakan pendekatan visual, pembuatan tabel
juga dapat dilakukan dengan menggunakan kode T-SQL.
Berikut ini kode untuk pembuatan tabel TBL_BUKU:
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
24 : Membangun Sendiri Aplikasi Perpustakaan
Bab 2_grafis.pdf 2 Bab 2_grafis.pdf 2 2/25/2008 1:37:26 PM 2/25/2008 1:37:26 PM
MEMBUAT BASIS DATA
(
[ISBN] ASC
)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON
[PRIMARY]
) ON [PRIMARY]
GO
Sedangkan, T-SQL untuk pembuatan TBL_DAFTAR_ISI :
USE [LibraryDB]
CREATE TABLE [dbo].[TBL_DAFTAR_ISI](
[ID_DAFTARISI] [numeric](18, 0) IDENTITY(1,1)
NOT NULL,
[ISBN] [char](10) COLLATE
SQL_Latin1_General_CP1_CI_AS NULL,
[ISI] [varchar](100) COLLATE
SQL_Latin1_General_CP1_CI_AS NULL,
[HALAMAN] [tinyint] NULL,
CONSTRAINT [PK_TBL_DAFTAR_ISI] PRIMARY KEY CLUSTERED
(
[ID_DAFTARISI] ASC
)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON
[PRIMARY]
) ON [PRIMARY]
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]
Pembaca dapat melihat hasil pembuatan tabel melalui fitur
Diagram yang ada dalam SQL Server Management Studio.
: Membangun Sendiri Aplikasi Perpustakaan 25
Bab 2_grafis.pdf 3 Bab 2_grafis.pdf 3 2/25/2008 1:37:26 PM 2/25/2008 1:37:26 PM
MEMBUAT BASIS DATA
Diagram pada SQL Server Management Studio.
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.
26 : Membangun Sendiri Aplikasi Perpustakaan
Bab 2_grafis.pdf 4 Bab 2_grafis.pdf 4 2/25/2008 1:37:26 PM 2/25/2008 1:37:26 PM
MEMBUAT BASIS DATA
Pembaca dapat mengisi data dengan mengisi setiap baris
sesuai dengan kolom yang tampil pada interface dari SQL
Server Management Studio. Pada saat pengguna
memindahkan kursornya dari satu baris data ke data yang
lain, SQL Server Management Studio akan menyimpan secara
otomatis baris data tersebut sesuai dengan batasan nilai
setiap kolom.
Gambar pengisian data pada SQL Server Management Studio.
Pengisian juga dapat dilakukan dengan menggunakan T-
SQL Insert, namun menyarankan untuk memilih SQL Server
Management Studio untuk kemudahan. Lakukan
penambahan data dengan mengisi beberapa data, sebagai
contoh:
Pada Tabel Buku (TBL_BUKU)
ISBN : 1430202572.
Judul : LINQ for Visual C#.
Pengarang : Fabio Claudio.
Penerbit : APress.
Tanggal Penerbitan : 1-1-2006.
: Membangun Sendiri Aplikasi Perpustakaan 27
Bab 2_grafis.pdf 5 Bab 2_grafis.pdf 5 2/25/2008 1:37:26 PM 2/25/2008 1:37:26 PM
MEMBUAT BASIS DATA
Pada Tabel Daftar Isi (TBL_DAFTAR_ISI)
ISBN ISI HALAMAN
1430202572 LINQ to the Object 1
1430202572 LINQ to ADO.NET 63
1430202572 LINQ to XML 127
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.
28 : Membangun Sendiri Aplikasi Perpustakaan
Bab 2_grafis.pdf 6 Bab 2_grafis.pdf 6 2/25/2008 1:37:26 PM 2/25/2008 1:37:26 PM
MEMBUAT BASIS DATA
Performa yang lebih baik. Stored procedure disimpan di
Server. Eksekusi menjadi lebih cepat dan efisien
dibandingkan dengan mengirimkan pernyataan T-SQL
melalui aplikasi klien.
Keamanan yang lebih terjaga. Stored Procedure mencegah
terjadinya SQL Injection. SQL Injection adalah upaya
modifikasi pernyataan T-SQL melalui masukan interface
aplikasi klien yang diyakini dapat menipu dan merugikan.
Basis data LibraryDB akan menggunakan Stored Procedure
untuk melakukan operasi CRUD (Create, Update, dan Delete).
Pada implementasinya, operasi CRUD tersebut akan dieksekusi
menggunakan salah satu fitur terbaru .NET 3.5 yang akan
dibahas pada bab 4, yakni LINQ to SQL. Berikut adalah
langkah langkah membuat Stored Procedure:
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.
: Membangun Sendiri Aplikasi Perpustakaan 29
Bab 2_grafis.pdf 7 Bab 2_grafis.pdf 7 2/25/2008 1:37:26 PM 2/25/2008 1:37:26 PM
MEMBUAT BASIS DATA
Konteks menu Stored Procedures.
Selain menggunakan teknik yang disebutkan di atas, Stored
Procedures juga dapat ditulis dengan menggunakan jendela
Query. Untuk melakukan hal ini, pembaca cukup memilih
menu File > new > Query with Current Connection, atau
menggunakan kombinasi tombol Ctrl + N. Perbedaannya
kedua cara tersebut terletak pada ada tidaknya template
Stored Procedure.
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.
30 : Membangun Sendiri Aplikasi Perpustakaan
Bab 2_grafis.pdf 8 Bab 2_grafis.pdf 8 2/25/2008 1:37:26 PM 2/25/2008 1:37:26 PM
MEMBUAT BASIS DATA
CREATE PROCEDURE [dbo].[SP_INSERT_BUKU]
(
@pISBN char(10),
@pJudul varchar(100),
@pPengarang varchar(100),
@pPenerbit varchar(100),
@pTglPenerbitan datetime
)
AS
INSERT INTO TBL_BUKU
VALUES(@pISBN,@pJudul,@pPengarang,@pPenerbit,@pTglPene
rbitan);
RETURN
Salin pernyataan T-SQL di atas dan lakukan eksekusi
penyimpanan Stored Procedures tersebut dengan memilih
menu Query > Executes.
Eksekusi penyimpanan Stored Procedures.
Lakukan hal yang sama dapat dilakukan untuk operasi
Insert pada TBL_DAFTAR_ISI sebagai berikut:
CREATE PROCEDURE [dbo].[SP_INSERT_DAFTARISI]
(
@pISBN char(10),
@pIsi varchar(100),
@pHalaman tinyint
)
AS
: Membangun Sendiri Aplikasi Perpustakaan 31
Bab 2_grafis.pdf 9 Bab 2_grafis.pdf 9 2/25/2008 1:37:26 PM 2/25/2008 1:37:26 PM
MEMBUAT BASIS DATA
INSERT INTO TBL_DAFTAR_ISI(ISBN,ISI,HALAMAN)
VALUES(@pISBN,@pIsi,@pHalaman);
RETURN
LANGKAH 3
Berdasarkan contoh langkah-langkah sebelumnya, lakukan
pembuatan Stored Procedures untuk update TBL_BUKU dan
TBL_DAFTAR_ISI sebagai berikut:
CREATE PROCEDURE [dbo].[SP_UPDATE_BUKU
(
@pISBN char(10),
@pJudul varchar(100),
@pPengarang varchar(100),
@pPenerbit varchar(100),
@pTglPenerbitan datetime
)
AS
UPDATE TBL_BUKU SET JUDUL = @pJudul,PENGARANG =
@pPengarang,PENERBIT = @pPenerbit,TGL_PENERBITAN =
@pTglPenerbitan
WHERE ISBN = @pISBN;
RETURN
CREATE PROCEDURE [dbo].[SP_UPDATE_DAFTARISI]
(
@pID_DaftarISI numeric(18,0),
@pISBN char(10),
@pIsi varchar(100),
@pHalaman tinyint
)
AS
UPDATE TBL_DAFTAR_ISI SET ISI = @pIsi,HALAMAN =
@pHalaman,ISBN = @pISBN
WHERE ID_DAFTARISI = @pID_DaftarISI;
RETURN
LANGKAH 4
Berdasar langkah-langkah sebelumnya, lakukan pembuatan
32 : Membangun Sendiri Aplikasi Perpustakaan
Bab 2_grafis.pdf 10 Bab 2_grafis.pdf 10 2/25/2008 1:37:26 PM 2/25/2008 1:37:26 PM
MEMBUAT BASIS DATA
Stored Procedures untuk delete TBL_BUKU dan
TBL_DAFTAR_ISI sebagai berikut:
CREATE PROCEDURE [dbo].[SP_DELETE_DAFTARISI]
(
@pID_DaftarISI numeric(18,0)
)
AS
DELETE FROM TBL_DAFTAR_ISI WHERE ID_DAFTARISI =
@pID_DaftarISI;
RETURN
CREATE PROCEDURE [dbo].[SP_DELETE_BUKU]
(
@pISBN char(10)
)
AS
DELETE FROM TBL_DAFTAR_ISI WHERE ISBN = @pISBN;
DELETE FROM TBL_BUKU WHERE ISBN = @pISBN;
RETURN
: Membangun Sendiri Aplikasi Perpustakaan 33
Bab 2_grafis.pdf 11 Bab 2_grafis.pdf 11 2/25/2008 1:37:26 PM 2/25/2008 1:37:26 PM
Bab 2_grafis.pdf 12 Bab 2_grafis.pdf 12 2/25/2008 1:37:26 PM 2/25/2008 1:37:26 PM
MENGENAL LINQ
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).
Apa Itu LINQ?
LINQ (Language Integrated Query) adalah suatu fitur yang
memungkinkan pengaksesan data dengan menggunakan
sintaksis bahasa pemograman. Bila umumnya pengembang
menggunakan API berbasis ORM seperti ADO.NET yang
kemudian di dalamnya menggunakan parameter sintaksis
SQL, maka LINQ cukup menggunakan sintaksis khusus yang
melekat sebagai fitur dalam bahasa pemograman seperti C#
3.0 dan VB 9.0.
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
: Membangun Sendiri Aplikasi Perpustakaan 35
Bab 3_grafis.pdf 1 Bab 3_grafis.pdf 1 2/25/2008 1:37:35 PM 2/25/2008 1:37:35 PM
MENGENAL LINQ
Arsitektur LINQ.
LINQ terbagi menjadi tiga bagian utama, yakni:
LINQ to Object, sekumpulan pustaka pemrograman yang
mengandung sejumlah Standard Query Operators (SQO).
SQO membantu mekanisme pengambilan data dalam
memory melalui mekanisme interface a la generik pada
interface IEnumerable
LINQ to ADO.NET, sekumpulan pustaka pemrograman
SQO yang memungkinkan komunikasi dengan basis data
relasional. LINQ to ADO.NET terbagi lagi menjadi tiga
bagian berdasar akses basis data yang diakses, yakni LINQ
to SQL untuk pengaksesan ke SQL Server, LINQ to Dataset
melakukan query terhadap Datasets yang kompatibel
dengan semua pustaka ADO.NET, dan LINQ to Entities
yang memungkinkan akses LINQ dengan menggunakan
objek bisnis.
LINQ to XML, sekumpulan pustaka pemograman yang
memungkinkan SQO bekerja dengan berkas XML.
36 : Membangun Sendiri Aplikasi Perpustakaan
Bab 3_grafis.pdf 2 Bab 3_grafis.pdf 2 2/25/2008 1:37:35 PM 2/25/2008 1:37:35 PM
MENGENAL LINQ
Model Eksekusi LINQ
LINQ bekerja di atas bahasa pemograman atau dengan kata
lain pernyataan-pernyataan LINQ akan dikompilasi oleh
compiler bahasa pemograman yang mendukungnya. Hasil
kompilasi pernyataan LINQ berupa Intemediate Language
(IL) yang nantinya diterjemahkan oleh Common Language
Runtime (CLR) untuk mengakses sumber data yang
diinginkan.
Model eksekusi LINQ.
: Membangun Sendiri Aplikasi Perpustakaan 37
Bab 3_grafis.pdf 3 Bab 3_grafis.pdf 3 2/25/2008 1:37:35 PM 2/25/2008 1:37:35 PM
MENGENAL LINQ
Aplikasi LINQ to Object
Pada bagian ini, akan dibuat sebuah aplikasi kecil untuk
mendemonstrasikan implementasi teknologi LINQ yang
terkait dengan implementasi LINQ dengan object.
Aplikasi yang akan dikembangkan adalah aplikasi Console
biasa untuk membaca berkas-berkas dalam sebuah direktori
kemudian menampilkan informasi ukuran dari masing-masing
berkas yang ada, termasuk menampilkan informasi berkas
terbesar, terkecil, dan juga sepuluh terbesar. Berikut ini
langkah-langkah membuatnya:
LANGKAH 1
Buka Visual C# Developer kemudian buat sebuah proyek
dengan nama FileInfos dan dengan jenis proyek berupa
Console Applications.
Pembuatan Project Console Application pada Visual C# (3-2.png).
38 : Membangun Sendiri Aplikasi Perpustakaan
Bab 3_grafis.pdf 4 Bab 3_grafis.pdf 4 2/25/2008 1:37:35 PM 2/25/2008 1:37:35 PM
MENGENAL LINQ
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:
static IEnumerable<System.IO.FileInfo> GetFiles(string
path)
{
if (!System.IO.Directory.Exists(path))
throw new
System.IO.DirectoryNotFoundException();
string[] fileNames = null;
List<System.IO.FileInfo> files = new
List<System.IO.FileInfo>();
fileNames =
System.IO.Directory.GetFiles(path, "*.*",
System.IO.SearchOption.AllDirectories);
foreach (string name in fileNames)
files.Add(new
System.IO.FileInfo(name));
return files;
}
Berdasar pada kode Method tersebut kali pertama yang
dilakukan pada kode ini adalah pengecekan keberadaan
direktori yang dijadikan sebagai masukan Method. Bila
keberadaan direktori ditemukan, maka program akan
membaca berkas-berkas yang ada satu per satu dan
menyimpannya dalam sebuah class generik berjenis List<T>.
Pada kode tampak digunakan sekumpulan class akses yang
menggunakan akses ke pustaka System.IO, sehingga perlu
: Membangun Sendiri Aplikasi Perpustakaan 39
Bab 3_grafis.pdf 5 Bab 3_grafis.pdf 5 2/25/2008 1:37:35 PM 2/25/2008 1:37:35 PM
MENGENAL LINQ
ditambahkan direktif System.IO pada class yang
bersangkutan. Class berjenis List<T> mengimplementasikan
IEnumerable<T>, sehingga dapat dikeluarkan langsung
sebagai keluaran Method.
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.
string searchFolder = args[0];
IEnumerable<FileInfo> fileList =
GetFiles(searchFolder);
Pada kode tersebut, tampak bahwa masukan akan
diperoleh melalui argumen yang dimasukkan pada saat
aplikasi console tersebut dieksekusi. Kode di atas akan
mengembalikan variabel fileList yang kompatibel dengan
pernyataan LINQ.
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.
Berikut adalah kode-kode pernyataan LINQ secara
berurutan:
//get file with min length
var queryMaxFile = (from file in fileList
where file.Length == (from minFile in fileList
select minFile).Min(minFile =>
40 : Membangun Sendiri Aplikasi Perpustakaan
Bab 3_grafis.pdf 6 Bab 3_grafis.pdf 6 2/25/2008 1:37:35 PM 2/25/2008 1:37:35 PM
MENGENAL LINQ
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);
Pernyataan LINQ diawali dengan deklarasi variabel
penerima hasil untuk sebuah LINQ Query. Kata tersandang
var dapat diartikan sebagai variabel bertipe implisit. Variabel
var ini yang kemudian akan menyimpan ekpresi query LINQ.
Pada umumnya, pernyataan LINQ memiliki kesamaan dengan
SQL Query. Sebagai contoh, makna kata tersandang from,
select, where, orderby, dan sebagainya, memiliki makna yang
sama dengan query SQL.
Pernyataan LINQ juga mendukung operator yang dimiliki
pada .NET, sehingga LINQ memahami operator pembanding
seperti >=, <=, ==, dan sebagainya. Hal lain yang menarik
adalah kemampuan LINQ untuk mengambil satu atau
beberapa data dengan menggunakan Method seperti Single()
untuk mengambil sebuah data serta Take(n) untuk
mengambil sejumlah n data.
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:
Console.WriteLine("Largest File on folder {0} \nName :
{1}\nFull Name : {2}\nLength : {3}", searchFolder,
queryMaxFile.Name, queryMaxFile.FullName,
: Membangun Sendiri Aplikasi Perpustakaan 41
Bab 3_grafis.pdf 7 Bab 3_grafis.pdf 7 2/25/2008 1:37:35 PM 2/25/2008 1:37:35 PM
MENGENAL LINQ
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();
Hasil yang berupa variabel var dari tiap-tiap hasil query
umumnya akan mengembalikan nilai yang bersesuaian
dengan variabel yang digunakan. Sebagai contoh, variabel var
queryMinFile akan berupa variabel FileInfo sama halnya
dengan variabel file yang merupakan jenis dari class FileInfo.
Dengan demikian, queryMinFile dapat menggunakan
properties FileInfo seperti Name, FullName, dan Length.
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:
FileInfos.exe F:\My Videos\Cars
Pada IDE Visual C# Express, mekanisme pemasukan
argumen dapat dilakukan melalui IDE yang bersangkutan
dengan melakukan pemilihan menu Proyek pada Solution
Explorer melalui > FileInfos > pilih konteks menu > Properties
42 : Membangun Sendiri Aplikasi Perpustakaan
Bab 3_grafis.pdf 8 Bab 3_grafis.pdf 8 2/25/2008 1:37:35 PM 2/25/2008 1:37:35 PM
MENGENAL LINQ
> 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 .
Pengisian Command Line Arguments.
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:
Gambar hasil eksekusi aplikasi.
: Membangun Sendiri Aplikasi Perpustakaan 43
Bab 3_grafis.pdf 9 Bab 3_grafis.pdf 9 2/25/2008 1:37:35 PM 2/25/2008 1:37:35 PM
Bab 3_grafis.pdf 10 Bab 3_grafis.pdf 10 2/25/2008 1:37:35 PM 2/25/2008 1:37:35 PM
LINQ TO SQL
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.
: Membangun Sendiri Aplikasi Perpustakaan 45
Bab 4_grafis.pdf 1 Bab 4_grafis.pdf 1 2/25/2008 1:37:51 PM 2/25/2008 1:37:51 PM
LINQ TO SQL
2. Bubuhi class yang bersangkutan dengan atribut LINQ yang
sesuai.
3. Dekorasikan class tersebut dengan field dan properties
sehingga LINQ dapat menggunakannya sebagai kolom dan
placeholder penyimpanan data.
4. Membuat object DataContext yang berperan sebagai
mediasi antara basis data dan class.
Pola eksekusi LINQ to SQL.
46 : Membangun Sendiri Aplikasi Perpustakaan
Bab 4_grafis.pdf 2 Bab 4_grafis.pdf 2 2/25/2008 1:37:51 PM 2/25/2008 1:37:51 PM
LINQ TO SQL
Pembuatan Class Library LINQ to SQL
Pada bagian ini akan dijelaskan langkah-langkah yang untuk
mengembangkan class library aplikasi pengelolaan buku.
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.

Solution Explorer Class Library.
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.
: Membangun Sendiri Aplikasi Perpustakaan 47
Bab 4_grafis.pdf 3 Bab 4_grafis.pdf 3 2/25/2008 1:37:51 PM 2/25/2008 1:37:51 PM
LINQ TO SQL
Pemilihan Data Source Provider.
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.
48 : Membangun Sendiri Aplikasi Perpustakaan
Bab 4_grafis.pdf 4 Bab 4_grafis.pdf 4 2/25/2008 1:37:51 PM 2/25/2008 1:37:51 PM
LINQ TO SQL
Database markup language (4-3.png).
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.
: Membangun Sendiri Aplikasi Perpustakaan 49
Bab 4_grafis.pdf 5 Bab 4_grafis.pdf 5 2/25/2008 1:37:51 PM 2/25/2008 1:37:51 PM
LINQ TO SQL
Pemetaan perilaku Method ke Stored Procedures.
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.
50 : Membangun Sendiri Aplikasi Perpustakaan
Bab 4_grafis.pdf 6 Bab 4_grafis.pdf 6 2/25/2008 1:37:51 PM 2/25/2008 1:37:51 PM
LINQ TO SQL
4. Lakukan langkah satu hingga tiga untuk tiap kolom pada
tiap-tiap tabel yang terdapat pada berkas dbml.
Perubahan Properties Updateable (4-5.png).
LANGKAH 10
Buka berkas DAL.cs dan tambahkan kode konstruktor sebagai
berikut:
public class DAL
{
private LibraryDBDataContext libDC;
public DAL()
{
libDC = new
LibraryDBDataContext(Properties.Settings.Default.Libra
ryDBConnectionString);
}
: Membangun Sendiri Aplikasi Perpustakaan 51
Bab 4_grafis.pdf 7 Bab 4_grafis.pdf 7 2/25/2008 1:37:51 PM 2/25/2008 1:37:51 PM
LINQ TO SQL
public DAL(string ConnectionString)
{
libDC = new
LibraryDBDataContext(ConnectionString);
}
}
Tampak jelas bahwa kode di atas akan menggunakan
berbagai fitur objek yang merupakan hasil otomasi kode yang
dilakukan oleh visual studio (LibraryDBDataContext). Hal
tersebut dilanjutkan dengan pembuatan dua konstruktor
yang keduanya melakukan pengesetan nilai
ConnectionString. ConnectionString adalah suatu nilai yang
berisi lokasi akses basis data sesuai dengan standar yang
disepakati. Pada konstruktor di atas tampak bahwa satu
konstruktor menggunakan ConnectionString sesuai dengan
nilai yang tersimpan pada app.config dan konstruktor lain
membaca masukan dari parameter konstruktor.
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.
52 : Membangun Sendiri Aplikasi Perpustakaan
Bab 4_grafis.pdf 8 Bab 4_grafis.pdf 8 2/25/2008 1:37:51 PM 2/25/2008 1:37:51 PM
LINQ TO SQL
public List<Buku> GetAllBuku()
{
var query = from enbuku in libDC.Bukus
select enbuku;
return query.ToList();
}
public List<Buku> GetBuku(Buku buku)
{
var query =
libDC.ExecuteQuery<Buku>("SELECT * FROM TBL_BUKU WHERE
ISBN = {0} OR PENGARANG LIKE {1} OR PENERBIT LIKE {2}
OR JUDUL LIKE {3}", (buku.ISBN == null ? string.Empty
: string.Concat("%", buku.ISBN,"%")), (buku.PENGARANG
== null ? string.Empty : string.Concat("%",
buku.PENGARANG,"%")), (buku.PENERBIT == null ?
string.Empty : string.Concat("%", buku.PENERBIT,"%")),
(buku.JUDUL == null ? string.Empty :
string.Concat("%",buku.JUDUL,"%")));
return query.ToList();
}
Method GetAllBuku dan GetBuku menggunakan
keluaran List<Buku> yang menerapkan standar interface
IEnumerable<T>, sebuah interface yang kompatibel dengan
LINQ. Hal yang menarik ada kemampuan LINQ yang tidak
hanya dapat mengakses data lewat pernyataan LINQ, tetapi
juga mampu melalukan eksekusi query pernyataan SQL.
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.
public void InsertBukuBaru(Buku newBuku)
{
libDC.Bukus.InsertOnSubmit(newBuku);
: Membangun Sendiri Aplikasi Perpustakaan 53
Bab 4_grafis.pdf 9 Bab 4_grafis.pdf 9 2/25/2008 1:37:51 PM 2/25/2008 1:37:51 PM
LINQ TO SQL
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:
public List<DaftarISI> GetAllDaftarISI()
{
var query = from daftarIsi in libDC.DaftarISIs
select daftarIsi;
return query.ToList();
}
public List<DaftarISI> GetAllDaftarISI(Buku buku)
{
var query = from daftarIsi in libDC.DaftarISIs
where daftarIsi.ISBN == buku.ISBN
select daftarIsi;
return query.ToList();
}
LANGKAH 13
Pada berkas DAL.cs tambahkan beberapa Method untuk
melakukan operasi pemasukan, pengubahan, dan
penghapusan data. Semua operasi ini menggunakan
54 : Membangun Sendiri Aplikasi Perpustakaan
Bab 4_grafis.pdf 10 Bab 4_grafis.pdf 10 2/25/2008 1:37:51 PM 2/25/2008 1:37:51 PM
LINQ TO SQL
pernyataan LINQ yang menggunakan pustaka LINQ to SQL
menggunakan pendekatan eksekusi Stored Procedure.
public void InsertDaftarISI(DaftarISI newDaftarISI)
{ libDC.SP_INSERT_DAFTARISI(newDafta
rISI.ISBN, newDaftarISI.ISI, newDaftarISI.HALAMAN);
}
public void UpdateDaftarISI(DaftarISI
daftarISI)
{
libDC.SP_UPDATE_DAFTARISI(daftarISI.ID_DAF
TARISI, daftarISI.ISBN, daftarISI.ISI,
daftarISI.HALAMAN);
}
public void DeleteDaftarISI(DaftarISI
daftarISI)
{ libDC.SP_DELETE_DAFTARISI(daftarI
SI.ID_DAFTARISI);
}
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.
Lokasi berkas hasil proyek Class Library.
: Membangun Sendiri Aplikasi Perpustakaan 55
Bab 4_grafis.pdf 11 Bab 4_grafis.pdf 11 2/25/2008 1:37:51 PM 2/25/2008 1:37:51 PM
LINQ TO SQL
Proyek kali ini berupa proyek Class Library, sehingga
pengujian dan debugging secara langsung tidak dapat
dilakukan. Proyek ini akan menghasilkan DLL yang nantinya
akan dibungkus dalam sebuah Web Services.
Hasil pada proyek ini dapat dilihat dalam folder
<root>/bin/debug/ bila pembaca menggunakan konfigurasi
debug dan <root>/bin/release, dan bila pembaca
menggunakan konfigurasi release. Nilai <root> mengacu
pada proyek tersebut pada saat pengembang membuat
proyek.
56 : Membangun Sendiri Aplikasi Perpustakaan
Bab 4_grafis.pdf 12 Bab 4_grafis.pdf 12 2/25/2008 1:37:51 PM 2/25/2008 1:37:51 PM
MEMBUAT WCF SERVICES
Bab 5
Membuat WCF
Services
Pada bab ini akan dikembangkan WCF Services
aplikasi pengelolaan buku menggunakan Windows
Communication Foundation (WCF).
Windows Communication Foundation
Windows Communication Foundation (WCF) adalah bagian
dari .NET Framework 3.0 yang merupakan evolusi dari
teknologi-teknologi komunikasi data dan messaging yang
sudah ada sebelumnya, seperti .NET Remoting, TCP/IP Socket,
Message Queue (MSMQ), Peer to Peer, Web Services, WSE,
dan Enterprise Service. WCF merupakan framework gabungan
(unified) yang menyediakan model pemrograman konsisten
untuk semua teknologi tersebut dalam lingkungan .NET.
WCF memberikan beberapa keuntungan sebagai berikut:
Terintegrasi dengan berbagai protokol Web Service.
Secara implisit menggunakan paradigma pengembangan
aplikasi berorientasi service (SOA).
Single API yang konsisten untuk membangun connected
system dan sistem terdistribusi.
: Membangun Sendiri Aplikasi Perpustakaan 57
Bab 5_grafis.pdf 1 Bab 5_grafis.pdf 1 2/25/2008 1:38:01 PM 2/25/2008 1:38:01 PM
MEMBUAT WCF SERVICES
WCF dan teknologi terdistribusi sebelumnya.
Untuk dapat menggunakan WCF, klien harus memahami
aturan ABC dalam WCF. ABC adalah singkatan dari Address,
Binding, dan Contract. Ketiga hal ini secara umum dikenal
dengan istilah endpoint yang berlaku sebagai pintu atau
gateway suatu Service terhadap dunia luar. Service itu sendiri
didefinisikan sebagai bagian aplikasi yang melayani dan
bereaksi terhadap message.
Address adalah network address, di mana Services berada
yang mendefinisikan kemana message atau pesan harus
dikirim. Address dalam suatu endpoint pada dasarnya adalah
URI, identity, dan sekumpulan berkas header.
Binding mendefinisikan bagaimana cara mengirim message.
Termasuk di dalamnya protokol transport yang digunakan
(HTTP, TCP, Named Pipes, dan lain-lain), channels (one-
way,duplex, request-replay), encoding (binary, text, dan lain-
lain), dan protokol WS-* yang digunakan (WS-Security, WS-
Federation, dan lain-lain). Contract mendefinisikan isi dari
message dan merupakan kumpulan operasi yang menjelaskan
apa yang harus disediakan oleh endpoint ke dunia luar.
58 : Membangun Sendiri Aplikasi Perpustakaan
Bab 5_grafis.pdf 2 Bab 5_grafis.pdf 2 2/25/2008 1:38:02 PM 2/25/2008 1:38:02 PM
MEMBUAT WCF SERVICES
Pembuatan WCF Services
Langkah langkah untuk membuat WCF Service menggunakan
Windows Communication Foundation akan dijelaskan pada
bagian berikut ini, tetapi sebelumnya Anda perlu mempelajari
bagaimana membuat Virtual Directory dalam IIS Web Server.
Menyiapkan Application dalam IIS
Virtual Directory dibutuhkan sebagai media penyimpanan
(host) bagi aplikasi web maupun WCF Service. Untuk
membuatnya, buka konsole IIS Manager (InetMgr.exe) lalu
dari Default Website yang aktif dalam IIS Manager, klik kanan
untuk menambahkan Application baru (pilih Add
Application). Namakan alias Application yang akan dibuat
dengan nama LibraryService. Gunakan DefaultAppPool atau
Application Pool lain dengan versi .NET 2.0.50727 dan mode
pipeline classic atau integrated.
Menambahkan Application dalam IIS 7.0.
: Membangun Sendiri Aplikasi Perpustakaan 59
Bab 5_grafis.pdf 3 Bab 5_grafis.pdf 3 2/25/2008 1:38:02 PM 2/25/2008 1:38:02 PM
MEMBUAT WCF SERVICES
Untuk semua versi IIS, cek apakah Application tersebut
telah berjalan dengan ASP.NET 2.0 runtime. Jika Anda
menggunakan Visual Studio 2008, runtime yang benar adalah
versi 2.0. Untuk menguji keberhasilan pembuatan IIS
Application, buka browser dengan URL berikut:
http://localhost/LibraryService.
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.

Solution Explorer WCF Service.
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
60 : Membangun Sendiri Aplikasi Perpustakaan
Bab 5_grafis.pdf 4 Bab 5_grafis.pdf 4 2/25/2008 1:38:02 PM 2/25/2008 1:38:02 PM
MEMBUAT WCF SERVICES
Browse. Tentukan folder tempat project class library
LibraryDAL berada, kemudian masuk ke folder bin\debug dan
pilih file LibraryDAL.dll.
Menambahkan Reference ke dalam Project.
Menentukan letak pustaka LibraryDAL.dll yang akan di reference.
: Membangun Sendiri Aplikasi Perpustakaan 61
Bab 5_grafis.pdf 5 Bab 5_grafis.pdf 5 2/25/2008 1:38:02 PM 2/25/2008 1:38:02 PM
MEMBUAT WCF SERVICES
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);
62 : Membangun Sendiri Aplikasi Perpustakaan
Bab 5_grafis.pdf 6 Bab 5_grafis.pdf 6 2/25/2008 1:38:02 PM 2/25/2008 1:38:02 PM
MEMBUAT WCF SERVICES
}
}
Dari kode di atas, pembaca bisa melihat hal pertama yang
dilakukan adalah mendefinisikan contract untuk service. Hal
ini dilakukan dengan membuat sebuah interface dengan
nama ILibraryService dan kemudian menambahkan suatu
atribut [ServiceContract]. Selanjutnya di dalam interface
ILibrary dideklarasikan sekumpulan operasi atau method
beserta parameter dan nilai keluarannya. Ketika
menggunakan interface untuk mendefinisikan contract, maka
semua operasi atau method dari interface yang merupakan
anggota dari contract harus diberi atribut
[OperationContract].
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);
#region ILibraryService Members
public Buku[] GetDataSemuaBuku()
{
return dalObject.GetAllBuku().ToArray();
}
public void TambahBukuBaru(Buku bukuBaru)
: Membangun Sendiri Aplikasi Perpustakaan 63
Bab 5_grafis.pdf 7 Bab 5_grafis.pdf 7 2/25/2008 1:38:02 PM 2/25/2008 1:38:02 PM
MEMBUAT WCF SERVICES
{
dalObject.InsertBukuBaru(bukuBaru);
}
public void UpdateBuku(Buku buku)
{
dalObject.UpdateBuku(buku);
}
public void HapusBuku(Buku buku)
{
dalObject.DeleteBuku(buku);
}
public DaftarISI[] GetDataSemuaDaftarISI()
{
return
dalObject.GetAllDaftarISI().ToArray();
}
public DaftarISI[]
GetDaftarIsiBerdasarkanBuku(Buku buku)
{
return
dalObject.GetAllDaftarISI(buku).ToArray();
}
public void TambahDaftarIsiBaru(DaftarISI
daftarIsiBaru)
{
dalObject.InsertDaftarISI(daftarIsiBaru);
}
public void UpdateDaftarIsi(DaftarISI
daftarIsi)
{
dalObject.UpdateDaftarISI(daftarIsi);
}
public void HapusDaftarIsi(DaftarISI
daftarIsi)
{
64 : Membangun Sendiri Aplikasi Perpustakaan
Bab 5_grafis.pdf 8 Bab 5_grafis.pdf 8 2/25/2008 1:38:02 PM 2/25/2008 1:38:02 PM
MEMBUAT WCF SERVICES
dalObject.DeleteDaftarISI(daftarIsi);
}
#endregion
}
}
Kelas LibraryService merupakan kelas yang
mengimplementasi interface ILibraryService yang telah dibuat
pada langkah sebelumnya. Operasi yang dideklarasikan pada
interface ILibraryService tidak memiliki definisi atau body,
untuk itu implementasi dari operasi-operasi tersebut
dilakukan pada kelas LibraryService. Masing-masing operasi
memanggil fungsi yang disediakan oleh dalObject yang
merupakan object dari kelas DAL pada pustaka LibraryDAL
yang telah di-reference sebelumnya.
Pustaka LibraryDAL sendiri berisi fungsi-fungsi untuk
mengakses dan memanipulasi basis data. Perlu diperhatikan
pada saat pembuatan dalObject digunakan connection string
yang tersimpan pada berkas Web.config yang diambil
menggunakan perantara kelas WebConfigurationManager.
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.
: Membangun Sendiri Aplikasi Perpustakaan 65
Bab 5_grafis.pdf 9 Bab 5_grafis.pdf 9 2/25/2008 1:38:02 PM 2/25/2008 1:38:02 PM
MEMBUAT WCF SERVICES
<%@ ServiceHost Language="C#" Debug="true"
Service="LibraryService.ServiceImplementation.LibraryS
ervice" CodeBehind="~/App_Code/LibraryService.cs" %>
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>
Selanjutnya perlu dilakukan perubahan pada bagian
<System.serviceModel> (Ubah bagian yang dicetak tebal).
<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.
66 : Membangun Sendiri Aplikasi Perpustakaan
Bab 5_grafis.pdf 10 Bab 5_grafis.pdf 10 2/25/2008 1:38:02 PM 2/25/2008 1:38:02 PM
MEMBUAT WCF SERVICES
Untuk dapat menggunakan operasi yang disediakan oleh
Web Service, pembaca harus membuat sebuah aplikasi klien
terpisah baik berupa aplikasi Windows, Web maupun Mobile.
Pembuatan aplikasi klien ini akan dibahas pada bab
berikutnya.
Walaupun Web Service yang dibuat tidak bisa digunakan
secara langsung, pembaca bisa mengakses Web Service
menggunakan browser seperti Internet Explorer pada alamat:
http://localhost/LibraryService/Service.svc.
Hanya saja, yang akan ditampilkan hanyalah informasi
mengenai cara penggunaan Web Service.
Melihat informasi Web Service menggunakan browser.
: Membangun Sendiri Aplikasi Perpustakaan 67
Bab 5_grafis.pdf 11 Bab 5_grafis.pdf 11 2/25/2008 1:38:02 PM 2/25/2008 1:38:02 PM
Bab 5_grafis.pdf 12 Bab 5_grafis.pdf 12 2/25/2008 1:38:02 PM 2/25/2008 1:38:02 PM
WEB FORMS KLIEN
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
: Membangun Sendiri Aplikasi Perpustakaan 69
Bab 6_grafis.pdf 1 Bab 6_grafis.pdf 1 2/25/2008 1:38:12 PM 2/25/2008 1:38:12 PM
WEB FORMS KLIEN
yang dapat membantu pengembang mengembangkan
aplikasi berbasis AJAX.
Ekstensi kontrol authentication 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.
Pengembangan Aplikasi Web Library
Aplikasi web klien yang akan dikembangkan menggunakan
layanan WCF Service yang telah dikembangkan pada Bab 5.
Aplikasi web ini akan memanggil operasi update dan
penghapusan data melalui layanan WCF Service yang telah
dibuat. Berikut adalah langkah-langkah untuk
mengembangkan aplikasi web yang bersangkutan:
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.
70 : Membangun Sendiri Aplikasi Perpustakaan
Bab 6_grafis.pdf 2 Bab 6_grafis.pdf 2 2/25/2008 1:38:12 PM 2/25/2008 1:38:12 PM
WEB FORMS KLIEN
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 LibraryService > ekspansi LibraryService >
pilih kontrak ILibraryService > dialog akan menampilkan list
operasi yang dimiliki layanan WCF Service tersebut. Hal yang
terakhir yang dilakukan adalah memberi nama referensi
proxy class dengan nama LibraryServices, kemudian
konfirmasikan OK.
Penambahan referensi Services.
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.
: Membangun Sendiri Aplikasi Perpustakaan 71
Bab 6_grafis.pdf 3 Bab 6_grafis.pdf 3 2/25/2008 1:38:12 PM 2/25/2008 1:38:12 PM
WEB FORMS KLIEN
ScriptManager adalah kontrol yang mengemulasikan AJAX
dan mengontrol komunikasi asinkron yang dilakukan oleh
kode Java Script. Sementara UpdatePanel adalah suatu panel
yang akan memungkinkan kontrol yang berada di dalamnya
melakukan komunikasi secara asinkron. Tambahkan kode
berikut ditubuh HTML.
<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:MultiView ID="MultiView1" runat="server"
ActiveViewIndex="0">
<asp:View ID="ViewBuku" runat="server">
<%--di isi untuk langkah 6--%>
</asp:View>
<asp:View ID="DaftarIsi" runat="server">
<%--di isi untuk langkah 8--%>
</asp:View>
</asp:MultiView>
</ContentTemplate>
72 : Membangun Sendiri Aplikasi Perpustakaan
Bab 6_grafis.pdf 4 Bab 6_grafis.pdf 4 2/25/2008 1:38:12 PM 2/25/2008 1:38:12 PM
WEB FORMS KLIEN
Pada bagian ini digunakan dua buah tampilan, sebuah
tampilan menampilkan data tentang daftar buku, tampilan
berikutnya menampilkan daftar isi buku dari buku yang dipilih.
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:
<head id="Head1" runat="server">
<title>Untitled Page</title>
<style type="text/css">
.style1
{
width: 100%;
}
.style3
{
}
.style4
{
width: 166px;
}
.style5
{
width: 171px;
}
</style>
</head>
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.
: Membangun Sendiri Aplikasi Perpustakaan 73
Bab 6_grafis.pdf 5 Bab 6_grafis.pdf 5 2/25/2008 1:38:12 PM 2/25/2008 1:38:12 PM
WEB FORMS KLIEN
<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">
&nbsp;</td>
<td>
&nbsp;</td>
</tr>
<tr>
<%--di isi untuk langkah 7--%>
74 : Membangun Sendiri Aplikasi Perpustakaan
Bab 6_grafis.pdf 6 Bab 6_grafis.pdf 6 2/25/2008 1:38:12 PM 2/25/2008 1:38:12 PM
WEB FORMS KLIEN
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">
: Membangun Sendiri Aplikasi Perpustakaan 75
Bab 6_grafis.pdf 7 Bab 6_grafis.pdf 7 2/25/2008 1:38:12 PM 2/25/2008 1:38:12 PM
WEB FORMS KLIEN
<asp:Label ID="Label2" runat="server"
Text="Pengarang"></asp:Label>
</td><td>
<asp:TextBox ID="textPengarang"
runat="server"></asp:TextBox>
</td></tr>
<tr><td class="style4">
<asp:Label ID="Label3" runat="server"
Text="Penerbit"></asp:Label>
</td><td>
<asp:TextBox ID="textPenerbit"
runat="server"></asp:TextBox>
</td></tr>
<tr><td class="style4">
<asp:Label ID="Label4" runat="server" Text="Tanggal
Penerbitan"></asp:Label>
</td><td>
<asp:Calendar ID="calTglPenerbitan" runat="server">
<SelectedDayStyle BorderStyle="Inset" />
</asp:Calendar>
</td></tr>
<tr><td class="style4">&nbsp;</td>
<td>
<asp:Button ID="btnSimpan" runat="server"
onclick="btnSimpan_Click" Text="Simpan" />
</td></tr></table></div>
Yakinkan tidak ada tag yang terlewat dan semua tag
tertutup dengan baik. Bila sudah diyakini tidak terdapat
kesalahan, lakukan perubahan tampilan dari kode ke
interface desain seperti gambar berikut.
76 : Membangun Sendiri Aplikasi Perpustakaan
Bab 6_grafis.pdf 8 Bab 6_grafis.pdf 8 2/25/2008 1:38:12 PM 2/25/2008 1:38:12 PM
WEB FORMS KLIEN
Tampilan interface informasi buku pada web.
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"
: Membangun Sendiri Aplikasi Perpustakaan 77
Bab 6_grafis.pdf 9 Bab 6_grafis.pdf 9 2/25/2008 1:38:12 PM 2/25/2008 1:38:12 PM
WEB FORMS KLIEN
ShowCancelButton="False" ShowEditButton="True" />
<asp:CommandField ButtonType="Button"
InsertVisible="False"
ShowCancelButton="False" ShowDeleteButton="True" />
</Columns></asp:GridView>
</td></tr>
<%--di isi untuk langkah 9--%>
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">
&nbsp;</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>
78 : Membangun Sendiri Aplikasi Perpustakaan
Bab 6_grafis.pdf 10 Bab 6_grafis.pdf 10 2/25/2008 1:38:12 PM 2/25/2008 1:38:12 PM
WEB FORMS KLIEN
</td></tr>
<tr><td class="style5">&nbsp;</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.
private LibraryServiceClient proxyObject = new
LibraryServiceClient();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
LoadBuku();
}
private void LoadBuku()
{
gvBuku.DataSource = proxyObject.GetDataSemuaBuku();
gvBuku.DataBind();
}
private void ClearPage()
{
textISBN.Text = string.Empty;
textJudul.Text = string.Empty;
textPenerbit.Text = string.Empty;
textPengarang.Text = string.Empty;
calTglPenerbitan.SelectedDate = DateTime.Now;
}
LANGKAH 11
Pada saat terjadi perubahan nilai pada DataGridView, baik
berupa pembaruan data atau penghapusan data, maka event
: Membangun Sendiri Aplikasi Perpustakaan 79
Bab 6_grafis.pdf 11 Bab 6_grafis.pdf 11 2/25/2008 1:38:12 PM 2/25/2008 1:38:12 PM
WEB FORMS KLIEN
yang sesuai dengan DataGRidView yang bersangkutan akan
dipicu.
protected void gvBuku_RowEditing(object sender,
GridViewEditEventArgs e)
{
textISBN.Text =
gvBuku.Rows[e.NewEditIndex].Cells[0].Text;
textJudul.Text =
gvBuku.Rows[e.NewEditIndex].Cells[1].Text;
textPengarang.Text =
gvBuku.Rows[e.NewEditIndex].Cells[2].Text;
textPenerbit.Text =
gvBuku.Rows[e.NewEditIndex].Cells[3].Text;
calTglPenerbitan.SelectedDate =
Convert.ToDateTime(gvBuku.Rows[e.NewEditIndex].Cells[4
].Text);
}
protected void gvBuku_RowDeleting(object sender,
GridViewDeleteEventArgs e)
{
Buku delBuku = new Buku { ISBN =
gvBuku.Rows[e.RowIndex].Cells[0].Text };
proxyObject.HapusBuku(delBuku);
LoadBuku();
ClearPage();
}
LANGKAH 12
Berikutnya dilakukan mekanisme penyimpanan apabila
terjadi perubahan atau peghapusan data pada buku.
protected void btnSimpan_Click(object sender,
EventArgs e)
{
if (!textISBN.Text.Equals(string.Empty))
{
Buku upBuku = new Buku { ISBN =
textISBN.Text, JUDUL = textJudul.Text, PENERBIT =
textPenerbit.Text, PENGARANG = textPengarang.Text,
80 : Membangun Sendiri Aplikasi Perpustakaan
Bab 6_grafis.pdf 12 Bab 6_grafis.pdf 12 2/25/2008 1:38:12 PM 2/25/2008 1:38:12 PM
WEB FORMS KLIEN
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.
Hasil tampilan aplikasi LibraryWebApp.
: Membangun Sendiri Aplikasi Perpustakaan 81
Bab 6_grafis.pdf 13 Bab 6_grafis.pdf 13 2/25/2008 1:38:12 PM 2/25/2008 1:38:12 PM
Bab 6_grafis.pdf 14 Bab 6_grafis.pdf 14 2/25/2008 1:38:12 PM 2/25/2008 1:38:12 PM
WINDOWS FORM KLIEN
Bab 7
Windows Form
Klien
Pada bab ini akan dikembangkan aplikasi desktop
klien dengan teknologi Windows Form yang
mengonsumsi layanan WCF Service.
Teknologi Windows Form
Windows Form adalah bagian dari .NET Framework untuk
pengembangan aplikasi ber-interface desktop. Windows Form
hadir pada kisaran tahun 2002. Keberadaannya berperan
untuk memudahkan dan membungkus teknologi sebelumnya,
seperti Win32 API, COM/ActiveX, dan pendekatan rancangan
interface VB 6.0. Windows Form memberikan kemudahan
untuk mendesain interface desktop dan mampu
menghasilkan form yang elegan dengan banyaknya
komponen yang tersedia. Pada perkembangannya Windows
Form melahirkan suatu arsitektur yang dinamakan Smart
Client, di mana Windows Form digunakan sebagai front-end
dari WCF Web Service back-end.
Smart Client adalah suatu konsep aplikasi di sisi klien yang
memiliki kemampuan hibrid antara thick client dan thin
client. Thin client telah dikenal dalam dunia web yang
: Membangun Sendiri Aplikasi Perpustakaan 83
Bab 7_grafis.pdf 1 Bab 7_grafis.pdf 1 2/25/2008 1:38:20 PM 2/25/2008 1:38:20 PM
WINDOWS FORM KLIEN
memfokuskan bagaimana aplikasi berjalan dalam sebuah
Web Server dan akses informasi diperoleh dan didapat
melalui perangkat bantu yang dikenal dengan browser.
Sementara thick client adalah perangkat lunak yang
dipasangkan di klien dan dieksekusi di klien. Smart Client
menghadirkan beberapa kemampuan yang diperoleh dari
gabungan dua jenis klien di atas seperti:
Aplikasi berbentuk desktop dengan kemampuan akses
sumber daya layaknya aplikasi thick client.
Aplikasi menggunakan komunikasi HTTP untuk komunikasi
ke server back-end.
Aplikasi diinstal ke Web Server dan di-deploy ke klien
secara otomatis dengan teknologi ClickOnce.
Aplikasi memungkinkan sinkronisasi secara online maupun
offline.
Pengembangan Klien Windows
Berikut ini akan dikembangkan klien desktop yang akan
mengonsumsi layanan WCF Service pada Bab 5.
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
84 : Membangun Sendiri Aplikasi Perpustakaan
Bab 7_grafis.pdf 2 Bab 7_grafis.pdf 2 2/25/2008 1:38:20 PM 2/25/2008 1:38:20 PM
WINDOWS FORM KLIEN
LibraryService > ekspansi LibraryService > pilih kontrak
ILibraryService > dialog akan menampilkan daftar operasi
yang dimiliki layanan WCF Service tersebut. Hal yang terakhir
yang dilakukan adalah memberi nama referensi proxy class
dengan nama LibraryServices.
Penambahan referensi layanan WCF (7-1.png).
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:
: Membangun Sendiri Aplikasi Perpustakaan 85
Bab 7_grafis.pdf 3 Bab 7_grafis.pdf 3 2/25/2008 1:38:20 PM 2/25/2008 1:38:20 PM
WINDOWS FORM KLIEN
Tabel Perancangan Interface.Buku
Nama Control Property Nilai
TabControl (Name) tabControl1
Label Text ISBN
Label Text Judul Buku
Label Text Pengarang
Label Text Penerbit
Button (Name) btnSave
Text Simpan
DataGrid (name) dgvBuku
DateTimePicker (Name) dtpTglTerbit
Atur peletakan kontrol sehingga memperoleh tampilan
berikut:
Rancangan interface Buku.
86 : Membangun Sendiri Aplikasi Perpustakaan
Bab 7_grafis.pdf 4 Bab 7_grafis.pdf 4 2/25/2008 1:38:21 PM 2/25/2008 1:38:21 PM
WINDOWS FORM KLIEN
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:
Tabel Perancangan Interface.Daftar Isi
Nama Control Property Nilai
Label Text Buku
Label Text Isi
Label Text Halaman
Button (Name) btnSimpanIsi
Text Simpan
TextBox (Name) txtIsi
ComboBox (Name) cbxISBN
NumericUpDown (Name) nudHalaman
DataGRidView (Name) dgvDaftarIsi
: Membangun Sendiri Aplikasi Perpustakaan 87
Bab 7_grafis.pdf 5 Bab 7_grafis.pdf 5 2/25/2008 1:38:21 PM 2/25/2008 1:38:21 PM
WINDOWS FORM KLIEN
Ramcangan interface Daftar Isi.
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
88 : Membangun Sendiri Aplikasi Perpustakaan
Bab 7_grafis.pdf 6 Bab 7_grafis.pdf 6 2/25/2008 1:38:21 PM 2/25/2008 1:38:21 PM
WINDOWS FORM KLIEN
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:
private void LoadISBN()
{
cbxISBN.DataSource =
clientProxyObj.GetDataSemuaBuku();
cbxISBN.ValueMember = "ISBN";
cbxISBN.DisplayMember = "JUDUL";
}
private void LoadDataBuku()
{
dgvBuku.DataSource =
clientProxyObj.GetDataSemuaBuku();
dgvBuku.Refresh();
}
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();
}
: Membangun Sendiri Aplikasi Perpustakaan 89
Bab 7_grafis.pdf 7 Bab 7_grafis.pdf 7 2/25/2008 1:38:21 PM 2/25/2008 1:38:21 PM
WINDOWS FORM KLIEN
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:
private void btnSave_Click(object sender, EventArgs e)
{
Buku newBuku = new Buku { ISBN =
textISBN.Text, JUDUL = textJudulBuku.Text, PENGARANG =
textPengarang.Text, PENERBIT = textPenerbit.Text,
TGL_PENERBITAN = dtpTglTerbit.Value };
clientProxyObj.TambahBukuBaru(newBuku);
LoadDataBuku();
}
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.
90 : Membangun Sendiri Aplikasi Perpustakaan
Bab 7_grafis.pdf 8 Bab 7_grafis.pdf 8 2/25/2008 1:38:21 PM 2/25/2008 1:38:21 PM
WINDOWS FORM KLIEN
Pengujian pemasukan data pada aplikasi klien.
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.
private void cbxISBN_SelectedIndexChanged(object
sender, EventArgs e)
{
if (cbxISBN.SelectedIndex >= 0)
{
LoadDataDaftarISI(cbxISBN.SelectedValu
: Membangun Sendiri Aplikasi Perpustakaan 91
Bab 7_grafis.pdf 9 Bab 7_grafis.pdf 9 2/25/2008 1:38:21 PM 2/25/2008 1:38:21 PM
WINDOWS FORM KLIEN
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();
}
Pada kode di atas tampak bahwa pada saat terjadi
pemilihan ComboBox dengan nilai yang bukan nol, maka
aplikasi akan melakukan pembacaan data daftar isi yang
dipenuhi melalui operasi LoadDaftarIsi, dan LoadDaftarIsi
sendiri melakukan pemanggilan ke layanan WCF.
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.
private void btnSimpanIsi_Click(object sender,
EventArgs e)
{
DaftarISI newDaftarIsi = new DaftarISI
{ ISBN = cbxISBN.SelectedValue.ToString(), ISI =
textIsi.Text, HALAMAN =
Convert.ToByte(nudHalaman.Value) };
clientProxyObj.TambahDaftarIsiBaru(newDaft
arIsi);
LoadDataDaftarISI(newDaftarIsi.ISBN);
}
92 : Membangun Sendiri Aplikasi Perpustakaan
Bab 7_grafis.pdf 10 Bab 7_grafis.pdf 10 2/25/2008 1:38:21 PM 2/25/2008 1:38:21 PM
WINDOWS FORM KLIEN
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.
Pengujian halaman 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:
: Membangun Sendiri Aplikasi Perpustakaan 93
Bab 7_grafis.pdf 11 Bab 7_grafis.pdf 11 2/25/2008 1:38:21 PM 2/25/2008 1:38:21 PM
WINDOWS FORM KLIEN
1. Pilih Proyek WindowsLibraryApp.
2. Pilih Project Properties.
3. Pilih Tab Publish.
4. Siapkan Application atau Virtual Directory untuk lokasi
deployment menggunakan IIS Manager (Lihat Bab 5).
5. Isikan informasi di mana aplikasi akan didistribusikan,
dalam hal ini pada umumnya didistribusikan ke alamat URL
Application (HTTP) atau melalui FTP.
6. Pilih tombol Publish Now.
7. Aplikasi siap diakses dan diinstalasi lewat URL yang
dipublikasikan.
8. Cek hasil publikasi di dalam Virtual Directory.
Publikasi aplikasi a la Smart Client.
94 : Membangun Sendiri Aplikasi Perpustakaan
Bab 7_grafis.pdf 12 Bab 7_grafis.pdf 12 2/25/2008 1:38:21 PM 2/25/2008 1:38:21 PM
KOMPETISI
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.
Panitia akan membalas e-mail pendaftaran tersebut
dengan memberikan nomor kode peserta (contoh
IDOL0001). Peserta yang telah memiliki kode peserta
diwajibkan untuk melanjutkan pengembangan aplikasi
perpustakaan buku tersebut dalam jangka waktu 2 bulan.
Kirimkan kembali Screenshot aplikasi Anda beserta
penjelasan mengenai penambahan fitur yang telah Anda
lakukan selama 2 bulan ke e-mail di atas, paling lambat 20
Mei 2008.
Panitia akan memilih tiga pemenang terbaik dan setiap
pemenang akan memberikan hadiah sebagai berikut:
Berkunjung ke Microsoft Development Center di India
Hanya untuk pemenang pertama.
Sertifikat langsung dari Microsoft Indonesia.
Magang di Microsoft Indonesia selama 1 minggu.
Voucher berlangganan PC Media selama 1 tahun.
External disk 320 GB.
Hormat kami,
Redaksi PC Media
: Membangun Sendiri Aplikasi Perpustakaan 95
Lampiran - Kompetisi.pdf 1 Lampiran - Kompetisi.pdf 1 2/25/2008 1:38:39 PM 2/25/2008 1:38:39 PM
Lampiran - Kompetisi.pdf 2 Lampiran - Kompetisi.pdf 2 2/25/2008 1:38:39 PM 2/25/2008 1:38:39 PM
KOMUNITAS
Komunitas
Untuk membantu Anda dalam mengikuti kompetisi .NET
Developer Idol 2008, kami bekerja sama dengan beberapa
komunitas untuk menyediakan forum diskusi online khusus:
Indonesia .NET Developer Community (INDC)
INDC adalah komunitas developer terbesar di Indonesia
dengan anggota lebih dari 13.000 orang di seluruh
Indonesia. Anggota INDC aktif berdiskusi di mailing list
dotnet@netindonesia.net dan Geeks Blogs Portal
(http://geeks.netindonesia.net).
Windows Server System Indonesia (WSS-ID)
WSS-ID adalah komunitas IT Professional terbesar di
Indonesia dengan anggota lebih dari 8.500 orang di
seluruh Indonesia. Anggota WSS-ID aktif berdiskusi secara
online di WSS-ID Portal (www.wss-id.org) dan mailing list
wss-id@netindonesia.net.
Dalam website Geeks dan WSS-ID, Anda bisa mendapatkan:
Kode sumber aplikasi perpustakaan dalam C# dan VB.NET.
Download tutorial dan e-book gratis tentang .NET.
Forum diskusi online .NET Developer Idol 2008.
Informasi terkini training/workshop/event dari Microsoft.
Blogs gratis untuk konten developer dan IT Pro.
Untuk mendaftar ke mailing list, kirim e-mail tanpa subjek ke:
INDC : dotnet-subscribe@netindonesia.net
WSS-ID : wss-id-subscribe@netindonesia.net
: Membangun Sendiri Aplikasi Perpustakaan 97
Lampiran - Komunitas.pdf 1 Lampiran - Komunitas.pdf 1 2/25/2008 1:38:54 PM 2/25/2008 1:38:54 PM
Lampiran - Komunitas.pdf 2 Lampiran - Komunitas.pdf 2 2/25/2008 1:38:54 PM 2/25/2008 1:38:54 PM
!Cover 2-4_Buku Visual Studio.indd 3 2/25/2008 8:49:34 AM
!Cover 2-4_Buku Visual Studio.indd 4 2/25/2008 8:49:19 AM

Anda mungkin juga menyukai