BAB II LANDASAN TEORI

advertisement
BAB II
LANDASAN TEORI
2.1
Pengertian Aplikasi
Menurut Hartono (2004, p8), Aplikasi merupakan sistem yang dirancang
dan disusun sedemikian rupa untuk menghasilkan informasi yang terpadu dengan
menggunakan sarana komputer sebagai sarana penunjangnya.
2.2
Metode Waterfall
Model waterfall adalah model klasik yang bersifat sistematis, berurutan
dalam membangun software. Menurut Sommerville (2011, p29), Waterfall model
mengambil kegiatan proses dasar spesifikasi, pengembangan, validasi dan evolusi
dan mewakili kegiatan tersebut sebagai fase proses terpisah seperti spesifikasi
persyaratan, perancangan perangkat lunak, implementasi, pengujian, dan
sebagainya. Tahapan utama dari waterfall model langsung mencerminkan aktifitas
pengembangan dasar. Terdapat 5 tahapan pada waterfall model, yaitu requirement
analysis and definition, system and software design, implementation and unit
testing, integration and system testing, dan operation and maintenance.
Tahapan-tahapan model waterfall menurut referensi Sommerville (2011,
p31), yaitu :
1.
Requirements Analysis and Definition
Mengumpulkan kebutuhan secara lengkap kemudian dianalisis dan
didefinisikan kebutuhan yang harus dipenuhi oleh software yang akan
dibangun. Hal ini sangat penting, mengingat software harus dapat
berinteraksi dengan elemen-elemen yang lain seperti hardware,
database, dan sebagainya. Tahap ini sering disebut dengan Project
Definition.
8
http://digilib.mercubuana.ac.id/
9
2.
System and Software Design
Proses pencarian kebutuhan diintensifkan dan difokuskan pada
software. Untuk mengetahui sifat dari program yang akan dibuat,
maka para software engineer harus mengerti tentang domain informasi
dari software, misalnya fungsi yang dibutuhkan, user interface, dan
sebagainya. Dari dua aktivitas tersebut (pencarian kebutuhan sistem
dan software) harus didokumentasikan dan ditunjukkan kepada user.
Proses software design untuk mengubah kebutuhan-kebutuhan di atas
menjadi representasi ke dalam bentuk “blueprint” software sebelum
coding dimulai. Desain harus dapat mengimplementasikan kebutuhan
yang telah disebutkan pada tahap sebelumnya. Seperti dua aktivitas
sebelumnya, maka proses ini juga harus didokumentasikan sebagai
konfigurasi dari software.
3.
Implementation and Unit Testing
Desain
program
diterjemahkan ke dalam
kode-kode dengan
menggunakan bahasa pemrograman yang sudah ditentukan. Program
yang dibangun langsung diuji baik secara unit.
4.
Integration and System Testing
Untuk dapat dimengerti oleh mesin, dalam hal ini adalah komputer,
maka desain tadi harus diubah bentuknya menjadi bentuk yang dapat
dimengerti oleh mesin, yaitu ke dalam bahasa pemrograman melalui
proses coding. Tahap ini merupakan implementasi dari tahap design
yang secara teknis nantinya dikerjakan oleh programmer. Penyatuan
unit-unit program kemudian diuji secara keseluruhan (system testing).
5.
Operation and Maintenance
Sesuatu yang dibuat haruslah diujicobakan. Demikian juga dengan
software. Semua fungsi-fungsi software harus diujicobakan, agar
software bebas dari error, dan hasilnya harus benar-benar sesuai
dengan
kebutuhan
yang
sudah
didefinisikan
sebelumnya.
Pemeliharaan suatu software diperlukan, termasuk di dalamnya adalah
pengembangan, karena software yang dibuat tidak selamanya hanya
seperti itu. Ketika dijalankan mungkin saja masih ada error kecil yang
http://digilib.mercubuana.ac.id/
10
tidak ditemukan sebelumnya, atau ada penambahan fitur-fitur yang
belum ada pada software tersebut. Pengembangan diperlukan ketika
adanya perubahan dari eksternal perusahaan seperti ketika ada
pergantian sistem operasi, atau perangkat lainnya.
Kelebihan dari model ini adalah selain karena pengaplikasian menggunakan
model ini mudah, kelebihan dari model ini adalah ketika semua kebutuhan sistem
dapat didefinisikan secara utuh, eksplisit, dan benar di awal proyek, maka
Software Engineering (SE) dapat berjalan dengan baik dan tanpa masalah.
Meskipun seringkali kebutuhan sistem tidak dapat didefinisikan se-eksplisit yang
diinginkan, tetapi paling tidak, problem pada kebutuhan sistem di awal proyek
lebih ekonomis dalam hal uang (lebih murah), usaha, dan waktu yang terbuang
lebih sedikit jika dibandingkan problem yang muncul pada tahap-tahap
selanjutnya.
Kekurangan yang utama dari model ini adalah kesulitan dalam
mengakomodasi perubahan setelah proses dijalani. Fase sebelumnya harus
lengkap dan selesai sebelum mengerjakan fase berikutnya.
2.3
Unified Modelling Language (UML)
Unified
Modelling
Language
(UML)
adalah
suatu
alat
untuk
memvisualisasikan dan mendokumentasikan hasil analisa dan desain yang berisi
sintak dalam memodelkan sistem secara visual. Juga merupakan satu kumpulan
konvensi pemodelan yang digunakan untuk menentukan atau menggambarkan
sebuah sistem software yang terkait dengan objek (Haviluddin, 2011, p1).
Secara filosofi UML diilhami oleh konsep yang telah ada yaitu konsep
permodelan Object Oriented karena konsep ini menganalogikan sistem seperti
kehidupan nyata yang didominasi oleh obyek dan digambarkan atau dinotasikan
dalam simbol-simbol yang cukup spesifik (Haviluddin, 2011, p1-2).
Menurut Haviluddin (2011, p3-5) UML memiliki 13 jenis diagram, yaitu :
1.
Class diagram
Class diagram menggambarkan struktur statis dari kelas dalam sistem
anda dan menggambarkan atribut, operasi dan hubungan antara kelas.
Class diagram membantu dalam memvisualisasikan struktur kelas-
http://digilib.mercubuana.ac.id/
11
kelas dari suatu sistem dan merupakan tipe diagram yang paling
banyak dipakai. Selama tahap desain, class diagram berperan dalam
menangkap struktur dari semua kelas yang membentuk arsitektur
sistem yang dibuat.
2.
Object diagram
Object diagram menggambarkan kejelasan kelas dan warisan dan
kadang-kadang diambil ketika merencanakan kelas, atau untuk
membantu pemangku kepentingan non-program yang mungkin
menemukan diagram kelas terlalu abstrak.
3.
Component diagram
Component diagram menggambarkan struktur fisik dari kode,
pemetaan pandangan logis dari kelas proyek untuk kode aktual di
mana logika ini dilaksanakan.
4.
Deployment diagram (Collaboration diagram in version 1.x)
Deployment diagram memberikan gambaran dari arsitektur fisik
perangkat lunak, perangkat keras, dan artefak dari sistem. Deployment
diagram dapat dianggap sebagai ujung spektrum dari kasus
penggunaan,
menggambarkan
bentuk
fisik
dari
sistem
yang
bertentangan dengan gambar konseptual dari pengguna dan perangkat
berinteraksi dengan sistem.
5.
Composite structure diagram
Sebuah diagram struktur komposit mirip dengan diagram kelas, tetapi
menggambarkan bagian individu, bukan seluruh kelas. Kita dapat
menambahkan konektor untuk menghubungkan dua atau lebih bagian
dalam atau ketergantungan hubungan asosiasi.
6.
Package diagram
Paket diagram biasanya digunakan untuk menggambarkan tingkat
organisasi yang tinggi dari suatu proyek software. Atau dengan kata
lain untuk menghasilkan diagram ketergantungan paket untuk setiap
paket dalam Pohon Model.
http://digilib.mercubuana.ac.id/
12
7.
Use case diagram
Diagram yang menggambarkan actor, use case dan relasinya sebagai
suatu urutan tindakan yang memberikan nilai terukur untuk aktor.
Sebuah use case digambarkan sebagai elips horizontal dalam suatu
diagram UML use case.
8.
Activity diagram
Menggambarkan aktifitas-aktifitas, objek, state, transisi state dan
event. Dengan kata lain kegiatan diagram alur kerja menggambarkan
perilaku sistem untuk aktivitas.
9.
State Machine diagram (State chart diagram in version 1.x)
Menggambarkan state, transisi state dan event.
10.
Communication diagram
Serupa dengan sequence diagram, tetapi diagram komunikasi juga
digunakan untuk memodelkan perilaku dinamis dari use case. Bila
dibandingkan dengan Sequence diagram, diagram komunikasi lebih
terfokus pada menampilkan kolaborasi benda daripada urutan waktu.
11.
Interaction Overview diagram
Interaksi overview diagram berfokus pada gambaran aliran kendali
interaksi dimana node adalah interaksi atau kejadian interaksi.
12.
Sequence diagram
Sequence diagram menjelaskan interaksi objek yang disusun
berdasarkan urutan waktu. Secara mudahnya sequence diagram adalah
gambaran tahap demi tahap, termasuk kronologi (urutan) perubahan
secara logis yang seharusnya dilakukan untuk menghasilkan sesuatu
sesuai dengan use case diagram.
13.
Timing diagram
Timing diagram di UML didasarkan pada diagram waktu hardware
awalnya dikembangkan oleh para insinyur listrik.
http://digilib.mercubuana.ac.id/
13
2.3.1 Use Case Diagram
Use
case
diagram
menggambarkan
fungsionalitas
yang
diharapkan dari sebuah sistem. Yang ditekankan adalah “apa” yang
diperbuat sistem, dan bukan “bagaimana”. Use Case dilakukan oleh
satu actor yang digambarkan dengan simbol orang yang dihubungkan
dengan garis yang menunjukan hubungan komunikasi. Setiap Use
Case harus diberi nama yang menyatakan apa hal yang dicapai dari
hasil interaksi dengan Actor. Nama Use Case boleh terdiri dari
beberapa kata dan tidak boleh ada Use Case yang memiliki nama yang
sama (Rosa dan Shalahuddin, 2011).
Diagram yang menggambarkan actor, use case dan relasinya
sebagai suatu urutan tindakan yang memberikan nilai terukur untuk
aktor. Sebuah use case digambarkan sebagai elips horizontal dalam
suatu diagram UML use case (Haviluddin, 2011, p4).
Tabel 2.1 : Simbol Use Case Diagram (Rosa dan Shalahuddin, 2011)
Simbol
Nama
Keterangan
Orang, proses, atau sistem lain yang
berinteraksi dengan sistem informasi
Actor
yang akan dibuat
informasi
diluar sistem
yang akan
dibuat
itu
sendiri, jadi walaupun simbol dari
actor adalah gambar orang biasanya
dinyatakan menggunakan kata benda
diawal frase nama actor.
Fungsionalitas
yang
disediakan
sistem sebagai unit-unit yang saling
Use Case
bertukar pesan antara unit atau actor
biasanya
dinyatakan
dengan
menggunakan kata kerja diawal frase
nama use case.
http://digilib.mercubuana.ac.id/
14
Ektensi/extend
Relasi use case tambahan ke sebuah
use case dimana use case yang
ditambahkan dapat berdiri sendiri
walau tanpa use case.
Relasi use case tambahkan ke sebuah
use case dimana use case yang
ditambahkan memerlukan use case
Include
ini untuk menjalankan fungsinya atau
syarat dijalankan use case ini.
Association/asosiasi
Generalization/
Generalisasi
Apa yang menghubungkan antara
objek satu dengan objek lainnya.
Disebut juga inheritance (pewarisan),
sebuah elemen dapat merupakan
spesialisasi dari elemen lainnya.
2.3.2 Activity Diagram
Activity diagram memodelkan alur kerja (work flow). Sebuah
proses bisnis dan urutan aktifitas dalam suatu proses. Diagram ini
sangat mirip dengan sebuah flowchart karena kita dapat memodelkan
sebuah alur kerja dari aktifitas keaktifitas lainnya atau dari suatu
aktifitas kedalam keadaan sesaat (state) (Rosa dan Shalahuddin,
2011).
Menggambarkan aktifitas-aktifitas, objek, state, transisi state
dan
event.
Dengan
kata
lain
kegiatan
diagram
alur
kerja
menggambarkan perilaku sistem untuk aktivitas (Haviluddin, 2011,
p4).
Tabel 2.2 : Simbol Activity Diagram (Rosa dan Shalahuddin, 2011)
Simbol
Nama
Aktivitas
Keterangan
Aktivitas yang dilakukan sistem, aktivitas
biasanya diawali dengan kata kerja.
http://digilib.mercubuana.ac.id/
15
Status awal aktivitas sistem, sebuah
Status Awal
diagram aktivitas memiliki sebuah status
awal.
Status Akhir
Status
akhir
yang
dilakukan
sistem,
sebuah
diagram
aktivitas
memiliki sebuah status akhir.
Percabangan/
decision
Penggabungan/
Joint
Asosisasi percabangan dimana jika ada
pilihan aktivitas lebih dari satu.
Asosiasi penggabungan dimana lebih dari
satu aktivitas digabung menjadi satu.
Memisahkan
Swimlane
organisasi
bisnis
yang
bertanggung jawab terhadap aktivitas
yang terjadi.
2.3.3 Sequence Diagram
Diagram sequence merupakan gambaran interaksi antar objek di
dalam dan di sekitar sistem berupa massage yang digambarkan
terhadap waktu. Diagram ini secara khusus berasosiasi dengan Use
Case. Diagram sequence juga digunakan untuk menggambarkan
skenario atau rangkain langkah-langkah apa yang seharusnya terjadi
sebagai respons dari sebuah event untuk menghasilkan sesuatu
didalam Use Case sebagai output. Untuk massage digambarkan
sebagai garis berpanah dari satu objek ke objek lainnya. Pada fase
desain berikutnya, message dipetakan menjadi operasi/metode dari
class. Activation bar menunjukan lamanya eksekusi sebuah proses,
biasanya diawali dengan sebuah message (Rosa dan Shalahuddin,
2011).
Sequence diagram menjelaskan interaksi objek yang disusun
berdasarkan urutan waktu. Secara mudahnya sequence diagram adalah
gambaran tahap demi tahap, termasuk kronologi (urutan) perubahan
http://digilib.mercubuana.ac.id/
16
secara logis yang seharusnya dilakukan untuk menghasilkan sesuatu
sesuai dengan use case diagram (Haviluddin, 2011, p5).
Tabel 2.3 : Simbol Sequence Diagram (Rosa dan Shalahuddin, 2011)
Simbol
Nama
Object
LifeLine
Activation
Message
(Call)
Message
Message
(Return)
Message
(Return)
Keterangan
Partisipan Form.
Merupakan sebuah focus dari control
pada suatu waktu.
Pesan
yang
pemanggilan yang terjadi antar objek.
Pesan yang menggambarkan komunikasi
yang terjadi antar objek.
Pesan yang dikirim untuk diri sendiri.
Pesan yang dikirim untuk diri sendiri.
Menambahkan
Lifetime
2.4
menggambarkan
pemulaan
dan
menghentikan titik dari suatu object.
Interaksi Manusia dan Komputer (IMK)
Menurut Shneiderman dan Plaisant (2010), Interaksi manusia dan komputer
adalah sebuah ilmu yang mempelajari hubungan dan interaksi yang terjadi antara
http://digilib.mercubuana.ac.id/
17
manusia dan komputer. Fokus dari interaksi manusia dan komputer adalah
perancangan dan evaluasi antarmuka pengguna (user interface).
Eight Golden Rules of Interface Design menurut Shneiderman dan Plaisant
(2010) aturan yang dapat digunakan sebagai pedoman dasar yang baik dalam
merancang sebuah user interface adalah sebagai berikut :
1.
Strive for consistency
Sebuah aplikasi harus memiliki tampilan dan operasional yang
konsisten. Hal ini mencakup konsisten pada warna, layout, jenis
tulisan, menu, ukuran dan harus berada pada letak yang sama serta hal
lainnya harus diterapkan secara konsisten.
2.
Cater to universal usability
Sebuah aplikasi harus memberikan keterangan pada setiap fitur bagi
pengguna yang baru dan menyediakan shortcuts bagi pengguna yang
sudah ahli (expert).
3.
Offer informative feedback
Sebuah aplikasi harus memberikan umpan balik (feedback) terhadap
setiap aksi yang dilakukan oleh pengguna.
4.
Design dialogs to yield closure
Urutan aksi harus dirancang menjadi beberapa bagian seperti bagian
awal, bagian tengah, dan bagian akhir. Memberikan umpan balik
apabila aksi pengguna yang sedang dilakukan telah selesai dan
melanjutkan aksi selanjutnya.
5.
Pervent errors
Sebuah aplikasi dirancang agar pengguna tidak melakukan kesalahan
yang fatal. Jika pengguna melakukan kesalahan, sistem harus
mendeteksi kesalahan dan memberikan intruksi yang sederhana dan
mudah dipahami untuk melakukan perbaikan kesalahan tersebut.
6.
Permit easy reversal of actions
Suatu aplikasi harus disediakan fitur yang memungkinkan pengguna
untuk kembali ke aksi sebelumnya, sehingga pengguna dapat mencoba
pilihan-pilihan lain yang belum biasa digunakan.
http://digilib.mercubuana.ac.id/
18
7.
Support internal locus of control
Sebuah aplikasi dirancang harus bisa dikendalikan oleh pengguna
yang memiliki keinginan untuk mengontrol sistem dan sistem akan
memberikan umpan balik terhadap aksi yang dilakukan pengguna.
Sebaiknya sistem dirancang agar pengguna dapat mengetahui
langkah-langkah apa saja yang harus diambil.
8.
Reduce short term memory load
Pengguna memiliki keterbatasan ingatan sehingga sebuah aplikasi
harus dirancang dengan tampilan yang sederhana agar mudah
dimengerti dan diingat oleh pengguna.
Shneiderman dan Plaisant (2010), menyatakan bahwa dalam merancang
sebuah sistem yang ramah (friendly) untuk user maka harus memperhatikan 5
(lima) faktor sebagai berikut :
1.
Waktu Belajar
Berapa lama waktu yang dibutuhkan pengguna untuk mempelajari
sekumpulan perintah suatu aplikasi. Dengan kata lain kemudahan
dalam mengoperasikan aplikasi sehingga pengguna dapat dengan
mudah menggunakan aplikasi tersebut.
2.
Kecepatan Kinerja
Berapa lama waktu yang diperlukan untuk mengerjakan suatu tugas.
Pengguna menginginkan kecepatan penyajian informasi yang cepat.
3.
Tingkat Kesalahan
Berapa lama kesalahan dan jenis kesalahan apa saja yang dilakukan
oleh pengguna dalam menyesesaikan suatu tugas. Aplikasi harus
memiliki tingkat kesalahan yang rendah bila sedang digunakan.
4.
Daya Ingat
Daya ingat berkaitan dengan waktu belajar. Semakin sering pengguna
menggunakan aplikasi, maka semakin mudah pengguna dalam
mengingat aplikasi tersebut. Aplikasi juga harus mudah digunakan
sehingga pengguna hanya memerlukan waktu belajar yang singkat.
http://digilib.mercubuana.ac.id/
19
5.
Kepuasan Subjektif
Bagaimana tingkat kepuasan pengguna terhadap berbagai aspek dari
aplikasi. Kepuasan subjektif pengguna dapat diketahui dari hasil
kusioner terhadap aplikasi tersebut.
2.5
Pengertian Java
Java adalah bahasa pemrograman yang dapat dijalankan diberbagai
komputer termasuk telepon gengam. Bahasa ini awalnya dibuat oleh James Goslin
saat masih bergabung di Sun Microsystem, saat ini merupakan bagian dari Oracle
dan dirilis tahun 1995. Bahasa ini banyak mengadopsi sintaksis yang terdapat
pada C dan C++ namun dengan sintaksis model objek yang lebih sederhana serta
dukungan rutin-rutin aras bawah yang minimal.
Aplikasi-aplikasi berbasis Java umumnya dikompilasi ke dalam p-code
(bytecode) dan dapat dijalankan pada berbagai Mesin Virtual Java (JVM). Java
merupakan bahasa pemrograman yang bersifat umun/non-spesifik (general
purpose), dan secara khusus didisain untuk memanfaatkan dependensi
implementasi seminimal mungkin. Karena fungsionalitasnya yang memungkinkan
aplikasi java mampu berjalan di beberapa platform sistem operasi yang berbeda,
Java dikenal pula dengan slogannya, “tulis sekali, jalankan dimanapun”. Saat ini
java merupakan bahasa pemrograman yang paling populer digunakan dan secara
luas dimanfaatkan dalam pengembangan berbagai jenis perangkat lunak aplikasi
ataupun aplikasi berbasis web (Gata, 2012).
2.6
Keunggulan Java
Java memiliki beberapa keunggulan bila dibandingkan dengan bahasa
pemrograman lainnya. Menurut Hermawan (2004), terdapat 5 aspek yang menjadi
keunggulan Java, yaitu :
1.
Java bersifat sederhana dan relatif lebih mudah.
Bentuk model Java sebagian besar berasal dari bahasa C++. Namun
ada beberapa karakteristik yang diperbaiki pada C++, seperti
http://digilib.mercubuana.ac.id/
20
mengurangi kompleksitas beberapa fitur, penambahan fungsionalitas,
dan penghilangan beberapa aspek pemicu ketidakstabilan sistem pada
C++.
2.
Java berorientasi pada objek (Object Oriented).
Java merupakan bahasa pemrograman yang berorientasi objek (OOP)
dan bukan seperti Pascal, Basic maupun C yang berbasis prosedural.
Dalam memecahkan masalah, Java membagi program menjadi objekobjek yang kemudian memodelkan sifat dan tingkah laku masingmasing. Java juga menentukan dan mengatur interaksi antara objek
yang satu dengan lainnya.
3.
Java bersifat terdistribusi.
Pada dekade awal perkembangan PC (Personal Computer), komputer
hanya bersifat sebagai workstation tunggal dan tidak terhubung satu
sama lain. Sedangkan saat ini, sistem komputerisasi cenderung
terdistribusi, mulai dari workstation client, e-mail server, database
server, web server, proxy server, dan sebagainya.
4.
Java bersifat multiplatform.
Sekarang ini mengenal banyak platform sistem operasi, mulai dari
Windows, Apple, dan berbagai varian UNIX dan Linux. Pada
umunya, program yang dibuat dan di-compile di suatu platform hanya
bisa dijalankan di platform tersebut. Java bersifat multiplatform, yakni
dapat aplikasi yang dibuat dengan bahasa Java dapat diterjemahkan
oleh Java Interpreter pada berbagai sistem operasi.
5.
Java bersifat multithread.
Thread adalah proses yang dapat dikerjakan oleh program dalam suatu
waktu. Java bersifat multithreaded, artinya dapat mengerjakan
beberapa proses dalam waktu yang hampir bersamaan.
2.7
Algoritma Fisher Yates Shuffle
Algoritma adalah langkah-langkah yang logis dan terstruktur untuk
menyelesaikan suatu permasalahan. Yang dimaksud logis dalam hal ini adalah
http://digilib.mercubuana.ac.id/
21
bahwa langkah yang diambil masuk akal dan dapat dinilai benar atau salahnya.
Sedangkan terstruktur memiliki pengertian bahwa langkah tersebut susunan sesuai
urutan kejadian atau waktu.
Shuffle atau dikenal dengan pengacakan merupakan teknik yang digunakan
untuk mengacak urutan dari sekelompok angka, teks, atau data. Proses
pengacakan saat ini banyak digunakan dalam pengembangan perangkat lunak.
Proses pengacakan yang dilakukan terhadap urutan angka, teks, atau data akan
menghasilkan permutasi acak.
Fisher Yates Shuffle (diambil dari nama Ronald Fisher dan Frank Yates)
atau juga dikenal dengan nama Knuth Shuffle (diambil dari nama Donald Knuth),
adalah sebuah algoritma untuk menghasilkan suatu permutasi acak dari suatu
himpunan terhingga, dengan kata lain untuk mengacak suatu himpunan tersebut.
Jika diimplementasikan dengan benar, maka hasil dari algoritma ini tidak akan
berat sebelah, sehingga setiap permutasi memiliki kemungkinan yang sama
(Ibijola dan Olu, 2012).
Proses dasar dari Fisher-Yates Shuffle mirip dengan mengambil kartu dari
setumpuk kartu satu demi satu sampai tidak ada yang tersisa. Algoritma FisherYates dianggap oleh banyak orang sebagai metode yang objektif dan optimal
untuk menghasilkan permutasi yang benar-benar acak dari himpunan berhingga.
Fisher-Yates Shuffle, dalam bentuk aslinya digambarkan pada tahun 1938
oleh Ronald Fisher dan Frank Yates, dalam tabel buku statistik mereka untuk
penelitian biologi, pertanian dan medis “Statistical tables for biological,
agricultural and medical research”. Versi asli dilaksanakan secara manual,
menggunakan pensil dan kertas dengan meja yang telah diberi nomor secara acak
untuk menghasilkan kemungkinan acak.
Flowchart yang menggambarkan langkah dari Fisher-Yates dalam bentuk
aslinya dapat di lihat pada gambar 2.1 :
http://digilib.mercubuana.ac.id/
22
Gambar 2.1 : Flowchart illustrating the steps of Original FYS
(Ibijola dan Olu, 2012, p25)
Metode dasar yang digunakan untuk menghasilkan suatu permutasi acak
untuk angka 1 sampai N adalah sebagai berikut :
1.
Tuliskan angka dari 1 sampai N.
2.
Pilih sebuah angka acak K diantara 1 sampai dengan jumlah angka
yang belum dicoret.
3.
Dihitung dari bawah, coret angka K yang belum dicoret, dan tuliskan
angka tersebut di lain tempat.
4.
Ulangi langkah 2 dan langkah 3 sampai semua angka sudah tercoret.
5.
Urutan angka yang dituliskan pada langkah 3 adalah permutasi acak
dari angka awal.
Pada versi modern digunakan sekarang, angka yang terpilih tidak dicoret,
tetapi posisinya ditukar dengan angka terakhir dari angka yang belum terpilih.
Berikut ini adalah contoh pengerjaan dari versi modern. Range adalah
jumlah angka yang belum terpilih, roll adalah angka acak yang terpilih, scratch
http://digilib.mercubuana.ac.id/
23
adalah daftar angka yang belum terpilih, dan result adalah hasil permutasi yang
akan didapatkan.
Tabel 2.4 : Contoh Pengerjaan Algoritma Fisher Yates Shuffle
Range
Roll
Scratch
Result
12345678
1-8
6
1234587
1-7
2
173458
1-6
6
17345
1-5
1
5734
1-4
3
574
1-3
3
57
1-2
1
7
6
26
826
1826
31826
431826
5431826
Permutasi yang didapatkan adalah 7 5 4 3 1 8 2 6.
Penelitian tentang A Simulated Enhancement of Fisher-Yates Algorithm for
Shuffling Virtual Card Games using Domain-Specific Data Structures (Ibijola dan
Olu, 2012) melakukan implementasi terhadap game virtual card menggunakan
algoritma Fisher Yates Shuffle.
Penelitian ini menerapkan algoritma Fisher Yates Shuffle untuk melakukan
pengacakan terhadap 54 kartu. Artinya, kemungkinan permutasi dari 54 kartu
tersebut adalah 54! atau sekitar 2,3 x 1071 urutan yang mungkin. Namun karena
game virtual card yang diimplementasikan adalah Whot Cards, maka dari 54
kartu, hanya 12 urutan kartu saja yang dibutuhkan, sehingga permutasinya dapat
diurutkan dengan kemungkinan 12! urutan atau 479.001.600 urutan yang
mungkin.
Yang dimaksud dengan domain-specific data structures dalam penelitian ini
adalah struktur data generic list. Peneliti menggunakan struktur data generic list
dengan IDE Visual Basic.Net. Generic merupakan object collection pada VB.Net
yang sudah typed-safe yang terdiri dari object collection Array, List, Dictionary,
http://digilib.mercubuana.ac.id/
24
Sorted Dictionary, Queue, dan Stack. Dalam penelitian ini object collection yang
digunakan adalah List.
2.8
Pengertian Alarm Weker
Alarm secara umum dapat didefinisikan sebagai bunyi peringatan atau
pemberitahuan. Weker adalah jam dengan perangkat yang dapat dibuat terdengar
pada saat ditetapkan di muka yang digunakan untuk membangunkan seseorang
(encyclopedia.com, 2009).
Jam weker atau beker adalah jam untuk kamar tidur yang dilengkapi dengan
alarm (lonceng) yang bisa disetel untuk berbunyi pada jam dan menit yang
ditentukan. Jam weker dipakai untuk membangunkan orang yang sedang tidur
atau sebagai alat pengukur waktu. Hampir semua jam weker memiliki sebuah
tombol yang bisa ditekan agar dering lonceng (bunyi alarm) bisa berhenti.
2.9
Pengertian Handphone
Ponsel atau bisa juga disebut Handphone (telepon genggam atau telepon
seluler) merupakan telepon yang termasuk dalam sambungan telepon bergerak,
dimana yang menghubungkan antar sesama ponsel tersebut adalah gelombanggelombang radio yang dilewatkan dari pesawat ke BTS (Base Tranceiver Station)
dan MSC (Mobile Switching Center) yang bertebaran di sepanjang jalur
perhubungan kemudian diteruskan ke pesawat yang dipanggil (Saydam, 2005).
Telepon seluler (ponsel) atau handphone (HP) atau disebut sebagai
perangkat telekomunikasi elektronik yang mempunyai kemampuan dasar yang
sama dengan telepon konvensional saluran tetap, namun dapat dibawa ke manamana (portabel, mobile) dan tidak perlu disambungkan dengan jaringan telepon
menggunakan kabel (nirkabel, wireless). Saat ini Indonesia mempunyai dua
jaringan telepon nirkabel yaitu sistem GSM (Global System for Mobile
Telecommunications) dan sistem CDMA (Code Division Multiple Access).
2.10 Pengertian Aplikasi Mobile
Aplikasi mobile merupakan aplikasi yang berfungsi untuk memudahkan
pengguna
dalam
mencari
informasi,
hiburan
maupun
http://digilib.mercubuana.ac.id/
edukasi
dengan
25
menyediakan layanan serupa dengan yang diakses pada PC. Aplikasi ini pada
umumnya berukuran kecil, unit perangkat lunak individu dengan fungsi yang
terbatas dan mengadopsi dari perangkat lunak yang biasanya terintegrasi atau
yang ditemukan pada PC. Tetapi, dengan modifikasi atau pengembangan khusus
untuk lingkungan mobile, dengan keterbatasan dan kelebihannya masing-masing
(Susanto dan Kamal, 2014).
2.11 Pengertian Android
Android adalah sistem operasi untuk handphone yang berbasis Linux.
Android menyediakan platform terbuka bagi para pengembang buat menciptakan
aplikasi mereka sendiri untuk digunakan oleh bermacam peranti bergerak.
Awalnya, Google Inc. membeli Android Inc. pendatang baru yang membuat
peranti lunak untuk handphone. Kemudian untuk mengembangkan Android,
dibentuklah Open Handset Alliance, konsorsium dari 34 perusahaan peranti keras,
peranti lunak, dan telekomunikasi (Safaat, 2012).
Pada saat perilisan perdana Android, 5 November 2007, Android bersama
Open Handset Alliance menyatakan mendukung pengembangan standar terbuka
pada perangkat seluler. Di lain pihak, Google merilis kode-kode Android di
bawah lisensi Apache, sebuah lisensi perangkat software dan standar terbuka
perangkat seluler.
Di dunia ini terdapat dua jenis distributor sistem operasi Android. Pertama
yang mendapat dukungan penuh dari Google atau Google Mail Services (GMS)
dan kedua adalah yang benar-benar bebas distribusinya tanpa dukungan langsung
Google atau dikenal sebagai Open Handset Distribution (OHD).
1.
Kelebihan Android
 Multitasking, dimana Android mampu membuka beberapa aplikasi
