Anda di halaman 1dari 7

Implementation of Design Pattern for Wireless Weather

System Application Design


Penerapan Pola Desain untuk Perancangan Aplikasi Stasiun
Cuaca Nirkabel
Lintang Dwi Febridiani
Pusat Penelitian Informatika
Lembaga Ilmu Pengetahuan Indonesia
Gedung 20 lt 3, Jln Sangkuriang 154 D, Bandung
Indonesia

Abstract

One of the problems in object oriented application development is how to achieve a good quality software design.
This paper presents a good quality software design for wireless weather system application based on design
patterns. Abstract Factory and Mediator design patterns are used to design the application based on problem
similarity. Design process produces a static and a dynamic model of the application in UML (Unified Modeling
Language) diagrams. We use class cohesion and coupling metrices to measure the quality of our design.
Measurements show our proposed design has high class cohesion and low class coupling.
Key Words: object oriented design, design pattern, unified modeling language

Abstrak

Salah satu permasalahan dalam pengembangan aplikasi berbasis objek adalah bagaimana mendapatkan desain aplikasi yang
berkualitas. Makalah ini mempresentasikan sebuah perancangan aplikasi stasiun cuaca nirkabel yang berkualitas berdasarkan pola
desain (design pattern). Pola desain Abstract Factory dan Mediator digunakan pada perancangan berdasarkan kesamaan
permasalahan desain. Hasil desain adalah desain statis dan dinamis aplikasi yang dimodelkan dalam diagram-diagram UML (Unified
Modeling Language). Ukuran kohesi dan coupling kelas digunakan untuk menilai kualitas desain. Hasil pengukuran menunjukkan
desain yang diajukan memiliki kohesi kelas yang tinggi dan class coupling yang rendah.
Kata kunci: desain berbasis objek, pola desain, unified modeling language

1. PENDAHULUAN yang bertujuan sama. Memang tidak persis sama,


Tahap desain pada rekayasa perangkat lunak namun memiliki pola yang sama. Permasalah
merupakan tahap penting yang menentukan kualitas desain yang umum itu biasanya disertai dengan
suatu perangkat lunak. Jika desain yang dibuat solusi-solusi desain perangkat lunak. Solusi yang
memiliki kualitas yang baik maka sebuah perangkat sudah teruji tersebut dikenal dengan pola desain
lunak akan juga memiliki kualitas yang baik yang (design pattern) [2]. Keuntungan penggunaan
dicirikan oleh: fungsionalitas, realibilitas, usabilitas, design pattern pada desain perangkat lunak adalah
efesiensi, maintainability, dan portability [1]. mempersingkat waktu desain dan mendapatkan
Dalam desain perangkat lunak, bagian sebuah desain perangkat lunak yang baik.
aplikasi yang dibuat umunya bukan permasalahan Penerapan pola desain disesuaikan dengan
yang benar-benar baru. Permasalahan desain yang permintaan perangkat lunak. Pada kasus antar muka
aplikasi stasiun cuaca berbasis Qt diperlukan analisis
dihadapi umumnya menyerupai permasalahan lain
pemilihan jenis pola desain dan penerapannya yang
tepat. Pada [3] telah dipresentasikan implementasi
Corresponding Author. Tel: +6222-2504711 antar muka grafis untuk stasiun cuaca nirkabel
Email: lintang@informatika.lipi.go.id berbasis Qt namun desain aplikasinya masih
Received: 7 Oct 2012; revised: 7 Nov 2012; accepted: 19 Nov 2012
mencampur antara proses bisnis, model entitas dan
Published online: 26 Nov 2012
c 2012 INKOM 2012/13-NO196
antarmuka sehingga akan
INKOM, Vol. 6, No. 2, Article 196, Publication date: November 2012.
80 Lintang Dwi Febriani

