• Tidak ada hasil yang ditemukan

Pembangunan Class Library Pada Domain Aplikasi Event Ticketing Pada Platform Windows Phone

N/A
N/A
Protected

Academic year: 2017

Membagikan "Pembangunan Class Library Pada Domain Aplikasi Event Ticketing Pada Platform Windows Phone"

Copied!
62
0
0

Teks penuh

(1)

1

BAB I

PENDAHULUAN

I.1Latar Belakang Masalah

Pemesanan event tiket yang saat ini telah beralih menggunakan teknologi internet membuat pengembangan aplikasi event ticketing semakin banyak dibuat. Penggunaan aplikasi event ticketing sangat berguna untuk mengurangi biaya pencetakan tiket dan menyediakan pembelian tiket secara online. Berdasarkan survei lebih dari 90 persen pengguna internet yang disurvei secara global menunjukan pengguna kebanyakan menggunakan media sosial dengan mayoritas (60 persen) menggunakannya setiap hari [1]. Lebih dari pengguna online pernah berbelanja via internet. Yang paling populer adalah pembelian tiket secara online

[2]. Perangkat lunak event ticketing memudahkan pengguna dalam melakukan pembelian ticket secara online. Berdasarkan survei lebih dari 1000 responden yang merupakan himpunan dari organisasi-organisasi yang telah disurvei secara global menyatakan bahwa penjualan tiket secara online menggunakan teknologi mobile mencapai 72% [3]. Kebutuhan perangkat lunak event ticketing dalam penjualan tiket menjadi pemicu pengembang perangkat lunak untuk membangun perangkat lunak event ticketing.

(2)

dibuat sebelumnya hal ini membuat pembangunan aplikasi event ticketing dapat memakan waktu yang lama. Sebagai jalan untuk memecahkan masalah diatas adalah dengan cara membangun class library.

Dalam bahasa pemrograman berbasis objek, class library dapat didefinisikan sebagai fungsi yang mempermudah programer dalam membangun perangkat lunak [2]. Class library yang dibangun harus konsisten dan terdokumentasi dengan baik sehingga mudah untuk digunakan. Dengan menggunakan kembali fungsi-fungsi dari suatu perangkat lunak maka dapat membantu pengembang untuk menghemat waktu dalam pembangunan aplikasi sehingga pengembang tidak harus membuat ulang fungsi-fungsi yang sudah pernah dibuat sebelumnya. Pembangunan class library dapat di bangun pada berbagai platform salah satunya dapat dibangun pada platform windows phone. Berdasarkan penelitian yang dilakukan oleh IDC (International Data Corporation) diketahui bahwa pengguna windows phone memiliki peningkatan setiap tahunnya [4]. Selain itu berdasarkan survei sekitar 43% pengembang pada tahun 2010 yang mengembangkan aplikasi pada platform Windows Phone [5]. Dengan dibangunnya

class library untuk domain aplikasi event ticketing diharapkan dapat menjadi sebuah solusi untuk pengembang untuk dapat mengoptimalkan perangkat lunak event ticketing yang dibangun sehingga pembangunan perangakat lunak event ticketing lebih mudah.

I.2Perumusan Masalah

Berdasarkan latar belakang masalah yang telah dipaparkan, perumusan masalah dari penelitian ini adalah bagaimana cara membangun class library untuk domain aplikasi event ticketing.

I.3Maksud dan Tujuan

(3)

1. Memudahkan pengembang dalam pembangunan perangkat lunak event ticketing sehingga pengembang dapat mengoptimalkan pengembangan aplikasi yang dibuat.

2. Memudahkan pengembang dengan menyediakan fungsi-fungsi yang terdapat pada domain event ticketing yang dapat digunakan kembali untuk proses pengembangannya.

I.4Batasan Masalah

Batasan masalah pada penelitian ini adalah sebagai berikut:

1. Bahasa pemrograman yang digunakan pada pembangunan class library adalah C#.

2. Pembangunan class library hanya untuk pembangunan perangkat lunak dengan platform windows phone.

3. Pendekatan analisis yang digunakan perangkat lunak ini menggunakan OOAD (Object Oriented Analysis and Design).

4. Domain kasus penelitian hanya terbatas pada domain event ticketing. 5. Pengujian yang dilakukan untuk menguji class library dengan melakukan

unit testing, pengujian integrasi dan pengujian aceeptance.

I.5Metodologi Penelitian

(4)

I.5.1Metode Pengumpulan Data

Metode pengumpulan data yang digunakan adalah sebagai berikut:

1. Studi Literatur

Studi literatur dilakukan dengan membaca dan memahami literatur yang berasal dari jurnal ilmiah, e-book, buku, maupun situs yang terkait dengan penelitian ini.

2. Wawancara

Wawancara dilakukan dengan mengajukan beberapa pertanyaan kepada beberapa orang programer selaku narasumber.

3. Observasi

Pengumpulan data dengan metode observasi dilakukan dengan menganalisis aplikasi-aplikasi yang terdapat di Windows Store.

I.5.2Metode Penyelesaian Masalah

Metode penyelesaian masalah merupakan metode yang digunakan untuk menyelesaikan masalah yang terdapat pada penelitian ini. Berikut ini merupakan metode penyelesaian masalah yang digunakan.

(5)

1. Analisis Domain Aplikasi

Pada tahap analisis domain aplikasi dilakukan dengan melakukan analisis fungsionalitas yang terdapat pada tiga domain aplikasi serupa yaitu event ticketing.

2. Analisis Frozen Spot

Setelah domain aplikasi dianalisis maka akan dilakukan analisis frozen spot. Analisis frozen spot dilakukan pada ketiga aplikasi sejenis untuk mendefinisikan fungsional-fungsional dari masing-masing aplikasi. 3. Analisis Hotspot

Pada tahap analisis hotspot akan didefinisikan fungsional-fungsional sejenis yang ditemukan pada ketiga aplikasi.

4. Perancangan Class Library

Tahap perancangan class library merupakan tahap perancangan arsitektur class dan package yang nantinya akan diimplementasikan.

5. Implementasi Class Libarary

Perancangan kelas yang telah didefinisikan, akan diimplementasikan ke dalam bentuk kode-kode pemrograman dan yang nantinya akan diuji, 6. Pengujian class library

Menguji fungsi yang telah dibangun sehingga sesuai dengan tujuan dan sudah layak untuk digunakan.

I.6Sistematika Penulisan

Sistematika penulisan penelitian ini dibuat dengan tujuan untuk memberikan gambaran umum dari penelitian yang akan dilakukan. Sistematika penulisan penelitian ini adalah sebagai berikut:

BAB I Pendahuluan

BAB I menguraikan tentang latar belakang masalah, identifikasi masalah, maksud dan tujuan penelitian yang dilakukan, batasan masalah pada penelitian, metode-metode yang digunakan pada penelitian, dan sistematika penulisan.

(6)

BAB II menguraikan konsep, teori-teori dan bahan kajian yang digunakan sebagai bahan acuan penelitian baik yang bersal dari buku, e-book, jurnal, maupun artikel-artikel untuk memecahkan permasalahan pada penelitian.

BAB III Analisis dan Perancangan Sistem

BAB III menguraikan hasil analisis objek penelitian dan menemukan permasalahan yang timbul, solusi yang mungkin untuk memecahkan masalah tersebut, dan perancangan sistem.

BAB IV Implementasi dan Pengujian Sistem

BAB IV menguraikan implementasi dari perancangan sistem yang dibuat dan kemudian dilakukan pengujian terhadap aplikasi yang telah di buat.

BAB V Kesimpulan dan Saran

(7)

7

BAB II

LANDASAN TEORI

II.1Electronic Ticketing

Tiket Elektronik (Electronic Ticketing) merupakan teknologi yang digunakan dalam pemesanan tiket secara online. Tiket elektronik telah dikembangkan untuk mengganti tiket kertas dan voucher kedalam bentuk elektronik. Keuntungan digunakannya tiket elektronik adalah pengguna mampu membeli tiket masuk, voucher makan dan minuman yang didownload pada suatu kartu. Semua orang dapat menggunakan smartphone untuk memesan tiket bukan menunggu dalam antrian untuk membeli kertas tiket. Tiket elektronik digunakan untuk mempercepat transaksi dan memudahkan penggunanya dalam pemesanan tiket [7]. Penjualan tiket secara online banyak diterapkan termasuk penjualan tiket suatu event.

II.2Object Oriented Programming

Object Oriented Programming merupakan sebuah pendekatan pengembangan perangkat lunak, dimana struktur perangkat lunak dianalisis berdasarkan objek yang saling berinteraksi untuk menyelesaikan tugasnya berdasarkan urutan logika yang telah ditentukan. Interaksi ini membutuhkan pertukaran pesan bolak-balik antara objek yang satu dengan objek yang lainnya. Setelah pesan diterma, objek dapat melakukan action atau method [8].

