BINA NUSANTARA | Library & Knowledge Center



BAB 2

TINJAUAN PUSTAKA

1 Tinjauan Pustaka

Teori-teori yang digunakan dalam pembuatan aplikasi ini.

1.

2.

1.

1 Interaksi Manusia dan Komputer

1 Pengertian Interaksi Manusia dan Komputer

Menurut Ben Shneiderman (2010, pp.4-5), interaksi manusia komputer adalah disiplin ilmu yang mempelajari hubungan antara manusia dan komputer yang mencakup perancangan, evaluasi, dan implementasi antarmuka pengguna komputer agar mudah digunakan oleh manusia. Sebuah sistem dapat disebut interaktif apabila sistem tersebut dapat berkomunikasi dengan pengguna, dengan tujuan agar sistem dapat berguna bagi pengguna.

2 Delapan Aturan Emas (Eight Golden Rules)

Dalam mendesain user interface yang baik, Ben Shneiderman dan Catherine Plaisaint (2010, pp.70-71) memberi delapan aturan yang dapat dijadikan pedoman:

1. Konsistensi

Konsistensi dilakukan pada urutan tindakan, perintah, dan istilah yang digunakan pada prompt, menu serta layar bantuan.

2. Menyediakan kebutuhan universal

Mengenali kebutuhan mulai dari perbedaan pengguna dari pemula hingga ahli, rentang usia, disabilitas, dan perbedaan teknologi yang dapat menjadi pertimbangan kebutuhan ketika akan membuat suatu sistem. Menambahkan fitur untuk para pengguna awam seperti tutorial singkat.

3. Memberikan umpan balik yang informatif

Untuk setiap tindakan operator, sebaiknya disertakan suatu sistem umpan balik. Untuk tindakan yang sering dilakukan dan tidak terlalu penting, dapat diberikan umpan balik yang sederhana. Tetapi jika tindakan tersebut merupakan hal yang penting, maka umpan balik sebaiknya lebih substansial. Misalnya seperti memberikan loading ketika user meng-input data lalu memberitahu hasil dari inputannya apakah benar atau tidak.

4. Merancang dialog untuk menghasilkan suatu penutupan

Urutan tindakan sebaiknya diorganisir dalam suatu kelompok dengan bagian awal, tengah, dan akhir. Umpan balik yang informatif akan meberikan indikasi bahwa cara yang dilakukan sudah benar dan dapat mempersiapkan kelompok tindakan berikutnya.

5. Memberikan penanganan kesalahan yang sederhana

Sebisa mungkin sistem dirancang sehingga pengguna tidak dapat melakukan kesalahan fatal. Jika kesalahan terjadi, sistem dapat mendeteksi kesalahan dengan cepat dan memberikan mekanisme yang sedehana dan mudah dipahami untuk penanganan kesalahan.

6. Mudah kembali ke tindakan sebelumnya

Hal ini dapat mengurangi kekuatiran pengguna karena pengguna mengetahui kesalahan yang dilakukan dapat dibatalkan; sehingga pengguna tidak takut untuk mengekplorasi pilihan-pilihan lain yang belum biasa digunakan.

7. Mendukung tempat pengendali internal

Pengguna ingin menjadi pengontrol sistem dan sistem akan merespon tindakan yang dilakukan pengguna daripada pengguna merasa bahwa sistem mengontrol pengguna. Sebaiknya sistem dirancang sedemikan rupa sehingga pengguna menjadi inisiator daripada responden.

8. Mengurangi beban ingatan jangka pendek

Keterbatasan ingatan manusia membutuhkan tampilan yang sederhana atau banyak tampilan halaman yang sebaiknya disatukan, seragam, agar dapat beradaptasi dalam waktu singkat.

1.

2.

1.

2.

1.

2 Konsep Dasar OOP

Menurut Deitel dan Deitel (2012, pp.13) object oriented programming adalah bahasa pemrograman yang memungkinkan penerapan desain berorientasi objek sebagai sistem kerja. OOP menggunakan modular, object oriented design (OOD) dan pendekatan implementasi yang lebih meningkatkan produktivitas programmer jika dibandingkan dengan structure programming. Berikut adalah konsep-konsep dalam OOP, yaitu:

1. The Plane as an Object

Objek menyembunyikan mekanisme kompleks sebuah class sehingga class dapat digunakan dengan mudah. Contoh sebuah objek pesawat. Pesawat memiliki attribute: sayap dan bahan bakar. Mobil memiliki methods: landing dan take off. Untuk landing, teknisi harus mendesain mekanisme kerja semua attribute agar pesawat dapat melakukan landing dengan sempurna. Keluaran dari teknisi tersebut dapat dianalogikan sebagai class. Dan penggunaan keluaran tersebut dapat dianalogikan sebagai objek dalam hal ini pesawat.

2. Methods and Classes

Methods adalah sekumpulan statement program yang disatukan hingga menjadi sebuah subprogram atau lebih dikenal dengan fungsi. Sedangkan class terdiri atas variable, constructor dan sekumpulan methods yang melakukan tugas-tugas dalam class. Contoh: class yang merepresentasikan rekening nasabah yang memiliki methods untuk menabung dan menarik uang.

3. Instantiation

Objek dari sebuah class harus dibangun sebelum menjalankan method yang didefinisikan oleh class, proses ini disebut instantiation. Objek merupakan wakil dari keseluruhan isi class.

4. Reuse

Class dapat digunakan berulang kali untuk membangun lebih dari satu objek. Penggunaan ulang class yang telah ada untuk membangun class atau program baru dapat menghemat waktu dan tenaga.

Penggunaan ulang juga membantu programmer membangun sistem yang lebih tangguh dan efektif, karena class yang sudah ada secara tidak langsung telah melewati tahap testing, debugging dan performance tuning.

5. Messages and Methods Calls

Setiap message diimplementasikan sebagai methods call yang berfungsi memerintah methods objek yang bersangkutan untuk melakukan tugasnya. Contoh: program akan memanggil method menabung pada objek rekening nasabah untuk menambah saldo.

6. Attributes and Instance Variables

Objek selalu memiliki attributes yang digunakan untuk menjalankan program. Attributes merupakan bagian spesifik dari objek. Attributes ditentukan dengan instance variable. Contoh: objek rekening bank memiliki attribute saldo yang merepresentasikan jumlah uang pada rekening tersebut.

7. Encapsulation

Class membungkus attributes dan methods dalam sebuah objek. Attributes dan methods pada sebuah objek berhubungan dengan erat. Objek dapat berkomunikasi dengan objek yang lain akan tetapi biasanya objek tidak perbolehkan untuk mengetahui bagaimana objek yang lain diimplementasikan.

8. Inheritance

Sebuah class baru dapat dibangun dengan mudah dan cepat dengan inheritance karena class baru mengadopsi penuh karakter class sebelumnya dan dapat melakukan penambahan karakter yang baru.

9. Object-Oriented Analysis and Design (OOAD)

OOAD adalah proses yang yang melibatkan analisis dan perancangan sistem dari sudut pandang object-oriented. Object-oriented merupakan pendekatan untuk membangun sebuah program kompleks. Proses analisis merupakan tahap awal untuk membangun sebuah program yang kompleks.

3 Android

Menurut Google, Inc. (2015), Android adalah platform open source untuk mobile yang dipakai lebih dari 1 miliar lebih pengguna smartphone dan tablet dari seratus sembilan puluh (190) negara di seluruh dunia. Android merupakan OS (Operating System) yang berbasis Linux. Setiap versi pada Android dinamakan menurut nama-nama dessert, seperti Cupcake, Donut, Eclair, Froyo – Frozen Yoghurt, GingerBread, HoneyComb, Ice Cream Sandwich, Kitkat, Jelly Bean dan Lollipop (dirilis pada 21 April 2015). Dan versi terbaru dari Android yaitu Android 6.0 Marshmallow. Untuk membangun aplikasi berbasis Android dapat menggunakan bahasa pemrograman C (core), C++ ataupun Java (UI). Dengan user interface yang didasarkan pada direct manipulation, Android khusus didesain untuk pengguna smartphone ataupun tablet layar sentuh (Touch Screen).

1 Arsitektur Android

Menurut Burnette (2010, pp.30-35), Android dapat dibagi menjadi lima lapisan, yaitu:

1. Linux Kernel

Android dibangun berdasarkan kernel Linux yang diciptakan oleh Linus Torvalds pada tahun 1991. Linux menyediakan lapisan abstraksi perangkat keras untuk Android. Android menggunakan Linux untuk manajemen memori, manajemen proses, jaringan, dan layanan sistem operasi lainnya.

2. Native Libraries

Native libraries merupakan perpustakaan asli pada Android. Pustaka ini ditulis dalam bahasa pemrograman C atau C++, dikompilasi untuk arsitektur perangkat keras tertentu yang digunakan oleh smartphone dan preinstalled oleh vendor ponsel. Beberapa native libraries yang tesedia, yaitu:

a. Surface Manager

