BAB 2 LANDASAN TEORI 2.1 Smartphone Menurut Williams & Sawyer (2011), smartphone adalah telepon selular dengan mikroprosesor, memori, layar dan modem bawaan. Smartphone merupakan ponsel multimedia yang menggabungkan fungsionalitas PC dan handset sehingga menghasilkan gadget yang mewah, di mana terdapat pesan teks, kamera, pemutar musik, video, game, akses email, tv digital, search engine, pengelola informasi pribadi, fitur GPS, jasa telepon internet dan bahkan terdapat telepon yang juga berfungsi sebagai kartu kredit. 2.2 Rekayasa Perangkat Lunak 2.2.1 Pengertian Menurut Pressman (2010), rekayasa perangkat lunak adalah pembentukan dan penggunaan prinsip rekayasa untuk memperoleh perangkat lunak secara ekonomis yang handal dan dapat bekerja secara efisien pada mesin nyata. Menurut Pressman (2010), rekayasa perangkat lunak mencakup lima aktifitas utama, antara lain : 1. Communication Sebelum seluruh kegiatan teknis dapat dimulai, sangat diperlukan untuk berkomunikasi dengan pengguna serta seluruh stakeholder lainnya. Komunikasi ini bertujuan untuk mengetahui 10 11 sasaran yang diinginkan oleh seluruh stakeholder dan mengumpulkan informasi yang diperlukan untuk menentukan fitur dan fungsi dari software. 2. Planning Perencanaan proyek yang mendefinisikan perkerjaan rekayasa perangkat lunak dengan menjelaskan tugas-tugas teknis yang akan dilakukan, resiko yang mungkin terjadi, sumber daya yang diperlukan, produk yang akan dihasilkan dan jadwal pengerjaan. 3. Modelling Sebelum mengkonstruksi suatu program, developer perlu melakukan pemodelan dengan tujuan agar developer lebih memahami persyaratan software sehingga dapat mengkonstruksi software yang sesuai dengan ketentuan yang telah dibicarakan dengan seluruh stakeholder sebelumnya. 4. Construction Pada aktifitas ini dilakukan pengkodean dan pengujian yang dibutuhkan untuk mengatasi kesalahan yang terdapat pada pengkodean. 5. Deployment Software disebarkan ke pengguna, di mana dilakukan evaluasi terhadap produk dan memberikan umpan balik berdasarkan evaluasi. 2.2.2 Waterfall Model Pressman (2010) mengemukakan bahwa waterfall model yang biasa disebut classic life cycle menawarkan pendekatan yang sistematis dan 12 sekuensial dalam pengembangan software. Model proses waterfall meliputi pengumpulan spesifikasi kebutuhan pengguna, perencanaan, pemodelan, konstruksi, penyebaran dan berpuncak pada dukungan yang berkelanjutan pada software. Gambar 2.1 Model Proses Waterfall (Pressman, 2010) 2.3 Interaksi Manusia dan Komputer (IMK) 2.3.1 Pengertian Menurut Santoso (2009), interaksi manusia dan komputer (IMK) adalah suatu disiplin ilmu yang mempelajari perancangan, implementasi dan evaluasi sistem komputasi interaktif dan berbagai aspek terkait. IMK berfokus pada interaksi, khususnya interaksi antara satu atau lebih manusia dengan satu atau lebih komputer, di mana biasa dijumpai dalam bentuk grafik yang interaktif. Interaksi Manusia dan Komputer (IMK) adalah sebuah ilmu yang mempelajari bagaimana manusia berinteraksi dengan komputer, di mana salah satu bidang utama pekerjaannya berfokus pada desain system komputer. IMK bertujuan untuk menghasilkan sebuah sistem yang berguna, bermanfaat serta memiliki nilai estetika yang baik (Olson & Olson, 2003). 13 2.3.2 Delapan Aturan Emas Perancangan User Interface Menurut Schneiderman & Plaisant (2010), terdapat delapan aturan emas yang dapat digunakan sebagai petunjuk dasar dalam perancangan tampilan antarmuka pengguna, antara lain : 1. Berusaha untuk konsisten Konsisten dalam tampilan yang digunakan pada aplikasi, seperti konsisten dalam penggunaan warna, jenis tulisan, ukuran dan tata letak. 2. Menyediakan usability yang universal Usability yang universal adalah fungsi-fungsi yang dikenali secara umum, seperti penggunaan singkatan dan tombol-tombol shortcut yang sudah umum diketahui. 3. Memberikan umpan balik yang informatif Dalam setiap aksi yang dilakukan oleh pengguna harus disediakan umpan balik yang informatif untuk menunjukkan hasil dari aksi yang dilakukan. 4. Merancang dialog penutupan Urutan tindakan sebaiknya diatur dalam pengelompokkan menjadi bagian awal, tengah dan akhir. Di mana pada bagian akhir tindakan diberikan umpan balik yang informatif untuk mengindikasikan bahwa proses yang dilalui sudah benar. 5. Memberikan penanganan kesalahan yang sederhana Rancangan sistem yang baik harus mengurangi terjadinya kesalahan. Apabila pengguna melakukan kesalahan, sistem harus dapat 14 mendeteksi kesalahan tersebut serta memberikan instruksi yang sederhana dan jelas kepada pengguna untuk memperbaiki kesalahan. 6. Memudahkan pembalikan aksi ke kondisi awal Dalam perancangan sistem harus disediakan fitur yang memungkinkan pengguna untuk kembali ke kondisi semula. Dengan demikian pengguna dapat dengan berani menggunakan pilihan-pilihan yang belum diketahui dengan tidak merasa cemas akan kesalahan yang akan muncul. 7. Mendukung internal locus of control Sistem harus bisa memberikan kendali kontrol kepada pengguna, sehingga pengguna tidak merasa dikendalikan oleh sistem. 8. Mengurangi beban ingatan jangka pendek Daya ingat manusia yang terbatas untuk memproses informasi sehingga perlu merancang tampilan dengan baik sehingga mudah dimengerti dan diingat oleh pengguna. 2.4 Unified Modelling Language (UML) 2.4.1 Pengertian Menurut Whitten & Bentley (2007), Unified Modelling Language (UML) adalah serangkaian konvensi pemodelan yang digunakan untuk menentukan atau menggambarkan sebuah sistem perangkat lunak ke dalam segi objek. Menurut Pressman (2010), UML adalah sebuah patokan bahasa untuk menulis kerangka kerja terperinci dari sebuah perangkat lunak. UML 15 digunakan untuk menggambarkan, menentukan, membangun dan mendokumentasikan artefak dari sistem perangkat lunak yang intensif. 2.4.2 Use Case Diagram Menurut Whitten et al. (2007), use case diagram adalah diagram yang menggambarkan interaksi antara sistem dan pengguna yang menunjukkan siapa saja yang menggunakan sistem serta bagaimana cara pengguna berinteraksi dengan sistem. Use case diagram umumnya terbagi menjadi tiga bagian, yaitu : 1. Aktor Merupakan external user yang berfungsi untuk berinteraksi dengan sistem. 2. Relationship Relationship digambarkan sebagai garis antara dua simbol pada diagaram use case. Relationship terdiri dari beberapa jenis, yaitu associations, extends, depends on, uses (includes) dan inheritance, di mana memiliki arti dan kegunaan yang berbeda tergantung pada bagaimana garis ditarik dan jenis simbol yang menghubungkan. 3. Use case Use case adalah sebuah perilaku terkait dengan urutan langkahlangkah (skenario), baik itu otomatis maupun manual, untuk menyelesaikan satu tugas bisnis. 16 Gambar 2.2 Use Case Diagram 2.4.3 Class Diagram Menurut Whitten et al. (2007), class diagram digunakan untuk menggambarkan structure objek dari suatu sistem. Diagram ini menunjukkan kelas-kelas objek yang menyusun sebuah sistem serta menggambarkan hubungan antara objek-objek tersebut. Terdapat beberapa notasi yang digunakan dalam menyusun class diagram, antara lain : 1. Class Class atau yang biasa disebut kelas objek secara umum digambarkan berbentuk kotak dan terbagi menjadi tiga bagian, yaitu nama class, atribut class dan operasi class (method). 17 2. Relationship a. Association Relasi ini memungkinkan suatu class untuk menggunakan atribut atau operasi dari class lain. Asosiasi juga menggambarkan interaksi yang mungkin terjadi antara suatu class dengan class yang lain. Gambar 2.3 Association b. Aggregation Dibandingkan dengan asosiasi, aggregasi merupakan relasi yang lebih kuat. Aggregasi dapat diartikan bahwa suatu class merupakan bagian dari class yang lain, tetapi tidak bersifat wajib. Gambar 2.4 Aggregation c. Composition Relasi ini merupakan relasi yang paling kuat dibandingkan dengan asosiasi dan agregasi, di mana dapat diartikan bahwa suatu class merupakan bagian wajib dari class yang lain. 18 Gambar 2.5 Composition d. Generalization Relasi ini merupakan relasi pewarisan sifat, di mana memungkinkan suatu class mewarisi attribut dan operasi yang dimiliki oleh class induk. Gambar 2.6 Generalization Selain itu, Whitten et al. (2007) juga mengemukakan bahwa dalam class diagram terdapat tiga macam visibility yang berguna untuk menentukan attribut dan method class yang dapat diakses dan dapat digunakan oleh kelas lain atau tidak. Visibility tersebut, antara lain : 1. Public (+), dapat dipanggil oleh semua kelas lain. 2. Protected (#), hanya dapat dipanggil oleh kelas yang bersangkutan dan turunannya. 19 3. Private (-), hanya dapat dipanggil oleh kelas yang bersangkutan. 2.4.4 Sequence Diagram Sequence diagram adalah diagram UML yang menggambarkan bagaimana suatu objek berinteraksi dengan yang lain melalui pesan dalam use case atau operasi. Sequence diagram menggambarkan bagaimana pesan terkirim dan diterima antara objek-objek secara sekuensial (diurutkan sesuai proses yang dilakukan) (Whitten et al.,2007). Gambar 2.7 Sequence Diagram Berikut ini merupakan notasi-notasi yang digunakan dalam sequence diagram : 20 Tabel 2.1 Notasi-notasi pada Sequence Diagram Notasi Simbol Penjelasan Elemen yang mewakili user dalam Aktor berinteraksi dengan interface. Digambarkan dengan simbol persegi Objek atau :Objek panjang yang diberi nama “Black Sistem box” atau “Whole” yang didalamnya terdapat nama objek tersebut. Pada objek terdapat garis putus-putus yang disebut lifeline, yang mengindikasikan kehidupan dari sistem. Digambarkan dengan sebuah persegi Bar Aktivasi :Objek1 panjang pada lifeline yang digunakan untuk menunjukkan lamanya objek yang digunakan. Pesan atau Pesan Digunakan untuk menggambarkan interaksi antara objek-objek yang ada input message pada sequence diagram. Pesan kembali atau output message Pesan Digambarkan untuk menanggapi pesan yang sebelumnya telah disampaikan. 21 Suatu objek pada sequence diagram Self-call yang mengirimkan pesan atau berinteraksi ke objek itu sendiri. Menunjukkan adanya perulangan Frame loop pada daerah yang dibatasi oleh frame tersebut. Frame juga digunakan jika pada sequence diagram terdapat pesan tertentu atau optional. 2.5 Data & Informasi 2.5.1 Data Data adalah fakta mentah mengenai orang, tempat, peristiwa dan halhal penting dalam suatu organisasi. Setiap fakta tersebut secara relatif tidak memiliki arti (Whitten et al., 2007). 2.5.2 Informasi Informasi merupakan data yang telah diproses atau dikelola kembali menjadi bentuk yang lebih berarti bagi seseorang. Informasi dihasilkan dari serangkaian data-data yang diharapkan memiliki arti bagi penerima (Whitten et al., 2007). 22 2.6 Database 2.6.1 Pengertian Menurut Connolly & Begg (2010), database merupakan kumpulan data yang mepunyai relasi logika yang dapat dibagikan, mempunyai deskripsi pada data dan didesain untuk mendapatkan informasi yang dibutuhkan oleh organisasi. Menurut Connoly et al. (2010), untuk mendapatkan informasi yang dibutuhkan oleh suatu organisasi, maka kita mencoba untuk untuk mengindentifikasi entities, attributes dan relationships. 1. Entity merupakan sebuah perbedaan objek seperti orang, tempat, benda, konsep atau acara pada suatu organisasi yang dapat merepresentasikan database. 2. Attributes merupakan sifat yang dideskripsikan pada beberapa pandangan objek yang kita harapkan untuk menyimpan. 3. Relationship merupakan sebuah asosiasi antara entities dan attributes. 2.6.2 Database Management System (DBMS) Menurut Connolly et al. (2010), DBMS adalah sebuah sistem software yang memungkinkan pengguna untuk mendefinisikan, membuat, memelihara dan mengontrol akses ke database. DBMS merupakan software yang berinteraksi dengan aplikasi program pengguna dan database. DBMS menyediakan fasilitas seperti : 1. Menyediakan akses kontrol ke database seperti sistem keamanan untuk mencegah pengguna yang tidak mempunyai hak akses untuk 23 mengakses database, sistem integritas dimana untuk memelihara konsistensi data yang di simpan, sistem kontrol konkurensi dimana untuk memperbolehkan pengguna yang bersangkutan untuk mengakses database pada waktu yang bersamaan, sistem kontrol pemulihan dimana digunakan untuk memulihkan database ke keadaan sebelumnya yang diakibatkan oleh kegagalan software atau hardware, katalog pengguna yang mengakses dimana menyimpan deskripsi data pada database. 2. Memperbolehkan pengguna untuk insert, update, delete dan retrieve data dari sebuah database yang biasanya menggunakan Data Manipulation Language (DML). Bahasa Query merupakan data deskripsi yang memperboleh DML untuk menyediakan fasilitas permintaan umum pada data. Structured Query Language (SQL) merupakan bahasa Query yang paling umum digunakan dan juga merupakan standar bahasa untuk DBMS yang berelasi. 3. Memperbolehkan pengguna untuk mendefinisikan database yang biasanya menggunakan sebuah Data Definition Language (DDL). DDL memperbolehkan pengguna untuk mengelompokkan tipe data, struktur dan batasan data untuk disimpan dalam database. 2.6.3 Entity Relationship Diagram (ERD) Menurut Whitten et al. (2007), Entity Relationship Diagram (ERD) adalah pemodelan database yang menggunakan beberapa notasi untuk menggambarkan data dalam konteks entitas dan hubungan yang 24 dideskripsikan oleh data tersebut. ERD berfungsi untuk mengatur dan mendokumentasikan data dari sebuah sistem. Menurut Whitten et al. (2007), dalam penggambaran ERD digunakan beberapa notasi dan simbol, antara lain : 2.7 1. Entities 2. Attributes 3. Relationships Structured Query Language (SQL) Menurut Connolly et al. (2010), Structured Query Language (SQL) merupakan bahasa non-prosedural dan mengandung kata bahasa Inggris seperti SELECT, INSERT dan DELETE yang dapat digunakan oleh orang profesional maupun yang tidak profesional. SQL merupakan bahasa standar secara de facto dan formal untuk mendefinisikan dan memanipulasi database. SQL mempunyai 2 komponen utama yaitu : 1. Data Definition Language (DDL) untuk mendefinisikan struktur database dan mengontrol akses ke data. 2. Data Manipulation Language (DML) untuk mendapatkan data dan mengupdate data. 2.8 Object-Oriented Programming (OOP) Menurut Deitel & Deitel (2012), para pengembang software menemukan bahwa menggunakan modular, object oriented design (OOD) dan pendekatan implementasi dapat membuat kelompok pengembang software jauh lebih produktif 25 daripada teknik sebelumnya yaitu structure programming, karena OOP dapat lebih mudah dipahami, diperbaiki dan dimodifikasi. Berikut ini adalah beberapa kunci mengenai konsep OOP, yaitu : 1. Automobile sebagai objek Untuk memahami mengenai objek dan isinya dapat dianalogikan seperti ketika mengendarai mobil dan ingin mempercepat kecepatan mobilnya dengan menekan pedal akselator. Sebelum bisa melakukan ini teknisi harus membuat desain mengenai sesuatu yang mirip seperti blueprint yang digunakan dalam desain rumah, pada desain pedal akselator menyembunyikan mekanisme yang kompleks bagi pengemudi untuk mempercepat kecepatan mobilnya, desain pedal rem yang menyembunyikan mekanisme untuk memperlambat kecepatan mobil dan desain steering roda yang memyembunyikan mekanisme untuk membuat mobil belok sehingga orang dengan pengetahuan sedikit mengenai mekanisme bagaimana mesin, rem dan steering berkerja juga tetap dapat mengemudi mobil dengan mudah. 2. Methods dan Class Method diperlukan untuk melakukan tugas-tugas didalam program sedangkan class merupakan kumpulan method-method untuk melakukan tugas yang ada di dalam class seperti class yang merepresentasikan akuntasi bank yang memiliki method untuk deposit money, withdraw money dan inquire money. 3. Instantiation Sebelum program dapat menggunakan method yang didefinisikan oleh class maka harus membuat sebuah objek terlebih dahulu, proses dalam 26 pembuatan ini disebut instantiation. Objek merupakan instant dari sebuah class. 4. Reuse Class dapat digunakan berulang kali untuk membangun banyak objek. Penggunaan ulang class untuk membangun class atau program yang baru dapat menghemat waktu dan tenaga selain itu juga apa yang kita bangun menggunakan class yang telah ada lebih dapat diandalkan dan efektif pada sistem karena class dan komponen yang sudah ada telah melewati tahap testing, debugging dan performance tuning. 5. Messages dan Method Calls Setiap message diimplementasikan sebagai method call yang berfungsi memberitahukan method yang ada pada objek untuk melakukan suatu tugas, contohnya yaitu program akan memanggil deposit method pada bank account object untuk meningkatkan saldo. 6. Attributes dan Variables Objek memiliki attributes yang terus ada di objek untuk digunakan pada program. Attributes ini mengspesifikasikan bagian objek dari suatu class. Misalnya seperti bank account object memiliki balance attribute yang merepresentasikan jumlah uang pada account tersebut. 7. Encapsulation Class mengenkapsulasikan attribute dan method ke dalam sebuah objek. Attribute dan method pada objek memiliki hubungan yang erat. Objek dapat berkomunikasi dengan objek yang lain tanpa perlu mengetahui bagaimana 27 objek yang lain diimplementasikan. Keterangan implementasi disembunyikan bersama dengan objeknya. 8. Inherintance Inherintance dapat membuat class yang baru dengan cepat dan mudah. Class yang baru dapat dibuat dengan menggunakan karakteristik pada class yang ada sebelumnya selain itu juga dapat disesuaikan dengan menambah karakteristik unik pada class baru tersebut. 9. Object-Oriented Analysis and Design (OOAD) Untuk membuat proyek yang besar dan kompleks maka harus mengikuti proses analisis untuk mengetahui apa yang dibutuh dalam proyek, dan membuat desain yang sesuai , setelah itu maka meninjau kembali desain proyek tersebut sebelum melakukan pengkodean . Jika proses melibatkan analisis dan desain sistem dari pandangan berorientasi objek maka dapat disebut dengan proses OOAD. 10. The UML (Unified Modeling Language) Walaupun memiliki banyak proses OOAD, tetapi bahasa grafik untuk mengkomunikasikan hasil dari beberapa proses OOAD menjadi penggunaan yang luas. Bahasa ini di kenal dengan UML yang merupakan grafik skema paling banyak digunakan untuk memodelkan sistem berorientasi objek. 2.9 Internet & Web 2.9.1 Internet Williams et al. (2011) mengartikan internet sebagai ibu dari seluruh jaringan, di mana merupakan sebuah jaringan komputer dunia yang 28 menghubungkan ratusan ribu jaringan yang lebih kecil. Jaringan ini menghubungkan bebarapa komputer, mulai dari bidang pendidikan, komersial, organisasi nirlaba, militer serta masing-masing individu. 2.9.2 Web World Wide Web atau yang biasa disebut web adalah sistem yang saling berhubungan dari komputer internet yang mendukung dokumen khusus diformat atau diubah dalam bentuk multimedia, seperti teks, gambar, animasi dan suara (Williams et al., 2011). 2.10 Android 2.10.1 Pengertian Meier (2010) dalam mengutip pernyataan Rubin (2007) mengungkapkan bahwa Android merupakan platform mobile pertama yang benar-benar terbuka dan lengkap, di mana dapat menjalankan sebuah mobile phone tanpa adanya keterbatasan kepemilikan yang dapat menghambat inovasi mobile phone tersebut. Menurut Holla & Katti (2012), Google meliris Android karena mobile applications semakin berkembang, Android juga merupakan open source operating system dengan linux-based platform. Seiring berjalannya waktu, Android menjadi platform yang paling banyak digunakan, akan tetapi Android juga menjadi pertimbangan pengguna dalam hal keamanannya. Hal ini mengacu pada Android market, di mana setiap orang dapat men-download banyak aplikasi dan siapapun juga dapat meng- 29 upload program tanpa harus melewati security check yang begitu rumit. Hal ini tentunya membuat Android menjadi target computer criminals. Akan tetapi, untuk menangani kerisauan pengguna, Android menggunakan Android application sandbox yang mampu secara otomatis melakukan static dan dynamic analysis untuk mendeteksi aplikasi Android yang mencurigakan, sehingga mendapatkan malware protection. 2.10.2 Versi Android Android telah melewati cukup banyak pembaruan sejak pertama kali dirilis. Berikut merupakan versi-versi dari Android beserta codename-nya. Tabel 2.2 Versi Android Version 1.1 1.5 1.6 2.1 2.2 2.3 - 2.3.2 2.3.3 - 2.3.7 3.1 3.2 4.0 - 4.0.2 4.0.3 - 4.0.4 4.1 Codename Cupcake Donut Eclair Froyo Gingerbread Honeycomb Ice Cream Sandwich Jellybean (Sumber : http://developer.android.com/about/dashboards/index.html) 30 2.10.3 Fitur-fitur Android Pada Android terdapat beberapa fitur yang mendukung kerja dari Android sendiri, antara lain : 1. Application framework 2. Dalvik virtual machine (DVM), dioptimalkan untuk perangkat mobile. 3. Browser yang terintegrasi 4. Grafis yang dioptimasi, didukung oleh library grafis 2D yang custom; grafis 3D berdasarkan spesifikasi OpenGL ES 1.0. 5. SQLite, untuk penyimpanan data terstruktur. 6. Media pendukung, untuk audio, video dan gambar dalam beberapa format (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF). 7. GSM Telephony (bergantung pada hardware yang digunakan). 8. Bluetooth, EDGE, 3G dan WiFi (bergantung pada hardware yang digunakan). 9. Camera, GPS, compass dan accelerometer (bergantung pada hardware yang digunakan). 10. Lingkungan pengembang yang lengkap, termasuk perangkat emulator, alat untuk debug, memori dan kinerja profil, serta plugin untuk Eclipse IDE. (http://developer.android.com/about/versions/index.html) 2.10.4 Arsitektur Android Menurut Lee (2011), sistem operasi Android dibagi menjadi lima bagian di dalam empat lapisan utama, yaitu : 31 1. Linux Kernel Merupakan kernel yang menjadi dasar Android, di mana terdapat seluruh perangkat driver tingkat rendah untuk berbagai komponen perangkat keras pada perangkat Android. 2. Libraries Bagian ini berisi seluruh kode yang menyediakan fitur utama pada sistem operasi Android. Contohnya yaitu SQLite library menyediakan dukungan database sehingga sebuah aplikasi dapat menggunakannya sebagai penyimpanan data. WebKit library menyediakan fungsi untuk web browsing. 3. Android Runtime Android Runtime menyediakan sekumpulan core libraries yang memungkinkan developer untuk membuat aplikasi Android menggunakan bahasa pemrograman Java. Android Runtime juga mencakup Dalvik virtual machine yang memungkinkan setiap aplikasi Android untuk berjalan dalam prosesnya sendiri. Dalvik merupakan mesin virtual yang dirancang khusus untuk Android dan dioptimalkan untuk battery-powered perangkat mobile dengan memori yang terbatas dan CPU. 4. Application Framework Bagian ini memperlihatkan berbagai kemampuan sistem operasi Android kepada pengembang aplikasi sehingga menggunakannya di dalam aplikasi yang dikembangkan. 5. Application dapat 32 Pada lapisan teratas ini akan ditemukan aplikasi yang disertakan bersama perangkat Android, seperti telepon, kontak, browser, dan lainlain, serta aplikasi yang di-download dan install dari Android Market. Aplikasi yang dibuat berada pada lapisan ini. Gambar 2.8 Arsitektur Android (Sumber : http://developer.android.com/about/versions/index.html) 2.11 Hypertext Markup Language (HTML) Menurut Williams et al. (2010), Hypertext Markup Language (HTML) merupakan sekumpulan instruksi-instruksi khusus (disebut “tags” atau “markups”) yang digunakan untuk menentukan struktur dokumen, bentuk dan link untuk menuju ke dokumen multimedia lain pada web. Extensible Hypertext Markup Language (XHTML) merupakan penerus dan juga versi HTML pada saat ini. Keperluan untuk membuat versi HTML yang lebih sempit dianggap cukup penting 33 karena isi World Wide Web pada saat ini perlu disampaikan ke berbagai perangkat (seperti mobile phones) yang mempunyai sumber daya yang lebih sedikit daripada yang dimiliki oleh komputer tradisional. Sharma, Bhardwaj & Bhardwaj (2012) dalam jurnal yang berjudul “Differences between HTML and HTML 5” menjelaskan bahwa Tim Berners-Lee dari World Wide Web Consortium (W3C) menciptakan HTML yang merupakan markup language untuk web pages. Seiring dengan perkembangan HTML maka muncullah HTML5 yang merupakan revisi kelima dari HTML sebelumnya. HTML5 memiliki beberapa keunggulan, di mana HTML5 dapat mengurangi ketergantungan pada external plugins (seperti Flash). Selain itu terdapat fitur canvas untuk 2D drawing, audio dan video untuk media playback. Pada HTML5 juga terdapat penanganan error yang lebih baik dan terdapat lebih banyak markup untuk menggantikan scripting. 2.12 Cascading Style Sheet (CSS) Menurut Meloni (2012), Cascading Style Sheet (CSS) merupakan merupakan teknologi yang ada dibelakang Style Sheet, CSS merupakan bahasa yang didefinisikan untuk mengkonstruksi gaya seperti huruf, warna dan posisi, dimana dapat digunakan untuk mendeskripsikan bagaimana informasi pada suatu halaman web dibentuk dan ditampilkan. CSS dapat disimpan langsung dalam halaman HTML atau dalam file yang terpisah. Selain itu style sheet mengandung aturan gaya yang menerapkan gaya ke elemen pada tipe yang diberikan. Ketika menggunakan CSS eksternal maka aturan style sheet ditempatkan pada dokumen style sheet eksternal dengan nama akhiran “.css”. 34 2.13 JavaScript Menurut Meloni (2012), JavaScript dibangun oleh NetScape Communication Corporation, di mana merupakan bahasa web scripting pertama yang didukung oleh browser dan sejauh ini juga merupakan bahasa web scripting yang terpopuler. Menurut Meloni (2012), JavaScript dapat dimasukan ke dalam dokumen HTML. JavaScript dapat melakukan beberapa hal seperti : • Menampilkan pesan ke pengguna sebagai bagian dari suatu halaman web, dalam status line browser atau dalam alert boxes. • Melakukan pengecekan isi pada suatu form dan juga membuat kalkulasi, seperti pada form pesanan dapat secara otomatis muncul jumlah total ketika anda memasukan jumlah barang. • Animasi gambar atau membuat gambar yang berubah ketika memindahkan mouse melewati gambar tersebut. • Membuat iklan banner yang berinteraksi dengan pengguna, daripada tampilan grafik yang sederhana. • Mendeteksi browser atau fitur yang digunakan dan menunjukkan fungsi tingkat lanjut hanya pada browsers yang mendukung JavaScript. • Mendeteksi plug-ins yang di-install dan menotifikasi ke pengguna jika plug-in diperlukan. • Memodifikasi seluruh atau sebagian halaman web tanpa perlu me-reload halaman web. • Menampilkan atau berinterkasi dengan data yang didapatkan dari remote server. 2.14 JavaScript Object Notation (JSON) 35 JavaScript Object Notation (JSON) merupakan format pertukaran data yang ringan, mudah dibaca dan ditulis serta mudah diterjemahkan dan dihasilkan oleh komputer. JSON dibuat berdasarkan bahasa pemrograman JavaScript, Standar ECMA-262 Edisi ke 3 – Desember 1999. JSON tidak bergantung pada bahasa pemrograman apapun karena menggunakan gaya bahasa yang umum seperti C, C++, C#, JavaScript, Perl, Phyton dan lain-lain. (http://www.json.org/json-id.html) JSON terbuat dari dua struktur, yaitu : 1. Kumpulan pasangan nama/nilai, yang pada bahasa pemograman bahasa lain mirip seperti objek (object), rekaman (record), struktur (struct), kamus (dictionary), tabel hash (hash table), daftar berkunci (keyed list), atau associative array. 2. Daftar nilai terurutkan (an ordered list of values), yang pada bahasa pemograman lain mirip seperti larik (array), vektor (vector), daftar (list), atau urutan (sequence). JSON menggunakan bentuk sebagai berikut : • Objek merupakan sepasang nama/nilai yang tidak terurutkan. Gambar 2.9 Objek pada JSON 36 • Ar ray merupakan kumpulan nilai yang terurutkan. Gambar 2.10 Array pada JSON • Nilai dapat berupa salah string, angka, true, false, null,objek, atau juga dapat berupa sebuah larik. Gambar 2.11 Nilai pada JSON • String terdiri dari kumpulan nol atau lebih karakter Unicode dimana menggunakan backslash (\) escape untuk membentuk karakter khusus. 37 Gambar 2.12 String pada JSON • Angka yang ada di JSON mirp dengan angka yang di C dan Java akan tetapi tidak angka yang pada JSON tidak memiliki format oktal dan heksadesimal. (http://www.json.org/json-id.html) Gambar 2.13 Angka pada JSON 2.15 jQuery JQuery merupakan library JavaScript yang singkat dan cepat yang menyederhanakan HTML document traversing, event handling, animating dan Ajax interactions untuk pengembangan web yang cepat. JQuery didesain untuk mengubah cara dalam menulis JavaScript. (http://jquery.com) 2.16 PHP Hypertext Preprocessor (PHP) PHP Hypertext Preprocessor (PHP) adalah bahasa script bagian server yang didesain secara spesifik untuk suatu web. Dengan adanya halaman HTML maka dapat menanamkan kode PHP yang akan dieksekusi setiap halaman jika dikunjungin. Kode PHP dapat diinterpretasikan oleh web server ke dalam bentuk HTML atau bentuk keluaran yang lain yang dapat dilihat oleh pengunjung (Welling & Thomson, 2009). 38 PHP disusun oleh Ramus Lerdorf dan kemudian diadopsi oleh orang yang berbakat lainnya dan juga melewati 4 kali perubahan besar dalam penulisan untuk menjadi lebih luas dan lebih matang seperti yang kita lihat saat ini. Pada tahun 2007 PHP diinstall lebih dari 21 juta lebih pada domain worldwide dan seterusnya penggunaan PHP juga berkembang dengan sangat pesat (Welling et al., 2009). PHP merupakan project open source yaitu dapat dengan mengakses kode PHP, menggunakan kode PHP, mengubah kode PHP dan mendistribusi ulang kode PHP tanpa dikenakan biaya (Welling et al., 2009). PHP sebenarnya merupakan singkatan dari Personal Home Page, tetapi kepanjangan PHP berubah sesuai dengan konvesi penamaan rekursif GNU (GNU = GNU’s Not Unix), sehingga sekarang kepanjangan PHP yaitu PHP Hypertext Preprocessor (Welling et al., 2009). 2.17 CodeIgniter Menurut Griffiths (2010), CodeIgniter merupakan framework open source aplikasi web untuk bahasa PHP. CodeIgniter menggunakan Model View Controller (MVC) sebagai pola desain, di mana merupakan cara untuk mengorganisasi aplikasi ke dalam tiga bagian, yaitu : 1. Models, yaitu database abstraction layer. 2. Views, yaitu the front end template files. 3. Controller, yaitu businees logic yang ada pada aplikasi. CodeIgniter juga ekstensif dalam menggunakan singleton design pattern, dimana merupakan cara untuk meng-load class jika class-nya ingin dipanggil 39 dalam beberapa kali. Ini sangat berguna dalam melakukan koneksi database jika hanya ingin satu koneksi setiap class digunakan. CodeIgniter juga sudah mengimplementasikan Active Record Patern, dimana membuat penulisan query SQL yang kompleks menjadi mudah dan membuat aplikasi menjadi lebih mudah dibaca. Active Record juga mempermudah dalam penukaran driver database. CodeIgniter menyediakan banyak libraries yang sangat berguna dan juga kumpulan fungsi-fungsi yang dapat membantu dalam membangun aplikasi sehingga dapat lebih fokus dalam bagian kecil pada aplikasi daripada harus menjelajahi seluruh bagian proyek seperti database query dan parsing data. 2.18 Asynchronous JavaScript & XML Berdasarkan penelitian Serrano & Aroztegi (2007) dalam jurnal yang “Ajax Frameworks in Interactive Web Apps” mengemukakan bahwa Ajax yang merupakan singkatan dari Asynchronous Javascript and XML digunakan oleh pengembang untuk membuat apliksi yang lebih dinamis. Pada Ajax mengandung bahasa script untuk mengatur DOM yang memperbolehkan aplikasi web untuk mengakses isi HTML, struktur HTML dan Style HTML secara dinamis. Pada Ajax juga mengandung “XMLHttpRequest” yang mendukung komunikasi antara browser dan server tanpa memanggil ulang seluruh bagian halaman. 40 2.19 Web Services & Representational State Transfer (REST) 2.19.1 Web Services Menurut Deitel & Deitel (2012), web service merupakan sebuah komponen software yang disimpan pada suatu komputer dan dapat diakses oleh aplikasi atau komponen software yang lain pada komputer lain melalui jaringan. 2.19.2 Representational State Transfer (REST) Menurut Deitel et al., (2012), Representational State Transfer (REST) mengacu ke gaya arsitektur untuk mengimplementasi web services. Web services seperti ini sering disebut dengan RESTful web services. RESTful web services di implementasi dengan menggunakan standard web. Setiap method pada RESTful web services diindetifikasi oleh URL yang unik. Dengan demikian ketika server menerima sebuah request maka server akan segera mengetahui operasi yang akan digunakan. Setiap operasi khusus mungkin akan tersimpan pada cached locally oleh browser ketika service dipanggil dengan GET request sehingga request berikutnya dengan operasi yang sama dipercepat dengan loading dari hasil browser’s chache. Restful web services merupakan altenatif selain dari SOAP web service. Restful web services tidak sama dengan SOAP web service, setiap request dan respon dari Restful web services tidak dibungkus dalam dalam amplop, dan juga tidak hanya mengembalikan data hanya dalam bentuk XML akan tetapi bisa dalam bentuk JSON, HTML , plain text and media files. 41 Hamad, Saad & Abed (2010) dalam jurnal berjudul “Performance Evaluation of RESTful Web Services” mengemukakan bahwa RESTful Web Services merupakan suatu arsitektur aplikasi perangkat lunak berbasis client-server yang lebih baik dibandingkan pendahulunya, Simple Object Access Protocol (SOAP). Hal ini dikarenakan SOAP memiliki kekurangan, seperti encoding and decoding of verbose XML-based SOAP yang sangat memakan sumber daya, sehingga mengakibatkan web service participants seperti mobile clients memiliki dampak performa yang buruk dan lambat. Selain itu, hal ini juga tidak lepas dari kecepatan prosesor yang dimiliki, lamanya hidup baterai, dan lambatnya koneksi oleh suatu mobile devices yang tidak mendukung. Hal itu dibuktikan dari hasil percobaan yang dilakukan dengan membandingkan antara SOAP dan RESTful Web Services, seperti yang terlihat pada tabel berikut : Tabel 2.3 Tabel Uji Coba SOAP dan RESTful Web Services (Sumber : Performance Evaluation of RESTful Web Services) Less message size dan response time yang lebih kecil dari SOAP membuktikan bahwa RESTful menggunakan power yang rendah dan layanan web service yang cepat, sehingga RESTful lebih cocok diterapkan dalam mobile devices saat ini. 42 2.20 MySQL Menurut Welling et al. (2009), MySQL adalah Relational Database Management System (RDBMS) yang cepat dan kokoh. Sebuah database memungkinkan untuk menyimpan, mencari, mengurutkan dan mendapatkan data secara efisien. Server MySQL mengontrol akses data untuk memastikan beberapa pengguna dapat berkerja dengan MySQL dengan menyediakan akses yang cepat dan memastikan hanya pengguna yang mempunyai hak yang dapat mengakses data. Oleh karena itu, server MySQL banyak digunakan dan multithreading. MySQL menggunakan Structured Query Language (SQL) yang merupakan standar dari bahasa Query. 2.21 Sistem Informasi Geografi (SIG) Menurut Heywood, Cornelius & Carver (2011), Goodchild menawarkan ringkasan kunci konsep yang membantu dalam mengdefinisikan mengenai SIG: • Informasi geografis merupakan informasi mengenai tempat yang ada di permukaan bumi. • Teknologi informasi geografis meliputi Global Positioning System (GPS), remote sensing dan SIG. • SIG merupakan gabungan sistem komputer dan software • SIG memiliki banyak bentuk yang berbeda. • SIG digunakan pada aplikasi dengan berbagai variasi. • Sains informasi geografis merupakan sains dibalik teknologi SIG. 43 2.22 IBM Worklight IBM Worklight merupakan produk yang berasal dari bagian keluarga IBM Mobile Foundation, di mana menyediakan unsur-unsur penting yang dibutuhkan untuk pengembangan, penyebaran dan manajemen mobile yang lengkap dalam suatu bisnis. IBM Worklight menyediakan platform aplikasi yang terbuka, komprehensif dan canggih untuk smartphone dan tablet, membantu organisasi untuk mengembangkan, menghubungkan, menjalankan serta mengelola HTML5, aplikasi hybrid dan native secara efisien. IBM Worklight juga memungkinkan penciptaan cross-platform application tanpa menggunakan kode terjemahan dan bahasa scripting tertentu, serta sekaligus dapat menghemat waktu, biaya dan kompleksitas pengembangan. Selain itu dapat memungkinkan pengguna untuk memiliki pengalaman yang lebih baik di berbagai perangkat mobile. (http://www.ibm.com/software/mobile-solutions/worklight/)