susah mendapatkan ciri perangkat lunak yang biasanya menunjukkan hubungan antar kelas
berkualitas. (model statis) dan interaksi antar objek (model
Sebuah penerapan design pattern untuk mengatasi dinamis). Namun berbeda dengan algoritma,
permasalahan kualitas perangkat lunak pada [3] pola desain tidak menunjukkan kelas dan
dipresentasikan oleh makalah ini. Dimulai dengan objek yang terlibat pada komputasi [1].
pemilihan jenis pola desain yang tepat, modifikasi Secara umum, sebuah pola desain memiliki
pola desain, dan menghasilkan model statis dan 4 elemen penting, yaitu [1]:
dinamis aplikasi stasiun cuaca nirkabel. Model statis (1) name, mendeskripsikan sebuah masalah,
dan dinamis aplikasi dibuat dalam diagram pada
penyelesaian dan konsekuensinya dengan
UML. Diagram-diagram UML ini sangat mudah
diterjemahkan menjadi kerangka kode pada
1-2 kata yang mudah dimengerti
implementasi aplikasi cuaca nirkabel berbasis Qt. (2) problem, menjelaskan pada konteks seperti apa
Pola desain pertama kali dikenalkan dan dibukukan sebuah pola digunakan. Meliputi prasyarat yang
oleh Gamma et al (Gang of Four) pada tahun 1999 [2] harus dipenuhi untuk menerapkan sebuah pola
yang berisi kumpulan desain perangkat lunak (3) solution, mendeskripsikan kelas-kelas
berbasis objek yang berkualitas ”baik”. Sejak saat itu yang terlibat pada solusi umum. Juga
design pattern telah dikaji dan digunakan seperti: [4] memperlihatkan elemen-elemen yang
mengaplikasikan dan merumuskan pola desain untuk membangung sebuah rancangan, seperti
pengembangan aplikasi game, [5] mengusulkan apa relasinya, apa tanggungjawabnya dan
perancangan sistem embedded dengan bagaiamana kolaborasinya.
menggunakan pola desain, dan [6] mengkaji kualitas (4) consequences, adalah hasil dan konsekuensi
rancangan perangkat lunak yang menggunakan pola dari implementasi pola dan strategi
desain. Penggunaan design pattern untuk rancangan perancangan yang harus dipertimbangkan
antar muka dapat ditemukan pada [7] dan [8]. [7]
Ada banyak sekali pola desain yang dapat
membuat rancangan antar muka untuk aplikasi
diimplementasikan sesuai dengan kebutuhan, namun
bergerak dengan menggunakan pola desain.
yang cukup populer adalah 23 macam pola desain
Sedangkan [8] mengusulkan model rekayasa
antarmuka pengguna dengan pola desain untuk yang dikenalkan oleh The Gang of Four (GoF).
aplikasi umum. Makalah ini berbeda dengan [7] dan Secara umum, ke-23 pola tersebut dibagi menjadi 3
[8] karena diterapkan pada sistem embedded dan kategori berdasarkan fungsinya, yaitu [1]:
untuk aplikasi khusus yaitu aplikasi cuaca nirkabel. (1) Creational Patterns, yaitu pola yang fokus
pada inisiasi kelas/objek;
Organisasi makalah adalah sebagai berikut: (2) Structural Patterns, yaitu pola yang memberikan
pada bagian 2 akan dibahas konsep pola desain komposisi sebuah kelas/objek; dan
dan framework Qt. Bagian 3 akan dipresentasikan
(3) Behavioral Patterns, yaitu pola yang
metodologi penelitian yang dipakai dengan
menyajikan cara mengukur kualitas desain
mengatur tingkah laku, interaksi atau
perangkat lunak. Bagian 4 menampilkan diagram fungsi dari suatu kelas/objek.
kelas dan sekuens (model statis dan dinamis) yang 2.2 Qt framework
diusulkan. Sedangkan bagian 5 akan membahas
kualitas desain yang dihasilkan. Makalah ditutup Qt sangat memungkinkan untuk penerapan pola
dengan kesimpulan pada bagian 6. desain. Qt memiliki Qobject sebagai kelas statis yang
utama, konsep Signal, Slots, template dan containers.
2. POLA DESAIN DAN QT FRAMEWORK Qt memiliki komponen-komponen yang mendukung
2.1 Pola Desain penerapan pola desain. Signal dan Slots mendukung
pemrograman berbasis komponen. Komponen dapat
Pola desain adalah deskripsi tentang kelas dan objek- menentukan signal yang dikeluarkan pada beberapa
objek yang berkomunikasi, yang dibuat untuk kondisi, dan juga parameter-parameternya.
menyelesaikan persoalan perancangan umum pada Komponen juga dapat menentukan slot, yang
konteks tertentu. Design pattern adalah sebuah solusi merupakan metode C++ standar dengan ditandai
terhadap masalah-masalah umum dalam rekayasa khusus sehingga dapat menjadi slot. Signal dan Slots
perangkat lunak yang dapat digunakan berulang kali. tersebut merupakan bagian dari metode
Pola desain ini merupakan sebuah template yang Qobject::connect() yang merupakan metode utama
menunjukkan bagaimana sebuah masalah dalam Qt [9]. Komponen-komponen yang digunakan
diselesaikan dan dapat digunakan kembali dalam berulang dapat berupa sebagai berikut : class,
situasi yang berbeda. Pada pemrograman berbasis namespace, header file (*.h), source code module
objek, pola desain ini (*.cpp), compiled
INKOM, Vol. 6, No. 2, Article 196, Publication date: November 2012.
Penerapan Pola Desain untuk Perancangan Aplikasi Stasiun Cuaca Nirkabel 81

