BAB II LANDASAN TEORI
2.1 Human Resource Information System (HRIS) Setiap organisasi atau perusahaan memerlukan data yang bersifat riil dari setiap tingkatan manajemennya. Data tersebut disusun dan dikelola dalam sebuah sistem informasi. Salah satu sistem informasi yang berperan penting dalam suatu organisasi/ perusahaan adalah Sistem Informasi Sumber Daya Manusia/ Human Resource Information System (SISDM/ HRIS). HRIS merupakan sebuah sistem yang digunakan untuk memperoleh, menyimpan, memanipulasi, menganalisis, mengambil, dan mendistribusikan informasi tentang organisasi sumber daya manusia (Kavanagh, Johnson, & Thite, 2011). Sebuah HRIS bukan hanya mengenai perangkat keras dan perangkat lunak yang berhubungan dengan pengelolaan sumber daya manusia saja, namun di dalamnya termasuk juga manusia, kebijakan, prosedur, dan data. Hal ini menjadikan HRIS sebuah bentuk interseksi/ pertemuan antara bidang ilmu Manajemen Sumber Daya Manusia (MSDM) dan teknologi informasi yang menggabungkan MSDM sebagai suatu disiplin utamanya dan mengaplikasikan bidang teknologi informasi ke dalam aktivitas-aktivitasnya seperti dalam hal perencanaan dan menyusun sistem pemrosesan data dalam serangkaian kegiatan yang terstandarisasi.
Gambar 2.1. Komponen HRIS 7 http://digilib.mercubuana.ac.id/
8
2.2 Rekayasa Perangkat Lunak (RPL) 2.2.1 Pengertian Rekayasa Perangkat Lunak Rekayasa Perangkat Lunak (RPL) secara umum disepakati sebagai terjemahan dari istilah Software Engineering yang merupakan suatu disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal yaitu analisa kebutuhan pengguna, menentukan spesifikasi dari kebutuhan pengguna, desain, pengkodean, pengujian
sampai
pemeliharaan
sistem
setelah
digunakan
(Sommerville, 2011). Istilah Software Engineering sendiri mulai dipopulerkan tahun 1968 pada Software Engineering Conference yang diselenggarakan oleh NATO.
2.2.2 Ruang Lingkup Ruang lingkup RPL dapat digambarkan sebagai berikut:
Gambar 2.2. Ruang lingkup RPL (Bourque & E. Fairley, 2014) a. Software requirements berhubungan dengan spesifikasi kebutuhan dan persyaratan perangkat lunak. b. Software design mencakup proses penentuan arsitektur, komponen, antarmuka, dan karakteristik lain dari perangkat lunak.
http://digilib.mercubuana.ac.id/
9
c. Software construction berhubungan dengan detil pengembangan perangkat lunak, termasuk algoritma, pengkodean, pengujian, dan pencarian kesalahan. d. Software testing meliputi pengujian pada keseluruhan perilaku perangkat lunak. e. Software maintenance mencakup upaya-upaya perawatan ketika perangkat lunak telah dioperasikan. f. Software configuration management berhubungan dengan usaha perubahan konfigurasi perangkat lunak untuk memenuhi kebutuhan tertentu. g. Software engineering management berkaitan dengan pengelolaan dan pengukuran RPL, termasuk perencanaan proyek perangkat lunak. h. Software engineering tools and methods mencakup kajian teoritis tentang alat bantu dan metode RPL. i. Software engineering process berhubungan dengan definisi, implementasi, pengukuran, pengelolaan, perubahan dan perbaikan proses RPL. j. Software quality menitikberatkan pada kualitas dan daur hidup perangkat lunak.
2.2.3 Mobile Application Development Life Cycle (MADLC) MADLC adalah proses mengembangkan atau mengubah suatu sistem aplikasi mobile dengan menggunakan model-model dan metodologi pengembangan. MADLC akan membantu pengembangan aplikasi mobile dengan melakukan eksekusi secara efisien dan memberikan solusi tepat waktu terhadap pengembangan sistem (Kumar & Vithani, 2014). Adapun tahapan-tahapan MADLC adalah sebagai berikut:
http://digilib.mercubuana.ac.id/
10
a.
Identifikasi Pada fase ini seluruh ide dikumpulkan dan dikategorikan. Tujuan utama dari fase ini adalah untuk mendapatkan sebuah ide baru atau melakukan pengembangan dari aplikasi yang sudah ada. Jika aplikasi dengan tipe sejenis sudah ada, maka dilakukan studi untuk mendapatkan perbandingan mengenai fitur yang tersedia.
Gambar 2.3. Fase Identifikasi b.
Desain Pada fase ini ide dari fase awal di kembangkan menjadi desain awal dari aplikasi dengan cara melakukan perancangan proses yang akan berjalan pada aplikasi, perancangan antarmuka, dan pemodelan interaksi yang dapat dilakukan oleh pengguna dengan aplikasi tersebut.
Gambar 2.4. Fase Desain
http://digilib.mercubuana.ac.id/
11
c.
Pengembangan Pada fase ini aplikasi mulai memasuki tahap penulisan dengan menggunakan bahasa pemrograman. Pada tahap pengembangan terbagi menjadi 2 bagian yaitu penulisan kode untuk fungsi dan penulisan kode untuk keperluan antarmuka.
Gambar 2.5. Fase Pengembangan d.
Perancangan Pada fase ini akan dikembangkan prototype dari aplikasi tersebut yang kemudian akan dilakukan pengujian pada fase selanjutnya.
Gambar 2.6. Fase Perancangan e.
Pengujian Pengujian merupakan salah satu fase terpenting dari setiap model siklus pengembangan. Pengujian terhadap prototype dilakukan pada simulator dan kemudian dilakukan pada perangkat yang asli.
Gambar 2.7. Fase Pengujian
http://digilib.mercubuana.ac.id/
12
f.
Penyebaran Merupakan fase terakhir dari proses pengembangan. Setelah uji coba selesai dilakukan dan timbal balik/ respon telah didapatkan dari pengguna, maka aplikasi telah siap untuk disebarkan. Namun, sebelum mencapai fase ini, penulis hanya akan melakukan uji coba aplikasi tanpa melakukan pengumpulan data timbal balik dari pengguna.
Gambar 2.8. Fase Penyebaran g.
Pemeliharaan Merupakan fase terakhir pada model ini, dan tahap pemeliharaan adalah sebuah proses yang berkelanjutan. Masukan-masukan dari pengguna
dapat
digunakan
untuk
tahap
pengembangan
selanjutnya.
Gambar 2.9. Fase Pemeliharaan
2.2.4 Model Evolutionary Software Process Model
Evolutionary
Software
Process
bersifat
iteratif
(mengandung perulangan). Hasil prosesnya berupa produk yang semakin lama semakin lengkap sampai dengan versi terlengkap
http://digilib.mercubuana.ac.id/
13
dihasilkan sebagai produk akhir dari proses. Model Evolutionary Development / Evolutionary Software Process terbagi menjadi 2, yaitu Incremental Model dan Spiral Model (S. Pressman, 2010). Namun dalam tugas akhir ini, penulis memilih Incremental Model sebagai dasar dari pengembangan aplikasi yang dirancang karena memiliki alur yang lebih simpel dalam melakukan analisa dan desain ulang sistem.
2.2.4.1
Incremental Model Incremental Model menggabungkan elemen dari model sekuensial linier (diaplikasikan secara berulang) dengan filosofi iteratif prototyping. Incremental Model menerapkan urutan linear secara bergiliran sebagai waktu kalender.
Setiap
urutan
linier
menghasilkan
sebuah
penyampaian "increment" dari perangkat lunak. Misalnya, perangkat
lunak
pengolah
kata
yang
dikembangkan
menggunakan paradigma tambahan memberikan fitur-fitur dalam aplikasi dengan pengembangan sebagai berikut: a. Manajemen dasar berkas, mengedit, dan fungsi produksi dokumen pada increment pertama, b. Kemampuan yang lebih canggih dalam Editing dan memproduksi dokumen pada increment kedua, c. Memeriksa ejaan dan tata bahasa pada increment ketiga, d. Kemampuan untuk menampilkan halaman lanjutan dan tata letak pada increment keempat. Ketika Incremental Model digunakan, increment pertama biasanya merupakan poduk inti yang berarti kebutuhan dasar diberikan, namun masih ada fitur-fitur yang tidak tersampaikan. Sebagai akibat dari penggunaan dan/ atau evaluasi, rencana selanjutnya perlu dikembangkan untuk peningkatan performa dan fitur-fitur baru. Rencana ini membahas modifikasi dari produk inti untuk lebih memenuhi
http://digilib.mercubuana.ac.id/
14
kebutuhan pelanggan dan pengiriman fitur tambahan dan fungsionalitas. Proses ini diulang setelah penyampaian setiap increment sampai dengan produk yang lengkap dihasilkan.
Gambar 2.10. Incremental Model
Incremental
Model,
seperti
prototyping
dan
pendekatan evolusioner lainnya secara alami terus mengalami iterasi. Tapi tidak seperti prototyping, Incremental Model berfokus pada penyampaian produk operasional dengan increment masing-masing.
2.2.5 Pengujian Perangkat Lunak Pengujian menyajikan sebuah anomali yang menarik untuk pengembang perangkat lunak. Selama kegiatan rekayasa perangkat lunak sebelumnya, pengembang berusaha untuk membangun perangkat lunak dari sebuah konsep abstrak untuk menjadi produk yang nyata. Pengembang menciptakan serangkaian uji kasus yang dimaksudkan untuk “menghancurkan” perangkat lunak yang telah dibangun. Bahkan, pengujian adalah salah satu langkah dalam proses perangkat lunak yang bisa dilihat sebagai destruktif daripada konstruktif. Pengujian mengharuskan pengembang membuang praduga sebuah kebenaran dari
http://digilib.mercubuana.ac.id/
15
software yang dikembangkan dan mengatasi konflik kepentingan yang terjadi ketika sebuah kesalahan terungkap.
2.2.5.1
Tujuan Pengujian Berikut adalah sejumlah aturan yang dapat berfungsi dengan baik sebagai tujuan pengujian (Myers, Badgett, & Sandler, 2012): a. Pengujian adalah proses eksekusi program dengan maksud menemukan kesalahan. b. Sebuah kasus uji yang baik adalah yang memiliki probabilitas tinggi untuk menemukan kesalahan yang belum ditemukan. c. Sebuah tes yang sukses adalah salah satu yang mengungkap kesalahan yang belum ditemukan. Tujuan-tujuan ini menyiratkan perubahan dramatis dalam suatu sudut pandang. Mereka bergerak berlawanan dengan pandangan umum bahwa tes yang sukses adalah ketika tidak ada kesalahan yang ditemukan. Tujuan untuk merancang tes yang sistematis mengungkap kelas yang berbeda dari kesalahan dan untuk melakukannya harus dengan jumlah waktu minimal dan usaha. Jika pengujian dilakukan dengan sukses, itu akan mengungkap kesalahan dalam perangkat lunak. Sebagai manfaat sekunder, pengujian menunjukkan bahwa fungsi software muncul untuk dapat bekerja sesuai dengan spesifikasi, bahwa fungsi dan kinerja yang dibutuhkan telah terpenuhi. Selain itu, data yang dikumpulkan sebagai pengujian memberikan indikasi yang baik dari kehandalan perangkat lunak dan beberapa indikasi kualitas perangkat lunak secara keseluruhan.
http://digilib.mercubuana.ac.id/
16
2.2.5.2
Prinsip dalam Pengujian Sebelum menerapkan metode untuk merancang uji coba dengan efektif, seorang pengembang perangkat lunak harus memahami prinsip-prinsip dasar yang dapat memandu pengujian perangkat lunak sebagai berikut (Myers et al., 2012): a. Sebuah bagian penting dari kasus uji adalah definisi dari output yang diharapkan atau hasil. b. Seorang programmer harus menghindari mencoba untuk menguji program sendiri-sendiri. c. Sebuah organisasi pemrograman tidak harus menguji program sendiri. d. Setiap proses pengujian harus mencakup pemeriksaan menyeluruh dari hasil tes masing-masing. e. Uji kasus harus ditulis untuk kondisi masukan yang valid dan tak terduga. f. Memeriksa melakukan
program apa
untuk
yang
melihat
seharusnya
apakah
tidak
dilakukan
dan
melakukan apa yang tidak seharusnya dilakukan. g. Jangan membuang hasil uji kasus kecuali program ini benar-benar program yang tidak terpakai. h. Jangan merencanakan upaya pengujian dengan asumsi diam-diam bahwa tidak ada kesalahan yang akan ditemukan. i. Probabilitas adanya lebih banyak kesalahan dalam bagian dari sebuah program sebanding dengan jumlah kesalahan yang sudah ditemukan di bagian tersebut. j. Pengujian adalah tugas yang sangat kreatif dan menantang intelektual.
http://digilib.mercubuana.ac.id/
17
2.2.6 Validasi Pengujian Metode validasi pengujian yang dipakai dalam penelitian tugas akhir ini adalah Black Box. Black Box merupakan sebuah metode pengujian berdasarkan spesifikasi kebutuhan sehingga tidak perlu memeriksa kode secara detail dalam program (Dondeti & Nidhra, 2012). Hal ini murni dilakukan berdasarkan sudut pandang pengguna saja, namun tester harus tahu set input dan prediksi outputnya. Pengujian Black Box dilakukan pada produk yang sudah selesai dibuat. Mengapa menggunakan metode Black Box? Pengujian Black Box memainkan peran penting dalam pengujian perangkat lunak dengan membantu validasi fungsi keseluruhan sistem. Pengujian Black Box dilakukan berdasarkan kebutuhan pengguna sehingga segala persyaratan yang tidak lengkap atau tidak terduga dapat dengan mudah diidentifikasi dan dibahas kemudian. Hal terpentingnya pengujian Black Box menangani input yang valid dan tidak valid dari perspektif pengguna. Kapan tepatnya metode Black Box digunakan? Pengujian Black Box dilakukan dari awal siklus hidup proyek perangkat lunak. Semua anggota tim pengujian perlu dilibatkan sejak awal proyek. Selama pengujian Black Box, penguji harus terlibat dalam pengumpulan kebutuhan dari pelanggan dan tahap analisis. Pada tahap data pengujian desain dan pengujian skenario perlu dipersiapkan sebelumnya. Keuntungan utama dari pengujian Black Box adalah penguji tidak perlu memiliki pengetahuan tentang bahasa pemrograman tertentu, tidak hanya bahasa pemrograman tetapi juga pengetahuan tentang implementasi. Ketika melakukan pengujian Black Box baik programmer dan penguji saling kooperatif satu sama lain terhadap bahan uji. Keuntungan lain adalah pengujian dilakukan dari sudut pandang pengguna. Keuntungan yang signifikan dari pengujian Black Box adalah membantu untuk mengekspos setiap ambiguitas dan inkonsistensi dalam spesifikasi kebutuhan.
http://digilib.mercubuana.ac.id/
18
2.3 Konsep Pemrograman Berorientasi Objek Pemrograman berorientasi objek (Object-Oriented Programming/ OOP) merupakan pemograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya. Konsep OOP terdiri dari komponen object, class, inheritance, interface, dan package (Oracle. Inc, 2015).
2.3.1 Object Object adalah kunci untuk memahami teknologi berorientasi objek. Objek software secara konseptual mirip dengan benda dunia nyata yang terdiri dari keadaan (state) dan perilaku (behavior) di lapangan. Sebuah objek menyimpan keadaan dalam variable dan mengekspos perilakunya melalui method. Method beroperasi pada keadaan internal suatu objek dan berfungsi sebagai mekanisme utama untuk melakukan komunikasi antar objek. Menyembunyikan keadaan internal dan mengharuskan semua interaksi yang akan dilakukan melalui metode objek dikenal sebagai enkapsulasi data.
Gambar 2.11. Object dari sebuah perangkat lunak
http://digilib.mercubuana.ac.id/
19
2.3.2 Class Class adalah denah/ pemetaan dari sebuah objek individu yang dibuat. Class digunakan hanya untuk membuat kerangka dasar. Berikut adalah contoh dari sebuah class: class Bicycle { int cadence = 0; int speed = 0; int gear = 1; void changeCadence(int newValue) { cadence = newValue; } void changeGear(int newValue) { gear = newValue; } void speedUp(int increment) { speed = speed + increment; } void applyBrakes(int decrement) { speed = speed - decrement; } void printStates() { System.out.println("cadence:" + cadence + " speed:" + speed + " gear:" + gear); } }
Gambar 2.12. Contoh Class
2.3.3 Inheritance Pemrograman berorientasi objek memungkinkan class untuk mewarisi state dan behavior yang sering digunakan dari kelas-kelas lain.
Misalnya,
MountainBike,
bicycle roadbike,
sekarang dan
menjadi
TandemBike.
superclass Dalam
dari bahasa
pemrograman Java, setiap class diperbolehkan untuk memiliki satu superclass langsung, dan masing-masing superclass memiliki potensi untuk jumlah yang tidak terbatas subclass.
http://digilib.mercubuana.ac.id/
20
Gambar 2.13. Sebuah hirarki bicycle-class
2.3.4 Interface Sebuah benda mendefinisikan interaksi mereka dengan dunia luar melalui metode yang mereka ekspos. Metode membentuk objek antarmuka (interface) dengan dunia luar. Interface mendefinisikan sebuah signature dari kumpulan method tanpa tubuh/ kosong. Salah satu tipe interface yang menyajikan tampilan interaktif adalah Graphical User Interface (GUI). GUI adalah tipe antarmuka yang digunakan untuk berinteraksi dengan sistem operasi melalui gambargambar grafik, ikon, menu, dan menggunakan perangkat penunjuk (pointing device) seperti mouse atau track ball ataupun touch screen. Elemen-elemen utama dari GUI bisa diringkas dalam konsep WIMP (window, icon, menu, pointing device).
2.3.5 Package Package adalah namespace yang mengorganisir satu set kelas dan interface yang terkait. Perangkat lunak yang ditulis dalam bahasa pemrograman dapat terdiri dari ratusan atau ribuan kelas individu, dan sangat disarankan untuk mengorganisir dengan menempatkan kelas dan interface yang terkait ke dalam package.
http://digilib.mercubuana.ac.id/
21
Pada platform Java misalnya, menyediakan Perpustakaan Kelas (class library)/ satu set paket yang dapat digunakan dalam aplikasi. Perpustakaan ini dikenal sebagai Application Programming Interface (API). Package yang mewakili tugas yang paling sering dikaitkan dengan pemrograman dengan tujuan umum. Sebagai contoh, sebuah objek String berisi state dan behavior untuk karakter string; objek file memungkinkan
programmer
untuk
dengan
mudah
membuat,
menghapus, memeriksa, membandingkan, atau memodifikasi file di filesystem; objek Socket memungkinkan untuk pembuatan dan penggunaan soket jaringan; berbagai objek GUI, tombol kontrol, dan kotak centang dan hal lain yang berhubungan dengan antarmuka pengguna grafis. Hal ini memungkinkan untuk fokus pada desain aplikasi tertentu, daripada infrastruktur yang dibutuhkan untuk membuatnya bekerja.
2.3.6 Unified Modelling Language Unified Modeling Language (UML) adalah bahasa standar untuk menulis blueprint dari sebuah perangkat lunak. UML dapat digunakan untuk memvisualisasikan, menentukan, membangun, dan mendokumentasikan artefak dari sistem intensif perangkat lunak (Rumbaugh, Jacobson, & Booch, 2010). UML adalah bahasa yang sangat ekspresif, menangani semua pandangan yang dibutuhkan untuk mengembangkan
dan
kemudian
menyebarkan
sistem
tersebut.
Meskipun ekspresif, UML tidak sulit untuk dipahami dan digunakan. Belajar untuk menerapkan UML secara efektif dimulai dengan membentuk model konseptual dari bahasa yang membutuhkan tiga unsur utama yaitu blok bangunan dasar UML, aturan-aturan yang menentukan bagaimana blok bangunan tersebut dapat disatukan, dan beberapa mekanisme umum yang berlaku di seluruh bahasa. Implementasinya, UML diwakilkan oleh sebuah diagram yang memberikan pandangan umum.
http://digilib.mercubuana.ac.id/
22
2.3.6.1 Structural Diagrams Diagram
struktural
memvisualisasikan,
UML
menentukan,
ini
bertujuan
untuk
membangun,
dan
mendokumentasikan aspek statis dari suatu sistem. a. Class diagram Class diagram yaitu diagram yang digunakan untuk menampilkan class maupun package yang ada pada suatu sistem yang nantinya akan digunakan. Jadi diagram ini dapat memberikan sebuah gambaran mengenai sistem maupun relasi-relasi yang terdapat pada sistem tersebut.
Gambar 2.14. Class diagram Tabel 2.1. Notasi pada class diagram Simbol Kelas / class
Deskripsi Kelas pada struktur sistem.
http://digilib.mercubuana.ac.id/
23 Lanjutan Tabel 2.1. Notasi pada class diagram Antarmuka / interface
Sama dengan konsep interface dalam pemrograman berorientasi objek.
Asosiasi / association
Relasi antarkelas dengan makna umum.
Asosiasi
biasanya
disertai dengan multiplicity. Asosiasi berarah /
Relasi antar kelas dengan makna
directed association
kelas yang satu digunakan oleh kelas
yang
lain.
Asosiasi
biasanya juga disertai dengan multiplicity. Generalisasi
Relasi antar kelas dengan makna generalisasi - spesialiasi (umum - khusus)
Kebergantungan /
Relasi antar kelas dengan makna
dependecy
kebergantungan antar kelas.
Agregasi /
Relasi antar kelas dengan makna
aggregation
semua-bagian (whole-part).
http://digilib.mercubuana.ac.id/
24
2.3.6.2 Behavioral Diagrams Behavioral memvisualisasikan,
diagrams menentukan,
digunakan membangun,
untuk dan
mendokumentasikan aspek dinamis dari sistem. a. Use case diagram Use case diagram yaitu diagram yang menggambarkan interaksi antara sistem dan aktor. Use case diagram juga dapat mendeskripsikan tipe interaksi antara Si Pemakai sistem dengan sistemnya.
Gambar 2.15. Use case diagram Tabel 2.2. Notasi pada use case diagram Simbol Use case
Deskripsi Fungsionalitas yang disediakan sistem sebagai unit-unit yang saling bertukar pesan antar unit atau aktor. Biasanya dinyatakan dengan menggunakan kata kerja di awal frase nama use case.
http://digilib.mercubuana.ac.id/
25 Lanjutan Tabel 2.2. Notasi pada use case diagram Aktor/actor
Orang, proses, atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat di luar sistem informasi yang akan dibuat
itu
sendiri,
sehingga
walaupun simbol dari aktor itu adalah orang,
menyerupai tetapi
aktor
gambar tersebut
belum tentu merupakan orang. Asosiasi/ association
Komunikasi antara aktor yang berpatisipasi pada use case atau use
case
memiliki
interaksi
dengan aktor. Ektensi/extend
Relasi use case tambahan ke sebuah use case dimana use case yang ditambah tersebut dapat berdiri sendiri walau tanpa use case tambahan tersebut. Seperti pada prinsip inheritance pada pemrograman berorientasi objek, biasanya use case tambahan memiliki nama depan yang sama dengan use case yang ditambah.
Generalisasi/
Hubungan
generalisasi
dan
generalization
spesialisasi (umum – khusus) antara dua buah use case dimana fungsi yang satu adalah fungsi yang lebih umum dari yang lainnya.
Include / Uses
Relasi use case tambahan ke sebuah use case dimana use case yang ditambahkan memerlukan
http://digilib.mercubuana.ac.id/
26 Lanjutan Tabel 2.2. Notasi pada use case diagram use case ini untuk menjalankan fungsinya atau sebagai syarat untuk menjalankan use case tersebut. b. Activity diagram Activity diagram yaitu diagram yang dapat memodelkan proses-proses apa saja yang terjadi pada sistem.
Gambar 2.16. Activity diagram Tabel 2.3. Notasi pada activity diagram Simbol Status awal / Start
Deskripsi Status awal aktivitas dari sebuah sistem. Sebuah diagram aktivitas memiliki sebuah status awal.
Aktivitas / Activity
Aktivitas yang dilakukan oleh suatu sistem. Penamaan aktivitas biasanya diawali dengan kata kerja
Percabangan
Asosiasi percabangan dimana jika ada pilihan aktivitas lebih dari satu.
Penggabungan
Asosiasi penggabungan Asosiasi penggabungan dimana lebih dari satu
aktivitas
menjadi satu.
http://digilib.mercubuana.ac.id/
digabungkan
27 Lanjutan Tabel 2.3. Notasi pada activity diagram Status akhir / End
Status
akhir
yang
dilakukan
sistem. Sebuah diagram aktivitas memiliki status akhir. Memisahkan
Swimlane
organisasi
bisnis
yang bertanggung jawab terhadap aktivitas yang terjadi.
c. Sequence diagram Sequence diagram yaitu diagram yang menjelaskan interaksi objek yang berdasarkan urutan waktu. Sequence diagram juga dapat menggambarkan urutan atau tahapan yang harus dilakukan untuk dapat menghasilkan sesuatu seperti pada use case diagram.
Gambar 2.17. Sequence diagram Tabel 2.4. Notasi pada sequence diagram Simbol Aktor / Actor
Deskripsi Orang, proses, atau sistem lain yang berinterkasi dengan sistem informasi yang akan dibuat di luar sistem informasi itu sendiri.
Atau
Walaupun
http://digilib.mercubuana.ac.id/
simbol
dari
aktor
28 Lanjutan Tabel 2.4. Notasi pada sequence diagram adalah gambar orang, belum tentu merupakan dinyatakan
orang.
Biasanya
menggunakan
kata
benda di awal frase nama aktor. Garis hidup / lifeline
Menyatakan
kehidupan
suatu
objek
yang
objek Objek / Object
Menyatakan
berinteraksi pesan. Waktu aktif / Active
Menyatakan objek dalam keadaan aktif dan berinteraksi, semua yang terhubung dengan waktu aktif ini adalah sebuah tahapan yang dilakukan di dalamnya.
Pesan tipe create
Menyatakan
suatu
objek
membuat objek yang lain, arah panah mengarah pada objek yang dibuat. Pesan tipe call
Menyatakan
suatu
objek
memanggil operasi/metode yang ada pada obejk lain atau dirinya sendiri. Arah panah mengarah pada
objek
yang
memilik
operasi/metode, sehingga metode yang dipanggil harus ada pada diagram class sesuai dengan kelas objek yang berinterkasi. Pesan tipe send
Menyatakan bahwa suatu objek mengirimkan
data/
masukan/
informasi ke objek lainnya. Arah panah mengarah pada objek yang dikirimkan pesan.
http://digilib.mercubuana.ac.id/
29 Lanjutan Tabel 2.4. Notasi pada sequence diagram Pesan tipe return
Menyatakan suatu objek yang telah menjalankan suatu operasi yang menghasilkan suatu pengembalian pada objek tertentu, arah panah mengarah pada objek yang menerima pengembalian.
Pesan tipe destroy
Menyatakan suatu objek mengakhiri hidup objek yang lain, arah panah mengarah pada objek yang diakhiri,
sebaiknya
jika
ada
create maka ada destroy
2.4 Basis Data Basis data adalah suatu data yang dibagi, berbentuk struktur komputer terpadu yang menyimpan koleksi end-user data (fakta baku yang dapat dimanfaatkan oleh pengguna) dan metadata (data mengenai data itu sendiri) (Coronel, Morris, & Rob, 2013). Secara umum basis data merujuk pada koleksi data yang dikelola oleh Data Base Management System (DBMS) dengan tujuan: a. Memungkinkan pengguna untuk membuat basis data baru dan menentukan skemanya (struktur logis dari data). b. Memberikan pengguna kemampuan untuk melakukan query dan memodifikasi data. c. Mendukung penyimpanan dengan jumlah yang sangat besar dan dalam jangka waktu yang panjang serta memungkinkan akses data dan modifikasi basis data dengan efisien. d. Memiliki daya tahan yang baik untuk melakukan pemulihan basis data, berbagai jenis kesalahan, atau penyalahgunaan yang disengaja. e. Kontrol akses ke data dari banyak pengguna sekaligus tanpa membiarkan interaksi tak terduga antara pengguna.
http://digilib.mercubuana.ac.id/
30
2.4.1 MySQL MySQL adalah basis data relasional yang memungkinkan seorang admin dapat menyimpan banyak informasi kedalam tabel-tabel dimana tabel-tabel tersebut saling berkaitan satu sama lain (Dwiartara, 2010). Keuntungannya adalah kita dapat memecah database kedalam tabel-tabel yang berbeda dan setiap table memiliki informasi yang berkaitan dengan table yang lainnya. MySQL
bersifat
open
source,
semua
orang
bebas
menggunakannya tanpa harus membayar sepeser pun. Selain itu, MySQL juga bersifat Cross Platform yang berarti dapat digunakan pada sistem operasi Windows ataupun Linux.
2.5 Android Android merupakan sebuah sistem operasi telepon seluler dan komputer tablet layar sentuh (touch screen) berbasis Linux (Dharma Kasman, 2015). Seiring dengan perkembangan teknologi, Android melakukan inovasi dengan cepat. Hal ini tidak lepas dari peran perusahaan mesin pencari raksasa Google yang merupakan pengembang utama platform ini. Salah satu faktor keberhasilan Android sebagai sistem operasi adalah terbukanya Google terhadap perangkat lunak yang diperbolehkan masuk (Open Source). Selain itu, Android juga telah mempunyai komunitas developer aplikasi tersendiri yang dapat meningkatkan fungsi perangkat dan mungkin saat ini sudah lebih dari sejuta aplikasi yang bisa dioperasikan melalui Android dan tentunya Google Play menjadi toko aplikasi utamanya yang banyak sekali terdapat aplikasi yang bisa diunduh secara bebas baik yang berbayar maupun gratis.
http://digilib.mercubuana.ac.id/
31
2.5.1 Arsitektur Aplikasi Berbasis Android Google mengibaratkan Android sebagai sebuah tumpukan perangkat lunak. Setiap lapisan dari tumpukan ini menghimpun beberapa program yang mendukung fungsi-fungsi spesifik dari sistem operasi. Berikut adalah susunan dari lapisan-lapisan tersebut: a. Linux Kernel Merupakan tumpukan paling bawah pada arsitektur Android. Google menggunakan kernel Linux versi 2.6 untuk membangun sistem Android yang mencakup memory management, security setting, power management, dan beberapa drive perangkat keras. Kernel berperan sebagai abstraction layer antara perangkat keras dan keseluruhan perangkat lunak. b. Android Runtime Merupakan lapisan setelah kernel Linux yang berisi Core libraries dan Dalvik Virtual Machine. Core libraries mencakup serangkaian inti library Java, artinya Android menyertakan set library dasar yang menyediakan sebagian besar fungsi-fungsi yang ada pada library dasar bahasa pemrograman Java. Dalvik adalah mesin virtual yang memberikan kekuatan pada sistem Android. Dalvik ini dioptimalkan untuk telepon selular pada perangkat selular berbasis Android. c. Libraries Bertempat di level yang sama dengan Android Runtime yang disertakan oleh Android berupa set-set library dalam bahasa C/C++ yang digunakan oleh berbagai komponen yang ada pada Android. Kemampuan ini dapat diakses oleh programmer melewati Android Application Framework.
http://digilib.mercubuana.ac.id/
32
d. Application Framework Merupakan lapisan selanjutnya yang mencakup program untuk mengatur Framework
fungsi-fungsi adalah
dasar
serangkaian
ponsel alat
pintar. dasar
Application
seperti
alokasi
sumberdaya ponsel pintar, aplikasi telepon, pergantian antar proses atau program, dan pelacakan lokasi fisik telepon. e. Application Berada dilapisan teratas yang dapat ditemukan fungsi-fungsi dasar ponsel pintar seperti menelepon dan mengirim pesan singkat, menjalankan web browser, mengakses daftar kontak, dan lain-lain. Bagi rata-rata pengguna, bagian inilah yang paling sering diakses melalui antar muka aplikasi.
2.5.2 Statistik Pengguna Android Statistik pengguna Android diambil berdasarkan data resmi yang dilansir oleh situs http://developer.android.com berikut (Google, 2016):
Gambar 2.18. Statistik pengguna Android berdasarkan versinya
http://digilib.mercubuana.ac.id/