/
Penggunaan DLL Untuk Meningkatkan Modularitas dan Portabititas Perangkat Lunak yang Dikembangkan dengan Paradigma Berorientasi Obyek Megah Mulya
& Sukemi
Jurusan Teknik Informati ka
Fakultas Ilmu Komputer Universitas Sriwijaya
[email protected] Jurusan Sistem Komputer
Fakultas llmu Komputer Universitas Sriwijaya
[email protected] Abstrak
Kualitas peranghat lunak yang dikembangkan dengan pargdigma berorientasi obyek (berisi kelos) perlu ditingkatkon berkailan dengan hemudahan percv,atan din kemudahan dipindahkan antat lingkungan (bahasa pe4rogromary' aplikas/ kompilator) yang berbeda- Sementara itu terdapat teknologi dynamic linh library (DLL) yang dikembangkon oleh perusohaan Miuosoft unluk sarana shoring antar apliiosi terhadap fungsi yang dibuat dengan balpsa C (paradigma prosedurat). Penelitian ini berusaha meniawab kebutuhan lersebut melalui kailan 'modataritas dan portabilitas dengan menerupkan leknologl DLL. Metodologi penegfian ini miliputi kaiian pustaka tetbsdap modularltu, porlabtltlas, DLL hastl kaJian le?sebut kedalsm perangkat yang -tani* dttanjutkan iengan menerapkan yans dikembaigkan dengan Borland C++ Builder dgn Bor[and DelphL OaA *Liiai dan penerapon tenebut menghosilhan kesimpulap bohwa DLL dapat diguna,'hon untuk meningkatkan modularttos -dan poftablllt\s perongkat lunak yin7 dikembangkan dengan paradigma- berorientssi abyelc Peningkatan -moiularitas diperoleh dari karakterlstik DLL yang memllikt $ngkat kohesi tinggi dan kopling rendah. Peningkalan portabttitas dengan DLL daPat dlperoleh dengan-cara sharing kelss otau melalal sharlng obyek Katakunci:
DL
L, modularitas, porlabl0las
Abstracl need The software quatiy devetoped with obiect orlented paradlgm (contaln class) envlronmenls to dtermt mlgratton eosily and mantaince roty oj teim in increoise Meanwhlle thete was the Dynamic Linlc Llbrary (DLL) techfologl d*eloped by uslng C itiintt os a mean of tntir'application sharlng to function dadory! and modularlg needs meet the rc dbtl resiarch This tanguige lhtoug!! of methodologt The observation by implementlng -nLL ftchnologl ;;i"bW 'thts were whlch DLL portabitlty and modubrtg, to reasirch are library research with Borlond continued by imptemeiting the analysls on thl software developed
I. 2.
Megah Mulya, M.T. Asisten Ahli Fakultas llmu Komputer Sulceni, M.T. Asisten Ahli Fakultas Ilmu Komputer
39
Fr
c++ Bttildcr snd Borlor, DUVL Fmn rhe onolylieJ and inplemcntotion it can be condadd thot DLL csn u:tc for inoanunl nodularrg and portabllty of
sofware ls darcloped by objea oriented The increue of motlularlg was produced by DLL character which hove hight coh*sion an( low coupling. The increose of portability was produced through closs sharing or object shoring,
Keyword:
D
LL, modularily, portability
kekurangan-kekurangan tersebut maka
I.
modularitas dan portabilitas perangkat
PENDAHULUAN
Paradigma berorientasi obyek dewasa ini telatr menjadi tren karena memiliki
kelebihan-kelebihan
yang
dapat
meningkatkan kualitas perangkat lunak
hasil rekayasa dan efisiensi
proses
rekayasa. Sementara itu modularitas dan portabilitas merupakan masalah penting karena merupakan atribut perangkat
' lunak yang berkualitas
(Sommerville,
2004 ). Modularitas dan portabilitas yang dihasilkan paradigma ini masih perlu ditingkatkan berkaitan dengan : Diperlukan portabilitas agar kelas
l.
mudah dipindatrkan dad
satu
kompilator dengan bahasa tertentu ke kompilator lain dengan bahasa
2.
berbeda-
Kelas yang umum dipakai oleh
beberapa aplikasi
perlu
pemeliharaan (maintaince) untuk
keperluan perubahan
yang
b€rkaitan dengan koreksi atau p€,nyempumaan (correctif dan perfe*iJ).
Dynamic
Link Library merupakan
pustaka dinamis yang berisi fungsifirngsi yanga dipakai bersama oleh aplikasi-aplikasi. FungBi-fungsi tersebut mcrtrpakan hasil pengembangan dengan paradigma prosedural. Konsep dynamic
link library
tersebut diharapkan dapaf
mengatasi
permasalah-permasalah
didalam peirgembangan perangkat lunak dengan paradigma berorientasi obyek.
Dengan memberikan solusi terhadap
lunak yang dikembangkan dengan paradigma bqorientasi obyek dapat lebih ditingkatfcan lagi, sehinga dapat
meningkatkan kualitas perangkat lunak. Permasalahan di dalam penelitian ini dibatasi untuk pengembangan perangkat lunak dengan paradigma berorientasi obyek dalam lingkungan sistem operasi Windows. Batasan tersebut perlu ditegaskan karena konsep dynamic link library hanya dikenal pada lingkungan
sistem operasi Windows. Selain itu sebagai kasus
qji didalam penelitian ini
juga dibatasi implementasinya pada pembuatan DLL dengan Borland C+-r Builder yang almn diakses dari program
yang dibuat dcngan Borland C++
;1u
. sendiri dan dan Borland Delphi.
2.
DASARTpORT
2.1.
Modulaftas dan Portabilitas
Perangkat Lunak Modularitas dan portabilitas merupakan faktor penting karena termasuk atribut kualitas perangkat lunak (Sommerville, 2004).
Modularitas berasal dari kata modul. Modul adalah bagian perangkat lunak yang basar yang dipecah menjadi bagian
kecil-kecil dengan diberi nama dan pengalamatan memori berbeda-beda.
Modul-modul tersebut kemudian diintegrasikan untuk membentuk
perangkat lunaf yang dapat memenuhi
kebutuhan
dari suatu
persoalan
Mulya & Sukemi, Penggunaan Dll Untuk Meningkakan Modularilas....
(Pressman, 2005). Definisi lain, modul adalah komponen perangkat siston yang menyediakan layanan untuk komponen
yang lain, tetapi mungkin tidak bekerja secara
akan
normal jika diperlakukan
sebagai sistem Yang (Sommerville,
2004).
terPisah Sedangkan
modularitas berarti tingkat atau kualitas suatu modul.
Perancangan modular yang efektif ditentukan oleh beberapa faktor yaitu (Pressman, 2005):
l.
antar modul (functional independence) : setiap modul menangani satu Ketidakterikatan
penggunaan kembali
(reuse) sqatu bagian
perangkat lunak. Kemudahan kontrol unit-unit sistem.
6) 7) Perlu
pembatasan
perambatan
kesalahan (error propagation).
Portabilitas berasal dari kata port, yang
menjadi sarana komputei untuk berkon:unikasi dengan dunia luar. Bagian program dikatakan portable jika
di dalam lingkungan perangkat keras dan atau pada perangkat lunak yang berbeda-beda (Sanchez and
dapat dijalankan
Canton,2008).
Kohesi (cohesion) : modul Yang baik mempunyai kohesi Yang tingi
Portabilitas a{alah kemudahan suatu peiangkat lunak untuk dipindahkan/ dioperasikan dari suatu lingkungan (environmenr) [e lingkungan lain yang berbeda-. Lingkungan yang berbeda dapat berarti perangkat keras yang berbeda atau perangkat lunak yang
dengan cara meftIncang satu modul
berbeda (Pressrytan, 2005).
dan meminimalkan fungsionalitas '; interaksi dengan modul lain. Ketidakterikatan antar modul ini diukur dari dua kriteria secara
2.
5) Kebutuhan
Ql
kuatitatif yaitu kohesi dan kopling.
memiliki satu tugas dan antar elemen didalam modul memiliki
3.
ikatan yag kuat.
Kopling (coupling) : modul Yang baik memiliki kopling yang rendah. Disain perangkat lunak Yang baik hanrs membuat sekecil mungkin interaksi antar modul.
Portabilitas penting meminimalkan usaha
karena
(biaya)
perpindahan perangkat lunak antar lingkungan. l(eputusan penggunaan beragam bahasa pemrograman selalu ..berakibat mengorbankan portabilitas sehingga diperlukan teknik yang tinggi untuk mengatasi masalah tersebut (Sanchez and Canton, 2008).
Modularitas merupakan aspek penting dalam pengembangan peangkat lunak karena beberapa pertimbangan (AbreuPoels-sahraoui-Zuse, 2003
):
l) Memperjelas Pengorganisasian perancangan
2)
dan
Pengembangan
oleh suatu team Pe ngembang'
Paradigma Berorientrsi Obyek
Paradigma berorientasi obyek adalah suatu cara mengorganisasikan perangkat lunak sebagai kumpulan obyek-obyek
sistem
yang memiliki sifat (struktur data) dan
Pengujian
berinteraksi melalui pesan (message)
Mengurangi kompleksitas yang besar.
3)
Memberi kemudahan
4)
parallel sec.ra simultanMengurangi resiko perbaikan suatu bagran terhadap bagian lain dalani sistem.
2.2.
perilaku (fqngsi) yang
saling
(Rumbaugh-B I aha-Premerl an-Eddy' Lorensen, l99l). Konsep yang penjadi pilar paradigma
berorientasi obyek adalah (abstraction), (encapsulation\,
:
abstarksi pembungkusan pewarisan
$' (inheritnce),
kebaryatcnrpaan
(polynorphisn). (Athir,
tqgg).
direpresentasikan sebagai llr,rrSi kelas (class). Kelas digunakan untuk instansiasi obyek yang membungkus data dan fungsi menjadi suaru btackTox.
Dengan cara itu maka obyek memiliki tinefcl kohesi yang tingi dan kopling rendatr.
2.23.
Kelas Abstrak
Kelas abstrak adalah kelas yang memliki
operasi yang bersifat virtual C++ menyediakan dpa macam operasi virtual yaitu virtual masih memiliki definisi dan
,_t:yol tanpa definisi Qture virtual).
Kelas abstrak adalah kelas
2.2.1. Obyek dan Kelas
Obyek (object) adalah representasi dari entitas sebagai sarana pembungkusan karakteristik struklural yang disebut
atribut (attribute) dan
perilaku
karakteristik
r. disebut (operation/methode). yang
operasi
Atribut
mereprcsentasikan karakteristik entitas yang menentukan keadaan (stale) suatu obyek. Operasi Merepresentasikan
perilaku obyek jika menerima pesan (message). Operasi dapat blrupa prosedur atau fungsi yang hanya dapat
liakses dengan menyertakan obyeknya. Kelas (class) adalah deskripsi dari suatu gbyek pada saat implementasi (coding).
Pembuatan kelas difokuskan kepada implementasi karakteristik dan perilaku s@ara umum. Kelas adalah deskripsi
dari obyek dengan atribut, operasi, semantilg asosiasi dan interaksi (Sanchez and Canton, 2008).
Kelas dapat dipandang sebagai suatu tipe yang didefinisikan pJmrogram
schingga dapat digunakan
9:tt*fi
untuk
variabet yang berupa obyek
(instansiasi).
2.2.2. Penunrnsn Sifat Penurunan
sifat (inheritance)
adalah
kernampuan suatu obyek mewarisi sifat_ sifat dari obyek yang lain. Kemampuan
ini menghasilkan program yang efisien . farela adanya mekanisme pemakaian kembali (rewabte) kode program
(Rumbaugh-B laha-Premerl an-Eddy Lorensen, l99l).
-
yang
memiliki operasi virtual murni sehinggi tidak dapat digunakan untuk instansiasi obyek dan berperan sebagai antarmuka (interface) (Saqchez and Canton, 200g).
2.3. Dynamic Link Librory Pengembangan perangkat lunak, pada l.yTnyu me4ggunakan pusraka yang
berisi tungsi-fungsi yang sirin! . digunakan secara berulang-ulan g. Fii; pustaka digabqngkan ke aplikasi pada saat proses linking. pada C dan C++ sering menggunakan perintah #include untuk menyata$an hearder fungsi yang
19ryjuk pada fungsi-fungsi //e puitati (LIB) (Sanchez and Canton, 200g). Salah satu karakteristik yang unik dari
-Whdows ad4lah dynamic linking. Sistem operasi Windows dap;
menggunakan proses linker
konvensional (proses
linker secara
//e berekstensi LIB dan dapat secara dinamis menggr.rnakan dynamic link library (DLL) lSanchez statis) dengan
and Canton,2008).
DIL
berbeda dengan pustaka umum pada proses ltnking fungsi dari DLL secara fisik tidak disalin dan digabung
kedalam executable Jile tetapi tetai terpisah dan dfpanggii oteh Jile ("client") pada saat runtime. Program yang dibuat pemrogram lain
"ir-i"iil
lagat lgnegupakan fungsi lang ada file DLL dengan mengirihkan parameter atau menerima nilai balikan dalam
dari fungsi dan selama dapat mengikuti kesepakatan dalam pemangilan fingsi
.
M4lya
&
Sukeni, Pengunaan DII Urduk Mertnghatkan Modulsfias-.-.
atau prosedur tersebut. (Sanchez
and
43
Load Llbrary
Canton,2008).
23.1. Mekanisme Penggunaan DLL pada Aplikasi Berbasis Windows
Peranan DLL (dari Windows API ataupun yang dibuat Pemrogram) di dalam suatu aplikasi dapat dilihat pada gambar
l. DllMain
a0llloc[l!APrucfiOls
I f ,ni.i"tir.the
1
DLLfor application use
I
I
I
Release
t.
l, Loader Lock
l
+
Return Gambar 2. Ntekanisme Pemanggilan
DLL (Microsoft,2006). Gambar
l. Struktur file Program
berbasis windows (Sanchez and
Canton' 2008)
Terdapat tiga fcomponen utama model
pengembangan Perangkat
lunak
menggunakan DLL (Microsoft, 2006)
l. Library loader :
pemanggil4n terhadaP
:
melakukan
DLL
secara
efisien dan benar. 2.
DllMain entry-Point function
:
fungsi yaqg akan diPanggil oleh library loader pada saat dilakukan load maupun unload terhadaP DLL.
Loader melakukan Pemangilan secara serial terhadaP DllMain, sehingga dijamin hanYa ada satu DllMain yang dipanggil Pada satu saat.
3.
Loader lock
:
bertangung jawab
melakukan sinkronisasi agar pemanggil4n DLL dilakukan secara
ry i
scrial dengan
mcn€rapkan
mekanisme penguncian teftadap stnrktur data pada library loader.
Skema pemanggilan
DLL
yang
melibatkan ketiga komponen tersebut ditunjukan oleh gambar 2.
2.3.2.
mernbutuhkan fungsi/prosedur yang berada didalam DLL DLL tersebut dapat dibebaskan dari memori sebelum aplikasi berafchir. (Swart-CashmanGustavson-Holf ingworth, 2003) (Cantu, 203).
Pembuatan DLL pada
Borland C+r
Borland C++ Builder (C++ Builder)
memiliki fasilitas untuk
dilauris DLL dipanggil pada saat aplikasi sudah berjalan pada dan
pembuatan
DLL. Dengan C++ Builder pembuatan DLL akan menghasilka selun file berekstensi DLL juga //e berekstensi LIB yang keduanya saling terkait. Pustaka LIB ini harus digunakan benama-sama dengan DLL-nya- (SwartCashman-Gustavson-Hol I ingworth, . 2003). Pembuatan DLL pada C++ Builder DLL melalui DLL Wizard secara otomatis
menampilkan fungsi DllEntryPointQ.. litr,a file sumber program yang akan
dijadikan DLL berekstensi cpp maka hanrs didahului dengan perintah extem "C'. Agar fungsi dalam DLL dapat diakses dari. aplikasi lain maka pada header fungsi harus diawali dengan perintatr _declpec( dllexport) (Swart-
Pada C++ Builder, pemanggilan DLL sectna statis hArus menyertakan header
//e
LIB
(prototipe fungsi) dan menyertakan fle yang Fenyertai DLL kedalam
proyek (dengan project
manager). Sedangkan pemanggilan secara dinamis
dilakukan dengan fungsi Loadlibrary0
dan
GetProcAddressQ
serta
dari memori di:ngan fungsi FreelibraryQ. (Swart-Cashman-
membebaskannya
Gustavson-Holf ingworth, 2003) Pada Delphi, pemanggilan DLL secara prototipe fungsi/prosedurc dengan kata kunci "external" diikuti namafi I e DLL. Sedangkan pemanggilan secara dinamis
statis
meperlukan
melibatkan fungsi SafeloadLibrary0 dan GetProcAddress0 serta untuk membebaskan dari memori dengan FreelibraryQ. (Cantu, 203). 3. Analisis
Cashman-Gustavson-Hol I ingworth, 2003).
3.1.
23.3.
Derajat kopling suatu obyek (instansiasi kelas) adalah sangar kecil (bisa nol),
Pemanggilan DLL dari Borland C# Bulider dan Borland
Delphi
sehingga perbafkan terhadap suatu kelas
tidak akan memberikan akibat apapun
Pada Cr-+ Builder maupun Delphi pcnggunaan DLL dapat dilakukan dengan cara statis (static loading) dan
dinamis (dynamic loading). Pada pemanggilan secara statis DLL
dipanggil pada saat aplikasi start up
(modul
Analisis Peningkatan Modularitas IYf enggunaan DLL
DLL disalin ke
memori
komputer) dan akan terus berada di
memori sampai aplikasi berakhir. Sedangkan pada pemangilan secara
terhadap kelas yang lain (Sommerville, 2004). Dengan rendahnya kopling antar kelas didalar4 suatu modul maka perangkat lunAk yang menggunakan
modul tersebut memiliki
tingkat
modularitas tinggi. Dengan demikian pengembangan perangkat lunak yang
mengunakan paradigma berorientasi obyek sudah meningkatkan modularitas.
Mulya & Sukeml, Penggunaan DU Ailuk Mentngkathan Modularitas....
Akan tetapi modularitas pada paradigma
berorientasi obyek masih dapat ditingkatkan untuk meningkatkan
kemudahan dalam
perawatan
(maintainable) pada saat modifikasi terhadap suatu modul. Jika kebutuhan
sistem berubah maka
diperlukan
mungkin
eg
meletakkan fungsi-fungsi atau kelas-
kelas yang saling berkaitan (tidak independence) kedalam beberapa DLL
yang terpisah. Sehingga
memaksa
perancang mo{ul untuk meletakkannya kedalam satu rnodul yang akan dibentuk menjadi DLL. Kondisi ini berakibat
perubahan/penyesuaian terhadap suatu modul. Jika pada suatu modul telah dilakukan perubahan maka har.us dilakukan kompilasi terhadap
positip denga4, meningkatnya tingkat
modul yang bersangkutan dan linking ulang terhadap aplikasi seperti telah
modularitas
dijelaskan pada bagian 2.3 tentang sifat pustaka statis. Artinya tingkat
kohesi didalanl modul. Dengan tingkat kopling yang rendah Can tingkat kohesi tinggi maka menghasilkan tingkat
dari
perangkat lunak menjadi tinggi. Kondisi ini manghalangi terjadinya perambatan kesalahan dari suatu modul ke modul yang lain (enor
keterikatan (independence)
modul dengan aplikasi (program utdma) masih
propagation).
tinggi. Penoalan tersebut dapat diatasi dengan manjadikannyp modul sebagai DLL dan digunakan dalam proses linking secara
3.2. Analisis Peningkatan Portabilitas Menggunakan DLL
dinamis
seperti telah diuraikan
pada
baglan 2.3. Dengan cara ini maka kelas-
Pada paradigma berorientasi obyek fungsi dan prosedur dibungkus oleh obyek yang disebut operu'ilmethode,
dari
sehingga pemanggilanya harus menyertakan obyeknya seperti
aplikasinya dan hanya perlu dikompilasi
dijelaskan padq bagian 2.2.1. Akibatnya
kelas pada pustaka benar-benar dapat
dimodifikasi secara terpisah
ulang tanpa proses linking. Karena modul DLL dapat dikelola secEra terpisah (independenr) dari modul yang
lain maka berarti DLL
dapat
meningkatkan modularitas perangkat lunak. Dengan karakteristik ini berarti DLL juga meningkatkan tingkat
maintainability perangkat
lunak
terutarna untuk dukungan pasca-jual.
Dari bagian 2.3.1 telah dijelaskan tentang tiga komponen utama pada model DLL dan tentang pengaturan pada satu saat hanya iau DllMain entrypoint funtion yang dapat dipanggil. Mekanisme ini memiliki konsekuensi sebuah fungsi didalam suatu DLL tidak mungkin memanggil fungsi di dalam DLL yang lain. Hal ini berarti antar DLL memiliki tingkat kopling yang
modul yang dikembangkan dengan paradigma berorientasi obyek yang -berisi kelas tidak dapat melakukan sharing oper4si/methode. Jadi pada dasarnya DLL tidak dapat digunakan untuk meningkatkan modul yang berisi
kelas pada paradigma berorientasi obyek. Oleh karena itu dibutuhkan suatu teknik supaya keterbatasan penggunaan
teknologi
DLL
didalam
paradigma
berorientasi obyek tersebut dapat diatasi.
3.2.1. Peningkatan Portabilitss Antar Aplikasi yang Dibuat dengan Bahasa Pemrograman yang Sama
Didalam pemrpgraman bahasa C dan C++ portabilifas kelas dengan cara
sharing antar aplikasi
dilakukan
statis
rendah (nol).
menggunakan pustaka
Karakteristik tersebut mengakibatkan perancang modul tidak mungkin
library) yang biasanya disimpan dalam
file berekstensf LIB seperti
(static
penjelasan
bagim 23. Pusmka LIB dapd berisi kelas ,akan dilakukan proscs linHng bersama aplikasi yang akan
@
menggunakannya. Dengan pustaka LIB aplikasi dapat menggunakan kelas untuk instansiasi obyek, membuat turunan kelas banr dan manipulasi polimorfisme. Sharing kelas dengan pustaka statis LIB
ini
hanya dapat dilakukan diantara' aplikasi-aplikasi y*g dibuat dengan bahasa C+r.
Pada pembuatan DLL
dengan kompilator Borland C++ Builder selain
dihasilkan file berekstensi DLL juga dihasilkan file berekstensi LIB seperti telah dijelaskan di bagian 2.3.2 Dengan demikian maka DLL dapat digunakan
untuk
meningkatkan
portabilitas perangkat lunak yang berupa kelas atau sekumpulan kelas didalam lingkungan pemrograman C++ dengan cara tetap fn€nyertakan file LIB yang menyertai
DLL tersebut dan tentu saja menyertakan _filt header-nya. Peningkatan portabilitas ini hanya sebatas antar aplikasi yang dikembangkan dengan bahasa C++.
Selain itu penyertaan
file LIB
hanya
berguna untuk pemanggilan DLL secara
statis seperti diuraikan pada bagian 2.3.3. Dengan demikian portabilitas
modul yang berisi kelas yang dikembangkan dengan paradigma berorientasi 'obyek hanya dapat ditingkatkan dengan batasan antar aplikasi C++ dengan pemanggilan secafa setatis dan bukan antar aplikasi dengan bahasa pemrograman berbeda-
32.2. Peningkatan Portabilitas Antar Aplikal yang Dibuat dengan Bahasa Pemrcgraman Berbeda Bahasa-bahasa pemrogftman selain C++
tidak dapat menggunakan pustaka LIB' dm header Jile yang berkstensi h. Dengan keterbatasan tersebut maka antar bahasa pemrograman tidak dapat
dilakukan shoing kdas melalui DLL. Tcrapi scp€rti diuraikan pada bagian 2.3
dari bahasa yang mendukung pcnggunaan DLL dapat memanggil fungsi didalam DLL tersebut dengan mengirimkan parameter atau menerima nilai balikan dari fungsi. bahwa aplikasi
Kemampuan
DLL ini
dapat
dimanfaatkan dengan cara nilai balikan ,tersebut berupa obyek. Sedangkan dari
uraian bagian 2.2.1 bahwa obyek merupakan instansiasi dari kelas. Jika antar aplikasi tidak dapat melakukan sharing kelas maka jalan keluarnya adalah antar aplikasi harus dapat melakukan sharing obyek. Agar dapat
dilakukan sharing obyek
maka
instansiasi obyek dengan kelas harus
dilakukan did4lam DLL. Agar obyek hasil instansiasi didalam DLL tersebut dapat digunakan oleh apikasi lain maka
harus disediakan suatu fungsi yang memberikan nifai balikan berupa obyek. Jadi fungsi tersgbut akan menjadi sarana
agar kelas-kelas didalam modul DLL dapat digunakan aplikasi lain walaupun tidak secara fangsung tetapi melalui sharing obyek.
Jemecahan masalah dengan sharing obyek mengha;uskan perancang modul DLL untuk mefetakkan kelas dan fungsi didalam DLL. Hal ini menimbulkan masalah baru yang berupa batasan aplikasi-aplikasi yang akan melakukan
sharing modul DLL harus dikembangkan dengan bahasa pemrograman yang mendukung paradigma berorientasi obyek sekaligus mendukung paradigma prosedural. Sharing obyek hanya dapat dilakukan aplikasi-aplikasi yang
untuk
dikembangkan dengan bahasa pemrogftrman yang mendukung paradigma bororientasi obyek dan prosedural (hybrid).
Mulya & Sukeml, Penggunaan DII Untuk Mentngkatkan Moduldritos....
4.
IMPLEMENTASI
menunjukan peningkatan portabilitas
ini teknologi DLL diterapkan dalam pengembangan perangkat lunak yang Pada penelitian
mengimplementasikan algoritma Blowfish dengan nama modul ClassCipher.dll. Modul DLL berisi kelas Cipher dengan methode EncryptQ dan
itu untuk sharing obyek disediakan Decrypt0. Selain
melalui sharingobyek.
5.
sebagai berikut:
l.
sarana
2.
Kriptografi yang berbeda tidak akan mengganggu,aplikasinya (tanpa perlu dilakukan proses link ulang. Aplikasi pemakai modul ClassCipher.dll
berupa simulasi transmisi data yang melibatkan proses enkripsi dan dekripsi.
Aplikasi tersebut dikembangkan dengan
Cr-F Builder dan Delphi. Peningkatan modularitas ditunjukkan melalui analisis
terhadap modul
ClassCipher.dll.
Sedangkan peningkatan portabilitas dihnjulJcan melalui analisis modul ClassCipher.dll dan pengembangan aplikasi yang menggunakan DLL tersebut.
Apikasi
yang
menggunakan
ClassCipher.dll terdiri dari empat aplikasi simulasi. Aplikasi pertama dikembangkan dsngan C++ Builder berhasil menunjukkan peningkatan portabilitas melalui sharing kelas. Aplikasi kedua dikembangkan dengan C+l Builder menunjukkan peningkatan portabilitas melalui sharing obyek.
Aplikasi ketiga dan
keempat
dikembangkan dengan Delphi keduanya
portabilitas
Peningkatap
pada
perangkat lunak yang dikembangkan dengan paradigma berorientasi
obyek diporoleh dengan teknologi DLL deng4n cara sharing kelas dan
tidak
diubah mengimplementasikan algoritma
berorientasf obyek.
dilingkungan bahasa C++
implementasi Blowfish atau modul lain terdapat kesalahan (error) maka tidak akan berpengaruh diantara modul-modul terjadi perambatan kesalahan antar modul (error propagalion). Selain itu terdapat dampak lain yaitu jika ClassCipher.dll
Penggunaan teknologi Dynamik Link Library pLL) terbukti dapat
meningkatkan modularitas dan portabilitas perangkat lunak yang dikembangfan dengan paradigma
fungsi
Peningkatan modularitas aplikasi pengguna DLL akan berdampak positip jika fungsi/methode penyusun
KESIMPULAN
Penelitian ini r4enghasilkan kesimpulan
CreateMyObject0.
tersebut. Artinya
eJ
3.
menyertak4n
fileLlB. portabilitas
Peningkatap
dilingkungan bahasa hybrid selain Q++ pada perangkat lunak yang
dikembangfan dengan paradigma berorientasl obyek diperoleh dengan teknologi DLL dengan cara sharing obyek.
.6. SARAN Terdapat bebelapa saran
terhadap
penelitian ini yaitu:
l. Untuk lebih jelas menunjukkan manfaat modularitas
terhadap perawatan
kemudahan
(maintainability)
penelitian
ini
membuat
sebaiknya
dilengkapi dengan
DLL
yang
mengimplepentasikan algoritna selain Blowfish misalnya DES, IDEA atau yang lain yang siap dipanggil {ari aplikasi tanpa proses linkingulaqg.
2. Untuk
rpeningkatkan manfaat teknologi pLL berkaitan dengan portabilitas maka penelitian ini dapat dilanjutkan dengan kajian terhadap penerapan DLL pada
Fts I
batrasa-batrasa
selain C++
dan
Pascal berorientasi obyek yang mendukung penggunaan
DLL
dan
berorientasi obyek, misalnya Visual Basic dan lain-lain.
7.
DAFTARPUSTAKA
Abreu-Poels-Sahraoui-Zuse, 2003, Quantitative Approaches in Sofrware
Object-Oriented
Engineering, Fernando Brito e Abreu, Geert Poels, Houari A. Satuaoui and Horst Zuse (eds), ISBN:1903996279
Alhir, i998, The Obiect-Oriented Paradign, Sinan SiAlhir, 1998 Cantu, 2003, Mastering Delphi T,Marco Cantu, Sybex
.
Microsoft, 2006, Best Practices for
Creating DLLs,
Microsoft Corporation. All rights reserved hessman, 2005, Sofware Engineering
A
Practitioner's Approach, Sixth
Mition, Roger S. Pressman, Mc Graw Hill, New York Rumbaugh-Bl aha-Premer an-EddyI
Lor.gnsen, 1991, Object-Oriented
Modeling and Design, James Rumbaugh, Michael Blaha William Premerlan, Frederick
Eddy, William Lorensen, Prentice Hall, New Jersey, 1991. Sanchcz and Canton, 2008, Sofrware
Solutions
for
Engineers and
.Scienfibls, Julio Sanchez and Maria P. Canton, CRC Press New York,2008
Sommervillq 2004, Software Engineering, 7'h Edition, Ian Sommerville Swart-Cashman-Gustavso n-
Hollingworth, 2003, Borland C++ Builder 6 Developer's Guide, Bob
SwarL Mark Cashman,
Gustavson, and
Paul
Janod
Hollingrvorth,
usA,2003.
Sams Publishing