object module (*.o atau *.obj), library (*.lib atau (4) Pemodelan tingkah-laku. Model tingkah laku
*.la), devel package (lib+header files) dan menggambarkan hubungan pemanggilan
application [10]. operasi entitas oleh entitas lain biasanya
Template memungkinkan C++ untuk men- dalam rangka memenuhi suatu use case.
generate kelas dan fungsi yang berbeda versi (5) Penilaian kualitas desain. Kualitas desain
dengan tingkah laku yang sama dan tipe yang perangkat lunak dapat dinilai dari aspek
berparameter. Template dibedakan dengan kohesifitas pada kelas dan coupling antar kelas.
penggunaan kata kunci template dan parameter
template ditulis dalam kurva sudut <>. Template 4. DESAIN APLIKASI YANG DIAJUKAN
fungsi (function template) digunakan untuk membuat
fungsi type-checked yang memiliki kesamaan pola. Berdasarkan metodologi yang dijelaskan pada
Sedangkan template kelas (class template) Bagian 3 beberapa hal yang akan dijelaskan
digunakan untuk membangkitkan containers data pada bagian ini adalah: (1) hasil analisis
umum [10]. Sedangkan containers adalah kelas untuk entitas yang terlibat, (2) design pattern yang
mengumpulkan tipe value (yang dapat diperbanyak). dipilih, (3) model struktural yang diajukan dan
Masing-masing struktur data dioptimalkan untuk (4) model behavioural yang diajukan.
operasi yang berbeda. Pada Qt 4, ada beberapa
kelas template containters, diantaranya Qlist<T>, 4.1 Analisis Entitas
QstringList, QlinkedList, Qvector<T>, Qmap <Key, Berdasarkan aplikasi cuaca nirkabel yang
T>, Qstack, dan lain-lain [10]. dijelaskan pada [3] terdapat 1 skenario use case
Sebagai contoh penerapan pola desain pada Qt yaitu use case tampilkan data terkini seperti yang
adalah penerapan pola desain Mediator. Tujuan dipresentasikan oleh Tabel I. Aktor untuk use case
pola desainMediator adalah membuat objek yang ini masih disederhanakan yaitu semua pengguna
mengenkapsulasi satu himpunan objek yang saling yang mengunjungi aplikasi sistem cuaca nirkabel.
berinteraksi. Mediator memungkinkan Terdapat 2 alir skenario yaitu: alir utama dan alir
pengembang mengatur interaksi objek sesuai exception. Alir utama dijalankan apabila
kebutuhan. Mediator dapat menjembatani interaksi pembacaan string data berhasil. Selain itu, yang
beberapa elemen seperti button, entry field, dan dijalankan adalah alir exception
listbox. Pada Qt, yang berperan sebagai mediator Berdasarkan analisis entitas pada skenario usecase
adalah kelas Qobject [10]. Pola Mediator juga menghasilkan beberapa kelas yang ada pada aplikasi
melibatkan Colleagues, kelas antara mediasi yang cuaca seperti yang ditunjukkan oleh Tabel II.
terjadi dan objek antar muka. Pada Qt, kelas ini bisa
berupa kelas apa saja yang merupakan turunan 4.2 Pola Desain
langsung maupun tidak langsung dari Qobject,
sehingga dapat terlibat pada mekanisme signal/slot. Berdasarkan analisa entitas maka permasalahan
desain pada aplikasi ini adalah: (1) Bagaimana
3. METODOLOGI merepresentasikan SensorMgr, SensorData dan
SensorImgGen untuk tiap-tiap jenis sensor dan
Metodologi penerapan pola desain untuk (2) Bagaimana agar kelas MainWindow tidak
aplikasi cuaca nirkabel tersusun oleh memiliki coupling yang besar terhadap kelas-
beberapa langkah sebagai berikut: kelas yang dipakainya seperti Parser dan
(1) Analisa masalah desain. Perumusan masalah SensorMgr. Representasi SensorMgr,
desain yang tepat akan menentukan tipe design SensorData dan SensorImgGen harus membuat
pattern yang dipilih. Dalam hal aplikasi cuaca kelas yang menggunakannya tidak perlu merujuk
nirkabel terdapat beberapa permasalahan yaitu: pada jenis sensor karena metode yang dipanggil
(1) Entitas apa saja yang ada?, (2) adalah sama. Sedangkan, MainWindow harus
Bagaimana merepresentasikan entitas?, (3) sekecil mungkin tersambung (coupling) dengan
kelas-kelas yang dibuat.
Apa hubungan struktural antar entitas? dan
(4) Apa hubungan tingkah laku antar entitas? Pemilihan pola desain didasarkan pada
kesamaan permasalahan disan yaitu dengan
(2) Pemilihan pola desain. Pada sebuah design
memperhatikan pernyataan problem pada pola
pattern, setiap entitas yang terlibat ditentukan desain. Berdasarkan itu, dipilih 2 pola desain yang
perannya dalam desain perangkat lunak. dipakai pada desain aplikasi yaitu Abstract Factory
(3) Pemodelan struktural. Model struktural dan Mediator. Intisari pola desain Abstract Factory
merupakan hasil desain pertama yang dan Mediator adalah sebagai berikut [2]:
menggambarkan hubungan statis antar
entitas dalam bentuk diagram kelas.
INKOM, Vol. 6, No. 2, Article 196, Publication date: November 2012.
82 Lintang Dwi Febriani

