BAB 2 LANDASAN TEORI
2.1 Teori-Teori Dasar/Umum 2.1.1 Teknologi Mobile 2.1.1.1 Mobile Application Menurut
Mobile
Marketing
Association
(2008)
mobile
application adalah perangkat lunak yang berjalan pada perangkat mobile seperti smartphone atau tablet PC. Mobile Application juga dikenal sebagai aplikasi yang dapat diunduh dan memiliki fungsi tertentu sehingga menambah fungsionalitas dari perangkat mobile itu sendiri. Untuk mendapatkan mobile application yang diinginkan, user dapat mengunduhnya melalui situs tertentu sesuai dengan sistem operasi yang dimiliki. Google Play dan iTunes merupakan beberapa contoh dari situs yang menyediakan beragam aplikasi bagi pengguna Android dan iOS untuk mengunduh aplikasi yang diinginkan. Berdasarkan Mobile Marketing Association (2008), mobile application dapat dikelompokkan menjadi enam kategori yaitu: 1. Komunikasi Aplikasi yang membantu user untuk meningkatkan kemudahan dalam melakukan komunikasi. Contoh: email clients, instant messenger (IM) clients, browser, social network clients. 9
10 2. Permainan Aplikasi yang berisi beragam permainan, bertujuan sebagai sarana hiburan bagi pengguna aplikasi. Contoh: puzzle, cards, action, sports. 3. Multimedia Aplikasi yang membantu user untuk melakukan aktivitas yang berhubungan dengan gambar, audio, serta video. Contoh: video players, audio players, image viewers. 4. Produktivitas Aplikasi yang membantu user untuk mengatur ataupun meningkatkan produktivitas user. Contoh: kalender, kalkulator, notepad, banking/finance. 5. Travel Aplikasi yang dapat membantu user ketika user melakukan perjalanan. Contoh: Global Positioning System (GPS), translator. 6. Utilities Aplikasi yang berfungsi untuk membantu user dalam mengatur ataupun merancang keperluan yang dibutuhkan. Contoh: address book, task manager, call manager, file manager.
2.1.1.2 Smartphone Mengacu pendapat Allen, Graupera & Lundrigan (2010) smartphone adalah telepon yang memiliki keyboard QWERTY, baik itu keyboard fisik ataupun layar sentuh, dan memiliki layar yang lebih
11 besar dengan resolusi yang lebih tinggi serta memiliki kemampuan device yang lebih banyak. Layaknya sebuah komputer, smartphone juga memiliki sistem operasi untuk dapat menjalankannya. Berbagai contoh sistem operasi yang ada pada smartphone saat ini yaitu Symbian, RIM Blackberry, iOS, Windows Phone dan Android (Allen, Graupera & Lundrigan, 2010). Berikut ini merupakan fitur-fitur yang ditawarkan pada smartphone menurut Nichols (2003): 1. Mengakses jaringan seluler dengan standar seluler yang berbeda seperti Global System for Mobile (GSM) ataupun Code Division Multiple Access (CDMA). 2. Mengakses jaringan internet dengan menggunakan jaringan yang berbeda, seperti infrared, bluetooth, GPRS/CDMA1X dan 802.11 atau menggunakan kabel protocol TCP/IP. 3. Dapat menjalankan beragam aplikasi secara bersamaan. 4. Data yang ada pada smartphone dapat disinkronisasi dengan personal computer (PC). 5. Application Programming Interface (API) yang terbuka bagi pengembangan aplikasi.
12 2.1.2 Interaksi Manusia dan Komputer 2.1.2.1 Pengertian Interaksi Manusia dan Komputer Menurut Shneiderman dan Plaisant (2010), Interaksi manusia dan komputer merupakan sebuah ilmu yang mempelajari tentang hubungan antara manusia dan komputer melalui perancangan, evaluasi dan implementasi terhadap user interface, sehingga pengguna komputer dapat lebih mudah memahaminya.
2.1.2.2 Lima Faktor Manusia Terukur Berdasarkan pernyataan Shneiderman dan Plaisant (2010), Interaksi yang dekat dengan komunitas pengguna merupakan langkah tepat untuk mengetahui dasar-dasar tentang kegunaan tujuan dan pengukuran sebuah desain. Terdapat lima faktor yang mempengaruhi pengukuran terhadap perancangan sistem user interface: 1. Waktu belajar Waktu belajar adalah waktu yang dibutuhkan oleh pengguna untuk mempelajari bagaimana sebuah aksi dapat menjalankan suatu tugas. 2. Kecepatan kinerja Kecepatan kinerja dapat didefinisikan sebagai waktu yang dibutuhkan seseorang untuk menjalankan suatu tugas. 3. Tingkat kesalahan pengguna Berapa banyak dan jenis kesalahan apa saja yang dilakukan oleh pengguna dalam melaksanakan tugas.
13 4. Daya ingat Bagaimana
kemampuan
pengguna
mempertahankan
pengetahuannya dalam jangka waktu tertentu. 5. Kepuasan subjektif Bagaimana ketertarikan pengguna terhadap aspek-aspek yang terdapat pada interface.
2.1.2.3 Delapan Aturan Emas Mengacu pernyataan Shneiderman dan Plaisant (2010) terdapat delapan aturan yang disebut sebagai “Golden Rules” yang dipakai dalam desain interface yang baik. Delapan aturan emas tersebut ialah: 1. Berusaha untuk konsisten Konsistensi
dibutuhkan
dalam
berbagai
situasi
seperti
penggunaan warna, tampilan, jenis tulisan dan seluruh bagian lainnya. 2. Melayani kegunaan yang universal Mengetahui perbedaan kebutuhan antar user, seperti tingkat perbedaan novice user hingga expert user, perbedaan umur, dan perbedaan tingkat teknologi. Pada novice user disediakan fitur penjelasan, sedangkan pada expert user disediakan fitur shortcut. 3. Memberikan umpan balik yang informatif Untuk setiap aksi yang diberikan user, sistem harus memberikan umpan balik yang informatif agar user mengetahui hasil dari aksi tersebut.
14 4. Merancang dialog untuk hasil penutupan Urutan dari tindakan-tindakan harus diorganisasikan secara berkelompok mulai dari dasar, menengah, hingga akhir. Pada bagian akhir terdapat suatu informasi atau dialog yang memberikan konfirmasi atas keberhasilan tindakan dari user. 5. Memberikan pencegahan dan penanganan kesalahan Rancangan sebuah sistem sebisa mungkin tidak membuat user melakukan kesalahan yang fatal. Sistem harus memberikan sebuah instruksi sederhana agar dapat melakukan penanganan kesalahan. 6. Mengizinkan pengembalian aksi Pada sistem harus terdapat fitur pengembalian aksi ketika user mengetahui adanya kesalahan yang tidak dapat diselesaikan. 7. Pengendalian internal User harus mengerti bahwa mereka adalah pengendali sistem dan sistem yang akan merespons terhadap aksi-aksi yang dilakukan user. 8. Mengurangi beban ingatan jangka pendek Manusia memiliki kapasitas terbatas dalam memproses informasi dalam jangka waktu pendek. Sistem harus mencegah interface yang membuat user harus mengingat informasi dari satu tampilan kemudian menggunakan informasi tersebut ke tampilan lainnya.
15 2.1.3 Data, Database dan Database Management System (DBMS) 2.1.3.1 Data Berdasarkan Hofer (2009), data adalah fakta-fakta yang berhubungan dengan objek dan kejadian yang dapat direkam dan disimpan pada media komputer. Sebagai representasi dari objek dan kejadian, data yang tersimpan memiliki arti penting bagi user.
2.1.3.2 Database Menurut Connolly dan Begg (2010), database merupakan kumpulan data yang saling terhubung, didesain untuk memenuhi kebutuhan informasi suatu organisasi. Database adalah tunggal sehingga memungkinkan penyimpanan data dalam jumlah besar yang dapat digunakan secara bersama oleh banyak departemen dan user.
2.1.3.3 Database Management System (DBMS) Database Management System (DBMS) adalah sebuah sistem software yang memungkinkan pengguna untuk mendefinisikan, membuat, memantau dan mengontrol akses dari database (Connolly dan Begg, 2010). Menurut Connolly dan Begg (2010), terdapat beberapa fasilitas yang disediakan oleh Database Management System (DBMS): 1. Data Definition Language (DDL) DDL merupakan bahasa yang memungkinkan seorang database administrator atau user untuk menjelaskan dan memberi nama entitas,
16 atribut dan relationship yang diperlukan dari aplikasi. Operasi yang termasuk ke DDL yaitu create, drop dan alter. 2. Data Manipulation Language (DML) DML merupakan bahasa yang menyediakan serangkaian operasi untuk mendukung operasi manipulasi data yang ada di database. Yang termasuk operasi DML adalah insert, update, delete. 3. Menyediakan akses kontrol ke database, yaitu seperti: a. Security system merupakan kontrol untuk mencegah user yang tidak diizinkan untuk mengakses database. b. Integrity
system
merupakan
kontrol
untuk
memelihara
konsistensi dari data yang tersimpan. c. Concurrency
control
system
merupakan
kontrol
yang
memungkinkan untuk pembagian akses dari database. d. Recovery
control
system
merupakan
kontrol
yang
memungkinkan penyimpanan database ke tahap sebelum terjadinya kegagalan pada hardware ataupun software. e. User-accessible catalog merupakan kontrol yang berisi deskripsi dari data yang ada di database.
2.1.4 Object Oriented Programming Object oriented programming merupakan paradigma pemrograman struktural yang menggunakan metode pemisahan struktur-struktur logical pada program menjadi bagian-bagian yang lebih kecil sehingga lebih mudah untuk dikelola. (Kendal, 2009).
17 Struktur-struktur logical yang lebih kecil pada object oriented programming biasa disebut dengan class. Menurut Kendal (2009), class adalah cara pemodelan yang digunakan untuk mendeskripsikan properti-properti dari sebuah object. Keuntungan dari object oriented programming adalah: a. Abstraksi yang lebih baik Hal ini dikarenakan dengan adanya class akan lebih mudah untuk melakukan pemodelan pemrograman menjadi struktur-struktur yang lebih kecil. b. Pengelolaan yang lebih baik Pemisahan struktur-struktur logical program menjadi bagian yang lebih kecil akan memudahkan untuk mengelola program secara keseluruhan. c. Penggunaan yang lebih baik Class yang telah dibuat sebelumnya dapat digunakan kembali untuk fungsi yang berbeda. Hal ini dimungkinkan dengan adanya konsep inheritance pada object oriented programming.
2.1.5 Model View Controller (MVC) Menurut Pressman (2010), model view controller adalah desain arsitektur untuk perangkat lunak yang memisahkan antara user interface, fungsionalitas aplikasi dan navigasi aplikasi menjadi tiga bagian berbeda. Dalam pemodelannya ketiga bagian tersebut dapat dijelaskan sebagai berikut:
18 a. View berisi semua functions yang berkaitan dengan tampilan aplikasi. b. Controller berfungsi untuk melakukan pengaturan terhadap model dan view, serta mengkordinasikan aliran data diantara keduanya. c. Model berisi semua spesifikasi aplikasi dan logika dari aplikasi. Termasuk didalamnya akses ke data eksternal dan semua fungsionalitas aplikasi.
2.1.6 Unified Modeling Language (UML) Unified Modeling Language (UML) adalah sebuah bentuk aturan pemodelan yang digunakan untuk menentukan atau menggambarkan sebuah sistem perangkat lunak ke dalam bentuk objek (Whitten dan Bentley, 2007) Meskipun
UML
tidak
digunakan
untuk
menentukan
metode
pengembangan sistem, namun UML digunakan sebagai standar pemodelan objek pada perancangan perangkat lunak.
2.1.6.1 Use Case Diagram Menurut Whitten dan Bentley (2007), use case diagram adalah diagram yang menggambarkan interaksi antara sistem, external sistem dan pengguna. Use case diagram menjelaskan siapa yang akan menggunakan sistem dan dengan cara apa user berinteraksi dengan sistem tersebut.
19
System
Use Case Actor
Actor Use Case
Use Case
Actor Gambar 2.1 Use Case Diagram Terdapat beberapa komponen penting dalam membuat use case diagram. Komponen-komponen tersebut adalah: 1. Use Case Use case adalah gambaran dari urutan-urutan tahapan yang saling berhubungan. Use case berfungsi untuk mencapai tujuan bisnis.
Use Case Symbol
Gambar 2.2 Use Case
2. Actor Dalam Use case diagram, actor adalah segala hal di luar sistem yang berfungsi untuk menggambarkan interaksi yang dilakukan
20 terhadap sistem dengan tujuan untuk melakukan pertukaran informasi. Yang dapat dikategorikan sebagai actor yaitu orang, organisasi, dan waktu.
Gambar 2.3 Actor
3. Relationship Relationship merupakan gambaran hubungan antara actor dan use case terhadap sistem. Relationship direpresentasikan dengan sebuah garis yang menghubungkan dua komponen lainnya yaitu actor dan use case. Berikut ini merupakan jenis-jenis hubungan yang ada di use case diagram menurut Whitten & Bentley (2007): a. Associations Associations atau yang biasa disebut dengan asosiasi merupakan hubungan yang menggambarkan adanya interaksi antara actor dan use case. Adanya asosiasi mengindikasikan bahwa actor terlibat untuk melakukan interaksi dengan use case. Asosiasi dapat berjalan secara satu arah (unidirectional) ataupun dua arah (bidirectional). Terdapat dua jenis asosiasi menurut Whitten dan Bentley (2007) yaitu:
21 1. Asosiasi yang digambarkan dengan kepala panah tertutup. Asosiasi ini mengindikasikan bahwa actor merupakan inisiator dari use case. 2. Asosiasi yang digambarkan dengan garis tanpa kepala panah. Asosiasi ini menggambarkan interaksi antara use case dan external server ataupun receiver actor.
Gambar 2.4 Associations (Sumber: Whitten & Bentley, 2007, p248 )
b. Extends Penggunaan extends di use case diagram bertujuan untuk menyederhanakan use case serta membuat use case lebih mudah dimengerti. Hasil dari use case yang telah disederhanakan disebut dengan extensions use case.
c. Uses or Includes Uses or includes digunakan ketika dua atau lebih use case menunjukkan langkah yang sama. Sehingga akan lebih baik memisahkan langkah-langkah tersebut secara terpisah. Hal ini biasa dikenal dengan abstract use case. Abstract use case berfungsi untuk mengurangi redundansi pada use case dengan
22 cara menggabungkan langkah yang sama antara dua use case atau lebih menjadi satu.
Gambar 2.5 Uses or Includes Use Case (Sumber: Whitten & Bentley, 2007, p249 )
d. Depends On Depends on merupakan gambaran hubungan antar use case. Depends on terjadi jika suatu use case tidak dapat dijalankan sebelum use case tertentu dijalankan terlebih dahulu.
Gambar 2.6 Depends On (Sumber: Whitten & Bentley, 2007, p250)
23 e. Inheritance Hubungan inheritance pada use case menggambarkan hubungan
antara
beberapa
actor
yang
bertujuan
untuk
menyederhanakan penggambaran use case diagram.
Gambar 2.7 Inheritance (Sumber: Whitten & Bentley, 2007, p250 )
2.1.6.2 Use Case Narrative Menurut Whitten dan Bentley (2007), use case narrative adalah deskripsi tekstual dari dari suatu kegiatan yang menggambarkan bagaimana pengguna berinteraksi dengan sistem dalam menyelesaikan suatu tugas. Tabel 2.1 Elemen Use Case Narrative No
Elemen
Keterangan
1
Use Case Name
Nama
use
case
yang
telah
digambarkan
sebelumnya pada use case diagram. 2
Priority
Menjelaskan seberapa penting dari use case yang
24 dimaksud. 3
Flow of Event
Alur kegiatan yang perlu dilakukan user untuk melakukan suatu aksi.
4
Pre Condition
Kondisi awal saat user belum melakukan aksi yang ada pada use case.
5
Primary Actor
Actor yang berinteraksi dengan sistem.
6
Secondary Actor
Actor lain yang berpartisipasi selain primary actor.
7
Description
Deskripsi dari use case yang menjelaskan tujuan dari use case.
8
Post Condition
Kondisi akhir yang harus dicapai saat user telah melakukan aksi yang ada pada use case.
2.1.6.3 Class Diagram Class diagram merupakan gambaran sebuah sistem yang disusun dari objek-objek bernama kelas yang juga menjelaskan hubungan antara kelas-kelas tersebut (Whitten & Bentley, 2007). Sebuah class disusun atas tiga elemen, yaitu: 1. Nama Kelas (class name) 2. Atribut (attribute) 3. Operasi (operations)
25
<
> - attributes + operations
Gambar 2.8 Class
Visibility Mengacu teori dari Whitten & Bentley (2007) visibility adalah cara untuk menentukan bagaimana attribute dan method dari suatu kelas diakses oleh kelas lainnya. UML menyediakan tiga cara untuk melakukan visibility (Whitten & Bentley, 2007): 1. Public Attribute atau method yang didefinisikan dengan public berarti attribute atau method tersebut bersifat public. Sehingga kelas lain dapat mengakses attribute ataupun method tersebut. Attribute atau method yang bersifat public ini biasanya dinotasikan dengan tanda ‘+’ pada class diagram. 2. Private Attribute atau method yang didefinisikan dengan private berarti attribute atau method tersebut bersifat private. Sehingga kelas lain tidak dapat mengakses attribute ataupun method tersebut. Kelas yang
26 bersifat private ini biasanya dinotasikan dengan tanda ‘-’ pada class diagram. 3. Protected Attribute atau method yang didefinisikan dengan protected berarti attribute atau method bersifat protected. Kelas lain dapat mengakses attribute ataupun method tersebut asalkan kelas tersebut merupakan turunan (inheritance) dari kelas lain. Attribute atau method yang bersifat protected ini biasanya dinotasikan dengan tanda ‘#’ pada class diagram.
Generalization/Specialization Berdasarkan
pendapat
Whitten
dan
Bentley
(2007)
Generalization/specialization adalah cara untuk menggambarkan hubungan antara supertype dengan subtype pada class diagram, dimana supertype adalah objek kelas yang memiliki atribut umum dari subtype. Sedangkan subtype merupakan bentuk khusus dari supertype. Dalam hal ini berarti subtype memiliki semua atribut yang dimiliki oleh supertype. Hubungan turunan antar kelas (inheritance) pada class diagram dapat diidentifikasi dengan adanya generalization/specialization.
27 Person
Student
Teacher
Gambar 2.9 Generalization/Specialization
Multiplicity Untuk menentukan banyaknya kelas yang terhubung antara satu kelas dengan kelas lainnya pada class diagram, digunakanlah istilah multiplicity untuk menggambarkannya (Whitten dan Bentley, 2007).
Tabel 2.2 menunjukkan jenis-jenis multiplicity yang ada di class diagram.
28 Tabel 2.2 Multiplicity Multiplicity
Notasi
Tepat 1
1
Nol atau satu
0..1
Nol atau lebih
0..*
Satu atau lebih
1..*
Association Association merupakan gambaran hubungan antar kelas pada class diagram (Whitten & Bentley, 2007). Dibutuhkan dua kelas atau lebih untuk menggambarkan association. Association pada class diagram mempunyai fungsi selain untuk menggambarkan hubungan antar kelas, juga berfungsi untuk menggambarkan multiplicity yang ada.
Gambar 2.10 Association (Sumber: Whitten & Bentley, 2007, p377)
Aggregation Mengacu pendapat Whitten dan Bentley (2007) aggregation merupakan istilah untuk menggambarkan hubungan suatu kelas yang
29 merupakan bagian dari kelas lainnya, yang mana kelas yang lebih kecil merupakan bagian dari kelas yang lebih besar. Aggregation digambarkan dengan simbol garis dan belah ketupat yang mengarah ke kelas lainnya. Team
Player Gambar 2.11 Aggregation
Composition Composition merupakan hubungan aggregation yang lebih erat. Yang dimaksud lebih erat disini adalah kelas yang lebih besar bertanggung jawab atas pembuatan dan juga penghancuran dari kelas yang lebih kecil, sehingga kelas yang lebih besar telah tidak ada, maka kelas yang lebih kecil juga tidak ada. Composition digambarkan dengan garis yang diujungnya terdapat belah ketupat berwarna hitam (Whitten dan Bentley, 2007).
Book
Index
Gambar 2.12 Composition
30 Dependency Relationship Dependency relationship adalah model yang digunakan untuk menggambarkan hubungan antar kelas yang saling bergantung satu sama lain. Dependency relationship digunakan untuk mengindikasikan perubahan yang terjadi pada suatu kelas, yang mana perubahan tersebut dapat memberikan dampak pada kelas lain.
Gambar 2.13 Dependency Relationship (Sumber : Whitten & Bentley, 2007, p650)
Navigability Navigability adalah hubungan unidirectional antar kelas yang mana hanya satu kelas dapat mengirimkan pesan kepada kelas lainnya. Kelas pengirim pesan dapat mengetahui visibility dari kelas penerima pesan, namun bagi kelas penerima pesan, tidak dapat mengetahui visibility dari kelas pengirim pesan.
Gambar 2.14 Navigability (Sumber : Whitten & Bentley, 2007, p650)
31 2.1.6.4 Activity Diagram Activity diagram adalah diagram yang menggambarkan aliran bisnis proses serta tahapan use case ataupun logika dari operasi objek (Whitten & Bentley, 2007).
Gambar 2.15 Activity Diagram
Terdapat beberapa notasi diperlukan untuk menggambarkan activity diagram. Notasi-notasi tersebut dapat dilihat pada tabel 2.3.
32 Tabel 2.3 Notasi-Notasi Activity Diagram Nama Gambar
Keterangan
Simbol Simbol yang digunakan untuk Initial Node
menggambarkan awal dari proses. Simbol yang digunakan untuk
Action
Create Backorder
menggambarkan suatu aksi. Flow
Simbol yang digunakan untuk menggambarkan alur dari satu aksi ke aksi lainnya. Simbol yang digunakan untuk menggambarakn aktivitas untuk melakukan pemilihan. Decision digambarkan belah ketupat, dimana terdapat satu alur masuk
Decision ke simbol dan dua atau lebih alur keluar dari simbol. Alur yang keluar dari simbol digunakan untuk mengindikasikan suatu kondisi. Simbol yang digunakan untuk Merge menggambarkan aktivitas untuk
33 melakukan penggabungan aksi yang telah dipisahkan pada decision sebelumnya. Merge digambarkan dengan belah ketupat dimana dua atau lebih alur masuk ke simbol dan satu alur keluar dari simbol. Simbol yang berfungsi untuk menggambarkan keadaan paralel. Fork digambarkan dengan bentuk persegi panjang berwarna hitam. Alur yang Fork terdapat di bawah fork mengindikasikan bahwa terdapat dua atau lebih aksi yang dapat terjadi secara bersamaan. Simbol yang digambarkan dengan kotak hitam serta adanya dua atau lebih alur masuk ke Join simbol dan satu alur keluar dari simbol. Semua aksi yang masuk ke simbol harus diselesaikan
34 terlebih dahulu agar proses selanjutnya dapat dijalankan. Simbol yang berfungsi untuk Activity menandakan berakhirnya sebuah Final proses.
2.1.6.5 Sequence Diagram Sequence diagram adalah diagram yang menggambarkan interaksi antara aktor dan dalam urutan waktu (Whitten & Bentley, 2007).
:System
Actor
Message 1
Message 2
Gambar 2.16 Sequence Diagram
Untuk
membuat
sequence
diagram
diperlukan
beberapa
komponen yang digambarkan dengan simbol-simbol tertentu. Simbol-
35 simbol yang digunakan untuk menggambarkan sequence diagram ditunjukkan pada tabel 2.4. Tabel 2.4 Simbol-Simbol Sequence Diagram Nama Gambar
Keterangan
Simbol Sama halnya seperti pada use case diagram, actor merupakan Actor elemen yang berinteraksi dengan sistem.
: system
Simbol yang digunakan untuk menggambarkan
sistem
yang
System dijalankan
pada
sequence
diagram.
Simbol yang direpresentasikan dengan garis vertikal putus-putus, Lifelines
digunakan untuk menggambarkan urutan kehidupan dari sequence diagram.
Simbol yang direpresentasikan Activation
dengan persegi panjang vertikal,
Bar
digunakan untuk menggambarkan periode waktu ketika aktor aktif
36 melakukan
interaksi
sistem.
dengan
Activation
bar
ditempatkan diatas lifelines. Simbol yang digunakan untuk menggambarkan pesan masuk ke sistem
yang
aktor.
dikirimkan
Input
digambarkan
oleh
message
dengan
panah
horizontal dimana kepala panah Input mengarah
ke
sistem.
Cara
Message penulisan input message adalah kata pertama diawali
dengan
huruf kecil diikuti dengan kata berikutnya yang diawali huruf besar tanpa adanya spasi diantara kata-kata tersebut. Simbol yang digunakan untuk menggambarkan
pesan
yang
dikeluarkan oleh sistem untuk Output dikirimkan
ke
aktor.
Output
digambarkan
dengan
Message message
panah horizontal dengan garis putus-putus dimana kepala panah
37 mengarah ke aktor. Simbol yang digunakan untuk menggambarkan
pesan
yang
Self Call dikirimkan oleh objek ke objek itu sendiri. Simbol yang digunakan untuk alt
menggambarkan sequence
area
diagram
pada yang
Frame mengalami perulangan (looping), pemilihan
(alternatives)
serta
langkah-langkah opsional.
2.1.7 Waterfall Model Waterfall Model merupakan proses aktivitas dasar yang terdiri dari spesifikasi, pengembangan, validasi dan evaluasi yang direpresentasikan dengan tahapan fase terpisah seperti spesifikasi kebutuhan, software design, implementasi, testing dan lainnya. (Sommerville, 2011). Prinsip dari penggunaan waterfall model yaitu semua proses aktivitas untuk melakukan perancangan software harus dilakukan perencanaan dan penjadwalan pada awal proses. Didalam waterfall model terdapat lima tahapan yang mana setiap tahapan berhubungan secara berurutan dan memberikan informasi yang
38 diperlukan pada tahap berikutnya, setiap tahapan harus diselesaikan dahulu sebelum masuk ke tahap berikutnya.
Gambar 2.17 Waterfall Model (Sumber: Sommerville, 2011, p30) Berikut adalah tahap-tahap yang digunakan menurut Sommerville (2011): 1. Requirement analysis and definition Tahap ini adalah tahap dimana semua kebutuhan user dikumpulkan secara lengkap kemudian dianalisis secara mendetail berdasarkan tujuan, hambatan dan sistem layanan yang akan digunakan user. 2. System and software design System and software design merupakan tahap yang harus dijalankan setelah semua kebutuhan telah berhasil dikumpulkan. Tahap ini adalah tahap mengidentifikasi dan mendefinisikan abstraksi dasar sistem software,
39 menentukan hubungan antar data dan membuat prototype atau kerangka yang akan dijadikan acuan untuk pengembangan software selanjutnya. 3. Implementation and unit testing Implementation and unit testing merupakan tahap dimana aplikasi mulai dikembangkan sesuai dengan prototype yang telah diselesaikan pada tahap sebelumnya.
Desain
program
diterjemahkan
ke
dalam
kode-kode
menggunakan bahasa pemrograman yang telah ditentukan. Pengerjaan aplikasi dibagi menjadi pecahan-pecahan modul untuk memudahkan pengerjaan. Setiap modul yang telah selesai dibuat akan dilakukan unit testing untuk memastikan bahwa modul tersebut telah berjalan sesuai dengan kebutuhan dan tujuan yang ada. 4. Integration and system testing Semua modul yang telah diuji pada tahap sebelumnya di integrasikan menjadi sebuah program yang utuh dan dilakukan system testing untuk memastikan bahwa modul yang telah diintegrasikan memenuhi kebutuhan yang ada. Setelah program telah diuji maka program siap untuk digunakan. 5. Operation and maintenance Setelah program digunakan oleh pengguna, pengguna dapat memberikan saran dan keluhan atas program tersebut, sehingga pengembang dapat memperbaiki dan menambahkan fitur dari program yang sedang berjalan tersebut.
Kelebihan dari waterfall model adalah document pengembangan sistem yang dihasilkan sangat detail dan terorganisir, dikarenakan setiap tahapan
40 harus terselesaikan dengan lengkap sebelum lanjut ke tahapan berikutnya. Disamping itu terdapat kelemahan dari metode ini yaitu pengembang harus memastikan bahwa seluruh kebutuhan pengguna dikumpulkan diawal fase. Jika tidak dampaknya adalah kita harus mengulang fase tersebut dari awal.
2.1.8 Android Menurut Gargenta (2011), Android merupakan sebuah comprehensive open source platform yang didesain untuk mobile devices dan dikembangkan oleh Open Handset Alliance yang dipimpin oleh Google. Bagi pengembang, Android menyediakan semua tools dan framework untuk mengembangkan aplikasi mobile dengan mudah, cepat, terbuka dan bebas. Android SDK (Software Development Kit) merupakan elemen dasar untuk mengembangkan Android.
2.1.8.1 Arsitektur Android Sistem operasi Android terdiri dari beberapa layer. Masingmasing layer memiliki karakter tersendiri dan kegunaan yang berbeda. Layer-layer pada sistem operasi Android tidak terpisah melainkan selalu berhubungan satu antar lain (Gargenta, 2011). Berikut ini merupakan layer yang terdapat pada sistem operasi Android yang dimulai dari lapisan terbawah sampai teratas: 1. Linux Kernel Dengan dipilihnya Linux sebagai sistem operasi untuk membangun Android, hal ini menguntungkan pengembang karena
41 dengan itu portability, keamanan dan fitur-fitur yang ada pada Linux dapat disesuaikan bagi pengembangan Android. Untuk faktor keamanan, telah diketahui bahwa Linux merupakan sistem operasi yang telah terjamin keamanannya, sehingga ini akan menguntungkan karena dapat mencegah adanya serangan-serangan yang tidak diinginkan pada Android. 2. Libraries Libraries yang terdapat pada sistem operasi Android merupakan libraries dari bahasa pemrograman C/C++. Diantaranya adalah: a. Webkit, sebuah mesin penerjemahan web yang cepat dan digunakan oleh Safari, Chrome, dan browsers lainnya. b. SQLite, merupakan full-featured SQL (Structured Query Language) database. c. Apache Harmony, sebuah implementasi Java yang open-source. d. OpenGL, 3D graphics libraries. e. OpenSSL, layer soket yang terjamin atau aman. 3. Android Runtime Android runtime memiliki 2 bagian yaitu Core Library dan Dalvik Virtual Machine. Core library lebih dikenal dengan library yang dijalankan dengan JavaVirtual Machine, sedangkan Dalvik merupakan sebuah virtual machine yang dirancang khusus untuk fokus pada mobile devices dan juga open source.
42 Dengan mengembangkan sebuah virtual machine yang open source dan memiliki license yang telah resmi, Android dapat memberikan full-featured platform. Sehingga pengembang tidak perlu khawatir terhadap license. 4. Application Framework Application framework merupakan sebuah kerangka aplikasi yang dirancang untuk menyediakan berbagai layanan yang dapat membantu user. Terdapat berbagai Java libraries yang dirancang khusus untuk Android, selain itu terdapat berbagai layanan yang menyediakan berbagai kemampuan aplikasi seperti lokasi, sensor, wi-fi, dan lain-lain. 5. Applications Layer application merupakan layer tempat terdapatnya aplikasi yang akan digunakan oleh end-user. Aplikasi-aplikasi ini dapat ditemukan di Android Market ataupun telah terdapat pada device. Sebuah aplikasi memiliki sebuah application package (APK) tersendiri, dan memiliki 3 buah komponen utama, yaitu: a. Dalvik executable, merupakan tempat mengkompilasi java code dan berjalannya aplikasi. b. Resources, semua hal yang tidak berhubungan dengan kode. Aplikasi mungkin berisi banyak images, audio/video clips, dan berbagai XML files, items inilah yang termasuk dalam resources.
43 c. Native libraries, beberapa aplikasi mungkin terdiri atas beberapa native code, seperti C/C++, namun libraries ini dapat menyatukan kode – kode ini dengan APK file.
Gambar 2.18 Arsitektur Android (Sumber: Gargenta, 2011, p8)
2.1.8.2 Android Emulator Gargenta (2011) mengemukakan, untuk menjalankan aplikasi melalui physical devices ataupun melalui emulator merupakan hal yang sama. Ini dikarenakan sebuah emulator merupakan kode emulator yang dapat menjalankan kode yang sama dengan devices, yang menjadi perbedaan ialah lapisan mesin yang menjalankannya.
44 Namun ada beberapa hal yang tidak dapat dijalankan pada emulator, seperti sensors, telepon, dan location service. Untuk menggunakan emulator, pengembang harus membuat sebuah Android Virtual Device (AVD). Setelah mengembangkan Android Virtual Device (AVD) maka sebuah emulator akan muncul dengan tampilan seperti gambar 2.17.
Gambar 2.19 Android Emulator (Sumber: Gargenta, 2011, p8)
45 2.2 Teori-Teori Khusus 2.2.1 Voice Recognition Berdasarkan definisi yang dikemukakan oleh Tan dan Lindberg (2008) yang mengacu pendapat Deller, voice recognition atau yang biasa dikenal dengan speech recognition adalah proses penerjemahan signal suara menjadi urutan kata. Menurut Tan dan Lindberg (2008) terdapat tiga macam pendekatan dalam voice recognition, yaitu: a. Network Speech Recognition (NSR) Network Speech Recognition (NSR) merupakan pendekatan untuk melakukan speech recognition dengan menggunakan conventional speech coders untuk mentransmisikan suara dari perangkat pengguna ke recognition server. Network speech recognition biasa digunakan pada percakapan telepon. b. Distributed Speech Recognition (DSR) Distributed Speech Recognition (DSR) merupakan remote speech recognition yang mengadopsi arsitektur client-server dengan menempatkan feature extraction pada sisi client dan computation intensive recognition decoding pada sisi server. c. Embedded Speech Recognition (ESR) Embedded Speech Recognition (ESR) adalah pendekatan speech recognition yang digunakan bagi perangkat mobile seperti mobile phone, PDA dan perangkat games. Embedded speech recognition dilakukan dengan cara menempatkan semua proses speech recognition pada target mobile ataupun perangkat pengguna.
46 Embedded
speech
recognition
merupakan
pendekatan
speech
recognition yang paling sederhana dibandingkan dua pendekatan sebelumnya, yaitu Network Speech Recognition (NSR) dan Distributed Speech Recognition (DSR). Hal ini dikarenakan pada embedded speech recognition tidak ada proses pengiriman signal ataupun data dari perangkat client ke remote server.
2.2.2 Google Voice Search Application Berikut ini merupakan cara kerja dari Google voice search menurut Henky Prihatna, Indonesia Representative Google Southeast Asia pada situs tempo (2011): 1. Mengaktifkan Interface Recogniter_UI dengan cara menekan tombol voice recognition oleh user. 2. User memasukkan suara melalui microphone yang terdapat pada smartphone Android yang dimilikinya. 3. Suara yang telah dimasukkan tersebut akan diproses dari client site, kemudian akan diubah dari sinyal analog ke sinyal digital. 4. Sinyal digital ini nantinya akan dikirim ke cloud computing yang dimiliki oleh google untuk dilakukan pencocokan. Hal ini disebut dengan search query. 5. Hasil query tersebut nantinya akan dikembalikan ke smartphone pengguna.
47 2.2.3 Java Java merupakan bahasa pemrograman berorientasi objek yang dikembangkan oleh James Gosling di Sun Microsystem yang sekarang menjadi bagian dari Oracle Corporation (Schildt, 2011). Sebagai bahasa pemrograman yang dinamis, Java dapat dijalankan di berbagai jenis platform. Hal ini dikarenakan kode Java (bytecode) dijalankan pada Java Virtual Machine (JVM) yang membuat Java menjadi platform independen. JVM dapat berbeda tergantung dari platform yang digunakan. JVM yang digunakan pada Windows dapat berbeda dengan JVM yang digunakan pada Linux. Untuk menjalankan aplikasi yang telah dibuat dengan bahasa pemrograman Java, setiap komputer memerlukan JVM untuk menjalankannya (Schildt, 2011). Mengacu pendapat Schildt (2011) Java dibagi kedalam tiga bentuk, yaitu: 1. Java Standard Edition (Java SE) merupakan teknologi yang digunakan untuk mengembangkan client-side standalone application seperti aplikasi desktop. 2. Java Enterprise Edition (Java EE) merupakan teknologi Java yang diterapkan untuk komputer server seperti Java servlet, dan Java Server Page. 3. Java Micro Edition (Java ME) merupakan teknologi yang digunakan untuk menerapkan Java pada mobile phone, smartphone ataupun PDA. Berikut ini adalah beberapa keunggulan Java menurut Schildt (2011) yaitu:
48 1. Simple Dengan konsep Object Oriented Programming yang dimiliki Java, memudahkan bagi siapapun yang ingin mempelajari Java terutama bagi mereka yang telah mengerti konsep dasar dari Object Oriented Programming. 2. Secure Java memberikan perlindungan bagi komputer pengguna dengan membatasi applet untuk Java Execution Environment dan tidak mengizinkan applet tersebut untuk mengakses bagian komputer lainnya.
3. Portable Dengan mengusung konsep portabilitas, program-program yang ditulis dengan bahasa pemrograman Java dapat dipindahkan serta dijalankan dengan mudah. 4. Object-oriented Bahasa
pemrograman
Java
bersifat
object
oriented
sehingga
pemrograman yang dibuat berfokus untuk pembuatan objek dan manipulasi objek. Hal ini memudahkan user untuk membuat program dalam bentuk modul serta menggunakan kembali kode yang telah ada. 5. Robust Desain pemrograman Java dibuat dengan memprioritaskan kemampuan untuk membuat robust program. Sehingga user dapat mengetahui kesalahan lebih awal saat mengembangkan program menggunakan Java. Karena Java mengecek kode yang dibuat user pada saat runtime serta compile time.
49 6. Multithreaded Dengan adanya multithreaded programming pada Java, memungkinkan user untuk menulis program yang dapat melakukan banyak hal secara bersamaan. Pada Java run time system menyediakan sinkronisasi multi process yang memungkinkan user untuk menjalankan sistem interaktif dengan lancar. 7. Architecture-neutral Dengan prinsip “write once, run anywhere, anytime, forever” , program yang ditulis dalam bahasa pemrograman Java dapat dijalankan diberbagai sistem operasi. Sehingga ini menjadikan kelebihan utama Java dibanding sistem operasi lainnya. Hal ini memudahkan user dalam mengembangkan program, karena programmer cukup menulis sekali di Java kemudian dikompilasi, program tersebut nantinya dapat dipindahkan dijalankan di beberapa platform tanpa harus melakukan perubahan terlebih dahulu. 8. Interpreted and High Performance Bytecode yang ada di Java dirancang untuk memberikan kemudahan dalam menerjemahkan kode mesin demi tercapainya performa yang tinggi dengan menggunakan just-in-time compiler. 9. Distributed Fitur
Remote
Method
Invocation
(RMI)
yang
ada
di
Java,
memungkinkan program untuk menjalankan metode di berbagai jaringan. 10. Dynamic Informasi run time yang ada pada bahasa pemrograman Java digunakan untuk memeriksa dan memutus akses ke objek pada saat run time. Hal ini memungkinkan kode link dinamis yang aman.
50 2.2.4 IntelliJ IDEA IntelliJ IDEA adalah sebuah code centric Integrated Development Environment (IDE) yang diproduksi oleh JetBrains (IntelliJ IDEA, 2012). Selain untuk pengembangan aplikasi desktop, IntelliJ IDEA juga mendukung pengembangan aplikasi mobile. Salah satunya adalah pengembangan aplikasi mobile berbasis Android. Untuk pengembangan aplikasi Android ini, IntelliJ IDEA telah menyediakan Android SDK saat instalasi. Sehingga dengan IntelliJ pengguna dapat langsung mencoba aplikasi Android pada emulator yang disediakan (IntelliJ IDEA, 2012). Untuk mendukung pengembangan aplikasi berbasis Android, IntelliJ menyediakan beberapa fitur (IntelliJ IDEA, 2012), yaitu: 1. Memudahkan pengguna untuk membuat aplikasi Android menggunakan New Project Wizard. 2. Membantu pengguna untuk melakukan pencarian aplikasi Android dengan dukungan tampilan tree view. 3. Memudahkan pengguna untuk membuat elemen-elemen aplikasi Android dan melakukan pengaturan string, warna, dan lain-lain dengan melakukan integrasi antara hal tersebut dengan R. Java file. 4. Menjalankan aplikasi Android via emulator.
2.2.5 SQLite Menurut Owens (2006) SQLite merupakan sebuah embedded relational database yang open source. SQLite didesain untuk memudahkan aplikasiaplikasi dalam melakukan pengaturan data sehingga menghindari adanya
51 redundansi data yang sering muncul pada relational database management systems. SQLite merupakan database yang tertanam, sehingga SQLite akan berjalan bersamaan dengan aplikasi yang dibangun dan juga pengguna tidak perlu melakukan konfigurasi jaringan atau melakukan administrasi terlebih dahulu untuk mengakses database.
2.2.6 Self-Learning Menurut Hughes & Berry (2011), self learning atau yang biasa disebut dengan self directed learning adalah kegiatan pembelajaran yang mana pelajar bertanggung jawab atas perencanaan materi pembelajaran yang akan dipelajari. Pelajar mempunyai kontrol untuk proses pembelajaran tersebut. Pelajar juga bisa menentukan bagaimana mereka belajar, dimana mereka belajar dan kapan mereka akan belajar. Berdasarkan Hughes & Berry yang mengutip pernyataan dari Knowles (2011) yang menyatakan bahwa terdapat dua prinsip utama dalam self learning. Kedua prinsip tersebut yaitu: 1. Self teaching Hal ini terjadi jika pelajar berinisiatif pada diri mereka untuk mencari alat bantu pembelajaran dan sumber yang dibutuhkan untuk mengajarkan mereka mengenai pengetahuan dan keahlian yang dibutuhkan. 2. Personal autonomy Merupakan prinsip yang mengacu pada pelajar untuk mengatur tujuan pembelajaran.
52 2.2.7 Mobile Learning Mobile learning adalah aktivitas yang terjadi ketika teknologi yang digunakan dan pengguna dari teknologi tersebut adalah sama-sama dalam keadaan mobile ketika melakukan pembelajaran. (El-Hussein & Cronje, 2010). Penggunaan mobile learning memungkinkan setiap orang untuk mengakses informasi dan materi pembelajaran dari manapun dan kapanpun. Pada akhirnya, pengguna berhak memilih waktu yang digunakan untuk mengakses materi pembelajaran dari lokasi manapun yang pengguna inginkan (Koole & Ally, 2009). Menurut Koole & Ally (2009) dalam teorinya The Framework for The Rational Analysis of Mobile Education (FRAME) menjelaskan terdapat tiga faktor
utama
yang
perlu
diperhatikan
dalam
merancang
dan
mengimplementasikan mobile learning. Faktor-faktor tersebut yaitu: 1. Device Perangkat (device) adalah alat yang digunakan sebagai jembatan penghubung antara pengguna dan teknologi. Hasil dari perancangan software dan hardware pada perangkat (device) akan sangat mempengaruhi tingkat kenyamanan user dalam melakukan pembelajaran melalui mobile. 2. Learner Pelajar (learner) merupakan segala aspek yang mengacu pada situasi ataupun tugas yang pelajar inginkan atau butuhkan untuk mencapai hasil yang diinginkan. Aspek ini menjelaskan bagaimana pelajar menggunakan pengetahuan yang telah mereka miliki untuk mengartikan, menyimpan serta mengirimkan informasi yang diterima.
53 3. Social Aspect Social Aspect merupakan faktor-faktor yang berhubungan dengan proses interaksi sosial dan kerja sama. Interaksi yang dimaksud dapat berupa proses komunikasi. Pada mobile learning budaya-budaya ini dapat berupa fisik atau virtual. Selain ketiga faktor utama tersebut, terdapat faktor-faktor lain yang menentukan dalam merancang dan mengimplementasikan mobile learning. Faktor-faktor ini merupakan titik pertemuan (intersection) antara ketiga faktor utama tersebut. Faktor-faktor tersebut yaitu: 1. Context Learning Context Learning merupakan perpaduan antara aspek perangkat (device) dengan aspek pelajar (learner). Hal ini menghasilkan hubungan antara kebutuhan yang diperlukan pelajar (learner) dengan aktivitas yang dilakukan pelajar (learner) berdasarkan karakteristik hardware dan software dari perangkat mobile yang dimiliki. 2. Social Computing Pada social computing menjelaskan bagaimana perangkat mobile dapat melakukan komunikasi dan berkolaborasi antara individu dan sistem. Social computing merupakan gabungan dari elemen perangkat (device) dengan sosial. 3. Interaction Learning Perpaduan elemen pelajar (learner) dengan sosial telah menghasilkan titik temu yang dinamakan interaction learning. Hal tersebut mempengaruhi kemampuan pelajar (learner) untuk memahami, bernegosiasi, menafsirkan
54 serta menggunakan ide-ide baru yang diperlukan dalam melakukan pembelajaran secara formal maupun informal. Dari keseluruhan faktor yang ada, terdapat satu titik temu diantara faktor-faktor tersebut yang terletak pada pusat elemen, yaitu faktor mobile learning process. Proses pembelajaran mobile yang efektif merupakan hal utama dalam FRAME model. Mobile learning menyediakan kesempatan untuk terjadinya kolaborasi antara pelajar (learner), akses ke informasi dan pembelajaran kontekstual yang lebih mendalam. Sehingga memungkinkan pelajar (learner) untuk berinteraksi dengan bahan pembelajaran, pengajar, serta lingkungan pembelajaran secara fisik dan virtual.
Gambar 2.20 FRAME Model (Sumber: Koole dan Ally, 2009)
55 2.2.8 Business English Mengacu pernyataan yang dikemukakan oleh Zhang (2007), Business English merupakan sistem pengajaran komunikasi bisnis internasional pada bidang sosial dan ekonomi, yang mana para peserta akan diarahkan untuk mempelajari bisnis prosedur didalamnya. Business English merupakan bagian dari English for Specific Purpose (ESP). English for Specific Purpose merupakan pendekatan yang digunakan untuk mempelajari bahasa Inggris dengan karakteristik untuk memenuhi kebutuhan pelajar, yang mana pada business english kebutuhan pelajar yang dimaksud adalah kebutuhan untuk mempelajari bahasa Inggris dalam dunia bisnis.