9 BAB 2
LANDASAN TEORI
2.1 NET Technology .NET (dibaca: dot net) Platform merupakan sekumpulan teknologi yang memungkinkan teknologi Internet ditransformasikan dalam platform distributed computing dengan skalabilitas dan kompabilitas yang tinggi. (Microsoft, 2004, msdn.microsoft.com/mobility/prodtechinfo/devtools/netcf/overview/default.aspx ). Secara teknis, .NET Platform menyediakan konsep pemrograman dengan library dan modul-modul baru yang konsisten, terlepas dari jenis bahasa pemrograman yang digunakan. .NET Platform menyediakan hal-hal berikut bagi para developer : 1.
Language independent, dengan programming model yang konsisten di semua tier aplikasi yang dibangun.
2.
Interoperabilitas dan kompatibilitas antar aplikasi.
3.
Kemudahan migrasi dari teknologi yang ada saat ini.
4.
Dukungan penuh terhadap berbagai teknologi standar yang digunakan dalam platform internet, antara lain HTTP, XML, SOAP dan HTML.
Teknologi inti .NET secara umum terdiri dari 3 area pokok : 1.
.NET Framework .NET Framework (gambar 2.1) adalah teknologi inti yang menyediakan berbagai library untuk digunakan oleh aplikasi diatasnya. Komponen inti .NET Framework adalah CLR (Common Language 9
10 Runtime) yang menyediakan runtime environment untuk aplikasi yang dibangun menggunakan Visual Studio .NET, terlepas dari jenis bahasa pemrogramannya.
XML Web Service
Web Forms
Window Forms
ASP.NET
Data and XML Classes
Base Framework Classes
Common Language Runtime
Gambar 2.1.NET Framework
Dengan adanya CLR tersebut, programmer dapat menikmati consistent object model dalam mengakses berbagai komponen library. Dengan demikian penggunaan bahasa pemrograman dalam dunia .NET adalah lebih ke masalah selera atau taste dan bukan pada kelebihan maupun kekurangan masing-masing bahasa karena semua bahasa pemrograman yang mendukung .NET mengakses library yang sama dalam .NET Framework, dengan objek model yang konsisten, dengan runtime file yang sama. Bahasa adalah sekedar skin atau theme. Bagi seorang .NET developer, pemahaman terhadap konsep dan objek model 10
11 .NET
Framework
adalah
jauh
lebih
penting
daripada
bahasa
pemrograman itu sendiri. 2.
.NET Building Block Services Building block merupakan sekumpulan services yang bersifat programmable yang dapat diakses secara offline maupun online. Service tersebut merupakan modul-modul yang terdapat di suatu komputer, server dalam jaringan, maupun disuatu server di Internet. Service ini merupakan suatu idealisasi di masa depan, dimana sebuah aplikasi bersifat terdistribusi dengan modul-modul yang tersimpan di berbagai tempat, tetapi dapat diintegrasikan membentuk suatu aplikasi. Konsep ini merupakan arah pengembangan subscription based software, yang saat ini mulai banyak berkembang dan dikenal sebagai ASP (Application Service Provider). Service tersebut dapat diakses oleh berbagai platform, asalkan platform tersebut mendukung protokol SOAP, yang merupakan protokol standar dalam mengakses web services. Peranan XML sebagai media definisi data menjadi sangat penting dalam hal ini dan XML juga menjadi pusat perubahan besar dalam platform .NET. Semua data dalam .NET selalu direpresentasikan dalam bentuk XML.
3.
Visual Studio.NET Visual Studio .NET menyediakan tools bagi para developer untuk membangun aplikasi yang berjalan di .NET Framework. Visual Studio.NET membawa perubahan besar dalam gaya pemrograman, karena setiap programmer dituntut untuk memahami .NET object model 11
12 dan Object Oriented Programming dengan baik, jika tidak ingin menghasilkan aplikasi dengan performa rendah. Visual Studio .NET juga semakin mempertipis jarak antara Windows Programmer dengan Web Programmer. Dunia scripting yang akrab bagi programmer web akan sulit ditemukan dalam .NET, karena pemrograman web sudah bersifat full object oriented, dengan fasilitas event-driven
programming
sebagaimana
layaknya
programming.
Pemrograman
web
lebih
menjadi
windows
mudah
dan
menyenangkan bagi para programmer windows. Bahasa pemrograman yang terdapat di Visual Studio .NET adalah VB.NET, C#, C++ .NET, J# dan Jscript .NET. Dalam masa mendatang akan terus ditambah berbagai bahasa pemrograman lain.
2.1.1
DataSet Salah satu perubahan besar dari ADO.Net adalah pergantian dari objek Recordset dengan kombinasi dari DataTable, DataSet, DataAdapter, dan DataReader. DataTable merepresentasikan koleksi baris dari satu tabel, hampir sama dengan Recordset. DataSet merepresentasikan koleksi dari objek DataTable, bersama dengan relationship, dan constraint yang menggabungkan beberapa tabel sekaligus. Secara efektif, DataSet adalah memory-relational structure dengan built-in XML support. Salah satu karakteristik dari DataSet adalah bahwa DataSet tidak punya pengetahuan apapun mengenai data source yang akan digunakan. DataSet adalah stand-alone, disconnected entity yang
12
13 digunakan untuk merepresentasikan koleksi dari data, dan bisa diparsingkan dari komponen ke komponen melewati layer-layer. DataSet juga bisa diserialisasi sebagai XML data stream, dimana membuatnya ideal untuk transfer data di platform yang heterogen. ADO.NET memakai object DataAdapter unuk mengambil data ke dan dari DataSet. DataSet menyediakan relational view dari data yang bisa dimanipulasi sebagai XML, dan memperbolehkan disconnected cached copy dari data untuk bisa diparsing antar tier aplikasi dan komponen. Gambar 2.2 merepresentasikan DataSet
13
14
DataSet Data Relation Collection Extended Properties Data Table Collection Data Table Data Row Collection Data View
Data Row
Child Relation Parent Relations Constraints Data Column Collection Extended Properties
Data Column
Primary Key
Extended Properties
Gambar 2.2 Data Set Object Model
2.1.2
ASP.NET Mobile Control ASP.NET terdiri dari kontrol, komponen dan tool-tool yang dapat membantu dalam pembuatan aplikasi mobile web secara cepat untuk peralatan wireless yang beragam, tanpa harus menulis kode yang terstruktur seperti pada peralatan yang spesifik. Form ASP.NET Mobile Web mendukung peralatan 14
15 mobile dan menyadari serta secara langsung menyediakan pendukung yang tepat untuk berbagai perlalatan mobile. Form ASP.NET Mobile Web dan Mobile Controls menawarkan fitur extensibility yang sama dengan yang disediakan dalam ASP.NET, dan menambahkan pendukung untuk bekerja dengan beragam peralatan lainnya. Secara khusus, form ASP.NET, Mobile Web dan Mobile Controls menyediakan bermacam-macam extensibilitas seperti di bawah ini : •
Dapat menulis Mobile Controls baru dan menggunakannya dalam halaman ASP.NET Mobile Web forms. Control baru dapat mempekerjakan turunan atau gabungan untuk mendapatkan keuntungan dari control luar.
•
Dapat menggunakan ASP.NET User Controls untuk menulis Mobile Controls sederhana secara deklaratif.
•
Dapat menyesuaikan output dari control mana saja pada device-specific basis dengan menambahkan adapter baru untuk controlnya.
•
Dapat menambahkan pendukung untuk seluruh peralatan baru dengan menggunakan adapter extensibilitas, tanpa mengubah aplikasi idividual.
2.1.3 VB.NET VB6 merupakan bahasa terpopuler saat ini, dan para pengguna VB klasik akan lebih mudah berpindah ke VB.NET daripada memilih C++.NET atau C#. Perpindahan ke VB.NET dapat diandaikan sebagai camp militer untuk para veteran VB6. Mitos selama ini menyebutkan bahwa VB 6 merupakan bahasa
15
16 yang “amburadul”, tidak jelas struktur obyeknya, mendukung Object Oriented tetapi banci, kompabilitas kurang, dan lain sebagainya. VB.NET tampil dengan wajah yang sama sekali berbeda dari VB6 dalam hal kaidah pemrograman, terutama dengan fasilitas strong typing dan code safety. Disamping itu, sifat .NET Framework yang dirancang dengan nuansa OOP juga harus diikuti, sehingga VB.NET dapat dikatakan sebagai full OOP programming. Hal tersebut mungkin bukanlah barang baru bagi para pemakai Java atau C, terutama merupakan hal baru bagi kebanyakan programmer VB6. Dengan demikian, mempelajari VB.NET berarti meningkatkan skill veteran VB klasik, sejajar pemrogram berbasis OOP lainnya. Tujuan umum dari VB.NET, yaitu : 1. Menciptakan aplikasi distribusi tinggi. Tren dalam aplikasi bisnis lebih mengarah pada model terdistribusi tingkat tinggi. Aplikasi pada generasi yang akan datang akan mempunyai elemen masing-masing yang terdistribusi diantara organisasi yang bermacam-macam. 2. Menyederhanakan pengembangan software. 3. Interface pengguna yang lebih baik daripada web. 4. Mendukung bahasa pemrograman yang bervariasi. 5. Platform yang efektif di masa yang akan datang.
2.1.4
C# Visual C#.NET 2003 merupakan bahasa pemrograman yang modern dan inovatif serta sebagai alat untuk membuat software yang terhubung dengan .NET untuk Microsoft Windows, Web, dan berbagai peralatan. Dengan sintak yang 16
17 mirip dengan C++, rangkaian bahasa baru yang mudah dimengerti pengembang, dan kemampuan memecahkan masalah dari berbagai platform dan peralatan, Visual C#.NET 2003 mempermudah pengembang software yang terhubung dengan .NET. Dengan XML, pengembang C# dapat menghasilkan dokumentasi source code yang bermanfaat. Advanced inheritance modelnya memungkinkan pengembang menggunakan kombali kode-kode dari bahasa pemrograman lainnya yang mendukung .NET. Dengan menggunakan Visual C#.NET 2003, pengembang dapat membangun Web Services yang kuat dimana dapat mengenkapsulasi proses bisnis dan membuat aplikasi yang dibuat mampu berjalan pada berbagai platform. Pengembang dapat dengan mudah menggabungkan berbagai Web Services yang ada dan tersedia di banyak Deskripsi yang independen, Discovery, dan Direktori Integration (UDDI), serta mampu menyediakan dasar yang kuat bagi layanan dan logika bisnis bagi aplikasinya. Visual C#.NET 2003 juga memungkinkan pengembang membangun aplikasi berbasiskan windows untuk generasi berikutnya.
2.1.5
Pemrograman di Pocket PC dan Smartphone Windows Mobile 2003 Microsoft Windows Powered Pocket PC
atau Smartphone adalah
personal operating system companion untuk mobile device user (Microsoft, 2004, Pocket PC development Guide SDK-Whats New on Microsoft Windows Powered Pocket PC 2003). Kita bisa melakukan pemrograman di Windows Mobile 2003 menggunakan beberapa program bantu seperti Visual Studio.NET, Microsoft Embedded Visual C++. Bahasa yang didukung adalah VB.NET dan 17
18 C#. Syarat yang harus dipenuhi untuk bisa melakukan programming dalam device ini adalah ketersediaan .NET Compact Framework, yaitu suatu subset dari .NET Framework yang hanya mencakup kebutuhan small device agar bisa diprogram
sesuai
kaidah
.NET
(Microsoft,
2004,
http://msdn.microsoft.com/mobility/prodtechinfo/devtools/netcf/overview/defaul t.aspx). Pemrograman yang dilakukan melalui Visual Studio.NET juga bisa dipakai untuk mendeploy emulator dari Pocket PC maupun Smartphone sehingga program dapat terlebih dahulu dicoba sebelum benar-benar diimplementasikan ke device sesungguhnya.
2.2
Sistem Terdistribusi Ada beberapa tipe arsitektur model aplikasi : arsitektur aplikasi Desktop (1-Tier), arsitektur aplikasi Client / Server (2-Tier), dan arsitektur aplikasi Multitier (n-Tier). Perbedaan jenis arsitektur terletak pada bagaimana lapisanlapisan (layers) yang menyusun suatu aplikasi diterapkan.
2.2.1
Arsitektur Sistem Terdistribusi Arsitektur sistem terdistribusi terbagi atas 2 jenis, yaitu : arsitektur Client / Server (2-Tier), arsitektur Multitier (n-Tier).
2.2.1.1 Arsitektur Client / Server (2-Tier) Client merupakan suatu aplikasi dimana end-user berinteraksi dan server merupakan tempat dimana data berada. Pendekatan ini biasanya dipakai untuk
18
19 menghadapi masalah apabila pengguna dari sistem yang akan dibuat cukup banyak, artinya disini dibutuhkan suatu tempat data yang terpusat. Arsitektur Client / Server juga dikenal dengan istilah two-tier application, lapisan presentasi ada di tier pertama dan database ada dalam server di tier kedua. Lapisan presentasi menyatu dengan lapisan servis bisnis, dimana kedua lapisan tersebut bisa terletak pada komputer client maupun server dan lapisan servis data yang biasanya terletak pada komputer server (Maloney,1999,p.3). Arsitektur Client / Server dapat dibagi menjadi 2 bagian, yaitu : •
Client Centris Proses validasi ataupun proses yang berhubungan dengan kegiatan bisnis di dalam Client Centric akan dilakukan dalam tier client, dan server hanya digunakan sebagai penyedia dan penyimpan data.
•
Server Centris Proses bisnis yang ada di dalam Server Centris dilakukan oleh server.
2.2.1.2 Arsitektur Multitier (n-Tier) Arsitektur Multitier merupakan arsitektur aplikasi yang terdiri atas banyak tier. Arsitektur aplikasi 2-Tier akan membentuk arsitektur aplikasi n-Tier apabila terdapat tambahan lapisan middle tier antara lapisan servis pemakai dengan lapisan servis data.
2.3 Web Services
19
20 Web Services merupakan sebuah protokol yang memungkinkan banyak komputer untuk bekerja bersama-sama dengan pertukaran informasi. Web Services didasarkan pada protokol standar XML, SOAP dan WSDL, dimana Web Services mengizinkan aplikasi untuk membagi datanya, dimana datanya dapat diakses diberbagai platform yang berbeda dan dalam berbagai bahasa pemrograman. Dari definisi diatas, terdapat empat hal yang utama dari Web Services : •
Programmable Application Logic Sebuah Web Services meng-expose beberapa logik aplikasi atau code. Code-code ini dapat saja melakukan perhitungan, pencarian ke database, maupun hal-hal lainnya yang dapat dilakukan oleh komputer.
•
Accesible to Programs Jika semua situs-situs web saat ini diakses dengan menggunakan web browser maka Web Services diakses melalui aplikasi-aplikasi komputer.
•
Standard Web Protocols Keseluruhan konsep Web Services berakar dari sekumpulan protokol web yang standar seperti HTTP, XML, SOAP, WSDL dan UDDI.
•
Platform Independent Web Services dapat diimplementasikan ke berbagai platform yang berbeda. Protokol-protokol yang standar tidak dikuasai oleh satu vendor saja, akan tetapi digunakan oleh semua vendor.
20
21 Web Services diakses melalui aplikasi-aplikasi yang dapat berupa sebuah aplikasi web, aplikasi windows, dan tipe-tipe aplikasi lainnya seperti yang terlihat pada Gambar 2.3.
Web Browser
Web Application
Internal Web Sevice
Eksternal Web Service Eksternal Web Service
Eksternal Web Service Eksternal Web Service
Gambar 2.3 Client Web Services
Aplikasi dapat menggunakan Web Services internal organisasi maupun eksternal Web Services yang disediakan oleh mitra bisnis. Sebuah Web Services dapat juga digunakan oleh Web Services lainnya. Dalam implementasinya Web Services
tidak mempunyai tampilan,
karena Web Services memang termasuk dalam tier business service. Artinya di dalam Web Services hanya tersedia fungsi-fungsi yang nantinya dapat digunakan oleh suatu aplikasi.
2.3.1
Latar Belakang Web Services Selama lebih dari 20 tahun terakhir, networking
dan Internet telah
berevolusi secara signifikan. Pertama kali dikenal adanya suatu transport
21
22 protocol yang merupakan jalur komunikasi untuk pertukaran data contohnya: TCP/IP dan di level yang lebih tinggi saat ini ada beberapa protokol aplikasi yang dikenal seperti SMTP, FTP dan Gopher. Setiap protokol mempunyai fungsi yang berbeda-beda. Kemudian muncul Hypertext Transport Protocol (HTTP) dan Hypertext Document Language (HTML). Melalui protokol dan format dokumen ini, memungkinkan kita untuk melakukan sharing dokumen yang berisi informasi dengan semua orang. User menggunakan aplikasi yang dinamakan browser untuk mengakses dokumen dengan format HTML. Seiring dengan berkembangnya networking dan Internet, berkembang pula software development. Dua teknologi utama dari software development dalam beberapa dekade terkhir ini adalah Object Oriented Programming dan teknologi Component. Object Oriented Programming diperkenalkan pada awal tahun 1980-an, banyak pihak yang beranggapan bahwa OOP sebagai solusi dari krisis software. Walaupun Object Oriented Programming dapat menghasilkan code yang reusable dan maintainable dan telah meningkatkan kualitas software, akan tetapi proyek-proyek software seringkali masih melebihi anggaran waktu dan biaya. Kemudian pada sekitar tahun 1990-an lahirlah teknologi component, contohnya: Visual Basic yang memungkinkan untuk membangun aplikasi Windows
dengan
memasukkan
control-control
kedalam
sebuah
form.
Penggunaan component menjadi sangat sukses dan banyak digunakan untuk membangun user interface. Para pelopor teknologi component juga membahas kemungkinan penggunaan business component, akan tetapi third-party business 22
23 component tersebut belum dapat mencapai tujuan seperti yang dicita-citakan. Contoh: situs seperti www.ComponentSource.com menampilkan ribuan GUI dan general-purpose component akan tetapi akan sulit untuk menemukan business component. Web Services dapat dilihat sebagai pengembangan dari model component melalui internet. Web Services di desain untuk menggunakan jaringan global yang ada saat ini yaitu internet dan intranet. Web Services dapat diimplementasikan dalam berbagai platform menggunakan bahasa pemrograman apapun. Secara umum tujuan akhir yang dijanjikan Web Services sama dengan apa yang dijanjikan oleh teknologi component.
2.3.2
Lapisan Konseptual Web Services Hal yang utama dari Web Services adalah standarisasi. Vendor-vendor utama seperti: IBM, Microsoft, dan Sun yang telah mendukung standarisasi tersebut.
23
24 Lapisan konseptual Web Services dapat dilihat dari gambar 2.4 :
Finding Web Services Universal Discover Description and Integration (UDDI)
Desribing Web Services Web Services Definition Language (WSDL)
Calling Web Services Simple Object Access Protocol (SOAP)
Data Encoding XML, XML Schema
Transport HTTP, SMTP
Gambar 2.4 Web Services Logical Layer (Sumber: http//www.w3.org/2002/ws/arch)
24
25 Lapisan-lapisan konseptual Web Services dengan urutan dari bawah ke atas pada Gambar 2.4 adalah sebagai berikut: •
Web Services meningkatkan protokol transportasi standar yang telah ada saat ini. Spesifikasi SOAP 1.1 mengizinkan transportasi melalui protocol seperti SMTP (Simple Mall Tranfer Protocol) dan Queues, tetapi hanya membolehkan binding ke protocol HTTP 1.1.
•
Web Services menggunakan beberapa rekomendasi dari W3C termasuk spesifikasi XML, dan spesifikasi XML Schema. SOAP menggunakan XML sebagai format encoding. WSDL dibangun di atas XML Schema. Spesifikasi XML Schema menjadi rekomendasi W3C sejak Mei 2001.
•
The Simple Object Access Protocol (SOAP) menjadi jantung dari lapisan konseptual Web Services. SOAP adalah protokol sederhana untuk pertukaran informasi. SOAP telah diserahkan ke W3C dan menjadi catatan W3C sejak Mei 2000.
•
The Web Services Definition Language (WSDL) digunakan untuk menjelaskan antar muka dari sebuah Web Services. WSDL telah diserahkan ke W3C dan telah menjadi catatan W3C sejak Maret 2001.
•
UDDI (Universal Description Discovery and Integration) adalah sebuah tempat penyimpanan. UDDI adalah sebuah usaha cross-industry oleh vendor-vendor software dan platform-platform terkemuka. UDDI saat ini berada di bawah organisasi UDDI dan belum diserahkan ke sebuah organisasi sekitar tetapi telah diimplementasi oleh Microsoft dan IBM.
25
26
2.3.3
Simple Object Access Protocol (SOAP) SOAP merupakan suatu dokumen XML yang mengatur bagaimana request dan respons dari suatu Web Services akan bekerja. Ide dasarnya adalah dua aplikasi dengan tidak mempedulikan operating system, bahasa pemrograman, atau detil implementasi teknis yang lain, dapat berinteraksi dan bekerja sama dalam menggunakan informasi secara bersamasama dengan menggunakan pesan yang dikodekan dalam suatu cara yang dapat dimengerti oleh kedua aplikasi tersebut. Pesan tersebut dapat berupa data XML. SOAP memiliki kompatibilitas, fleksibilitas, dan interoparabilitas (kemampuan dua tipe komputer berbeda untuk saling bekerja sama dan berkomunikasi) yang tinggi. Secara konseptual SOAP dapat dianggap sebagai DCOM versi XML, SOAP bersifat netral platform, netral bahasa dan tidak bergantung pada suatu objek model. Sehingga SOAP dapat digunakan oleh berbagai sistem operasi, walaupun sistem operasi tersebut terdiri dari objek yang berasal dari vendor yang berbeda, ditulis pada bahasa yang berbeda, dan didasarkan pada objek model yang bebeda. SOAP memiliki dua bentuk aplikasi: RPC dan EDI, RPC (Remote Procedure Call) adalah dasar pengolahan terdistribusi, cara program membuat suatu prosedur (function, method, atau sebutan lainnya), memanggil prosedur yang lain. Electronic Document Interchange (EDI) adalah dasar otomatisasi transaksi bisnis, penentuan format standar.
26
27 Jika SOAP digunakan sebagai EDI maka XML akan berupa order pembelian, pembayaran pajak, dan dokumen selanjutnya, namun jika SOAP digunakan sebagai RPC maka XML akan berupa parameter atau hasil kembalian (return value). Tujuan dari SOAP adalah untuk membuat suatu cara yang standar dalam pertukaran informasi yang bersifat tekstual diantara klien-klien dan aplikasiaplikasi yang berjalan di Internet. SOAP merupakan protokol yang sangat sederhana, tidak diperlukan sebuah upaya yang besar pada pihak pengiriman maupun penerima untuk dapat berkomunikasi dengan menggunakan protokol ini karena SOAP mengunakan XML sebagai data encoding format. Oleh karena itu, setiap sistem yang mampu melakukan parsing XML mampu berkomunikasi melalui SOAP. Bentuk pesan SOAP (SOAP Messages) seperti sebuah envelope yang berisi header (optional) dan body (required). Header berisi blok informasi yang berhubungan dengan bagaimana pesan tersebut diproses. Hal ini meliputi perouting-an dan delivery setting, authentication atau authorization assertions dan transaction contexts. Body berisi pesan yang diproses dan akan dikirim. Semua yang dapat ditampilkan dengan sintaks XML dapat dimasukkan dalam bagian body.
2.4 Extensible Markup Language (XML) XML merupakan dasar terbentuknya Web Services secara keseluruhan dibentuk diatas XML. XML digunakan untuk menjelaskan suatu data yang bersifat platform independent. 27
28 XML adalah sebuah standar World Wide Web Consortium yang mengijinkan data untuk bersifat portable dan bebas mendeskripsikan dirinya, sehingga data dapat dipertukarkan dengan mudah antara aplikasi maupun devices pada berbagai platform. Jadi XML merupakan ide untuk membuat format data yang universal dan standar. XML disimpan dalam format teks sehingga XML dapat dipertukarkan dengan mudah. Markup Language yang ada sebelumnya, yang juga dikenal adalah HTML (Hyper Text Markup Language), HTML dapat dianggap saudara dari XML karena sama-sama digunakan untuk melakukan marking up data. Perbedaan XML dan HTML adalah XML dapat menyimpan informasi yang terstruktur dan dapat digunakan oleh aplikasi lain karena formatnya yang standar. Selain berfungsi sebagai markup language yaitu mekanisme
yang digunakan
untuk menjelaskan struktur dalam sebuah dokumen. Menurut W3C, XML didesain untuk menampilkan data, dan berfokus pada tampilan data (markup data).
2.5 Mobile Web Application Mobile Web Application adalah aplikasi web dari mobile devices. Mobile Web Application menyediakan markup yang tepat untuk berbagai jenis mobile devices. Mobile
Web
Application
merupakan
teknologi
dan
tools
untuk
mengembangkan, menyebarkan, dan mempertahankan aplikasi mobile secara cepat. Integrasi dengan Visual Studio.NET memastikan bahwa pengembang dapat merubah kemampuan perangkat desktop mereka dan memproduksi mobile applications. 28
29 Mobile Web Application merupakan perluasan dari .NET Framework. Mobile Web Application merupakan kumpulan kontrol-kontrol yang digunakan pada halaman ASP.NET untuk menghasilkan output-output sesuai dengan piranti yang digunakan, jadi cukup sekali coding untuk banyak piranti, dan menghasilkan bukan hanya HTML tetapi juga WML. Masalah utama dari Mobile Web Application adalah WML, WML dirancang untuk menspesifikasikan isi, bukan tampilan, sehingga kadang-kadang sebuah code WML yang bekerjabaik padasatu piranti tidak dapat ditampilkan ketika di-render pada piranti lainnya. .NET Framework melalui Mobile Web Application dengan menggunakan ASP.NET mobile controls menawarkan solusi yang baik. Solusi ini menawarkan kemudahan dan menjauhi kompleksitas. Mobile Web Application mampu menghasilkan WML dan HTML, sehingga cocok untuk situs-situs yang akan ditampilkan baik pada WAP-enable devices dan HTML browsers pada Pocket PC. Di dalam .NET Framework melalui Mobile Web Applications terdapat : •
Mobile Web Forms Controls yang menghasilkan markup language untuk devices yang berbeda.
•
Mobile Internet Designer yang bekerja dengan Visual Studio .NET Integrated Design Environment (IDE) untuk menyediakan suatu lingkungan “drag-and-drop mobile development”.
•
Browser Capabilities yang cukup tersedia untuk menyampaikan ASP.NET device capabilities kepada mobile devices.
•
QuickStart Tutorial dengan contoh kode.
29
30 •
Developer Documentation
•
Device adapter code samples Suatu mobile devices dapat terhubung dengan Internet, dibutuhkan suatu teknologi vital bagi komunikasi wireless antara lain WAP dan GPRS.
2.6 UML (Unified Modelling Language) 2.6.1 Sejarah UML Metode pemograman berorientasi objek mulai muncul pada akhir tahun 80an sebagai alternatif baru dalam analisis dan desain. Banyak pengguna metode ini mengalami kesulitan menemukan permodelan yang memenuhi kebutuhan mereka secara lengkap. Menjawab kebutuhan ini, Booch, Jacobson, dan Rumbaugh muncul dengan metode permodelan mereka masing-masing. Ketiganya memiliki kekurangan dan kelebihan tersendiri. Pada pertengahan tahun 90-an, ketiganya mulai menggabungkan ide-ide dari metode mereka dan membentuk sebuah metode berorientasi objek yang kuat, yang kemudian dikenal dengan nama UML.
2.6.2
Pengertian UML UML
adalah
sebuah
bahasa
grafis
untuk
memvisualisasikan,
mendefinisikan, merancang dan mendokumentasikan unsur-unsur dari sistem piranti lunak. UML yang pada umumnya digunakan untuk membuat rancangan dari sistem, mencakup hal-hal yang berhubungan dengan unsur-unsur konkrit seperti kelas, skema basis data, serta komponen perangkat lunak yang dapat digunakan kembali (Booch, 1994, p13).
30
31 UML merupakan bahasa permodelan di mana unsur-unsur dan aturanaturan yang dimilikinya berfokus pada representasi konseptual dan fisikal dari sistem. Unsur-unsur dan aturan-aturan tersebut dapat digunakan untuk merancang dan membaca model objek, namun mereka tidak dimaksudkan untuk memberitahu bagaimana merancang sebuah model yang baik.
2.6.3
Kegunaan UML Adapun kegunaan UML adalah sebagai berikut : 1. UML sebagai bahasa visualisasi digunakan untuk merancang suatu model yang dapat dibaca oleh banyak orang dengan pengertian yang sama. 2. UML sebagai bahasa pendefinisian digunakan untuk mendefinisikan dengan rinci seluruh hasil analisis, desain, dan implementasi yang harus dilakukan dalam pengembangan sistem. 3. UML sebagai bahasa perancangan digunakan untuk merancang model yang dapat dikembangkan oleh bahasa pemrograman yang berbeda-beda. 4. UML sebagai bahasa dokumentasi digunakan untuk mendokumentasikan arsitektur sistem beserta perinciannya, unsur-unsur yang dibutuhkan dalam pengembangannya, serta perencanaan dan implementasi proyek secara keseluruhan dengan simbol-simbol yang mudah dimengerti.
2.6.4
Penggunaan UML UML khusus diperuntukkan untuk sistem yang bergantung pada perangkat lunak. UML telah digunakan secara efektif pada sistem informasi perusahaan, layanan perbankan, telekomunikasi, pertahanan dan keamanan, 31
32 transportasi, bisnis retail, bidang kesehatan, bidang keilmuan dan penelitian, serta layanan berbasis web. Penggunaan UML tidak terbatas pada permodelan aplikasi saja. UML juga cukup baik digunakan dalam sistem yang tidak bergantung pada perangkat lunak seperti aliran kerja, struktur dan kelakuan pasien di sebuah lembaga kesehatan, serta desain dari perangkat keras.
2.6.5
Struktur UML Unsur-unsur UML terdiri dari : 1.
Objek, yang merupakan abstraksi dari elemen-elemen model.
2.
Hubungan, yang menjadi alat penyatu bagi objek-objek yang ada.
3.
Diagram, yang mengelompokkan objek-objek dan hubungannya dalam kelompok-kelompok yang mudah dibaca. Selain memiliki unsur-unsur, UML juga memiliki aturan-aturan yang
berfungsi untuk mengatur bentuk sebuah model yang baik. Sebuah model dinyatakan telah dirancang dengan baik jika model tersebut konsisten secara semantik dan selaras dengan model-model lain yang terkait. Model yang dirancang akan dilihat dan dievaluasi oleh banyak pihak dari berbagai perspektif, seperti penyewa, analis, pengembang, integrator sistem, penguji system, teknisi, dan manajer proyek. Arsitektur berhubungan dengan struktur, penyewaan, fungsionalitas, performance, penyewaan kembali, kendala ekonomi dan teknologi serta hal-hal lainnya.
32
33
2.6.6
Diagram-Diagram UML
2.6.6.1 Use case Diagram Diagram use case (Gambar 2.5) adalah sebuah diagram yang diperkenalkan untuk memvisualisasikan use case (Fowler, 2000,p41). Diagram use case yang merupakan bagian dari UML ini, diidentifikasikan untuk sebuah sistem dan mencakup : 1. Aktor Aktor mewakili setiap orang atau segala sesuatu yang harus berinteraksi dengan sebuah sistem. Aktor dapat memasukkan data ke sebuah sistem dan menerima informasi dari sebuah sistem. Contoh aktor adalah seseorang, perangkat lunak, peralatan perangkat keras, ataupun jaringan. Jadi aktor tidak harus selalu manusia, walaupun aktor diwakili sebagai sebuah figur dalam diagram use case. Aktor selalu merupakan bagian eksternal dari sebuah sistem dan tidak akan pernah menjadi bagian dari sistem tersebut. Seseorang dapat diwakili oleh beberapa aktor karena orang tersebut mempunyai beberapa peran berbeda terhadap sebuah sistem dan beberapa orang dapat diwakili dengan aktor yang sama karena mereka mempunyai peran yang sama terhadap sistem tersebut. Aktor menyelesaikan atau melakukan langkah-langkah dalam use case. Aktor dapat terlibat dalam banyak use case dan sebaliknya, sebuah use case dapat dilakukan oleh beberapa aktor.
33
34
2. Use case Use case menjelaskan segala hal yang diinginkan oleh pengguna dari sebuah sistem. Use case adalah sekelompok skenario yang memiliki sebuah tujuan bersama bagi pengguna. Dalam UML, sebuah use case selalu dimulai dari sebuah aktor (Fowler,2000,p40). Sebuah format yang mudah untuk membuat sebuah use case adalah dengan menjelaskan skenario utamanya sebagai sebuah urutan langkahlangkah dan alternatif langkah-langkah sebagai variasi dari urutan tersebut. Ada banyak variasi dalam menjelaskan isi dari sebuah use case namun UML tidak menspesifikasikan standard tertentu. Setiap use case menjelaskan langkah-langkah yang harus dikerjakan untuk
mendapatkan
fungsi
dari
use
case
tersebut.
Kita
harus
mempertimbangkan fungsi dasar, alternatif yang ada, kondisi-kondisi yang salah, serta segala hal yang harus berada dalam keadaan benar sebelum memulai sebuah use case dan ketika keluar dari use case tersebut. Sebuah use case dapat mencakup kondisi, percabangan, dan perulangan. Jumlah detil yang diperlukan tergantung dari kebutuhan sebuah use case.
34
35
Start up
Shutdown
Produce Report
View Order Status Gambar 2.5 Use case Diagram
2.6.6.2 Sequence Diagram Sebuah sequence diagram memperlihatkan interaksi-interaksi antar objek yang terjadi dalam sebuah skenario. Sequence diagram dalam UML menambahkan dimensi waktu pada interaksi antar objek (Schmuller,1999,p108). Secara grafis, sebuah sequence diagram seperti pada gambar 2.6 adalah sebuah tabel yang memperlihatkan objek-objek yang diatur sepanjang garis horisontal x, dengan pertambahan waktu sepanjang garis vertikal y (Booch et al.,1999,p245).
35
36
:lender
:librarian
:index
:assistant
bookRequest (title) look up (title)
return info (title)
get (title) return (title)
return (bool)
Gambar 2.6 Sequence Diagram
2.6.6.3 Class Diagram Class diagram (Gambar 2.7) dibuat untuk menyediakan sebuah gambaran atau pandangan dari beberapa atau semua class dalam sebuah model. Sebuah class diagram menjelaskan tipe-tipe objek yang berada dalam sebuah sistem dan berbagai macam hubungan statik diantara mereka (Fowler,2000,p49). Class diagram memperlihatkan sekelompok class, interface, dan kolaborasi serta hubungan mereka (Booch,1999,p105). Salah satu detil-detil yang paling penting yang bisa dijelaskan pada atribut dan method class adalah visibility. Visibility sebuah fitur menjelaskan
36
37 apakah sebuah class dapat digunakan oleh class lain. Dalam UML, ada tiga macam visibility : 1. Public Class yang diluar class dengan visibility ini, dapat menggunakan fiturfiturnya. Simbol yang digunakan adalah simbol +. 2. Protected Semua turunan class ini dapat menggunakan fitur-fitur dari class ini. Simbol yang digunakan adalah simbol #. 3. Private Hanya class ini sendiri yang dapat menggunakan fitur-fiturnya. Simbol yang digunakan adalah simbol -.
1..*
Course Author salary : real
Qualification
is written by Association is written by
Course
0..* has achieved
0..*
1
0..* Trainer salary : real
is satisfied by 1 0..*
1
is taught by is hosted at
Course Event 0..*
Gambar 2.7 Class Diagram
37
1
Location Maximum delegates
38 2.6.6.4 Activity Diagram Activity diagram menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir (Booch,1999,p106). Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Activity diagram merupakan state diagram khusus, di mana sebagian besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal processing). Oleh karena itu activity diagram tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum. Sebuah aktivitas dapat direalisasikan oleh satu use case atau lebih.
Gambar 2.8 Activity Diagram
38
39 2.7
Software Engeneering
2.7.6
Arsitektur 3 Tier Three Tier adalah proses dimana kita menambahkan sebuah komputer yang bertugas sebagai penghubung client dengan server (SQL database) sehingga client tidak dapat berhubungan langsung dengan computer server. Permintaan client akan ditangani
oleh web server dan dari web server
dihubungkan ke SQL Server. Model yang cukup efektif, disamping itu membantu meningkatkan keamanan data karena begitu permintaan data ke SQL Server selesai dilakukan (informasi data dikopi ke komputer web server), hubungan ke SQL Server terputus. Selanjutnya keperluan client diproses pada komputer web server dan selanjutnya hubungan ke SQL Server hanya akan dilakukan jika diperlukan. Database file pada aplikasi .NET diakses melalui ADO.NET. Melalui ADO.NET program membuat hubungan ke SQL Server untuk memperoleh data.
2.7.7
OOA (Object Oriented Analysis) OOA adalah sebuah metode analisis yang memeriksa kebutuhankebutuhan dari sisi class dan objek yang ditemukan dalam domain masalah (Booch,1994,p38).
2.7.3
OOD (Object Oriented Design) OOD merupakan sebuah metode desain yang mencakup dekomposisi berorientasi objek dan notasi untuk melukiskan model fisikal dan logikal, statik dan dinamik dari sistem yang sedang dirancang (Booch,1994,p39). 39
40 2.7.4 OOP (Object Oriented Programming) OOP adalah sebuah metode implementasi dimana program-program diorganisasikan sebagai sekumpulan objek yang masing-masing merupakan sebuah instansi dari beberapa class dimana class-class tersebut merupakan anggota dari sebuah hirarki class yang disatukan dengan hubungan inheritance (Booch,1994,p39).
2.7.5
Design Pattern Dalam pengembangan software, pattern (design pattern) adalah dokumen tertulis yang menjelaskan solusi umum untuk menyelesaikan masalah yang terjadi berulang kali dalam banyak proyek. Pembuat software menghadapi solusi pattern untuk proyek spesifik mereka. Pattern menggunakan pendekatan formal untuk menjelaskan desain masalah, solusinya, dan faktor-faktor yang terkait dalam masalah atau solusi. Pattern yang sukses harus bisa membuktikan dirinya sebagai solusi terbaik dari tiga proyek atau situasi yang diselesaikan. Dalam OOP (Object Oriented Programming), pattern bisa berisi penjelasan dari objek-objek tertentu dan class objek yang digunakan, bersamaan dengan atribut dan dependency object, serta pendekatan umum tentang bagaimana menyelesaikan masalahnya. Seringkali programmer bisa memakai lebih dari satu juta pattern untuk menyelesaikan masalah yang spesifik. Koleksi pattern disebut juga pattern framework.
40
41 Desain pattern meliputi beberapa tipe informasi: •
Nama yang menjelaskan pattern tersebut.
•
Masalah yang akan diselesaikan oleh pattern itu.
•
Konteks, atau setting dimana masalah terjadi.
•
Efek lain yang bisa mempengaruhi masalah atau solusi.
•
Solusi untuk mengatasi masalah.
•
Konteks untuk solusi.
•
Sejarah keberhasilan / kegagalan solusi.
•
Pattern yang berhubungan dan pemakaian yang sudah diketahui.
•
Informasi tanggal pembuatan pattern.
•
Referensi dan kata kunci yang digunakan untuk pencarian.
•
Contoh kode yang terkait dengan solusi, jika membantu.
41