Anda di halaman 1dari 18

31

Smart Client
Just Make It Happen | Risman Adnan
3.1 Model Arsitektur Smart Client
Pertanyaan pertama yang muncul pada saat membaca judul pada
bagian ini, mungkin seputar relasi antara pengembangan Windows
Mobile dengan istilah Smart Client.
Smart Client sendiri bukanlah teknologi yang hadir memfasilitasi
pola kerja client, tetapi lebih berupa desain atau referensi arsitektur
yang mengoptimalkan teknologi yang sudah ada demi kemudahan
pengguna.
3.1.1 Konsep Smart Client
Secara definisi linguistik, smart client terdiri atas dua kata, yakni
smart yang berarti cerdas, dan client yang dalam bahasa komputer
dimaknai dengan suatu program komputer yang memiliki kemam-
puan untuk memanipulasi, mengelola, menjalankan sekumpulan
fungsi, dan dapat meminta sekumpulan layanan aplikasi yang di-
miliki server.
32
Smart Client mengombinasikan dua buah teknologi yang telah
terlebih dahulu dikenal oleh para pengguna komputer, yakni Rich
Client dan Thin Client. Rich Client adalah aplikasi standalone yang
hadir semenjak dekade 90-an, sebagai contoh aplikasi ini adalah
notepad. Sementara Thin client dikenal pada saat internet tengah
berkembang, aplikasi Thin client pada umumnya disimpan di web
server dan diakses melalui Web browser. Smart Client hadir dengan
mengambil sisi baik dari masing-masing arsitektur aplikasi seperti
yang digambarkan pada Gambar 3.1.
Sebuah aplikasi dikatakan mengikuti arsitektur Smart Client bila
memiliki beberapa karakteristik kemampuan berikut.
Dapat terkoneksi dengan sumber daya luar, seperti jaringan
internet, database server, hingga web services.
Memiliki kemampuan bekerja offline dikala koneksi internet
dalam keadaan terputus, termasuk di dalamnya kemampuan
untuk melakukan sinkronisasi data pada saat kembali ke
keadaan online.
Memudahkan dalam instalasi, pengelolaan, dan pembaruan
sistem. Smart Client hendaknya mengusung kemampuan
deployment yang dinamis, seperti click once installation,
automatic update, dan sebagainya.
Tampilan antarmuka pengguna yang lebih fleksibel, performa
yang responsif, dan mendukung operasi-operasi umum yang
dimiliki sistem operasi, seperti drag-and-drop, undo-redo, dan
sebagainya.
Fleksibilitas peranti, Smart Client menekankan tingkat fleksi-
bilitas yang khusus dispesifikkan untuk peranti tertentu, seperti
notebook, pocket PC, tablet PC, mobile phone. Dengan
demikian, aplikasi Smart Client dapat memanfaatkan teknologi
yang khusus diimplementasikan pada peranti tersebut, seperti
penggunaan touch pen, transcriber, speech recognation, dan
sebagainya.
Mendayagunakan secara optimal sumber daya sistem, Smart
Client sentiasa menggunakan sumber daya lokal, seperti CPU
33
processing, media penyimpanan lokal, ataupun peranti input
dan output seperti scanner atau printer.
Sekuritas, Smart Client dapat memberikan suatu mekanisme
sekuritas yang mencukupi dengan paradigma sekuritas berlapis.

