BAB 2 TINJAUAN PUSTAKA
Perkembangan dunia teknologi semakin lama semakin berkembang dengan pesat sehingga mendorong setiap individu maupun kelompok harus menerapkannya dalam segala bidang. Penggunaan alat indera manusia terhadap teknologi seperti pengenalan sidik jari, kornea mata, dan juga terutama pengenalan suara yang kian berkembang pesat. Teknologi menciptakan pengenalan suara pada suatu perangkat agar lebih praktis tanpa harus berinteraksi dengan perangkat menggunakan tangan. Seperti kehidupan manusia sehari-hari berinteraksi dengan sesama. Praktis dan sederhana. Itu biasanya yang diinginkan manusia dalam kehidupan sehari-hari. Dari pada selalu menggunakan tangan dimana tangan yang selalu sibuk dalam melakukan apapun, lebih baik kita menggunakan indera lain seperti suara yang dapat membantu berinteraksi dengan perangkat atau komputer. 2.1
Teori Umum
2.1.1 Pengertian Waterfall Terdapat beberapa model proses dalam pembuatan suatu program aplikasi, salah satu diantaranya adalah Waterfall Model atau yang biasa dikenal dengan Classic Life Cycle. Model ini disebut dengan Waterfall karena tahap demi tahap yang dilalui harus menunggu tahap sebelumnya selesai dan berjalan berurutan. (Pressman, 2010, p 39). Terdapat lima tahapan dalam Waterfall Model yang akan digunakan pada aplikasi Speech Recognizer berbasis android, yaitu : •
Communication Dimulai dari mencari kebutuhan apa saja dari keseluruhan sistem yang akan diaplikasikan ke dalam program aplikasi.
7
8
•
Planning Proses
pengumpulan
elemen
sistem
ditingkatkan
dan
dipusatkan secara khusus untuk mengerti karakteristik dari program yang akan dibuat, lalu melakukan perkiraan atau estimasi kapan program dapat diselesaikan serta membuat scheduling per tahap dari awal membuat program. •
Modelling Proses perancangan menerjemahkan kebutuhan elemen sistem yang direpresentasikan ke dalam sebuah blueprint yang dapat diperikirakan kualitasnya sebelum dilakukan pengkodean.
•
Construction Untuk dapat dimengerti komputer, maka desain tadi harus diubah bentuknya menjadi bentuk yang dapat dimengerti oleh komputer, yaitu ke dalam bahasa pemograman melalui proses pengkodean. Tahap ini merupakan implementasi dari tahap desain
yang
secara
teknis
nantinya
dikerjakan
oleh
programmer. Setelah melakukan pengkodean maka dilakukan pengujian. Pengujian dimaksudkan untuk memastikan hasilnya telah sesuai dengan kebutuhan yang sudah didefinisikan sebelumnya. •
Deployment Pemeliharaan suatu program diperlukan karena program yang dibuat tidak selamanya hanya seperti itu. Pengembangan ialah salah satu bagian dari pemeliharaan. Pengembangan dilakukan untuk memperbaiki error kecil yang tidak ditemukan sebelumnya atau menerima umpan balik dari para pengguna sehingga terjadi adanya penambahan fitur-fitur atau fungsifungsi yang belum ada pada program tersebut. Setelah melakukan serangkaian testing dan pengembangan maka program aplikasi siap untuk disebarkan ke masyarakat luar.
9
Communication Project initiation Requirement gathering
Planning estimating scheduling tracking
Modelling analysis design
Construction code test
Deployment delivery report feedback
Gambar 2.1.1 Waterfall Model Sumber (Pressman 2010, p39) Namun ada juga waterfall menurut referensi Sommerville (2011, p30-31) sebagai berikut :
Gambar 2.1.2 Waterfall Model by Sommerville Sumber (Sommerville 2011, p30-31)
Tahap-tahap dalam waterfall Model secara ringkas adalah sebagai berikut : •
Requirement definition, mengumpulkan kebutuhan secara lengkap kemudian di analisis dan didefinisikan kebutuhan yang harus dipenuhi oleh program yang akan dibangun
•
System and Software Design, desain dikerjakan setelah kebutuhan selesai dikumpulkan secara lengkap
•
Implementation and Unit Testing, desain program diterjemahkan kedalam kode-kode dengan menggunakan bahasa pemograman yang
10
sudah ditentukan. Program yang dibangun langsung diuji baik secara unit. •
Integration and System Testing, penyatuan unit-unit program kemudian diuji secara keseluruhan.
•
Operation
and
Maintenance,
mengoperasikan
program
dan
melakukan pemeliharaan seperti penyesuaian / perubahan karena adaptasi dengan situasi sebenarnya. 2.1.2 Unified Modeling Language (UML) Unified Modeling Language adalah bahasa berupa grafik atau gambar yang menjadi standar untuk memodelkan software yang berorientasi objek (Bernd Bruegge & Allen H. Dutoit, 2010). 2.1.2.1 Use Case Diagram Use case menggambarkan bagaimana perilaku sistem dari sisi actor. Actor adalah entiti di luar sistem yang berinteraksi dengan sistem. Jika kita dapat mengidentifikasikan actor dan use case, kita dapat menentukan boundary dari sistem. Boundary dari sistem bertujuan untuk memisahkan tugas-tugas yang dikerjakan oleh sistem dan tugas-tugas yang diselesaikan di luar sistem. Actors berada diluar dari boundary sistem, sementara use case berada di dalam boundary sistem. Actors direpresentasikan dengan simbol manusia, use cases direpresentasikan dengan oval, dan boundary sistem direpresentasikan dengan sebuah kotak yang melingkupi seluruh use cases. Contohnya. actor WatchUser dapat melihat waktu melalui jam miliknya yang direpresentasikan dengan ReadTime use case atau mengatur waktu dari jamnya yang direpresentasikan dengan SetTime use case. Sementara itu, hanya WatchRepairPerson yang dapat mengganti batterai jam yang direpresentasikan dengan ChangeBattery use case.
11
Gambar 2.1.3 Contoh Use Case Diagram (Bernd Bruegge & Allen H. Dutoit, 2010, p31) 2.1.2.2 Class Diagram Class diagram digunakan untuk mendeskripsikan struktur dari sistem, dalam lingkup kelas dan objek. Class adalah sebuah abstraksi yang terdiri dari attribute dan method dari satu set object. Object adalah sebuah entiti yang mengenkapsulasi attribute dan method.
Gambar 2.1.4 Contoh Class Diagram (Bernd Bruegge & Allen H. Dutoit, 2010, p58) Class diagram digambarkan dengan sebuah kotak yang terdiri dari tiga bagian. Bagian paling atas menampilkan nama dari class atau object. Bagian tengah menampilkan attribute, sedangkan bagian bawah menampilkan method. Class diagram memiliki beberapa elemen yaitu :
12
a. Attribute, adalah properti dari object. Sebuah attribute terdiri dari : 1) Name yang mengidentifikasikan attribute didalam object. 2) Type
untuk
mendeskripsikan
nilai
yang
dapat
ditampung oleh attribute tersebut. b. Method merupakan behavior dari object. c. Visibility
merupakan mekanisme
untuk menentukan
apakah sebuah attribute atau method dari sebuah class dapat digunakan oleh class yang lain. Dalam UML terdapat 3 jenis Visibility : 1) Private Sebuah attribute maupun method yang memiliki visibility private
hanya
dapat
di
akses
oleh
class
yang
mendefinisikannya. 2) Protected Sebuah attribute maupun method yang memiliki visibility protected hanya dapat di akses oleh class yang mendefinisikannya dan oleh class yang merupakan turunan dari class yang mendefinisikannya. 3) Public Sebuah attribute maupun method yang memiliki visibility public dapat diakses oleh semua class. Dalam UML, visibility dinotasikan dengan tanda “-” untuk menunjukkan kalau private, “#” untuk protected dan “+” untuk public.
13
Gambar 2.1.5 Class Tournament (Bernd Bruegge & Allen H. Dutoit, 2010, p369) • Association Association yaitu hubungan antara dua class atau lebih. Association memiliki beberapa properti yaitu sebagai berikut : 1) Name untuk mendeskripsikan hubungan antara dua class. 2) Multiplicity mengindetifikasikan jumlah instance yang dapat terhubung. Lambang “*” menandakan bahwa association memiliki multiplicity “many”. Multiplicity “many” juga dapat ditandai dengan 0..n. Contoh, tanda “*” menandakan FieldOfficer dapat melakukan write 0 atau lebih EmergencyReport, dimana angka 1 menandakan bahwa
EmergencyReport
hanya
memiliki
tepat
1
FieldOfficer sebagai penulis.
Gambar 2.1.6 Contoh Association (Bernd Bruegge & Allen H. Dutoit, 2010, p190) Ada beberapa jenis dari Associations, antara lain : 1) One-to-one association yaitu memiliki multiplicity 1 di kedua ujung. Contoh satu PoliceOfficer hanya dapat
14
memiliki tepat 1 BadgeNumber dan satu BadgeNumber hanya dapat dimiliki 1 PoliceOfficer. 2) One-to-many association yaitu memiliki multiplicity 1 di salah satu ujung dan 0..n atau bisa juga tanda “*” di ujung yang satunya lagi. Contoh satu FireUnit dapat memiliki 1 atau lebih FireTrucks, dan satu FireTrucks hanya dapat dimiliki oleh satu FireUnit. 3) Many-to-many association yaitu memiliki multiplicity 0..n atau 1..n di kedua ujung. Contoh 1 FieldOfficer dapat melakukan write kepada banyak IncidentReport, 1 IncidentReport dapat di write oleh banyak FieldOfficers. • Aggregation Aggregations
merupakan
association
khusus
yang
menunjukkan hubungan seluruh bagian. Contoh sebuah FireStation
terdiri
dari
sejumlah
FireFighters,
FireEngines, Ambulances, dan LeadCar. Aggregations terdiri dari 2 jenis : 1) Composition aggregation yaitu menandakan bahwa keberadaan class yang menjadi bagian bergantung kepada class yang menjadi keseluruhan. Composition ditandai dengan diamond warna hitam.
15
Gambar 2.1.7 Contoh Composition Aggregation (Bernd Bruegge & Allen H. Dutoit, 2010, p192) 2) Shared aggregation yaitu menandakan bahwa class yang menjadi bagian maupun class yang menjadi keseluruhan dapat berdiri sendiri. Shared aggregation ditandai dengan diamond warna putih.
Gambar 2.1.8 Contoh Shared Aggregation (Bernd Bruegge & Allen H. Dutoit, 2010, p192) • Inheritance Inheritance ialah hubungan antar satu class dengan satu atau lebih class yang lain yang lebih khusus. Inheritance memungkinkan
kita
untuk
mendeskripsikan
semua
attribute dan method yang umum dari suatu set class.
16
Contoh class Dispatcher dan FieldOfficers keduanya memiliki attribute badgeNumber.
Gambar 2.1.9 Contoh class Inheritance (Bernd Bruegge & Allen H. Dutoit, 2010, p196) FieldOfficers
dan
Dispatcher
merupakan
PoliceOfficers. Untuk memodelkannya maka dibuat satu class baru yaitu PoliceOfficer yang menurunkan class dari kedua class tersebut. 2.1.2.3 Activity Diagram Activity diagram mendeskripsikan perilaku sistem dari segi activities. Activities adalah elemen yang memodelkan eksekusi dari satu operasi. Pengeksekusian satu activities dapat dipicu oleh selesainya activites lain. Activites direpresentasikan dengan persegi bulat, tanda panah, antara activities merepresentasikan control flow. Sebuah garis hitam tebal merepresentasikan sinkronisasi dari control flow. Sebuah lingkaran hitam kecil menandakan awal dari proses. Sebuah lingkaran yang mengelilingi lingkaran hitam kecil menandakan akhir proses. Decisions merupakan percabangan dalam control flow. Decisions ditandai dengan sebuah diamond dengan satu atau lebih anah panah yang masuk dan satu atau lebih anak panah yang keluar.
17
Gambar 2.1.10 Contoh Activity Diagram (Bernd Bruegge & Allen H. Dutoit, 2010, p205) 2.1.3 Interaksi Manusia dan Komputer (IMK) Berbicara tentang interface, para interface designer telah memanfaatkan teknologi maju untuk memenuhi kebutuhan user (Ben Shneiderman & Catherine
Plaisant,
2010).
Para
Designer membuat
bidang studi
pengetahuan interaksi manusia dan komputer dengan mengaplikasikan metodologi psikologi eksperimental ke peralatan yang kuat dari ilmu komputer. Terdapat Delapan Aturan Emas (Ben Shneiderman & Catherine Plaisant, 2010) yaitu sebagai berikut : 1) Berusaha untuk konsisten Urutan aksi yang konsisten harus ada dalam situasi yang sama, seperti menu, warna yang konsisten, tata letak, kapitalisasi, tulisan dan sebagainya. Kecuali seperti konfirmasi yang dibutuhkan dari perintah delete atau tidak ada password, harus dipahami dan jumlahnya terbatas.
18
2) Memenuhi kegunaan yang universal Mengenali kebutuhan dari beberapa user yang berbeda dan memfasilitasi transformasi konten. Adanya tambahan fitur untuk pemula seperti penjelasan dan fitur untuk ahli seperti cara pintas dan mondar-mandir lebih cepat, bisa memperkaya interface design dan meningkatkan kualitas sistem. 3) Menawarkan umpan balik yang informatif Untuk setiap tindakan-tindakan user, harus adanya umpan balik sistem. Untuk tindakan yang sering dilakukan dapat menjadi respon yang sederhana. Sedangkan untuk tindakan yang jarang dilakukan dan tindakan utama harus memiliki respon yang lebih substansial. Presentasi visual dari objek yang menarik suatu timbal balik yang mudah digunakan untuk menunjukkan perubahan secara eksplisit. 4) Mendesain dialog untuk menghasilkan penutupan Urutan aksi harus diatur ke dalam kelompok awal, tengah dan akhir. Umpan balik yang informatif pada penyelesaian kelompok aksi memberikan operator kepuasan kesuksesan, rasa lega, dan indikator untuk mempersiapkan kelompok aksi berikutnya. Contoh situs web e-commerce memindahkan user dari memilih produk menuju ke kasir, berakhir dengan sebuah halaman konfirmasi yang jelas yang melengkapi transaksi. 5) Menghindari kesalahan Sebisa mungkin, merancang sistem sedemikian rupa sehingga user tidak dapat membuat kesalahan serius, misalnya keluar menu yang tidak sesuai dan tidak mengizinkan karakter abjad dalam pengisian numerik. Apabila user membuat suatu kesalahan, maka interface harus mendeteksi kesalahan dan memberitahu apa yang salah
dan apa
yang harus dilakukan selanjutnya
untuk
membenarkan kesalahan yang user buat. Contoh user tidak perlu
19
mengisi
ulang
nama,
alamat,
dan
lainnya
jika
mereka
memasukkan kode pos yang tidak valid, melainkan harus dipandu untuk memperbaiki hanya bagian yang salah. Interface harus memberikan petunjuk tentang cara membenarkannya. 6) Mengizinkan pembalikkan aksi yang mudah Sebisa mungkin, aksi-aksi harus bersifat reversible. Fitur ini mengurangi kecemasan user karena mereka tahu bahwa kesalahan dapat dibatalkan dan mendorong eksplorasi pilihan. Satuan reversibilitas mungkin mencakup satu tindakan, tugas pengisian data, atau melengkapi kelompok aksi seperti mengisi blok namaalamat. 7) Mendukung tempat kontrol internal User yang berpengalaman sangat menginginkan suatu aksi bahwa mereka bertanggung jawab atas interface dan interface merespon tindakan mereka. Mereka tidak ingin kejutan atau perubahan perilaku, dan mereka terganggu oleh urutan-urutan membosankan pada pengisian data. Kesulitan dalam memperoleh informasi yang diperlukan dan ketidakmampuan untuk menghasilkan hasil yang diinginkan. 8) Mengurangi beban memori jangka pendek Setiap
manusia
memiliki
kapasitas
yang
terbatas
untuk
pemrosesan informasi dalam memori jangka pendek. Designer menghindari interface yang dimana user harus mengingat informasi dari satu layar dan menggunakan informasi pada layar lain. Dari kedelapan prinsip ini memiliki keterbatasan masing-masing, tetapi memberikan titik awal yang baik untuk mobile, desktop dan web designer. Prinsip-prinsip yang disajikan focus pada peningkatan produktivitas user dengan menyediakan prosedur yang telah disederhanakan, tampilan yang
20
mudah dipahami, umpan balik informatif yang cepat untuk meningkatkan rasa kompetensi, penguasaan dan pengontrolan pada sistem. Kemudia menurut Shneiderman dan Plaisant (2010, p63), ada lima factor manusia terukur yang dapat dijadikan sebagai pusat evaluasi, yaitu sebagai berikut : 1. Waktu, merupakan jumlah waktu yang dibutuhkan pengguna untuk mempelajari cara yang relevan untuk melakukan suatu tugas 2. Kecepatan Kinerja, merupakan jumlah waktu yang dibutuhkan pengguna untuk mengerjakan suatu tugas 3. Tingkat Kesalahan, merupakan jumlah kesalahan yang dapat terjadi ketika pengguna mengerjakan tugas-tugas dan apa saja kesalahankesalahan yang terjadi. 4. Daya Ingat, merupakan bagaimana pengguna mengatur pengetahuan setelah beberapa waktu dimana daya ingat memiliki kemungkinan untuk dihubungkan dengan waktu belajar dan frekuensi penggunaan. 5. Kepuasan yang Subjektif, merupakan seberapa besar dan seberapa banyak pengguna menyukai penggunaan bermacam aspek dalam interface, dimana jawaban dapat dipastikan melalui kuesioner, termasuk skala kepuasan dan tempat untuk memberikan komentar secara bebas dari pengguna nyang menggunakan layanan.
2.2
Teori Khusus
2.2.1 Pengertian Speech Recognition Speech Recognition merupakan teknologi yang memungkinkan masukan sebuah lisan atau kata-kata ke dalam sistem. Berbicara kepada komputer, ponsel, atau perangkat sebagai masukan untuk memicu beberapa tindakan. Teknologi ini digunakan untuk menggantikan metode input-an lain seperti mengetik, mengklik atau memilih cara lain. Ini adalah cara untuk membuat
21
perangkat dan software yang lebih user-friendly dan untuk meningkatkan produktivitas. 2.2.1.2 Google Speech Recognition Google speech recognition adalah suatu database yang built-in pada sistem android, yang dapat developer gunakan untuk mengembangkan aplikasi yang membutuhkan engine untuk menerjemahkan suara ke teks via google speech recognition. 2.2.2 Java Java dikembangkan oleh tim yang dipimpin oleh James Gosling di Sun Microsystem. Awalnya diberinama Oak, ia dirancang pada tahun 1991 untuk digunakan dalam chip tertanam dalam peralatan elektronik konsumen. Pada tahun 1995, diganti nama menjadi Java, itu didesain ulang untuk mengembangkan aplikasi internet. Java telah menjadi sangat populer, terutama janji dari pembuatnya bahwa programmer dapat menulis sebuah program sekali dan menjalankannya dimana saja. (Daniel Liang, 2011). Sebagaimana dinyatakan oleh Sun, java merupakan bahasa pemograman yang sederhana, berorientasi objek yang menggunakan encapsulation, inheritance dan polymorphism, guna untuk menghasilkan kinerja yang tinggi, multithreaded dan dinamis. 2.2.2.2 Java Development Kit (JDK) JDK terdiri dari seperangkat program yang terpisah, masingmasing dipanggil dari baris perintah, untuk mengembangkan dan pengujian program Java. Selain JDK, anda dapat menggunakan alat pengembang Java misalnya NetBeans, Eclipse, dan TextPad yaitu software yang menyediakan lingkungan pengembangan yang terintegrasi (IDE) untuk berkembang pesat nya program Java. Editing, kompilasi, pembangunan, debugging, dan online help yang terintegrasi dalam satu grafis user interface. Cukup masukkan sumber kode dalam satu window atau membuka file yang sudah ada pada window, kemudian klik tombol, item menu, atau tombol fungsi untuk mengkompilasi dan menjalankan program (Daniel Liang, 2011).
22
2.2.3 Android Android adalah sistem operasi pada mobile yang berbasis linux yang dikembangkan oleh Google. Android unik karena google secara aktif mengembangkan platform tetapi memberikan secara gratis untuk produsen hardware dan operator telepon yang ingin menggunakan Android pada perangkat mereka. 2.2.3.2 Sejarah Android Android Inc. adalah perusahaan software kecil yang didirikan pada bulan Oktober 2003 di Palo Alto, California, USA. Didirikan oleh beberapa senior dibeberapa perusahaan berbasis IT & Communication; Andy Rubin, Rich Miner, Nick Sears dan Chris White. Menurut Rubin, Android Inc. didirikan untuk mewujudkan mobile device yang lebih peka terhadap lokasi dan preferensi pemilik. Dengan kata lain, Android Inc. ingin mewujudkan mobile device yang lebih mengerti pemiliknya. Konsep yang dimiliki Android Inc., ternyata menggugah minat raksasa Google untuk memilikinya. Pada bulan Agustus 2005, akhirnya Android Inc. diakuisisi oleh Google Inc. Seluruh sahamnya dibeli oleh Google. Nilai pembelian Android Inc. ini oleh google tidak ada release pastinya. Tetapi banyak yang memperkirakan nilai pembelian Android Inc. oleh google adalah sebesar USD 50 juta. Saat itu banyak yang berspekulasi, bahwa akuisisi ini adalah langkah awal yang dilakukan Google untuk masuk ke pasar mobile phone. Andy Rubin, Rich Miner, Nick Sears dan Chris White tetap di Android Inc. yang dibeli Google, sehingga akhirnya mereka semua menjadi bagian dari raksasa Google
dan
sejarah
android.
Saat
itulah
mereka
mulai
menggunakan platform linux untuk membuat sistem operasi bagi mobile phone. Pada bulan November 2007, terbentuklah Open Handset Alliance yang merupakan konsorsium dari beberapa perusahaan : Broadcom Corporation, Google, HTC, Intel, LG, Marvell
23
Technology Group, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel, T-Mobile dan Texas Instruments. Mereka sepakat untuk membuat open standart bagi mobile phone. Pada hari yang sama, mereka mengumumkan produk pertama mereka, yaitu Android yang berbasis Linux Kernel versi 2.6. Bulan Desember, bergabunglah 14 perusahaan lainnya yaitu : ARM Holdings, Atheros Communications, Asustek Computer Inc, Garmin Ltd, PacketVideo, Softbank, Sony Ericsson, Toshiba Corp dan Vodavone Group Plc. Hal ini merupakan langkah besar dalam sejarah Android untuk menjadi pemimpin dalam sistem operasi untuk mobile phone. 2.2.3.3 Arsitektur Android Pada android, terdapat arsitektur yang membangun platform untuk sebuah aplikasi nya, berikut adalah gambar arsitekturnya :
Gambar 2.2.1 Arsitektur Android
24
2.2.3.4 Komponen – Komponen Android Perbedaan utama Android dan mobile platform lainnya adalah definisi dari aplikasinya. Mobile platform lainnya mendefinisikan sebuah aplikasi sebagai program yang berdiri sendiri. Pada Android, aplikasi sama seperti modul. Setiap aplikasi terbentuk dari satuan komponen, dan komponen ini dapat mengakses platform dan aplikasi lain secara bersamaan. Empat komponen utama didefinisikan pada Android framework : activity, service, broadcast receiver, dan content provider. Setiap aplikasi tidak butuh menggunakan semua komponen ini, tetapi menggunakan komponen itu mengizinkan aplikasi untuk secara penuh mencampur ke dalam platform. Empat komponen utama yang dimaksud sebagai berikut : • Activities dan Intent Activity paling terpenting pada komponen sebuah aplikasi. Guna untuk merespon ke layar tampilan. User dapat berinteraksi dengan aplikasi Android hanya dengan activity. Sebuah aplikasi dapat terbentuk dengan satu atau lebih activity.
Setiap
activity
memperbolehkan
user
untuk
melakukan interaksi yang spesifik. • Services Services berjalan pada background, services tidak memberikan suatu user interface dan ia tidak secara langsung berhubungan dengan user. Android tidak membatasi lifetime mereka, dan memungkinkan untuk terus berjalan di background selama sistem memiliki sumber daya yang cukup untuk menjalankan task-task yang ada di foreground. Aplikasi dapat menyediakan activity untuk berinteraksi dengan user untuk mengontrol services. Contoh misalkan kita sedang mengembangkan aplikasi pemutar musik, kita ingin user memilih file musik dan mendengarkannya sambil terus menggunakan device-nya. Kita akan perlu untuk memiliki
25
services yang akan berjalan di background, sehingga aplikasi dapat terus memutar lagu sementara user menjalankan aplikasi-aplikasi yang lain. Services juga mulai dijalankan melalui intent. Dengan desain, hanya satu contoh dari sebuah service dapat berjalan pada waktu tertentu. Kerangka Android memulai services ketika permintaan pertama tiba, dan kemudian memberikan permintaan berikutnya yang sudah berjalan. Terkadang services mungkin perlu perhatian dari user. Pemberitahuan atau informasi digunakan oleh services untuk menginformasikan kepada user mengenai status service. Sebagai contoh dalam aplikasi pemutar music kita, ketika lagu baru mulai diputar, pemberitahuan nama lagu dapat ditampilkan
pada
bar
pemberitahuan
untuk
menginformasikan kepada user. • Broadcast Receivers Aplikasi tidak hanya berinteraksi dengan user, tetapi mereka juga berinteraksi dengan platform dan aplikasi lain dengan menghasilkan dan mengonsumsi events. Pada Android, events ini juga disampaikan dalam bentuk intents. Dalam rangka penerimaan beberapa events, aplikasi harus mendaftar untuk satu set intents dengan menyediakan broadcast
receiver.
Ketika
mencocokan
events
yang
menghasilkan ke suatu sistem, Android mengirimkan events ke broadcast receiver. • Content Providers Content providers memungkinkan aplikasi Android untuk bertukar data dengan platform dan aplikasi lainnya. Berbeda dengan komponen lain, content providers ini bekerja tidak bergantungan dengan intents. Sebaliknya, content providers menggunakan interface standar dalam bentuk konten URI,
26
dan menyediakan akses ke data sebagai satu atau lebih tabel yang mirip dengan tabel ditemukan dalam relasi database. 2.2.3.5 Data Storage Platform Android
menyediakan
beberapa
cara
untuk
menyimpan data pada aplikasi yang dibuat yaitu sebagai berikut : • Shared Preferences yaitu memungkinkan aplikasi untuk menyimpan data sebagai key/value. Kerangka Android disediakan fungsi utilitas untuk memungkinkan developer untuk mempertahankan shared preference dengan mudah. Shared preference hanya mendukung tipe data yang primitif. Platform Android juga menjamin bahwa shared preference akan disimpan, bahkan apabila aplikasi terminated. • Internal dan external storage yaitu memungkinkan aplikasi developer untuk menyimpan semua jenis file biasa pada platform. Android framework menyediakan satu set fungsi utilitas untuk memungkinkan developer aplikasi untuk dengan mudah melakukan operasi ini tanpa mengetahui lokasi sebenarnya dari file-file ini. • SQLite database yaitu memungkinkan develeoper aplikasi untuk menyimpan dan mengambil data terstruktur dengan mudah. SQLite menyediakan database relasional dalam proses ruang aplikasi. Meskipun SQLite disediakan melalui library asli, Android framework termasuk satu set fungsi utilitas dan kelas untuk memungkinkan developer aplikasi dengan mudah berinteraksi dengan database SQLite. 2.2.3.6 Siklus Hidup Android Siklus hidup aplikasi android lebih komplikasi dibandingkan siklus hidup aplikasi pada desktop. Siklus hidup aplikasi pada desktop langsung dikontrol oleh user. Users dapat memilih untuk memulai dan mamatikan aplikasi pada waktu yang ada. Bagaimanapun, di Android, platform mengatur siklus hidup
27
aplikasi-aplikasi berurutan untuk efisiensi menggunakan sumber daya sistem yang ada. 2.2.3.6.1 Siklus Hidup Activity Siklus hidup Activity
(Activity
Lifecycle)
ini
merupakan kelompok dari state-state sebuah activity mulai dari pertama dibuat sampai activity dihancurkan (destroy). Tujuh metode siklus hidup didefinisikan pada android.app.Activity class : Public class Activity { Protected void onCreate(Bundle savedInstanceState); Protected void onStart(); Protected void onRestart(); Protected void onResume(); Protected void onPause(); Protected void onStop(); Protected void onDestroy();
28
Gambar 2.2.2 Siklus Hidup Activity Metode siklus hidup activity tersebut bekerja sebagai berikut : • onCreate : Metode ini dipanggil ketika activity dibuat.
Ini
menginisialisasikan
activity
dan
membuat tampilan. • onStart : Metode ini dipanggil ketika activity mulai terlihat. Metode ini diikuti dengan memanggilnya metode onResume jika activity ke foreground dan diikuti
metode
onStop
jika
activity
mulai
sembunyi. • onRestart :Metode ini dipanggil ketika activity menampilkan ulang kepada user. Diikuti oleh onStart.
29
• onResume : Metode ini dipanggil setiap activity muncul ke foreground untuk berinteraksi dengan user. • onPause :
Metode ini dipanggil ketika activity
pergi ke background, tetapi belum dimatikan. Panggilan ini diikuti oleh onResume dan onStop. • onStop : Metode ini dipanggil ketika activity tidak lagi diperlihatkan kepada user. Ini diikuti oleh onRestart jika activity pergi ke foreground atau dengan
panggilan
onDestroy
jika
activity
dimatikan. • onDestroy : Metode ini dipanggil ketika activity dimatikan.
Ini
mungkin
karena
sistem
membutuhkan sumber daya yang ada. 2.2.3.6.2 Siklus Hidup Service Siklus hidup service sama dengan siklus hidup activity, tetapi memiliki beberapa perbedaan yang besar. Karena service tidak berinteraksi dengan user secara langsung, siklus hidup service tidak bergantung pada aksi user, seperti pada siklus hidup activity. Metode siklus hidup onPause, onResume, dan onStop tidak ada pada metode siklus hidup service. Tiga
metode
siklus
hidup
didefinisikan
pada
android.app.Service class : public abstract class Service { public void onCreate(); public int onStartCommand(Intent intent, int flags, int startId); public void onDestroy(); }
30
Gambar 2.2.3 Siklus Hidup Service Metode siklus hidup service ini bekerja sebagai berikut : • onCreate : Metode ini dipanggil ketika metode Context.startService(Intent)
digunakan
pada
aplikasi dan service belum mulai berjalan. • onStartCommand : Metode ini dipanggil setiap metode
Context.startService(Intent)
digunakan
pada aplikasi. Sebuah service mungkin akan mengakhiri permintaan proses yang banyak, jadi itu memungkinkan service untuk menerima banyak metode onStartCommand selama hidup. • onDestroy : Metode ini dipanggil ketika service ingin dimatikan pada platform Android. 2.2.4 Eclipse Eclipse merupakan suatu perkembangan terintegrasi yang akan kita gunakan selama perjalanan kita ke dalam perkembangan android. Eclipse
31
memiliki banyak kelebihan dari code editor sederhana, dan memliki platform yang kompleks untuk dijadikan tools. 2.2.4.2 Arsitektur Eclipse Sebagai pengembang android, tidak akan membutuhkan interaksi
dengan
sistem
internal
pada
platform
Eclipse.
Bagaimanapun, apabila anda mengetahui arsitekturnya, anda akan lebih mudah untuk mengonsepsikan dan memahami bagaimana Eclipse bekerja pada umumnya. Platform Eclipse mendefenisikan mekanisme dan peraturanperaturan dan memungkinkan tools untuk dibangun diatas mereka dengan menyediakan satu set API yang didefinisikan dengan baik. Platform ini tersusun disekitar konseop plug-in, seperti gambar berikut :
Gambar 2.2.4 Arsitektur Eclipse Plug-in adalah unit terkecil dari platform Eclipse. Mereka terstruktur dari kumpulan kode yang berkontribusi satu set fungsi untuk platform. Plug-in dapat dikembangkan, didistribusikan, dan disebarkan secara individual. Platform Eclipse memungkinkan plug-in untuk diperluas juga.
32
2.3
State of the Art 1. Pada Desember 2011 A.Vijay kumar, Aruna, M.Vijayapal Reddy, membuat Fuzzy
Neural
Network
diimplementasikan
di
for
PC
Speech
ber
OS
Recognition, Windows,
yang
yang
dimana
menerapkan
perkembangan algoritma T-S(Takagi-Sugeno) fuzzy neural network model. Aplikasi ini bekerja untuk mengubah suara menjadi sebuah teks dengan menggunakan gabungan dari sistem fuzzy dan neural network dimana rumus-rumus yang berhubungan dengan akurasi dan kecepatan yaitu single word error rate (SWER) dan command success rate (CSR). Setelah itu dari penerimaan suara, proses selanjutnya dari suara yang didapat akan memanggil fungsi keyboard untuk menuliskan sebuah teks. 2. Pada
Januari
–
Februari
2013
B.
Raghavendhar
Reddy,
E.
Mahender,membuat Speech to Text Conversion di Platform Android. Aplikasi ini menggunakan algoritma Hidden Markov Model, proses konversi suara kedalam beberapa kumpulan kata hingga bekerja dalam suatu komponen software. Langkah pertama aplikasi mendapatkan suara, kemudian melakukan proses perubahan sinyal analog ke sinyal digital, lalu akan memanggil fungsi keyboard/keypad untuk menuliskan kata-kata yang didapat dari sinyal tersebut. 3. Pada Januari 2013 Syed Anwaarullah, S.V. Altaf, membuat RTOS based
Home Automation System using Android. Aplikasi ini menggunakan Bluetooth untuk menghubungkan antara mobile dengan suatu perangkat yang memiliki fungsi untuk menghidupkan dan mematikan sebuah lampu. Pertama user memberikan suara ke mobile, lalu dari suara tersebut akan dikonversi dan memanggil suatu fungsi untuk dikirim kan ke perangkat tersebut, kemudian perangkat tersebut melakukan perintah sesuai dari perintah yang didapat dari mobile.