Android menggunakan Window Manager yang mirip pada sistem operasi Windows, tetapi jauh lebih sederhana.

b. 2D and 3D graphics

2D atau 3D dapat dikombinasikan pada satu tampilan antarmuka pengguna dengan Android. Pustaka akan menggunakan hardware 3D jika terdapat hardware yang mendukung. Jika tidak ada, maka akan menggunakan fast software render.

c. Media codecs

Android dapat merekam atau memainkan video dan suara dengan format AAC, AVC (H.264), H.263, MP3, dan MPEG-4.

d. SQL database

Android menggunakan database SQLLite untuk menyimpan data.

e. Browser engine

Android menggunakan pustaka WebKit yang digunakan juga dalam browser Google Chrome, Safari, dan juga browser pada Iphone.

3. Android Runtime

Android runtime menggunakan library Java dan termasuk mesin virtual Dalvik. Dalvik VM (Virtual Machine) adalah implementasi Google Java yang dioptimalkan untuk perangkat mobile. Semua kode yang anda tulis untuk Android akan ditulis di Java dan dijalankan dalam mesin virtual.

4. Application Framework

Lapisan ini menyediakan alat tingkat tinggi yang akan dapat digunakan developer untuk membuat aplikasi. Kerangka kerja ini dating pre-installed dengan Android, tetapi developer juga dapat menambahkan komponen sendiri sesuai kebutuhan.

5. Application and Widgets

Lapisan tertinggi dalam diagram arsitektur Android adalah lapisan Application and Widgets. Pengguna (end user) hanya akan melihat program pada lapisan ini, dan tak sadar terhadap semua tindakan yang terjadi dilapisan bawah. Aplikasi adalah program yang dapat mengambil alih seluruh layar dan berinteraksi dengan pengguna, sedangkan widget atau gadget, beroperasi hanya dalam bentuk persegi panjang kecil dari aplikasi layar.

[pic]

Gambar 2.1 Arsitektur Sistem Android

(Sumber: Burnette, 2010, pp.31)

2 Siklus Hidup Android

Menurut Burnette (2010, pp.23), selama dalam proses, setiap activity dari program Android bisa di salah satu dari beberapa keadaan. Keadaan tersebut tidak dapat dikontrol secara langsung oleh developer, karena sudah diatur oleh sistem. Namun, developer mendapat pemberitahuan ketika sebuah keadaan akan berubah ketika sebuah fungsi dipanggil. Menurut Burnette (2010, pp.37-38), terdapat sembilan fungsi yang digunakan pada kelas activity, yaitu:

1. onCreate()

Fungsi ini dipanggil ketika activity pertama kali dijalankan. Fungsi ini berguna untuk melakukan inisialisasi awal. Fungsi ini mempunyai satu parameter yang dapat diberisi null atau berupa informasi kondisi sebelumnya yang disimpan pada fungsi onSaveInstanceState().

2. onStart()

Fungsi ini menunjukan adanya activity yang akan ditampilkan kepada pengguna.

3. onResume()

Fungsi ini dipanggil ketika sebuah activity mulai berinteraksi dengan pengguna. Fungsi ini biasanya digunakan untuk menjalankan animasi dan musik.

4. onPause()

Fungsi ini dipanggil ketika activity tersebut akan masuk ke proses background, hal ini terjadi karena ada activity lainnya yang dipanggil.

5. onStop()

Fungsi ini dipanggil ketika sebuah tampilan activity tidak digunakan lagi oleh pengguna (tidak digunakan sementara waktu). Jika memori tidak mencukupi, fungsi ini mungkin tidak akan dipanggil, melainkan sistem akan menghancurkan proses activity tersebut.

6. onRestart()

Fungsi ini dipanggil pada saat sebuah activity kembali ditampilkan kepada pengguna dari keadaan berhenti.

7. onDestroy()

Fungsi ini dipanggil sesaat sebelum sebuah activity dihancurkan. Jika memori tidak mencukupi, fungsi ini mungkin tidak akan dipanggil, melainkan sistem akan menghancurkan proses activity tersebut.

8. onSaveInstanceState(Bundle)

Android akan memanggil fungsi ini untuk menyimpan keadaan sebelumnya, seperti letak kursor pada kolom teks sebelumnya. Fungsi ini tidak perlu diganti (override), karena implementasi standar telah mengontrolnya secara otomatis.

9. onRestoreInstanceState(Bundle)

Fungsi ini dipanggil ketika activity melakukan inisialisasi ulang dari kondisi sebelumnya yang disimpan dengan fungsi onSaveInstanceState(). Implementasi standar mengembalikan keadaan dari tampilan antarmuka sebelumnya.

[pic]

Gambar 2.2 Contoh Siklus Hidup Android

(Sumber: Burnette, 2010, pp.37)

3 Building Blocks

Menurut Burnette (2010, pp.39-40), terdapat beberapa elemen penting untuk pengembangan aplikasi android, yaitu:

1. Activities

Activity adalah tampilan antarmuka. Aplikasi dapat menentukan satu atau lebih activity untuk menangani berbagai tahapan program. Setiap activity bertanggung jawab untuk menyimpan kondisi sendiri sehingga dapat dikembalikan sebagai bagian dari siklus hidup aplikasi. Activity merupakan turunan dari kelas context, sehingga developer dapat menggunakannya untuk mendapatkan informasi global tentang sebuah aplikasi. Selain activity terdapat juga Fragment. Fragment merupakan komponen yang berjalan diatas activity. Sebuah fragment membungkus kode aplikasi sehingga dapat lebih mudah ketika akan digunakan kembali dan juga bertujuan untuk mendukung devices yang berbeda layar (Vogella, 2015).

2. Intents

Intents adalah mekanisme untuk menggambarkan tindakan tertentu, seperti memilih foto. Di Android, hampir semuanya berjalan melalui intents.

3. Services

Services adalah proses yang berjalan di background, tanpa interaksi langsung dari pengguna. Sebagai contohnya adalah pemutar musik yang terus berjalan walaupun pengguna berpindah-pindah ke program yang berbeda.

4. Content Providers

Content Providers adalah sekumpulan data dibungkus dalam custom Application Program Interface (API) untuk membaca dan menulis. API digunakan untuk berbagi data antar aplikasi. Sebagai contoh, Google menyediakan penyedia konten untuk informasi kontak yang dapat digunakan aplikasi lainnya.

4 SDK