Object Oriented programming memiliki enam konsep dasar, yaitu:

1. Object

Object merupakan struktur yang menggabungkan dara dan prosedur agar dapat berjalan dengan suatu data.

2. Abstraction

(8)

3. Encapsulation

Enkapsulation adalah proses dimana akses data secara langsung tidak diizinkan. Untuk mengakses data tersebut dapat menggunakan objek yang bertanggung jawab dalam pengaksesan data. Dengan enkapsulasi data membuat sistem yang dibuat lebih aman.

4. Inheritance

Inheritance atau pewarisan digunakan untuk mengklasifikasikan objek menuruk karakteristik dan fungsi. Dengan menggunakan inheritance membuat pekerjaan dengan menggunakan objek menjadi lebih mudah. 5. Polymorphysm

Polymorphysm adalah kemampuan dua bauh objek berbeda untuk menerima pesan permintaan yang sama dengan cara yang berbeda pada tiap objek. Pada implementasinya dapat menggunakan objek dengan nama yang sama.

6. Agregation

Agregation adalah dimana ketika sebuah objek yang terdiri dari gabungan objek yang saling bekerjasama. Dengan menggunakan agregasi memungkinkan untuk mengimplementasitakan prosen bisnis sesusai dengan model.

II.3Style Programming C#

Setiap bahasa pemrograman pasti memiliki gaya sendiri dalam penulisan programnya, begitu juga pada bahasa pemrograman C#. Style programming

memiliki tujuan untuk menciptakan penulisan kode yang konsisten sehingga orang yang membacanya hanya perlu berfokus pada konten dan memungkinkan untuk memahami kode dengan cepat.

(9)

Penggunaan nama-nama yang bermakna artinya nama variabel harus benar-benar menjelaskan fungsinya. Nama variabel harus kata atau kombinasi kata kecuali bila suatu varibel berupa huruf dikenali, seperti i dan j. Penamaan menggunakan Pascal Case pada setiap awal kata menggunakan huruf kapital sedangkan Camel Case sama dengan pascal case hanya huruf pertama pada kata pertama tidak dengan huruf kapital [9].

Gambar II.2 Penamaan pada bahasa pemrograman C#

Gambar II.3 Contoh penulisan nama

Nama kelas interface diawali dengan “I” contohnya adalah IDisposable,

(10)

Gambar II.4 Penulisan namespace

2. Tata Letak (Layout)

Layout yang baik menggunakan format untuk menandai struktur kode sehingga lebih mudah untuk dibaca. Gunakan pengaturan Code Editor yang default. Penulisan statement hanya boleh satu statement per baris. Deklarasi hanya boleh satu deklarasi per baris. Apabila baris yang berkelanjutan tidak terindentasi secara otomatis maka gunakan satu kali tab stop. Tambah sebuah baris kosong antara definisi method dan definisi property. Gunakan tanda kurung untuk membuat klausa dalam ekspersi yang jelas. Berikut adalah contoh layout yang benar [10].

Gambar II.5 Contoh penulisan layout

3. Comment

Penulisan comment yang baik adalah dengan menempatkan di sebuah baris terpisah jangan ditempatkan di akhir kode. Awali comment dengan huruf besar. Tambahkan satu spasi antara pembatas comment (//) dan teks

comment. Berikut ini adalah contoh penulisan comment [10].

(11)

4. Indentasi dan Spasi

Maksimal kolom yang digunakan adalah 80 kolom artinya maksimal penggunaan karakter adalah 80 karakter per baris. Apabila menggunakan lebih dari 80 kolom menyebabkan kode di teruskan ke baris selanjutnya. Hal ini dapat menyulitkan saat kode dibaca [9].

Jangan menggunakan krakter tab. Untuk ngganti tab dapat menggunakan spasi untuk mengontrol indentasi. Kebanyakan baris pada kode yang diindent hanya boleh empat spasi dari baris kode sebelumnya. Baris kosong hanya boleh ada antara deklarasi dan harus dibatasi maksimal satu baris kosong [9]. Contoh penggunaan indentasi dan spasi adalah sebagai berikut.

Gambar II.7 Contoh penggunaan indentasi dan spasi

II.4Generic Programing

Generic Programming bertujuan untuk meringankan beban programmer dengan cara memungkinkan fungsi umum untuk di definisikan sekali untuk banyak tipe data, bukan hanya untuk satu tipe data. Generic programming menggunakan menambahkan parameter program generik.

II.5Class Library

(12)

huruf pertama pada setiap kata dalam penamaan selalu diawali dengan huruf besar. Dengan menggunakan pascal case nama dari identifier akan lebih mudah untuk dibaca [12].

II.5.1Pedoman Pembangunan Class Library

Pedoman pembangunan Class Library ini merupakan pedoman yang digunakan pada .NET Framework. Tujuan dari pedoman ini adalah untuk membantu desainer class library untuk memstikan bahwa class library yang dibangunnya paham karena konsistensi API dan kemudahan penggunaan dengan menyediakan model pemrograman yang terpadau dan independen. Desain class library yang tidak konsisten akan merugikan produktifitas pengembang [13]. Berikut adalah pedoman yang harus diperhatikan dalam membangun class library.

1. Naming Guidelines

Penamaan dalam pembangunan Class Library merupakan hal yang penting karena hal ini diperlukan agar mudah dipahami oleh pengguna. Terdapat beberapa aturan penamaan yaitu General Naming Conventions, Names of Namespaces, Name of Clases, Stucts, and Interfaces, Name of Type Members, Names of Parameters, Names of Resources. Pola penamaan yang konsisten akan mempengaruhi prediktibilitas dan dicoverability dalam pengelolaan class library.

a. Capitalization Conventions

Terdapat tiga style dalam penamaan yang biasa digunakan, yaitu:

1) Pascal Casing

Pada Pascal Casing huruf pertama pada identifier dan huruf pertama pada kata berikutnya harus kapital.

Contoh : PropertyDescriptor

2) Camel Casing

(13)

Contoh : propertyDescriptor

3) Uppercase

Semua huruf pada identifier adalah huruf kapital

Contoh : IO

Tabel II.1 Jenis-jenis Identifier

Identifier Casing Example

Class Pascal AppDomain

Enum type Pascal ErrorLevel

Enum values Pascal FatalError

Event Pascal ValueChange

Exception class Pascal WebException

Note: Selalu gunakan

Exception di akhir

Read-only Static

field

Pascal RedValue

Inteface Pascal IDisposable

Note: Selalu gunakan awalan I

Method Pascal ToString

Namespace Pascal System.Drawing

Parameter Camel typeName

Property Pascal BackColor

Protected instance

field

Camel redValue

Public instance field Pascal RedValue

b. Untuk menghindari kebingungan dan menjamin operasi lintas bahasa, maka penggunaan case sensitif. Berikut adalah panduan penggunaan

casesensitivity pada .NET Framework.

(14)

dan case-insensitive. Bahasa case-insensitive tidak dapat membedakan antara dua nama dalam konteks yang sama.

2) Jangan membuat dua namespace dengan nama yang hanya dibedakan oleh case saja. Misalnya bahasa case-insensitive tidak dapat membedakan antara dua deklarasi namespace deklarasi berikut:

namespace ee.cummings; namespace Ee.Cummings;

3) Jangan membuat fungsi dengan nama parameter yang hanya dibedakan oleh case saja. Contoh berikut adalah contoh yang salah dalam penggunaan nama parameter.

void MyFunction(string a, string A)

4) Jangan membuat namespace dengan nama tipe yang hanya dibedakan oleh case saja. Pada contoh berikut, point p dan POINT p adalah jenis penamaan yang tidak baik untuk digunakan.

System.Windows.Forms.Point p System.Windows.Forms.POINT p

5) Jangan membuat type dengan nama properti yang hanya dibedakan oleh case saja. Pada contoh berikut, int Color dan int COLOR adalah penamaan properti yang tidak baik digunakan.

int Color {get, set} int COLOR {get, set}

6) Jangan membuat type dengan nama method yang hanya dibedakan oleh case saja. Pada contoh berikut, calculate dan Calculate adalah penamaan method yang tidak baik untuk digunakan karena hanya dibedakan dengan case.

(15)

c. General Naming Conventions

Terdapat hal-hal yang berhubungan dengan penamaan yang harus diperhatikan seperti pemilihan nama identifier harus mudah dibaca, penamaan yang ringkas dan mewakili, jangan menggunakan garis bawah, tanda hubung, atau karakter nonalphanumeric lainnya, dan jangan menggunakan notasi Hungaria.

