Professional Documents
Culture Documents
31
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 fleksibilitas 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
32
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 dikatakan 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 otomatis? 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. 33
Microsoft memberikan sekumpulan teknologi yang siap dikembangkan untuk ketiga jenis Smart Client di atas, di antaranya: Microsoft Office Technology, aplikasi perkantoran yang memberikan 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 aplikasi untuk mobile secara lebih mudah dengan bantuan .NET Compact Framework SDK dan Visual Studio 2008.
34
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 sekumpulan 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 dilakukan 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 mendownload aplikasi versi terbaru atas izin pengguna.
35
Pada saat aplikasi dimatikan, aplikasi akan melakukan konsep 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 onlineoffline. SQL Server Compact Edition memiliki konsep data sinkronisasi dengan basisdata SQL Server.
Pada bagian berikutnya dan seterusnya pada buku ini akan dikembangkan salah satu aplikasi sederhana yang akan menjadi studi kasus pengembangan aplikasi berarsitektur Smart Client. Aplikasi yang akan dinamakan dengan nama SmartProject ini akan menggunakan beberapa skenario Smart Client di atas dengan pendekatan yang sederhana dan mudah diterapkan.
36
Fitur-fitur tersebut akan dipetakan dan dibahas pada masing-masing bab di buku ini berdasar pada teknologi yang dipakai pada fitur yang bersangkutan.
Skenario-skenario di atas diungkapkan dalam sekumpulan skenario use case. Bagian ini menjadi bagian yang esensi dalam pengembangan aplikasi karena berisi proses bisnis aplikasi. Skenarioskenario 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. 38
Skenario Alternatif Kegagalan Operasi Penyimpanan Proyek: 1. Aplikasi akan menampilkan eksepsi aplikasi dan meminta pengguna 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 pengguna 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.
39
Skenario Alternatif Kegagalan Operasi Pembuatan Laporan: 1. Aplikasi akan menampilkan eksepsi aplikasi dan meminta pengguna 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 pengguna mengirimkan umpan balik pada pengguna. Skenario Pembangkit Reminder Skenario Dasar: 1. Berdasar pada skenario penyimpanan informasi proyek pengguna 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 pengguna mengirimkan umpan balik pada pengguna.
40
Berdasar pada sekumpulan skenario di atas, diharapkan pembaca dapat paham kemampuan aplikasi yang akan dikembangkan di babbab 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.
Compact
Pada pembuatan aplikasi ini, penulis menggunakan Visual Studio 2008 walaupun secara konseptual hal yang sama juga dapat dilakukan dengan perangkat bantu Visual Studio 2008.
41
3. Pada Object Explorer buat sebuah basisdata dengan cara memilih konteks menu pada databases kemudian memilih New Database.
42
4. Pada dialog new database beri nama basisdata dengan nama ProjectDb.
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.
43
Nama Kolom ProjectID nama detail klienID tanggalMulai tanggalFin Selesai nomorPO budget
Tipe Data Uniqueidentifier, PK nvarchar(50) nvarchar(MAX) Int. FK Datetime Datetime Bit Nchar(10) money
8. Tabel berikut menggambarkan kolom yang digunakan untuk menyusun tabel dengan nama tabel Klien.
Nama Kolom klienID namaKlien nomorKlien Tipe Data int, PK nvarchar(50) 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.
44
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 dilibatkan 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.
11. Hasil akhir langkah-langkah ini akan menghasilkan suatu basisdata dengan nama ProjectDB yang memiliki perancangan seba-gai berikut.
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 45
Edition akan dibahas dalam bab yang terpisah pada bagian akses basisdata dengan ADO.NET.
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
46
pakai yang terkait dengan basisdata ProjectDB yang dapat didownload 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.
4. Hasil eksekusi dua skrip tersebut adalah menghasilkan berkasberkas stored procedures yang dapat dilihat pada folder Programmability > Stored Procedures. Seperti pada gambar berikut.
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
47
Pada bab berikutnya akan difokuskan pengembangan antarmuka klien Windows Mobile pada studi kasus aplikasi SmartProject dengan memanfaatkan teknologi Windows Form di .NET Compact Framework.
48