Tabel I. Skenario use case tampilkan data cuaca terkini Tabel II. Daftar Class
Pra Data cuaca tersedia dalam format Nama Kelas Keterangan
syarat string yang dapat diakses melalui MainWindow MainWindow merepresentasi
protokol http aplikasi yang merupakan display
Kondisi Data cuaca tertampil pada komponen data cuaca
akhir antarmuka dan tersimpan pada media Parser Parser merepresentasikan entitas
penyimpanan yang dapat melakukan parsing
Aktor Semua pengguna (User) terhadap string data kiriman sensor-
Alir No Aksi sensor
utama SensorManager SensorMgr merepresentasikan
1 User membuka aplikasi cuaca entitas yang berurusan dengan
2 Aplikasi mengambil string data penampilan, dan penyimpanan
cuaca terkini melalui http data sensor terkini. Masing-
3 Parser memparsing string data masing jenis sensor memiliki
cuaca kelas SensorMgr sendiri
4 Parser memberikan data humidity, yaitu: HumiditySensorMgr,
windspeed, winddirection, rainfall, WindSensorMgr,
airpressure dan sunradiation ke RainfallSensorMgr,
masing-masing SensorManager. AirpressureSensorMgr dan
5 Masing-masing SensorManager SunradiationSensorMgr
mambangkitkan gambar SensorData SensorData merepresentasikan
tampilan data terkini melalui entitas yang menyimpan tipe
ImageGenerator. dan format data sensor. Sama
6 Display menampilkan gambar seperti kelas SensorMgr masing-
tampilan semua data cuaca melalui masing jenis sensor memiliki kelas
SensorManager SensorData.
Alir No Aksi SensorImgGen SensorImgGen merepresentasikan
exception entitas yang dapat membangkitkan
1 User membuka aplikasi cuaca image untuk penampilan data
2 Aplikasi gagal mengambil string sensor. Sama seperti kelas
data cuaca terkini melalui http SensorMgr masing-masing
3 Aplikasi mengambil gambar null jenis sensor memiliki kelas
dari SensorManager SensorImgGen.
4 Aplikasi menampilkan dialog
exception data tidak tersedia (2) Mediator.
(a) Problem: bagaimana membuat objek
(1) Abstract Factory. yang menenkapsulasi sehimpunan
(a) Problem: bagaimana membuat objek yang saling berinteraksi.
interface untuk sebuah keluarga objek (b) Participants.
yang saling berelasi, tanpa secara —Mediator: mendefinisikan interface
eksplisit menspesifikasi kelas. agar objek Colleague bisa saling
(b) Participants. berinteraksi.
—AbstractFactory: mendeklarasikan —ConcreteMediator:
interface untuk pembuatan objek. mengimplementasikan interface
—ConcreteFactory: Mediator dan mengkoordinasikan
mengimplementasikan komunikasi antara objek Colleague.
AbstractFactory untuk membuat —Colleague: berkomunikasi dengan
objek. Colleague lain melalui Mediator
—AbstractProduct: mendeklarasikan
interface untuk kelas/tipe objek. 4.3 Desain Struktural
—ConcretePoduct:mendefinisikan Hasil desain struktural aplikasi adalah kelas
objekyangdibuatoleh diagram seperti pada Gambar 1. Gambar 1
ConcreteFactory dan merupakan sebagian hasil desain struktural yang
mengimplementasikan berkaitan dengan pembuatan dan penggunaan
AbstractProduct. kelas SensorManager.Pola desain Abstract Factory
digunakan dalam desain struktural
INKOM, Vol. 6, No. 2, Article 196, Publication date: November 2012.
Penerapan Pola Desain untuk Perancangan Aplikasi Stasiun Cuaca Nirkabel 83