Untuk menghindari kebingungan dan menjamin operasi lintas bahasa, ikuti aturan penggunaan singkatan dibawah ini:

1) Jangan gunakan singkatan sebagai bagian dari nama identifier. Misalnya, menggunakan GetWindow bukan GetWin.

2) Jangan menggunakan singkatan yang tidak umum dalam komputasi 3) Gunakan singkatan untuk menggantikan nama frase yang panjang.

Misalnya menggunakan UI untuk User Interface.

4) Ketika menggunakan singkatan, gunakan pascal case dan camel case untuk singkatan yang karakternya lebih dari dua. Misalnya System.IO

5) Jangan menggunakan singkatan dalam identifiers atau nama parameter. Jika Anda harus menggunakan singkatan, gunakan camel case untuk singkatan yang terdiri dari lebih dari dua karakter, bahkan jika ini bertentangan dengan singkatan standar dari kata.

d. Class Naming Guidelines

Berikut ini adalah uraian pedoman untuk penamaan kelas:

1) Gunakan kata benda atau kata benda frase untuk nama kelas 2) Gunakan pascal case

3) Gunakan singkatan

(16)

5) Jangan gunakan karakter garis bawah ( _ ).

6) Terkadang diperlukan penamaan kelas yang diawali dengan karakter I meskipun kelas tersebut bukan Interface. Hal ini masih dianggap sesuai selama I adalah huruf pertama dari seluruh kata yang merupakan bagian nama kelas. Misalnya nama kelas IdentityStore.

7) Apabila diperlukan gunakan kata majemuk untuk nama kelas turunan. Bagian kedua dari nama kelas turunan harus menjadi nama kelas dasar. Misalnya, ApplicationException adalah nama kelas turunan yang tepat dari kelas yang bernama Exception, karena ApplicationException adalah jenis Exception.

public class FileStream

public class Button

public class String

e. Attribute Naming Guidelines

Dalam penamaan attribute selalu harus ditambahkan akhiran attribute untuk kelas attribute khusus. Berikut ini adalah contoh dari penamaan kelas attribute yang benar.

public class ObsoleteAttribute{}

f. Parameters Naming Guidelines

Berikut ini adalah uraian pedoman untuk penamaan parameter: 1) Gunakan camel case untuk penamaan parameter

2) Gunakan nama parameter deskriptif

3) Gunakan nama yang menggambarkan nama parameter dari pada nama-nama yang menggambarkan jenis parameter.

4) Jangan menggunakan nama parameter yang sudah ada

5) Jangan menggunakan notasi hungaria dalam penamaan parameter. Berikut ini adalah contoh dari penamaan parameter yang benar.

(17)

string Format(string format, object[] args)

g. Method Naming Guidelines

Aturan berikut menguraikan pedoman penamaan method:

1) Gunakan kata kerja atau frase kata kerja untuk nama method. 2) Gunakan pascal case. Berikut ini adalah contoh dari penamaan

method yang benar.

RemoveAll() GetCharArray() Invoke()

h. Property Naming Guidelines

Aturan berikut menguraikan pedoman penamaan property:

1) Gunakan kata benda atau frase kata benda untuk penamaan property 2) Gunakan pascal case

3) Jangan menggunakan notasi hungaria

4) Pertimbangkan untuk membuat sebuah property dengan nama yang sama sebagai jenis yang mendasarinya. Berikut ini adalah contoh dari penamaan property yang benar.

public class SampleClass {

public Color BackColor {

// Code for Get and Set accessors goes here. }

}

=====================================================

public enum Color {

// Insert code for Enum here. }

public class Control {

(18)

{

get {// Insert code here.} set {// Insert code here.} }

}

i. Names of Assemblies and DLL’s

Sebuah assembly mengamdung semua atau bagian-bagian dari library yang dapat digunakan kembali dan terdapat dalam sebuah single

dynamic-link library (DLL). Sebuah assembly dapat dibagi menjadi multiple DLL tetapi hal ini jarang sekali digunakan. Berikut adalah panduan penamaan untuk DLL.

1) Jangan pilih nama DLL dengan nama yang menunjukan potongan besar fungsionalitas seperti System.Data. Assembly dan nama DLL tidak harus sesuai dengan nama sama namespace akan tetapi akan lebih baik mengikuti nama namespace saat penamaan assembly. 2) Pertimbangkan penamaan DLL sesuai dengan pola berikut.

<Company>.<Component>.dll

<Component> mengandung satu atau lebih klausa dot (titik) sebagai pemisah. Contoh penggunaannya adalah sebagai berikut.

Contoso.WebControls.dll

2. Type Design Guidelines a. Types and Namespaces

Berikut panduan yang dapat membantu dalam mengatur jenis

types dan namespace:

1) Hindari namespace yang terlalu banyak.

2) Jangan gunakan namespace untuk mengatur types menjadi hirarki daerah fitur yang terkait.

(19)

4) Hindari desain type untuk skenario yang rumit dalam namespace

yang sama sebagai tipe yang digunakan untuk tugas pemrograman yang umum.

b. Abstract Class Design

Karena abstract kelas sebaiknya tidak pernah dipakai, sangat penting untuk menentukan konstruktor yang benar untuk kelas abstrak

tersebut. Berikut panduan agar kelas abstrak bekerja dengan benar pada saat diimplementasikan:

1) Jangan menentukan hak akses public atau protected internal pada konstraktor dalam tipe abstrak.

2) Jangan menentukan hak akses protected atau konstruktor internal dalam kelas abstrak.

3) Jangan menggunakan setidaknya satu tipe konkret yang mewarisi dari setiap kelas abstrak yang digunakan.

c. Static Class Design

Kelas statik merupakan kelas yang tidak mengandung instance members lain dari yang diwarisi dari object, dan tidak memiliki konstuktor callable. Berikut panduan agar kelas static dirancang dengan benar:

1) Jangan gunakan kelas static yang sederhana. Kelas static digunakan hanya sebagai pendukung kelas-kelas untuk object oriented framework.

2) Jangan mendeklarasikan atau melakukan overrideinstancemember

pada kelas static. Jika desain kelas menunjukan harus ada instance member, kelasa seharusnya tidak ditandai dengan static.

3) Jangan mendeklarasikan kelas statis sebagai sealed dan

(20)

bahasa pemrograman yang digunakan tidak memiliki built-in untuk mendukung kelas statis.

4) Jangan memperlakukan static class sebagai sebuah miscellaneous bucket. Environment class adalah contoh yang baik dari penggunaan yang tepat dari kelas statis. Kelas ini menyediakan akses ke informasi tentang lingkungan pengguna saat ini.

d. Interface Design

Berikut panduan untuk memastikan bahwa interface diancang dengan benar:

1) Jangan mendefinisikan sebuah interface jika kita perlu beberapa fungsi umum yang akan didukung oleh seperangkat types yang mencakup beberapa nilai types.

2) Pertimbangkan pemakaian interface jika kita butuh untuk mendukung fungsionalitas pada types yang sudah mewarisi dari

types lainnya.

3) Hindari penggunaan interface tanpa anggota.

4) Sediakan paling sedikit satu types yang merupakan implementasi dari sebuah interface.

5) Sediakan paling sedikit satu anggota yang menggunakan setiap

interface, contohnya sebuah method yang mengambil interface

sebagai parameter atau property.

3. Member Design Guidelines a. Member Overloading

Panduan berikut ini membantu memastikan bahwa member overloading dirancang dengan baik:

(21)

menggambarkan keadaan atau tindakan yang berlawanan. Misalnya, kelas String menyediakan overloads berikut:

publicstaticint Compare( string strA,

string strB );

publicstaticint Compare( string strA,

string strB, bool ignoreCase );

2) Hindari melakukan penamaan parameter yang sembarangan pada overload. Jika satu parameter mempresentasikan inputan yang sams dengan overload lainnya, parameter harus memiliki nama yang sama. Untuk contoh jangan lakukan hal berikut ini:

publicvoid Write(string message, FileStream stream){}

publicvoid Write(string line, FileStream file, bool closeStream){}

Definisi yang benar untuk overloads ini adalah sebagai berikut: publicvoid Write(string message, FileStream

stream){}

publicvoid Write(string message, FileStream stream, bool closeStream){}

(22)

publicvoid Write(string message, FileStream stream){}

publicvoid Write(FileStream stream, string message, bool closeStream){}

Definisi yang benar untuk overloads ini adalah sebagai berikut: publicvoid Write(string message, FileStream

stream){}

publicvoid Write(string message, FileStream stream, bool closeStream){}