Gambar 3.1 Relasi Smart Client, Thin Client, dan Thick Client
Lalu bagaimana cara menentukan sebuah aplikasi Windows dikata-
kan sebagai Smart Client? Berikut empat pertanyaan inti yang akan
memberi kemudahan kita dalam menentukan apakah aplikasi yang
kita kembangkan adalah Smart Client.
Apakah aplikasi mendukung pembaruan sistem secara oto-
matis?
Apakah aplikasi memiliki antarmuka pengguna yang kaya?
Apakah aplikasi mendukung bekerja offline?
Apakah aplikasi akan lebih berguna bila bekerja secara online?
Jika semua jawaban pertanyaan di atas adalah Ya, maka aplikasi
yang kita kembangkan adalah Smart Client.
34
3.1.2 Jenis Smart Client
Secara umum terdapat tiga jenis Smart Client, yakni:
Windows Smart Client Application, aplikasi Smart Client yang
berjalan di atas sistem operasi Windows.
Office Smart Client, aplikasi Smart Client yang menekankan
pada produktivitas perkantoran di skala enterprise, seperti peng-
gunaan Infopath, VSTO, smart tag, hingga xml based smart
document.
Mobile Smart Client, aplikasi Smart Client yang dikembangkan
untuk pocket PC, Smartphones, dan peranti mobile dengan
ukuran yang kecil lainnya.
Microsoft memberikan sekumpulan teknologi yang siap dikem-
bangkan untuk ketiga jenis Smart Client di atas, di antaranya:
Microsoft Office Technology, aplikasi perkantoran yang mem-
berikan kemudahan kepada pengguna untuk bekerja secara
cerdas, efisien, dan berkolaborasi. Microsoft Office bagi
pengembang dapat dikatakan sebagai platform yang dapat
dikembangkan untuk menghasilkan solusi costum yang familiar,
konsisten, dan mengikuti format data standar XML.
Windows Form Technology, bagian dari Microsoft .NET yang
memungkinkan pengembang untuk mengembangkan aplikasi
berbasis Windows secara lebih mudah, memiliki tanggapan
yang baik, serta memiliki sekumpulan reusable library, mulai
dari antarmuka pengguna, pembuatan laporan, pencetakan,
konektivitas data yang siap pakai.
.NET Compact Framework, mendukung pengembangan apli-
kasi untuk mobile secara lebih mudah dengan bantuan .NET
Compact Framework SDK dan Visual Studio 2008.
3.1.3 Smart Client pada Windows Mobile
Windows Mobile memiliki sekumpulan cara untuk mengoneksikan
diri terhadap jaringan seperti internet. Konektivitas melalui internet
pada windows mobile pada umumnya dilakukan melalui:
35
Koneksi internet melalui jaringan GPRS/3G.
Koneksi internet melalui jaringan nirkabel WIFI.
Koneksi internet melalui WMDC atau Activesync.

Berbagai koneksi tersebut tentu tidak menjamin bahwa Windows
Mobile dapat selalu terkoneksi. Sebagai contoh, bayangkan apabila
pengguna menggunakan aplikasi Windows Mobile di pesawat dan
pengguna harus mengerjakan pekerjaan, seperti memperbarui stok
barang dan membuat laporan dengan Excel mobile. Terdapat se-
kumpulan data yang harus diambil melalui sumber data (dalam hal
ini server) dan terdapat sekumpulan data yang dapat dioperasikan
secara offline. Alangkah baiknya terdapat sebuah aplikasi yang
dapat digunakan secara offline dan online, dan pada hal ini Smart
Client menjadi bermanfaat.
Pada Windows Mobile pengembang dapat melakukan beberapa
perilaku aplikasi sehingga dapat bekerja layaknya Smart Client.
Beberapa konsepnya dikemukakan sebagai berikut.
Akses web services. Windows Mobile dapat berkomunikasi
dengan protokol web, hal ini memungkinkan Windows Mobile
dapat mengutilasi pengaksesan web services, atau bahkan .NET
Compact framework mendukung pemanggilan WCF. Konsep ini
akan dibahas lebih lanjut pada bagian pengembangan Web
Services.
Pembaruan otomatis, pada Windows Mobile. Konsep ini dila-
kukan dengan memanfaatkan kemampuan akses internet pada
perangkat Windows Mobile. Pada dasarnya langkah-langkahnya
sebagai berikut:
Aplikasi akan melakukan pemeriksaan ke sebuah server
pembaruan.
Aplikasi akan mencocokkan data versi yang tengah berjalan
dengan berkas metadata aplikasi yang terdapat pada server.
Apabila ditemukan versi terbaru, maka aplikasi akan men-
download aplikasi versi terbaru atas izin pengguna.
36
Pada saat aplikasi dimatikan, aplikasi akan melakukan kon-
sep pembaruan, yang pada intinya aplikasi akan menghapus
versi terdahulu lalu menggantikannya dengan versi terbaru.
Pada saat aplikasi dieksekusi kembali, maka aplikasi yang
dieksekusi adalah yang terbaru.
Sinkronisasi data offline-online. Windows mobile memiliki
dukungan basisdata yang mendukung skenario online-
offline. SQL Server Compact Edition memiliki konsep data
sinkronisasi dengan basisdata SQL Server.
Pada bagian berikutnya dan seterusnya pada buku ini akan dikem-
bangkan salah satu aplikasi sederhana yang akan menjadi studi
kasus pengembangan aplikasi berarsitektur Smart Client. Aplikasi
yang akan dinamakan dengan nama SmartProject ini akan meng-
gunakan beberapa skenario Smart Client di atas dengan pendekatan
yang sederhana dan mudah diterapkan.
3.2 Studi Kasus Aplikasi Smart Client
3.2.1 Aplikasi SmartProject
Aplikasi SmartProject adalah aplikasi manajemen dana proyek yang
dibangun dengan arsitektur Smart Client dan diimplementasikan
pada platform Windows Mobile. Aplikasi SmartProject memiliki fitur-
fitur sebagai berikut.
Perekaman informasi dana proyek yang meliputi nama klien,
jumlah dana proyek, deskripsi proyek, deadline proyek, hingga
nomor pembayaran klien (client payment order).
Reminder atau notifikasi proyek yang tengah berlangsung.
Notifikasi sms kepada klien berdasar pada proyek yang tengah
berlangsung.
Sinkronisasi informasi proyek yang akan dikirimkan ke web
services.
Rangkuman omset project yang diterima per bulan.
37
Fitur-fitur tersebut akan dipetakan dan dibahas pada masing-masing
bab di buku ini berdasar pada teknologi yang dipakai pada fitur yang
bersangkutan.
3.2.2 Arsitektur Deployment Aplikasi SmartProject
Aplikasi SmartProject seperti aplikasi pada umumnya menggunakan
teknologi client server yang memanfaatkan pada middleware web
services dalam berkomunikasi dengan basisdata. Gambar berikut
menggambarkan deployment view pada aplikasi yang bersangkutan.

