BAB 2 LANDASAN TEORI
2.1
Android Menurut Lee (2012, pp. 2), Android adalah sistem operasi mobile yang didasari
oleh
Linux
yang
telah
dimodifikasi.
Awalnya
Android
dikembangkan oleh perusahaan startup yang bernama Android, Inc. Pada tahun 2005, sebagai awal memasuki dunia mobile, Google membeli Android dan mengambil alih pengembangan. Google menginginkan Android menjadi terbuka dan bebas. Pengembangan Android yang sederhana membuat Android sangat interaktif. Untuk mengembangkan Android dibentuklah Open Handset Aliance yang terdiri dari 34 perusahaan peranti keras, peranti lunak, dan telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm, TMobile, dan Nvidia. Terdapat dua jenis distributor sistem operasi Android. Pertama, Google Mail Service yang mendapat dukungan penuh dari Google. Kemudian yang kedua adalah Open Handset Distribution (OHD) yang distribusinya tanpa dukungan langsung Google. Keuntungan dari Android adalah memberikan kemudahan pada pengembangan Android. Developer hanya perlu mengembangkan aplikasi pada platform Android, dan aplikasi tersebut akan dapat berjalan pada berbagai perangkat, yang tentunya mempunyai sistem operasi Android. Selain itu Android merupakan platform yang lengkap, baik dari sitem operasi, aplikasi serta tools untuk mengembangkan aplikasi. 2.1.1 Fitur Pada Android Android merupakan sistem operasi open source dan bebas untuk di-customize. Oleh karena itu, tidak ada konfigurasi standar untuk software dan hardware pada perangkat berbasis Android, namun, Android mendukung beberapa fitur dasar yaitu: (Lee, 2012, pp. 3) a. Storage – menggunakan SQLite, karena SQLite merupakan database yang ringan untuk penyimpanan data. 7
8
b. Connectivy – mendukung GSM/EDGE, IDEN, CDMA, EVDO, UMTS, Bluetooth, WiFi, LTE, WiMAX c. Messaging – mendukung SMS dan MMS d. Web Browser - berdasarkan pada open source webkit, bersama dengan chrome's v8 Javascript engine e. Media Support - mendukung beberapa media seperti AAC, HE-AAC, MPEG-4 SP, AMR, AMR-WB, WAV, MP3, JPG, PNG f. Hardware Support - accelerometer sensor, kamera, digital kompas, proximity sensor, GPS g. Multi-touch - mendukung multi-touch screens h. Multi-tasking – mendukung aplikasi multi-tasking i. Flash support – Android 2.3 mendukung flash 10.1 j. Tethering - mendukung untuk sharing internet. 2.1.2 Versi Android Dari awal dimunculkan Android terdapat perubahan yang terus menerus dilakukan. Hingga saat ini versi Android terbaru bernama Marshmallow. Berikut versi Android dari awal hingga saat ini: Tabel 2.1 Tabel Versi Android (Sumber : www.Android.com) Versi
Nama
Android 6.0
Marshmallow
Android 5.0
Lollipop
Andorid 4.4
KitKat
Android 4.1
Jelly Bean
Android 4.0
Ice Cream Sandwich
Android 3.0
Honeycomb
9
Android 2.3
Gingerbread
Android 2.2
Froyo
Android 2.1
Eclair
Android 1.6
Donut
2.1.3 Arsitektur Android Menurut Lee (2012, pp. 4), Android terbagi menjadi lima bagian dari empat lapisan utama yaitu : a. Linux Kernel Linux kernel merupakan dasar dari Android. Lapisan ini semua low level device driver untuk berbagai komponen perangkat keras dari perangkat Android. b. Libraries Lapisan
ini
mengandung
seluruh
kode
yang
menyediakan fitur utama dari sistem operasi Android. Sebagai contoh, SQLite library menyediakan dukungan database sehingga aplikasi dapat menggunakannya sebagai tempat penyimpaanan. c. Android Runtime Android Runtime terdapat pada lapisan yang sama dengan libraries, yang menyediakan kumpulan libraries utama yang dapat digunakan pengembang untuk membuat aplikasi pada Android menggunakan bahasa pemrograman Java. Android Runtime juga termasuk Dalvil virtual machine, yang memungkinkan aplikasi Android berjalan dengan proses tersendiri. d. Application Framework Memperlihatkan berbagai kemampuan dari sistem operasi Android untuk pengembang aplikasi Android sehingga mereka dapat menggunakannya dalam membuat aplikasi.
10
e. Applications Applications memungkinkan
merupakan para
lapisan
pengembang
paling untuk
atas,
yang
menemukan
aplikasi bawaan yang terdapat pada perangkat Android. Contohnya saja adalah Phone, Contacts, Browser, dan lainnya. Selain itu juga aplikasi yang dapat di unduh dan diinstall dari Android Market. Setiap aplikasi yang dibuat terdapat pada lapisan ini.
Gambar 2.1 Arsitektur Android 2.2
Android Studio Android Studio adalah Integrated Development Environment (IDE) untuk mengembangkan aplikasi Android. Android Studio berbasis pada “IntelliJ IDEA” Java-IDE dari Jetbrains dan diperkenalkan oleh Google. Android Studio ini diumumkan pada Mei 2013. (Hohensee, 2014, pp. 1) Android Studio direncanakan akan menggantikan Eclipse sebagai IDE resmi untuk mengembangkan aplikasi pada platform Android. Android Studio memiliki beberapa fitur baru dibandingkan dengan Eclipse, diantaranya adalah
11
a. Menggunakan Gradle-based build sistem yang fleksibel. b. Bisa melakukan build pada beberapa APK c. Layout editor yang lebih bagus. d. Built-in support untuk Google Cloud Platform, sehingga mudah untuk integrasi dengan Google Cloud Messaging dan App Engine. e. Import library langsung dari Maven repository. 2.3
Android Software Development Kit ( SDK) Android SDK menurut Safaat (2012, pp. 5) merupakan tools API yang digunakan dalam mengembangkan aplikasi pada platform Android yang menggunakan bahasa pemrograman Java. Menurut Meier (2012, pp. 14), Android SDK sudah termasuk tools yang dibutuhkan dalam mengembangkan aplikasi, melakukan pengujian, dan melakukan debug seperti a. Android API Android SDK merupakan inti dari Android API library yang menyediakan para pengembang untuk mengakses kumpulan library pada Android. Libraries yang digunakan oleh Google merupakan libraries yang sama yang digunakan untuk membuat native application. b. Development Tools Pada SDK sudah termasuk beberapa tools yang digunakan untuk melakukan compile dan debug sehingga aplikasi dapat dijalankan pada perangkat Android. c. Android Virtual Device Manager dan Emulator Pada SDK sudah termasuk emulator untuk mensimulasikan aplikasi yang dikembangkan sebelum di-install pada perangkat. d. Full Documentation Android SDK menyediakan informasi dari setiap package dan cara menggunakannya dalam bentuk dokumentasi di dalam source code. Selain itu, terdapat juga Android reference documentation dan developer
guide
yang
menjelaskan
cara
memulai
dalam
mengembangkan aplikasi Android, menyertakan best practices, dan menyediakan pembahasan framework secara mendalam.
12
e. Sample Code Android SDK menyediakan sampel program yang menunjukan beberapa fungsi yang bisa dilakukan pada Android dan cara mengggunakan fitur pada API. f. Online Support Android memiliki komunitas untuk para pengembang aplikasi. Google Groups merupakan salah satu forum dari kumpulan para pengembang
aplikasi
Android.
Selain
itu,
Stack
Overflow
merupakan tempat di mana para pengembang aplikasi mendapatkan jawaban khususnya bagi programmer pemula. 2.4
Android Development Tool (ADT) Android Development Tool (ADT) adalah plug-in yang digunakan dalam mengembangkan aplikasi Android. ADT memberikan beberapa akses untuk fitur-fitur yang membantu developer dan memberikan akses GUI untuk command
line
SDK
tools.
Menurut
Meier
(2012,
pp.24),
ADT
mengintegrasikan fitur-fitur berikut: a. Android Project Wizard yang digunakan untuk menyederhanakan dalam membuat proyek baru dan termasuk template aplikasi dasar. b. Forms-based manifest, layout, dan resources editor untuk membantu dalam membuat, mengubah, dan memvalidasi XML resource. c. Proses build terotomatisasi untuk proyek Android. d. Android
Virtual
Device
Manager,
yang
memudahkan
para
pengembang aplikasi dalam membuat dan mengatur virtual devices yang dijalankan
dengan sistem operasi Android dan dengan
sekumpulan perangkat keras dan memory contraints. e. Android Emulator, termasuk mengontrol tampilan emulator dan mengatur koneksi jaringan, dan kemampuan untuk mesimulasikan panggilan telepon dan pesan singkat. f. Dalvik Debug Monitoring Service (DDMS), yang termasuk port forwarding, stack, heap, dan thread viewing, detail proses, dan screen capture facilities.
13
g. Akses ke filesystem dari perangkat atau emulator, navigasi ke tree folder dan pengiriman data h. Runtime debugging, memudahkan dalam mengatur breakpoints dan melihat panggilan stacks. i. Seluruh Android atau Dalvik log dan output konsole. 2.5
Java Menurut Liang (2013, pp. 10), Java merupakan bahasa pemrograman yang dikembangkan oleh James Gosling berserta tim di Sun Microsystem pada tahun 1991. Awalnya Java disebut dengan “Oak”. Namun pada tahun 1995, nama “Oak” diganti menjadi Java. Bahasa pemrograman Java dirancang untuk menjadi bahasa pemrograman multi-platform yang cukup aman dan tangguh. Java memiliki beberapa karakeristik yaitu simpel, berorientasi object, high performance, multithreaded, dinamis, intepreted, serta portabel. Pada mulanya Java biasa digunakan untuk mengembangkan aplikasi berbasis desktop yang lebih dikenal dengan nama J2SE. Kemudian muncul dua versi berikutnya yaitu J2EE yang diarahkan untuk mengembangkan aplikasi skala besar, aplikasi berbasis network, dan aplikasi berbasis web; dan J2ME yang diarahkan untuk mengembangkan aplikasi pada device yang kecil dan terbatas memorinya, misalnya pada perangkat Blackberry dan perangkat berbasis Symbian. Pada tahun 2007, J2ME dijadikan basis untuk mengembangkan sistem operasi Android oleh Google. Pada tahun 2010, perusahaan Oracle membeli Sun Microsystem dan menjadi perusahaan penyedia layanan untuk bahasa pemrograman Java. Dalam awal masa kepemilikannya, Oracle mengajukan tuntutan pada Google atas penggunaan teknologi J2ME pada platform Android, namun mereka dinyatakan kalah di pengadilan. Pada tahun 2011, Oracle merilis Java 7 yang perkembangannya sangat signifikan dari Java versi sebelumnya yaitu Java 6.
2.6
XML XML merupakan singkatan dari eXtensible Markup Language. Teknologi XML merupakan turunan dari SGML yang telah dikembangkan pada awal 80-an dan telah banyak digunakan pada dokumentasi teknis proyek
14
berskala besar. XML dikembangkan mulai tahun 1996 dan dua tahun kemudian W3C mengumumkan versi terbaru sebagai suatu rekomendasi pada tanggal 10 Februari 1998. (Burd, 2014, pp. 17) Bahasa pemrograman Java digunakan untuk menentukan apa yang akan dilakukan aplikasi, sedangkan XML digunakan untuk mendeskripsikan apa yang seharusnya. Kegunaan XML pada Android adalah untuk mendiskripsikan aplikasi, maksudnya adalah untuk mendiskripsikan layout pada layar, selain itu dengan XML suatu aplikasi dapat diatur untuk mempunyai lebih dari satu jenis bahasa, dan kegunaan lainnya mengenai data. Kegunaan kedua adalah untuk mendiskripsikan aplikasi itu sendiri. Setiap aplikasi Android pasti mempunyai file
AndroidManifest.xml,
yang
merupakan
suatu
dokumen
untuk
mendiskripsikan fitur pada aplikasi.
Gambar 2.2 Contoh XML Pada Android
2.7
JSON Menurut Smith (2015, pp. 1), JSON atau Javascript Object Notation adalah format pertukaran data yang ringan. JSON merupakan bagian dari bahasa pemrograman Javascript. Walaupun JSON merupakan bagian dari Javascript, tetapi JSON merupakan suatu format untuk pertukaran data. Selain itu, JSON juga tidak bergantung pada suatu bahasa pemrograman. JSON dikembangkan oleh Douglas Crockford. Crockford mendokumentasikan JSON pada tahun 2001, dan berikutnya JSON dapat digunakan sebagai alternatif pengganti XML. Format ini memiliki kelebihan diantaranya mudah dibaca dan ditulis oleh manusia, berbasis teks, ringan, dan mudah untuk pertukaran data
15
antara server dan klien. JSON terdiri dari dua struktur yaitu kumpulan pasangan nama atau nilai dan daftar nilai yang terurutkan.
Gambar 2.3 Contoh JSON
2.8
PHP Hypertext Preprocessor (PHP) adalah sebuah bahasa yang didesain untuk perancangan web yang ditemukan oleh Rasmus Lerdrof. PHP merupakan server-side scripting dimana script tersebut akan langsung dieksekusi di server. PHP dapat langsung berinteraksi dengan dokumen HTML dan juga berkomunikasi dengan database. (Janet Valade, 2004, pp. 11).
2.9
Client Side dan Server Side Client adalah komputer yang me-request atau meminta layanan ke komputer server. Serdangkan server adalah komputer yang melayani permintaan dari komputer client. Server side scripting yaitu script yang pengolahannya pada sisi server kemudian hasil pengolahannya dikirimkan ke komputer client. Setiap kali web dikunjungi, server akan mengirimkan data-data yang diminta dari database yang kemudian ditampilkan. Server side script biasanya terdapat pada web dinamis sehingga konten dapat berubah tanpa mengubah script yang ada Client side script adalah script yang diterjemahkan disisi client dimana script tersebut akan langsung dikirimkan ke web browser client tanpa harus diterjemahkan oleh web server. Aplikasi pada Android merupakan salah satu
16
contoh client side yang banyak digunakan. Aplikasi berbasis Android sudah menjadi cara yang cukup interaktif pada sisi client dengan menggunakan bahasa pemrograman Java. (Febriansyah, 2014) 2.10 Rekayasa Perangkat Lunak Menurut Pressman (2010, pp. 13), rekayasa perangkat lunak adalah pembuatan dan penggunaan prinsip perancangan teknik dalam pembuatan perangkat lunak yang ekonomis yang handal dan bekerja dengan efisien pada mesin yang sesungguhnya. Menurut Pressman (2010, pp. 7-8), terdapat tujuh kategori perangkat lunak yaitu: a. System software Sebuah kumpulan dari program yang dibuat untuk memberikan layanan pada program lainnya. Beberapa sistem perangkat lunak (seperti: compilers, editors dan file management utilities) memiliki proses yang kompleks, tetapi tetap memiliki struktur informasi. b. Application software Program stand-alone yang dapat menyelesaikan kebutuhan bisnis yang spesifik. Aplikasi ini memproses data bisnis atau data teknis sebagai landasan dalam pengambilan keputusan. Aplikasi ini digunakan untuk mengontrol fungsi bisnis secara real-time. c. Engineering/scientific software Telah dikarakteristikkan sebagai “number crunching”. Aplikasi berkisar dari astronomi sampai vulkanologi, dari analisis tegangan otomoti sampai dinamika orbit pesawat ruang angkasa, dan dari biologi molekuler sampai manufaktur otomatis. Computer-aided design, system simulation, dan beberapa interactive applications telah memulai menggunakan teknologi real-time. d. Embedded Software Perangkat lunak yang terdapat pada sebuah produk atau sistem dan digunakan untuk mengimplementasi, mengendalikan fitur dan fungsi bagi pengguna dan sistem. e. Product-line software
17
Perangkat lunak yang dirancang untuk menyediakan kemampuan spesifik sehingga dapat digunakan oleh banyak pengguna. Contohnya adalah word processing, spreadsheets, computer graphic, multimedia, entertainment, database management dan personal and business financial aplications. f. Web aplication Biasa disebut “WebApps”, WebApps bisa berupa kumpulan file hypertext yang menampilkan informasi menggunakan teks dan grafik yang terbatas. g. Artificial intelligence software Dibuat menggunakan algoritma non-numerical untuk memecahkan masalah yang kompleks yang tidak dapat diperhitungkan atau dianalisis secara langsung. Contohnya adalah expert systems, pattern recognition, artificial neural networks, theorem proving ,dan game playing. 2.11 Unified Modeling Language Menurut Whitten & Bentley (2007, pp. 371), UML (Unified Modeling Language)
merupakan
bahasa
standar
yang
digunakan
untuk
memvisualisasikan, menspesifikasikan, membangun, dan mendokumentasikan object - object dari sistem piranti lunak dengan bentuk permodelan yang sangat membantu dalam proses pembangunan struktur dan pengembangan suatu sistem. Standar UML yang digunakan pada saat ini yaitu UML 2.0. 2.11.1 Use Case Diagram Menurut Whitten & Bentley (2007, pp. 246), Use case diagram adalah suatu alat yang digunakan dalam permodelan use case untuk mengidentifikasi dan mendeskripsikan fungsi dari sebuah sistem. Use case diagram menggambarkan siapa yang akan menggunakan sistem dan bagaimana cara user untuk dapat berinteraksi dengan sistem tersebut.
18
Gambar 2.4 Contoh Use Case Diagram
Elemen-elemen yang terdapat dalam use case diagram: a. Use case Use case diwakili oleh bentuk elips dengan nama use case yang terletak didalam elips itu sendiri. Sebuah use case akan merepresentasikan tujuan dari sistem.
Gambar 2.5 Simbol Use Case b. Actor Aktor
diwakili
oleh
bentuk
stick
figure
yang
merepresentasikan pengguna yang akan berinteraksi dengan
19
sistem. Aktor yang dimaksud tidak selalu mewakili manusia, namun dapat juga mewakili sebuah organisasi.
Gambar 2.6 Simbol Aktor
c. Use Case Relationship Relationship diwakili oleh sebuah garis antara dua simbol pada use case diagram. Pengertian dari relationship dapat berbeda tergantung oleh garis yang digambarkan dan jenis simbol yang terhubung.
Gambar 2.7 Simbol Use Case Relationship d. The Boundary The boundary adalah daerah yang membatasi antara use case dengan aktor dan diwakili oleh bentuk persegi panjang. The boundary digunakan untuk menggambarkan cakupan dari sistem.
20
Gambar 2.8 Simbol The Boundary
2.11.2 Use Case Narrative Menurut Whitten & Bentley (2007, pp. 257), Use Case Narrative adalah sebuah deskripsi dari kejadian bisnis dan bagaimana user akan berinteraksi dengan sistem untuk menyelesaikan sebuah tugas. Use case narrative memiliki beberapa bagian yaitu: 1. Use case name Merupakan nama yang merepresentasikan tujuan yang ingin dicapai dari use case tersebut. 2. Actor Aktor menyatakan stakeholder yang melakukan interaksi dengan sistem dan berperan penting dalam melaksanakan use case. 3. Description Merupakan penjelasan yang menggambarkan tujuan dari use case dan aktivitasnya. 4. Precondition Merupakan suatu kondisi tertentu yang harus dicapai sebelum menjalankan suatu use case. 5. Flow of events Merupakan langkah-langkah yang dilakukan oleh actor dalam menjalankan use case. 6. Postcondition Merupakan kejadian pada sistem setelah use case selesai dijalankan.
21
2.11.3 Activity Diagram Activity
diagram
adalah
diagram
yang
digunakan
untuk
menggambarkan alur proses bisnis secara grafis, langkah-langkah dari use case, ataupun logika dari sifat objek. (Whitten & Bentley, 2007, pp. 390)
Gambar 2.9 Contoh Activity Diagram
22
Activity diagram memiliki beberapa notasi, yaitu: a. Initial node Initial node digambarkan dengan titik padat yang merupakan awal dari sebuah proses.
Gambar 2.10 Simbol Initial Node
b. Actions Actions digambarkan dengan segi empat dengan sudut tumpul yang mendefinisikan urutan aktivitas yang akan dilakukan.
Gambar 2.11 Simbol Actions
c. Flow Flow digambarkan dengan sebuah panah yang menunjukkan jalur dari satu aktivas ke aktivitas lainnya.
Gambar 2.12 Simbol Flow
d. Decision Decision digambarkan dengan bentuk belah ketupat yang memiliki satu arus yang masuk dan dua atau lebih arus yang keluar. Arus keluar ditandai untuk menunjukkan suatu kondisi tertentu.
23
Gambar 2.13 Simbol Decision
e. Merge Merge digambarkan dengan bentuk belah ketupat dengan dua atau lebih arus masuk dan satu arus keluar. Merge menggabungkan dua atau lebih arus yang sebelumnya dipisahkan oleh decision.
Gambar 2.14 Simbol Merge
f. Fork Fork digambarkan dengan bar berwarna hitam dengan satu arus masuk dan dua atau lebih arus keluar. Tindakan pada arus paralel di bawah fork dapat terjadi dengan urutan apapun atau secara bersamaaan.
Gambar 2.15 Simbol Fork
24
g. Join Join digambarkan dengan bar berwarna hitam dengan dua atau lebih arus masuk dan satu arus keluar, mencatat berakhirnya proses yang telah berjalan bersamaan sebelumnya. Semua tindakan yang masuk harus diselesaikan sebelum proses selanjutnya dikerjakan.
Gambar 2.16 Simbol Join
h. Activity final Activity final digambarkan dengan titik padat yang terdapat di dalam sebuah lingkaran. Activity final menandakan bahwa proses telah berakhir. Satu activity diagram boleh memiliki lebih dari satu final.
Gambar 2.17 Simbol Activity Final
2.11.4 Sequence Diagram Menurut Whitten & Bentley (2007, pp. 394), Sequence diagram merupakan diagram yang menggambarkan bagaimana cara objek berinterkasi satu sama lain melalui pesan yang dieksekusi dari use case atau operasi.
25
Gam bar 2.18 Contoh Sequence Diagram
Notasi yang terdapat didalam sequence diagram, antara lain: 1. Actor Actor digambarkan sama dengan aktor pada use case dan melakukan interaksi pada use case. 2. System System digambarkan dengan kotak yang menunjukkan sistem secara keseluruhan. Tanda titik dua (:) merupakan notasi standar yang digunakan untuk menunjukan objek dalam sistem.
26
3. Lifelines Lifelines digambarkan dengan garis vertikal putus-putus kebawah dari aktor dan sistem. Dan menggambarkan proses yang berjalan pada sequence diagram. 4. Activation Bars Activation bars merupakan alur yang menggambarkan periode waktu ketika proses aktif berjalan. 5. Input Messages Input messages digambarkan dengan garis horizontal dari aktor ke sistem yang menunjukan input pesan yang diberikan oleh pengguna. 6. Output Messages Output messages digambarkan dengan garis horizontal putusputus dari sistem ke aktor yang menunjukan umpan balik yang diberikan sistem. 2.11.5 Class Diagram Menurut Whitten & Bentley (2007, pp. 373), Class diagram merupakan diagram yang menggambarkan struktur objek dari sistem serta menunjukkan kelas-kelas objek yang terdapat didalam sistem yang memiliki hubungan antar kelas objek. Notasi yang terdapat didalam class diagram antara lain: 1. Class Class digambarkan dengan bentuk kotak dan dibagi menjadi 3 bagian yaitu: nama class, atribut, dan method. 2. Relationship Class diagram memiliki macam-macam relationship, antara lain: a. Association Association digunakan untuk menggambarkan hubungan antara satu class dengan class lainnya sehingga class tersebut dapat berinteraksi. b. Compotition
27
Compotition digunakan untuk menggambarkan sebuah class yang merupakan bagian dari class lain dan class tersebut tidak dapat berdiri sendiri.
c. Aggregation Aggregation digunakan untuk menggambarkan sebuah class yang dapat berdiri sendiri walaupun class tersebut merupakan bagian dari class lain. d. Generalization Generalization menggambarkan sebuah hubungan class turunan dari sebuah super class. 3. Visibility Visibility digunakan untuk atribut atau method pada class diagram. Terdapat 3 (tiga) jenis visibility, yaitu: a. Public Public digunakan untuk atribut atau method yang dapat diakses dan digunakan oleh class lain. Public digambarkan dengan simbol plus (+). b. Protected Protected digunakan untuk atribut atau method yang hanya dapat diakses dan digunakan oleh class itu sendiri dan class turunannya. Protected digambarkan dengan simbol hash (#). c. Private Private digunakan untuk atribut atau method yang dapat diakses dan digunakan oleh class itu sendiri. Private digambarkan dengan simbol minus (-). 4. Multiplicity Multiplicity adalah sebuah angka yang mengindikasikan berapa banyak objek dari suatu kelas yang berelasi dengan objek pada kelas lain.
28
Gambar 2.19 Simbol Multiplicity
2.12 Database Database adalah suatu kumpulan data yang saling berhubungan secara logis, terhubung dan dirancang sedemikian rupa sehingga dapat memberikan informasi yang diperlukan oleh organisasi (Connolly, 2010, pp. 15). 2.12.1 Database Management System (DBMS) Menurut Connolly dan Begg (2010, pp. 16), Database Management System atau DBMS adalah sistem perangkat lunak yang memungkinkan pengguna untuk mendifinisikan, membuat, memelihara
29
dan mengatur akses ke database. DBMS menyediakan beberapa fungsi diantaranya a. Data Definition Language (DDL) memungkinkan pengguna untuk mendifinisikan tipe data dan struktur dan batasan aturan mengenai data yang disimpan dalam database. b. Data Manupulation Language (DML) memungkinkan untuk menambah, meng-update, menghapus dan menerima data dari database. Mempunyai fasilitas tempat penyimpanan terpusat untuk mengakses data yang disebut query language. Bahasa formal dan standard dari DBMS adalah Structured Query Language (SQL). c. Fasilitas untuk mengatur akses kontrol ke database contoh yang disediakan adalah •
Sistem keamanan.
•
Sistem integritas.
•
Sistem pengendalian konkurensi.
•
Sistem pengendalian perbaikan.
•
Katalog yang dapat diakses oleh pengguna.
2.12.2 MySQL Menurut Welling dan Thomson (2009, pp. 3), MySQL adalah Relational Database Management System (RDBMS) yang sangat cepat dan kuat. Sebuah database memungkinkan untuk menyimpan, mencari, mengurutkan, dan menerima data secara efisien. 2.12.3 SQLite SQLite adalah perangkat lunak public-domain yang menyediakan Relational Database Management System (RDBMS). Sistem relational database digunakan untuk menyimpan user-defined dalam suatu tabel besar. Selain untuk menyimpan dan manajemen data, suatu database dapat memproses perintah query yang kompleks yang terdiri dari beberapa tabel untuk menghasilkan data dan ringkasan data.
30
Selain, SQLite lebih ringan ketika setup complexity, administratif overhead, dan resource usage. Beberapa fitur dari SQLite adalah (Kreibich, 2010, pp. 1) a. Serverless SQLite tidak memerlukan proses pada server atau sistem untuk dioperasikan secara terpisah. b. Zero Configuration Tidak memerlukan server berarti tidak perlu ada pengaturan. Membuat database SQLite semudah membuka suatu file. c. Cross Platform Database secara keseluruhan berada dalam cross platform file yang tidak memerlukan administrasi. d. Self-Contained Sebuah library terdiri dari keseluruhan sistem basis daya yang terintegrasi langsung ke aplikasi. e. Small Runtime Footprint Dalam mebangun database memerlukan kurang dari kode megabyte dan membutuhkan beberapa megabyte dari memori. Dengan beberapa penyesuaian, baik ukuran library dan penggunaan memori yang dapat berkurang. f. Transactional Transaksi SQLite memungkinkan akses yang aman dari beberapa proses atau thread. g. Full-Featured SQLite mendukung beberapa fitur bahasa query yang ditemukan di starndard SQL92 (SQL2) . h. Highly Reliable Tim pengembang SQLite mengambil beberapa kode pengujian dan verifikasi dengan sangat serius.
31
2.13 Entity Relationship Diagram (ERD) Data
Modeling
adalah
sebuah
teknik
untuk
mengatur
dan
mendokumentasikan suatu data dalam sistem. Model aktual dari data modeling biasanya disebut Entity Relationship Diagram (ERD). Entity Relationship Diagram (ERD) adalah penggambaran dari suatu hubungan satu entitas dengan entitas lainnya untuk memodelkan struktur data dan menjelaskan hubungan antar data dengan menggunakan beberapa notasi dan symbol (Connolly, 2010, pp. 343). a. Entities Entitas adalah sebuah kelas dari orang, tempat, objek, kejadian, atau konsep yang dibutuhkan untuk mengambil dan menyimpan data. b. Atrributes Atribut adalah sebuah properti deskriptif dari suatu entitas. Menurut Connolly dan Begg (2010, 352), keys digunakan untuk mengidentifikasikan satu atribut atau lebih yang unik untuk mengidentifikasikan relasi antar entitas. •
Candidate key Candidate key merupakan sekumpulan atribut yang secara unik mengidentifikasikan keberadaan setiap tipe entitas.
•
Alternate key Alternate key merupakan candidate key yang tidak terpilih untuk menjadi primary key.
•
Composite key Composite key merupakan candidate key yang terdiri dari dua atribut atau lebih.
•
Primary key Primary key merupakan candidate key yang dipilih untuk mengidentifikasikan kejadian entitas secara unik.
32
•
Foreign key Foreign key merupakan sebuah atau sekumpulan atribut dalam sebuah relasi yang mencocokkan candidate key dari beberapa relasi.
c. Relationship Relationship adalah sebuah hubungan antara satu atau lebih entitas. Cardinality adalah jumlah minimum dan maksimum dari kejadian suatu entitas yang mungkin berhubungan dengan kejadian tunggal dari entitas lainnya.
Gambar 2.20 Kardinalitas pada ERD
33
2.14 Software Development Life Cycle (SDLC) Menurut Sommervile (2011, pp. 30), SDLC (Software Development Life Cycle) adalah sebuah metodologi atau model yang digunakan dalam pengembangan perangkat lunak. 2.15 Incremental Model Menurut Pressman (2010, pp. 48), Incremental model merupakan pengembangan dari model waterfall, dimana setiap increment merupakan pengaplikasian dari model waterfall. Masing-masing increment tersebut mendatangkan fungsionalitas tambahan terhadap hasil dari increment sebelumnya. Untuk setiap increment yang dilalui, feedback dari klien akan digunakan dalam perencanaan increment selanjutnya. Berikut ini merupakan tahapan dari incremental model: 1. Communication Tahap ini digunakan untuk menginisialisasi aplikasi yang akan dikerjakan dan pengumpulan kebutuhan awal kepada stakeholder yang bertujuan untuk mendapatkan kebutuhan yang sesuai dan datadata yang akan membantu dalam menentukan fitur pada aplikasi. 2. Planning Tahap ini digunakan untuk pembagian tugas dalam sebuah tim dan melakukan perencanaan pembuatan aplikasi seperti jadwal dan estimasi waktu pengerjaan. 3. Modeling Tahap ini digunakan untuk melakukan analisa kebutuhan yang telah didapatkan kemudian membahas hasil analisa dengan tim. Serta dilakukan pembuatan disain aplikasi menggunakan diagram dan storyboard. 4. Construction Pada tahap ini, diagram hasil analisa akan diterjemahkan ke dalam bahasa pemograman dan kemudian akan dilakukan uji coba untuk memeriksa kesalahan pada aplikasi.
34
5. Deployment Pada tahap ini, aplikasi akan diberikan kepada pengguna untuk dievaluasi dan pengguna akan memberikan umpan balik berdasarkan evaluasi aplikasi tersebut. Increment pertama merupakan core product yang akan diberikan kepada klien untuk dievaluasi. Core product hanya menggunakan kebutuhan awal tanpa adanya fitur-fitur lain. Setelah product dievaluasi maka modifikasi dan penambahan fitur akan dilakukan berdasarkan feedback yang diberikan oleh klien. Proses ini akan terus berulang sampai product sesuai dengan yang diinginkan.
Gambar 2.21 Incremental Model
2.16 Interaksi Manusia dan Komputer Menurut Schneiderman (2010, pp. 5), Interaksi manusia dan komputer merupakan ilmu yang
berhubungan dengan perancangan, evaluasi, serta
implementasi sistem komputer yang dapat digunakan oleh manusia. Menurut Nugroho (2009, pp. 2), Human Computer Interaction merupakan bidang ilmu yang berkembang sejak tahun 1970 yang mempelajari bagaimana mendesain tampilan layar komputer dalam suatu aplikasi sistem informasi agar nyaman dipergunakan oleh pengguna.
35
2.16.1 Lima Faktor Manusia Terukur Menurut Shneiderman dan Plaisant (2010 ,pp. 32), terdapat lima faktor yang harus diperhatikan dalam membuat suatu interface, yaitu: a. Time to learn
Merupakan rata-rata waktu yang diperlukan oleh pengguna dalam menggunakan dan mengerti suatu sistem dengan baik. b. Speed of performance
Merupakan lamanya waktu yang dibutuhkan oleh pengguna dalam menyelesaikan suatu tugas. c. Rate of errors by users
Merupakan banyaknya kesalahan yang dilakukan oleh pengguna dan jenis kesalahan apa saja yang dilakukan ketika menggunakan suatu sistem. d. Retention over time
Merupakan kemampuan pengguna dalam mengingat dan mengetahui cara menggunakan fitur yang ada dalam suatu sistem yang telah dipelajari dalam rentang waktu tertentu. e. Subjective Satisfication
Merupakan kepuasan pengguna pada beberapa fitur yang ada dalam suatu sistem berdasarkan kegunaan atau fungsi aplikasi. 2.17 Sepuluh Prinsip Mobile Interface Pengembangan aplikasi mobile dan desktop terdapat banyak perbedaan, sehingga tampilan yang dihasilkan pun akan sangat berbeda. Menurut Jonathan Stark (2012), terdapat sepuluh prinsip pengembangan pengguna interface, yaitu: 1. Mobile Mindset Dalam merancang aplikasi mobile dan desktop terdapat perbedaan, sehingga sangat penting untuk mengetahui pola pikir dalam merancang aplikasi mobile, yaitu:
36
a. Be focused Fitur-fitur utama harus diutamakan dan pentingnya menghapus fitur yang tidak berguna dari daftar rencana. b. Be unique Mengetahui keunikan dari aplikasi yang dibuat sehingga membuat aplikasi yang dibuat berbeda dengan aplikasi lainnya. c. Be charming Aplikasi sebaiknya dibuat dengan nyaman, dapat diandalkan dan mudah digunakan. d. Be considerate Developer terkadang terlalu fokus dengan apa yang menyenangkan untuk dibuat, tetapi sebaiknya developer menempatkan diri sebagai pengguna sehingga memahami kebutuhan dan membuat pengalaman yang berkesan. 2. Mobile Context Dalam menempatkan posisi sebagai pengguna, sebaiknya mempertimbangkan tiga konteks utama yaitu: a. Bored Sangat
banyak
pengguna
yang
menggunakan
smartphone mereka sepanjang hari. Sehingga sebaiknya aplikasi yang dibuat tidak membosankan dan memberikan pengalaman yang menyenangkan untuk pengguna dalam jangka waktu panjang. b. Busy Kemampuan untuk menjalankan tugas dengan cepat dalam satu tangan sangatlah diharapkan oleh pengguna. Aplikasi dibuat dengan tampilan yang besar dan jelas sangat penting. c. Lost Aplikasi yang dikembangkan sebaiknya didukung oleh fiitur offline dan usahakan untuk menghemat daya tahan baterai. 3. Global Guidlines
37
Aplikasi yang berbeda memiliki pendekatan, desain dan teknik yang berbeda pula. Terdapat pedoman global dalam membuat aplikasi yaitu: a. Responsiveness Membuat aplikasi yang responsif sangatlah penting. Ketika pengguna melakukan sesuatu aplikasi harus dapat menanggapi segala interaksi dengan cepat. Pastikan pengguna mengetahui apa yang sedang dilakukannya. b. Polish Merancang aplikasi seharusnya diperhatikan sedetail mungkin karena setiap detail memiliki pengaruh terdahap pengguna. c. Thumbs Penggunaan layar sentuh membuat ibu jari sangatlah interaktif. Sebaiknya dalam membuat aplikasi mengutamakan kenyamanan ibu jari dalam berinteraksi. Sangatlah jarang penggunaan jari lain dalam menggunakan aplikasi. d. Targets Aplikasi harus dirancang dengan menempatkan tomboltombol di tempat yang sesuai. e. Content Penggunaan layar sentuh membawa revolusi bahwa pengguna memungkinkan untuk berinteraksi langsung dengan isi dari aplikasi. Sebaiknya menempatkan isi di depan dan terpusat. f. Controls Ketika membutuhkan kontrol, maka letakkan pada bagian bawah. g. Scrolling Penggunaan scrolling sebaiknya dihindari dan membuat layar menjadi lebih solid. 4. Navigation Models
38
Banyak model navigasi yang dapat digunakan dalam membuat aplikasi mobile. Jika menggunakan salah satu model navigasi, pastikan model tersebut cocok dengan aplikasi yang dibuat. a. None Menggunakan satu tampilan pada aplikasi. b. Tab bar Tiga sampai enam konten yang berbeda. c. Drill down Menggunakan tampilan list dan detail. 5. User Input Mengetik terkadang menyulitkan untuk aplikasi mobile, sebaiknya memilih beberapa cara yang membuat lebih mudah. a. Terdapat banyak variasi keyboard pada perangkat mobile (teks, angka,
URL,
dan
lainnya).
Pastikan
tampilan
yang
ditampilkan sesuai dengan apa yang harus diketik. b. Penggunaan auto-correct terkadang cukup menyulitkan pada website. Namun dalam aplikasi mobile perlu dipertimbangkan penggunaan auto-correct, auto-capitalisation, dan autocomplete. c. Jika aplikasi memerlukan pengguna untuk banyak mengetik, maka aplikasi mendukung fitur landscape. 6. Gestures Salah satu yang paling ikonik dari penggunaan layar sentuh adalah mendukung gerakan dari pengguna. Beberapa hal yang perlu diperhatikan adalah a. Invisible Gerakan
tidak
mudah
diketahui,
sehingga
harus
memberitahu pengguna dengan berbagai cara. b. Two-hands Gerakan multi-touch memerlukan penggunaan dua tangan. c. Nice to have Penggunaan
shortcut
membantu
beberapa pengguna tidak mengetahuinya.
pengguna,
tetapi
39
d. No replacement Beberapa kosakata untuk gerakan belum ada, sehingga terlalu cepat bagi aplikasi untuk melewati kontrol.
7. Orientation a. Potrait adalah orientasi yang banyak digunakan. b. Jika aplikasi membutuhkan pengguna untuk mengetik cukup banyak, sehingga perlu di support fitur landscape untuk memudahkan pengguna mengetik dengan keyboard yang lebih besar. c. Jika aplikasi digunakan dalam jangka waktu lama, maka perlu mengunci orientasi layar. 8. Communication a. Provide feedback Aplikasi menyediakan umpan balik secara langsung ketika pengguna melakukan sesuatu. Jika memerlukan umpan balik yang cukup lama maka tampilkan spinner atau progress bar sehingga pengguna mengetahui aplikasi menerima request. b. Modal alerts Gunakan modal alrets ketika pengguna melakukan sesuatu yang salah. Pastikan menggunakan bahasa yang ramah. c. Confirmation Ketika
ingin
melakukan
konfirmasi,
maka
perlu
menampilkan dialog konfirmasi. Konfirmasi memerlukan respon dari pengguna. 9. Launching Ketika pengguna meninggalkan aplikasi, maka sebaiknya ketika pengguna kembali aplikasi melanjutkan aksi yang sebelumnya. 10. First Impression a. Your icon Ikon pada aplikasi harus menarik sehingga mendapatkan perhatian dari pengguna.
40
b. First launch Pastikan impresi pertama yang menarik kepada pengguna ketika aplikasi baru dibuka, sehingga pengguna akan tertarik untuk melanjutkan. 2.18 Timesheet Menurut Ghorpade & Shinde (2014), Timesheet adalah suatu metode untuk mencatat waktu yang dihabiskan oleh karyawan dalam mengerjakan setiap tugas atau proyek yang diberikan perusahaan. Timesheet dapat digunakan untuk mengukur performance seseorang. Selain itu, Timesheet juga dapat digunakan untuk menyimpan rincian tugas sehingga mudah ketika mendapatkan informasi yang terpadu untuk tugas tersebut. Beberapa rincian tersebut dapat berupa total jam yang dialokasikan untuk suatu tugas, jenis tugas yang dikerjakan, estimasi waktu pengerjaan, realisasi waktu pengerjaan, dan lainnya.