Android SDK merupakan API (Application Programming Interface modul atau library serta tool yang dibutuhkan developer untuk membuat sebuah aplikasi android (Anonim1, developer.). Terdapat beberapa fitur pada android SDK (Meier, 2010, pp.6):

1. Wi-Fi akses hardware.

2. GSM, EDGE, dan 3G untuk telepon atau mengirim data, memungkinkan untuk membuat atau menerima panggilan atau pesan SMS, atau mengirim dan mengambil data di jaringan mobile.

3. Pengaturan multimedia hardware, termasuk pemutaran dan merekam dengan kamera dan microphone.

4. API untuk menggunakan sensor hardware, termasuk accelerometer dan kompas.

5. Membagi penyimpanan data

6. Latar belakang dari aplikasi dan proses.

7. Homescreen widgets, live folders, dan live wallpaper.

8. Kemampuan untuk mengintegrasikan hasil pencarian aplikasi ke dalam pencarian sistem.

9. Media libraries untuk bermain dan merekam berbagai audio atau video atau format gambar.

5 The Ten Principles of Mobile Interface Design

Menurut Stark (2012), terdapat sepuluh prinsip dari mobile interface design, yaitu:

1. Mobile mindset

a. Be focused: Fitur yang banyak bukanlah hal yang terbaik, melainkan berfokus pada fitur-fitur tertentu lalu dikembangkan sebaik mungkin.

b. Be unique: Membuat aplikasi yang unik yang berbeda dengan aplikasi lainnya.

c. Be charming: Aplikasi yang ramah, dapat diandalkan dan menyenangkan dapat membuat pengguna sangat nyaman untuk tetap terus menggunakannya.

d. Be considerate: Developer terlalu sering berfokus dengan hal yang dikembangkan dan tujuan bisnis pribadi sehingga tidak berpikir dari sisi pengguna. Para developer harus menempatkan diri pada posisi pengguna untuk menciptakan aplikasi dengan pengalaman yang menarik.

2. Mobile context

a. Bored: Harus ada pengalaman yang mendalam dan menarik perhatian pengguna saat menggunakan aplikasi, sehingga pengguna tidak mudah bosan. Contoh: Facebook, Twitter dan Angry Birds.

b. Busy: Kemampuan untuk menyelesaikan tugas secara cepat dan andal dengan satu tangan pada lingkungan sibuk adalah hal yang penting. Contoh: email, calendar dan banking.

c. Lost: Pengguna mengeksplorasi sebuah tempat asing sehingga membutuhkan penggunaan baterai yang lama. Dalam hal ini, daya tahan baterai merupakan perhatian pertama sehingga diperlukan fitur offline untuk mengurangi penggunaan baterai. Contoh: Maps, Yelp dan Foursquare.

3. Global guidelines

a. Responsiveness: Jika pengguna melakukan suatu tindakan, aplikasi harus merespons tindakan tersebut secara instan.

b. Polish: Menyempurnakan aplikasi hingga hal-hal yang paling detil.

c. Thumbs: Desain bedasarkan jempol, karena jari jempol hampir selalu digunakan dalam berinteraksi dalam layar touch screen.

d. Targets: Menentukan letak antar tombol sehingga pengguna tidak salah tekan.

e. Content: Revolusi layar sentuh adalah bahwa hal tersebut memungkinkan pengguna untuk berinteraksi langsung dengan konten tanpa menggunakan mouse dan keyboard.

f. Controls: Bila terdapat tombol kontrol, tempatkan tombol tersebut di bagian bawah layar. Jika tidak, pengguna tidak akan bisa melihat apa yang terjadi dengan konten pada saat menggunakan tombol kontrol.

g. Scrolling: Bila memungkinkan, hindari scrolling. Memiliki layar non-scrolling membuat tampilan dirasa lebih solid dan dapat diandalkan daripada layar scrolling.

4. Navigation models

a. None: Aplikasi utilitas layar tunggal

b. Tab Bar: Tiga sampai enam tab dengan isi yang berbeda

c. Drill Down: List dan konten detail hierarki

5. User Input

a. Keyboard variations: Pertimbangkan setiap input dan pastikan untuk menampilkan keyboard paling berguna untuk melakukan entri data.

b. Keyboard options: Pertimbangkan setiap input dan memutuskan mana pilihan entri otomatis yang harus diaktifkan (auto-correct, autocapitalisation dan auto-complete).

c. Keyboard orientations: Jika terdapat kebutuhan mengetik yang sering, harus dipastikan bahwa orientasi landscape agar tombol keyboard menjadi lebih besar dan mudah ditekan.

6. Gestures

a. Invisible: Gestures yang tidak terlihat, sehingga dibutuhkan waktu untuk menemukannya. Developer harus memutuskan bagaimana untuk mengungkapkan keberadaan Gestures kepada pengguna.

b. Two Hands: Penggunaan aplikasi menggunakan dua tangan untuk bekerja, seperti yang digunakan dalam aplikasi native Maps app pada iOS untuk melakukan zoom out/in.

c. Nice to Have: Dalam banyak hal, gestures merupakan hal baik untuk dimiliki, tapi tidak kritis. Seperti shortcut keyboard, beberapa pengguna menyenanginya, tetapi kebanyakan pengguna bahkan tidak akan tahu bahwa hal itu ada.

d. No Replacement: Sebuah kosa kata umum untuk gestures belum ada sehingga diperlukan sebuah kontrol terlihat bagi kebanyakan aplikasi.

7. Orientation

a. Portrait: Merupakan orientasi layar yang paling populer sehingga harus dioptimalkan terlebih dahulu.

b. Landscape: Jika terdapat kebutuhan mengetik yang sering, maka orientasi landscape harus diutamakan, sehingga pengguna dapat mengakses keyboard yang lebih besar.

c. Orientation Lock: Jika orientasi yang digunakan berubah-ubah, tambahkan sebuah orientasi kunci, sehingga pengguna dapat menggunakan orientasi yang sesuai dengan keinginan.

8. Communications

a. Provide feedback: Memberikan umpan balik untuk setiap interaksi. Jika tidak, pengguna akan bertanya-tanya apakah aplikasi mengalami freeze, atau tindakan yang dilakukan tidak tepat.

b. Modal alerts: Memunculkan dialog error pada saat terjadi kesalahan. Dialog error hanya digunakan ketika ada kesalahan yang serius.

c. Confirmation: Memunculkan dialog konfirmasi pada saat meminta pengguna untuk mengkonfirmasi.

9. Launching

Aplikasi yang telah digunakan sebelumnya, harus beroperasi sesuai dengan kondisi terakhir sebelum pengguna tinggalkan. Hal ini akan memberikan rasa kecepatan dan sifat aplikasi yang responsif. Selain itu, sebaiknya memasang gambar sesedikit mungkin pada saat loading pertama aplikasi. Banyaknya gambar membuat pengguna merasa tidak nyaman karena seolah-olah seperti melihat iklan.

10. First Impressions

a. Your Icon: Ikon yang dibuat harus menarik perhatian dan unik, sehingga dapat bersaing dengan ikon-ikon lainnya. Ikon harus dibuat simpel, tetapi mempunyai kesan yang kuat sehingga memberikan kesan yang kuat terhadap aplikasi.

b. First Launch: Pengguna mungkin bingung ketika mencoba untuk memperkenalkan diri dengan aplikasi baru. Pengguna akan segera menghapus aplikasi tersebut jika dianggap tidak user-friendly. Jika sebuah aplikasi menyediakan fungsionalitas yang kompleks, lebih baik dibuatkan tips dan trik untuk membantu pengguna.

6 Agile Software Development

Agile software development adalah metode pengembangan aplikasi yang mementingkan kepuasan user dan mengembangkan aplikasi secara bertahap. Pengembangan aplikasi ditekankan pada analisis dan desain, dan komunikasi yang aktif dan kontinu diantara developers dan user (Pressman & Maxine, 2015, pp.66).

1. Adaptive Software Development (ASD)

Metode ASD diajukan oleh Jim Highsmith dan Sam Bayer pada tahun 2000 sebagai teknik untuk membangun software dan sistem yang kompleks. ASD memiliki prinsip yang berfokus pada penciptaan cepat dan evolusi dari software. Metode ini tumbuh menggantikan metode rapid application development. Kedua metode tersebut memiliki struktur yang hampir sama, perbedaanya terletak pada waktunya, dimana ASD tidak memiliki waktu yang pasti kapan projek tersebut dapat dikatakan selesai. Karena metodologi ini berfokus pada computer code. Ketika ada sesuatu dari sistem yang harus berubah atau beradaptasi terhadap sistem baru, maka para coders akan langsung melakukannya. ASD memiliki 6 (enam) karakteristik, yaitu:

a. Mission Focused

Memiliki pengertian bahwa semua yang terlibat didalam tim harus fokus kepada tujuan, karena disini orang-orang didalam tim harus dapat mengatur kolaborasi antar anggota tim lain secara mandiri.

b. Feature Based

Yang cukup membedakan ASD dibanding metodologi lain adalah pada pembagian tugasnya, dimana requirement user akan di ditekankan perfitur.

c. Iterative

Ini merupakan karakteristik umum yang selalu ada pada setiap Agile development. Memiliki pengertian berulang, artinya pekerjaan yang dilakukan harus diulang untuk mendorong terciptanya kepuasan pelanggan sehingga mempercepat delivery perangkat lunak secara bertahap. Namun ada hal yang berbeda pada iterasi ini, dimana kesalahan kecil berdasarkan asumsi akan dicatat sehingga tim akan menjadi lebih berpengalaman untuk menangani masalah tersebut.

d. Timeboxed

Setiap tugas memiliki jangka/periode waktu yang tetap, yang bertujuan untuk membuat setiap orang dalam tim dapat mengerjakan tugasnya sesuai dengan waktu yang telah ditentukan.

e. Risk Driven

Risk Driven merupakan model yang dibuat oleh tim untuk mengasumsikan berbagai masalah yang akan muncul, lalu

mencari solusi untuk memecahkan masalah tersebut salah satu caranya adalah mungkin dengan menyederhanakan.

f. Change Tolerant

Membuat software yang dapat dipelihara,diperbarui, dan diubah sesuai dengan kebutuhan.

[pic]

Gambar 2.3 Tahapan pada ASD

(Sumber: Pressman, Software Engineering: a practitioners approach 7th Edition, 2010, pp. 81)

Terdapat 3 (tiga) tahapan pada ASD, yaitu:

a. Speculation

Tahap pertama adalah speculation. Selama fase ini, programmer mencoba untuk mengerti terhadap software yang akan dibuat dan kebutuhan user. Salah satunya dengan mendidefinisikan visi dan misi pengguna terhadap software yang akan dibuat, selanjutnya mendefinisikan project constraints, misalnya: waktu deliver. Fase ini juga bergantung kepada bug dan laporan user.

b. Collaboration

Tahap selanjutnya adalah collaboration, pada tahap ini diorganisasikan tim kerja untuk membangun sistem. Fase ini menuntut orang-orang di tim untuk memperkokoh tentang apa yang mereka lakukan dan bagaimana mengkombinasikan porsi dari pekerjaan tersebut.

c. Learning

Tahap terakhir adalah learning, pada fase ini software yang terbaru diberikan ke user. Ini akan menghasilkan bug dan laporan user yang digunakan selama fase pertama project, dan selanjutnya tim ASD melakukan peninjauan kembali terhadap komponen perangkat lunak untuk memperbaiki dan meningkatkan kualitas perangkat lunak yang sedang dibuat sehingga perputaran tahap akan berulang dengan sendirinya.

7 Web Services dan WS-Security

Web services menurut mendefinisikan web service sebagai sebuah software aplikasi yang dapat teridentifikasi oleh URI dan memiliki interface yang didefiniskan, dideskripsikan, dan dimengerti oleh XML dan juga mendukung interaksi langsung dengan software aplikasi yang lain dengan menggunakan format berbasis XML/JSON melalui protokol internet. Dengan demikian dengan menggunakan web service komunikasi antar 2 software aplikasi yang berbeda platform, sistem operasi tetap dapat terjalin. Selain itu pada web service hubungan antara client dan server tidak terjadi secara langsung. Hubungan antara client dan server dijembatani oleh file web service dalam format tertentu, sehingga akses terhadap database akan ditanggani tidak secara langsung oleh server, melainkan melalui perantara yang disebut sebagai web service. Peran dari web service ini akan mempermudah distribusi sekaligus integrasi database yang tersebar di beberapa server sekaligus.

[pic]

Gambar 2.4 Proses komunikasi antara klien dan Web server melalui XML

(Sumber: )

Komponen-komponen dalam web service secara keseluruhan memiliki 4 (empat) layer komponen seperti pada gambar berikut:

[pic]

Gambar 2.5 Empat layer komponen web service

(Sumber: )

Layer 1: Protokol internet standar seperti HTTP, TCP/IP.

Layer 2: Simple Object Access Protocol (SOAP), merupakan protokol akses objek berbasis XML yang digunakan untuk proses pertukaran data/informasi antar layanan.

Layer 3: Web Service Definition Language (WSDL), merupakan standar bahasa dalam format XML yang berfungsi untuk mendeskripsikan seluruh layanan yang tersedia.

Layer 4: UDDI (Universal Description, Discovery and Integration) adalah sebuah service registry bagi pengalokasian web service.

Web service security (WS-Security) yaitu standar keamanan dalam web service yang dirancang untuk mengatasi ancaman yang diperkirakan akan terjadi. Media komunikasi dalam web service adalah melalui pesan SOAP. (Uluwiyah, 2013, pp.10) WS-Security mendefinisikan SOAP pada elemen header untuk membawa data dengan aman. WS-Security menyajikan solusi end-to-end untuk keamanan layanan web dengan menjaga keamanan semua informasi yang ada pada pesan SOAP. Dalam WS-Security dijelaskan 3(tiga) mekanisme utama untuk mengamankan pesan SOAP, yaitu bagaimana menjamin integritas pesan SOAP, bagaimana mengenkripsi pesan SOAP untuk menjamin kerahasian dan cara melampirkan token keamanan untuk memastikan identitas pengirim.

8 Representational State Transfer (REST)

Teknologi REST pertama diperkenalkan oleh disertasi doktoral Roy Fielding pada tahun 2000. REST (Representational State Transfer) adalah suatu jenis dari web server yang memungkinkan klien, baik user-operated atau otomatis, untuk mengakses sumber daya (resources) yang memodelkan data dan fungsi suatu sistem (Masse, 2011, pp.5).

Ketika klien berinteraksi dengan sistem maka akan membentuk suatu request terhadap database pada server. Server mengolah dan mengembalikan data ke klien yang berupa response dalam format XML atau JSON. Pada web services, hubungan antar klien dan server tidak terjadi secara langsung karena dijembatani oleh web services.

[pic]

Gambar 2.6 Arsitektur REST

(Kalin, 2009, pp. 123)

Dalam arsitektur diatas, klien mengirimkan dengan HTTP requests untuk URL yang meminta untuk sumber daya pada server dan merespon dengan HTTP responses yang kembali ke klien. Sebagai contoh, request GET dari klien dapat mengirimkan biografi hacker dalam bentuk halaman HTML. HTTP methods adalah kunci landasan dari REST yang menentukan tindakan terhadap data. HTTP methods terdiri dari POST, GET, PUT, dan DELETE dengan fungsi sebagai berikut (Masse, 2011, pp.23-27):

1. POST

Klien menggunakan POST ketika mengirimkan sumber daya ke server; digunakan untuk membuat (create) sumber daya baru ke dalam koleksi

2. GET

Klien menggunakan GET dalam pesan request untuk mendapatkan (retrieve) sebuah sumber daya. Pesan dapat berisikan headers saja, tanpa isi (body).

3. PUT

PUT digunakan untuk menambahkan sumber daya ke penyimpanan dengan URI ditentukan secara spesifik oleh klien; digunakan untuk memperbaharui atau menggantikan sumber daya yang sudah ada. Pesan PUT berisikan hal yang ingin diubah.

4. DELETE

Klien menggunakan DELETE untuk menghapus sumber daya dari penyimpanan atau koleksi. Ketika request untuk menghapus diproses, sumber daya tidak dapat ditemukan lagi oleh klien. Maka dari itu, status akan dikembalikan error 404 (Not Found). REST menggunaan skema yang berorientasi pada sumber daya untuk menggambarkan struktur representasi yang independen dari format mereka. Orientasi pada sumber daya adalah orientasi yang menyediakan sumber daya sebagai layanannya dan bukan kumpulan dari aktifitas yang mengolah sumber daya (Masse, 2011, pp.59).

9 JavaScript Object Notation (JSON)

JSON merupakan format pertukaran data yang ringan, mudah dibaca dan ditulis serta mudah diterjemahkan dan dihasilkan oleh komputer. JSON dibuat berdasarkan bagian dari bahasa pemrograman JavaScript, Standar ECMA-262 Edisi ke 3 – Desember 1999, sehingga membuat JSON lebih ringan dan lebih cepat daripada XML, karena JSON merupakan bentuk asli dari JavaScript (Anonim4, ). JSON menggunakan beberapa bentuk sebagai berikut:

a. Object

Sepasang nama atau nilai yang tidak terurutkan. Objek dimulai dengan “ { “ (buka kurung kurawal) dan diakhiri dengan “ } ” (tutup kurung kurawal), dan setiap nama diikuti dengan “ : ” (titik dua) dan setiap pasangan nama atau nilai dipisahkan oleh “ , ” (koma).

[pic]

Gambar 2.7 Object pada JSON

(Sumber: )

b. Array

Kumpulan nilai yang telah diurutkan, dimulai dengan “ [ “ (buka kurung kotak) dan diakhiri dengan “ ] ” (tutup kurung kotak), setiap nilai dipisahkan oleh “ , ” (koma).

[pic]

Gambar 2.8 Array pada JSON

(Sumber: )

c. Value

Dapat juga berupa sebuah String dalam tanda kutip ganda, ataupun angka, ataupun bentuk true or false atau null, ataupun sebuah object atau array. Dan juga struktur-struktur tersebut dapat tersusun bertingkat.

[pic]

Gambar 2.9 Value pada JSON

(Sumber: )

d. String

Kumpulan dari nol atau lebih karakter Unicode, yang dibungkus dengan tanda kutip ganda, dalam string dapat digunakan backslash escapes “ \ ” untuk membentuk karakter khusus.

[pic]

Gambar 2.10 String pada JSON

(Sumber: )

e. Number

Sangat mirip dengan angka di C atau Java, kecuali format oktal dan heksadesimal tidak digunakan.

[pic]

Gambar 2.11 Number pada JSON

(Sumber: )

10 MVC

Menurut Pressman dan Maxi (2015,pp.384), MVC merupakan model arsitektur yang memisahkan user interface dari fungsi dan content informasi webapp. Oleh karena itu MVC terbagi menjadi tiga bagian yaitu model, view dan controller.

Biasanya MVC digunakan untuk aplikasi yang besar dan memiliki struktur data yang kompleks, karena keuntungan dari MVC yaitu kemudahan dalam melakukan maintenance dan dalam pengembangan aplikasi tersebut.

11 Bahasa Pemograman C#

Dibuat berdasarkan C++, C# adalah bahasa pemrograman berorientasi objek yang dikembangkan oleh Anders Hejlsberg, arsitek kepala di Microsoft dan seorang insinyur yang hebat. C# merupakan bahasa pemrograman yang kuat, fleksibel dan berorientasi objek (OOP) yang digunakan untuk menciptakan berbagai aplikasi. C# telah digunakan untuk berbagai proyek seperti situs web dinamis, perangkat pengembangan dan bahkan compiler. C# merupakan bahasa yang berasal dari C dan C++ dengan menambahkan fitur baru agar bahasa lebih mudah digunakan (Gary dan Misty, 2010, pp.671). C# (biasanya disebut juga sebagai “C sharp”) adalah sebuah bahasa pemrograman komputer yang baru. C# merupakan bahasa object-oriented seperti java dan merupakan bahasa component-oriented yang pertama. Bahasa pemrograman ini dibuat berbasiskan bahasa C++ yang telah dipengaruhi oleh aspek-aspek ataupun fitur bahasa yang terdapat pada bahasa-bahasa pemrograman lainnya seperti java, visual basic, dan lain-lain dengan beberapa penyederhanaan. C# dititik beratkan pada:

1. C# adalah sebuah bahasa baru yang diturunkan dari keluarga C/C++

2. Kode pada C# lebih sederhana dan lebih modern dari C++.

3. Merupakan bahasa componen-oriented yang pertama.

4. Merupakan bahasa yang didesain dari .Net framework.

5. Merupakan bahasa yang singkat dan modern.

6. Mengkombinasikan fitur-fitur terbaik dari banyak bahasa yang umum digunakan: produktivitas dari visual basic, kekuatan dari C++ dan Java.

7. Mempunyai sintaks yang konsisten.

8. C# akan menjadi pilihan bahasa bagi pemrograman .Net.

9. Bagian terbesar dari .Net framework yang benar-benar dikodekan dalam bahasa C#.

12 Konsep .NET

[pic]

Gambar 2.13 Susunan kerangka kerja .NET

(Sumber: )

Pada gambar di atas (Bipin Joshi, 2007, pp.11), bagian paling dasar dari kerangka .NET adalah sistem operasi. Aplikasi yang anda buat sampai selesai akan menjadi bagian dari produk Windows, karena .NET berjalan diatas platform Windows termasuk Windows XP hingga Windows 10.

Pada lapisan kedua terdapat lapisan Common Language Runtime (CLR). CLR merupakan inti dari kerangka .NET, yang menyediakan lingkungan untuk mengeksekusi program kepada setiap aplikasi .NET. Sehingga, untuk menjalankan aplikasi .NET, Anda harus memiliki CLR yang telah terinstalasi. CLR dapat melakukan banyak hal terhadap aplikasi Anda, termasuk untuk manajemen memory dan pemerikasan keamanan.

Pada lapisan ketiga terdapat banyak kumpulan class yang diberi nama Base Class Library. Base Class Library ini menyediakan banyak class yang dapat melakukan hampir semua yang Anda butuhkan dalam aplikasi Anda. Termasuk class untuk input/output (IO), mengakses basis data, memanipulasi XML dan lainnya. Di lapisan keempat terdiri atas aplikasi Windows, termasuk model aplikasi web. Model aplikasi web ini diwakili oleh , termasuk Web Forms dan Web Services. hadir dengan pengontrol Web Form yang tertanam di dalamnya, yang berfungsi untuk menghasilkan tampilan antarmuka. menirukan atribut khusus HTML, seperti text boxes atau button. Apabila pengontrol ini tidak cocok dengan keinginan Anda, Anda bebas untuk membuat sendiri pengontrolnya. Web Services memberikan Anda sebuah model yang dapat mengikat aplikasi yang berbeda melalui sebuah internet. Model ini berbasis pada infrastruktur dan aplikasi yang sudah ada. Oleh karena itu, Web Services merupakan model yang sederhana dan dapat beradaptasi. Di lapisan paling atas terdapat beberapa bahasa pemrograman yang dapat digunakan untuk mengembangkan . menyediakan 5 bahasa program, yaitu Visual Basic .NET, Visual C#, Managed C++, Jscript .NET dan Visual J#.

13 Visual Studio

Visual studio merupakan perangkat pengembangan program dari Microsoft berupa Integrated Development Environment (IDE) dirilis sejak tahun 1995 (Patrick Desjardins, 2014, pp. 1). Tersedia lima edisi Visual Studio untuk memenuhi kebutuhan yang berbeda-beda:

a. Express

Express merupakan edisi Visual Studio versi gratis yang tidak dapat ditambahkan extentions karena memiliki template yang terbatas. Keuntungan edisi express yaitu: proyek dapat dibuka di berbagai edisi Visual Studio dan edisi express ini memiliki id aplikasi sendiri sehingga dapat di-install secara paralel dengan edisi yang lain.

b. Professional

Professional merupakan tiket masuk untuk menggunakan Visual Studio IDE secara keseluruhan yang memungkinkan pengembang untuk membuat berbagai jenis aplikasi dengan menggunakan IDE yang sama.

c. Premium

Premium merupakan edisi Visual Studio pertama yang menggunakan kode metrik untuk meningkatkan kualitas aplikasi. Edisi premium terdapat diantara edisi professional dan edisi ultimate sehingga edisi premium memiliki semua fungsi professional dengan beberapa fungsi tambahan yang memungkinkan pengembang untuk membaca arsitektur dan pemodelan file grafis.

d. Ultimate

Ultimate merupakan edisi Visual Studio yang paling lengkap sehingga memungkinkan pengembang untuk menggunakan semua fitur Visual Studio yang ada. Pada edisi ultimate pengembang dapat menambahkan extentions untuk menambah fitur pada proyek yang dibuat. Edisi ultimate memiliki fitur yang tidak dimiliki edisi lainnya yaitu web berbasis cloud dan pengujian performa proyek.

e. Tester and QA

Tester and QA merupakan edisi untuk melakukan pengujian tetapi pengujian yang dilakukan sangat terbatas.

14 SQL Server

Leiter (2009, pp.3) menyatakan bahwa SQL Server sangat dikenal sebagai Relational Database Management System (RDBMS). Namun tidak hanya itu saja, tetapi juga dapat lebih akurat digambarkan sebagai data enterprise platform. Sementara itu, SQL Server dikenal dengan peran sebagai RDBMS tradisional, SQL Server juga menyediakan kemampuan reporting, analisis data yang kuat dan data mining. SQL Server tentunya juga mempunyai fitur-fitur yang mendukung aplikasi data yang berbeda, data driven event notification dan masih banyak lagi. Menurut Leiter (2009, pp.39) semua sistem dan pengguna basis data (termasuk sumber daya basis data) disimpan dalam file. Selalu ada minimal dua file penyimpanan yaitu satu file data dan satu file transaksi. Ekstensi default untuk file data adalah .MDF, dan default untuk file log transaksi adalah .LDF.

15 SQLite

SQLite merupakan software yang menyediakan Relational Database Management System (RDBMS) dan bersifat public domain (Jay A. Kreibich, 2010, pp.1). Sistem relasional database digunakan untuk menyimpan dan mengatur data, dapat diproses melalui perintah query yang kompleks yang menggabungkan data dari beberapa tabel. SQLite bersifat open source yang dapat digunakan pada sistem operasi android yang mendukung fitur database relasional standar seperti sintaks SQL, transactions dan prepared statements. Selain itu SQLite mendukung tipe data text (seperti string di Java).

16

Ken Cox (2008, pp.12) menjelaskan “ adalah sebuah teknologi untuk menyampaikan aplikasi web yang interaktif melalui internet dan intranet.” Di dalam terdapat beberapa kontrol, seperti text boxes, buttons, image, dan data grids, yang dapat disatukan, dikonfigurasikan, dan dimanipulasi dengan kode untuk membuat halaman HTML yang muncul pada browser – browser yang populer. Ketika dikombinasikan dengan logika pemrograman, membiarkan Anda mengirimkan kode HTML yang khusus untuk keadaan setiap pengguna komputer. Contohnya, jika seorang pengguna komputer menginginkan sebuah halaman web untuk menampilkan tabel HTML dengan warna teks hijau dan latar belakang ungu, kode Anda dapat membaca request yang dating, memeriksa apakah kode tersebut dapat dilaksanakan, dan merespon. Tidak seperti halaman HTML yang statis dan tersimpan dalam keadaan lengkap, halaman biasanya tampil dalam bentuk seperti kerangka. Halaman menjadi lengkap ketika pengguna komputer me-request sebuah halaman yang dianalisa oleh , dan mengisi semua content (biasanya dari sebuah basis data), mengirimkannya dalam bentuk HTML yang dapat dibaca oleh browser.

17 Internet Information Services (IIS)

Menurut Microsoft, Inc. (2015), IIS atau Internet Information Services atau Internet Information Server adalah sebuah HTTP web server yang digunakan dalam sistem operasi server Windows, mulai dari Windows NT 4.0 Server, Windows 2000 Server atau Windows Server 2003. Layanan ini merupakan layanan terintegrasi dalam Windows 2000 Server, Windows Server 2003 atau sebagai add-on dalam Windows NT 4.0. Layanan ini berfungsi sebagai pendukung protokol TCP/IP yang berjalan dalam lapisan aplikasi (application layer). IIS juga menjadi fondasi dari platform Internet dan Intranet Microsoft, yang mencakup Microsoft Site Server, Microsoft Commercial Internet System dan produk-produk Microsoft BackOffice lainnya.

18 HyperText Markup Language (HTML)

HTML adalah special formatting language yang digunakan oleh programmer untuk memformat dokumen yang ditampilkan di web. Tampilan yang ada didalam halaman web ditulis menggunakan HTML dan ditampilkan didalam web browser seperti Internet Explorer, Safari, Firefox, Opera, atau Google Chrome (Shelly dan Vermaat, 2010, pp.678).

19 Cascading Style Sheet (CSS)

CSS memiliki format dari suatu particular object yang akan ditampilkan didalam sebuah web browser (Shelly dan Vermaat, 2010, pp. 683). CSS dapat mengendalikan ukuran gambar, warna pada teks, warna tabel, ukuran border, warna border, warna hyperlink, warna mouse over, spasi antar paragraf, spasi antar teks, margin kiri, kanan, atas, bawah, dan parameter lainnya.

20 JavaScript

JavaScript merupakan sebuah interpreted language yang dapat programmer gunakan untuk menambahkan konten dinamis dan elemen yang interaktif ke dalam halaman web. Elemen-elemen ini seperti alert messages, scrolling text, animasi, drop-down menus,data input forms, pop-up windows, interactive quizzes, dan mouse rollovers (Shelly dan Vermaat, 2010, pp. 682).

21 JQuery

JQuery merupakan JavaScript Library yang cepat, ringan, dan memiliki banyak fitur. JQuery digunakan untuk memanipulasi dokumen HTML, event handling, animasi dan AJAX yang menjadi lebih mudah digunakan dengan bantuan Application Programming Interface (API) yang telah disediakan (jQuery, 2014).

22 Database Management System (DBMS)

Connolly dan Begg (2010, pp.16) menjelaskan “DBMS (Database Management System) adalah sebuah sistem software yang memungkinkan pengguna untuk mendefinisikan, memuat, memelihara, dan mengatur akses ke dalam database. DBMS merupakan sebuah software yang berinteraksi dengan pengguna program aplikasi dan database.”

23 Language INtegrated Query (LINQ)

Language INtegrated Query (LINQ) adalah ekstensi yang tersedia untuk Visual Basic dan C# programming yang di desain untuk menyederhanakan data queries dan interaksi data. LINQ ditujukan untuk menyelesaikan masalah O/R Mapping dengan membuat query statement menjadi bagian dari bahasa pemrograman. Selain itu tersedia juga dukungan untuk melakukan query di memory collection seperti array atau list, XML, DataSets dan relational database (Marguerie dan Eichert, 2008).

[pic]

Gambar 2.14 LINQ Arsitektur

(Sumber: )

LINQ (Language-Integrated Query) pada C# merupakan model pemrograman Microsoft yang pada dasarnya menambahkan kemampuan query formal ke bahasa pemrograman Microsoft yang berbasis .NET. LINQ menyediakan function untuk memanipulasi database tanpa harus melakukan query atau bahkan mengerti query. LINQ adalah keyword baru pada C# dan VB yang diperkenalkan pada .NET versi 3.5 dan pada C# versi 3.0 yang telah menambahkan beberapa fitur dalam rangka mendukung LINQ. Kemudian adanya integrasi yang kuat terhadap bahasa pemrograman, LINQ menambahkan sekumpulan API yang memungkinkan pengaksesan data terhadap sumber data yang berbeda-beda. Secara singkat LINQ dapat didefinisikan sebagai sebuah metode yang memudahkan dan menseragamkan cara pengaksesan data. Sehingga dengan menggunakan LINQ developer hanya perlu menggunakan sebuah teknik pengaksesan data saja. Karena jika kita lihat dunia pemrogramman saat ini umumnya developer perlu menguasai skill yang berbeda-beda untuk setiap media penyimpanan data. Dengan menggunakan LINQ, kita dapat melakukan query ke berbagai macam data seperti ke database SQL Server (LINQ to SQL), ke object DataSet (LINQ to DataSet), ke entity (LINQ to Entity Framework), data XML (LINQ to XML) dan masih banyak lagi. Sebelum ada LINQ untuk mengakses objek-objek seperti array, collection, database, dan XML anda membutuhkan beberapa teknik yang berbeda, misal untuk mengakses database anda harus menggunakan bahasa SQL, untuk mengakses XML digunakan XPath atau XQuery tapi dengan menggunakan LINQ objek yang berbeda-beda tersebut dapat diseragamkan dengan teknik yang sama yaitu LINQ.

24 World Wide Web (WWW)

Connolly dan Begg (2010, pp. 1028) menjelaskan “WWW adalah penjelajahan halaman informasi yang sangat besar yang berada di dalam internet. Informasi yang ada di dalam web dipresentasikan di dalam sebuah halaman web yang terbentuk dari sekumpulan teks, grafik, gambar, suara dan video. Dengan tambahan, halaman web dapat dapat berisi hyperlink yang tertuju ke halaman web lain yang membuat user dapat mencari informasi lain” WWW terdiri atas jaringan dari beberapa komputer yang dapat berperan sebagai server (yang menyediakan informasi) dan client, umumnya disebut sebagai browser (yang meminta informasi). Contoh dari server adalah Apache HTTP Server, Microsoft Internet Information Server (IIS) dan Netscape Enterprise Server. Contoh dari browser adalah Google Chrome, Mozilla Firefox, dan Internet Explorer. Banyak informasi dari web tersimpan di dalam dokumen yang menggunakan bahasa HTML (HyperText Markup Language) dan browser harus memahami dan menerjemahkan HTML untuk menampilkan dokumen ini. Protokol yang mengatur pertukaran informasi antara server dengan browser di namakan HTTP (HyperText Transfer Protocol). Dokumen dan lokasi dokumen tersebut diidentifikasikan oleh sebuah alamat, yang disebut sebagai Uniform Resource Locator (URL).

[pic]

Gambar 2.15 Komponen dasar web dan lingkungannya

25 Entity Framework

Menurut Microsoft, Inc. (2015), Entity Framework adalah object relational mapper yang membuat developer .NET dapat bekerja dengan relational data melalui suatu objek (EDM). Entity Data Model (EDM) adalah representasi data model yang ada berada pada sisiclient dan merupakan inti dari Entity Framework.

26 Google Cloud Messaging (GCM)

GCM atau sering disebut dengan Google Cloud Messaging merupakan service yang diberikan oleh Google untuk membantu developer untuk mengirimkan data dari server kedalam aplikasi Android pada device Android. Dengan menggunakan GCM, setiap user dapat mendapatkan informasi-informasi terbaru dari aplikasi yang di bangun oleh developer. GCM menggunakan server Google dan Android. GCM juga dapat menerima message dari multiple sender tetapi maksimal 100 multiple sender (). Untuk dapat menggunakan GCM, dapat mengikuti arahan yang telah di berikan oleh Google yaitu pada . Pada website ini, Google sudah memberikan guide kepada developer, developer tinggal memilih untuk guide pada Android atau guide pada iOS. Untuk menggunakan GCM pada Android, pertama- tama setiap developer harus mendaftarkan nama aplikasi dan packages. Setelah mendaftarkannya, Google akan memberikan file google-services.json yang harus di download dan di masukkan ke dalam project dan juga server API key. Untuk mendapatkan notifikasi kepada setiap device, developer harus mendapatkan registration token dari instanceID API. Token di gunakan untuk membedakan setiap device yang akan menjalankan aplikasi, token tersebut kemudian akan di berikan kepada server. Untuk meng-handle notifikasi yang masuk, dapat menggunakan GcmListenerService yang akan di atur oleh GcmReciever. Dengan meng-override method GcmListenerService.onMessageRecieved, developer dapat mengatur apa saja yang akan di tampilkan. Contoh:

[pic]

27 Java

Java dikenal sebagai bahasa program untuk aplikasi internet. Bahasa pemrograman didesain untuk memudahkan orang-orang untuk menuliskan dan memahaminya adalah yang dimaksud dengan bahasa tingkat tinggi (High-Level Languages). Bahasa yang digunakan komputer adalah bahasa mesin. Bahasa mesin atau bahasa yang hampir sama dengan bahasa mesin disebut dengan bahasa tingkat rendah (Low-Level Languages). Sehingga program yang dituliskan ke dalam bahasa tingkat tinggi harus diterjemahkan dahulu ke dalam bahasa mesin sebelum dijalankan. Program yang digunakan untuk menerjemahkan bahasa tersebut disebut dengan compiler dan proses penerjemahannya disebut dengan compiling (Walter Savitch, 2012).

Sementara ada beberapa versi java yang diterjemahkan ke dalam bahasa byte-code. Bahasa ini adalah bahasa mesin untuk komputer tertentu yang dapat berjalan pada Java Virtual Machine (JVM). Byte-Code adalah program java yang diterjemahkan oleh compiler ke dalam bahasa byte-code. Sehingga sangat mudah untuk menerjemahkan ke dalam bahasa mesin komputer tertentu. Setiap komputer dapat memiliki perangkat lunak untuk mengimplementasikannya ke dalam JVM. Salah satu keunggulan Java adalah bahasa program yang berbasis Object Oriented Programming (OOP). OOP adalah metodologi pemrograman yang terdiri dari objek yang saling berinteraksi satu sama lain melalui tindakan (Walter Savitch, 2012).

28 Android Studio

Android Studio merupakan sebuah IDE untuk mengembangkan aplikasi Android. Android Studio dapat di download di situs resmi Andoid ). Perbedaan antara Android Studio dan Eclipse adalah pada Android Studio terdapat Gradle untuk manajemen projeknya. Gradle merupakan fitur bulid automation. File Gradle ini berisi library yang digunakan oleh pengembang aplikasi, versi aplikasi, signed key properties ataupun lokasi repository. Android Studio merupakan official IDE (integrated development environment) untuk membangun aplikasi Android berdasarkan IntelliJ IDEA. Dengan menggunakan Android Studio, setiap developer dapat dengan mudah mengatur layout atau tampilan sesuai dengan yang di harapkan dengan menggunakan metode drag and drop.