Gambar 3.2 Arsitektur aplikasi SmartProject
3.2.3 Skenario Aplikasi SmartProject
Skenario aplikasi SmartProject digambarkan dalam beberapa skena-
rio, yakni:
Skenario penyimpanan informasi proyek ke perangkat Windows
Mobile.
Skenario sinkronisasi informasi proyek ke web services.
Skenario pembuatan laporan omset proyek.
Skenario pembangkitan notifikasi pada klien berupa sms atau
email.
Skenario pembangkitan pengingat (reminder) terhadap proyek.
38
Skenario-skenario di atas diungkapkan dalam sekumpulan skenario
use case. Bagian ini menjadi bagian yang esensi dalam pengem-
bangan aplikasi karena berisi proses bisnis aplikasi. Skenario-
skenario aplikasi diungkapkan sebagai berikut.
Skenario Penyimpanan informasi Proyek
Skenario Dasar:
1. Pengguna membuka aplikasi SmartProject.
2. Pengguna mengisikan sekumpulan informasi sebagai berikut:
a. Nama proyek ditulis pada textbox.
b. Deskripsi Proyek ditulis pada textbox yang memiliki baris
multi.
c. Nama Klien diambil dari halaman kontak pada Windows
Mobile.
d. Tanggal Mulai dipilih dari formulir pilihan tanggal dan waktu.
e. Tanggal Berakhir dipilih dari formulir pilihan tanggal dan
waktu.
f. Besarnya sokongan dana.
g. Checkbox reminder dan notifikasi.
3. Pengguna mengonfirmasi informasi dan menyimpannya ke
aplikasi.
4. Aplikasi akan menyimpan informasi tersebut ke basisdata pada
Windows Mobile.
Skenario Alternatif Perubahan Informasi Proyek:
1. Pengguna membuka aplikasi SmartProject
2. Pengguna memilih menu Kelola Proyek.
3. Aplikasi akan menampilkan daftar proyek yang aktif.
4. Pengguna dapat menghapus proyek atau mensinkronisasi daftar
proyek melalui layanan web. Skenario sinkronisasi dengan
layanan web dijelaskan secara terpisah.
5. Pengguna mengonfirmasi perubahan yang terjadi.
39
Skenario Alternatif Kegagalan Operasi Penyimpanan Proyek:
1. Aplikasi akan menampilkan eksepsi aplikasi dan meminta peng-
guna mengirimkan umpan balik pada pengguna.

