BAB 2 LANDASAN TEORI 2.1 Short Message Service Layanan pesan singkat atau disebut juga SMS merupakan suatu fasilitas untuk mengirim dan menerima suatu pesan singkat berupa teks melalui telepon selular. Pada awalnya, ide adanya SMS berasal dari mesin faks yang dapat berfungsi untuk pertukaran teks. Sebelum digunakan oleh banyak orang di dunia, SMS mengalami pengoptimalan fungsinya sebagai pertukaran pesan selama lebih dari satu dasawarsa. Salah satu kelebihan dari SMS adalah biaya yang murah. Selain itu SMS merupakan metode simpan dan forward sehingga pada saat telepon selular tidak aktif atau diluar service area, penerima tetap dapat menerima SMS apabila telepon selular tersebut sudah aktif kembali. Prinsip kerja SMS adalah setiap pertama kali pengiriman pesan SMS dilakukan akan menuju ke pusat SMS yang bertugas untuk menyimpan pesan dan mencoba mengirimkan beberapa kali ke tujuan sampai waktu yang ditentukan pada pusat pesan telepon selular. SMS bekerja menggunakan sinyal yang terbatas pada telepon selular. Oleh karena itu, SMS memiliki keterbatasan karakter dalam pengetikkan teks yaitu 160 karakter dan membutuhkan SMSC atau pusat SMS.(Farial, Dody. 2010. Pengertian SMS. http://ilmucomputer2.blogspot.com/2009/09/pengertian-sms.html ) SMS berkembang pesat setelah diuji coba ke pasaran pada tahun 1993 dan masyarakat lebih memilih layanan SMS sebagai sarana untuk berkomunikasi serta jauh lebih mudah digunakan. Dari tahun ke tahun, pengiriman pesan SMS terus meningkat dan semua orang mulai dari anak – anak, remaja, orang dewasa hingga orang tua tidak 9 dapat jauh – jauh dari SMS. Pesan SMS yang harus dibaca per kalimat membutuhkan konsentrasi dan menjadi hambatan bagi kebanyakkan orang. Misalnya orang dengan mobilitas tinggi dan orang dengan berkebutuhan khusus, memiliki hambatan dalam membaca pesan dalam kalimat. Oleh karena itu, aplikasi membaca SMS menggunakan suara akan menjadi solusi dari masalah ini dan mengubah hambatan menjadi kemudahan untuk orang. Program aplikasi membaca SMS menggunakan suara ini akan dibuat untuk telepon selular. Jenis telepon selular yang digunakan adalah jenis ponsel smart phone yang sedang tren di masyarakat pada sekarang ini yaitu Android. Android adalah sistem operasi untuk telepon selular berbasis Linux. Android merupakan sebuah perusahaan yang bekerja sama dengan Google. Keunggulan dari Android adalah menyediakan open source bagi para programmer dan komunitas yang tertarik pada Android. Dalam pembuatan aplikasi Android membutuhkan software pemrograman yaitu Eclipse yang termasuk ke dalam bagian keluarga Java. Eclipse adalah sebuah IDE (Integrated Development Environment) untuk mengembangkan perangkat lunak dan dapat dijalankan di semua platform (platform – independent). 2.2 Dasar – dasar Speech Production Ucapan atau speech diproduksi dengan mengatur aliran udara dari paru – paru melalui tenggorokkan, hidung dan mulut. Udara yang berada di dalam paru – paru ditekan keluar oleh dada dan jaringan paru – paru sehingga aliran udara keluar menuju trakea dan laring. Pada laring, aliran udara diproses oleh vocal folds dan menghasilkan suara. Suara yang telah dihasilkan akan diteruskan ke bagian faring, hidung dan mulut 10 dan disebut juga saluran vokal. Pada akhirnya dapat terdengar sebagai suara yang dipancarkan oleh mulut dan sekitar bibir. Mekanisme produksi suara diilustrasikan pada gambar 2.1. Dasar produksi speech diklasifikasikan ke dalam tiga kategori. Pertama adalah suara yang dihasilkan ketika berbicara diproduksi dengan menggunakan tekanan udara dan masuk ke dalam vocal folds sehingga menghasilkan getaran dan sinyal harmonik secara periodik. Kedua, suara yang tidak diucapkan dibuat dari aliran udara di sepanjang saluran vokal. Hal ini menyebabkan gelombang suara yang bersifat kontinu tetapi tidak harmonik. Ketiga adalah pada saat selesai mengucapkan kata konsonan akan berhenti diproduksi di dalam aliran saluran vokal dan melepaskan tekanan udara yang telah dihasilkan sebelumnya. Gambar 2.1 Mekanisme Produksi Speech Sumber : (Karjalainen, M, 2000) 11 2.2.1 Vocal Folds Vocal folds atau lebih dikenal sebagai vocal cords (pita suara) adalah dua struktur jaringan elastis yang terletak horisontal di laring. Pita suara akan terbuka ketika menarik nafas, tertutup ketika membuang nafas, dan bergetar pada saat berbicara atau bernyanyi. Pita suara menyesuaikan volume dan dimensi dari faring sehingga menciptakan suara untuk berbicara. Seperti pada gambar 2.2 yang menunjukkan letak dari vocal folds di laring. Gambar 2.2 Vocal Folds Sumber : (David Darling, 2012) 2.2.2 Saluran Vokal Pada saat bernyanyi atau berbicara, sumber suara yang keluar akan dialirkan oleh saluran vokal dari pita suara. Bentuk dari saluran vokal akan berubah sesuai dengan suara yang ingin diucapkan. Saluran vokal atau vocal tract ini terletak memanjang dan terdiri dari empat bagian yaitu laring, faring, rongga mulut dan rongga hidung. Panjang saluran vokal biasanya 17 cm pada laki – laki dan 15 cm pada perempuan. Fungsi dari 12 saluran vokal adalah memberikan bentuk suara yang berbeda ketika diucapkan. Suara yang berbeda dihasilkan dengan merubah posisi lidah, bibir dan rahang. Saluran vokal akan terbuka dan menutup rongga hidung dan rongga mulut untuk menghasilkan kata vokal dan konsonan dengan sinyal yang berbeda seperti ilustrasi gambar 2.3. Gambar 2.3 Ilustrasi Saluran Vokal dalam menghasilkan suara [a], [i], [u] Sumber : (Raitio, Tuomo, 2008, 7) 2.3 Speech Synthesis Speech Synthesis atau lebih dikenal dengan istilah Text to Speech (TTS) adalah suara buatan yang dibuat dari suara manusia sebagai speech engine agar dapat berkata seperti manusia untuk beragam macam aplikasi. TTS menterjemahkan teks atau kata ke dalam suara yang berguna untuk memberikan informasi dari aplikasi ke manusia. Padaawalnya, TTS dibuat dengan cara merekam suara manusia dan disimpan ke dalam 13 database. Akan tetapi kualitas suara yang direkam tidak dapat dimengerti dan tidak terdengar dengan jelas seperti suara robot. Namun seiring dengan perkembangan teknologi, kualitas suara tersebut dapat terdengar seperti suara manusia. TTS berisi data untuk mentransformasikan teks ke suara secara real time dan dapat membacakan teks dengan intonasi suara serta kecepatan membaca yang jelas. Pada awal tahun 1990 – an, banyak komputer yang menerapkan speech synthesizer untuk memberikan kemudahan dalam pengoperasian komputer bagi orang dengan berkebutuhan. Gambar 2.4 Diagram Sistem Text–to–Speech Synthesis Sumber : (Lazardis,Alexandros, Nikos Fakotakis, etc. , 2010) 2.4 Hidden Markov Models Model Markov Tersembunyi atau dalam Bahasa Inggris disebut dengan Hidden Markov Modesl (HMM) merupakan pengembangan model statistik yang terkenal dari sebuah sistem yang diasumsikan oleh Markov Chain dengan parameter yang tidak diketahui sehingga memiliki tantangan untuk dapat menentukan parameter yang tersembunyi (hidden) berdasarkan parameter yang diamati. Parameter yang telah 14 ditentukan kemudian akan digunakan untuk menganalisa lebih jauh, misalnya pada aplikasi speech synthesis atau text to speech. Menurut Nikolai V. Shokhirev. 2001. Hidden Markov Models. Diakses tanggal 4–11–2011 dari http://www.shokhirev.com/nikolai/abc/alg/hmm/hmm.html, definisi HMM adalah variant dari finite state machine yang terdiri dari : a. Hidden State (2.1) b. Simbol Observasi (2.2) c. Transition Probabilities (2.3) dimana adalah kondisi probabilitas dari a ke b dengan waktu dan . A adalah probabilitas untuk state selanjutnya yaitu dan state sebelumnya yaitu . d. Output Probabilities dimana (2.4) di O. B adalah output probabilitas yaitu e. Initial State Probabilities Dapat ditulis juga menjadi pada state sebelumnya (2.5) (2.6) Gambar 2.5 Hidden States dan Simbol Observasi pada Hidden Markov Models Sumber : (N. Shokhirev, 2010) 15 Di dalam Hidden Markov Models terdapat tiga masalah yang dapat diselesaikan dengan 3 algoritma yaitu terdiri dari : Langkah 1 : Masalah Evaluasi (Evaluation Problem) Diberikan model λ = (A, B, π), bagaimana menghitung P(O | λ), yaitu kemungkinan ditemuinya rangkaian pengamatan O = O1, O2, ..., OT. Masalah ini dapat diselesaikan menggunakan algoritma yang dikenal dengan forward dan backward algorithm. Langkah 2 : Masalah Pengkodean (Decoding Problem) Diberikan model λ = (A, B, π), bagaimana memilih rangkaian state I = i1, i2,...,iT sehingga P(O, I | λ), kemungkinan gabungan rangkaian pengamatan O = O1, O2, ..., OT dan rangkaian state jika diberikan model, maksimal. Dapat diselesaikan menggunakan algoritma yaitu algoritma Viterbi. Langkah 3 : Masalah Pembelajaran (Learning Problem) Bagaimana mengubah parameter HMM, λ = (A, B, π) sehingga P(O | λ) maksimal. Masalah ini dapat diselesaikan menggunakan algoritma Baum – Welch. 2.4.1 Algoritma Viterbi Tujuan dari decoding adalah untuk mencari state sequence yang tersembunyi (hidden). Algoritma viterbi membantu mencari state sequence tersembunyi itu dengan cara menelusuri setiap state hingga mendapatkan state terbaik dan maksimum. Definisi : (2.7) sebagai probabilitas yang ada pada setiap state. 16 Berikut ini adalah langkah – langkah algoritma Viterbi : Langkah 1 : Inisialisasi (2.8) Langkah 2 : Rekursi , , Gambar 2.6 Langkah rekursi pada algoritma Viterbi Sumber : (Blunsom, Phil, 2004, 5) Gambar 2.7 Langkah backtracking pada algoritma Viterbi Sumber : (Blunsom, Phil, 2004, 5) (2.10) (2.11) 17 Langkah 3 : Terminasi (2.12) (2.13) Langkah 4 : Jalur state sequence dengan backtracking (2.14) Pada aplikasi TTS, algoritma viterbi dibutuhkan untuk melakukan training pada database sehingga dapat mengoptimalkan kerja aplikasi. Selain training, juga dilakukan analisis dari database TTS yang telah ada. Analisis data ini membutuhkan unit selection speech synthesis untuk kata atau phonem seperti pada gambar 2.8. Untuk dapat digunakan dalam smartphone berbasisAndroid, maka dibutuhkan diphone synthesis. Synthesis ini digunakan agar dapat dikenal oleh telepon selular dan berisi daftar fonem sebagai input, prosodi atau intonasi, durasi dan pitch yang telah ada dalam aplikasi MBROLA. Cara kerja MBROLA terdiri dari 2 cara yaitu mengubah teks ke fonem dan mengubah fonem ke speech. Kemudian MBROLA diubah ke dalam .apk melalui developer eSpeak. Gambar 2.8 Unit selection speech synthesis 18 Sumber : (Schröder,Marc, 2007,4) 2.5 Java Java adalah sebuah bahasa pemrograman berorientasi objek yang dapat berjalan pada platform yang berbeda, baik pada Windows, Linux serta sistem operasi lainnya. Oleh karena itu, programmer dapat membuat sebuah aplikasi dengan Java pada sistem operasi Linux dan selanjutnya menjalankan atau menginstal aplikasi tersebut pada sistem operasi Windows dan juga sebaliknya tanpa mengalami masalah. Dengan menggunakan Java, para programmer dapat mengembangkan berbagai aplikasi yang digunakan pada lingkungan yang berbeda, misalnya pada Desktop, Mobile Device, Internet dan lain – lain. Java diciptakan setelah C++ dan didesain sedemikian sehingga ukurannya kecil, sederhana, dan portable (dapat digunakan pada bermacam platform dan sistem operasi). Program yang dihasilkan dengan bahasa Java dapat berupa applet (aplikasi kecil yang jalan di atas web browser) maupun berupa aplikasi mandiri yang dijalankan dengan program Java Interpreter atau disebut juga Java Virtual Machine (JVM). Salah satu keunggulan Java adalah sifatnya yang platform independence yang artinya Java dalam kode program maupun hasil kompilasinya sama sekali tidak bergantung kepada sistem operasi dan platform yang digunakan. Untuk menginstall dan menggunakan Java, pengembang Java yaitu Sun Microsystem menyediakan platform Java yang terdiri dari sekumpulan library, compiler, debugger dan alat lain yang dipaket dalam Java Development Kit (JDK). Java 2 adalah generasi yang sekarang sedang berkembang dari platform Java. Platform Java harus diinstal sesuai dengan kebutuhan para programmer dalam membuat atau membangun suatu aplikasi. Berikut ini platform Java aplikasi Java yang tersedia : 19 a. J2ME Java 2 Micro Edition termasuk platform Java yang dapat digunakan untuk mengembangkan software dan berjalan pada perangkat yang memiliki memori serta sumber daya kecil, seperti pada telepon selular, PDA, dan Smartcard. Pada J2ME, Jika perangkat lunak berfungsi baik pada sebuah perangkat belum tentu berfungsi baik pada perangkat lain. J2ME adalah bagian dari J2SE, karena itu tidak semua librabry yang ada pada J2SE dapat digunakan pada J2ME. Tetapi J2ME mempunyai beberapa library khusus yang tidak dimiliki J2SE. Gambar 2.9 Arsitektur dari J2ME b. J2SE Java 2 Standard Edition merupakan inti dasar dari pemrograman Java dan salah satu platform Java yang dapat digunakan oleh programmer untuk mengembangkan aplikasi yang berjalan pada lingkungan workstation, seperti pada aplikasi Desktop serta dibutuhkan Java Development Kit (JDK) untuk mengkompilasi dan menjalankan program Java. 20 c. J2EE Java 2 Enterprise Edition adalah platform Java yang disediakan dan digunakan untuk mengembangkan aplikasi pada lingkungan internet maupun pada aplikasi skala enterprise. J2EE merupakan kelompok dari beberapa API (Application Programming Interface) dari Java. J2EE dirancang untuk membuat aplikasi yang rumit. J2EE sering dianggap sebagai middle – ware atau teknologi yang berjalan di server, akan tetapi J2EE tidak terbatas untuk itu. J2EE mencakup teknologi yang dapat digunakan di semua lapisan pada sebuah sistem informasi. Penerapan dari J2EE adalah menyediakan kelas dasar dan API dari Java yang dapat dikembangkan dan standard untuk aplikasi client maupun server, termasuk aplikasi yang berjalan di web browser. 2.6 Telepon Selular Telepon selular atau ponsel atau telepon genggam atau dalam Bahasa Inggris disebut juga handphone adalah sebuah perangkat telekomunikasi elektronik yang mempunyai kemampuan sama dengan telepon konvensional pada umumnya, akan tetapi telepon selular bersifat wireless. Penemuan sistem telepon genggam atau handphone pertama kali terjadi pada tahun 1973 oleh sebuah tim yang bekerja pada sebuah perusahaan di Amerika. Penemuan ini berhasil menciptakan sebuah telepon genggam seberat dua kilogram. Penemuan sistem telepon genggam ini erat kaitannya dengan penemuan radio. Radio kemudian berkembang menjadi radio untuk komunikasi satu arah dan berkembang terus sampai sekarang. Fungsi dan bentuk telepon selular juga 21 terus berkembang hingga sekarang. Mulai dari fungsi hanya untuk telepon dan mengirimkan SMS saja hingga sekarang telepon selular dapat dijadikan asistan pribadi dengan sistem operasi yang ditanam di dalamnya. Begitu juga dengan bentuk telepon selular yang mengalami perkembangan dari bentuk dengan berat dua kilogram dan sampai sekarang hanya seukuran telapak tangan manusia. Telepon selular sudah menjadi kebutuhan primer bagi kebanyakkan orang di seluruh dunia. Pada awal generasinya, telepon selular menggunakan sinyal analog dan bersifat terbatas di daerah saja. Hingga sekarang ini, telepon selular telah memiliki berbagai fitur canggih yang tertanam di dalamnya dan mendapat sebutan sebagai smartphone untuk masyarakat dengan mobilitas tinggi. Generasi smartphone memberikan kemudahan bagi para penggunanya, misalnya Android memberikan kemudahan untuk mengakses internet dalam genggaman tangan dan memiliki aplikasi yang semakin lengkap hampir menyerupai PC. 2.7 Android Menurut Safaat, Nazruddin. (2011:1), mendefinisikan Android sebagai berikut : “Android adalah sebuah sistem operasi untuk perangkat mobile berbasis linux yang mencakup sistem operasi, middleware dan aplikasi. Android menyediakan platform yang terbuka bagi para pengembang untuk menciptakan aplikasi mereka”. Pada Juli 2000, Google Inc. bekerja sama dengan Android Inc. yang merupakan perusahaan pendatang baru untuk membuat peranti lunak pada ponsel atau smartphone. Para pendiri Android bertugas mengembangkan program perangkat selular yang didukung oleh kernel Linux. Sejak kerjasama itu terjadi, banyak yang menganggap 22 fungsi Android adalah perangkat lunak pada telepon selular sehingga muncul rumor bahwa Google akan memasuki pangsa pasar telepon selular. Kemudian untuk mengembangkan Android, dibentuklah Open Handset Alliance adalah konsorsium 34 perusahaan yang terdiri dari perusahaan peranti keras, peranti lunak dan telekomunikasi. Android pertama kali diperkenalkan ke pasaran September 2007, Google mengajukan hak paten aplikasi telepon selularnya dengan mengenalkan dan meluncurkan produk smartphone yang menggunakan Android sebagai sistem operasinya. Pada saat perilisan perdananya, Android dan Open Handset Alliance mendukung pengembangan open source pada perangkat mobile. Di lain pihak, Google merilis kode Android di bawah lisensi Apache, sebuah lisensi perangkat lunak dan platform perangkat telepon selular. Sejak peluncuran Android hingga sekarang, Android berkembang sangat pesat dari segi teknologi hingga segi jumlah perangkat yang ada di dunia. Hal ini dikarenakan sistem operasi yang open source dan bebas didistribusikan serta dukungan sangat tinggi dari para komunitas open source di dunia. Android disebut sebagai platform masa depan yang lengkap, terbuka dan bebas. Lengkap karena programmer dapat mengembangkan platform dengan pendekatan komprehensif dan dalam sistem operasi Android disediakan tools untuk membangun software. Terbuka atau open source merupakan platform yang disediakan oleh Android agar programmer dapat membuat aplikasinya tanpa lisensi. Bebas dikembangkan oleh siapa saja dan bebas biaya untuk membayar lisensi atau royalti pada platform Android. Android telah menjadi platform generasi baru yang mendasari perkembangan aplikasi mobile masa depan. 23 2.7.1 Arsitektur Android Dalam menjalankan sistem operasinya, Android mempunyai arsitektur yang terdiri dari : Gambar 2.10. Arsitektur Android Sumber : http://studyfuture.blogspot.com/2011/03/arsitektur-android.html a. Applications Widgets Layer applications merupakan tempat yang menghubungkan antar aplikasi yaitu hasil aplikasi yang didownload, menginstall aplikasi dan aplikasi yang berjalan. Pada layer ini terdapat aplikasi inti yang berisi email, kalender, kontak, browser, dan lain – lain. Aplikasi dibuat dengan menggunakan bahasa pemrograman Java. b. Application Frameworks 24 Android adalah “Open Development Platform”. Android memberikan kemudahan kepada pengembang untuk membangun aplikasi yang bagus dan inovatif. Pengembang bebas mengakses perangkat keras, sumber informasi, menjalankan service background, mengatur alarm, dan sebagainya. Pengembang memiliki akses penuh menuju API (Application Programming Interface) frameworks seperti yang dilakukan oleh aplikasi inti. Dalam arsitektur ini, aplikasi dirancang agar dapat menggunakan kembali komponen yang sudah digunakan (reuse). Para pembuat aplikasi melakukan pengembangan untuk dijalankan di sistem operasi Android. Komponen – komponen yang termasuk di dalam Applications Frameworks adalah sebagai berikut : 1. Views merupakan komponen yang digunakan untuk membangun aplikasi seperti list, grids, text boxes, buttons, dan embedded web browser 2. Content Provider adalah komponen yang memungkinkan aplikasi untuk mengakses data dari aplikasi lain, misalnya contacts atau untuk membagi data 3. Resource Manager adalah komponen yang menyediakan akses ke sumber data yaitu localized strings, graphics, dan layout files 4. Notification Manager adalah komponen yang bertugas mengatur semua aplikasi sehingga menampilkan custom alerts pada the status bar 5. Activity Manager adalah komponen yang mengatur siklus hidup dari semua aplikasi c. Libraries 25 Layer ini berada pada level yang sama dengan Android Run Time dan berisi fitur Android yang biasanya digunakan oleh para pembuat aplikasi ketika mengakses libraries untuk menjalankan aplikasi. Dalam layer ini berjalan di atas kernel dan meliputi berbagai library C / C++ inti seperti Libc dan SSL serta : 1. Libraries media adalah library yang mendukung playback dan recording dalam berbagai format audio dan video seperti MPEG4, H.264, MP3, AAC, AMR, JPG, dan PNG 2. Libraries untuk mengatur tampilan 3. Libraries graphics yang terdiri dari SGL dan OpenGL untuk grafis 2D dan 3D 4. Libraries SQLite adalah relational database engine dan tersedia untuk semua aplikasi 5. Libraries SSL dan WebKit terintegrasi dengan web browser dan security 6. Libraries LiveWebcore mencakup modern web browser dengan engine embedded web view 7. Libraries 3D adalah implementasi OpenGL ES 1.0 API’s. Pada library ini menggunakan hardware 3D acceleration dan highly optimized 3D software rasterizer d. Android Run Time Android Run Time terletak pada lapisan setelah Linux Kernel. Dalam Android Run Time terdiri dari 2 bagian yang menjadi dasar untuk proses pembuatan aplikasi Android, yaitu : 26 1. Core Libraries adalah aplikasi Android yang dibuat dengan bahasa pemrograman Java dan merupakan sebuah libraries yang berfungsi untuk menterjemahkan bahasa Java / C yang dilakukan oleh Core Libraries. 2. Dalvik Virtual Machine (DVM) merupakan salah satu elemen kunci dari Android dan virtual mesin berbasis register bukan virtual machine Java yang dioptimalkan untuk menjalankan fungsi secara efisien, dimana pengembangan dapat membuat linux kernel melakukan threading, keamanan, proses dan fungsionalitas tingkat rendah serta manajemen memori sehingga pembuat aplikasi dapat membuat aplikasi dengan bahasa pemrograman C / C++ seperti sistem operasi linux. e. Linux Kernel Layer ini berisi inti dari sistem operasi Android yang terdiri dari sistem untuk mengatur sistem proses, memori, resource, drivers, dan sistem lainnya. Kernel berperan sebagai abstraction layer antara hardware dan keseluruhan software Android dibangun di atas kernel Linux 2.6. Akan tetapi, secara keseluruhan android bukan linux karena di dalam android tidak terdapat paket standar yang dimiliki oleh linux lainnya. Linux adalah sistem operasi terbuka yang handal dalam manajemen memori dan proses. Oleh karena itu pada android terdapat beberapa servis yang diperlukan seperti keamanan, manajemen memori, manajemen proses, jaringan dan lain – lain. 27 2.7.2 Instalasi 2.7.2.1 Instalasi Java Aplikasi Android merupakan aplikasi yang dikembangkan dalam basis Java. Oleh karena itu, sebelum memulai coding pengembangan aplikasi Android, dibutuhkan program java pada komputer atau PC. Java adalah program yang telah termasuk dalam repository dalam setiap versi dari Ubuntu dan memerlukan Sun Java SE versi 1.5 atau versi 1.6 atau versi diatasnya agar dapat mengkompilasi aplikasi Android yang akan dibuat. Untuk menginstalasi Java, dapat mengetik perintah dari terminal/console seperti contoh javac –version. Java dapat juga diinstal pada Windows dengan mengetik perintah sama seperti Ubuntu dari cmd. 2.7.2.2 Instalasi Android SDK Sebelum melakukan instalasi Android SDK, perlu dipastikan sistem operasi pada komputer yang akan digunakan harus memenuhi syarat yaitu Windows XP (32 – bit), atau Vista (32 – atau 64 – bit), atau Windows 7 (32 – atau 64 – bit), atau Linux (Ubuntu versi 11.04 atau versi 12.04 LTS). Langkah selanjutnya setelah instalasi Java adalah instalasi Android SDK (Software Development Kit) sebagai alat bantu dan API dalam mengembangkan aplikasi pada platform Android menggunakan bahasa pemrograman Java dengan mengunduh secara gratis pada website resmi google di http://www.android.com. Android SDK tidak membutuhkan instalasi, hanya dengan meng – copy isi direktori Android SDK ke komputer. Untuk mengkonfigurasi, buat direktori seperti contoh pada Windows (C:\Program Files\Android SDK) atau pada 28 Linux (home/useranda/AndroidSDK). Letak posisi folder Android SDK perlu diingat karena selanjutnya akan melink posisi Android dengan IDE Eclipse sebagai aplikasi coding yang akan digunakan dalam membuat program Android. Langkah berikutnya setelah selesai melakukan instalasi Android SDK adalah sebagai berikut : a. Instalasi IDE Eclipse Ganymede versi 3.4 atau lebih tinggi b. Instalasi Android Development Tools (ADT) Plugins dengan cara klik Menu Help – Install Software Update, pilih Available Software pilih Add Site dan isi location dengan https://dl-ssl.google.com/android/eclipse/ lalu klik OK dan klik installs serta tunggu sampai proses instalasi ADT selesai. c. Buat Android Virtual Device (AVD) dengan cara klik menu Windows dari Eclipse lalu klik Android SDK and AVD Managers dan pilih virtual Device – New. AVD berjalan di Virtual Machine dan sebagai emulator atau tempat tes untuk menjalankan aplikasi android yang dibuat. Menurut Winarno, Edy, Ali Zaki & SmitDev Community. (2011:14). Sistem operating Android selalu diperbarui secara periodik, karena itu agar program dapat berjalan, perlu diperhatikan beberapa saran seperti berikut ini : a. Jangan menggunakan API internal atau API yang tidak didukung. b. Jangan langsung memanipulasi setting tanpa meminta persetujuan dari user. Rilis masa depan bisa jadi membatasi setting untuk alas an keamanan. Misal, sebelumnya aplikasi dapat mengaktifkan GPS atau data roaming sendiri, tapi sekarang tidak dapat dilakukan. c. Jangan membuat layout terlalu kompleks karena kalau terlalu kompleks dapat mengakibatkan crash. 29 d. Jangan mengasumsikan hardware akan selalu mendukung aplikasi. Tidak semua perangkat Android memiliki hardware yang dibutuhkan karena cek terlebih dahulu apakah peranti Android memiliki hardware yang dibutuhkan oleh program atau tidak? e. Pastikan orientasi device tidak mengganggu aplikasi atau aplikasi menjadi error f. Gunakan library android sebelum menggunakan library Java. Library android dibuat khusus untuk peranti embedded dan memiliki banyak persyaratan untuk aplikasi. Untuk kasus lain, library Java juga diperlukan. Jika keduanya bisa dipakai, usahakan untuk menggunakan library android. g. Hati – hati dengan alokasi memori, pembuatan variable, dan penggunaan objek. Usahakan untuk me – reuse objek dan hindari garbage collection. Alokasi memori dapat di – tracking menggunakan Dalvik Debug Monitor. 2.7.3 Aplikasi Fundamental Aplikasi Android dibuat dalam bahasa pemrograman Java. Program yang dibuat akan dikompilasi dengan data file lain dan dalam proses kompilasinya di – package oleh tools yang dinamakan “apt tools” serta menghasilkan file dengan ekstensi apk. File apk ini yang disebut dengan aplikasi dan diinstal pada perangkat mobile. Terdapat 4 jenis komponen pada aplikasi Android, yaitu : a. Activities Activities merupakan hal yang ada pada aplikasi Android. Sebuah activity, biasanya berupa satu layar dalam aplikasi. Activity ini dinyatakan dengan sebuah class tunggal yang merupakan perpanjangan atau extends dari class activity. 30 Class akan menampilkan interface yang tediri dari Views dan respons untuk menjalankan aksi tertentu. Dan kebanyakan aplikasi Android terdiri atas beberapa layar. Misalnya, ketika akan mengirim sms maka akan terlihat satu layar yang berisi daftar kontak dan layar kedua untuk menulis isi sms. b. Service Service tidak memiliki Graphic User Interface (GUI), tetapi service berjalan pada background. Contoh, ketika memainkan musik, service mungkin memainkan musik atau mengambil data dari jaringan, tetapi service harus berada dalam kelas utama. Misalnya, media player sedang memutar lagu dari daftar lagu, aplikasi ini akan memiliki dua atau lebih activity yang memungkinkan pengguna untuk memilih lagu atau mengetik sms sambil memutar lagu. Untuk menjaga agar musik tetap berjalan, activity player dapat menjalankan service pada thread utama dari proses aplikasi. c. Broadcast Receiver Broadcast Receiver berfungsi menerima dan menyampaikan notifikasi. Contoh broadcast adalah seperti notifikasi zona waktu yang berubah, baterai habis, gambar yang telah selesai diambil oleh kamera atau perubahan referensi bahasa yang digunakan. Aplikasi juga dapat menginisiasi broadcast misalnya memberikan informasi pada aplikasi lain bahwa data yang telah diunduh ke perangkat dan siap untuk digunakan. Broadcast receiver tidak memiliki user interface (UI) tetapi memiliki sebuah activity untuk merespon informasi yang diterima atau mungkin menggunakan Notification Manager untuk memberitahu pengguna seperti lampu layar atau perangkat getar dan lain sebagainya. 31 d. Content Provider Content provider membuat kumpulan aplikasi data yang dapat digunakan secara spesifik oleh aplikasi lain. Data disimpan dalam file sistem seperti database SQLite. Content provider menyediakan cara untuk mengakses data yang dibutuhkan oleh suatu activity, misalnya ketika aplikasi membutuhkan peta atau aplikasi untuk mengakses data kontak dan navigasi dan fungsi content provider berjalan. 2.7.4 Versi Android Android telah mengalami perkembangan sistem operasi yang lebih baik sejak pertama kali diluncurkan. Google terus memperbaiki kekurangan yang ada dengan merilis beragam macam versi terbaru setiap 3 bulan. Versi Android yang pernah dirilis adalah sebagai berikut : a. Android versi 2.1 (Eclair) Setelah versi 1.6 terakhir dirilis, Google meluncurkan kembali versi 2.1 dengan perubahan yang dilakukan pada pengoptimalan hardware, tampilan, daftar kontak, dan penambahan aplikasi lain pada handphone. b. Android versi 2.2 (Froyo : Frozen Yoghurt) Pada bulan Mei 2010, Android memperbarui sistemnya dan merilis versi 2.2. Pada versi ini terdapat peningkatan kinerja terhadap versi sebelumnya yaitu dukungan Adobe Flash 10.1, kecepatan kinerja dan kemampuan WiFi Hotspot 32 portabel, kemampuan auto update dalam aplikasi Android Market dan kemampuan lainnya. c. Android versi 2.3 (Gingerbread) Setelah 7 bulan versi 2.2 dirilis, Android kembali meluncurkan versi 2.3 pada Desember 2010. Pada saat skripsi ini ditulis, versi ini banyak digunakan dalam smartphone Android. Dalam pembuatan program aplikasi membaca sms menggunakan suara ini digunakan Android versi 2.3. Fitur yang terdapat di dalamnya mengalami perubahan yaitu sebagai berikut : 1. Peningkatan kemampuan permainan (gaming), seleksi kata dan teks dengan satu sentuhan serta peningkatan fungsi copy paste 2. Desain ulang layar antar muka (User Interface) agar lebih baik dalam penghematan energi 3. Aplikasi pada keyboard seperti swype dan swiftkey yang dapat meramal kata sehingga mempercepat penulisan, dan sebagainya. Sampai saat ini, versi Android terbaru adalah versi 4.1 (Jelly Bean) dan akan terus berkembang seiring dengan kebutuhan user dalam bidang smartphone dan untuk mendapatkan informasi versi terbaru Android dapat dilihat di www.android.com 2.7.5 Teori Perancangan Aplikasi 2.7.5.1 View dan Teks Pokok penyusun tampilan grafis disebut view. Setiap view dideskripsikan oleh objek view yang tugasnya adalah menggambarkan area kotak dan meng – handle event di area tersebut. View merupakan class dasar untuk objek widget yang berinteraksi 33 dengan user. Contoh widget adalah button, checkbox, textview, dan lain – lain. Objek Viewgroup merupakan tipe view yang berfungsi sebagai container untuk menampung beberapa view termasuk viewgroup lainnya. Viewgroup dapat menampung view dan widget vertikal atau horizontal. Viewgroup merupakan class dasar bagi layout layar. Layout mendefinisikan elemen user interface, posisi dan action yang dapat ditentukan dalam bentuk XML atau Java. Biasanya layout awal dinyatakan dalam XML dan perubahan saat run time dinyatakan di Java. Dengan menggunakan viewgroup dan widget, pembuatan antarmuka menjadi lebih mudah. Berikut ini adalah widget yang digunakan dalam membuat tampilan menu pada aplikasi android yang terdiri dari : a. Button adalah tampilan kotak yang digunakan sebagai register ketika layar disentuh pada bagian tengahnya. b. CheckBox adalah sejenis button dengan tampilan cek dan deskripsi yang dapat dipilih dan tidak dipilih. Pada perancangan program aplikasi ini menggunakan checkbox sebagai tampilan visual menu untuk menjalankan aplikasi. c. RadioButton adalah sejenis button dengan tampilan titik yang dapat dipilih ketika disentuh tetapi tidak dapat dimatikan. Radio button dapat digabungkan dan dikelompokkan lebih dari satu radio button menjadi satu kesatuan dan hanya dapat dipilih satu radio button saja. d. Spinner adalah button yang menunjukkan pemilihan sekarang dan memungkinkan grafik untuk menunjukkan. Ketika spinner disentuh, maka nilai yang ada akan ditampilkan dan ketika pemilihan dibuat, maka akan ditampilkan di spinner. 34 e. ProgressBar adalah sebuah bilah yang menyala secara visual yang menunjukkan persentase kemajuan sebuah proses. 2.7.5.2 Audio di Android Suara atau audiodi android terdiri dari dua macam framework yang dapat dipakai untuk merekam dan memainkan file audio dan tergantung pada aplikasi yang dijalankan. Dua macam framework tersebut adalah sebagai berikut : a. Media Player / Media Recorder merupakan metode standar untuk memanipulasi audio tetapi hanya dapat digunakan untuk file audio berbasis file atau stream data. Metode ini diproses dengan cara menciptakan thread sendiri. b. Audio Track / Audio Recorder merupakan metode yang menyediakan akses direct ke raw audio. Digunakan untuk memanipulasi audio di memori dan akan menuliskan buffer pada saat menjalankan audio atau penggunaan lain yang tidak membutuhkan file atau stream. Pada metode ini tidak menciptakan thread sendiri. 2.7.5.3 User Interface Hardware Pada perancangan program aplikasi berbasis Android, digunakan user interface hardware berupa sensor. Dalam smartphone Android terdapat sensor yang canggih dan powerful berkat kemajuan dunia elektronika yaitu Micro Electro Mechanical Systems (MEMS). MEMS adalah sumber alat sensor yang dibuat menjadi mudah. Berikut ini beberapa sensor yang digunakan dan terdapat dalam Android : a. TYPE_ACCELEROMETER digunakan untuk mengatur akselarasi dalam 1 m/s2 . Sensor ini digunakan dalam perancangan program aplikasi. 35 b. TYPE_ALL digunakan untuk mengukur tipe sensor dan merupakan konstanta. c. TYPE_GYROSCOPE digunakan untuk mengukur orientasi berdasarkan momentum sudut. d. TYPE_LIGHT digunakan untuk mengukur cahaya ambient di lux. e. TYPE_MAGNETIC_FIELD digunakan untuk mengukur medan magnet dalam satuan (mikro Tesla). f. TYPE_PRESSURE digunakan untuk mengukur tekanan udara. g. TYPE_PROXIMITY digunakan untuk mengatur objek penghalang dalam sentimeter h. TYPE_TEMPERATURE digunakan untuk mengukur temperature dalam derajat celcius. 2.8 Aplikasi Mobile Aplikasi mobile atau mobile application adalah proses pembuatan dan pengembangan aplikasi untuk perangkat gengam, misalnya telepon selular. Aplikasi mobile telah terdapat dalam telepon selular pada saat proses pembuatan, atau sekarang ini dapat didownload oleh pengguna dari aplikasi market yang tersedia dalam perangkat telepon selular. Sebuah aplikasi mobile mempunyai karakteristik sebagai berikut : a. Ukuran yang kecil b. Memori yang terbatas c. Daya proses yang terbatas d. Penggunaan daya yang rendah e. Konektivitas yang terbatas 36 2.8.1 Tipe Aplikasi Mobile Salah satu tipe aplikasi berupa mobile adalah SMS. Menurut Fling, Brian (2009:70). SMS adalah aplikasi paling dasar yang dapat dibuat dan dirancang terlebih dahulu. dan aplikasi yang terintegrasi dengan aplikasi lain. Aplikasi SMS ini terdapat beragam macam jenis seperti pengguna yang mengirimkan kata kunci kepada konten premium dan dibalas dengan konten berupa link ke sebuah website. Aplikasi SMS mempunyai dua macam sifat yaitu bebas dan premium. Bebas berarti tidak ada biaya tambahan di luar biaya SMS. Premium berarti terdapat biaya tambahan dalam pertukaran konten. Terdapat keunggulan dan kelemahan dari aplikasi SMS. Keunggulan dari aplikasi SMS adalah a. SMS bekerja pada setiap perangkat mobile secara kontinu. b. SMS berguna untuk mengirimkan “alert” tepat waktu kepada pengguna. c. SMS dapat dimasukkan ke dalam web atau aplikasi mobile. d. SMS dapat digunakan untuk mengatur dan mengelola. Kelemahan dari aplikasi SMS adalah a. SMS hanya terbatas sampai 160 karakter. b. SMS memberikan pengalaman berbasis teks yang terbatas. c. SMS dapat menjadi sangat mahal. 2.9 Unified Modeling Language Unified Modeling Language atau disingkat dengan UML adalah sebuah bahasa dari gambaran perancangan program berorientasi objek berdasarkan diagram atau grafik yang digunakan sebagai visualisasi, spesifikasi, dan dokumentasi. Dalam perancangan 37 program berorientasi objek, UML mendeskripsikan berdasarkan diagram yang terdiri dari : a. Structural Diagram 1. Class Diagram Mendeskripsikan jenis – jenis objek dalam sistem dan berbagai macam hubungan statisyang terjadi. Class diagram menunjukkanproperti dan operasi sebuah Class dan batasan yang terdapat dalam hubungan dengan objek. Class diagram merupakan alat terbaik dalam perancangan perangkat lunak. Class diagram membantu pengembang mendapatkan struktur sistem dan menghasilkan rancangan sistem yang baik. 2. Deployment Diagram Menggambarkan elemen perangkat keras yang merupakan bagian arsitektur fisik dari perancangan sistem. b. Behavioral Diagram 1. Use Case Diagram Memodelkan proses berdasarkan pandangan user.Use case diagram terdiri atas diagram untuk use case dan aktor. Aktor adalah orang yang berinteraksi dengan sistem aplikasi. 2. Sequence Diagram Urutan proses yang dilakukan dalam sistem untuk mencapai tujuan dari Use Case, interaksi antar class dan urutan proses yang terlibat. 3. Activity Diagram Menampilkan proses secara prosedur dari elemen sistem. 38 2.10 Flowchart Flowchart adalah bagan yang menggambarkan secara grafik tentang langkah penyelesaian suatu masalah dan berisi urutan suatu prosedur dari sebuah program. Bertujuan untuk membantu menyelesaikan masalah dari penggambaran tahapan secara sederhana yang menggunakan notasi dan simbol – simbol standar. Flowchart terbagi ke dalam 5 jenis yang terdiri dari : a. Flowchart Sistem (System Flowchart) Merupakan bagan yang menunjukkan alur kerja atau apa yang sedang dikerjakan di dalam sistem secara keseluruhan dan menjelaskan urutan dari prosedur – prosedur yang terdapat di dalam sistem. Dengan kata lain, flowchart ini merupakan deskripsi secara grafik dari urutan prosedur – prosedur yang terkombinasi dan membentuk suatu sistem. b. Flowchart Paperwork atau Flowchart Dokumen (Document Flowchart) Flowchart paperwork menelusuri alur dari data yang ditulis melalui sistem. Flowchart paperwork sering disebut juga dengan flowchart dokumen. Kegunaan utama dari flowchart ini adalah untuk menelusuri alur form dan laporan sistem dari satu bagian ke bagian lain baik bagaimana alur form dan laporan diproses, dicatat dan disimpan. c. Flowchart Skematik (Schematic Flowchart) 39 Mirip dengan flowchart sistem yang menggambarkan suatu sistem atau prosedur. Flowchart skematik ini bukan hanya menggunakan simbol – simbol flowchart standar, tetapi juga menggunakan gambar – gambar komputer, peripheral, form – form atau peralatan lain yang digunakan dalam sistem. Flowchart skematik digunakan sebagai alat komunikasi antara analis sistem dengan seseorang yang tidak familiar dengan simbol – simbol flowchart yang konvensional. Pemakaian gambar sebagai ganti dari simbol – simbol flowchart akan menghemat waktu yang dibutuhkan oleh seseorang untuk mempelajari simbol abstrak sebelum dapat mengerti flowchart. d. Flowchart Program (Program Flowchart) Flowchart program dihasilkan dari flowchart sistem. Flowchart program merupakan keterangan yang lebih rinci tentang bagaimana setiap langkah program atau prosedur sesungguhnya dilaksanakan. Flowchart ini menunjukkan setiap langkah program atau prosedur dalam urutan yang tepat saat terjadi. e. Flowchart Proses (Process Flowchart) Merupakan teknik penggambaran rekayasa industrial yang memecah dan digunakan oleh perekayasa industrial dalam mempelajari dan mengembangkan proses – proses manufacturing. Dalam analisis sistem, flowchart ini digunakan secara efektif untuk menelusuri alur suatu laporan atau form.