sekaligus tanpa harus menutup salah satunya.
http://digilib.mercubuana.ac.id/
26
 Kemudahan dalam Notifikasi, setiap ada SMS, Email, atau bahkan
artikel terbaru dari RSS Reader, akan selalu ada notifikasi di Home
Screen Ponsel Android.
 Akses Mudah terhadap Ribuan Aplikasi Android lewat Google
Android App Market, kemudahan bagi pengguna yang gemar install
aplikasi ataupun games, lewat Google Android App Market maka bisa
mendownload berbagai aplikasi dengan gratis.
 Pilihan Ponsel yang beranekaragam, ponsel Android, akan terasa
“beda” dibandingkan dengan iOS, jika iOS hanya terbatas pada
iPhone dari Apple, maka Android tersedia di ponsel dari berbagai
produsen, mulai dari Sony Ericsson, Motorola, HTC sampai Samsung.
Dan setiap pabrikan ponsel-pun menghadirkan ponsel Android dengan
gaya masing-masing, seperti Motorola dengan Motoblur-nya, Sony
Ericsson dengan TimeScape-nya.
 Bisa menginstal ROM yang dimodifikasi, jika tidak puas dengan
tampilan standar Android, ada banyak Costum ROM yang bisa
dipakai di ponsel Android.
 Widget, dapat dengan mudah mengakses berbagai setting dengan