4) Jangan menggunakan ref atau out modifiers untuk member overload. Untuk contoh jangan lakukan hal-hal berikut ini:

publicvoid Write(string message, int count) ...

publicvoid Write(string message, outint count)

b. Property Design

Panduan berikut membantu memastikan properti Anda dirancang dengan baik:

1) Buat read-only properti jika pemanggil tidak harus mengubah nilai properti.

2) Jangan menyediakan set-only properti.

3) Berikan nilai default yang masuk akal untuk semua properti, memastikan bahwa default tidak mengakibatkan lubang keamanan atau desain yang sangat tidak efisien.

4) Memungkinkan properti untuk diatur dalam urutan apapun bahkan jika hal ini mengakibatkan keadaan sementara objek yang tidak valid.

(23)

6) Hindari membuang pengecualian dari Getter properti.

c. Parameter Design

Panduan berikut membantu memastikan properti dirancang dengan baik:

1) Jangan gunakan type parameter yang menyediakan fungsi yang diperlukan oleh anggota.

2) Jangan gunakan parameter reserved.

3) Jangan gunakan metode publik yang mengambil pointer, array dari pointer dan array multidimensi sebagai parameter.

4) Jadilah konsisten dalam penamaan parameter ketika meng-override anggota atau menerapkan antarmuka anggota.

4. Designing For Extensibility a. Unsealed Clases

Pertimbangkan kelas unsealed tanpa anggota virtual atau protected sebagai cara yang bagus untuk memberikan kemurahan namun dihargai dalam ekstensibilitas framework.

b. Protected Members

Pertimbangkan untuk menggunakan anggota protected untuk kostumisasi, anggota protected merupakan cara yang baik untuk memberikan kostumisasi tanpa interface yang rumit.

c. Events and CallBacks

Berikut panduan penggunaan event dan callback:

1) Pertimbangkan untuk menggunakan callback untuk menyediakan custom code untuk dieksekusi framework.

2) Pertimbangkan penggunaan event untuk memungkinkan pengguna untuk menyesuaikan perilaku class library tanpa pengguna harus mengerti object oriented.

3) Hindari menggunakan callback di API.

(24)

Anggota virtual berfungsi lebih baik dibandingkan dengan callback dan event, tetapi tidak lebih baik daripada metode non-virtual. Berikut panduan untuk perancangan virtual member:

1) Jangan membuat virtual member kecuali jika terdapat alasan yang baik untuk penggunaan dan dapat memelihara virtual member tersebut.

2) Berikan hak akses protected daripada public untuk virtual member.

e. Abstract Types and Interface

Abstract types dan interface menentukan abstraksi program, abstraki menentukan kontrak pewarisan yang harus dipatuhi. Jenis abstrak memiliki pilihan untuk memberikan rincian pelaksanaan sedangkan interface tidak dapat memberikan rincian pelaksanaan. Pertimbangkan penggunaan kelas abstrak atau interface saat merancang abstraksi.

5. Design Guidelines for Exceptions a. Exception Throwing

Panduan berikut membantu memastikan Exception dirancang dengan baik:

1) Jangan mengembalikan errors codes. Exception adalah sarana utama pelaporan kesalahan dalam framework.

2) Lakukan pelaporan kegagalan ekseskusi dengan melemparkan exception. Jika anggota tidak dapat berhasil melakukan apa yang dirancang. Yang harus dipertimbangkan adalah kegagalan eksekusi dan exception harus dilemparkan

3) Pertimbangkan untuk menggunakan exception builder methods. Hal ini umum untuk melemparkan pengecualian yang sama dari tempat yang berbeda.

4) Hindari secara eksplisit melemparkan pengecualian dari akhir blok.

(25)

Pedoman berikut membantu memastikan bahwa librarymenangani pengecualian tepat:

1) Tidak menangani kesalahan dengan menangkap pengecualian non-spesifik, seperti System.Exception, System.SystemException dan sebagainya, dalam framework.

2) Pertimbangkan catching specific exceptions ketika Anda memahami mengapa itu akan dilemparkan dalam konteks tertentu.

3) Tidak berlebihan menggunakan catch. Exception sering akan diizinkan untuk menyebarkan up the call stack.

6. Usage Guidelines

a. Array Usage Guidelines

1) Arrayvs. Collection

Desainer class library mungkin perlu membuat keputusan sulit mengenai kapan untuk menggunakan sebuah array dan kapan harus kembali menggunakan collection. Meskipun jenis ini memiliki model penggunaan yang sama, mereka memiliki karakteristik kinerja yang berbeda. Secara umum, Anda harus menggunakan

collection ketika add, remove, atau method lain untuk memanipulasi

collection yang didukung. 2) Properties that Return Arrays

Anda harus menggunakan collectios untuk menghindari inefisiensi kode yang disebabkan oleh sifat-sifat yang mengembalikan array. Dalam contoh kode berikut masing-masing panggilan ke properti myObj menciptakan salinan array. Sebagai akibatnya 2n + 1 salinan array akan dibuat dalam lingkaran berikut.

for (int i = 0; i < obj.myObj.Count; i++) DoSomething(obj.myObj[i]);

3) Returning Empty Arrays

(26)

Misalnya, pengguna mungkin menganggap bahwa kode berikut akan bekerja.

public void DoSomething() {

string s = SomeOtherFunc(); if (s.Length > 0)

{

// Do something else.

}

}

b. Attribute Usage Guidelines

Aturan berikut menguraikan pedoman penggunaan untuk kelas attribute:

1) Menambahkan akhiran atribut untuk kelas custom atribut, seperti yang ditunjukkan dalam contoh berikut:

publicclass ObsoleteAttribute{}

2) Menentukan AttributeUsage pada atribut untuk menentukan bahwa penggunaannya sudah tepat, seperti yang ditunjukkan dalam contoh berikut:

[AttributeUsage(AttributeTargets.All, Inherited = false, AllowMultiple = true)]

publicclass ObsoleteAttribute: Attribute {}

Segel atribut kelas bila memungkinkan, sehingga kelas tidak dapat diturunkan dari kelas tersebut.

II.6Pengujian Perangkat Lunak

(27)

Pengujian perangkat lunak yang akan dilakukan pada penelitian ini menggunakan

unit testing, pengujian integrasi, dan pengujian acceptance.

II.6.1Unit Testing

Unit testing merupakan sebuah program yang digunakan untuk menguji sebuah method atau kelas tertentu. Unit test mengeksekusi method yang diuji menggunakan data sampel sebagai parameter dan memeriksa apakah method yang dieksekusi tersebut telah benar dan berjalan dengan baik. Pengujian unit testing dilakukan dengan menerapkan beberapa skenario pengujian yang berbeda [12].

II.6.2Pengujian Integrasi

Pengujian Integrasi adalah pengujian yang dilakukan dengan mengintegrasikan suatu unit dengan unit yang lain yang saling berinteraksi sehingga menyusun suatu sistem. Pengujian integrasi juga digunakan untuk mengetahui kesalahan dan masalah yang terdapat pada perangkat lunak [15].

II.6.3Pengujian Acceptance

Pengujian acceptance dilakukan untuk menentukan apakah perangkat lunak yang dibangun telah sesuai dengan tujuan. Pengujian ini memberikan kepercayaan kepada pengguna bahwa perangkat lunak yang dibuat telah sesuai dengan apa yang dibutuhkan oleh pengguna .

II.7Windows Phone

(28)

sebuah bahasa markup deklaratif untuk menciptakan User Interface yang menarik untuk Windows Phone. Dengan menggunakan tools seperti Dobe Ilustrator, Photoshop, dan Microsoft Expression Design, pengembang dapat membuat UI berbasis vektor yang dapat diekspor ke dalam XAML. XNA digunakan dalam menciptakan game. Framework ini dilengkapi dengan game engine yang memungkinkan untuk membuat game berabasis-loop dan 3D engine yang digunkan untuk mebangun game 3D [16].

II.8Analisis Domain

Analisis domain dilakukan dengan menganalisis beberapa aplikasi sejenis dengan tujuan untuk mengetahui kesamaan fungsional yang terdapat pada setiap aplikasi. Analisis domain dilakukan dengan beberapa tahap yaitu analisis frozen spot, analisis hotspot dan pendefinisian kartu hotspot.

II.8.1Frozen Spot

Frozen spot merupakan fungsi-fungsi yang tetap yang terdapat pada aplikasi dengan domain kasus tertentu [17]. Frozen Spot dapat disebut irisan dari fungsional dasar yang terdapat dalam aplikasi. Fungsi-fungsi pada setiap aplikasi pada domain aplikasi tertentu dianalisis. Hasil analisis dari frozen spot kemudian akan digunakan untuk menentukan hotspot yang terdapat pada aplikasi sejenis.