Sinkronisasi Proyek melalui Layanan Web
Skenario Dasar:
1. Pengguna memilih menu kelola proyek.
2. Pengguna memilih menu sinkronisasi
3. Aplikasi akan menghubungi web services.
4. Web services akan membaca data dari web services kemudian
mengirimkannya ke aplikasi.
5. Aplikasi akan memanggil dan melakukan pembaruan list
proyek.
Skenario Alternatif Kegagalan Operasi Sinkronisasi Proyek:
1. Aplikasi akan menampilkan eksepsi aplikasi dan meminta peng-
guna mengirimkan umpan balik pada pengguna.

Sinkronisasi Pembuatan Laporan Omset Proyek
Skenario Dasar:
1. Pengguna memilih menu laporan.
2. Aplikasi akan menampilkan dialog laporan.
3. Pengguna memilih opsi laporan.
a. Laporan umum proyek
b. Laporan berdasar klien
4. Aplikasi membangkitkan laporan berdasarkan pilihan pengguna.
5. Aplikasi akan membangkitkan laporan omset proyek berdasar
bulan atau nama klien.


40
Skenario Alternatif Kegagalan Operasi Pembuatan Laporan:
1. Aplikasi akan menampilkan eksepsi aplikasi dan meminta peng-
guna mengirimkan umpan balik pada pengguna.

Skenario Pembangkit Notifikasi
Skenario Dasar:
1. Berdasar pada skenario kelola proyek, pengguna memilih menu
kirim notifikasi.
2. Aplikasi akan membuatkan item sms/email untuk pembuatan
notifikasi berdasar pada:
a. Isi sms didasarkan pada nama proyek, deksripsi proyek, dan
jumlah yang dibebankan pada klien.
b. Notifikasi diset dikirimkan berdasar pada akhir proyek.
Skenario Alternatif Kegagalan Pembuatan Reminder Laporan:
1. Aplikasi akan menampilkan eksepsi aplikasi dan meminta peng-
guna mengirimkan umpan balik pada pengguna.

Skenario Pembangkit Reminder
Skenario Dasar:
1. Berdasar pada skenario penyimpanan informasi proyek peng-
guna dapat mengeset reminder.
2. Aplikasi akan membuatkan item task untuk pembuatan notifikasi
berdasar pada:
a. Nama Task didasarkan pada nama proyek.
b. Durasi didasarkan pada durasi proyek.
c. Reminder diset berdasar tiga hari proyek setelah berjalan.
Skenario Alternatif Kegagalan Pembuatan Reminder Laporan:
1. Aplikasi akan menampilkan eksepsi aplikasi dan meminta peng-
guna mengirimkan umpan balik pada pengguna.
41
Berdasar pada sekumpulan skenario di atas, diharapkan pembaca
dapat paham kemampuan aplikasi yang akan dikembangkan di bab-
bab berikutnya. Pembaca dapat memperjelas skenario kerja aplikasi
ini dengan membuat diagram, seperti use case diagram dan activity
diagram. Diagram-diagram ini dapat dikembangkan lebih lanjut oleh
pembaca, namun pembuatannya di luar konteks pada buku ini.
3.2.4 Teknologi Dibalik Aplikasi SmartProject
Pada pengembangan aplikasi ini, penulis menggunakan sekumpulan
perangkat bantu dan teknologi seperti pada tabel berikut.
Teknologi/Perangkat
Bantu
Deskripsi
Windows Form Pembuatan antarmuka klien Windows Mobile
ADO.NET Akses data di web services dan pada klien
Windows Mobile
Web Services Aplikasi web yang memfasilitasi pertukaran data
antara Windows Mobile klien dan basisdata
Compact Framework 3.5 Sekumpulan pustaka pemograman yang memung-
kinkan platform Windows mobile dapat dilakukan
dengan lebih produktif dengan bahasa seperti C#
dan VB
SQL Server Express 2005 Produk basisdata buatan Microsoft yang men-
dukung kemudahan dalam pembuatan basisdata
dan dukungan akses data yang memadai
SQL Server Compact
Edition 3.5
Dukungan basisdata SQL Server untuk perangkat
Windows Mobile
SQL Management Studio
Express
Perangkat bantu ini membantu pengembang dalam
membuat basisdata SQL Server lebih mudah dan
menyenangkan