29 UML

Menurut Whitten dan Bentley (2007), Unified Modelling Language atau sering disebut dengan UML merupakan sekumpulan aturan yang digunakan untuk menspesifikasikan dan mendenskripsikan sebuah sistem software yang berhubungan dengan objek. UML merupakan standar yang biasa digunakan oleh dunia yang dibuat oleh Object Management Group (OMG), sebuah badan yang bertugas mengeluarkan standar-standar teknologi object oriented dan software component. Menurut Whitten dan Bentley (2007), UML 2.0 dapat digolongkan menjadi tiga jenis diagram, yaitu

Tabel 2.1 Jenis-jenis UML diagram

(Sumber: System Analysis and Design Method - Whitten dan Bentley, 2007)

|Requirement |Logical Design |Physical Design |

|Analysis Phase |Phase |Phase |

|Use-case Diagram |Activity Diagram |Sequence Diagram |

| |System Sequence Diagram |Class Diagram |

| |Class Diagram |State Machine Diagram |

| | |Communication Diagram |

| | |Component Diagram |

| | |Deployment Diagram |

Use Case Diagram

Use case diagram adalah sebuah diagram yang menggambarkan berbagai peran pengguna dan bagaimana sebuah sistem akan digunakan oleh pengguna tersebut. (Satzinger, 2012, pp.78). Use case merupakan diagram UML utama yang dapat digunakan sebagai tolak ukur untuk diagram-diagram lainnya seperti sequence diagram dan activity diagram. Dalam Use Case Diagram, fungsi-fungsi dari sistem dideskripsikan menggunakan komponen bernama use case. Actor merupakan user yang akan melakukan interaksi dengan sistem, sedangkan jenis-jenis interaksi yang dilakukan oleh Actor terhadap use case disebut relationship. (Whitten dan Bentley, 2007, pp.247-248). Hubungan yang terdapat pada Use Case diagram menurut Whitten dan Bentley (2007) yaitu:

Association

Association merupakan hubungan terjadi antara aktor dan use case. Association dengan tanda panah dari aktor menuju use case menunjukan bahwa aktor berhubungan dengan use case, dimana use case merupakan penerima. Sedangkan Association tanpa tanda panah menunjukan interaksi antara use case dan aktor dengan aktor sebagai penerima.

[pic]

Gambar 2.16 Contoh penggunaan Association Use case

(Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007, pp.248)

Extends

Extends merupakan penggambaran use case yang rumit sehingga menjadi lebih mudah dan sederhana dengan membaginya menjadi beberapa tahap.

[pic]

Gambar 2.17 Contoh penggunaan Extends pada use case

(Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007, pp.249)

Uses (Includes) 

Uses (Includes) berfungsi untuk generalisasi use case yang dapat mengurangi redundansi. Beberapa langkah yang mirip atau sama dalam sebuah use case diagram disebut juga dengan use case abstrak.

[pic]

Gambar 2.18 Contoh Penggunaan include pada Use case

(Sumber: System Analysis and Design Method - Whitten dan Bentley, 2007, pp.249)

Depends On

Depends On merupakan gambaran adanya ketergantungan antara satu use case dengan use case lainnya sehingga sebuah aktivitas hanya dapat dilakukan apabila aktivitas sebelumnya sudah dijalankan.

