BAB 2 LANDASAN TEORI 2.1 Waterfall Model Menurut Roger S. Pressman (2010: 39), Waterfall Model atau biasa disebut klasik Life Cycle adalah model klasik yang bersifat sistematis, berurutan dalam membangun piranti lunak. Aktivitas-aktivitas dalam waterfall model adalah sebagai berikut : Gambar 2.1 Model Waterfall (Pressman, 2010) 1. Communication Pada tahap ini akan dilakukan inisiasi proyek, seperti menganalisis masalah yang ada dan tujuan yang akan dicapai. Selain itu dilakukan juga requirements gathering, dimana akan dikumpulkan requirement dari user melalui analisis kuisioner. 2. Planning Tahap ini merupakan tahap dimana akan dilakukan estimasi mengenai kebutuhan-kebutuhan yang diperlukan untuk membuat sebuah sistem. Selain itu, penjadwalan dalam proses pengerjaan juga ditentukan pada tahap ini. 3. Modeling Kemudian mulai masuk pada tahap perancangan dimana perancang menerjemahkan kebutuhan sistem kedalam representasi untuk menilai kualitas sebelum tahap selanjutnya dikerjakan. Tahap ini lebih 13 14 difokuskan pada atribut program, seperti struktur data, arsitektur perangkat lunak, dan detail prosedur. 4. Construction Construction merupakan proses membuat kode. Coding atau pengkodean merupakan penerjemah desain dalam bahasa yang bisa dikenali oleh komputer. Programmer akan menerjemahkan transaksi yang diminta oleh user. Tahap ini yang merupakan tahapan secara nyata dalam mengerjakan suatu software, artinya penggunaan komputer akan dimaksimalkan dalam tahapan ini. Setelah pengkodean selesai maka akan dilakukan testing terhadap sistem yang telah dibuat tadi. Tujuan testing adalah menemukan kesalahan-kesalahan terhadap sistem tersebut untuk kemudian bisa diperbaiki. 5. Deployment Tahap ini bisa dikatakan final dalam pembuatan sebuah software atau sistem. Setelah melakukan analisis, desain dan pengkodean maka sistem yang sudah jadi akan digunakan oleh user. Kemudian software yang telah dibuat harus dilakukan pemeliharaan secara berkala. 2.2 Pengertian Basis Data Menurut Connoly dan Begg (2010: 65), basis data adalah kumpulan data dan deskripsi data yang terhubung secara logika serta dirancang untuk memenuhi kebutuhan informasi organisasi. 2.3 Pengertian Sistem Basis Data Menurut Connoly dan Begg (2010: 54), sistem basis data sebagai kumpulan program aplikasi yang berinteraksi dengan basis data bersama dengan Database Management System dan basis data itu sendiri. 2.4 Pengertian Database Menurut Connoly dan Begg (2010: 65), Database adalah logikal data yang saling terhubung dan dirancang untuk memenuhi kebutuhan informasi dari suatu organisasi. Database digunakan dalam kehidupan sehari-hari baik secara sadar maupun tidak sadar, contoh database yang sering kita gunakan dalam kehidupan sehari-hari yaitu: 15 1. Pembayaran kartu kredit 2. Pemabayaran belanja di supermarket 3. Mencari buku di perpustakaan secara online 4. Penggunaan internet 2.5 Pengertian DBMS (Database Management System) Menurut Connoly dan Begg (2010: 66), Database Management System adalah sistem software yang memungkinkan pengguna untuk mendefinisikan, membuat, memelihara, dan kontrol akses ke database. DBMS adalah software yang berinteraksi dengan program aplikasi dan pengguna database. Biasanya DBMS menyediakan fasilitas sebagai berikut: 1. DDL (Data Definition Language) DDL adalah sebuah bahasa yang memberikan fasilitas kepada DBA (Database Administrator) atau pengguna untuk menjelaskan dan menamakan entity, attribute, dan relationship data yang dibutuhkan oleh aplikasi, bersama integritas yang berhubungan dan batasanbatasan keamanan. Database Administrator adalah seorang yang bertanggung jawab terhadap realisasi fisikal basis data, termasuk rancangan fisik basis data dan implementasi, keamanan dan kontrol integritas, maintenance sistem, dan memastikan kepuasan performa aplikasi kepada user. (Connolly dan Begg, 2010: 92): a. Create table, digunakan untuk membuat table dengan mengidentifikasikan tipe data untuk setiap kolom. b. Alter table, digunakan untuk membuat table dengan mengidentifikasikan tipe data untuk setiap kolom. c. Drop table, digunakan untuk membuang atau menghapus table beserta semua data yang terkait didalamnya. d. Create index, digunakan untuk membuat index pada suatu table. e. Drop index, digunakan untuk membuang atau menghapus index yang telah dibuat sebelumnya. 16 2. DML (Data Manipulation Language) Menurut Connolly dan Begg (2010: 92), DML adalah suatu bahasa yang memberikan fasilitas pengoperasian data yang ada di dalam basis data. Pengoperasian data yang akan dimanipulasi meliputi: a. Penambahan data baru ke dalam basis data (insert). b. Modifikasi data yang disimpan ke dalam basis data (update). c. Pemanggilan data yang terdapat di dalam basis data (view). d. Penghapusan data dari basis data (delete). 2.6 Pengertian MySQL Menurut Wahana Komputer (2010: 21), MySQL adalah database server open source yang cukup popular keberadaannya. Dengan berbagai keunggulan yang dimiliki, membuat software database ini banyak digunakan oleh praktisi untuk membangun suatu proyek. Adanya fasilitas API (Application Programming Interface) yang dimiliki oleh MySQL, memungkinkan bermacam-macam apikasi komputer yang ditulis dengan berbagai bahasa pemrograman dapat mengakses basis data MySQL. MySQL termasuk jenis RDBMS (Relational Database Management System). Sedangkan RDMS sendiri akan lebih banyak mengenal istilah seperti tabel, baris dan kolom digunakan dalam perintah-perintah di MySQL. 2.7 Pengertian UML (Unified Modeling Language) Nugroho (2010: 6), mengatakan Unified Modeling Language (UML) adalah bahasa pemodelan untuk sistem atau perangkat lunak yang berparadigma berorientasi objek. Pemodelan sesungguhnya digunakan untuk penyederhanaan permasalahan-permasalahan yang kompleks sedemikian rupa sehingga lebih mudah dipelajari dan dipahami. Tujuan pemodelan adalah sebagai sarana analisis pemahaman, visualiasi, dan komunikasi antar anggota tim pengembang, serta sebagai sarana dokumentasi. UML dirancang untuk menyediakan sekumpulan notasi yang dapat dipakai untuk mendokumentasi desain beorientasi objek. UML mendefinisikan beberapa diagram diantaranya Use case diagram, Class Diagram, dan Activity Diagram. 17 2.7.1 Pengertian Use Case Diagram Menurut Whitten dan Bentley (2007: 246) Use case Modeling mengidentifikasi dan menggambarkan fungsi sistem dengan menggunakan alat yang disebut dengan Use case. Use case menggambarkan fungsi suatu sistem yang dilihat dari segi perspektif pengguna eksternal dan terminologi mereka yang dapat dimengerti. Use case diwakili oleh grafis dalam bentuk elips dengan nama use case di atas, di bawah, atau di dalam elips. Use case menggambarkan urutan kegiatan dan interaksi pengguna dalam mencoba untuk mencapai tujuan. Use case sendiri tidak dianggap sebagai persyaratan fungsional, tapi cerita (skenario) use case menceritakan terdiri dari satu atau lebih persyaratan. Use case merepresentasikan tujuan dan mendeskripsikan urutan aktivitas dan interaksi antara actor dalam menyelesaikan tujuan. Dalam use case terdapat actor dan relationship yang berguna untuk merepresentasikan aktivitas dalam use case diagram. Actor adalah user yang terlibat langsung dengan sistem, relationship merupakan jenis-jenis hubungan antara sistem dengan actor. (a) 18 (b) Gambar 2.2 Model Use Case Diagram (Sumber : System Analysis and Design Method – Whitten and Bentley, 2007) Menurut Whitten dan Bentley (2007: 248-250), hubungan yang digunakan dalam use case diagram, yaitu : 1. Association mengambarkan interaksi antara actor dan use case. Hubungan association digambarkan dengan garis dan tanda panah. Association dengan tanda panah menunjukan bahwa actor berhubungan dengan use case, dimana use case merupakan penerima. Association tanpa tanda panah menunjukan interaksi antara use case dan actor dengan actor sebagai penerima. Gambar 2.3 Contoh Penggunaan Association Use case (Sumber : System Analysis and Design Method – Whitten and Bentley, 2007) 19 2. Extend digunakan untuk menjelaskan sebuah use case yang rumit menjadi beberapa tahap use case yang lebih mudah dimengerti. Gambar 2.4 Contoh Penggunaan Extends pada Use case (Sumber: System Analysis and Design Method - Whitten and Bentley, 2007) 3. Uses (include) berfungsi untuk generalisasi use case yang dapat mengurangi redundansi. Dalam sebuah use case diagram yang terdapat beberapa langkah yang mirip atau sama, hubungan use case tersebut bisa disebut menjadi use case abstrak. Gambar 2.5 Contoh Penggunaan Include pada Use case (Sumber: System Analysis and Design Method - Whitten and Bentley, 2007) 20 4. Depends On digunakan ketika suatu aktivitas dapat dijalankan jika aktivitas sebelumnya telah dijalankan. Dengan kata lain, aktivitas tersebut saling bergantung. Gambar 2.6 Contoh Penggunaan Depends On Pada Use Case (Sumber: System Analysis and Design Method - Whitten and Bentley, 2007) 5. Inheritance digunakan ketika dua atau lebih actor melakukan aktivitas atau menunjuk pada use case yang sama, maka actor tersebut dapat disederhanakan menjadi satu actor. Gambar 2.7 Contoh Penggunaan Inheritance pada Use Case (Sumber: System Analysis and Design Method - Whitten and Bentley, 2007) 21 2.7.2 Pengertian Class Diagram Class diagram merupakan gambaran grafis dari struktur objek, yang menunjukkan kelas objek yang ada pada suatu sistem dan hubungan antara kelas-kelas objek tersebut. (Whitten dan Bentley, 2007). Setiap kelas objek dibagi menjadi 3 bagian, yaitu: 1. Nama Kelas Nama kelas harus unik atau dapat dibedakan antara kelas yang satu dengan kelas yang lain karena nama kelas merupakan identitas yang dimiliki oleh setiap kelas. 2. Atribut Kelas Atribut menunjukkan informasi yang dimiliki oleh suatu kelas atau informasi yang berhubungan dengan suatu kelas. 3. Operasi Kelas Operasi digunakan untuk menunjukkan fungsi yang dapat dilakukan oleh suatu kelas. Gambar 2.8 Struktur Kelas Objek (Sumber: System Analysis and Design Method - Whitten and Bentley, 2007) 22 Gambar 2.9 Class Diagram (Sumber: System Analysis and Design Method - Whitten and Bentley, 2007) Notasi – notasi yang terdapat di dalam class diagram adalah sebagai berikut: a. Visibility Pada class diagram terdapat visibility yang digunakan untuk menentukan suatu kelas dapat diakses oleh kelas lainnya atau tidak. Dalam visibility memiliki 3 (tiga) tingkatan, yaitu (Whitten dan Bentley, 2007): 1. Private 2. Public 3. Protected Tabel 2.1 Tabel Penjelasan Visibility No Simbol Visibility Penjelasan 1 - Private Hanya dapat diakses oleh kelas yang mendefinisikan 2 + Public Dapat diakses oleh semua kelas yang berhubungan 23 No Simbol Visibility Penjelasan 3 # Protected Hanya dapat diakses oleh kelas yang mendefinisikan dan turunannya b. Multiplicity Multiplicity merupakan jumlah banyaknya objek sebuah kelas yang berelasi dengan sebuah objek lain pada kelas lain yang berasosiasi dengan kelas tersebut (Whitten dan Bentley, 2007). Tabel 2.2 Tabel Penjelasan Multiplicity Multiplicity Deskripsi 0..1 Nol atau satu 1 Hanya satu 0..* Nol atau lebih 1..* Satu atau lebih ?...? Batasan spesifik c. Association Asosiasi adalah hubungan statis antara kelas dan digunakan untuk memberikan penjelasan mengenai hubungan dan multiplicity. Hubungan ini dibagi menjadi dua jenis, yaitu: 1. Uni-directional Di uni-directional, dua kelas yang terhubung tetapi hanya salah satu dari mereka memiliki peran di dalamnya. Di uni-directional, simbol panah disebut dilayari ditambahkan. 24 2. Bi-directional Dalam bi-directional, dua kelas yang terhubung dan keduanya memiliki peran dalam hubungan. d. Aggregation Agregasi digunakan untuk menggambarkan jenis hubungan di mana satu kelas merupakan bagian dari kelas lain tetapi tidak sebaliknya. Sebagai contoh: kelas Guru adalah bagian dari kelas sekolah namun kelas sekolah bukan bagian dari kelas Guru . e. Generalization/Specialization Generalisasi/spesialisasi adalah teknik untuk kelas objek kelompok yang memiliki kesamaan dalam atribut atau metode menjadi supertype. Atribut dan metode supertype kemudian akan diwarisi oleh subtype. Konsep warisan diterapkan sehingga atribut atau metode dalam supertype dapat digunakan kembali oleh subtype. f. Dependency Hubungan Dependency digunakan untuk memodelkan hubungan antara dua kelas untuk menunjukkan bahwa ketika perubahan yang dibuat dalam satu kelas akan mempengaruhi kelas lain. Hubungan ini biasanya digunakan antara kelas kontrol dan kelas sementara. Hubungan Dependency digambarkan dengan panah menunjuk ke arah sebuah pesan dapat dikirim. g. Compotition Komposisi bisa disebut strong aggregation sehingga dalam hubungan antar kelas lebih terikat kuat dibandingkan agregasi. Dimana Kelas A merupakan bagian dari Kelas B, tetapi Kelas B tidak akan ada jika Kelas A tidak ada. 25 Gambar 2.10 Contoh Class Diagram (Sumber: System Analysis and Design Method - Whitten and Bentley, 2007) 2.7.3 Pengertian Sequence Diagram Menurut Whitten dan Bentley (2007: 394), Sequence diagram secara grafis menggambarkan bagaimana objek-objek berinteraksi satu dengan yang lainnya melalui message-message yang dilakukan 26 dari suatu use case atau operasi. Mereka menggambarkan bagaimana message-message dikirim dan diterima diantara objek-objek tersebut dan dalam urutan seperti apa. Tabel 2.3 Tabel Element Sequence Diagram # 1 Name Symbol Actor Description Segala sesuatu berinteraksi yang dengan sistem untuk beberapa tujuan 2 Object Merupakan kelas yang Object digunakan dalam Class Diagram 3 Lifelines Menunjukkan urutan aktif 4 Activation Menunjukkan ketika Bars partisipan aktif dalam simbol interaksi. Simbol ini menunjukan jalur hidup 5 Call Metode penyampaian dari setiap benda 6 Self-call Memberikan pesan balik 7 Return Jawaban dari pesan yang dikirim oleh obyek 27 # 8 Name Frame Symbol loop Description Menandai daerah khusus di mana perulangan, seleksi, dll, terjadi. Gambar 2.11 Contoh Sequence diagram (Sumber: System Analysis and Design Method - Whitten and Bentley, 2007) 2.8 Elemen Multimedia 1. Teks Menurut Vaughan (2011: 18), penggunaan teks dan simbol untuk komunikasi merupakan perkembangan manusia yang mulai digunakan sejak 6000 tahun yang lalu di sekitar mediterania, hanya beberapa kasta saja yang dapat mempelajarinya dan karena teks adalah suatu hal yang dapat dihapalkan tanpa dipikir, teks digunakan sebagai media penyampaian informasi yang memiliki makna potensial. 2. Suara 28 Menurut Vaughan (2011: 106), audio digital dibuat ketika seseorang mewakili karakteristik dari gelombang suara, dengan menggunakan angka - angka (sebuah proses yang disebut sebagai digitalisasi). Seseorang dapat mendigitalkan suara dari mikrofon, synthesizer, rekaman yang sudah ada, radio hidup dan televisi siaran, beberapa CD, dan beberapa DVD, bahkan, suara dari alam atau rekaman. Menurut Vaughan (2011, p110), dalam beberapa kasus, digital audio editing software yang biasanya digunakan, mungkin telah membaca format yang berbeda dari presentasi atau authoring program yang dmiliki. Kebanyakan perangkat lunak untuk pengeditan suara akan menyimpan berkas dengan pilihan format yang begitu banyak, dan sebagian besar yang dapat dibaca dan diimpor oleh multimedia authoring system. Data tersebut dapat hilang bila formatnya diubah. Menurut Vaughan (2011, p113-114), Musical Instrument Digital Interface (MIDI) adalah standar komunikasi yang dikembangkan pada awal tahun 1980 untuk instrumen musik elektronik dan komputer. Hal ini memungkinkan synthesizer musik dan suara dari produsen yang berbeda untuk berkomunikasi satu sama lain dengan mengirimkan pesan di sepanjang kabel yang terhubung ke perangkat. MIDI menyediakan protokol untuk melewati deskripsi yang detil dari nilai musik, seperti catatan, urutan catatan, dan instrumen yang akan memainkan catatan ini. Namun data MIDI bukan merupakan suara digital. Data MIDI memiliki representasi singkat dari musik yang tersimpan, dalam bentuk numerik. Audio digital adalah rekaman, sedangkan MIDI adalah nilai. Yang pertama tergantung pada kemampuan sistem suara yang dimiliki, setelah itu kualitas musik instrumen. 2.9 IMK (Interaksi Manusia dan Komputer) Sebuah perangkat lunak atau program aplikasi sebaiknya user friendly (ramah dengan pengguna). User friendly merujuk kepada karakteristik yang dimiliki oleh perangkat lunak atau program aplikasi yang mudah dioperasikan. User friendly juga menyangkut sejumlah kemampuan lain yang 29 membuat pengguna merasa nyaman dalam mengoperasikan perangkat lunak atau program aplikasi. User friendly membuat seorang pemula tidak kesulitan dalam mengoperasikan perangkat lunak dan program aplikasi. 2.9.1 Pengertian IMK(Interaksi Manusia dan Komputer) Menurut Shneiderman dan Plaisant (2010: 15), Interaksi Manusia dan Komputer adalah sebuah disiplin ilmu yang berhubungan dengan perancangan, evaluasi, dan implementasi sistem komputer interaktif untuk digunakan oleh manusia, serta mempelajari fenomenafenomena besar yang berhubungan dengannya. 2.9.2 Faktor Manusia Terukur Menurut Shneiderman dan Plaisant (2010: 32), ada faktorfaktor manusia terukur dalam desain antarmuka pengguna, antara lain: 1. Waktu Belajar Lama waktu orang bisa mempelajari cara relevan untuk melakukan suatu tugas. 2. Kecepatan Kinerja Lama waktu yang diperlukan untuk melakukan suatu tugas. 3. Tingkat Kesalahan Jumlah kesalahan yang dilakukan pengguna dan kesalahankesalahan apa saja yang dilakukan pengguna. 4. Daya Ingat Kemampuan pemakai mempertahankan pengetahuannya setalah jangka waktu tertentu. 5. Kepuasan Subjektif Kesukaan pemakai terhadap berbagai aspek sistem. 2.9.3 Prinsip Perancangan Antarmuka 1. Novice (first-time users) Konsep tugas dan antarmuka dangkal Perancangan: a. Batasi jumlah pilihan 30 b. Umpan balik yang informatif c. Manual dan tutorial online yang efektif 2. Knowledgeable (intermediate users) Konsep tugas stabil. Konsep antarmuka luas namun sulut meningat sintaktik Perancangan: a. Struktur menu yang rapi b. Konsistensi c. Antarmuka yang jelas d. Perlindungan dari bahaya karena eksplorasi fitur 3. Expert (frequent users) Terbiasa dengan konsep tugas dan antarmuka. Ingin pekerjaan cepat selesai. Perancangan: a. Makro b. Shortcut 2.10 Delapan Aturan Emas Menurut Shnneiderman dan Plaisant (2010: 88-89), terdapat delapan aturan emas yang harus diperhatikan dalam perancangan antarmuka: 1. Berusaha untuk konsisten Konsisten dilakukan pada urutan tindakan, perintah, dan istilah yang digunakan pada prompt, menu, serta layar bantuan. 2. Menyediakan usability universal Pengguna yang beragam dan desain harus mempertimbangan perbedaan dan pertimbangan dalam hal rentang usia, cacat dan keanekaragaman teknologi. 3. Memberikan umpan balik yang informatif Untuk setiap sistem diharapkan adanya suatu umpan balik bagi pengguna. Respon yang diberikan tergantung dari aksi yang dilakukan. 4. Merancang dialog yang memberikan penutupan (keadaan akhir) 31 Urutan tindakan sebaiknya diorganisir dalam suatu kelompok dengan bagian awal, tengah, dan akhir. Umpan balik yang informatif akan memberikan indikasi bahwa cara yang dilakukan sudah benar dan dapat mempersiapkan tindakan berikutnya. 5. Memberikan pencegahan kesalahan dan penangan kesalahan yang sederhana. Jika kesalahan terjadi, sistem dapat medeteksi kesalahan dengan cepat dan memberikan mekanisme yang sederhana dan mudah dipahami untuk penanganan kesalahan. 6. Memungkinkan pembalikan aksi yang mudah. Setiap aksi harus dirancang sedemikian rupa sehingga dapat melakukan pembalikan untuk kembali ke keadaan semula sebelum aksi tersebut dijalankan. 7. Mendukung pusat kendali internal (internal locus of control) User ingin menjadi pengontrol sistem dan sistem akan merespon tindakan yang dilakukan user daripada user merasa bahwa sistem mengontrol user. 8. Mengurangi beban ingatan jangka pendek. Keterbatasan manusia dalam mengelola memori jangka pendek menyebabkan dibuthkannya suatu tampilan yang sesederhana mungkin, pengaturan dalam multipage, pergerakan Window yang sesedikit mungkin, waktu latihan yang cukup dan optimal serta pengaturan dalam urutan aksi. Mengacu pada pendapat dari Jonathan Stark (2012) pengembangan aplikasi pada mobile terdapat 10 (sepuluh) prinsip desain untuk interface mobile: 1. Mobile Mindset Dengan adanya perbedaan antara mobile dan desktop, ada beberapa pola pikir untuk mobile: a. Be focused 32 Aplikasi sebaiknya fokus pada suatu fitur karena dengan lebih banyak fitur, tidak membuat aplikasi tersebut menjadi lebih baik. b. Be unique Aplikasi yang dikembangkan memiliki suatu keunikan dan kekuatan yang membedakan aplikasi tersebut dengan aplikasi lainnya. c. Be charming Aplikasi yang dapat diandalkan, dan menyenangkan saat digunakan, sehingga aplikasi tersebut banyak diminati dan digunakan. d. Be considerate Aplikasi yang dikembangkan sebaiknya tidak hanya menyenangkan pengguna saat menggunakannya, tetapi juga sesuai dengan keinginan pengguna. 2. Mobile Contexts Terdapat 3 (tiga) konteks utama pada mobile yang perlu dipertimbangkan untuk mengetahui aplikasi yang pengguna inginkan: a. Bored: aplikasi yang berkonteks hiburan. b. Busy: aplikasi untuk menyelesaikan tugas dengan cepat. c. Lost: aplikasi yang berkonteks informasi tempat. 3. Global Guidelines Setiap aplikasi memiliki teknik pendekatan dan desain yang berbedabeda. Sifat yang merekat pada sebuah perangkat touchscreen berukuran saku memiliki hal yang harus diperhatikan dalam pengembangan aplikasi, yaitu: a. Responsiveness Jika pengguna melakukan sesuatu pada aplikasi, aplikasi perlu menunjukkan jika aplikasi sedang beroperasi. b. Polish Pengembang harus memperhatikan detil desain aplikasi. c. Thumbs 33 Dengan touchscreen interfaces, desain interfaces harus disesuaikan karena banyak pengguna menggunakan ibu jari untuk mengetik. d. Targets Dalam mendesain aplikasi yang akan menggunakan banyak fungsi keyboard, penempatan pengembang tombol yang baik sebaiknya sehingga mendesain memudahkan pengguna dalam pengetikan. e. Content Sebaiknya pengembang menempatkan content aplikasi pada tengah layar untuk memudahkan pengguna berinteraksi dengan aplikasi. f. Controls Ketika harus menambahkan suatu kontrol pada aplikasi, sebaiknya diletakkan pada bagian bawah layar agar memudahkan pengguna berinteraksi dengan aplikasi. g. Scrolling Sebaiknya pengembang mengurangi pemakaian scrolling untuk memudahkan pengguna dalam penggunaan aplikasi. 4. Navigation Models Ada beberapa model navigasi umum untuk aplikasi mobile yang dapat digunakan sesuai dengan aplikasi, seperti none, tab bar, dan drill down. 5. User Input Pada pengembangan suatu aplikasi memungkinkan pengguna dalam memberikan input seperti pengetikan. Terdapat banyak variasi keyboard pada smartphone, pertimbangkan untuk menampilkan keyboard yang akan sangat berguna. Pilihan auto entry yang harus diaktifkan juga harus dipertimbangkan. Jika aplikasi perlu banyak input seperti pengetikan, pastikan mendukung orientasi landscape. 6. Gestures Touchscreen interfaces saat ini mendukung gesture-based untuk interaksi pengguna. Hal - hal yang harus diingat adalah: 34 a. Invisible Gestures tidak terlihat, tetapi pengembang aplikasi harus mempertimbangkan bagaimana untuk mengungkapkan keberadaan gestures tersebut kepada pengguna. b. Two Hands Multi-touch gestures membutuhkan operasi dua tangan. Contohnya pengguna dapat dengan mudah memperbesar atau memperkecil tampilan aplikasi dengan dua jari. c. Nice to have Menggunakan semacam keyboard shortcuts pada suatu aplikasi yang dikembangkan jika diperlukan agar pengguna lebih mudah dalam menggunakan aplikasi. d. No replacement Teknologi Two-Hands belum terlalu berkembang dan pengembangan aplikasi dianjurkan tidak menghilangkan fungsi single-finger. 7. Orientation a. Potrait Orientasi yang paling sering digunakan untuk mengoptimalkan desain antar muka aplikasi. b. Landscape Orientasi ini digunakan untuk mendukung pengguna yang sering mengetik yaitu dengan mengoptimalkan penggunaan keyboard yang lebih besar. c. Orientasi berubah tiba – tiba Pengembangan aplikasi yang akan digunakan dalam jangka panjang perlu dipertimbangkan untuk menambahkan suatu orientasi yang tepat di aplikasi tersebut. 8. Communications Aplikasi harus dapat berinteraksi dengan pengguna. a. Provide feedback 35 Memberikan umpan balik instan untuk setiap interaksi. Jika pengguna telah meminta suatu tindakan yang akan memakan waktu lama, maka aplikasi menampilkan progress bar. b. Modal alert Modal alert sangat mengganggu sehingga harus digunakan ketika ada sesuatu yang benar-benar salah. c. Confirmation Ketika harus meminta pengguna untuk mengkonfirmasi tindakan, dapat ditampilkan dialog konfirmasi modal. Seperti: “Apakah Anda yakin ingin menghapus data ini?”. 9. Launching Ketika pengguna kembali ke aplikasi, maka aplikasi harus kembali beroperasi tepat dimana pengguna terakhir mengoperasikan aplikasi. 10. First Impressions Pada saat pengguna pertama kali menggunakan aplikasi, terdapat 2 (dua) faktor yang menjadi kesan pertama pengguna, yaitu: a. Your icon Icon merupakan suatu hal yang sangat penting, karena icon merupakan salah satu yang menjadi daya tarik bagi pengguna dalam menggunakan aplikasi yang dikembangkan. b. First launch Peluncuran pertama kali harusnya tidak menimbulkan kebingungan bagi pengguna yang menggunakannya 2.11 Pengertian Internet Menurut Connolly dan Begg (2010: 1024), Internet adalah sebuah koleksi jaringan komputer yang terpisah untuk saling berhubungan di seluruh dunia, termasuk untuk keperluan komersial, edukasi, organisasi pemerintah, dan Internet Service Provider (ISP). 2.11.1 Sejarah Internet 36 Sejarah internet dimulai pada tahun 1969 oleh Departemen Pertahanan Amerika, U.S. Defense Advanced Research Project Agency (DARPA) yang memutuskan untuk mengadakan riset tentang bagaimana cara untuk menghubungkan sejumlah komputer sehingga membentuk suatu jaringan komputer. Riset ini dikenal dengan nama Advanced Research Project Agency Network (ARPANET). Tujuan awal dibangunnya ARPANET adalah untuk keperluan militer, yaitu adanya suatu jaringan komputer yang tersebar sehingga dapat menghindari pemusatan informasi di satu titik yang dipandang rawan apabila terjadi peperangan. Apabila satu dari jaringan terputus, maka jalur yang melalui jaringan tersebut dapat dipindahkan ke saluran lainnya. Pada tahun 1970, sudah lebih dari 10 komputer yang berhasil dihubungkan satu sama lain sehingga mereka bisa saling berkomunikasi dan membentuk sebuah jaringan. Pada tahun 1972, ARPANET sudah diperkenalkan secara umum. Pada tahun 1980-an, ARPANET terpecah menjadi dua jaringan, yaitu ARPANET (bukan untuk keperluan militer seperti universitas) dan Milnet (untuk keperluan militer), akan tetapi keduanya mempunyai hubungan sehingga komunikasi antar jaringan dapat dilakukan. Gabungan kedua jaringan ini akhirnya lamakelamaan disebut sebagai internet. Hingga sekarang ini komputer yang tersambung sudah melebihi seribu komputer dan tingkat pertumbuhan pengguna internet akan terus bertambah, karena dari kegunaan yang dapat mengakses (baik menerima atau mengirim suatu data) dalam jarak yang sangat jauh sehingga kebutuhan internet akan menguasai sebagian besar kehidupan masyarakat, badan usaha, dan pemerintah. 2.12 Pengertian WWW (World Wide Web) Menurut Connoly dan Begg (2010: 1028), WWW atau yang sering disebut web, adala penjelajahan halaman informasi yang sangat besar yang 37 berada di dalam internet. Informasi yang ada di dalam web dipresentasikan di dalam sebuah halaman web yang terbentuk dari sekumpulan teks, grafik, gambar, suara, dan video. Dengan tambahan halaman web dapat berisi hyperlink tertuju ke halaman web yang lain yang membuat user dapat mencari informasi lain. 2.13 Web Browser Web browser adalah perangkat lunak yang digunakan oleh pengguna internet atau client untuk menampilkan dan melakukan interaksi dengan data yang disediakan oleh web server. Dikenal juga dengan istilah browser, peselancar (surfing) dan internet browser (Margaret Rouse, 2007). Program web browser yang pertama adalah Mosaic yang merupakan suatu tampilan text browser, tapi sekarang web browser telah berkembang ke dalam bentuk gambar, video, musik atau multimedia. Beberapa contoh web browser saat ini yaitu, Microsoft Internet Explorer, Mozilla Firefox, Opera. 2.14 URL (Uniform Resource Locator) Menurut Connolly dan Begg (2010: 1033), URL mendefinisikan secara unik dimana dokumen atau resource dapat ditemukan di dalam internet. URL adalah yang paling umum digunakan untuk identifikasi skema dan sebagai basis untuk HTTP dan web. Format paling umum dari sebuah URL yaitu: /nama-host/path/nama–file. Contoh: www.luxonindonesia.com/home.php. 2.15 Pengertian HTTP (Hyper Text Transfer Protocol) Menurut Connoly dan Begg (2010: 1031), HTTP adalah sebuah aturan yang dipakai untuk menghubungkan sebuah halaman web ke internet. Lebih spesifiknya HTTP adalah bagaimana antara client dengan server dapat berkomunikasi. HTTP terdapat empat tahap kategori transaksi: 1. Connection: client menetapkan koneksi ke web server. 2. Request: client mengiri permintaan pesan ke web server. 38 3. Response: web server mengirim sebuah respon untuk client (contohnya mengirim HTML dokumen ke web browser client). 4. Close: koneksi telah terputus oleh web server. 2.16 Pengertian HTML (Hypertext Markup Language) Menurut Anhar, ST. (2010: 40), HTML (Hypertext Markup Language) adalah sekumpulan simbol-simbol atau tag-tag yang dituliskan dalam sebuah file yang digunakan untuk menampilkan halaman pada web browser. Sesungguhnya HTML justru tidak dibuat untuk mempublikasikan informasi di web, namun oleh karena kesederhanaan serta kemudahan penggunaannya, HTML kemudian dipilih untuk mendistribusikan informasi web. Dalam pengertiannya HTML adalah bahasa pemrograman dalam pembuatan sebuah website. 2.17 Pengertian CSS (Cascading Style Sheets) Menurut Slamet Riyanto (2009: 236), Cascading Style Sheet (CSS) merupakan salah satu bahasa pemrograman web untuk mengendalikan beberapa komponen dalam sebuah web sehingga akan lebih terstruktur dan seragam. CSS dapat mengendalikan gambar, warna bagian tubuh pada teks, warna tabel, ukuran border, warna border, warna hyperlink, warna mouse over, spasi antar paragraf, spasi antar teks, margin kiri, kanan, atas, bawah, dan parameter lainnya. CSS adalah bahasa style sheet yang digunakan untuk mnegatur tampilan dokumen. Dengan adanya CSS memungkinkan kita untuk menampilkan halaman yang sama dengan format yang berbeda. 2.18 Javascript Menurut Connolly dan Begg (2010: 1041), Javascript adalah sebuah objek bahasa skrip yang populer di internet dan dapat bekerja di sebagian besar web browser seperti Internet Explorer, Mozilla Firefox, Opera. Kode Javascript dapat disisipkan kedalam halaman web menggunakan tag skrip untuk mengenali dan merespon apa yang user input seperti klik mouse, input data, dan navigasi halaman. 39 Javascript pertama kali dikembangkan oleh Brendan Eich yang nantinya namanya diganti menjadi LiveScript, dan akhirnya menjadi Javascript Navigator sebelumnya telah mendukung Java untuk lebih bisa dimanfaatkan para programmer non-Java. Maka dikembangkanlah bahasa pemrograman bernama LiveScript untuk mengakomodasi hal tersebut. Bahasa pemrograman inilah yang akhirnya berkembang dan diberi nama Javascript, walaupun tidak ada hubungan bahasa antara Java dengan Javascript. 2.19 Pengertian JQuery Menurut Beighly (2010: 8), Jquery adalah Open Source add-on pustaka JavaScript yang menekankan pada interaksi antara JavaScript dan HTML. JQuery merupakan kode JavaScript yang telah ditulis, dan tinggal menambahkan satu atau dua baris koding untuk memanggil koding JQuery. JQuery banyak digunakan sebagai aplikasi untuk mempercantik tampilan suatu aplikasi web. Jquery memiliki banyak keuntungan, diantara lain adalah: 1. Mudah digunakan dan dipelajari. 2. Ringkas dan ringan. 3. Tidak perlu me-reload 1 halaman untuk dijalankan. 4. Reusabilitas yang tinggi. 5. Lisensi bebas. 2.20 Pengertian JSON (JavaScript Object Notation) Menurut Deitel (2010: 1303), JSON (JavaScript Object Notation) adalah suatu format pertukaran data komputer. Format dari JSON adalah berbasis teks, dapat terbaca oleh manusia, digunakan untuk mempresentasikan struktur data sederhana, dan tidak bergantung dengan bahasa apapun. Biasanya digunakan pada aplikasi Ajax. Format JSON sering digunakan untuk mentransmisikan data terstruktur melalui koneksi jaringan. 40 Secara umum, JSON digunakan untuk mentransmisikan data antara server dan aplikasi web. Jenis media internet yang resmi untuk JSON adalah aplikasi/json. Format JSON sering digunakan untuk serialisasi dan mengirimkan data terstruktur melalui koneksi jaringan, terutama untuk pengiriman data antara server dan aplikasi web melayani sebagai alternatif ke XML. 2.21 Pengertian PHP Menurut Agus Saputra (2011: 1) PHP atau yang memiliki kepanjangan PHP Hypertext Preprocessor merupakan suatu bahasa pemrograman yang difungsikan untuk membangun suatu website dinamis. PHP menyatu dengan kode HTML, maksudnya adalah beda kondisi. HTML digunakan sebagai pembangun atau pondasi dari kerangka layout web, sedangkan PHP difungsikan sebagai prosesnya sehingga dengan adanya PHP tersebut, web akan sangat mudah di-maintenance. PHP berjalan pada sisi server sehingga PHP disebut juga sebagai bahasa Server Side Scripting. Artinya bahwa dalam setiap/untuk menjalankan PHP, wajib adanya web server. PHP ini bersifat open source sehingga dapat dipakai secara cumacuma dan mampu lintas platform, yaitu dapat berjalan pada sistem operasi Windows maupun Linux. PHP juga dibangun sebagai modul pada web server apache dan sebagai binary yang dapat berjalan sebagai CGI. 2.21.1 Keunggulan PHP Ada beberapa alasan yang menjadi dasar pertimbangan mengapa menggunakan PHP. 1. Mudah dipelajari, alasan tersebut menjadi salah satu alasan utama untuk menggunakan PHP, pemula pun akan mampu untuk menjadi web master PHP. 2. Mampu Lintas Platform, artinya PHP dapat/mudah diaplikasikan ke berbagai platform OS(Operating Sytem) dan hampir semua browser juga mendukung PHP. 41 3. Free alias Gratis, bersifat Open Source. 4. PHP memiliki tingkat akses yang cepat. 5. Didukung oleh beberapa macam web server, PHP mendukung beberapa web server, seperti Apache, IIS, Lighttpd, Xitami. 6. Mendukung database, PHP mendukung beberapa database, baik yang gratis maupun yang berbayar, seperti MySQL, PostgreSQL, mSQL, Informix, SQL server, Oracle. 2.21.2 Script Dasar PHP PHP sebagai alternatif lain memberikan solusi sangat murah (karena gratis digunakan) dan dapat berjalan diberbagai jenis platform. PHP adalah skrip bersifat server-side yang ditambahkan ke dalam HTML. PHP sendiri merupakan singkatan dari Personal Home Page Tools. Skrip ini akan membuat suatu aplikasi dapat diintegrasikan ke dalam HTML sehingga suatu halaman web tidak lagi bersifat statis, namun menjadi bersifat dinamis. Sifat server side berarti pengerjaan skrip dilakukan di server, baru kemudian hasilnya di kirimkan ke browser. Sintaks dasar PHP meliputi bagaimana cara memulai suatu struktur pemrograman PHP. Ada empat cara untuk memulai pemrograman PHP, diantaranya: 1. <?php ...... ?> 2. <? ...... ?> 3. <script language=”php”> ...... </script> 4. <% ...... %> dari beberapa sintaks dasar tersebut, yang paling banyak digunakan adalah cara yang pertama dan yang kedua dari atas. Cara penulisan skrip PHP ada dua macam, yaitu Embedded Script dan Non Embedded Script. Contohnya: 1. Embedded Script <html> 42 <body> <? php echo “Belajar”; ?> </body> <html> 2. Non Embedded Script <?php echo “<html>”; echo “<body>”; echo “Belajar PHP”; echo “</body>”; echo “</html>”; ?> Dari contoh menjelaskan bahwa skrip PHP dapat berupa embedded script yaitu meletakkan tag PHP diantara tag-tag HTML sedangkan non embedded script yaitu semua tag HTML diletakkan dalam tag PHP. Semua kode PHP menyerupai dengan kode bahasa C, walaupun tidak sepenuhnya sama. Untuk menampilkan nilai suatu variabel ke layer dapat menggunakan perintah yaitu echo, print maupun printf. Contohnya: 1. echo echo “$data”; echo $data; echo “nilai”; echo $data. “Mahasiswa Binus”; 2. print print (“$data”); print ($data); print (“nilai”); print ($data. “Mahasiswa Binus”); 3. printf $data=”devie”; 43 printf (“%s”,$data); printf (“%s Dosen Binus”, $data); Sebagai contoh untuk menampilkan kata “Halo” pada halaman web menggunakan PHP, maka sintaksnya sebagai berikut: <?PHP Echo “Halo”; ?> 2.22 Pengertian XAMPP Menurut Dvorski (2007: 1), XAMPP adalah sejenis apache yang kecil dan ringan yang mengandung pengembangan teknologi web yang paling umum dalam satu paket. Isinya berukuran kecil dan mudah dibawa membuat alat yang ideal dalam mengembangkan dan menguji aplikasi di PHP dan MySQL. XAMPP adalah aplikasi web server gratis yang multiplatform yang terdiri atas apache HTTP server, MySQL database, dan penerjemah untuk script yang ditulis dalam bahasa pemrograman PHP dan Perl. Program ini dipublikasikan dibawah lisensi general public License (GNU) dan bersifat gratis, dan sebagai web server yang mudah digunakan untuk aktifitas halaman web yang dinamis. Saat ini, XAMPP dapat digunakan pada sistem operasi Microsoft Windows, Linux, Sun solaris dan Mac OS X, dan biasa digunakan untuk proyek pembuatan website. Umumnya, pembuat XAMPP hanya berencana sebagai alat untuk pengembangan yang mengijinkan pembuat website dan pembuat program menguji pekerjaan mereka di komputer mereka sendiri tanpa harus terhubung ke internet. Dalam pelaksanaannya, XAMPP seringkali digunakan sebagai web server di WWW (World Wide Web), XAMPP juga mendukung pembuatan dan perubahan database di MySQL dan SQLite. 2.23 Adobe Dreamweaver Menurut Wahana Komputer (2010:2), Adobe Dreamweaver merupakan salah satu program aplikasi yang digunakan untuk membangun 44 sebuah website, baik secara grafis maupun dengan menuliskan kode sumber secara langsung. 2.24 Java Gosling et. al. (2005: 3) mengatakan bahwa bahasa pemrograman Java merupakan sebuah bahasa pemrograman yang berorientasi objek yang dirancang dengan sederhana sehingga programmer dapat dengan mudah menggunakan bahasa pemrograman Java. Syntax yang ada pada bahasa pemrograman Java diambil dari C ataupun C++ hanya saja dibuat menjadi lebih sederhana dan sedikit lebih rendah levelnya dibandingkan C ataupun C++. Aplikasi Java biasanya dikompilasi menjadi bytecode (file class) yang dapat dieksekusi pada Java Virtual Machine (JVM) manapun tanpa memerhatikan arsitektur komputer. Java dapat dijalankan di setiap komputer dan peralatan elektronik selama perangkat tersebut memiliki JVM (Java Virtual Machine). Bahasa pemrograman Java tercatat sebagai bahasa pemrograman terpopuler ke-2 setelah C. (TIOBE Programming Community Index, September 2012). Berikut beberapa kelebihan yang ditawarkan bahasa pemrograman Java menurut Gosling et. al. (2005:554): 1. Implementasi yang sederhana Bahasa pemrograman Java dapat dikatakan sebagai sebuah perubahan maju dari bahasa pemrograman yang telah ada. Java dirancang agar mudah untuk digunakan dalam proses penulisan kode, kompilasi dan debug dibandingkan bahasa pemrograman lainnya. 2. Object Oriented Programming (OOP) Java memang dirancang untuk memenuhi kebutuhan bahasa pemrograman yang berorientasi pada objek seperti pada pembuatan objek, manipulasi objek, dan membuat objek berhubungan. Dengan adanya OOP pada Java, maka user dapat menggunakan kembali kode yang ada. 3. “Write once, run anywhere” 45 Dengan kelebihan ini, progammer cukup membuat sebuah program dengan Java dan setelah dikompilasi hasilnya dapat dijalankan di perangkat manapun yang sudah memiliki Java. 4. Performance Pada awalnya Java memiliki performa yang dapat dikatakan lambat dan memakan memori yang lebih besar dibandingkan bahasa pemrograman C. Tetapi setelah just-in-time compilation diperkenalkan, performa Java kian membaik. 2.25 Eclipse Menurut Steinberg et. al. (2008: 21), Eclipse adalah sebuah open source software yang gunanya menyediakan tool platform yang sangat terintegrasi. Dalam penggunaannya Eclipse meliputi core project dimana yang berisi generic framework untuk tool integration dan sebuah Java development environment. Proyek pada Eclipse terimplementasikan pada Java dan dapat dijalankan pada beberapa sistem operasi meliputi Windows, Mac OSX dan Linux. Menurut Steinberg et. al. (2008: 13), proyek Eclipse mendukung pengembangan dari sebuah platform atau framework untuk pengimplementasian dari Integrated Development Environment (IDE) dan aplikasi lainnya. Meskipun framework dari Eclipse diimplementasikan pada Java tidak menutup kemungkinan pengembangan juga dilakukan pada bahasa pemograman lainnya seperti C++, XML dan sebagainya. 2.26 Aplikasi Mobile Menurut Cory Jannsen, aplikasi mobile, paling sering disebut sebagai sebuah aplikasi, adalah jenis aplikasi perangkat lunak yang dirancang untuk dijalankan pada perangkat mobile, seperti smartphone atau komputer tablet. Aplikasi mobile menyediakan layanan untuk pengguna dengan layanan serupa dengan yang diakses pada PC umumnya. Aplikasi umumnya kecil, unit perangkat lunak individu dengan fungsi terbatas. Penggunaan software ini telah dipopulerkan oleh Apple Inc. dan App Store, yang menjual ribuan aplikasi untuk iPhone, iPad dan iPod Touch. 46 Aplikasi mobile dapat juga dikenal sebagai app, Web app, online app, iPhone app atau smartphone app. 2.27 Smartphone Menurut William & Sawyer (2011: 385) yang mengutip dari Steve Lohr penulis New York Times Technology, smartphone adalah teknologi terdepan yang memungkinkan menambah alat berkualitas tinggi ke dalam telepon. Smartphone adalah telepon dengan prosesor berukuran mikro, memori, tampilan layar, dan alat yang telah terpasang untuk terhubung dengan jaringan. 2.28 Android Mengacu pada pendapat Nimodia dan Deshmukh (2012: 10), Android adalah sebuah software stack untuk perangkat mobile yang mencakup sistem operasi, middleware dan key applications. Android memiliki platform yang bersifat open source dan sistem operasi untuk perangkat mobile berbasis pada sistem operasi Linux dan dikembangkan oleh Google dan Open Handset Alliance. Sistem operasi pada android ini berbasis bahasa pemrograman Java menggunakan Android Software Development Kit (Android SDK) dan berjalan pada Linux Kernel, dengan middleware, library, Application Programming Interface (API) yang ditulis dalam bahasa C, dan software yang berjalan pada suatu kerangka aplikasi dengan menyertakan Java-compatible libraries berbasis pada Apache Harmony, yaitu sebuah implementasi Java bersifat open source dikembangkan oleh Apache Software Foundation yang terdiri dari Java Development Kit (JDK), virtual machine dan class library. 2.28.1 Arsitektur Android Nimodia dan Deshmukh (2012: 11-12) dalam paket sistem operasi Android terdiri dari beberapa unsur seperti tampak pada gambar dibawah ini. Secara sederhana arsitektur Android merupakan 47 sebuah kernel Linux dan sekumoulan pustaka C/C++ dalam suatu framework yang menyediakan dan mengatur alur proses aplikasi. Gambar 2.12 Arsitektur Android Sumber: (Android Operating System. Software Engineering – Nimodia C. and Deshmukh H.R., 2013) 1. Linux Kernel Android dibangun di atas kernel Linux 2.6. Namun secara keseluruhan Android bukanlah linux, karena dalam Android tidak terdapat paket standar yang dimiliki oleh linux lainnya. Linux merupakan sistem operasi terbuka yang handal dalam manajemen memori dan proses. Oleh karenanya pada Android hanya terdapat beberapa servis yang diperlukan seperti keamanan, manajemen memori, manajemen proses, jaringan dan driver. Kernel linux menyediakan driver layar, kamera, keypad, WiFi, Flash Memory, audio, dan IPC (Interprocess Communication) untuk mengatur aplikasi dan lubang keamanan. 2. Libraries 48 Android menggunakan beberapa paket pustaka yang terdapat pada C/C++ dengan standar Berkeley Software Distribution (BSD) hanya setengah dari yang aslinya untuk tertanam pada kernel Linux. Beberapa pustaka diantaranya: a. Media Library untuk mrmutar dan merekam berbagai macam format audio dan video. b. Surface Manager untuk mengatur hak akses layer dari berbagai aplikasi. c. Graphic Library termasuk didalamnya SGL dan OpenGL, untuk tampilan 2D dan 3D. d. SQLite untuk mengatur relasi database yang digunakan pada aplikasi. e. SS1 dan WebKit untuk browser dan keamanan internet. Pustaka-pustaka tersebut bukanlah aplikasi yang berjalan sendiri, namun hanya dapat digunakan oleh program yang berada di level atasnya. Sejak versi Android 1.5, pengembang dapat membuat dan menggunakan pustaka sendiri menggunakan Native Development Toolkit (NDK). 3. Android Runtime Pada Android tertanam paket pustaka inti yang menyediakan sebagian besar fungsi Android. Inilah yang membedakan Android dibandingkan dengan sistem operasi yang lain yang juga mengimplementasikan Linux. Android Runtime merupakan mesin virtual yang membuat aplikasi Android menjadi lebih tangguh dengan paket pustaka yang telah ada. Dalam Android Runtime terdapat 2 bagian utama, antaranya: a. Pustaka Inti Android dikembangkan melalui bahasa pemrograman Java, tapi Android Runtime bukanlah mesin virtual Java. Pustaka inti Android menyediakan hampir semua fungsi yang terdapat pada pustaka Java serta beberapa pustaka khusus Android b. Mesin Virtual Dalvik 49 Dalvik merupakan sebuah mesin virtual yang dikembangkan oleh Dan Bornstein yang terinspirasi dari nama sebuah perkampungan yang berada di Iceland. Dalvik hanyalah interpreter mesin virtual yang mengeksekusi file dalam format Dalvik Executable (*.dex). Dengan mengoptimalkan format ini efisiensi Dalvik akan penyimpanan dan pengalamatan memori pada file yang dieksekusi. Dalvik berjalan di atas kernel Linux 2.6, dengan fungsi dasar seperti threading dan manajemen memori yang terbatas. 4. Application Framework Kerangka aplikasi menyediakan kelas-kelas yang dapat digunakan untuk mengembangkan aplikasi Android. Selain itu, juga menyediakan abstraksi generik untuk mengakses perangkat, serta mengatur tampilan user interface dan sumber daya aplikasi. Bagian terpenting dalam kerangka aplikasi Android adalah sebagai berikut : a. Activity Manager berfungsi untuk mengontrol siklus hidup aplikasi dan menjaga keadaan ”Backstack“ untuk navigasi penggunaan. b. Content Providers berfungsi untuk merangkum data yang memungkinkan digunakan oleh aplikasi lainnya, seperti daftar nama. c. Resource Manager untuk mengatur sumber daya yang ada dalam program. Serta menyediakan akses sumber daya diluar kode program, seperti karakter, grafik, dan file layout. d. Location Manager berfungsi untuk memberikan informasi detail mengenai lokasi perangkat android berada. e. Notification Manager, mencakup berbagai macam peringatan seperti, pesan masuk, janji, dan lain sebagainya yang akan ditampilkan pada status bar. 50 5. Application Layer Puncak dari diagram arsitektur android adalah lapisan aplikasi dan widget. Lapisan aplikasi merupakan lapisan yang paling tampak pada pengguna ketika menjalankan program. Pengguna hanya akan melihat program ketika digunakan tanpa mengetahui proses yang terjadi dibalik lapisan aplikasi. Lapisan ini berjalan dalam Android runtime dengan menggunakan kelas dan service yang tersedia pada framework aplikasi. Lapisan aplikasi android sangat berbeda dibandingkan dengan sistem operasi lainnya. Pada android semua aplikasi, baik aplikasi inti (native) maupun aplikasi pihak ketiga berjalan diatas menggunakan pustaka API lapisan aplikasi (Application dengan Programming Interface) yang sama. 2.28.2 Komponen Aplikasi Fitur penting android adalah bahwa satu aplikasi dapat menggunakan elemen dari aplikasi lain (untuk aplikasi yang memungkinkan). Sebagai contoh, sebuah aplikasi memerlukan fitur scroller dan aplikasi lain telah mengembangkan fitur scroller yang baik dan memungkinkan aplikasi lain menggunakannya. Maka pengembang tidak perlu lagi mengembangkan hal serupa untuk aplikasinya, cukup menggunakan scoller yang telah ada. Agar fitur tersebut dapat bekerja, sistem harus dapat menjalankan aplikasi ketika setiap bagian aplikasi itu dibutuhkan, dan pemanggilan objek java untuk bagian itu. Oleh karena itu Android berbeda dari sistem-sistem lain, Android tidak memiliki satu tampilan utama program seperti fungsi main () pada aplikasi lain. Sebaliknya, aplikasi memiliki komponen penting yang memungkinkan sistem untuk memanggil dan menjalankan ketika dibutuhkan. (Anonim1, 2013) 1. Activities Activity merupakan bagian yang paling penting dalam sebuah aplikasi, karena Activity menyajikan tampilan visual program 51 yang sedang digunakan oleh pengguna. Setiap Activity dideklarasikan dalam sebuah kelas yang bertugas untuk menampilkan antarmuka pengguna yang terdiri dari Views dan respon terhadap Event. Setiap aplikasi memiliki sebuah activity atau lebih. Biasanya pasti akan ada activity yang pertama kali tampil ketika aplikasi dijalankan.
Perpindahan antara activity dengan activity lainnya diatur melalui sistem, dengan memanfaatkan activity stack. Keadaan suatu activity ditentukan oleh posisinya dalam tumpukan acitivity, LIFO (Last In First Out) dari semua aplikasi yang sedang berjalan. Bila suatu activity baru dimulai, activity yang sebelumnya digunakan maka akan dipindahkan ketumpukan paling atas. Jika pengguna ingin menggunakan activity sebelumnya, cukup menekan tombol Back, atau menutup activity yang sedang digunakan, maka activity yang berada diatas akan aktif kembali. Memory Manager android menggunakan tumpukkan ini untuk menentukan prioritas aplikasi berdasarkan activity, memutuskan untuk mengakhiri suatu aplikasi dan mengambil sumber daya dari aplikasi tersebut. 2. Service Suatu service tidak memiliki tampilan antarmuka, melainkan berjalan di background untuk waktu yang tidak terbatas. Komponen service diproses tidak terlihat, memperbarui sumber data dan menampilkan notifikasi. Service digunakan untuk melakukan pengolahan data yang perlu terus diproses, bahkan ketika Activity tidak aktif atau tidak tampak. 3. Intents Intens merupakan sebuah mekanisme untuk menggambarkan tindakan tertentu, seperti memilih foto, menampilkan halaman web, dan lain sebagainya. Intents tidak selalu dimulai dengan menjalankan aplikasi, namun juga digunakan oleh sistem untuk memberitahukan ke aplikasi bila terjadi suatu hal, misal pesan masuk. Intents dapat eksplisit atau implisit, contohnya jika suatu aplikasi ingin menampilkan URL, sistem akan 52 menentukan komponen apa yang dibutuhkan oleh Intents tersebut. 4. Broadcast Receivers Broadcast Receivers merupakan komponen yang sebenarnya tidak melakukan apa-apa kecuali menerima dan bereaksi menyampaikan pemberitahuan. Sebagian besar Broadcast berasal dari sistem misalnya, Batre sudah hampir habis, informasi zona waktu telah berubah, atau pengguna telah merubah bahasa default pada perangkat. Sama halnya dengan service, Broadcast Receivers tidak menampilkan antarmuka pengguna. Namun, Broadcast Receivers dapat menggunakan Notification Manager untuk memberitahukan sesuatu kepada pengguna. 5. Content Providers Content Providers digunakan untuk mengelola dan berbagi database. Data dapat disimpan dalam file sistem, dalam database SQLite, atau dengan cara lain yang pada prinsipnya sama. Dengan adanya Content Provider memungkinkan antar aplikasi untuk saling berbagi data. Komponen ini sangat berguna ketika sebuah aplikasi membutuhkan data dari aplikasi lain, sehingga mudah dalam penerapannya. 2.29 Android Software Development Kit (SDK) Berdasarkan Burnette (2010: 21), Android Software Development Kit (SDK) merupakan sebuah kumpulan aplikasi pengembangan yang komprehensif yang meliputi debugger, libraries dan emulator berbasis QEMU, dokumentasi, tutorial dan contoh kode. Android SDK terbagi dalam dua bagian yaitu Android SDK Starter dan Android SDK Components. Android SDK Starter merupakan aplikasi utama sedangkan Android SDK Components berisi tools yang akan digunakan nantinya. Tools pada Android SDK terbagi menjadi dua jenis yaitu: 1. SDK tools yang isinya merupakan kumpulan komplit development tools untuk pengembangan aplikasi. 53 2. Platform tools yang berfungsi untuk mendukung fitur yang baru muncul pada platform Android tertentu. 2.30 Global Positioning System (GPS) Mengacu pada pendapat Meduri dan Brahmanandam (2012: 445), Global Positioning System (GPS) adalah satelit berbasis sistem navigasi radio untuk memberikan informasi posisi yang akurat dengan waktu yang tepat. Biasanya, akurasi GPS dibatasi oleh beberapa faktor seperti lingkungan, penerima, dan kesalahan berbasis satelit. 2.31 Google Maps Google Maps adalah sebuah layanan gratis peta digital dari Google berbasis web yang dapat digunakan dan ditempatkan pada website tertentu dengan menggunakan Google Maps API (Google Inc, 2011). Google Maps sendiri mempunyai antara lain navigasi peta dengan dragging mouse, zoom in, dan zoom out untuk menunjukkan informasi peta secara detil, member penanda, dan memberi informasi tambahan. Mode viewing pada Google Maps berupa “Map” (peta topografi dan jalan), “Satellite” (peta berupa foto satelit dan foto resolusi tinggi dari udara), “Hybrid” (peta berupa foto satelit dan peta jalan berada diatasnya) dan “Street View”, fasilitas ini secara diperkenalkan oleh Google pada Mei 2007. 2.31.1 Google Maps API Google Maps API Google menciptakan Google Maps API untuk memfasilitasi pembangunan suatu aplikasi peta berbasis web (Google Maps) yang memiliki data sesuai dengan kebutuhan pengguna. Dengan menggunakan Google Maps API dimungkinkan untuk menyisipkan seluruh fasilitas dan teknologi yang ada pada Google Maps ke dalam suatu web site. Hal utama yang dibutuhkan dalam pembangunan aplikasi menggunakan API ini adalah API key. API key adalah nilai kunci atau penanda yang harus ada bila kita menggunakan 54 fasilitas Google Maps API. Setiap website yang menggunakan fasilitas Google Maps API memiliki nilai API key yang berbeda-beda. Pembangunan aplikasi peta yang menggunakan Google Maps API ini menggunakan bahasa Javascript. Baik itu 33 bahasa Javascript umum maupun bahasa Javascript khusus yang dikembangankan oleh Google untuk pembangunan Google Maps (Google Javascript). Dengan menggunakan Javascript ini dapat dibangun suatu aplikasi peta berbasis web yang interaktif. Google terus-menerus melakukan pengembangan dan penyempurnaan API ini, agar dapat dengan mudah digunakan dan memiliki layanan yang baik. Google Maps API menyediakan kelaskelas, tipe dan fungsi-fungsi yang dapat digunakan untuk membangun suatu aplikasi peta Google Maps.