Pada pembuatan aplikasi ini, penulis menggunakan Visual Studio
2008 walaupun secara konseptual hal yang sama juga dapat dila-
kukan dengan perangkat bantu Visual Studio 2008.
42
3.3 Perancangan Data Aplikasi Smart Client
Pada bagian ini akan dikembangkan basisdata yang akan diguna-
kan oleh aplikasi SmartProject untuk menyimpan dan mengelola
data. Terdapat dua buah basisdata yang akan dikembangkan, yakni
sebuah basisdata compact edition yang akan dikonsumsi oleh
aplikasi Windows Mobile, dan sebuah basisdata yang akan dikon-
sumsi oleh web services. Kedua basisdata tersebut pada intinya
memiliki kesamaan dari sisi kolom dan juga isinya, hal tersebut
karena keduanya akan saling bersinkronisasi dari sisi penggunaan.
Langkah-langkah berikut menggambarkan proses pembuatan
basisdata pada SQL Server melalui bantuan SQL Server Express
Management Studio.
1. Buka Management Studio Express.
2. Login ke basisdata SQL Server, pilih opsi Windows
Authentication.

Gambar 3.3 Dialog Login SQL Server
3. Pada Object Explorer buat sebuah basisdata dengan cara
memilih konteks menu pada databases kemudian memilih New
Database.
43

Gambar 3.4 Pembuatan Basisdata
4. Pada dialog new database beri nama basisdata dengan nama
ProjectDb.

Gambar 3.5 Dialog New Database
5. Berkas ProjectDb akan dibuat dan secara default akan disimpan
pada tempat instalasi SQL Server yang bersangkutan pada folder
//data.
6. Langkah berikutnya adalah membuat tabel. Tabel dapat dibuat
dengan memilih database ProjectDb > memilih konteks menu >
new table.
7. Tabel berikut menggambarkan kolom-kolom yang menyusun
pada tabel baru yang dibuat dengan nama tabel Project.
44
Nama Kolom Tipe Data
ProjectID Uniqueidentifier, PK
nama nvarchar(50)
detail nvarchar(MAX)
klienID Int. FK
tanggalMulai Datetime
tanggalFin Datetime
Selesai Bit
nomorPO Nchar(10)
budget money

8. Tabel berikut menggambarkan kolom yang digunakan untuk
menyusun tabel dengan nama tabel Klien.
Nama Kolom Tipe Data
klienID int, PK
namaKlien nvarchar(50)
nomorKlien nvarchar(50)

9. Tabel Project memiliki primary key ProjectID, sementara tabel
Klien memiliki primary key KlienID. Pengesetan primary key
dapat dilakukan dengan memilih kolom yang hendak dijadikan
primary key, kemudian memilih konteks menu dan memilih set
primary key seperti pada gambar berikut.

Gambar 3.6 Konteks menu pengesetan primary key
45
10. Sementara untuk membuat Foreign Key, hal ini dapat dilakukan
lebih mudah menggunakan mode diagram. Mode diagram dapat
dibangkitkan dengan memilih folder Database Diagrams pada
Object Explorer. Lakukan penambahan tabel yang hendak dili-
batkan kemudian, drag and drop garis dari kolom yang hendak
di-foreign-kan dengan kolom induk yang digunakan. Mekanisme
drag and drop tersebut akan menampilkan dialog relationship
yang memetakan dua kolom sebagai berikut.

Gambar 3.7 Pengesetan Foreign Key
11. Hasil akhir langkah-langkah ini akan menghasilkan suatu
basisdata dengan nama ProjectDB yang memiliki perancangan
seba-gai berikut.