II.8.2Hotspot

Hotspot merupakan titik fleksibilitas dari aplikasi yang artinya fungsional yang pasti terdapat pada setiap aplikasi pada domain kasus tertentu [17]. Analisis hotspot dapat diuraikan dari frozen spot. Hotspot yang diambil merupakan sebagai dasar dari aplikasi dan tidak dapat dihapus. Hotspot dirancang untuk lebih spesifik dan dapat disesuaikan dengan kebutuhan domain [18]. Terdapat duah metode untuk mendefinisikan hotspot, yaitu metode blackbox dan metode whitebox [19]. Metode

(29)

II.8.3Kartu Hotspot

Kartu Hotspot digunakan untuk mendeskripsikan fungsionalitas dari setiap hotspot yang ada [20]. Kartu hotspot terdiri dari beberapa bagian yaitu nama hotspot, derajat fleksibilitas, deskripsi fungsional, dan perilaku hotspot terhadap dua situasi yang berbeda. Nama kartu hotspot harus menggambarkan fungsionalitas. Pada derajat fleksibilitas terdapat dua pilihan yaitu adaptasi tanpa restart dan adaptasi oleh end user. Adaptasi tanpa restart berarti adaptasi dari hotspot dapat langsung digunakan sedangkan adaptasi oleh end user berarti hotspot tersebut harus diadaptasi oleh end user sebelum dapat digunakan.

Gambar II.1 Contoh Gambaran Kartu Hotspot

II.9Alat Pemodelan

Alat pemodelan merupakan alat yang digunakan untuk memodelkan konsep-konsep dan perancangan yang nantinya akan diimplementasikan. Alat pemodelan yang akan digunakan pada penelitian ini adalah UML.

II.9.1UML

(30)

prilaku pada sistem. UML dapat digunakan dalam pembutan desain yang modular sehinggaa mempercepat pembangunan suatu sistem [21].

1. Use Case Diagram

Use Case Diagram merupakan gambaran dari fungsi-fungsi utama yang terdapat dalam sistem [22]. Use Case juga menjelaskan keterkaitan antara sistem dengan kebutuhan perangkat lunak dan menggambarkan apa yang harus sistem lakukan.

2. Class Diagram

Class diagram merupakan salah satu pemodelan pada UML yang menggambarkan struktur kelas pada sistem. Class diagram mendeskripsikan tipe-tipe objek yang digunkan dalam sistem dan keterhubungan antar kelas. Setiap objek pada kelas memiliki hak akses terdapat tiga jenis yaitu protected, public, dan private [22].

3. Package Diagram

(31)

89

BAB V

KESIMPULAN DAN SARAN

Pada bab ini akan dipaparkan kesimpulan dan saran dari hasil penelitian pembangunan class library pada domain aplikasi event ticketing.

V.1Kesimpulan

Dari proses penelitian Pembangunan Class Library dan pembangunan perangkat lunak uji, maka dapat disimpulkan bahwa:

1. Class library dapat memudahkan pengembang dalam pembangunan perangkat lunak event ticketing sehingga pengembang dapat mengoptimalkan pengembangan aplikasi yang dibuat.

2. Class library dapat memudahkan pengembang dengan menyediakan fungsi-fungsi umum yang terdapat pada domain event ticketing yang dapat digunakan kembali untuk proses pengembangannya.

V.2Saran

Adapun saran dari hasil penelitian pembangunan Class Library pada domain aplikasi event ticketig antara lain:

1. Menambahkan fungsional pada class library event ticketing. Fungsional yang tedapat pada class library tidak hanya fungsional yang sederhana tetapi fungsional tambahan yang diperlukan dalam pembangunan aplikasi.

(32)
(33)

E-1

BIODATA PENULIS

1. DATA PRIBADI

Nama Lengkap : Hermina Nur Karimah

Jenis Kelamin : Perempuan

Tempat, Tanggal Lahir : Jakarta, 25 Agustus 1993

Agama : Islam

Kewarganegaraan : Indonesia

Status : Belum Menikah

Anak ke : satu dari satu bersaudara

Alamat : Kebonpedes Gang Palem Merah Rt.02 Rw.03 No.3

Kelurahan Kebonpedes Kecamatan Tanah Sareal, Bogor.

No.Tlp : 089623915333

Email : herminanurkarimah@yahoo.co.id

2. RIWAYAT PENDIDIKAN

Sekolah Dasar : SD Negeri Polisi 5 Bogor tahun ajaran 1999 - 2005

Sekolah Menengah Pertama : SMP Negeri 11 Bogor tahun ajaran 2005 - 2008

Sekolah Menegah Atas : SMA YPHB Bogor tahun ajaran 2008 - 2011

(34)

PEMBANGUNAN

CLASS LIBRARY

UNTUK DOMAIN

APLIKASI

EVENT TICKETING

PADA PLATFORM

WINDOWS PHONE

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana

HERMINA NUR KARIMAH

10111411

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

(35)

v

DAFTAR ISI

(36)

vi

(37)

91

user-survey-2012. [Diakses 21 February 2015].

[2] F. Kinanti dan Z. Baridwan, “ANALISIS DETERMINAN SISTEM INFORMASI E-TICKETING : PENDEKATAN EXTENDED THEORY OF PLANNED BEHAVIOUR,” Jurnal Ilmiah Mahasiswa FEB, vol. I, no. 1. [3] K. Thomson, K. Purcell dan L. Rainie, “Arts Organizations and Digital

Tachnologies,” Pew Internet & American Life Project, pp. 1-65, 2013.

[4] “Smartphone OS Market Share, Q1 2015,” IDC Corporate USA, May 2015. [Online]. Available: http://www.idc.com/prodserv/smartphone-os-market-share.jsp. [Diakses 25 Juni 2015].

[5] Appcelerator, “A platform interest survey of 1,028 Appcelerator application developers from March 23-25, 2010,” Appcelerator Mobile Developer Survey, pp. 1-7, 2010.

[6] C. R. Kothari, Research Methodology (Method and Techniques), New Delhi: New Age International Publisher, 1990.

[7] J. Neefs, F. Schrooyen, J. Doggen dan K. Renckens, “Paper ticketing vs. Electronic Ticketing based on off-line system ’Tapango’,” IEEE.org, pp. 3-8, 2010.

[8] D. Clark, Beginning C# Object-Oriented Programming, New York: Appress, 2011.

(38)

92

[10] “C# Coding Conventions (C# Programming Guide),” Microsoft, [Online]. Available: https://msdn.microsoft.com/en-us/library/ff926074.aspx. [Diakses 22 April 2015].

[11] “Class Library,” Microsoft, [Online]. Available:

https://msdn.microsoft.com/en-us/library/ca22fyhc%28v=vs.90%29.aspx. [Diakses 31 3 2015].

[12] S. Nakov, Fundamental of Computer Programming with C#, Svetlin Nakov, 2013.

[13] “Design Guidelines for Developing Class Libraries,” Microsoft, [Online].

Available:

https://msdn.microsoft.com/en-us/library/vstudio/ms229042(v=vs.100).aspx. [Diakses 27 Juni 2015].

[14] P. Farrell dan V. , Manage Software Testing, New York: Auerbach Publications, 2008.

[15] A. Orso, “Integration Testing of Object-Oriented Software,” Dipartimento di Elettronica e Informazione, Milano, 1999.

[16] H. Lee dan E. Chuvyrov, Begining Windows App Development, Apress, 2012.

[17] N. Afif, “STUDI PEMBANGUNAN FRAMEWORK BERORIENTASI

OBJEK STUDI KASUS PEMBANGUNAN FRAMEWORK

PENJADWALAN,” Jurnal Teknosains, vol. 7, no. 1, pp. 138-149, 2013.

[18] D. Yu, “Towards the Rapid Application Development Based on Predefined

Frameworks,” JOURNAL OF SOFTWARE, vol. 6, no. 9, pp. 1795-1804, 2011.

[19] M. E. Fayad, R. E. Johnson dan D. C. Schmidt, Building Application Framework, New York: John Wiley & Sons, 1999.

[20] W. Pree, “Hot-Spot-Driven Framework Development,” Software Research Lab University of Constance, pp. 1-13, 1995.

(39)

93

[22] R. Miles dan K. Hamilton, Learning UML 2.0, Sebastopol: O'REILLY Media, 2006.

[23] P. D. Moh. Nzir, Metode Penelitian, Bogor: Ghalia Indonesia, 2011.

[24] Y. Bassil, “A Simulation Model for the Waterfall,” International Journal of Engineering & Technology (iJET), vol. 2, no. 5, pp. 2049-3444, 2012. [25] W. A. Triyanto, “CLASS LIBRARY UNTUK PEMBUATAN APLIKASI

