bab 2 landasan teori 2.1 .net framework 3.5...
TRANSCRIPT
11
BAB 2
LANDASAN TEORI
2.1 .NET Framework 3.5
2.1.1 Pengenalan .NET Framework 3.5
Menurut Risman (Adnan, et al., 2008), .NET Framework adalah
komponen Windows yang terintegrasi yang mendukung pembuatan dan
penggunaan aplikasi dan XML Web services generasi selanjutnya. .NET
Framework diciptakan untuk:
• Membuat komunikasi berdasarkan standar industri untuk
menjamin kode program berbasis .NET Framework dapat
bekerja sama dan atau digabungkan dengan kode program
berbasis framework atau bahasa pemrograman lainnya.
• Menyediakan lingkungan pemrograman berbasis obyek yang
konsisten terlepas dari apakah obyek itu disimpan dan
dieksekusi secara lokal, dieksekusi secara lokal dan
didistribusikan melalui internet, atau dieksekusi secara remote.
Lingkungan ini juga mengurangi penggunaan piranti lunak dan
konflik terhadap masalah versioning.
• Menyediakan lingkungan pemrograman yang aman bagi
eksekusi kode program baik oleh kode yang dibuat oleh
developer, pihak yang tidak dikenal atau oleh pihak ketiga.
12
• Menjaga konsistensi developer dalam membuat aplikasi baik
berbasis Windows maupun berbasis web.
Framework ini memiliki 2 komponen yaitu Common Language
Runtime (CLR) yang merupakan fondasi framework dan class library. Fungsi
runtime adalah mengelola kode pada saat dieksekusi, mengelola thread,
memori, remoting, menjalankan strict type safety, menjaga akurasi kode untuk
keamanan dan kehandalan aplikasi.
Class library merupakan jenis koleksi berorientasi obyek yang dapat
digunakan kembali untuk membuat berbagai jenis aplikasi baik berbasis
Windows, web maupun command-line.
Untuk memperjelas hubungan antara CLR dengan class library, dapat
dilihat pada Gambar 2.1.
Gamba
me
seh
ket
run
Fo
ar 2.1 Hubun
.NET F
enjalankan C
hingga kedu
tiga juga did
Interne
ntime dalam
orms Control
ngan Antara
Framework
CLR di dala
ua jenis kode
dukung oleh
et Explorer a
m bentuk M
l dapat disim
a CLR Dan C
dapat dikel
am proses m
e tersebut da
framework i
adalah conto
IME sehing
mpan didalam
Class Library
lola oleh un
mereka dan m
apat dieksek
ini.
oh aplikasi u
gga managed
mnya.
y (Adnan, e
nmanaged c
mengekseku
kusi. Runtim
unmanaged y
d componen
et al., 2008).
components
usi managed
me host dari
yang menam
nts dan Win
13
yang
code
pihak
mpung
ndows
14
2.1.2 Perkembangan .NET Framework
Tahun 2006, dikeluarkanlah .NET Framework 3.0 dimana terdapat
perubahan dengan adanya penambahan teknologi baru. Versi 3.5 merupakan
versi terbaru dengan penambahan fitur dan teknologi yang sangat bermanfaat.
Dengan adanya framework ini dalam paket piranti lunak Visual Studio 2008,
maka developer diharapkan mampu lebih produktif dan lebih baik dalam
membuat aplikasi dengan memanfaatkan teknologi .NET (Adnan, et al., 2008).
Untuk lebih memahami .NET Framework 3.5 dan versi sebelumnya,
dapat dilihat pada Gambar 2.2 yang menunjukkan penambahan dan
peningkatan apa saja yang terdapat pada versi 2.0, 3.0 dan 3.5.
Gambar 2.2 Perubahan Pada .NET Framework 2.0, 3.0 Dan 3.5 (Adnan, et al., 2008).
Kumpulan kelas dalam jumlah yang sangat banyak yang dikenal
sebagai .NET Framework class library, dibangun di atas Common Language
Runtime (CLR). Library ini bertambah seiring dengan munculnya
15
pengembangan yang lebih baru. .NET Framework 2.0 menyediakan
lingkungan pengembangan aplikasi yang lengkap termasuk base class library,
ASP.NET, ADO.NET dan lainnya.
Pada versi 3.0, hal ini tidak berubah namun ada penambahan 4
teknologi baru yang cukup penting yaitu WCF (Windows Communication
Foundation), WF (Windows Workflow Foundation), WPF (Windows
Presentation Foundation), dan Windows CardSpace.
Perubahan pada versi 3.5 yaitu adanya dukungan AJAX terhadap
ASP.NET dan LINQ (Language-Integrated Query) dapat digunakan oleh
ADO.NET. Beberapa penambahan lain juga terdapat pada base class library,
seperti penambahan type supporting sets dan dukungan enkripsi yang lebih
baik. WCF, WF, dan WPF juga mengalami beberapa perbaikan seperti yang
akan dibahas pada bab ini. Sistem operasi yang dapat menjalankan versi 3.5
adalah Windows Server 2008 dan 2003, Windows Vista dan Windows XP.
Karena masing-masing versi merupakan penambahan terhadap versi
sebelumnya maka kebutuhan untuk melakukan pengujian kembali terhadap
aplikasi yang telah kita buat dapat diminimalisir. Kita juga dapat menjalankan
aplikasi yang dibuat menggunakan versi yang lebih baru pada versi framework
sebelumnya karena framework versi 2.0, 3.0 dan 3.5 dapat dijalankan secara
bersamaan. Dengan Visual Studio 2008 kita dapat membuat proyek yang
disesuaikan dengan versi framework yang kita inginkan.
16
2.1.2.1 ASP.NET AJAX
ASP. NET AJAX merupakan dukungan untuk Aplikasi
Berbasis Web yang responsif. Dengan adanya teknologi ini maka
pendekatan yang lebih cerdas dan lebih cepat dapat dilakukan untuk
mengakses data pada pengguna akhir apabila dimungkinkan serta
melakukan update terhadap bagian aplikasi/halaman web yang ingin
diubah. Aplikasi bisa diakses lebih cepat karena tidak perlu
menunggu tampilnya halaman web baru (Adnan, et al., 2008).
Permintaan untuk mengakses data biasanya ditulis
menggunakan JavaScript dan format datanya menggunakan
Asynchronous JavaScript and XML. Hal inilah mengapa teknologinya
dinamai sebagai AJAX.
2.1.2.2 Languange - Integrated Query (LINQ)
LINQ merupakan dukungan untuk akses yang konsisten
terhadap berbagai jenis data. Manfaat LINQ adalah menyediakan
sekumpulan extension pada C# dan VB.NET untuk akses yang sama
terhadap berbagai jenis data. Teknologi baru yang terdapat pada versi
3.5 ini bertujuan untuk membuat akses data menjadi lebih mudah dan
lebih efisien bagi siapapun yang ingin membuat dan memelihara
aplikasi berbasis data menggunakan teknologi .NET (Adnan, et al.,
2008).
17
2.1.2.3 Windows Communication Foundation (WCF)
WCF merupakan dukungan untuk Aplikasi Berorientasi pada
Layanan (Service-Oriented Applications). Sejak versi awal, .NET
Framework menyediakan banyak pendekatan komunikasi antar
aplikasi yaitu (Adnan, et al., 2008):
• ASP.NET Web Services (ASMX) menyediakan
komunikasi berbasis SOAP agar dapat saling
bekerjasama.
• .NET Remoting menyediakan komunikasi antara aplik
asi .NET.
• Enterprise Services menyediakan dukungan untuk
aplikasi yang transaksional dan scalable.
• System Messaging menyediakan dukungan queued
messaging melalui Microsoft Message Queuing
(MSMQ).
• Web Services Enhancements (WSE) menyediakan
dukungan terhadap keamanan Windows System.
Dengan adanya teknologi ini, developer tidak perlu
menggunakan teknologi yang berbeda dan interface pemrograman
aplikasi yang berbeda pula untuk masing-masing komunikasi. Cukup
menggunakan pendekatan tunggal dengan memanfaatkan API yang
biasa digunakan. Model komunikasi WCF sangat sederhana. Klien
mengakses beberapa layanan dan memanggil operasi yang
18
dibutuhkan. WCF tidak harus digunakan pada host tertentu saja,
sehingga developer bebas menggunakannya pada host mana saja
seperti yang terlihat pada Gambar 2.3.
Gambar 2.3 Model Komunikasi WCF (Adnan, et al., 2008).
WCF memberikan dukungan yang kuat terhadap komunikasi
berbasis SOAP yang merupakan bagian penting pada proses
komputasi saat ini. Termasuk dukungan untuk berbagai spesifikasi
WS-* yaitu WS-Security, WS-ReliableMessaging, dan WS-
AtomicTransaction. Namun WCF tidak membutuhkan SOAP,
sehingga pendekatan komunikasi lain tetap dapat digunakan seperti
protokol binary yang dioptimalkan, queued messaging menggunakan
MSMQ dan pendekatan berbasis REST yang lebih mudah dan
dibangun di atas protokol HTTP.
19
2.1.2.4 Windows Workflow Foundation (WF)
Windows Workflow Foundation merupakan dukungan untuk
aplikasi berbasis workflow. Kita dapat menggunakan teknologi
workflow untuk mengimplementasikan logika proses bisnis sehingga
dapat lebih efektif dalam memecahkan masalah. Lebih baik kita
menentukan masing-masing langkah di dalam proses dan
mengeksekusinya menggunakan workflow engine daripada saling
menghubungkan logika proses ini di dalam kode program. Hasilnya
adalah implementasi yang lebih “bersih”. Dengan teknologi ini,
Microsoft menyediakan teknologi workflow dan fondasi yang umum
serta dapat digunakan oleh semua aplikasi berbasis workflow. Sejak
diperkenalkan pada versi 3.0, teknologi ini telah banyak digunakan
dalam piranti lunak Microsoft, seperti Windows SharePoint Services
dan dalam aplikasi lainnya (Adnan, et al., 2008).
Secara sederhana WF adalah kumpulan aktivitas yang
dieksekusi oleh engine WF melalui berbagai cara. Sebenarnya
masing-masing aktivitas adalah sebuah kelas dan kelas ini dapat
menampung pekerjaan yang ingin dikerjakan oleh pembuat workflow.
Aktivitas – aktivitas tersebut dapat digunakan kembali pada workflow
lainnya sehingga membuat kita lebih mudah untuk menciptakan
solusi otomatis terhadap problem baru yang mungkin timbul. Cara
kerja workflow dapat dilihat pada Gambar 2.4.
20
Gambar 2.4 Bagaimana WF Bekerja (Adnan, et al., 2008).
2.2 Layanan (Service)
Layanan atau service berbeda dengan sebuah object atau procedure. Layanan
didefinisikan dengan messages dimana suatu layanan dapat melakukan pertukaran
messages dengan layanan yang lain. Sebuah layanan bersifat independent yang tidak
bergantung terhadap aplikasi yang menyimpannya. Hal ini memberikan kemampuan
untuk sebuah layanan dapat dengan mudah digunakan secara bersama-sama antar
departemen, enterprise, atau melalui internet (Erl, 2007).
Service merepresentasikan sekumpulan operation yang berhubungan untuk
menyelesaikan sekumpulan unit kerja yang berhubungan (Erl, 2005).
21
Hubungan antara layanan dengan layanan dapat digambarkan sebagai berikut
(Erl, 2005):
2.2.1 Bagaimana Sebuah Layanan Mengenkapsulasi Logic
Sebuah layanan dapat mengenkapsulasi proses yang besar atau hanya
satu proses kecil. Lingkup layanan tidak terbatas, seperti terlihat pada gambar
2.5.
Gambar 2.5 Bagaimana Sebuah Layanan Mengenkapsulasi Logic (Erl, 2005).
22
2.2.2 Bagaimana Layanan Berhubungan Satu Sama Lain
Suatu layanan bisa digunakan oleh layanan lainnya ataupun aplikasi
lainnya. Tetapi, supaya layanan dapat berhubungan satu sama lain diperlukan
adanya service description. Service description menyediakan nama dari
layanan tersebut, data yang diharapkan dan data yang dikembalikan oleh
layanan tersebut. Seperti terlihat pada gambar 2.6, layanan A berhubungan
dengan layanan B dengan adanya service description.
Gambar 2.6 Bagaimana Layanan Berhubungan Satu Sama Lain (Erl, 2005).
2.2.3 Bagaimana Layanan Berkomunikasi Satu Sama Lain
Setelah layanan berhubungan satu sama lain, layanan berinteraksi dan
bertukar informasi. Layanan berkomunikasi dengan menggunakan message.
Komunikasi antar layanan dapat dilihat pada gambar 2.7.
23
Gambar 2.7 Bagaimana Layanan Berkomunikasi Satu Sama Lain (Erl, 2005).
2.2.4 Bagaimana Layanan Didesain
Pada gambar 2.8 layanan didesain dengan mengikuti aturan sebagai
berikut (Erl, 2005):
• Loosely coupled, yaitu setiap layanan berdiri sendiri secara
independen dan tidak bergantung pada layanan lainnya untuk
berjalan.
• Service contract, yaitu setiap layanan memiliki kesepakatan
mengenai cara untuk berkomunikasi.
• Autonomy, yaitu layanan memiliki hak penuh atas lojik yang
dienkapsulasi.
• Abstraction, yaitu lojik yang diimplementasi di dalam layanan
tidak diperlihatkan.
24
• Reusability, yaitu lojik dibagi menjadi sekumpulan layanan
yang dapat memudahkan penggunaan berulang.
• Composability, yaitu kumpulan layanan – layanan dapat
digabungkan membentuk suatu komposit layanan.
• Statelessness, yaitu layanan meminimalisir atau tidak memiliki
status tertentu terkait dengan aktifitas yang dilakukan.
• Discoverability, yaitu layanan didesain untuk deskriptif
sehingga layanan bisa ditemukan dan diakses melalui
mekanisme pencarian tertentu.
Gambar 2.8 Bagaimana Layanan Didesain (Erl, 2005).
25
2.3 Service Oriented Architecture (SOA)
2.3.1 Paradigma SOA
Era modern saat ini, fungsi-fungsi operasi bisnis pada perguruan tinggi
diterapkan secara otomatis, dan tantangan yang muncul adalah bagaimana
meningkatkan kemampuan dari sistem atau aplikasi yang digunakan dapat
selaras dengan kebutuhan-kebutuhan baru. Penambahan antarmuka baru,
menggabungkan data dari sumber yang berbeda dalam satu tampilan, integrasi
dengan mobile device adalah alasan umum dalam melakukan investasi dan
perbaikan terhadap sistem pada suatu organisasi atau perguruan tinggi.
Kompleksitas adalah fakta terhadap perkembangan teknologi informasi.
Tantangan utama saat ini adalah berkaitan dengan kompleksitas ketika
membangun aplikasi yang baru, menggantikan aplikasi yang lama, dan
melakukan perawatan serta peningkatan kinerja aplikasi dan sistem. Untuk
menjawab tantangan tersebut sebuah paradigma pengembangan berorientasi
layanan (service-oriented development) ditawarkan untuk menjadi menjadi
solusi terhadap kompleksitas yang dihadapi (Erl, 2007).
Layanan atau service berbeda dengan sebuah object atau procedure.
Layanan didefinisikan dengan messages dimana suatu layanan dapat
melakukan pertukaran messages dengan layanan yang lain. Sebuah layanan
bersifat independent yang tidak bergantung terhadap aplikasi yang
menyimpannya. Hal ini memberikan kemampuan untuk sebuah layanan dapat
dengan mudah digunakan secara bersama-sama antar departemen, enterprise,
atau melalui internet. SOA memberikan cara bagaimana layanan-layanan
26
dalam suatu sistem dapat diterapkan dan diatur. Pengembangan sistem berbasis
layanan dan SOA adalah merupakan karakter yang dimiliki oleh teknologi Web
services. SOA dan web services adalah merupakan jawaban terhadap
pengintegrasian sistem dan aplikasi yang kompleks. SOA memberikan peta dan
menggunakan model untuk menyatukan atau mengembangkan legacy system
dan sistem yang baru selanjutnya web services menyediakan unifying glue
dimana web services akan menyatukan dengan protokol umum standard (
SOAP, XML) serta deskripsi bahasa yang dapat dimengerti oleh mesin yang
lain (WSDL). Sayed Hashimi (Hashimi, 2003) menjelaskan latar belakang
penggunaan SOA ditinjau dari sisi developers perangkat lunak. SOA menjadi
sangat populer melalui perkembangan Web services. SOA muncul untuk
menawarkan solusi terhadap masalah yang dihadapi para developers perangkat
lunak.
Proses menulis perangkat lunak yang sangat kompleks, dimana kode
program yang sama harus ditulis kembali secara berulang-ulang, memicu
munculnya kebutuhan terhadap cara yang lebih baik dalam menulis perangkat
lunak dengan menggunakan kembali kode program yang sama. Solusi
penulisan perangkat lunak yang kompleks adalah konsep modular design.
Modular design memungkinkan programmer menulis sub-routines dan
functions yang dapat digunakan kembali. Programmer dapat melakukan proses
cutting dan pasting sebuah modul ke dalam aplikasi lain. Dampak negatif dari
metode ini adalah kesulitan dalam perawatan perangkat lunak dan deployment
perangkat lunak. Ketika sebuah bug ditemukan maintainer harus melakukan
penelusuran terhadap semua aplikasi yang menggunakan fungsi tersebut dan
27
melakukan perbaikan. Hasil perbaikan mempengaruhi proses deployment
perangkat lunak, perangkat lunak tidak berjalan sesuai dengan yang
diharapkan. Para developer tidak menyukai hal tersebut, mereka membutuhkan
higher level of abstraction. Peneliti menawarkan classes dan OO perangkat
lunak untuk mengatasi masalah tadi.
Ketika kompleksitas perangkat lunak dan perangkat keras berkembang
para developer mulai menyadari akan kompleksitas perangkat lunak, keperluan
reuse code, dan memerlukan fungsi-fungsi untuk melakukan perawatan
perangkat lunak. Component-based software memberikan solusi untuk
menangani kompleksitas perangkat lunak, penggunaan kembali kode program,
dan melakukan perawatan perangkat lunak. Keterbatasan component-based
software adalah tidak menangani kompleksitas yang dihadapi oleh para
developer saat ini. Saat ini terdapat berbagai isu kompleks yang dihadapi oleh
pada developers, organisasi, users, dan stakeholders seperti distributed
software, application integration, platform yang berbeda (OS, perangkat lunak,
perangkat keras), protokol yang beragam, perkembangan ICT, dan sebagainya.
Perangkat lunak saat ini harus dilengkapi dengan fitur-fitur yang dapat
mengakomodasi isu-isu tersebut. SOA dengan web services memberikan solusi
untuk semua isu yang telah disebutkan diatas. Dengan mengadopsi SOA,
kerumitan protokol dan platform dapat dikurangi dan integrasi antar aplikasi
dapat dilakukan.
2.3.2 Definisi SOA
Berikut adalah definisi-definisi tentang SOA.
28
Menurut Thomas Erl (Erl, 2007) :
“SOA adalah sebuah model desain dengan memiliki konsep yang dalam
tentang meng-enkapsulasi logik aplikasi di dalam layanan-layanan yang
berinteraksi melalui protokol yang umum”
Organization for the Advancement of Structured Information Standards
(OASIS) mendefinisikan SOA sebagai berikut :
“Sebuah paradigma untuk melakukan pengaturan dan penggunaan
layanan-layanan yang didistribusikan yang di kontrol oleh domain yang
berbeda. SOA menyediakan sebuah keseragaman dalam memberikan,
menemukan, berinteraksi dan menggunakan layanan-layanan yang
dimiliki untuk menghasilkan efek yang diinginkan, konsisten dengan
kondisi awal yang diukur dan harapan-harapan yang telah ditetapkan.”
Menurut website www.service-architecture.com :
“SOA secara esensial adalah sebuah kumpulan dari layanan-layanan.
Layanan-layanan tersebut berkomunikasi satu dengan yang lain.
Komunikasi dapat melibatkan data yang sederhana atau dua atau lebih
layanan yang berkoordinasi dengan beberapa aktivitas. Beberapa layanan
dapat membutuhkan layanan yang lain untuk melakukan suatu aktifitas.”
Menurut website XML.com :
“SOA adalah sebuah gaya arsitektural yang memiliki tujuan untuk
mencapai tingkat ketergantungan yang rendah diantara interaksi
perangkat lunak. Sebuah layanan adalah sebuah unit yang dilakukan oleh
sebuah penyedia layanan untuk mendapatkan hasil yang diharapkan oleh
pengguna layanan. Masing-masing penyedia dan pengguna layanan
29
memiliki peran untuk dilaksanakan oleh perangkat lunak sesuai dengan
kepemilikannya.”
Secara umum SOA dapat dituliskan kembali sebagai berikut :
“SOA adalah sebuah arsitektur aplikasi dimana semua fungsi, layanan-
layanan didefinisikan menggunakan sebuah bahasa yang terdeskripsi dan
dapat mengakses antarmuka yang dipanggil untuk melakukan proses-
proses bisnis. Setiap interaksi adalah independent terhadap yang lain.
Karena antarmuka bersifat independent terhadap platform, setiap klien
dari sembarang device dapat menggunakan service yang disediakan. SOA
menghubungkan sistem operasi yang beragam dan mampu melakukan
otomatisasi terhadap proses bisnis suatu organisasi secara internal atau
enterprise.”
2.3.3 Prinsip – Prinsip SOA
Prinsip-prinsip berikut ini mendefinisikan aturan-aturan dasar dalam
pengembangan, perawatan dan penggunaan dari SOA (Erl, 2007):
a. Konsep utama dari SOA adalah layanan.
b. Setiap layanan didefinisikan dengan sebuah kontrak yang
formal.
c. Layanan-layanan hanya berinteraksi dengan layanan yang lain
melalui antarmuka kontrak yang telah didefinisikan terlebih
dahulu.
d. Layanan-layanan harus dapat diakses melalui standard teknologi
yang tersedia pada lingkungan secara umum. Mekanisme-
30
mekanisme yang digunakan harus dapat diterima oleh standard-
standard industri.
e. Layanan-layanan harus dapat didefinisikan kedalam level
abstraksi yang tinggi yang berhubungan aktifitas-aktifitas pada
dunia nyata dan fungsi-fungsi bisnis yang dapat dikenal
sehingga kebutuhan-kebutuhan bisnis dan kemampuan-
kemampuan teknikal dapat di selaraskan dengan tepat.
f. Layanan-layanan yang tersedia harus memiliki arti yang penuh
atau mudah dipahami.
g. Layanan-layanan harus loosely coupled.
h. Kumpulan layanan harus memiliki tipe dokumen yang sama,
yaitu dokumen XML. Hal ini untuk menfasilitasi pertukaran
informasi diantara layanan-layanan dan struktur dan semantik
dari dokumen harus disepakati dan dapat dimengerti dengan
baik.
i. Layanan-layanan harus memberikan tugas-tugas yang spesifik
dan menyediakan antarmuka yang sederhana untuk mengakses
atau menggunakan fungsionalitas yang disediakan.
j. Layanan-layanan harus menyediakan informasi yang
menjelaskan kemampuan dan keterbatasan dari layanan yang
disediakan. Informasi tersebut harus tersedia pada repository.
31
2.3.4 Komponen SOA
Bila dilihat pada penjelasan sebelumnya, SOA terdiri atas sekumpulan
service. Namun sekumpulan service tidak cukup untuk membentuk sebuah
arsitektur ini. Menurut (Erl, 2005), SOA terdiri atas empat komponen, yaitu:
a) Message, yaitu data yang dibutuhkan untuk menyelesaikan
sebagian atau sebuah unit kerja, yang dipertukarkan antara satu
service dengan yang lainnya.
b) Operation, yaitu fungsi-fungsi yang dimiliki oleh sebuah service
untuk memproses message hingga menghasilkan sesuatu.
Fungsi-fungsi inilah yang nantinya akan saling berinteraksi
untuk menyelesaikan sebuah unit kerja.
c) Service, merepresentasikan sekumpulan operation yang
berhubungan untuk menyelesaikan sekumpulan unit kerja yang
berhubungan.
d) Process, merupakan business rule yang menentukan operasi
mana yang digunakan untuk mencapai tujuan tertentu.
32
Gambar 2.9 Ilustasi Operations dan Services (Erl, 2005).
Komponen-komponen tersebut terhubung satu sama lain dengan
deskripsi sebagai berikut (Erl, 2005):
• Sebuah operation mengirim dan menerima message untuk
mengerjakan sesuatu.
• Sebuah operation kebanyakan didefinisikan oleh message yang
memprosesnya.
• Sebuah service mengelompokkan sekumpulan operation yang
berhubungan.
• Sebuah service didefinisikan oleh operation yang
membentuknya.
• Sebuah instans dari service dapat mengkomposisi service lain.
• Sebuah instans dari process tidak harus didefinisikan oleh
service karena mungkin hanya membutuhkan sebagian dari
fungsionalitas yang diberikan oleh service.
33
• Sebuah instans dari process memicu sekumpulan operation
berjalan untuk menyelesaikan proses otomasi.
• Setiap instans dari process didefinisikan secara parsial
operation yang digunakannya.
Hubungan ketergantungan antara komponen SOA dapat dilihat pada
Gambar 2.10.
Gambar 2.10 Ketergantungan Antara Komponen SOA (Erl, 2005).
2.4 BPM
2.4.1 Konsep Dasar BPM
Business Process Management (BPM) adalah disiplin ilmu untuk
memodelkan, automatisasi, mengelola, dan mengoptimasi proses bisnis untuk
meningkatkan profitability. Proses bisnis yang dimaksud di dalam definisi
34
BPM ini termasuk sistem teknologi informasi dan interaksi manusia
(Newcomer & Lomow, 2004). Penggunaan dari disiplin ilmu ini semakin
meluas di organisasi. Hal ini disebabkan pentingnya sebuah organisasi menjadi
efektif dan efisien dengan terus memperbaiki proses bisnisnya.
Proses bisnis sendiri didefinisikan sebagai serangkaian aktivitas yang
terstruktur atau semiterstruktur yang dilakukan dalam sekumpulan atau oleh
dua atau lebih individu untuk mencapai tujuan bersama. Ada lima poin esensial
dari definisi ini :
• Proses bisnis terdiri atas sekumpulan oleh task (pekerjaan). Satu
task tidak bisa dikategorikan dalam proses bisnis.
• Proses bisnis itu terstruktur atau semi-terstruktur. Hal ini berarti
ada sekumpulan lojik atau aturan yang mengatur keterurutan
aktivitas. Aktivitas tidak dijalankan secara ad hoc.
• Task dapat muncul dalam serial atau paralel.
• Harus ada setidaknya dua atau lebih individu atau aplikasi yang
terlibat sebagai pemain dalam melakukan tugas yang berbeda
untuk sebuah proses.
• Sekumpulan task harus memiliki tujuan, sehingga dapat dinilai
untuk optimalisasi berikutnya dengan melihat keberhasilan
mencapai tujuan atau tidak.
Seperti dijelaskan pada poin nomor empat di atas, proses bisnis dewasa
ini tidak seluruhnya dijalankan secara manual oleh manusia. Sebagian dijalankan
dengan bantuan sistem lain. Konversi dari aktivitas sebuah organisasi dari
35
manual atau setengah terkomputerisasi menjadi terotomasi penuh disebut
business process automation (Newcomer & Lomow, 2004).
2.4.2 Tujuan BPM
Tujuan dari BPM seperti yang dituliskan pada (Newcomer & Lomow,
2004) adalah sebagai berikut :
1. Mengurangi ketidakcocokan antara kebutuhan perusahaan dengan
sistem teknologi informasi yang terimplementasi dengan
memungkinkan pihak analis bisnis memodelkan proses bisnis dan
membiarkan bagian teknologi informasi (misal: sebuah divisi atau
departemen) menyediakan infrastruktur untuk mengeksekusi dan
mengontrol proses bisnis tersebut.
2. Meningkatkan produktivitas pegawai dan mengurangi biaya
operasional dengan mengotomatisasi dan melancarkan proses
bisnis.
3. Meningkatkan agility dan fleksibilitas pada perusahaan dengan
secara eksplisit memisahkan antara logika proses dari aturan
bisnis dan merepresentasikan proses bisnis dalam bentuk yang
mudah diubah jika terjadi perubahan kebutuhan.
4. Mengurangi biaya pengembangan dan usaha dengan
menggunakan bahasa pemrograman high level yang
memungkinkan analis bisnis dan pengembang secara cepat
membangun dan memperbaharui sistem teknologi informasi
dalam domain permasalahan tertentu.
36
2.5 Pengenalan C#
C# adalah bahasa pemrograman baru yang diciptakan oleh Microsoft
(dikembangkan dibawah kepemimpinan Anders Hejlsberg yang notabene juga telah
menciptakan berbagai macam bahasa pemrograman termasuk Borland Turbo C++
dan Borland Delphi). Bahasa C# juga telah di standarisasi secara internasional oleh
ECMA. Seperti halnya bahasa pemrograman yang lain, C# bisa digunakan untuk
membangun berbagai macam jenis aplikasi, seperti aplikasi berbasis windows
(desktop) dan aplikasi berbasis web serta aplikasi berbasis web services (Agus
Kurniawan, 2004).
2.5.1 Keuntungan Menggunakan C#
2.5.1.1 Sederhana
C# menghilangkan beberapa hal yang bersifat kompleks yang
terdapat dalam beberapa macam bahasa pemrograman seperti Java
dan C++, termasuk diantaranya mengilangkan macro, templates,
multiple inheritance dan virtual base classes. Hal-hal tersebut yang
dapat menyebabkan pengguna bingung pada saat menggunakannya,
dan juga berpotensial dapat menjadi masalah bagi para programmer
C++. Jika anda pertama kali belajar bahasa C# sebagai bahasa
pemrograman, maka hal-hal tersebut di atas tidak akan membuat
waktu anda terbuang terlalu banyak untuk mempelajarinya. C#
bersifat sederhana, karena bahasa ini didasarkan kepada bahasa C dan
C++. Jika anda familiar dengan C dan C++ atau bahkan Java, anda
akan menemukan aspek – aspek yang begitu familiar, seperti
37
statements, expression, operators, dan beberapa fungsi yang diadopsi
langsung dari C dan C++, tetapi dengan berbagai perbaikan yang
membuat bahasanya menjadi lebih sederhana (Kurniawan, et al.,
2004).
2.5.1.2 Modern
Yang membuat C# menjadi suatu bahasa pemrograman yang
modern adalah adanya beberapa fitur seperti exception handling,
garbage collection, extensible data types, dan code security
(keamanan kode/bahasa pemrograman). Dengan adanya fitur-fitur
tersebut, menjadikan bahasa C# sebagai bahasa pemrograman yang
modern (Kurniawan, et al., 2004).
2.5.1.3 Object – Oriented Language
Kunci dari bahasa pemrograman yang bersifat Object
Oriented adalah encapsulation, inheritance, dan polymorphism.
Secara sederhana, istilah – istilah tersebut bisa didefinisikan sebagai
berikut (Kurniawan, et al., 2004):
• Encapsulation, dimana semua fungsi ditempatkan
dalam satu paket (single package).
• Inheritance, adalah suatu cara yang terstruktur dari
suatu kode – kode pemrograman dan fungsi untuk
38
menjadi sebuah program baru dan berbentuk suatu
paket.
• Polymorphism, adalah kemampuan untuk
mengadaptasi apa yang diperlukan untuk dikerjakan.
Sifat-sifat tersebut di atas, telah dimiliki oleh C# sehingga
bahasa C# merupakan bahasa yang bersifat Object Oriented.
2.5.1.4 Powerfull Dan Fleksibel
C# bisa digunakan untuk membuat berbagai macam aplikasi,
seperti aplikasi pengolah kata, grafik, atau bahkan membuat kompiler
untuk sebuah bahasa permrograman, inilah yang membuat C#
menjadi bahasa pemrograman yang powerfull dan fleksibel
(Kurniawan, et al., 2004).
2.5.1.5 Efisien
C# adalah bahasa pemrograman yang menggunakan kata –
kata yang biasa disebut dengan keywords. Keywords ini digunakan
untuk menjelaskan berbagai macam informasi. Jika anda berpikiran
bahwa bahasa pemrograman yang menggunakan sangat banyak kata –
kata (keywords) akan lebih powerfull, maka jawabannya adalah
“pemikiran itu tidak selalu benar”, karena hal itu justru bisa
39
menambah kerumitan para developer pada saat membuat suatu
aplikasi (Kurniawan, et al., 2004).
Keyword – keyword yang terdapat didalam bahasa C# dapat
dilihat pada Gambar 2.11.
Gambar 2.11 Daftar Keywords Pada Bahasa C# (Kurniawan, et al., 2004).
2.5.1.6 Modular
Kode C# ditulis dengan pembagian masing – masing Class
(classes) yang terdiri dari routines yang disebut sebagai member
methods. Class – class dan metode – metode ini dapat digunakan
kembali oleh program atau aplikasi lain. Hanya dengan memberikan
informasi yang dibutuhkan oleh class dan metode yang dimaksud,
40
maka kita akan dapat membuat suatu kode yang dapat digunakan oleh
satu atau beberapa aplikasi dan program (reusable code) (Kurniawan,
et al., 2004).
2.5.1.7 C# Akan Menjadi Populer
Dengan dukungan penuh dari Microsoft yang akan
mengeluarkan produk – produk utamanya dengan dukungan
Framework .NET, maka masa depan bahasa C# sebagai salah satu
bahasa pemrograman yang ada di dalam lingkungan Framework .NET
akan lebih baik (Kurniawan, et al., 2004).
2.6 Visual Studio .NET
Visual Studio .NET merupakan editor yang paling ideal untuk membuat
aplikasi yang berbasis Framework .NET, termasuk aplikasi dengan bahasa C
(Kurniawan, et al., 2004). Dengan editor ini, maka kita akan bisa memanfaatkan
kemampuan bahasa C# secara maksimal. Editor ini tidak hanya menyediakan
berbagai macam tools dan wizard untuk membuat aplikasi C#, tetapi juga termasuk
fitur – fitur produktif seperti IntelliSense dan bantuan yang dinamis. Dengan
IntelliSense, jika kita mengetik nama sebuah namespace atau nama class, maka
anggota dari namespace atau class itu akan secara otomatis di munculkan sehingga
kita tidak perlu mengingat anggota dari semua class yang kita gunakan. IntelliSense
41
juga akan menampilkan semua argumen dan jenis tipenya ketika kita mengetikan
nama dari sebuah metode.
2.7 Diagran Aliran Dokumen (DAD)
Diagram aliran dokumen (DAD) adalah suatu model yang menggambarkan
aliran dokumen dan proses untuk mengolah dokumen dalam suatu proses (Mulyadi,
2001).
Komponen – komponen dari diagram aliran dokumen, dapat dilihat pada
Tabel L1 yang terdapat pada halaman lampiran.
2.8 Unified Modelling Languange (UML)
2.8.1 Pengertian Unified Modelling Languange (UML)
Unified Modeling Language (UML), adalah sekumpulan konvensi
pemodelan yang digunakan untuk menentukan atau menggambarkan sebuah
sistem software yang terkait dengan objek (Whittem, et al., 2005).
2.8.2 Diagram Perilaku
2.8.2.1 Diagram Use Case
Diagram use case secara grafis mendeskripsikan siapa yang
akan menggunakan sistem dan dalam cara apa pengguna
mengharapkan interaksi dengan sistem itu.
42
Diagram use case adalah diagram yang menunjukan
serangkaian use case dan aktor dan hubungannya. Diagram use case
digunakan untuk mengilustrasikan gambaran statis use case dari
sebuah sistem. Diagram use case sangat penting dalam pemodelan
dan pengaturan behavior sistem (Booch, 1999).
Contoh pemodelan diagram use case dapat dilihat pada
Gambar L1 yang terdapat pada halaman lampiran.
2.8.2.2 Diagram Interaksi
Sequence diagram (diagram interaksi) secara grafis
menggambarkan bagaimana objek berinteraksi dengan satu sama lain
melalaui pesan pada eksekusi sebuah use case atau operasi.
Diagram interaksi adalah diagram yang menekankan urutan
waktu dalam pengiriman pesan. Diagram interaksi menunjukan
interaksi objek dengan waktu yang dipresentasikan dalam grafik dua
dimensi. Dimensi vertikal menunjukan waktu, digambarkan
melintang ke bawah. Dimensi horizontal menunjukan jenis peranan
yang mengambarkan individu objek. Durasi aktifitas objek ditunjukan
oleh lifeline yang berupa garis putus – putus. Pesan ditampilkan
sebagai panah dari satu lifeline sebuah objek ke lifeline objek yang
lainnya (Booch, 1999).