untuk mengenkapsulasi kelas-kelas turunan melakukan parsing terhadap string kiriman


SensorManager. server menjadi beberapa data sensor.
Pemetaan participant pola desain Abstract Sedangkan, kelas SensorMgr (yang dibuat oleh
Factory pada diagram kelas Gambar 1 adalah kelas SensorMgrFactory) mengandung beberapa
sebagai berikut: fungsi yang berurusan dengan penyimpanan data
sensor terkini dan perepresentasian data sensor.
—AbstractFactory: SensorMgrFactory
—AbstractProduct: SensorMgr 5. KUALITAS DESAIN
—ConcreteProduct: HumiditySensorMgr, Untuk menilai kualitas desain aplikasi berbasis objek
WindSensorMgr,RainfallSensorMgr, digunakan 2 kriteria yang umum dipakai yaitu: class
AirpressureSensorMgr dan cohesion dan class coupling. Class cohesion
SunradiationSensorMgr. didefinisikan sebagai ketersatuan elemen pada kelas
Kelas SensorMgrFactory dan SensorMgr (tidak termasuk elemen yang diturunkan). Class
merupakan kelas abstrak/interface. Kelas cohesion dinilai rendah (kelas tidak utuh dan bisa
SensorMgrFactory berisi satu operasi static dipisahkan) bila kelas merepresentasikan beberapa
(operasi yang bisa dieksekusi tanpa perlu ada abstraksi data yang tidak berhubungan,
objek) untuk membuat objek SensorMgr. [11]. Sedangkan class coupling adalah
Sedangkan SensorMgr berisi interface operasi ukuran seberapa tergantung sebuah kelas
yang perlu diimplementasikan oleh kelas dengan kelas-kelas lain [11]. Class coupling
turunannya yaitu operasi setSensorData dan pada desain yang baik memiliki ukuran yang
getSensorImage. Selain itu, terdapat dua definisi rendah karena menunjukan modularitas.
kelas utilitas untuk SensorMgr yaitu kelas
5.1 Kohesi Kelas
SensorData untuk merepresentasikan satu data
bacaan sensor dan SensorImgGenerator untuk Salah satu metrik kohesi kelas yang sudah lama
merepresentasikan kelas yang mengandung diterima adalah LCOM (Lack of Cohesion in Methods)
operasi membangkitan citra data sensor. [11]. LCOM dihitung dengan cara:
Keunggulan desain kelas pada Gambar 1
adalah pengguna paket SensorMgr yaitu
WWSMediator hanya berurusan dengan LCOM = jP j jQj if jP j < jQj (1)
SensorMgr dan SensorMgrFactory tanpa harus 0otherwise
langsung menggunakan kelas-kelas kongkrit. dengan P dan Q adalah:
Hal ini menunjukkan tercapainya enkapsulasi
pada aras paket. Selain itu, jika ada
penambahan jenis sensor maka desain yang P = f(Ii; Ij )jIi \ Ij = ;g (2)
berubah hanya pada kelas konkrit yaitu dengan
membuat kelas turunan SensorMgr baru
misalnya dengan membuat kelas AltitudeSensor Q = f(Ii; Ij )jIi \ Ij 6= ;g (3)
yang mengimplementasikan/meng-extend kelas
SensorMgr. dengan fIig adalah himpunan objek yang digunakan
4.4 Desain Behavioral oleh metode Mi. Sebuah kelas C1 diasumsikan
Diagram sekuens pada Gambar 2 merupakan hasil memiliki metode M1; M2; ; Mn. Nilai LCOM yang
rendah dapat disimpulkan secara sementara bahwa
desain behavioral/dinamis terhadap aplikasi.
kelas memiliki kohesi yang tinggi, sedangkan nilai
Desain behavioral aplikasi menggunakan pola LCOM yang tinggi menunjukkan nilai kohesi yang
disain Mediator dengan tujuan mengurangi derajat rendah (kelas bisa dipisahkan).
coupling antara kelas utama (MainWindow) dan Nilai LCOM untuk kelas MainWindow dari
kelas model yaitu kelas Parsing dan SensorMgr. [3] adalah 1. Ini menunjukkan kohesi kelas
Gambar 2 berdasarkan interpretasi skenario use MainWindow memiliki kohesi yang cukup. Namun
case yang diberikan oleh Tabel I. Pengguna/User apabila diperhatikan lebih jauh metode updateData
membuat objek MainWindow yang merupakan pada kelas MainWindow melakukan 3 pekerjaan
kelas utama yang menggandung fungsi main dan terpisah yaitu: (1) melakukan koneksi ke Server,
menciptakan objek window untuk User. Kelas (2) melakukan parsing data dan (3)
WWSMediator memerankan peran mediator untuk melakukan tampilan ke objek antarmuka
beberapa kelas Colleague yaitu: MainWindow, grafis. Fakta ini menunjukkan kohesi metode
Parser dan SensorMgr. Kelas Parser merupakan updateData rendah dan menyebabkan kohesi
kelas yang mengandung fungsi parse yang kelas MainWindow juga rendah.
INKOM, Vol. 6, No. 2, Article 196, Publication date: November 2012.
84 Lintang Dwi Febriani