[pic]

Gambar 2.19 Contoh penggunaan Depends On pada Use Case

(Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007, pp.250)

Inheritance

Inheritance digunakan ketika terdapat dua atau lebih actor yang menunjuk atau melakukan use case yang sama. Inheritance berguna untuk menciptakan sebuah abstract actor yang dapat melakukan use case tersebut.

[pic]

Gambar 2.20 Contoh penggunaan Inheritance pada Use Case

(Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007, pp. 250)

[pic]

Gambar 2.21 Contoh Use Case Diagram

(Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007, pp. 256)

Use Case Narrative

Use case narrative adalah dokumentasi secara high-level (tingkat tinggi atau secara luas) untuk memahami kejadian dan tingkatan pada sistem (Whitten dan Bentley, 2007, pp.256).

Setiap use case harus diperluas untuk memasukkan aliran khusus dari kejadian dan aliran alternatifnya. Aliran khusus use case dari kejadian adalah deskripsi langkah demi langkah yang dimulai dari seorang aktor yang memulai proses dan berlanjut sampai akhir kejadian. Aliran alternative mendokumentasi jalur bercabang dari use case (Whitten dan Bentley, 2007, pp.258).

Class Diagram

Class diagram merupakan diagram yang menunjukkan gambaran grafis dari struktur objek, yang menunjukkan kelas objek yang ada pada suatu sistem dan hubungan antar kelas-kelas objek tersebut (Whitten dan Bentley, 2007). Setiap class atau objek pada class diagram dibagi menjadi 3 bagian, yaitu:

1. Nama kelas

Nama kelas harus bersifat unik sehingga dapat di bedakan antara kelas yang satu dengan kelas yang lainnya.

2. Atribut kelas

Berisi atribut-atribut yang terdapat dalam class tersebut.

3. Operasi kelas

Berisi method-method yang di gunakan atau di jalankan di class tersebut.

Berikut merupakan jenis hubungan yang terdapat pada class diagram menurut Whitten dan Bentley (2007):

1. Visibillity

Pada class diagram terdapat visibility yang digunakan untuk menentukan suatu kelas dapat diakses oleh kelas lainnya atau tidak. Dalam visibility memiliki 3 (tiga) tingkatan, yaitu (Whitten dan Bentley, 2007):

Tabel 2.2 Tabel Visibility

|Visibility |Simbol |Deskripsi |

|Private |+ |Atribut atau method tersebut tidak dapat di |

| | |panggil di Class lainnya, hanya dapat di panggil |

| | |oleh Class itu sendiri. |

|Public |- |Atribut atau method tersebut dapat di panggil di |

| | |semua Class |

|Protected |# |Atribut atau method tersebut hanya dapat di |

| | |panggil oleh Class yang bersangkutan atau Class |

| | |anaknya |

2. Multiplicity

Multiplicity merupakan jumlah banyaknya objek sebuah kelas yang berelasi dengan sebuah objek lain pada kelas lain yang berasosiasi dengan kelas tersebut (Whitten dan Bentley, 2007).

Tabel 2.3 Tabel Multiplicity

|Multiplicity |Deskripsi |

|0..1 |Nol atau satu |

|1 |Hanya satu |

|0..* |Nol atau lebih |

|1..* |Satu atau lebih |

|a..z |Antara a sampai z |

3. Generalisasi

Generalisasi merupakan suatu teknik dimana sebuah kelas (subclass) dapat mewarisi atribut-atribut dan operasi- operasi dari kelas lainnya (superclass) dimana superclass bersifat lebih umum daripada subclass (Whitten dan Bentley, 2007). Generalization dan Specialization adalah hubungan antar class dimana terdapat super class, yaitu sebuah class yang merupakan hasil pengelompokan class-class berdasarkan attribute dan behavior yang sama (generalization), dan sub class, yaitu class-class yang mendapatkan attribute dan behavior turunan dari sebuah super classnamun dapat memiliki attribute dan behavior- nya sendiri (specialization).

[pic]

Gambar 2.22 Contoh Generalization Class Diagram

(Sumber: System Analysis and Design Method - Whitten dan Bentley, 2007)

[pic]

Gambar 2.23 Contoh Generalization/Specialization Class Diagram

(Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007, pp.375)

4. Association

Association menunjukan adanya hubungan antar dua class atau lebih dalam sebuah class diagram. Association juga menerangkan hubungan antar class yang meliputi multiplicity. Dalam association terdapat dua jenis hubungan, yaitu:

a. Bi-directional

Kedua class yang saling berhubungan, memiliki peran dalam hubungan tersebut. Hubungan ini digambarkan dengan garis lurus tanpa tanda panah.

b. Uni-directional

Kedua class yang saling terhubung, dan hanya salah satu saja yang memiliki peran dalam hubungan tersebut. Hubungan ini digambarkan menggunakan garis lurus dengan tanda panah.

[pic]

Gambar 2.24 Contoh Association Bi-Directional dan Uni-Directional Class Diagram

(Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007)

5. Agregration dan Composition

Agregration menunjukan hubungan antar satu class adalah bagian dari class lainya. Agregasi tidak termasuk dalam inheritance. Misal, class A adalah bagian dari class B, maka class B bukanlah bagian dari class A.

[pic]

Gambar 2.25 Contoh Agregation Class Diagram

(Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007)

Ada kemiripan antar composition dan agregation, tetapi composition memiliki keterkaitan yang lebih erat. Misal, jika class A adalah bagian dari class B, jika class B tidak terbentuk, maka class A tidak akan ada.

[pic]

Gambar 2.26 Contoh Composition Class Diagram

(Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007)

[pic]