CRUD,” Pros iding SNATIF, vol. 1, 2014.

[26] “Cross-Platform Development with the Portable Class Library,” Microsoft Developer Network, [Online]. Available: https://msdn.microsoft.com/en-us/library/gg597391%28v=vs.110%29.aspx. [Diakses 23 February 2015]. [27] “Portable Class Libraries,” Microsoft, Agustus 2011. [Online]. Available:

https://msdn.microsoft.com/en-us/library/vstudio/gg597391(v=vs.100).aspx. [Diakses 31 Maret 2015].

[28] I. Sommerville, Software Engineering Ninth Edition, Boston: Addison-Wisley, 2011.

[29] C. F. Jung, C. S. t. Caten dan J. L. D. Ribeiro, “A Method of R&D Electronic

Product for Application by Independent Engineers, Designers and Inventors,”

(40)
(41)
(42)

a

Pada Platform Windows Phone

Hermina Nur Karimah1

1 Teknik Informatika Universitas Komputer Indonesia Jl. Dipatiukur 112-114 Bandung

Email : herminanurkarimah@yahoo.co.id1

ABSTRAK

Berdasarkan survei yang dilakukan oleh Arts Organizations and Digital Tachnologies terhadap 1000 responden yang telah disurvei secara global menyatakan bahwa penjualan tiket secara online menggunakan teknologi mobile mencapai 72%. Hal ini memicu berkembangnya pembangunan aplikasi event ticketing. Pembangunan perangkat lunak dengan waktu yang terbatas membuat banyak pengembang hanya dapat mengimplementasikan daripada menganalisis suatu perangkat lunak dengan domain aplikasi tertentu. Permasalahan yang timbul adalah perangkat lunak yang dibangun belum optimal karena pengembang kesulitan untuk menggunakan kembali fungsi yang pernah dibuat sebelumnya. Solusi yang ditawarkan pada penelitian ini adalah dengan membangun sebuah class library yang menyediakan fungsi umum pada domain aplikasi event ticketing.

Class library merupakan kumpulan kelas dan method yang menyediakan fungsionalitas sebagai dasar pembangunan sebuah sistem. Pada tahap awal pada penelitian ini dilakukan analisis domain terhadap tiga aplikasi untuk memperoleh frozenspot dan hotspot. Kelas-kelas pada class library dirancang dan kemudian diimplementasikan berdasarkan hotspot yang telah didefinisikan. Hasil implementasi dari class library diuji untuk memastikan class library dapat berjalan dengan baik dan sesuai kebutuhan pengguna.

Pengujian class library dilakukan dengan metode unit testing, pengujian integrasi, dan pengujian acceptance. Dari hasi pengujian maka dapat disimpulkan bahwa class library event ticketing dapat memudahkan pembangunan perangkat lunak event ticketing dengan menyediakan fungsi-fungsi umum yang terdapat pada domain event ticketing yang dapat digunakan kembali untuk proses pengembangannya. Sehingga pengembang dapat mengoptimalkan pengembangan aplikasi. Saran yang diberikan adalah menambahkan exception dan fungsi tambahan lainnya.

Kata Kunci: class library, event ticketing.

1 PENDAHULUAN

Pembangunan aplikasi mobile dengan domain event ticketing seharusnya dapat lebih optimal karena berdasarkan observasi dari tiga buah aplikasi sejenis diketahui bahwa terdapat beberapa kesamaan fungsional dasar. Seharusnya fungsional dasar tersebut dapat digunakan kembali pada pembangunan aplikasi sejenis. Keterbatasan waktu dalam pembangunan sebuah aplikasi dan pembuatan fungsi yang sama secara berulang-ulang pada suatu domain aplikasi event ticketing membuat aplikasi yang dibangun oleh pengembang tidak optimal. Hal ini lah yang memicu pembangunan class library sebagai sebuah solusi dalam pembangunan perangkat lunak event ticketing.

Class library merupakan sekumpulan fungsi yang dapat mempermudah programmer dalam membangun perangkat lunak. Class library yang dibangun haruslah konsisten dan dapat terdokumentasi dengan baik sehingga mudah untuk digunkan.

1.1 Class Library

Class library merupakan kumpulan kelas-kelas, interface, dan tipe data yang membentuk sebuah library [1]. Class libarary berfungsi dalam menyediakan fungsionalitas untuk sebuah sistem yang dirancang untuk menjadi fondasi dari aplikasi, komponen-komponen yang dibangun, dan kontrol yang dibangun. Class library biasanya disimpan pada sebuah file berextensi .dll, barulah selanjutnya dapat digunakan. Pembuatan class library haruslah terdokumentasi agar dapat mempermudah penggunaannya serta penamaan yang konsisten dan sesuai dengan pedoman.

1.1.1.Metode Penyelesaian Masalah

(43)

a Gambar 1 Metode penyelesaian masalah

1.2 Analisis Domain

Untuk mengetahui kesamaan fungsional yang terdapat dalam aplikasi maka dilakukan analisis terhadap tiga buah aplikasi sejenis. Tahap-tahap dalam analisis domain antara lain analisis frozen spot, analisis hotspot, dan pendefinisian kartu hotspot.

1.2.1 Elektronik Tiketing

Tiket Elektronik (Electronic Ticketing) merupakan teknologi yang digunakan dalam pemesanan tiket secara online. Tiket elektronik telah dikembangkan untuk mengganti tiket kertas dan voucher kedalam bentuk elektronik. Keuntungan digunakannya tiket elektronik adalah pengguna mampu membeli tiket masuk, voucher makan dan minuman yang didownload pada suatu kartu. Semua orang dapat menggunakan smartphone untuk memesan tiket bukan menunggu dalam antrian untuk membeli kertas tiket. Tiket elektronik digunakan untuk mempercepat transaksi dan memudahkan penggunanya dalam pemesanan tiket.

1.2.2 Frozen spot

Frozen spot berisi fungsi-fungsi tetap yang terdapat pada aplikasi pada domain kasus tertentu [2]. Frozenspot adalah irisan dari fungsional dasar yang terdapat pada setiap aplikasi.

Gambar 2 Ilustrasi frozen spot

1.2.3 Hotspot

Hotspot merupakan titik fleksibilitas dari

aplikasi yang artinya fungsional yang pasti terdapat

pada setiap aplikasi pada domain kasus tertentu [2].

Penentuan Hotspot merupakan uraian dari frozen

spot. Hotspot yang dirancang harus lebih spesifik dan

dapat disesuaikan dengan kebutuhan domain. Metode

untuk menentukan hotspot yaitu metode blackbox dan

whitebox. Metode blackbox yaitu metode untuk

menentukan hotspot bedasarkan hasil analisis dari

frozen spot. Pada metode blackbox fungsional yang

dapat dijadikan menjadi hotspot harus terdapat pada

setiap aplikasi pada domain aplikasi tertentu.

Sedangkan menentukan hotspot dengan

menggunakan metode whitebox dilakukan

berdasarkan kebutuhan dari hotspot lainnya.

Gambar 3 Ilustrasi Hotspot

1.2.4 Kartu Hotspot

(44)

a kartu hotspot, yaitu nama hotspot, derajat fleksibilitas, deskripsi fungsional, dan perilaku hotspot terhadap dua situasi yang berbeda. Derajat fleksibilitas ada dua jenis yaitu adaptasi tanpa restart dan adaptasi oleh pengguna.

Gambar 4 Ilustrasi Kartu Hotspot

1.3 Pengujian

Pengujian dilakukan untuk mengetahui apakah class library yang dibuat telah sesuai dengan kebutuhan atau tidak. Terdapat tiga pengujian yang dilakukan pada penelitian ini, yaitu unit testing, pengujian integrasi, dan pengujian acceptance.

1.3.1 Unit Testing

Unit testing merupakan sebuah program yang digunakan untuk menguji sebuah method atau kelas tertentu. Pengujian unit testing dilakukan dengan menerapkan beberapa skenario pengujian yang berbeda. Unit test mengeksekusi method yang diuji menggunakan data sampel sebagai parameter dan memeriksa apakah method yang dieksekusi tersebut telah benar dan berjalan dengan baik [4].

1.3.2 Pengujian Integrasi

Pengujian Integrasi dilakukan dengan mengintegrasikan suatu unit dengan unit yang lain yang saling berinteraksi sehingga menyusun suatu sistem. Pengujian integrasi digunakan untuk mengetahui kesalahan dan masalah yang terdapat pada perangkat lunak [5].

1.3.3 Pengujian Acceptance

