BAB II LANDASAN TEORI 2.1 Pengertian Algoritma Genetika Algoritma genetik merupakan algoritma yang dikembangkan dari proses pencarian solusi optimasi yang menggunakan pencarian secara acak (random), proses ini terlihat dari cara regenerasi populasi awal yang menyatakan sekumpulan solusi yang dipilih secara acak. Algoritma ini memanfaatkan proses seleksi alamiah yang dikenal dengan proses evolusi. Dalam proses evolusi ini, individu secara terus - menerus akan mengalami perubahan gen untuk menyesuaikan dengan lingkungan hidupnya. Hanya individu yang kuat yang akan mampu bertahan, sehingga dalam proses evolusi ini akan dapat diharapkan memperoleh individu yang terbaik. proses seleksi alamiah ini melibatkan perubahan gen yang akan terjadi pada individu melalui proses perkembang-biakkan untuk mendapatkan keturunan atau generasi yang lebih baik. Algoritma genetik pada dasarnya merupakan suatu program komputer yang mensimulasikan proses evolusi. Dalam hal ini populasi dari kromosom dihasilkan secara random/acak dan akan memungkinkan untuk berkembang biak sesuai dengan hukum-hukum evolusi dengan harapan akan menghasilkan individu kromosom yang prima. Kromosom ini pada kenyataannya adalah kandidat penyelesaian dari masalah, sehingga bila kromosom yang baik berkembang, solusi yang baik terhadap masalah diharapkan akan dihasilkan. Variasi kromosom ini akan mempengaruhi laju reproduksi dan tingkat kemampuan organisme untuk tetap hidup. Pada dasarnya ada 4 kondisi yang sangat mempengaruhi proses evaluasi tersebut, yaitu: 1. Kemampuan organisme untuk melakukan reproduksi. 2. Keberadaan populasi organisme yang bisa melakukan reproduksi. 3. Keberagaman organisme dalam suatu populasi. 4. Perbedaan kekuatan dan kemampuan organisme untuk bertahan hidup. 1 2.1.1 Sejarah Algoritma Genetik Algoritma Genetik merupakan sebuah metode pencarian yang telah disesuaikan dengan proses genetika dari organisme-organisme biologi yang berdasarkan pada teori revolusi Charles Darwin. Menurut Randy L and Sue Ellen (2004:22) Algoritma ini pertama kali diperkenalkan oleh John Holland dari Universitas Michigan pada awal 1970-an di New York, Amerika Serikat. John Holland bersama murid-murid serta rekan kerjanya lalu menghasilkan buku yang berjudul "Adaption in Natural and Artificial Systems" pada tahun 1975, melalui sebuah penelitian dan dipopulerkan oleh salah satu muridnya David Golberg (1989) dimana mendefinisikan algoritma genetik sebagai metode algoritma pencarian berdasarkan pada mekanisme seleksi alam dan genetik alam. John Holland menyatakan bahwa setiap masalah yang berbentuk adaptasi (alami maupun buatan) dapat diformulasikan dalam teknologi genetika. Algoritma Genetik adalah algoritma yang berusaha menerapkan pemahaman mengenai evolusi alamiah pada tugas-tugas pemecahan masalah (problem solving). Pendekatan yang diambil oleh algoritma ini adalah dengan menggabungkan secara acak berbagai pilihan solusi terbaik di dalam suatu kumpulan untuk mendapatkan generasi solusi terbaik berikutnya yaitu pada suatu kondisi yang memaksimalkan kecocokannya atau lazim disebut fitness. Generasi ini akan mempresentasikan perbaikan-perbaikan pada populasi awalnya, dengan melakukan proses ini secara berulang, algoritma ini diharapkan dapat memanipulasikan proses evolusioner. Pada akhirnya, akan didapatkan solusi-solusi yang paling tepat bagi permasalahan yang dihadapi. Algoritma genetik terispirasi dari mekanisme seleksi alam, dimana individu yang lebih kuat yang kemungkinan akan menjadi pemenang dalam lingkungan yang kompetitif dan solusi yang optimal dapat diperoleh dan diwakilkan oleh pemenang akhir dari permainan genetik. Didalam algoritma genetik tersedia solusi yang ditetapkan pada sebuah populasi individu-individu yang masing-masing mewakili solusi yang mungkin. Setiap solusi yang mungkin disebut dengan 'kromosom", yang ditunjukkan dengan sekumpulan simbol dalam bentuk string dengan panjang tertentu dan biasanya dari alfabet biner (0,1). Penggambaran sebuah string kromosom bit biner ditunjukkan sebagai berikut : 2 |110110| string kromosom gen Gambar 2.1 Penggambaran string kromosom Selama evaluasi genetik, kromosom yang lebih sehat memiliki kecenderungan menghasilkan off spring (keturunan) yang sehat pula. Kromosom tersedia secara acak dari populasi sehingga sebuah siklus operasional genetik akan berhasil apabila kromosom yang disebut parent (orang tua) dipilih melalui tahapan penyeleksian yang spesifik. Gen dari parent tersebut digabung untuk menghasilkan off spring yang merupakan sebuah generasi baru dari proses evaluasi ini (manipulasi terhadap gen) diharapkan kromosom yang lebih baik akan menghasilkan jumlah off spring yang lebih banyak dan mungkin berhasil bertahan pada generasi berikutnya. 2.1.2 Siklus Algoritma Genetik Dibawah ini merupakan contoh siklus pembentukan populasi baru dari sebuah algoritma genetik. Populasi Awal Evaluasi Fitness Seleksi Individu Reproduksi : Mutasi Populasi Baru Gambar 2.2 Siklus Algoritma Genetik 3 2.1.3 Kelebihan dan Kelemahan Algoritma Genetik Kelebihannya : • Algoritma genetik sangat tepat digunakan untuk penyelesaian masalah optimasi yang kompleks dan sukar diselesaikan dengan menggunakan metode yang konvensional. • Algoritma genetik tidak membutuhkan banyak kebutuhan matematis tentang masalah optimalisasi karena akan mencari solusi berdasarkan evolusi alami. Sehingga dapat digunakan untuk skala besar dan perhitungan yang rumit. Dibawah ini cara kerja dari algoritma genetik yaitu sebagai berikut: • Membangkitkan sebuah populasi yang berisi sejumlah kromosom, kromosom kromosom tersebut akan berevolusi secara berkelanjutan yang disebut generasi. • Mengkodekan kromosom yang telah dibangkitkan menjadi individu x dalam interval yang diinginkan. • Menghitung nilai fitness dari individu x. • Melakukan seleksi untuk memperoleh individu yang baik untuk menjadi orang tua (parent). • Mutasi, yaitu untuk semua gen yang ada. Jika bilangan acak yang dibangkitkan kurang dari probabilitas mutasi yang ditentukan maka harus mengubah gen tersebut dengan kebalikannya (0 menjadi 1 dan 1 menjadi 0). Proses akan berulang sampai sejumlah generasi yang telah ditentukan. Kelemahan : Kelemahan dari algoritma genetik yaitu dikarenakan semua komponen algoritma genetik bersifat random atau acak yang mengakibatkan solusi yang dihasilkan berbeda – beda pada setiap kali running, akan tetapi kejadian ini dapat dihindari dengan cara memilih nilai - nilai parameter dengan tepat, maka dengan ini algoritma genetik dapat memberikan solusi yang dapat diterima dengan baik. 4 1.1.4 Komponen Dasar dan Komponen Utama Algoritma Genetik Menurut Randy L and Sue Ellen (2004:13) untuk meningkatkan teknik optimasi dalam perhitungan evolusioner algoritma genetik mempunyai 5 (lima) komponen dasar dan 6 (enam) komponen utama. Komponen dasar agoritma genetik, yaitu: 1. Pembentukan operator genetik dari solusi ke masalah. 2. Pembentukan satu populasi awal dari solusi. 3. Fungsi evaluasi dalam pembentukan nilai fitness algoritma genetik. 4. Pembentukan kromosom awal dari operator genetik. 5. Nilai parameter algoritma genetik. Komponen utama algoritma genetik, yaitu sebagai berikut: 1. Teknik penyandian Teknik penyandian meliputi penyandian gen dari kromosom walaupun gen juga merupakan bagian dari kromosom, dalam satu gen biasanya akan mewakili satu variable. Gen dapat direpresentasikan dalam berbagai bentuk antara lain: string bit, pohon, array bilangan real, daftar aturan, elemen permutasi, elemen program dan lain-lain, sedangkan kromosom dapat direpresentasikan dengan menggunakan antara lain: string bit, bilangan real, elemen permutasian, daftar aturan, elemen program pada pemrograman genetik serta struktur lainnya. Contoh dari representasi kromosom antara lain sebagai berikut : 1. String bit : 10011, 11101, dst 2. Bilangan Real : 65.65, 562.88, dst 3. Elemen Permutasi : E2, E10, dst 4. Daftar Aturan : R1, R2, R3, dst 5. Elemen Program : pemrograman genetika, dst 6. Struktur lainnya Misalkan ingin dipecahkan sebuah masalah estimasi yaitu dengan sampel yang ada untuk A dan B berapa nilai dengan fungsi tujuan meminimumkan least square atau memaksimumkan fungsi likelihood (fungsi kemungkinan). Persoalan tersebut dapat diselesaikan 5 dengan algoritma genetik, yaitu ketiga parameter dikodekan dalam kromosom yang masing-masing berisi sejumlah gen yang mengkodekan informasi yang disimpan di dalam kromosom. Misalkan untuk memudahkan digunakan binary encoding dengan panjang kromosom 12 gen (12 bits), masing-masing parameter dikodekan dengan 4 gen, sehingga diperoleh pengkodean seperti berikut: Tabel 2.1 Skema Binary Encoding Parameter Binary 1 0 1 1 1 1 1 0 1 0 1 0 g1 g2 g3 g4 g5 g6 g7 g g g10 g11 g12 8 9 Number Decimal 11 14 3 Number Jika nilai parameter yang akan dicari mempunyai constraint, , maka berdasarkan binary encoding nilai parameter dapat diperoleh dengan menggunakan formula berikut dimana n menyatakan banyaknya bit atau gen (dalam tabel 2.1, setiap parameter memiliki (empat) 4 bit dan constraint ), sehingga diperoleh: Setetelah skema pengkodean ditentukan, algoritma genetika diinisialisasi untuk sebuah populasi dengan N kromosom. Gen-gen yang mengisi 6 masing-masing kromosom dibangkitkan secara random. Masing- masing kromosom akan dikodekan menjadi individu dengan nilai fitness tertentu, dan kemudian sebuah populasi baru akan dibentuk dengan menggunakan mekanisme seleksi alamiah, yaitu memilih individuindividu secara proporsional terhadap nilai fitnessnya, dan genetika alamiah, yakni mutasi. Pada algoritma genetik metode yang akan digunakan adalah dengan skema pergantian populasi yang disebut generational replacement artinya, N kromosom dari suatu generasi digantikan sekaligus oleh N kromosom baru hasil mutasi. 2. Prosedur inisialisasi Ukuran populasi tergantung pada masa yang akan dipecahkan dan jenis operator genetika yang akan implementasikan, juga dilakukan inisialisasi terhadap kromosom secara acak yang terdapat pada populasi tersebut. 3. Fungsi evaluasi Ada 2 hal yang harus dilakukan dalam melakukan evaluasi kromosom yaitu: evaluasi fungsi objektif dan konfersi fungsi objektif ke dalam fungsi fitness. Dalam hal ini untuk mendapatkan hasil yang baik digunakan metode best fitness. Metode best fitness yaitu pencarian obyek dengan cara mencari semua kemungkinan solusi yang terbaik. Setengah dari jumlah populasi yang memiliki harga fitness yang terendah akan dihilangkan sehingga akan hanya selalu tersisa sekelompok solusi terbaik yang pernah diperoleh oleh program. 4. Seleksi Bertujuan untuk memberikan kesempatan reproduksi yang lebih besar bagi anggota populasi yang paling fit, ada beberapa metode seleksi dari induk, antara lain: a. Rank-based fitness assignment b. Roulette wheel selection c. Stochastic universal sampling d. Local selection e. Truncation selection f. Tournament selection 7 5. Operator Genetika Ada 2 operator genetika yaitu operator untuk melakukan rekomendasi dan mutasi, operator untuk melakukan rekomendasi terdiri atas rekomendasi bernilai real, rekomendasi bernilai biner (Crossover) dan Crossover dengan permutasi, sedangkan operator untuk melakukan mutasi terdiri atas mutasi bernilai real dan mutasi bernilai biner. 6. Penentuan parameter Parameter adalah parameter control algoritma genetika yaitu ukuran populasi (popsize), peluang crossover (Pc) dan peluang mutasi (Pm). 2.1.5 Aplikasi Algoritma Genetik Untuk meningkatkan sebuah aplikasi yang akan dibangun sebuah program membutuhkan algoritma yang akan menghubungkan agar sebuah aplikasi dapat berjalan sesuai dengan yang diharapkan. Pada aplikasi ini metodologi sistem pencariannya menggunakan algoritma genetik. Algoritma genetik biasa digunakan pada sistem pencarian dekstop, dan penulis mengembangkan algoritma genetik ini ke dalam sistem pencarian berbasis android atau mobile phone. 2.2 Pengertian Smartphone Smartphone atau yang dikenal dalam arti bahasa Indonesia adalah telepon pintar. merupakan alat telekomunikasi yang menggunakan sistem operasi sebagai penggerak aplikasi yang ada dalam telepon tersebut. Smartphone memiliki fungsi yang lebih dibandingkan dengan telepon genggam biasa yang sering digunakan. Selain dapat digunakan sebagai alat telekomunikasi, smartphone juga dapat menjadi alat sosialisasi dalam dunia maya, dapat membuka dokumen yang ada, koneksi yang juga lebih lengkap seperti WiFi, Broadband, dan juga Bluetooth. Ponsel pintar pertama yang diperkenalkan adalah IBM Simon. Smartphone ini diciptakan pada tahun 1992 dan dijual ke publik pada 1993. Ponsel ini mempunyai beberapa aplikasi tambahan seperti calendar, address book, world clock, calculator, notepad, email client, mengirim dan menerima fax, serta games. Ponsel ini didesain tanpa tombol fisik dan menggunakan layar touchscreen dengan stylus. Setelah kemunculan ponsel pintar IBM Simon, Nokia meluncurkan 8 smartphone pertamanya, yakni Nokia Communicator 9000 yang diluncurkan pada 1996. Communicator ini merupakan kombinasi antara PDA dari HP. Communicator memiliki desain clamshell yang dilengkapi dengan keyboard QWERTY.Tahun 2000 adalah awal dari penggunaan kata smartphone alias ponsel pintar. Ericsson R380 Smartphone adalah ponsel pertama yang menggunakan kata tersebut dalam merk dagangnya. Smartphone lain memenuhi pasaran. Dari Sony Ericsson P800, Nokia Communicator 9210, BlackBerry, hingga iPhone. Seiring dengan kemajuan smartphone, berbagai jenis OS mobile pun berkembang. Antara lain adalah Symbian dari Nokia, iOS dari Apple, BlackBerry OS dari RIM, Bada dari Samsung dan Android dari google. Seperti halnya Palm, Windows mobile dan symbian android juga memiliki fungsi yang sama.Pada bulan Oktober 2003 Andy Rubin, Rich Miner, Nick Sears dan Chris White mendirikan perusahaan yang bernama Android Inc. Terletak di di Palo Alto, California, USA. Pada masanya persatuan dari 34 perusahaan yaitu Google Inc membeli Android Inc. Dan merupakan pendatang baru yang bertujuan membuat peranti lunak untuk Handphone. Android merupakan produk dari Android Inc. Android Inc sendiri adalah sebuah perusahaan perangkat lunak kecil yang didirikan pada bulan Oktober 2003 di Palo Alto, California, USA. Yang didirikan oleh Andy Rubin, Rich Miner, Nick Sears dan Chris White yang memiliki pengetahuan tinggi dalam IT & Communication. 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. 2.2.1 Pengenalan Android Android merupakan sebuah sistem operasi perangkat mobile berbasis linux yang mencakup sistem operasi, middleware dan aplikasi. Beberapa pengertian lain dari android yaitu : • Merupakan platform terbuka (Open Source) bagi para pengembang (programmer) untuk membuat aplikasi. • Merupakan sistem operasi yang dibeli Google Inc. dari android Inc. 9 • Bukan bahasa pemrograman, akan tetapi hanya menyediakan lingkungan hidup atau run time environment yang disebut DVM ( Dalvik Virtual Machine ) yang telah dioptimasi untuk device atau alat dengan sistem memori yang kecil. 2.2.2 Arsitektur Android Secara garis besar, arsitektur Android terdiri atas Applications dan Widgets, Applications Frameworks, Libraries, Android Run Time, dan Linux Kernel. Applications dan Widgets merupakan layer atau lapis, dimana kita berhubungan dengan aplikasi saja. Applications Frameworks merupakan Open Development Platform yang ditawarkan Android untuk dapat dikembangkan guna membangun aplikasi. Pengembang memiliki akses penuh menuju API Frameworks seperti yang dilakukan oleh aplikasi kategori inti. Komponen – komponen yang termasuk di dalam Applications Frameworks adalah sebagai berikut : Views, Content Provider, Resource Manager, Notification Manager, dan Activity Manager. Libraries merupakan layer, dimana fitur – fitur Android berada. 2.2.3 Struktur Aplikasi Android Struktur aplikasi Android atau Fundamental Aplikasi ditulis dalam bahasa pemrograman Java. Kode Java dikompilasi bersama dengan file resource yang dibutuhkan oleh aplikasi, dimana prosesnya di package oleh tools yang dinamakan “ apt tools ” ke dalam paket Android, sehingga menghasilkan file dengan ekstensi apk. File apk ini yang disebut dengan aplikasi, dan nantinya dapat dijalankan pada device atau peralatan mobile. Ada empat komponen pada aplikasi Android sebagai berikut : a. Activities merupakan komponen untuk menyajikan user interface ( tampilan program ) kepada pengguna. b. Service merupakan komponen yang tidak memiliki user interface ( tampilan program ), tetapi service berjalan secara backgrounds. c. Broadcast Receiver merupakan komponen yang berfungsi menerima dan bereaksi untuk menyampaikan notifikasi. 10 d. Content Provider merupakan komponen membuat kumpulan aplikasi data secara spesifik sehingga bisa digunakan oleh aplikasi lain. 2.2.4 Kelebihan dan Kekurangan Android Android merupakan sistem operasi yang dirancang dan dipublikasikan oleh Google, sebuah perusahaan mesin pencari dan raksasa internet. Dewasa ini pabrikan ponsel dan smartphone ramai – ramai memakai android sebagai sistem operasi mereka lebih memilih android sebagai OS yang dipakai daripada menggunakan sistem operasi lain dikarenakan OS android terdapat kelebihan didalamnya sebagai sistem operasi saat ini. Kelebihan Android diantaranya yaitu : 1. Android bersifat terbuka, karena berbasis Linux yang open sourcenya bisa dikembangkan oleh siapa saja. 2. Akses mudah ke Android App Market Pengguna android adalah orang yang gemar utak atik handphone. Dengan Google Android App Market dapat mendownload berbagai aplikasi dengan gratis. 3. Widget, pada layar utama android terdapat widget yang memudahkan user mengakses aplikasi android, misalnya menampilkan ststus terbaru FB, Twitter atau melihat kondisi cuaca daerah tertentu (tentunya dibutuhkan kineksi dengan internet). 4. Sistem Operasi Merakyat Ponsel android beda sekali dengan IOS yang terbatas pada iphone dari Apple, maka android memiliki banyak produsen dengan gadget andalan masing - masing mulai dari HTC hingga Samsung. 5. Fasilitas penuh USB Anda dapat mengganti baterai, mass storage, diskdrive, dan USB tathering. 6. Mudah dalam hal notifikasi Sistem operasi ini bisa memberitahukan Anda tentang adanya SMS, Email, atau bahkan artikel terbaru dari RSS Reader. Bahkan Anda tidak akan terlewat dalam hall miscall sekalipun. 11 7. Mendukung semua layanan Google Sistem operasi android mendukung semua layanan dari Google mulai dari Gmail sampai Google Reader. Semua layanan Google bias dimiliki dengan satu sistem operasi yaitu android. 8. Install ROM modifikasi Jika mendapati ROM yang tidak resmi, maksudnya adalah versi yang telah rilis tidak sesuai dengan spesifikasi ponsel kita, jalan terakhir adalah modifikasi. Jangan khawatir ada banyak custom ROM yang dapat dipakai di ponsel Android dan dijamin tidak akan membahayakan perangkat anda. Kekurangan Android diantaranya yaitu : 1. Terhubung dengan internet Android dapat dikatakan sangat memerlukan koneksi internet yang aktif. Setidaknya harus ada koneksi internet GPRS di daerah anda, agar perangkat siap untuk online sesuai dengan kebutuhan kita. 2. Perusahaan perangkat terkadang lambat mengeluarkan versi resmi dari Android, meskipun terkadang tidak ada perbedaan mencolok dalam hal UI. 3. Android Market kurang control dari pengelola, terkadang masih terdapat malware. 4. Sebagai penyedia layanan langsung, terkadang pengguna sangat sulit sekali terhubung dengan pihak Google. 5. Iklan, disetiap aplikasi hampir selalu muncul iklan, kecuali aplikasi bawaan android sendiri atau aplikasi berbayar. Karena mudah dan gratis, terkadang sering diboncengi iklan. Secara tampilan memang tidak mengganggu kinerja aplikasi itu sendiri, karena memang kadang berada di bagian atas atau bawah aplikasi. 6. Boros baterai 2.2.5 Versi Android Banyak Smartphone dan PC Tablet menggunakan system operasi dengan versi yang berbeda. Semakin Versi tinggi, fiturnya semakin canggih dan banyak. Telepon pertama yang memakai sistem operasi Android adalah HTC Dream yang 12 dirilis pada tanggal 22 Oktober 2008. Beberapa uraian versi Android seperti dibawah ini : a. Android 1.0 dirilis pada tanggal 23 September yang memiliki kode nama Apple pie serta ukuran layar 320x480 HVGA. b. Android versi 1.1 (Banana Bread) Sebagai hasil pengembangan versi perdana, versi ini pertama kali dirilis oleh Google pada tanggal 9 Maret 2009. Versi ini memiliki fitur – fitur : jam, alarm, voice search (pencarian suara), pengiriman pesan dengan Gmail dan pemberitahuan email. c. Android versi 1.5 (Cupcake) Google kembali hadir dengan merilis versi terbaru yakni versi 1.5 (Cupcake) dirilis pada 30 April 2009. Penyesuaian sistem pada layar terjadi pada versi ini mengingat terdapat penambahan beberapa fitur yakni kemampuan merekam dan menonton video dengan modus kamera, mengunggah video ke Youtube dan gambar ke Picasa via telepon, dukungan Bluetooth A2DP, kemampuan koneksi secara otomatis ke headset Bluetooth, animasi layar, dan keyboard semua dapat dilakukan jauh lebih efektif. d. Android versi 1.6 (Donut) Selanjutnya pada 15 September 2009 diliris kembali dengan versi 1.6 (Donut) yang menampilkan proses pencarian lebih baik dibanding pada versi sebelumnya, penggunaan baterai indikator dan kontrol applet VPN. Fitur lain yang terdapat pada versi ini adalah fungsi fitur untuk galeri yang memungkinkan pengguna untuk memilih foto yang hendak di hapus; kamera, camcorder dan galeri yang dintegrasikan; CDMA / EVDO, 802.1x, VPN, Gestures, dan Text-to-speech engine; kemampuan dial kontak; teknologi text to change speech (tidak tersedia pada semua ponsel; pengadaan resolusi VWGA). e. Android versi 2.0/2.1 (Eclair) Versi Android ini dirilis pada 3 Desember 2009 yang mulai dipakai oleh banyak smartphone, fitur utama Eclair yaitu perubahan total struktur dan tampilan user interface dan merupakan versi Android yang pertama kali 13 mendukung format HTML5. Versi ini dilengkapi dengan Google Maps 3.1.2, browser baru dan dukungan flash untuk kamera 3,2 MP, digital zoom, dan bluetooth 2.1. f. Andoid versi 2.2 (Froyo / Frozen Yoghurt) Android 2.2 dirilis pada 20 Mei 2010 dengan 20 fitur baru, antara lain peningkatan kecepatan, fitur Wi-Fi hotspot tethering dan dukungan terhadap Adobe Flash. g. Android versi 2.3 (Gingerbread) Gingerbread dirilis pada 6 Desember 2010, versi ini memanjakan para penggemar game. Format video, peningkatan kualitas suara menjadi kelebihan dari versi ini dibanding versi sebelumnya. Perubahan utama di versi 2.3 ini termasuk update UI, peningkatan fitur soft keyboard & copy/paste, power management, dan support Near Field Communication. h. Android versi 3.0, 3.1 dan 3.2 (Honeycomb) Versi baru ini dirilis pada tahun 2011 yang mendukung multi prosesor dan juga peningkatan kemampuan hardware untuk grafis. Honeycomb juga ditujukan untuk gadget / device dengan layar besar seperti Tablet PC; Fitur baru Honeycomb yaitu dukungan terhadap prosessor multicore dan grafis dengan hardware acceleration (Tablet pertama yang memakai Honeycomb adalah Motorola Xoom yang dirilis bulan Februari 2011). Google memutuskan untuk menutup sementara akses ke source code Honeycomb, hal ini dilakukan untuk mencegah vendor pembuat handphone menginstall Honeycomb pada smartphone. Karena di versi sebelumnya banyak perusahaan menginstall Android ke dalam tablet PC, yang menyebabkan user tidak puas dan akhirnya membuat citra Android tidak bagus. i. Android versi 4.0 (Ice Cream Sandwich) Android Ice Cream Sandwich diumumkan pada 10 Mei 2011 di ajang Google I/O Developer Conference (San Francisco) dan resmi dirilis pada tanggal 19 Oktober 2011 di Hongkong. “Android Ice Cream Sandwich” dapat digunakan baik di smartphone ataupun tablet. Fitur utama Android ICS 4.0 ialah Face Unlock, Android Beam (NFC), perubahan major User 14 Interface, dan ukuran layar standar (native screen) beresolusi 720p (high definition). j. Android versi 4.1 (Jelly Bean) Android Jelly Bean lebih menfokuskan fiturnya ke peningkatan User Interface yang lebih lancar dan responsif. Di versi ini juga menandai hadirnya fitur Google Now yang memberikan saran dan rekomendasi berdasarkan data-data yang tersimpan (kontak, kalender, lokasi, dll) di handphone. 2.3 Pengertian ADT (Android Development Tools) Android Development Tools merupakan sebuah plugin yang digunakan untuk IDE eclipse yang telah di design secara powerfull untuk pengembangan aplikasi android. Developing android di eclipse sangat direkomendasikan karena begitu banyak kemudahan - kemudahan sebagai tools terintegrasi seperti custom XML editor, debugging dan banyak hal - hal lain yang akan mempercepat proses pembuatan aplikasi tersebut. Di bawah ini contoh dari tampilan Android Development Tools. Gambar 2.3 Splash Screen ADT 2.4 Pengertian Java Java merupakan bahasa pemrograman tingkat tinggi yang berorientasi objek dan program java tersusun dari bagian yang disebut kelas. Kelas terdiri atas 15 metode - metode yang melakukan pekerjaan dan mengembalikan informasi setelah melakukan tugasnya. Para pemrogram Java banyak mengambil keuntungan dari kumpulan kelas di pustaka kelas Java, yang disebut dengan Java Application Programming Interface (API). Kelas-kelas ini diorganisasikan menjadi sekelompok yang disebut paket (package). Java API telah menyediakan fungsionalitas yang memadai untuk menciptakan applet dan aplikasi canggih. Jadi ada dua hal yang harus dipelajari dalam Java, yaitu mempelajari bahasa Java dan bagaimana mempergunakan kelas pada Java API. Beberapa keunggulan java yaitu java merupakan bahasa yang sederhana. Java dirancang agar mudah dipelajari dan digunakan secara efektif. Java tidak menyediakan fitur-fitur rumit bahasa pemrograman tingkat tinggi, serta banyak pekerjaan pemrograman yang mulanya harus dilakukan manual, sekarang digantikan dan dikerjakan Java secara otomatis seperti dealokasi memori. Bagi pemrogram yang sudah mengenal bahasa C++ akan cepat belajar susunan bahasa Java namun harus waspada karena mungkin Java mengambil arah (semantiks) yang berbeda dibanding C++. Teknologi Java memiliki tiga komponen penting, yaitu: • Programming-language specification • Application-programming interface • Virtual-machine specification 2.5 UML (Unified Modeling Language) UML merupakan sebuah bahasa yang telah menjadi standar dalam industri untuk visualisasi, merancang dan mendokumentasikan sistem piranti lunak. UML menawarkan sebuah standar untuk merancang model sebuah sistem. Dengan menggunakan UML model dapat dibuat untuk semua jenis aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman apapun. 16 2.5.1 Actor Actor menggambarkan segala pengguna software aplikasi (user). Actor memberikan suatu gambaran jelas tentang apa yang harus dikerjakan software aplikasi. Sebagai contoh sebuah actor dapat memberikan input kedalam dan menerima informasi dari software aplikasi, perlu dicatat bahwa sebuah actor berinteraksi dengan use case, tetapi tidak memiliki kontrol atas use case. Sebuah actor mungkin seorang manusia, satu device, hardware atau sistem informasi lainnya. Gambar 2.4 Notasi Actor 2.5.2 Use Case Use case menjelaskan urutan kegiatan yang dilakukan actor dan sistem untuk mencapai suatu tujuan tertentu. Walaupun menjelaskan kegiatan, namun use case hanya menjelaskan apa yang dilakukan oleh actor dan sistem bukan bagaimana actor dan sistem melakukan kegiatan tersebut. Gambar 2.5 Notasi Use Case 2.5.3 Association Relationship Association Relationship adalah yang memodelkan koneksi antar obyek dari kelas yang berbeda. Gambar 2.6 Association Relationship 17 Interaksi antara actor dan use case dalam use case model biasanya digunakan association relationship yaitu : • <<extend>> Hubungan extend antar use case berarti bahwa suatu use case merupakan tambahan kegunaan dari use case yang lain jika kondisi atau syarat tertentu dipenuhi. Jika prosedur dari use case merupakan alternatif untuk menjelaskan use case lain. Use case akan dikerjakan apabila salah satu syarat terpenuhi. Hubungan generalisasi antar use case menunjukkan bahwa use case yang satu merupakan spesialisai dari yang lain. Gambar 2.7 Notasi Extend • <<include>> Hubungan include menggambarkan suatu use case seluruhnya meliputi kegunaan dari use case lainnya. Sebuah use case dapat menginclude fungsionalitas use case lain sebagai bagian dari proses dalam dirinya. Secara umum diasumsikan bahwa use case yang di-include dieksekusi secara normal. Sebuah use case dapat di include oleh lebih dari use case lain, sehingga duplikasi fungsional dapat dihindari. Gambar 2.8 Notasi Include 18