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

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

Berdasarkan wawancara terhadap salah seorang programmer diketahui bahwa dalam pembangunan perangkat lunak serta dengan waktu yang terbatas pengembang hanya dapat mengimplementasikan daripada menganalisis suatu perangkat lunak dengan domain aplikasi tertentu. Berdasarkan hasil observasi pada tiga perangkat lunak mobile dengan domain event ticketing, dapat diketahu bahwa terdapat beberapa kesamaan fungsional. Pembangunan aplikasi serupa seharusnya dapat lebih optimal karena terdapat fungsi-fungsi yang sama dari aplikasi serupa, namun hal ini masih belum dapat terwujud dikarenakan pengembang hanya memiliki waktu yang singkat untuk membangun perangkat lunak sehingga sering kali tidak dapat mengoptimalkan fungsi-fungsi yang digunakan menjadi lebih baik. Selain itu pengembang kesulitan untuk menggunakan kembali fungsi yang pernah


(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

Maksud dari penelitian ini adalah untuk membangun class library pada domain aplikasi event ticketing dengan tujuan sebagai berikut:


(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

Metodologi penelitian yang akan digunakan pada penelitian ini adalah metode penelitian terapan (applied research). Metode penelitian terapan adalah metode yang bertujuan untuk mencari solusi dari masalah nyata berdasarkan teori atau prinsip-prinsip tertentu [6]. Solusi yang di temukan dalam suatu masalah dapat langsung digunakan. Dengan menggunakan metode penelitian terapan, maka akan dihasilkan perangkat lunak yang dapat mengatasi masalah pengembang dalam pembangunan dengan domain aplikasi event ticketing. Metode yang digunakan terbagi menjadi dua yaitu metode pengumpulan data dan metode penyelesaian masalah.


(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. BAB II Tinjauan Pustaka


(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

BAB V menguraikan kesimpulan dari penelitian yang telah dilakukan serta saran untuk pengembangan lebih lanjut.


(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

Abstraction merupakan kemampuan untuk menyaring sejumlah informasi dengan kata lain tidak perlu untuk mengetahui seluruh sifat-sifat asing suatu objek tetapi hanya menggunakan apa yang diperlukan saja. Kemampuan abstaksi diperlukan karena sangat sulit untuk memproses sejumlah informasi tanpa kemampuan untuk menyaring sifat objek.


(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,

sedangkan exception pasti diakhiri dengan “Exception” contohnya WebException. Utilize Namespace setiap kelas harus ditutup dalam beberapa namespace. Berikut adalah contoh penulisan namespace.


(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

Class Library merupakan sebuah library (perpustakaan) yang berisi kumpulan kelas-kelas, interface, dan tipe data. Class library memiliki fungsi untuk menyediakan akses ke fungsionalitas sistem dan dirancang untuk menjadi fondasi dari aplikasi, komponen-komponen dan kontrol yang dibangun [11]. Class library akan di simpan dalam sebuah file dengan extensi .dll dan kemudian baru dapat digunakan. Penamaan pada class libarary dapat menggunakan pascal case yaitu


(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

Huruf pertama dari idetifier adalah huruf kecil dan huruf pertama pada kata berikutnya adalah huruf besar.


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

1) Jangan menggunakan nama yang membutuhkan case-sensitive. Komponen harus dapat digunakan dari kedua bahasa case-sensitive


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

void calculate() void Calculate()


(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

4) Jangan menggunakan tipe awalan, seperti C untuk kelas dalam penamaan kelas, misalnya gunakan nama FileStream daripada CFileStream.


(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:

1) Jangan mencoba untuk menggunakan nama parameter deskriptif untuk menunjukan nilai default yang digunakan oleh overload sederhana. Pedoman ini berlaku untuk parameter Boolean. Semakin kompleks kelebihan nama parameter harus menunjukkan nilai default yang disediakan oleh overload sederhana dengan


(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){}

3) Parameter dengan nama yang sama akan muncul diposisi yang sama di semua overload. Untuk contoh jangan lakukan hal berikut ini:


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

5) Mempertahankan nilai sebelumnya jika setter properti melempar pengecualian.


(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

Properti string dan array harus tidak mengembalikan null reference. Null bisa sulit untuk memahami dalam konteks ini.


(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

Pengujian perangkat lunak dilakukan untuk menguji seluruh fungsional yang telah dirancang. Dengan melakukan pengujian maka dapat diketahui kekurangan, error, bug yang terdapat pada program yang telah dibangun [14].


(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

Microsoft Windows Phone adalah platform mobile yang berisi fitur-fitur modern termasuk GPS, e-mail, SMS, Kamera, dan music player serta menyediakan framework pembangunan yang mudah sehingga memungkinkan untuk jutaan pengembang .NET untuk belajar dan mengembangkan pada Windows Phone dengan cepat. Windows Phone dalam pengembangannya menggunakan bahasa C# dan Visual Basic. Sebagai framework aplikasi dapat menggunakan Silverlight atau XNA. Silverlight menggunakan Extensible Application Markup Language yaitu


(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

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.


(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

UML(Unified Modeling Language) merupakan teknik pemodelan yang memudahkan pengembang untuk memspesifikasikan, memfisualisasikan, dan mendokumentasikan model dengan suatu cara yang mendukung skalabilitas, keamanan, dan eksekusi. UML memudahkan untuk mengidentifikasi pola-pola


(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

Package diagram atau diagram paket merupakan model yang digunakan untuk mengelompokan kelas. Diagram paket digunakan untuk melihat ketergantungan antar paket [22]. Package diagram digunakan untuk mengetahui ketergantungan antar bagian dari suatu perangkat lunak, mencari masalah pada perangkat lunak, dan menentukan urutan kompilasi.


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

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


(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 Perguruan Tinggi : FTIK Unikom Bandung tahun ajaran 2011 - 2015


(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

UNIVERSITAS KOMPUTER INDONESIA

2015


(35)

v

DAFTAR ISI

ABSTRAK ... i ABSTRACT ... ii KATA PENGANTAR ... iii DAFTAR ISI ... v DAFTAR GAMBAR ... viii DAFTAR TABEL ... ix DAFTAR SIMBOL ... x DAFTAR LAMPIRAN ... xii BAB I PENDAHULUAN ... 1 I.1 Latar Belakang Masalah ... 1 I.2 Perumusan Masalah ... 2 I.3 Maksud dan Tujuan ... 2 I.4 Batasan Masalah ... 3 I.5 Metodologi Penelitian ... 3 I.5.1 Metode Pengumpulan Data ... 4 I.5.2 Metode Penyelesaian Masalah ... 4 I.6 Sistematika Penulisan ... 5 BAB II LANDASAN TEORI ... 7 II.1 Electronic Ticketing ... 7 II.2 Object Oriented Programming ... 7 II.3 Style Programming C# ... 8 II.4 Generic Programing... 11 II.5 Class Library ... 11 II.5.1 Pedoman Pembangunan Class Library ... 12 II.6 Pengujian Perangkat Lunak ... 26 II.6.1 Unit Testing ... 27 II.6.2 Pengujian Integrasi ... 27 II.6.3 Pengujian Acceptance ... 27 II.7 Windows Phone ... 27


(36)

vi

II.8 Analisis Domain ... 28 II.8.1 Frozen Spot ... 28 II.8.2 Hotspot ... 28 II.8.3 Kartu Hotspot ... 29 II.9 Alat Pemodelan ... 29 II.9.1 UML ... 29 BAB III ANALISIS DAN PERANCANGAN CLASS LIBRARY ... 31 III.1 Analisis Class Library ... 31 III.1.1 Analisis Domain Perangkat Lunak... 31 III.1.2 Analisis Frozen Spot ... 45 III.1.3 Analisis Hotspot ... 48 III.1.4 Analisis Kebutuhan Non Fungsional ... 55 III.2 Perancangan Class Library ... 56 III.2.1 Perancangan Kelas ... 57 III.2.2 Perancangan Package... 65 BAB IV IMPLEMENTASI DAN PENGUJIAN CLASS LIBRARY ... 67 IV.1 Implementasi Class Library ... 67 IV.1.1 Implementasi Perangkat Keras ... 67 IV.1.2 Implementasi Perangkat Lunak... 67 IV.1.3 Hasil Implementasi ... 68 IV.2 Pengujian Class Library ... 68 IV.2.1 Rencana Pengujian Class Library ... 68 IV.2.2 Skenario Pengujian ... 69 IV.2.3 Hasil Unit Testing Class Library ... 71 IV.2.4 Pengujian Integrasi Class Library ... 77 IV.2.5 Hasil Pengujian Acceptance ... 85 IV.2.6 Kesimpulan Pengujian ... 86 BAB V KESIMPULAN DAN SARAN ... 89 V.1 Kesimpulan ... 89 V.2 Saran ... 89 DAFTAR PUSTAKA ... 91


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

[9] “C# Style Guide,” Penn Engineering , Januari 2012. [Online]. Available: http://www.seas.upenn.edu/~cis193/csstyle.html. [Diakses 22 April 2015].


(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,”

Brazilian Journal of Operations & Production Management, vol. 7, no. 2, pp. 53-173, 2010.


(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

Terdapat enam tahap dalam menyelesaikan masalah untuk pembangunan class library, yaitu analisis domain aplikasi, analisis frozen spot, analisis hotspot perancangan class library, Implementasi class library, dan pengujian class library.


(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

Kartu Hotspot digunakan untuk mendeskripsikan fungsionalitas dari setiap hotspot yang ada [3]. Katru


(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

Dari hasil analisis proses bisnis dan fungsionalitas pada ketiga aplikasi terdapat kesamaan fungsional. Terdapat sembilan fungsional yang ditetapkan menjadi frozen spot, yaitu authentifikasi pengguna, pemesanan tiket, pencarian event, penyajian detail event, penyajian data event, penyajian detail tiket, simpan event, penyajian kategori, dan integrasi dengan aplikasi lain.


(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 Kelas Base memiliki atribut Item, ItemList, dan Status. Selain terdapat atribut juga terdapat method GetJSONItem, GetJSONList, GetJSONStatus.


(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 User

Uji Method GetUserDetail Uji Method PostUserEdit Uji Method PostUser

Kelas Event

Uji Method GetEventList Uji Method GetEventDetail Uji Method PostFavoriteEvent 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 Pengujian Acceptance dilakukan untuk mengetahui apakah class library event ticketing yang telah


(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 GetUserDet ail Menampilkan detail user GetUserDetail : UserItem(E)

PostUser Menambahaka

n user baru

PostUser(E) GetEventList Menampilkan

list event GetEventList : EventList(E) GetEventDet ail Menampilkan detail dari event GetEventDetail : EventItem(E) PostFavorite Event Menambahkan favorite event PostFavoriteEve nt(E) GetCategory List Menampilkan list kategori GetCategoryList : CategoryList(E) GetOrderLis t Menampilkan list pemesanan GetOrderList : OrderList(E) GetOrderDe tail Menampilkan detail pemesanan GetOrderDetail : OrderItem(E) PostEventOr der Melakukan pemesanan tiket event PostEventOrder (E) GetTicketLis t Menampilkan list ticket GetTicketList : TicketList(E) GetTicketDe tail Menampilkan detail ticket GetTicketDetail : TicketItem 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 diajukan

Kesimpulan hasil wawancara

Apakah class

library event

ticketing dapat

membantu anda dalam

Class library event

ticketing dapat

membantu

programmer dalam membangun

ticketing?

Apakah class

library event

ticketing dapat

membantu anda dalam membuat fungsionalitas pada

pembangunan aplikasi event ticketing?

Class library event ticketing sangat membantu dalam membuat

fungsionalitas dalam membangun aplikasi event ticketing.

Apakah dengan adanya

dokumentasi

class libaray

event ticketing,

penggunaan class library jadi lebih mudah?

Dokumentasi sangat membantu dan

mempermudah programmer dalam penggunaan class library

Apakah fungsional-fungsional yang ada pada class

library event

ticketing sudah

cukup mewakili fungsionalitas

dasar pada

aplikasi event ticketing?

Class library event ticketing sudah dapat mewakili fungsionalitas dasar pada aplikasi event ticketing

Pada class library

event ticketing

tidak dibangun

exception atau

penanganan

error, apakah

menurut anda hal tersebut

diperlukan?

Penangnan error atau exception sangat diperlukan agar

mempermudah programmer mengetahui letak kesalahan.

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

Berdasarkan unit testing yang telah dilakukan maka dapat ditarik kesimpulan bahwa method yang yang terdapat dalam class library sudah dapat berjalan dengan baik namun terdapat


(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

There are six steps to solve the problem for the class library development, that is application domain analysis, frozen spot analysis, hotspot analysis, design of the class library, class library implementation, and class library testing.


(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

Testing conducted to determine whether the class library that apropiate with the requirements or not. There are three tests performed in this research,


(1)

Jurnal Ilmiah Komputer dan Informatika (KOMPUTA)

8

a

Edisi...Volume..., Bulan 20..ISSN :2089-9033

BIBLIOGRAPHY

[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. [5] A. Orso, “Integration Testing of Object-Oriented

Software,” Dipartimento di Elettronica e Informazione, Milano, 1999.

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


(2)

iii

KATA PENGANTAR

Assalamu’alaikum Wr. Wb.,

Segala puji dan syukur dipanjatkan kepada Allah SWT, karena limpahan rahmat, taufik, dan hidayah-Nya lah penulis mampu untuk menyelesaikan

penelitian dengan judul “PEMBANGUNAN CLASS LIBRARY UNTUK

DOMAIN APLIKASI EVENT TICKETING PADA PLATFORM

WINDOWS PHONE”. Penelitian ini disusun dalam rangka memenuhi tugas akhir

program strata satu Program Studi Teknik Informatika Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia.

Dalam penyusunan laporan penelitian ini, penulis merasa masih ada kekurangan baik itu dalam tulisan ataupun materi yang dibahas dalam penelitian ini. Kekurangan tersebut ada semata-mata karena keterbatasan penulis, namun penulis berusaha sebaik mungkin dalam menyusun laporan penelitian ini.

Dalam proses penyusunan laporan penelitian ini, banyak pihak yang telah memberi bantuan dan dukungan kepada penulis dalam menyelesaikan penelitian ini. Oleh karena itu, penulis ingin menyampaikan terimakasih yang sebesar-besarnya kepada:

1. Tuhan Yang Maha Esa yang telah memberikan kesehatan jasmani dan rohani, pemahaman ilmu, dan kelancaran.

2. Orang Tua penulis yang selalu memberi dukungan moral maupun materil serta seluruh kasih sayang yang telah diberikan sehingga penulis dapat menyelesaikan penelitian ini.

3. Bapak Adam Mukharil Bachtiar, S.Kom., M.T., Sebagai dosen pembimbing yang telah memberikan motivasi, dorongan serta ilmu yang diberikan selama proses penelitian.

4. Bapak Alif Finandhita, S.Kom., sebagai penguji satu yang telah memberi arahan dan perbaikan yang harus dilakukan.


(3)

iv

5. Bapak Andri Heryandi, S.T., M.T., sebagai penguji tiga yang telah membimbing dan melakukan perbaikan.

6. Ibu Kania Evita Dewi S.Pd., M.Si. Selaku dosen wali.

7. Bapak Irawan Afrianto, S.T., M.T., sebagai ketua program studi Teknik Informatika Unikom.

8. Bapak dan Ibu Dosen Teknik Informatika Unikom.

9. Teman seperjuangan Argi sugiyarsa, Renata Kurniawan dan Alih Purwandi. 10.Bisma Abdurachaman Tauhid yang telah memberi semangat dan motivasi. 11.Teman-Teman IF-9 2011 yang telah membantu penulis hingga selesainya

tugas akhir ini.

12.Dan pihak lain yang memberi dukungan, motivasi, dan semangat.

Akhir kata, penulis mohon maaf yang sebesar-besarnya atas keterbatasan dan kekurangan penulis. Semoga penelitian yang dilakukan penulis dapat bermanfaat.

Wassalamu’alaikum Wr. Wb.

Bandung, 31 Juli 2013


(4)

(5)

(6)