Gambar 2.27 Contoh Class Diagram

(Sumber: System Analysis and Design Method – Whitten and Bentley, 2007, pp. 406)

Activity Diagram

Activity diagram merupakan diagram yang berisikan proses alur dari aktivitas–aktivitas yang terdapat dalam sistem, biasa digunakan untuk merancang spesifikasi berdasarkan use case yang telah di buat. Activity diagram juga dapat menggambarkan aktivitas pararel yang mungkin dapat terjadi pada sekali jalan. Activity diagram dapat dibagi menjadi beberapa object swimlane untuk menggambarkan objek mana yang bertanggung jawab untuk aktivitas tertentu. Berikut adalah komponen-komponen yang terdapat dalam Activity Diagram:

Tabel 2.4 Komponen-komponen Activity Diagram

|Nama |Simbol |Deskripsi |

|Initial Mode |[pic] |Awal dari semua kegiatan/ activity dilakukan |

|Activity | |Kegiatan - kegiatan yang di lakukan. |

| |[pic] | |

|Flow |[pic] |Menunjukan arah atau jalur dari satu |

| | |aktivitas ke aktivitas lainya |

|Decision dan Merge |[pic] |Decision merupakan pilihan yang dapat |

| | |dilakukan oleh user. Customer hanya dapat |

| | |melakukan salah satunya saja seperti pilihan |

| | |antara iya atau tidak. Merge merupakan |

| | |penggabungan aktivitas yang dipisahkan oleh |

| | |decision. |

|Nama |Simbol |Deskripsi |

|Fork dan Join |dan |Fork menggambarkan bahwa adanya 2 aktivitas|

| |[pic] |yang akan berjalan. Join menggambarkan |

| | |berakhirnya proses yang telah berjalan |

| | |bersamaan sebelumnya. |

|Activity Final |[pic] |Akhir dari setiap activity di lakukan. |

| | |Setiap activity diagram dapat memiliki |

| | |lebih dari satu finish state. |

|Swimlane | |Pemisah antara Customer yang menggunakan |

| | |pada setiap aktivitas yang dijalankan |

[pic]

Gambar 2.28 Contoh Activity Diagram

(Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007,pp.393)

Sequence Diagram

Sequence diagram adalah salah satu UML diagram yang menggambarkan model logika dari sebuah use case dengan menggambarkan interaksi pesan antar objek dalam suatu urutan waktu (Whitten dan Bentley, 2007).

Tabel 2.5 Komponen-komponen Sequence Diagram

|Nama |Simbol |Deskripsi |

| |[pic] |Customer yang menggunakan sistem |

|Actor | | |

|Interface Class | |Suatu notasi yang berfungsi |

| | |untuk memastikan class interface |

| | |code, agar tidak terjadi kebingungan atas |

| | |jenis class |

|Controller Class | |Setiap use case memiliki satu atau |

| | |lebih controller, digambarkan sama seperti|

| | |notasi interface class |

|Message |[pic] |Menyampaikan pesan dari setiap method. |

| |[pic] |Simbol yang merepresentasikan class |

|Object | |pada class diagram |

|Entity Classes |: |Menambahkan kotak ke |

| | |dalam setiap entitas yang |

| | |diperlukan untuk kolaborasi dalam urutan. |

|Activity Bars |[pic] |Menunjukan berapa lamanya waktu objek |

| | |digunakan. |

|Nama |Simbol |Deskripsi |

|Return Message |[pic] |Hasil dari masukan yang |

| | |dimasukan oleh objek |

|Frame |[pic] |Menunjukkan area pada diagram |

|Self-call |[pic] |Objek yang memanggil |

| | |method-nya sendiri. |

[pic]

Gambar 2.29 Contoh Sequence Diagram

(Sumber: System Analysis and Design Method - Whitten dan Bentley, 200, pp.659)

30 Entity Relationship Diagram (ERD)

ERD menurut Whitten dan Bentley (2007, pp.271) adalah suatu model data yang memanfaatkan beberapa notasi untuk menggambarkan data dari entitas dan hubungan yang dideskripsikan oleh data tersebut. Terdapat 4 komponen ERD, yaitu:

a. Entities

Entitas (entities) adalah model individu dalam basis data yang mewakili sesuatu yang nyata. Misalnya, pelanggan, pengguna, pekerja dan lain-lain. Himpunan pelanggan merupakan himpunan entitas.

b. Attributes

Atribut (attributes) adalah karakteristik atau properti yang mendeskripsikan sebuah entitas. Misalnya, pelanggan mempunyai atribut: id_pelanggan, nama_pelanggan, alamat_pelanggan.

c. Relationships

Relasi menunjukkan hubungan antara himpunan entitas yang satu dengan himpunan entitas yang lain.

d. Key

Key merupakan sebuah atribut yang unik, tidak ada 2 entitas yang memiliki key yang sama dalam sebuah himpunan entitas.

31 Black Box Testing

Menurut Pressman (2010, pp.484), black box testing adalah suatu pengujian yang ditujukan pada tampilan perangkat lunak. Black box testing memeriksa beberapa aspek penting dari sistem, seperti aspek yang dilihat hanya pada fungsionalitas dan output, lebih fokus pada hasil dan tanpa melihat proses yang terjadi di dalam sistem. Menurut Pressman (2010, pp.495), tujuan utama dari black box testing adalah mencari kesalahan atau error dengan kategori sebagai berikut:

1. Mencari fungsi yang salah atau kurang.

2. Mencari kesalahan pada tampilan.

3. Mencari kesalahan pada struktur data atau akses database.

4. Mencari kesalahan pada behavior atau performa.

5. Mencari kesalahan pada inisialisasi (awal) dan akhiran.

32 Futsal

Menurut (Tenang, 2008, pp.15), futsal adalah singkatan dari fútbol (sepak bola) dan sala (ruangan) dari bahasa Spanyol atau futebol (Portugal/Brasil) dan salon (Prancis). Olahraga ini membentuk seorang pemain agar selalu siap menerima dan mengumpan bola dengan cepat dalam tekanan pemain lawan. Dengan lapangan yang sempit, permainan ini menuntut teknik penguasaan bola tinggi, kerja sama antar pemain dan kekompakan tim. Asal muasal futsal muncul pada 1930 di Montevideo, Uruguay dan diperkenalkan oleh seorang pelatih sepak bola bernama Juan Carlos Ceriani. Awalnya, Ceriani hanya ingin memindahkan latihan ke dalam ruangan karena kecewa dengan kondisi lapangan yang licin setelah diguyur hujan. Ternyata, latihan di dalam ruangan sangat efektif. Dia lantas mencetuskan permainan sepak bola dalam ruangan dengan lima lawan lima pemain. Hal ini ternyata mendapat sambutan positif bahkan digandrungi di hampir seluruh negeri di Amerika Selatan. Futsal ternyata sangat efektif menumbuh kembangkan kemampuan pemain pemula dalam mengasah keterampilan bermain bola di lapangan rumput. Dengan asumsi untuk meningkatkan keterampilan bermain sepak bola, futsal berkembang pesat di Brasil dan terus menyebar ke seluruh dunia. Bahkan menembus ke Eropa, Amerika Serikat, Afrika, Asia dan Oseania.

33 Bootstrap

Menurut Spurlock (2013, pp.1), Bootstrap adalah suatu produk open source yang diluncurkan pada bulan Agustus 2011 dari Mark Otto dan Jacob Thornton yang keduanya saat itu bekerja pada sebuah perusahaan media sosial, yaitu Twitter. Bootstrap ini merupakan suatu kerangka kerja front end untuk merancang sebuah web yang responsif, yang bisa menyesuaikan lebar tampilannya sesuai dengan media yang digunakan, baik menggunakan ponsel, laptop, maupun PC desktop. Selain itu Bootstrap juga memiliki fitur 12 column grid system, maksudnya adalah Bootstrap akan membagi layar menjadi 12 bagian sehingga pembagian kolom tampilan web akan menjadi lebih mudah. (Spurlock, 2013, pp.3)

34 Dependency Injection (DI)

Menurut Mark Aeeman (2012, pp. 4) Dependency Injection adalah rangkaian prinsip dan pola desain perangkat lunak yang memungkinkan kita untuk mengembangkan loosely coupled code.

35 Ninject

Menurut Ninject, Org. (2015), Ninject merupakan framework .NET yang berfungsi sebagai Dependency Injector yang bertujuan untuk memberikan kemudahan kepada developer apabila ingin melakukan perubahan code, karena Ninject berfokus kepada kesederhanaan dan kemudahaan penggunaan.

-----------------------

Gambar 2.12 Arstiektur MVC

(Mihai Curteanu, 2010, pp.1)

@Override

public void onMessageReceived(String from, Bundle data) {

    String message = data.getString("message");

    Log.d(TAG, "From: " + from);

    Log.d(TAG, "Message: " + message);

    if (from.startsWith("/topics/")) {

        // message received from some topic.

    } else {

        // normal downstream message.

    }

    // ...

}

MyGcmListenerService.java

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download