BAB 2 LANDASAN TEORI 2.1 .NET Framework 3.5...

32
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.

Transcript of BAB 2 LANDASAN TEORI 2.1 .NET Framework 3.5...

Page 1: BAB 2 LANDASAN TEORI 2.1 .NET Framework 3.5 ...library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00236...komponen Windows yang terintegrasi yang mendukung pembuatan dan penggunaan

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.

Page 2: BAB 2 LANDASAN TEORI 2.1 .NET Framework 3.5 ...library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00236...komponen Windows yang terintegrasi yang mendukung pembuatan dan penggunaan

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.

Page 3: BAB 2 LANDASAN TEORI 2.1 .NET Framework 3.5 ...library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00236...komponen Windows yang terintegrasi yang mendukung pembuatan dan penggunaan

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

Page 4: BAB 2 LANDASAN TEORI 2.1 .NET Framework 3.5 ...library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00236...komponen Windows yang terintegrasi yang mendukung pembuatan dan penggunaan

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

Page 5: BAB 2 LANDASAN TEORI 2.1 .NET Framework 3.5 ...library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00236...komponen Windows yang terintegrasi yang mendukung pembuatan dan penggunaan

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.

Page 6: BAB 2 LANDASAN TEORI 2.1 .NET Framework 3.5 ...library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00236...komponen Windows yang terintegrasi yang mendukung pembuatan dan penggunaan

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).

Page 7: BAB 2 LANDASAN TEORI 2.1 .NET Framework 3.5 ...library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00236...komponen Windows yang terintegrasi yang mendukung pembuatan dan penggunaan

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

Page 8: BAB 2 LANDASAN TEORI 2.1 .NET Framework 3.5 ...library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00236...komponen Windows yang terintegrasi yang mendukung pembuatan dan penggunaan

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.

Page 9: BAB 2 LANDASAN TEORI 2.1 .NET Framework 3.5 ...library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00236...komponen Windows yang terintegrasi yang mendukung pembuatan dan penggunaan

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.

Page 10: BAB 2 LANDASAN TEORI 2.1 .NET Framework 3.5 ...library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00236...komponen Windows yang terintegrasi yang mendukung pembuatan dan penggunaan

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).

Page 11: BAB 2 LANDASAN TEORI 2.1 .NET Framework 3.5 ...library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00236...komponen Windows yang terintegrasi yang mendukung pembuatan dan penggunaan

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).

Page 12: BAB 2 LANDASAN TEORI 2.1 .NET Framework 3.5 ...library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00236...komponen Windows yang terintegrasi yang mendukung pembuatan dan penggunaan

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.

Page 13: BAB 2 LANDASAN TEORI 2.1 .NET Framework 3.5 ...library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00236...komponen Windows yang terintegrasi yang mendukung pembuatan dan penggunaan

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.

Page 14: BAB 2 LANDASAN TEORI 2.1 .NET Framework 3.5 ...library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00236...komponen Windows yang terintegrasi yang mendukung pembuatan dan penggunaan

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).

Page 15: BAB 2 LANDASAN TEORI 2.1 .NET Framework 3.5 ...library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00236...komponen Windows yang terintegrasi yang mendukung pembuatan dan penggunaan

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

Page 16: BAB 2 LANDASAN TEORI 2.1 .NET Framework 3.5 ...library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00236...komponen Windows yang terintegrasi yang mendukung pembuatan dan penggunaan

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

Page 17: BAB 2 LANDASAN TEORI 2.1 .NET Framework 3.5 ...library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00236...komponen Windows yang terintegrasi yang mendukung pembuatan dan penggunaan

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.

Page 18: BAB 2 LANDASAN TEORI 2.1 .NET Framework 3.5 ...library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00236...komponen Windows yang terintegrasi yang mendukung pembuatan dan penggunaan

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

Page 19: BAB 2 LANDASAN TEORI 2.1 .NET Framework 3.5 ...library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00236...komponen Windows yang terintegrasi yang mendukung pembuatan dan penggunaan

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-

Page 20: BAB 2 LANDASAN TEORI 2.1 .NET Framework 3.5 ...library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00236...komponen Windows yang terintegrasi yang mendukung pembuatan dan penggunaan

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.

Page 21: BAB 2 LANDASAN TEORI 2.1 .NET Framework 3.5 ...library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00236...komponen Windows yang terintegrasi yang mendukung pembuatan dan penggunaan

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.

Page 22: BAB 2 LANDASAN TEORI 2.1 .NET Framework 3.5 ...library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00236...komponen Windows yang terintegrasi yang mendukung pembuatan dan penggunaan

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.

Page 23: BAB 2 LANDASAN TEORI 2.1 .NET Framework 3.5 ...library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00236...komponen Windows yang terintegrasi yang mendukung pembuatan dan penggunaan

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

Page 24: BAB 2 LANDASAN TEORI 2.1 .NET Framework 3.5 ...library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00236...komponen Windows yang terintegrasi yang mendukung pembuatan dan penggunaan

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

Page 25: BAB 2 LANDASAN TEORI 2.1 .NET Framework 3.5 ...library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00236...komponen Windows yang terintegrasi yang mendukung pembuatan dan penggunaan

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.

Page 26: BAB 2 LANDASAN TEORI 2.1 .NET Framework 3.5 ...library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00236...komponen Windows yang terintegrasi yang mendukung pembuatan dan penggunaan

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

Page 27: BAB 2 LANDASAN TEORI 2.1 .NET Framework 3.5 ...library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00236...komponen Windows yang terintegrasi yang mendukung pembuatan dan penggunaan

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

Page 28: BAB 2 LANDASAN TEORI 2.1 .NET Framework 3.5 ...library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00236...komponen Windows yang terintegrasi yang mendukung pembuatan dan penggunaan

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

Page 29: BAB 2 LANDASAN TEORI 2.1 .NET Framework 3.5 ...library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00236...komponen Windows yang terintegrasi yang mendukung pembuatan dan penggunaan

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,

Page 30: BAB 2 LANDASAN TEORI 2.1 .NET Framework 3.5 ...library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00236...komponen Windows yang terintegrasi yang mendukung pembuatan dan penggunaan

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

Page 31: BAB 2 LANDASAN TEORI 2.1 .NET Framework 3.5 ...library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00236...komponen Windows yang terintegrasi yang mendukung pembuatan dan penggunaan

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.

Page 32: BAB 2 LANDASAN TEORI 2.1 .NET Framework 3.5 ...library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00236...komponen Windows yang terintegrasi yang mendukung pembuatan dan penggunaan

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).