cepat dan mudah.
2.
Kelemahan Android
 Koneksi Internet yang terus menerus, kebanyakan ponsel berbasis
sistem ini memerlukan koneksi internet yang simultan alias terus
menerus aktif. Koneksi internet GPRS selalu aktif setiap waktu, itu
artinya harus berlangganan paket GPRS yang sesuai dengan
kebutuhan.
 Iklan. Aplikasi di Ponsel Android memang bisa didapatkan dengan
mudah dan gratis, namun konsekuensinya di setiap Aplikasi tersebut,
akan selalu ada Iklan yang terpampang, entah itu bagian atas atau
bawah aplikasi.
http://digilib.mercubuana.ac.id/
27
2.12 Android Studio
Android studio merupakan sebuah Integrated Development Environment
(IDE) untuk platform Android. Android Studio ini diumumkan pada tanggal 16
Mei 2013 pada Konferensi Google I/O oleh Produk Manajer Google, Ellie
Powers. Android studio bersifat free dibawah Apache License 2.0. Android Studio
awalnya dimulai dengan versi 0.1 pada bulan Mei 2013, Kemudian dibuat versi
beta 0.8 yang dirilis pada bulan Juni 2014. Yang paling stabil dirilis pada bulan
Desember 2014, dimulai dari versi 1.0. Berbasiskan JetBrainns’ IntelliJ IDEA,
Studio di desain khusus untuk Android Development (developer.android.com,
2016).
2.13 Keunggulan Android Studio
Berikut ini beberapa keunggulan yang terdapat pada Android Studio
(developer.android.com, 2016) :
1.
Live Layout : WYSIWYG Editor - Live Coding - Real time App
Rendering.
2.
Developer Console : optimization tips, assistance for translation,
referral tracking, campaigning and promotions - Usage Metrics.
3.
Provision for beta releases and staged rollout.
4.
Gradle-based build support.
5.
Android - specific refactoring and quick fixes.
6.
Lint tools to catch performance, usability, version compatibility and
other problems.
7.
ProGuard and app-signing capabilities.
8.
Template-based wizards to create common Android designs and
components.
9.
A rich layout editor that allows user to drag-and-drop UI components,
option to preview layouts on multiple screen configurations.
10.
Support for building Android Wear apps.
11.
Built-in support for Google Cloud Platform, enabling integration with
Google Cloud Messaging and App Engine.
http://digilib.mercubuana.ac.id/
28
Tabel 2.5 : Fitur-fitur Android Studio (developer.android.com, 2016)
Features
Android Studio
Build system
Gradle
Maven - based build dependencies
YES
Build variants and multiple APK generation
YES
Advanced Android code completion and refactoring
YES
Graphical layout editor
YES
APK Signing and keystore management
YES
2.14 Android SDK
Android SDK merupakan tools bagi para programmer yang ingin
mengembangkan aplikasi berbasis google Android. Android SDK mencakup
seperangkat alat pengembangan yang komprehensif. Android SDK terdiri dari
debugger, libraries, handset emulator, dokumentasi, contoh kode, dan tutorial.
Saat ini Android seudah mendukung arsitektur x86 pada Linux (distribusi Linux
apapun untuk desktop modern), Mac OS X 10.4.8 atau lebih, Windows XP atau
Vista. Persyaratan mencakup JDK, Apache Ant dan Python 2.2 atau yang lebih
baru. IDE yang didukung secara resmi adalah Eclipse 3.2 atau lebih dengan
menggunakan plugin
Android
Development
Tools
(ADT), dengan ini
pengembang dapat menggunakan teks editor untuk mengedit file Java dan XML
serta menggunakan peralatan command line untuk menciptakan, membangun,
melakukan debug aplikasi Android dan pengendalian perangkat Android
(misalnya reboot, menginstall paket perangkat lunak dengan jarak jauh). Aplikasi
Android dipaketkan ke dalam format .apk dan disimpan pada folder /data/app.
Pengguna dapat menjalankan perintah adb root untuk mengakses folder tersebut
karena root memiliki izin untuk mengakses folder tersebut (Huda, 2012).
http://digilib.mercubuana.ac.id/
29
2.15 Black Box Testing
Pengujian menggunakan sekumpulan aktifitas validasi, dengan pendekatan
black box testing. Menurut Rosa dan Shalahuddin (2011), black box testing adalah
menguji perangkat lunak dari segi spesifikasi fungsional tanpa menguji desain dan
kode program. Pengujian dimaksudkan untuk mengetahui apakah fungsi-fungsi,
masukan, dan keluaran dari perangkat lunak sesuai dengan spesifikasi yang
dibutuhkan. Pengujian kotak hitam dilakukan dengan membuat kasus uji yang
bersifat mencoba semua fungsi dengan memakai perangkat lunak apakah sesuai
dengan spesifikasi yang dibutuhkan. Kasus uji yang dibuat untuk melakukan
pengujian black box testing harus dibuat dengan kasus benar dan kasus salah.
http://digilib.mercubuana.ac.id/
Download