Gambar 1. Desain Struktural SensorManager dengan Abstract Factory

Gambar 2. Desain Behavioral dengan Pola Desain Mediator

Sedangkan nilai LCOM untuk kelas-kelas Sedangkan nilai CBO kelas-kelas yang
yang diusulkan pada desain adalah 0. Hal ini diusulkan diberikan oleh Tabel III.
disebabkan oleh tidak ada Ii \ Ij = ; sehingga jP
j = 0. Hal ini menunjukkan kelas-kelas yang Tabel III. Nilai CBO antar Kelas yang
didesain memiliki nilai kohesi yang tinggi. diusulkan
MW WM SF SM P SD SG
MW - 2 0 0 0 0 0
5.2 Class Coupling WM 2 - 1 2 1 0 0
Salah satu metrik class coupling yang banyak SF 0 1 - 1 0 0 0
digunakan adalah Coupling between object SM 0 2 1 - 0 1 1
classes (CBO). CBO adalah jumlah coupling P 0 1 0 0 - 0 0
antara satu kelas C1 dengan kelas lain C2 yaitu SD 0 0 0 1 0 - 0
jumlah metode dan jumlah atribut pada C2 yang SG 0 0 0 1 0 0 -
digunakan/dipanggil oleh C1.
Nilai CBO pada kelas MainWindow pada [3] tidak Berdasarkan Tabel III, nilai CBO terbesar adalah
dapat ditentukan karena hanya mengandung 1 kelas. 2 yaitu pasangan kelas MainWindown (MW) dan
INKOM, Vol. 6, No. 2, Article 196, Publication date: November 2012.
Penerapan Pola Desain untuk Perancangan Aplikasi Stasiun Cuaca Nirkabel 85