Gambar 3.8 Rancangan basisdata ProjectDB
Basisdata di atas akan dikonsumsi oleh web services. Basisdata yang
akan dikonsumsi langsung oleh klien Windows Mobile akan mirip
dengan rancangan basisdata di atas. Yang membedakan hanya
beberapa batasan ukuran rekaman yang didukung pada SQL Server
Compact Edition. Pembuatan basisdata pada SQL Server Compact
46
Edition akan dibahas dalam bab yang terpisah pada bagian akses
basisdata dengan ADO.NET.
3.4 Pembuatan Stored Procedures Basisdata
Basidata yang telah dibuat tentu akan dimanipulasi oleh program.
Terdapat berbagai cara akses basisdata yang dapat dilakukan oleh
program yang menggunakan teknologi .NET. Salah satu teknologi
yang diyakini efisien dalam melakukan akses manipulasi basisdata
dengan SQL adalah menggunakan stored procedures (SP). SP
adalah salah satu pendekatan manipulasi basidata yang mem-
bungkus komunikasi manipulasi basisdata dalam bentuk SQL
(structured query language) dalam sebuah berkas khusus yang
diletakkan dan dieksekusi di server.
Stored Procedures banyak digunakan karena memberikan banyak
keuntungan, di antaranya:
Penyimpanan logika manipulasi dan eksekusi SQL dalam
sebuah berkas yang tersentralisasi pada server.
Dukungan eksekusi perintah yang lebih efisien karena diekse-
kusi di server dengan pemicu yang efisien dari sisi pengiriman
perintah.
Dukungan keamanan yang lebih baik dari SQL injection. Stored
procedures dieksekusi tidak menggunakan pernyataan SQL,
tetapi dieksekusi dengan pendekatan programatis sehingga
lebih aman dari SQL injection.

Aplikasi SmartProject akan memanfaatkan stored procedures dalam
komunikasi dan akses basisdata. Untuk melakukannya, berikut
langkah-langkahnya.
1. Pada object explorer, pilih basisdata ProjectDB, pilih konteks
menu kemudian pilih new query.
2. Jendela query akan tampil dan ketikkan kode stored procedures
untuk memudahkan pembaca dalam melakukan pengetikan
stored procedures. Penulis telah siapkan skrip ProjectDB-SP.sql.
Skrip tersebut berisi sekumpulan stored procedures yang siap
47
pakai yang terkait dengan basisdata ProjectDB yang dapat di-
download pada situs penulis.
3. Pengeksekusian berkas sql tersebut dapat dilakukan dengan
memilih menu File > Open > pilih berkas SQL > pilih drop-down
list sehingga terpilih ProjectDB > kemudian eksekusi dengan
menekan tombol execute (tanda seru/!) seperti pada gambar
berikut.

Gambar 3.9 Toolbar eksekusi script
4. Hasil eksekusi dua skrip tersebut adalah menghasilkan berkas-
berkas stored procedures yang dapat dilihat pada folder
Programmability > Stored Procedures. Seperti pada gambar
berikut.

Gambar 3.10 Daftar Stored Procedures pada ProjectDB
5. Stored procedures tersebut dapat dieksekusi menggunakan
perintah exec [nilaiparameter]. Sebagai contoh, mengeksekusi
stored procedures usp_KlienSelect dengan nilai parameter
pertama adalah null dilakukan dengan cara sebagai berikut.
exec [dbo].[usp_KlienSelect] null;

6. Perintah Exec tersebut dapat dilakukan di SQL Server
Management Studio query atau dilakukan melalui pendekatan
pemrograman dengan ADO.NET. Perintah exec mengutilasi
penggunaan skrip teks. Pada bab berikutnya akan dijelaskan
48
bagaimana mengeksekusi stored procedures dengan rutin
ADO.net.
3.5 Referensi Lebih Lanjut
Pada bagian ini kita telah membahas salah satu pendekatan
pengembangan klien Windows Mobile menggunakan arsitektur
Smart Client. Pembahasan diawali dengan definisi Smart Client dan
dilanjutkan dengan perancangan basisdata yang akan digunakan
pada pembuatan aplikasi sederhana yang mengadopsi arsitektur
Smart Client. Berbagai informasi lebih lanjut tentang Smart Client
dan hal yang terkait pada pambahasan bab ini dapat diakses di:
Smart Client | http://msdn.microsoft.com/smartclient
MSDN SQL Server |
http://go.microsoft.com/fwlink/?LinkId=42457
Design WM Wiki |
http://go.microsoft.com/fwlink/?LinkId=76514
Pada bab berikutnya akan difokuskan pengembangan antarmuka
klien Windows Mobile pada studi kasus aplikasi SmartProject dengan
memanfaatkan teknologi Windows Form di .NET Compact
Framework.

Anda mungkin juga menyukai