Pengujian acceptance dilakukan untuk menentukan apakah perangkat lunak yang dibangun telah sesuai dengan tujuan. Pengujian acceptance memberikan kepercayaan kepada pengguna bahwa perangkat lunak yang dibuat telah sesuai dengan apa yang dibutuhkan oleh pengguna.

Object Oriented Programming merupakan sebuah pendekatan pengembangan perangkat lunak, dimana struktur perangkat lunak dianalisis berdasarkan objek yang saling berinteraksi untuk menyelesaikan tugasnya berdasarkan urutan logika yang telah ditentukan. Interaksi ini membutuhkan pertukaran pesan bolak-balik antara objek yang satu dengan objek yang lainnya. Setelah pesan diterima, objek dapat melakukan action atau method [6].

1.3.5 Generic Programming

Generic Programming bertujuan untuk meringankan beban programmer dengan cara memungkinkan fungsi umum untuk di definisikan sekali untuk banyak tipe data, bukan hanya untuk satu tipe data. Generic programming menggunakan menambahkan parameter program generik.

1.3.6 Pedoman pembangunan class library

Pedoman pembangunan Class Library ini merupakan pedoman yang digunakan pada .NET Framework. Tujuan dari pedoman ini adalah untuk membantu desainer class library untuk memastikan bahwa class library yang dibangunnya paham karena konsistensi API dan kemudahan penggunaan dengan menyediakan model pemrograman yang terpadu dan independen. Desain class library yang tidak konsisten akan merugikan produktifitas pengembang.

2 ISI PENELITIAN

Terdapat tiga tahap pada penelitian ini, yaitu tahap analisis class library, tahap perancangan class libarary dan tahap pengujian class library.

2.1 Analisis Class Library

Analisis class library memiliki tiga tahap yaitu analisis domain, analisis frozen spot, dan analisis hotspot.

2.1.1 Analisis Frozen Spot

(45)

a Frozen spot Keterangan

Authentifikasi pengguna (Login)

Authentifikasi

pengguna terdapat pada ketiga aplikasi

Pemesanan tiket Pemesanan tiket terdapat pada ketiga aplikasi

Pencarian event Pencarian event hanya terdapat pada aplikasi Eventbrite dan Rukkus Event Tickets. Pencarian pada setiap aplikasi berdasarkan kata kunci, kategori, dan lokasi

Penyajian detail event Penyajian detail event terdapat pada ketiga aplikasi.

Penyajian data event Penyajian data event terdapat pada ketiga aplikasi

Penyajian detail tiket Penyajian detail tiket terdapat pada ketiga aplikasi

Simpan event Favorit Simpan Event hanya terdapat pada aplikasi Eventbrite dan Rukkus event ticket

Penyajian kategori Penyajian kategori pada ketiga

Integrasi dengan aplikasi lain

Integrasi dengan aplikasi lain hanya terdapat pada aplikasi Eventbrite dan Rukkus Event Ticket

2.1.2 Analisis Domain

Domain kasus yang dipilih pada penelitian ini adalah event ticketing berdasarkan hasil wawancara terhadap salah satu programer. Domain aplikasi event ticketing merupakan aplikasi pencarian event dan pembelian tiket berbagai event secara online. Berdasarkan observasi yang dilakukan pada situs Windows Store terdapat beberapa aplikasi dengan domain kasus event ticketing masih belum optimal dalam dalam pembangunannya. Oleh karena itu pada pembangunan class library event ticketing pada penelitian ini dilakukan dengan menganalisis fungsi bisnis dan fungisonalitas dari tiga buah apilikasi yang menjadi tolak ukur dalam pembangunan class library event ticketing. Aplikasi yang menjadi tolak ukur pada penelitian ini antara lain adalah Eventbrite, Rukkus Event Tickets, dan Tiket.com.

tersebut dipilih berdasarkan rating tertinggi dan fungsional yang terdapat dalam ketiga aplikasi tersebut. Aplikasi tersebut dianalisis persamaan, perbedaan, dan fitur-fitur yang terdapat dalam proses bisnis dari setiap aplikasi.

2.1.3 Analisis Hotspot

Hotspot ditentukan dengan terdapatnya kesamaan pada ketiga aplikasi dan kebutuhan dari hotspot lain. Hotspot ditentukan dengan metode blackbox dan whitebox. Terdapat enam fungsional yang didapat menggunakan metode blackbox dan sebuah fungsional yang didapat dengan metode whitebox. Setelah dianalisis terdapat enam fungsional yang muncul dari hasil analisis menggunakan metode blackbox yaitu Authentifikasi Pengguna, Pemesanan Tiket, Penyajian Detail Event, Penyajian Data Event, Penyajian Detail Tiket, dan Penyajian Kategori. Selain itu terdapat satu fungsional yang muncul dengan metode whitebox yaitu Simpan Event.Hotspot yang telah didefinisikan dapat dilihat pada.

Gambar 5 Diagram fitur hotspot

Fungsional umum yang terdapat dalam ketiga aplikasi telah ditentukan sebagai hotspot. Setelah hotspot ditentukan maka tahap selanjutnya adalah perancangan class library

2.2 Perancangan Class Library

Kelas dan method yang terdapat pada class library event ticketing dirancang dilakukan dengan penyesuaian dengan hasil analisis hotspot. Dari setiap hotspot yang telah didefinisikan didapat enam buah kelas dari pengakategorian berdasarkan keterkaitan funsi dan data pada setiap hotspot .

Tabel 2 Pengkategorian kelas

Hotspot Kelas

Autentifikasi

pengguna

(46)

a event

Event Penyajian detail

event

Event favorit

Penyajian

kategori

Category

Pemesanan tiket Order

Penyajian detail

tiket

Tickets

Base

Hasil dari perancangan kelas beserta method-method yang akan dibangun dapat dilihat pada Gambar 6. Dapat dilihat bahwa kelas User, Event, Category, Ticket, dan Order memiliki relasi komposisi terhadap kelas Base.

Pada Kelas User terdapat atribut User. Selain terdapat atribut juga terdapat method PostUserEdit, GetUserDetail, dan PostUser. Atribut dan method tersebut memiliki fungsi masing-masing.

Gambar 6 Perancangan kelas user

Pada Kelas Event terdapat atribut Event dan EventList. Selain terdapat atribut juga terdapat method GetEventList, GetEventDetail, dan PostFavoriteEvent.

Gambar 7 Perancangan kelas event

GetCategoryList.

Gambar 8 Perancangan kelas category

Pada Kelas Order terdapat atribut Order dan OrderList. Selain terdapat atribut juga terdapat method GetOrderList, GetOrderDetail dan PostEventOrder.

Gambar 9 Perancangan kelas order

Pada Kelas Tickets terdapat atribut Ticket dan TicketList. Selain terdapat atribut juga terdapat method GetTicketDetail dan GetTicketList.

Gambar 10 Perancangan kelas tickets

(47)

a Gambar 11 Perancangan kelas base

Gambar 12 Perancangan Kelas

Kelas dan method-method yang telah dirancang kemudian dikelompokan menjadi beberapa package.

Package digunakan untuk memudahkan untuk

memahami struktur dan penggunaan dari class library. Penamaan package harus disesuaikan dengan pedoman penulisan. Terdapat empat buah package yang telah dirancang, yaitu com.meventicket.substruct, com.meventicket.user, com.meventicket.event, dan com.meventicket.order. Pada setiap package berisi kelas-kelas yang berelasi dengan kelas atau package lain. Perancangan package dapat dilihat pada Gambar 7.

Gambar 13 Perancangan package

2.3 Pengujian Class Library

Pengujian class library digunakan untuk mengetahui bahwa class library yang dibangun sesuai dengan apa

pengujian integrasi, dan pengujian acceptance. Setiap pengujian yang dilakukan dibuat skenario pengujian. Rincian dari pengujian unit testing dapat dilihat pada Tabel 3.

Tabel 3 Skenario unit testing Item Uji Poin Pengujian

Kelas Category Uji Method GetCategoryList

Kelas Order

Uji Method GetOrderList

Uji Method GetOrderDetail

Uji Method PostEventOrder

Kelas Tickets Uji Method GetTicketList Uji Method GetTicketDetail

Pengujian integrasi dilakukan dengan mengintegrasikan class libaray event ticketing yang dibangun dengan sebuah aplikasi event ticketing. Rincian dari pengujian integrasi dapat dilihat pada Tabel 4.

Tabel 4 Skenario pengujian integrasi

Item Uji Jenis Pengujian

GetUserDetail Integration Testing

PostUserEdit Integration Testing

PostUser Integration Testing

GetEventList Integration Testing

Detail Event Integration Testing

PostFavoriteEvent Integration Testing

GetCategoryList Integration Testing

GetOrderList Integration Testing