kelas WWSMediator (WM) dan pasangan kelas 2001.


WWSMediator (WM) dan kelas SensorMgr. Namun, [2] E. Gamma, R. Helm, R. Johnson, and J.
memang kelas WWSMediator dirancang sebagai Vlissides, Design Pattern : Element of Reusable
kelas penghubung sehingga nilai class couplingnya Object-oriented Software. Addison Wesley, 1994.
tinggi. Akan tetapi, secara keseluruhan desain [3] A. Heryana, S. Arif, and L. D. Febriani, “Implementasi qt
aplikasi mencapai class coupling rendah yang embedded linux pada sbc alix 3d3 sebagai antarmuka
ditunjukkan oleh CBO = 0 yaitu sebanyak 14 pasang. grafis stasiun cuaca nirkabel,” in Prosiding Seminar
Nasional Embedded System, 2012, pp. 63–68.
Sedangkan, nilai CBO 6= 0 sebanyak 7. Oleh karena
itu, bisa disimpulkan desain aplikasi yang diusulkan [4] A. Ampatzoglou and A. Chatzigeorgiou,
“Evaluation of object-oriented design patterns in
memiliki nilai coupling yang rendah.
game development,” Information and Software
Technology, pp. 445–454, 2007.
6. KESIMPULAN
[5] M. J. Pont and M. P. Banner, “Designing embedded
Penerapan pola desain pada desain aplikasi cuaca systems using patterns: A case study,” Journal of
nirkabel telah dilakukan. Berdasarkan analisis kelas Systems and Software, pp. 201–213, 2004.
melalui skenario use case, dipakai 2 pola desain yaitu [6] A. Ampatzoglou, G. Frantzeskoua, and I. Stamelos,
Abstract Factory dan Mediator. Hasil penerapan pola “A methodology to assess the impact of design
desain adalah rancangan struktural aplikasi berupa patterns on software quality,” Information and
diagram kelas dan rancangan behavioural berupa Software Technology, pp. 331–346, 2012.
diagram sekuens. Berdasarkan metrik kohesi dan [7] E. G. Nilsson, “Design patterns for user interface
for mobile applications,” Advances in Engineering
coupling didapatkan desain aplikasi cuaca nirkabel
Software, pp. 1318–1328, 2009.
yang berkualitas. [8] S. Ahmed and G. Ashraf, “Model-based user
Penelitian lebih lanjut yang menarik untuk interface engineering with design patterns,” Journal
dilakukan diantaranya: penemuan atau of Systems and Software, pp. 1408–1422, 2007.
penerapan pola desain untuk aplikasi embedded [9] M. K. Dalheimer, Programming wit Qt, 2nd
system dan perumusan metrik kohesi dan Edition. Writing Portable GUI application on Unix
coupling untuk disain berbasis objek. and Win32. O’ Reilly Media, 2002.
[10] P. A. Ezust, An Introduction to Design Pattern in
Daftar Pustaka C++ with Qt 4. Prentice Hall, 2006.
[11] S. R. Chidamber and C. F. Kemerer, “A metrics
[1] R. S. Pressman, Software Engineering: A Practitioner’s suite for object oriented design,” IEEE Transaction
Approach, 5th ed. McGraw-Hill Higher Education, on Software Engineering, pp. 476–493, 1994.

INKOM, Vol. 6, No. 2, Article 196, Publication date: November 2012.