GetOrderDetail Integration Testing

PostEventOrder Integration Testing

GetTicketList Integration Testing

GetTicketDetail Integration Testing

(48)

a Pengujian integrasi class library dilakukan dengan mengimplementasikan class library event ticketing dalam membuat perangkat lunak event ticketing berbasis Windows Phone. Detail dari hasil implementasi fitur yang dikembangkan dari class library dapat di lihat pada tabel 5.

Tabel 5 Fitur hasil implementasi class library

Implementa si kelas

Fitur Method yang digunakan

Pengujian acceptance dilakukan dengan tujuan untuk memberikan hasil pada programmer sebagai pengguna class library bahwa class library yang telah di bangun dapat digunakan dan memenuhi kebutuhan pengguna. Pengujian yang dilakukan pada penelitian ini adalah dengan mengajukan beberapa pertanyaan kepada beberapa programmer. Pertanyaan yang diajukan antara lain adalah sebagai berikut:

Pertanyaan yang

Pada bagian kesimpulan pengujian akan dipaparkan mengenai kesimpulan yang didapat setelah pengujian dilakukan. Kesimpulan yang diambil berdasarkan unit testing, pengujian integrasi dan pengujian acceptance.

1. Kesimpulan unit testing class library

(49)

a 2. Kesimpulan pengujian integrasi

Berdasarkan pengujian integrasi yang telah dilakukan maka dapat ditarik kesimpulan bahwa class library sudah dapat diintegrasikan kedalam aplikasi event ticketing.

3 KESIMPULAN

Dari proses penelitian Pembangunan Class Library dan pembangunan perangkat lunak uji, maka dapat disimpulkan bahwa:

1. Class library dapat memudahkan pengembang dalam pembangunan perangkat lunak event ticketing sehingga pengembang dapat mengoptimalkan pengembangan aplikasi yang dibuat. 2. Class library dapat memudahkan

pengembang dengan menyediakan fungsi-fungsi umum yang terdapat pada domain event ticketing yang dapat digunakan kembali untuk proses pengembangannya.

Adapun saran dari hasil penelitian pembangunan Class Library pada domain aplikasi event ticketig antara lain:

1. Menambahkan fungsional pada class library event ticketing. Fungsional yang tedapat pada class library tidak hanya fungsional yang sederhana tetapi fungsional tambahan yang diperlukan dalam pembangunan aplikasi.

2. Menambahkan exception atau penanganan masalah pada setiap fungsi dalam class library sehingga programmer mengetahui letak kesalahan.

DAFTAR PUSTAKA

[1] “Class Library,” Microsoft, [Online]. Available:

https://msdn.microsoft.com/en-us/library/ca22fyhc%28v=vs.90%29.aspx. [Diakses 31 3 2015].

[2] N. Afif, “STUDI PEMBANGUNAN

FRAMEWORK BERORIENTASI OBJEK

STUDI KASUS PEMBANGUNAN

FRAMEWORK PENJADWALAN,” Jurnal

Teknosains, vol. 7, no. 1, pp. 138-149, 2013. [3] D. Yu, “Towards the Rapid Application

Development Based on Predefined

Frameworks,” JOURNAL OF SOFTWARE, vol.

6, no. 9, pp. 1795-1804, 2011.

[4] S. Nakov, Fundamental of Computer Programming with C#, Svetlin Nakov, 2013.

(50)

a

Developing Class Library for Event Ticketing Application Domain

On Windows Phone Platform

Hermina Nur Karimah1

1 Teknik Informatika Universitas Komputer Indonesia Jl. Dipatiukur 112-114 Bandung

Email : herminanurkarimah@yahoo.co.id1

ABSTRACT

Based on a survey conducted by Arts Organizations and Digital Tachnologies of the 1,000 respondents surveyed globally said that online ticket sales with mobile technology reached 72%. This triggered the event ticketing application development increased. Software development with limited time make a lot of developers just implement than analyzing software with a specific application domain. The problem that arises is software cannot optimal because of developers difficult to re-use functions that have been made previously. The solution that offered in this research is to developing class library that provides common functionality in event ticketing application domain.

Class library is a collection of classes and methods that provide the functionality as a basis for the system development. On early step in this research is domain analysis of the three applications to obtain frozenspot and hotspots. Classes in the class library is designed and implemented by hotspots. Results of the implementation of the class library class library must be tested to make sure the class library to run well and according to user needs.

Class library testing conducted with unit testing method, integration testing and acceptance testing. From the test result it can be concluded that the class library can facilitate event ticketing

software development by provide common

functionlities in event ticketing domain that can be reused for the next development process. So that developers can optimize application development. The Advice given is by add the exception to handling error and add other additional functions.

Keywords : class library, event ticketing.

1. FOREWORD

Event ticketing domain of mobile application development should be more optimal because based

on obsevations of three similar aplications there are have similar basic functional. Basic functional must be able to be reused for other similar application development. Limitation time of aplication development and the functionalities in event ticketing application doman created repeatedly makes the aplication development are not optimal. This is trigger of class library development as a solution in event ticketing software development. Class library is a collection of functionalities that faclitate the programmer to build an aplication. Construction of class libraries must be consistent and well

documented so it’s easy to use.

1.1 Class Library

Class library is the collection of classes, interfaces, and data types that forming a library [1]. Function of class library is to provides functionalities for a system that designed to become foundation of the application, the components and controls. Class library usualy stored on .dll file extension, then class libaray can be used. Developing class library must be documented to be easy to use and consistently naming suitable with guidelines.

1.1.1.Problem Solving Method

(51)

a Figure 1 Problem Solving Method

1.2 Domain Analysis

To determine the functional similarities that contained in aplications then conducted an analysis of three similar applications. Steps in domain analysis consist of frozenspot analysis, hotspot analysis, and defining hotspot cards.

1.2.1 Electronic Ticketing

Electronic ticketing is a technology that is used in booking tickets online. Electronic tickets have been developed to replace paper tickets and vouchers into electronic form . Uses the advantages of electronic tickets so users able to buy tickets , meal vouchers and beverages that are downloaded on a card . Everyone can use smartphones to book a ticket instead of waiting in a queue to buy a paper ticket . Electronic ticket is used to speed up the transaction and allows users in booking tickets .

1.2.2 Frozen spot

Frozen spot contains functions remain contained in the application of specific domain text [2] . Frozenspot are slices of basic functional contained in each application .

Figure 2 frozen spot ilustration

Hotspot is the point of application flexibility, which means there must be functional on every application in a particular case domain [2]. Determination hotspot is a description of the frozen spot. Hotspots are designed to be more specific and can be adapted to the domain requirement. Methods for determining the hotspot is blackbox and whitebox method.

Figure 3 Hotspot Ilustration

1.2.4 Hotspot Card

Hotspot card are used to describe the functionality of each hotspot [3]. Hotspot cards should describe the functionality that has been defined. The parts of the hotspot card, hotspot name, flexibilities degree, functional description and hotspots behavior between two different situations. there are two types of flexibilities degree that is adaptations without restarting and adaptation by users.

Figure 4 Hotspot card ilustration

1.3 Testing

Gambar

Gambar 2 Ilustrasi frozen spot
Gambar 4 Ilustrasi Kartu Hotspot
Gambar 5 Diagram fitur hotspot
Gambar 7 Perancangan kelas event
+7

Referensi

Dokumen terkait

Pada RUPS Luar Biasa yang diadakan pada tanggal 7 Mei 2012, para pemegang saham telah memberi persetujuan kepada Direksi Perseroan untuk menjadikan jaminan utang kekayaan

Berdasarkan definisi-definisi di atas, dapat disimpulkan bahwa child abuse adalah tindakan (misalnya menolak, melakukan kekerasan pada anak) atau tidak ada tindakan sama

Salah satu rekomendasi dari studi Masterplan Pengembangan Wilayah Sungai Walanae Cenranae, adalah pemanfaatan tampungan yang ada pada Danau Tempe untuk mengairi

Subang, maka dapat disimpulkan bahwa : Sebagian besar responden pada usia pernikahan &gt;21 tahun sebanyak (52%), Sebagian besar responden yang mengalami kekerasan dalam

Supaya aku bisa membawa pesan ke kanselir surga dan membawa kembali surat keputusan untuk kalian tanpa naik banding .‖ Dan mer eka kembali menundukan kepalanya

Hal ini disebabkan arus pada instalasi saat ini telah mengalami distorsi disebabkan adanya arus harmonisa akibat beban non linear, sehingga bentuk gelombang arus

peneliti untuk meningkatkan daya kerja sensor fluxgate (sensitivitas, akurasi dll.) seperti perbaikan pada desain struktur sensor, rangkaian pengolah sinyal dan