BAB 2 TINJAUAN PUSTAKA 2.1 Landasan Teori 2.1.1 Android Menurut Lee (2012, pp. 2), Android merupakan suatu sistem operasi mobile yang didasarkan pada versi modifikasi dari Linux. Awal mulanya, Android diciptakan oleh startup dengan nama yang sama yaitu Android, Inc. Pada tahun 2005, sebagai bagian dari strategi untuk memasuki dunia mobile, Google membeli Android dan mengambil alih semua pekerjaan yang sedang di-develop (termasuk development team). Android merupakan sebuah sistem operasi yang berbasis Linux untuk perangkat portable seperti smartphone dan komputer tablet. Android menyediakan platform terbuka (open source) bagi programmer untuk mengembangkan aplikasi sendiri pada berbagai perangkat dengan sistem Android. Pada awal Maret 2009 Google berhasil merilis sistem operasi Android hasil pengembangan yang pertama yaitu Android versi 1.1 pada perangkat smartphone. Pada tahun yang sama, Google kembali merilis sistem operasi versi 1.5 yang dikenal dengan nama Cupcake. Cupcake adalah nama pertama yang digunakan untuk versi sistem operasi Android. Google merilis setiap sistem operasi Android bersamaan dengan perangkat lunak pengembangnya yang disebut Android Software Development Kit (Android SDK). Android memiliki kelebihan dan kelemahan. Kelebihan Android antara lain : 11 12 1. User Friendly. 2. Notifications. 3. Tampilan. 4. Open Source. 5. Aplikasi. 6. Dan lain-lainnya. Setiap hal pasti memiliki kelebihan dan kekurangan. Kelemahan Android antara lain : 1. Update. 2. Batterai cepat habis. 3. Lemot atau Lag. 2.1.2 Data Menurut Hoffer (2007, pp. 6) data mengacu pada fakta mengenai objek maupun kejadian yang dapat direkam dan disimpan ke dalam media komputer. Data sebagai tempat penyimpanan representasi objek dan penting dalam lingkungan pengguna. Hoffer (2007, pp. 604) lebih spesifik mengatakan bahwa,”Informasi adalah data yang telah diolah sedemikian rupa untuk meningkatkan pengetahuan dari orang yang menggunakan data.” Jenis-jenis data dapat dibagi berdasarkan sifat, sumber, cara memperoleh dan waktu pengumpulan. Menurut sifat, jenis-jenis data antara lain : 1. Data Kualitatif. Data kualitatif adalah data yang tidak berbentuk angka. Misalnya kuesioner pertanyaan tentang suasana kerja, kualitas pelayanan sebuah rumah sakit atau gaya kepemimpinan, dan lain-lain. 2. Data Kuantitatif. Data kuantitatif adalah data yang berbentuk angka. Misalnya harga saham, besarnya pendapatan, dll. 13 Lalu jenis-jenis data menurut sumber, antara lain: 1. Data Internal. Data internal adalah data yang berasal dari dalam suatu organisasi yang menggambarkan keadaan organisasi tersebut. Contohnya suatu perusahaan, jumlah karyawannya, jumlah modalnya, atau jumlah produksinya, dan lain-lain. 2. Data Eksternal. Data eksternal adalah data yang berasal dari luar suatu organisasi yang dapat menggambarkan faktor-faktor yang mungkin mempengaruhi hasil kerja suatu organisasi. Misalnya daya beli masyarakat mempengaruhi hasil penjualan suatu perusahaan. 2.1.3 Database Menurut Hoffer (2007, pp. 6) data mengacu pada fakta mengenai objek maupun kejadian yang dapat direkam dan disimpan ke dalam media komputer. Data sebagai tempat penyimpanan representasi objek dan penting dalam lingkungan pengguna. Hoffer (2007, pp. 604) lebih spesifik mengatakan bahwa,”Informasi adalah data yang telah diolah sedemikian rupa untuk meningkatkan pengetahuan dari orang yang menggunakan data. Database atau basis data adalah kumpulan data yang disimpan secara sistematis di dalam komputer dan dapat diolah atau dimanipulasi menggunakan perangkat lunak (program aplikasi) untuk menghasilkan informasi. Pendefinisian basis data meliputi spesifikasi berupa tipe data, struktur dan juga batasan-batasan data yang akan disimpan. Database atau basis data merupakan aspek yang sangat penting dalam sistem informasi dimana database merupakan gudang penyimpanan data yang akan diolah lebih lanjut. Database menjadi penting karena dapat menghidari duplikasi data, hubungan antar data yang tidak jelas, organisasi data dan juga update yang rumit. 14 2.1.4 DBMS Menurut Jeffrey A. (2007, pp. 8), Database Management System (DBMS) adalah sebuah sistem software yang digunakan untuk membuat, mengelola, dan menyediakan akses terkontrol kepada pengguna database. DBMS menyediakan suatu metode sistematis seperti membuat, memperbaharui, menyimpan, dan mengambil data pada database. 2.1.5 Eclipse Menurut Shelly dan Vermaat (2011, pp. 670), Eclipse adalah suatu open source, sarana pengembangan lanjutan yang bekerja dengan berbagai program termasuk Java dan C++. 2.1.6 Genymotion Menurut website www.genymotion.com, genymotion adalah sebuah emulator Android yang terdiri dari satu set sensor dan fitur-fitur yang lengkap untuk berinteraksi dengan lingkungan virtual Android. Dengan Genymotion, pengguna dapat menguji aplikasi Android pada berbagai perangkat virtual untuk keperluan pengembangan, pengujian, dan demonstrasi. Genymotion bekerja dengan cepat, mudah dalam instalasi, sensor widget dan fitur interaksi yang user-friendly. Emulator ini dapat dijalankan pada sistem operasi Windows, Mac OS X, Linux Ubuntu, dan Linux Debian. 2.1.7 HTML (Hyper Text Markup Language) Menurut Connolly dan Begg (2015, pp. 1055), HyperText Markup Language (HTML) merupakan suatu document formatting language yang digunakan untuk merancang tampilan Web, menandai atau memberikan tanda pada dokumen sehingga dapat dipublikasikan pada Web. 15 2.1.8 iBATIS Menurut Clinton (2007, pp. 4), Structured Query Language (SQL) telah lebih dari 35 tahun sejak Edgar F. Codd pertama menyarankan gagasan bahwa data dapat dinormalisasi ke set tabel terkait. Sejak itu, perusahaan IT telah menginvestasikan miliaran dolar ke dalam sistem manajemen database relasional (RDBMSs). iBATIS didasarkan pada gagasan bahwa ada nilai dalam database relasional dan SQL, dan itu adalah ide yang baik untuk merangkul investasi luas industri di SQL. iBATIS adalah salah satu hybrid solution seperti untuk persistence layer dari aplikasi. Seiring waktu, berbagai metode telah dikembangkan untuk memungkinkan aplikasi mengeksekusi SQL terhadap database. iBATIS adalah solusi unik yang meminjam konsep dari beberapa pendekatan lain. Structured Query Language (SQL) telah lebih dari 35 tahun sejak Edgar F. Codd(2007, pp. 4) pertama menyarankan gagasan bahwa data dapat dinormalisasi ke set tabel terkait. Sejak itu, perusahaan IT telah menginvestasikan miliaran dolar ke dalam sistem manajemen database relasional (RDBMSs). iBATIS didasarkan pada gagasan bahwa ada nilai dalam database relasional dan SQL, dan itu adalah ide yang baik untuk merangkul investasi luas industri di SQL. 2.1.9 Internet Menurut Connolly dan Begg (2015, pp. 1048), Internet adalah kumpulan dari jaringan komputer yang saling berhubungan di seluruh dunia. Internet dibuat untuk kepentingan komersial, edukasi, organisasi pemerintah dan Internet Service Providers (ISP). Fitur-fitur yang ditawarkan oleh Internet meliputi electronic mail (email), conferencing, collaboration 16 services, kemampuan untuk mengakses komputer dari jarak jauh, serta mengirim dan menerima dokumen. Kemunculan Internet dimulai pada tahun 1960-an akhir dan tahun 1970-an awal ketika US Department of Defense melakukan percobaan yang dinamakan APRANET (Advanced Research Projects Agency NETwork). APRANET menyelidiki bagaimana cara untuk membangun jaringan yang dapat menahan partial outages (seperti serangan bom nuklir). Pada tahun 1982, TCP/IP (Transmission Control Protocol/Internet Protocol) digunakan sebagai sarana komunikasi dasar untuk APRANET. TCP bertanggung jawab untuk memastikan pengiriman pesan dari satu komputer ke komputer lainnya benar. IP mengatur pengiriman dan penerimaan paket-paket data antar mesin. Istilah TCP/IP terkadang mengacu pada seluruh rangkaian Internet protokol yang biasanya dijalankan pada TCP/IP, seperti FTP (File Transfer Protocol), SMTP (Simple Mail Transfer Protocol), Telnet (Telecommunication Network), DNS (Domain Name Server), POP (Post Office Protocol), dan sebagainya. 2.1.10 Java Java merupakan Bahasa pemrograman yang diciptakan oleh James Gosling pada tahun 1966 dan mengklaim dirinya yang mengimplementasikan konsep PBO. Sampai saat ini pengembangan Java berada di bawah Sun Micosystems walaupun akhir-akhir ini Java mulai di open-source kan. Java dapat diimplementasikan pada berbagai aspek kehidupan mulai dari komputer mainframe, PC, telepon genggam/HP, PDA, smart card sampai dengan perlengkapan rumah tangga seperti mesin cuci dan TiVo. Java menjanjikan sifat platform yang independent yang berarti program cukup ditulis dan decompile satu kali maka akan dapat dijalankan di mesin lain tapan memerlukan perubahan code. 17 Sampai saat ini Java terbagi menjadi empat kategori yaitu Java 2 Platform Standard Edition (J2SE) untuk aplikasi desktop, Java 2 Platform Enterprise Edition (J2EE) untuk aplikasi server kelas enterprise yang biasanya berskala besar, Java 2 Platform Micro Edition (J2ME) untuk aplikasi pada perangkat memiliki tingkat komputasi tidak setinggi komputer, misalnya telepon genggam, PDA, dan TiVo. Dan yang terakhir adalah Java Card yang digunakan untuk pemrograman smart card dengan menggunakan Bahasa pemrograman berbasis Java. Gambar 2.1 Overview Teknologi Java Pada Gambar 2.1 menunjukkan perkembangan teknologi yang dibuat dengan menggunakan basis dari Bahasa pemograman Java. Java Development Toolkit (JDK) terdiri dari satu set program yang terpisah, masing-masing dipanggil dari baris perintah, untuk mengembangkan 18 dan menguji program Java. Selain JDK, programmer dapat menggunakan Java development tool seperti NetBeans, Eclipse, dan TextPad. Java Development tool adalah sebuah software yang menyediakan integrated development environment (IDE) untuk mengembangkan program Java. Java Virtual Machine (JVM) adalah bagian dari JDK dan dasar dari Java platform. Mesin virtual (VM) adalah sebuah aplikasi perangkat lunak yang mensimulasikan komputer namun menyembunyikan sistem operasi yang mendasari dan perangkat keras dari program yang berinteraksi dengannya. Jika VM yang sama diterapkan pada banyak platform komputer, aplikasi yang dijalankan dapat digunakan pada semua platform tersebut. JVM adalah salah satu yang paling banyak digunakan mesin virtual. Microsoft’s .NET menggunakan arsitektur virtual-mesin yang sama. Tentu saja Java memiliki kelebihan dan kekurangan. Kelebihan Java antara lain : 1. Multi-platform. Java dapat dijalankan dalam beberapa platform komputer dan sistem operasi yang berbeda 2. OOP atau Object Oriented Programming. Java memiliki library yang lengkap. Library disini adalah sebuah kumpulan dari program yang disertakan dalam Java. Hal ini akan memudahkan pemrograman. Kelengkapan library semakin beragam jika ditambah dengan karya komunitas Java. Setiap hal pasti memiliki kelebihan dan kekurangan. Begitu juga dengan Java. Kekurangan yang dimiliki oleh Java antara lain : 1. Multi-Platform. Beberapa hal harus disesuaikan jika dijalankan pada platform yang berbeda. Misalnya untuk J2SE dengan platform SWT-AWT bridge tidak dapat berfungsi pada Mac OS X. 2. Kemudahan aplikasi Java didekompilasi. 19 Dekompilasi adalah suatu proses membalikkan sebuah aplikasi menjadi kode sumbernya. Hal ini memungkinkan terjadi pada Java karena berupa byte code yang menyimpan bahasa tingkat tinggi. Hal ini terjadi pula pada platform .NET dari Microsoft sehingga program yang dihasilkan mudah dibajak kodenya karena sulit untuk disembunyikan. 3. Penggunaan memori yang cukup banyak. Penggunaan memori lebih besar daripada bahasa tingkat tinggi sebelum generasi Java. Namun hal ini memang sesuai dengan fitur beragam yang dimiliki oleh Java. Masalah memori ini juga tidak dialami oleh semua pengguna aplikasi Java. Bagi yang sudah menggunakan perangkat keras dengan teknologi terbaru tidak merasakan kelambatan dan konsumsi memori Java yang tinggi. Lain halnya dengan yang menggunakan teknologi lama atau komputer yang sudah berumur tua lebih dari empat tahun maka akan merasakan adanya kelambatan 2.1.11 Leasing Ada beberapa prosedur Mekanisme dalam leasing dalam melakukan perjanjian leasing terdapat prosedur dan mekanisme yang harus dijalankan, yaitu : 1. Lessee bebas memilih dan menentukan peralatan yang dibutuhkan, mengadakan penawaran harga dan menunjuk supplier peralatan yang dimaksudkan. 2. Setelah lessee mengisi formulir permohonan lease, maka dikirimkan kepada lessor disertai dokumen lengkap. 3. Lessor mengevaluasi kelayakan kredit dan memutuskan untuk memberikan fasilitas lease dengan syarat dan kondisi yang disetujui lessee (lama kontrak pembayaran sewa lease), setelah ini maka kontrak lease dapat ditandatangani. 20 4. Pada saat yang sama, lessee dapat menandatangani kontrak asuransi untuk peralatan yang dilease dengan perusahaan asuransi yang disetujui lessor, seperti yang tercantum dalam kontrak lease. Antara lessor dan perusahaan asuransi terjalin perjanjian kontrak utama. 5. Kontrak pembelian peralatan akan ditandatangani lessor dengan supplier peralatan tersebut. 6. Supplier dapat mengirimkan peralatan yang dilease ke lokasi lessee. Untuk mempertahankan dan memelihara kondisi peralatan tersebut, supplier akan menandatangani perjanjian purna jual. 7. Lessee menandatangani tanda terima peralatan dan menyerahkan kepada suppplier. 8. Supplier menyerahkan tanda terima (yang diterima dari lessee),bukti pemilikan dan pemindahan pemilikan kepada lessor. 9. Lessor membayar harga peralatan yang dilease kepada supplier. 10. Lessee membayar sewa lease secara periodik sesuai dengan jadwal pembayaran yang telah ditentukan dalam kontrak lease. Supplier (Manufacturer) Pembelian Barang Pembayaran Independent (Lessor) Angsuran Kontrak Leasing Independent (Lesse) Gambar 2.2 Mekanisme Transaksi Leasing 21 2.1.12 Object Oriented Programming Sebuah bahasa yang berorientasikan pada objek harus menyediakan dukungan berupa tiga fitur yaitu abstract data types, inheritance, dan dynamic binding of method calls to methods. 2.1.12.1 Abstract Data Types Abstract data types adalah sebuah tipe data yang memenuhi kondisi berikut : • Representasi, operasi, dan tipe objek yang didefinisikan dalam single syntactic unit. • Representasi dari tipe objek disembunyikan dari unit program yang menggunakan objek tersebut, sehingga operasi yang memungkinkan adalah operasi yang disediakan di dalam type’s definition. 2.1.12.2 Inheritance Pemrograman berorientasi objek memungkinkan programmer untuk mendapatkan kelas baru dari kelas yang ada. Ini disebut sebagai inheritance. Inheritance adalah fitur penting dan kuat di Java untuk penggunaan software. Inheritance menawarkan solusi untuk berbagai masalah modifikasi yang ditimbulkan oleh penggunaan kembali abstract data type dan masalah organisasi program. Abstract data type dalam bahasa berorientasi objek, mengikuti SIMULA67 yang biasa disebut sebagai class. Class instances disebut dengan objek. Programmer dapat menurunkan sebuah kelas baru dari kelas yang ada. Hal ini dikenal sebagai class inheritance. Kelas baru disebut subclass, child class atau extended class. Kelas yang ada disebut kelas superclass, parent class, atau base class. 22 Perbedaan antara parent class dan subclass adalah sebagai berikut: • Parent class dapat mendefinisikan beberapa variabel atau method untuk memiliki akses private, yang berarti kelas tersebut tidak akan terlihat dalam subclass. • Subclass dapat menambah variabel dan/atau method yang diwariskan dari parent class. • Subclass dapat memodifikasi perilaku dari satu atau lebih dari metode yang diwariskan. Metode modifikasi harus memiliki nama yang sama yang pada akhirnya disebut sebagai overridden method. 2.1.12.3 Dynamic Binding Pada C++, sebuah method didefinisikan dengan kata virtual untuk mengizinkan dynamic binding. Pada Java, semua pemanggilan method yang dinamis terikat kecuali yang dipanggil method telah didefinisikan sebagai final, dimana tidak bisa di-overridden dan semua binding adalah static. Static binding juga digunakan jika method adalah static atau private, keduanya tidak bisa melakukan overriding. 2.1.12.4 Support for Object-Oriented Programming in Java Desain Java yang mendukung pemrograman berorientasi objek mirip seperti C++, Java tidak mengijinkan parentless classes dan menggunakan dynamic binding yang didefinisikan dengan kata final. 2.1.13 Oracle Menurut Connolly dan Begg (2010, pp. 130-132), Oracle berdasarkan pada arsitektur client-server dimana Oracle server terdiri dari database dan instance (proses dan memori sistem pada server yang menyediakan hak akses ke dalam database). Suatu instance hanya dapat melakukan koneksi ke satu database. 23 Oracle database terdiri dari struktur logikal (seperti skema database) dan struktur fisikal (yang berisi file-file yang membentuk suatu Oracle database). Pada struktur logikal, Oracle mempertahankan tablespaces, skema, data blocks, dan extents/segments. Pada struktur fisikal, Oracle mempertahankan datafiles, redo log files, dan control files. Connolly dan Begg (2010, pp. 1218) menjelaskan bahwa Oracle Database 11g adalah suatu platform database yang komprehensif untuk data warehousing dan business intelligence yang mengkombinasikan skalabilitas dan performa industri terkemuka, analisis mendalam yang terintegrasi, kualitas data dan integrasi yang tertanam. Oracle Database 11g menyediakan fungsi untuk data warehouse dan data marts dengan fungsi partisi yang kuat, skalabilitas yang sudah terbukti, dan optimasi queryprocessing yang inovatif. 2.1.14 Server Menurut Shelly dan Vermaat (2011, pp. 25), Server merupakan komputer pusat yang mengatur akses ke hardware, software, dan sumber daya lainnya pada jaringan dan menyediakan tempat penyimpanan terpusat untuk program, data, dan informasi. Server dapat mendukung dua sampai ribuan komputer yang saling berhubungan di waktu yang bersamaan. 2.1.15 Smartphone Menurut Shelly dan Vermaat (2011, pp. 21), Smartphone merupakan telepon berbasis Internet yang biasanya menyediakan fitur manajemen informasi pribadi seperti kalendar, jadwal perencanaan, daftar alamat, kalkulator, dan notepad. Sebagai kemampuan tambahan dari telepon biasa, smartphone memberikan fitur untuk penggunanya mengirim dan menerima pesan e-mail dan hak akses ke Web. Beberapa smartphone dapat berkomunikasi dengan device lainnya atau komputer tanpa menggunakan 24 kabel. Selain itu, smart phone juga dapat digunakan sebagai media player dan kamera, dimana sesama pengguna smartphone dapat saling bertukar foto dan rekaman. 2.1.16 Software Development Lifecycle Menurut Kendall & Kendall (2006, pp. 10), Systems Development Life Cycle (SDLC) merupakan suatu pendekatan yang terdiri dari beberapa fase untuk menganalisa dan merancang sistem melalui penggunaan dari siklus yang spesifik dan aktivitas user. 2.1.17 Waterfall Models Menurut Pressman (2010, pp. 39), model waterfall atau yang biasanya disebut dengan classic life cycle merupakan suatu model yang bersifat sistematis, pendekatan secara bertahap dalam proses pengembangan software. Model ini dimulai dengan spesifikasi konsumen akan kebutuhan yang diinginkan, lalu dilanjutkan dengan planning, modeling, construction, dan deployment. Model waterfall merupakan model tertua untuk software engineering, dimana konsumen harus menjelaskan semua requirement secara rinci sebelum melanjutkan tahap berikutnya. Jika sudah memasuki tahap berikutnya, maka tidak bisa kembali ke tahap sebelumnya dan harus menunggu hingga tahap deployment selesai baru dapat kembali lagi ke tahap communication. Gambar 2.3 Ilustrasi Proses Waterfall (Sumber : Pressman, 2010, pp. 39) 25 Berikut ini lima fase dalam model waterfall, yaitu: 1. Communication Fase pertama akan mempertemukan kedua belah pihak antara software engineering dengan konsumen untuk membahas setiap kebutuhan yang dibutuhkan oleh konsumen. 2. Planning Setelah mendapatkan requirement yang rinci, fase selanjutnya melakukan perencanaan jadwal, pembuatan timeline, estimasi dari pembuatan software, dan pembagian tugas ke semua anggota tim. 3. Modeling Fase ini akan melakukan analisa berdasarkan hasil dari fase pertama dan kedua. Lalu merancang arsitektur dan tampilan dari sistem yang akan dibuat. 4. Construction Fase construction melakukan coding sesuai design dari tahap modeling. Setelah selesai coding, programmer melakukan testing software untuk menguji kelancaran dari setiap fitur atau fungsi dalam software. 5. Deployment Fase terakhir ini akan mengimplementasikan software yang sudah dites kepada pihak konsumen. Fase deployment juga menerima feedback dan support jika terdapat bug issue. 26 2.1.18 SQL Lite Menurut Kreibich J. A. (2010, pp. 15), SQLite adalah suatu database engine yang tidak memerlukan konfigurasi, berdiri sendiri, dan relatif dimana ditanamkan langsung ke dalam suatu aplikasi. Dalam istilah yang sederhana, SQLite merupakan sebuah paket perangkat lunak dengan public-domain yang menyediakan suatu relational database management system atau RDBMS. RDBMS digunakan untuk menyimpan catatan yang telah ditetapkan oleh pengguna dalam tabel yang besar. Sebagai tambahan untuk manajemen dan penyimpanan data, database engine dapat mengolah perintah query yang kompleks dan menggabungkan data dari beberapa tabel untuk menghasilkan laporan dan rangkuman data. 2.1.19 Struts 1 Struts merupakan development framework yang berada di bawah Apache Software Foundation, Struts menggunakan pattern MVC dengan memanfaatkan Java bean (Model), Servlet (Controller) dan JSP (View). Struts pertama kali ditemukan oleh Craig R. McClanahan dan kemudian disumbangkan untuk proyek Jakarta dari Apache Software Foundation (ASF) pada Mei 2000. Pada bulan Juni 2001, Struts 1.0 dirilis. Sejak itu, banyak orang telah memberikan kontribusi baik source code dan dokumentasi untuk proyek dan Struts telah menjadi standar de facto untuk membangun aplikasi Web di Java dan telah memeluk seluruh komunitas Java. Struts 1.1 dirilis pada Juni 2003 dan termasuk sejumlah besar fungsi baru, termasuk penambahan Tiles, Validator, declarative exception handling, dan banyak lagi. Kemudian, pada bulan Desember 2004, Struts 1.2 dirilis dengan beberapa update kecil untuk framework. Struts 1.3, dirilis pada tahun 2006, memperkenalkan perubahan terbesar untuk framework sejak rilis 1.1: pindah ke chain of responsibility (COR)-based request processing engine. 27 Rilis terbaru dari Struts pada saat penulisan ini adalah 1.3.5 dan itu dibahas dalam buku Struts: The Complete Reference 2nd Edition. Struts terus berkembang. Struts sekarang terbagi atas dua versi utama yang berbeda dari Struts yaitu Struts 1 dan Struts 2. Struts 1 bersifat matang, diadopsi secara luas, didokumentasikan, dan didukung versi Struts. Struts 2 adalah versi baru dari Struts berdasarkan penggabungan Struts dan WebWork, open source Java Web application framework populer lain. Struts adalah framework utama untuk membangun aplikasi Web berbasis Java. Menggunakan pola desain Model-View-Controller (MVC), Struts memecahkan banyak masalah yang terkait dengan pengembangan kinerja tinggi, aplikasi Web berorientasi bisnis yang menggunakan servlets Java dan JSP. Pada awalnya, penting untuk memahami bahwa Struts lebih dari sekedar kenyamanan pemrograman. Struts dasarnya telah mengubah bentuk cara pengembang Web berpikir dan struktur aplikasi Web. Ini adalah teknologi dimana pengembang Web yang sangat efisien. 2.1.20 Teknologi Informasi Menurut Whitten dan Bentley (2007, pp. 6), Information Technology merupakan suatu istilah pada zaman sekarang yang mendeskripsikan kombinasi dari teknologi komputer (hardware dan software) dengan teknologi telekomunikasi (data, gambar, dan jaringan suara). 2.1.21 Unified Modelling Language (UML) Menurut Whitten dan Bentley (2007, pp. 371), Unified Modeling Language (UML) merupakan sekumpulan aturan atau konsep dalam melakukan modeling yang digunakan untuk menetapkan menggambarkan suatu sistem software yang berhubungan dengan objek. atau 28 2.1.21.1 Class Diagram Menurut Whitten dan Bentley (2007, pp. 400), class diagram merupakan suatu penggambaran grafis dari struktur objek statis suatu sistem, dimana berfungsi menunjukkan objek class yang menyusun sistem dan hubungan antar setiap objek class. <<Nama Kelas>> - Atribut + Operasi() Gambar 2.4 Class dan Strukturnya Ada tiga struktur dalam merancang suatu class dalam class diagram, yaitu : 1. Nama Kelas Nama kelas berfungsi untuk melakukan penamaan dan membedakan antara kelas yang satu dengan kelas lainnya. 2. Atribut Kelas Atribut kelas berisikan data-data berupa variabel yang menjelaskan nilai suatu objek dari kelas tersebut. 3. Operasi Kelas Operasi kelas merupakan metode-metode yang akan dijalankan oleh class tersebut dalam memberikan respon kepada class lainnya. 2.1.21.1.1 Visibility Menurut Whitten dan Bentley (2007, pp. 650), visibility merupakan hak akses yang dimiliki oleh setiap objek. Visibility adalah tingkatan bagi objek diluar dari class tersebut untuk mengakses suatu atribut atau metode. Visibility dibagi menjadi tiga jenis, yaitu: 29 1. Public Public dinotasikan dalam bentuk “+”. Public menunjukkan bahwa suatu kelas dapat diakses atau dipanggil oleh semua kelas lainnya. 2. Protected Protected dinotasikan dalam bentuk “#”. Protected menunjukkan bahwa suatu kelas hanya dapat diakses atau dipanggil oleh kelas yang bersangkutan dan kelas turunannya. 3. Private Private dinotasikan dalam bentuk “-“. Private menunjukkan bahwa suatu kelas hanya dapat dipanggil oleh kelas lainnya yang diberikan akses untuk memanggil kelas tersebut. 2.1.21.1.2 Association Menurut Whitten dan Bentley (2007, pp. 377), Association menjelaskan suatu hubungan atau koneksi antar class yang digambarkan dengan sebuah garis. Ada dua jenis hubungan dalam Association, yaitu : 1. Undirectional Undirectional menunjukkan hubungan antar class yang terjadi hanya dalam satu arah, dimana class user akan memanggil class password, namun tidak sebaliknya. Undirectional digambarkan dengan garis yang mempunyai anak panah. Gambar 2.5 Contoh Undirectional Association (Sumber : Whitten dan Bentley, pp. 2007:651) 30 2. Bidirectional Bidirectional menunjukkan hubungan antar class yang terjadi secara dua arah, dimana semua class dapat saling mengirimkan dan menerima pesan ke dan dari class lain yang saling terhubung. Bidirectional digambarkan dengan garis yang tidak memiliki anak panah. Gambar 2.6 Contoh Bidirectional Association (Sumber : Whitten dan Bentley, pp. 2007:377) 2.1.21.1.3 Multiplicity Menurut Whitten dan Bentley (2007:378), multiplicity merupakan jumlah kejadian minimum dan maksimum dari suatu objek pada class tersebut untuk satu kejadian dari objek yang berhubungan dengan class itu. Berikut ini tabel yang menunjukkan penggunaan simbol multiplicity beserta penjelasannya dalam class diagram: Tabel 2.1 Tabel Simbol Multiplicity Multiplicity Keterangan 1 atau Tepat satu tidak ada (kosong) 0…1 Nol atau satu 0…* atau Nol atau lebih dari satu * 1…* Satu atau lebih dari satu 31 7…9 Jumlah spesifik 2.1.21.1.4 Aggregation Menurut Whitten dan Bentley (2007, pp. 378), Aggregation merupakan hubungan suatu class dengan class lainnya, dimana class induk (lebih besar) memiliki satu atau lebih class anak (lebih kecil), dan class anak merupakan bagian dari class induk. Aggregation digambarkan dengan symbol diamond yang kosong pada salah satu ujungnya. Berikut merupakan contoh gambar Agregation: Gambar 2.7 Contoh Aggregation (Sumber: Whitten dan Bentley, 2007, pp. 379) 2.1.21.1.5 Generalization Menurut Whitten dan Bentley (2007:380), Generalization atau yang dapat disebut dengan inheritance merupakan hubungan suatu class utama dengan class-class turunannya. Atribut yang ada pada class utama akan diturunkan dan dapat digunakan oleh class turunan dari class utama. Contoh dari Generalization: 32 Gambar 2.8 Contoh Generalization (Sumber: Whitten dan Bentley, 2007, pp. 381) 2.1.21.2 Use Case Diagram Menurut Whitten dan Bentley (2007:246), Use Case diagram merupakan diagram yang menggambarkan hubungan antara user, sistem, dan pihak eksternal (diluar dari sistem tersebut). Use Case diagram menggambarkan aksi yang dilakukan oleh user terhadap suatu sistem, bagaimana cara user berinteraksi dengan sistem tersebut, dan respon yang diterima user dari sistem. Contoh dari Use Case diagram. Gambar 2.9 Contoh Use Case Diagram (Sumber : Whitten dan Bentley, 2007, pp. 246) 33 Berikut merupakan notasi-notasi yang digunakan dalam Use Case diagram, antara lain: • Use Case Use Case menunjukkan goal atau tujuan dari sistem, dimana menjelaskan tahapan dari aktivitas yang dilakukan oleh actor untuk mencapai tujuan tersebut. Use Case mendeskripsikan fungsi sistem dari sudut pandang actor eksternal dengan cara dan terminologi yang dapat mudah dimengerti. Gambar 2.10 Use Case (Sumber: Whitten dan Bentley, 2007, pp. 246) • Actor Use Case dipicu oleh pengguna luar yang disebut dengan actor. Actor adalah semua pihak yang melakukan interaksi dengan sistem baik dalam memberikan dan menerima pesan untuk dapat bertukar informasi. Actor tidak harus seorang manusia, namun dapat berupa kumpulan beberapa orang dalam suatu organisasi, sistem informasi lain, perangkat eksternal, dan lainnya. Gambar 2.11 Actor (Sumber: Whitten dan Bentley, 2007, pp. 247) 34 Actor dibagi menjadi 4 jenis, yaitu: 1. Primary Business Actor Primary Business Actor adalah actor yang mendapatkan keuntungan dari Use Case dengan menerima suatu nilai yang terukur dan terobservasi. Contohnya, dalam sistem pemberian gaji, seorang karyawan tidak melakukan suatu aksi pada sistem namun menerima suatu nilai dari sistem. 2. Primary System Actor Primary System Actor adalah actor yang secara langsung berinteraksi dengan sistem untuk memicu suatu aksi pada sistem. Contohnya adalah seorang kasir memindai barang yang dibeli oleh pelanggan atau teller bank yang melakukan pemrosesan transaksi perbankan. 3. External Server Actor External Server Actor merupakan actor yang menerima respon permintaan dari Use Case. Contohnya sebuah biro kredit yang menotorisasi pembayaran dari kartu kredit. 4. External Receiver Actor External Receiver Actor berbeda dengan primary actor tetapi mampu mendapatkan keuntungan dari Use Case dengan menerima suatu nilai terukur dan terobservasi. Contohnya sebuah gudang menerima pesanan pengepakan. • Boundary Boundary adalah suatu persegi panjang yang menggambarkan ruang lingkup dari sistem. Contoh gambar Boundary dalam Use Case diagram. 35 Gambar 2.12 Boundary 2.1.21.2.1 Association Menurut Whitten dan Bentley (2007:248), association merupakan interaksi antara seorang actor dengan sebuah use case. Association dengan tanda panah (1) yang menyentuh use case menunjukkan bahwa actor tersebut melakukan use case tersebut, sedangkan association tanpa panah (2) menunjukkan bahwa interaksi use case ke actor yang menerima hasil dari use case tersebut. Contoh association. Gambar 2.13 Contoh Association (Sumber : Whitten dan Bentley, 2007, pp. 248) 36 2.1.21.2.2 Extends Extends merupakan pemisahan dari sebuah Use Case yang kompleks untuk melakukan menyederhanaan. Berikut adalah contoh dari hubungan extends. Gambar 2.14 Contoh Extends (Sumber : Whitten dan Bentley, 2007, pp. 249) 2.1.21.2.3 Uses atau Includes Includes merupakan hubungan antara Abstact Use Case dengan Use Case yang menggunakan Abstract tersebut. Abstact Use Case digunakan ketika ada dua atau lebih Use Case yang menjalankan fungsi yang mirip untuk memisahkan beberapa Use Case tersebut. 37 Gambar 2.15 Contoh Uses atau Includes (Sumber : Whitten dan Bentley, 2007, pp. 249) 2.1.21.2.4 Depends On Depends On merupakan hubungan antara suatu Use Case yang bergantung pada Use Case lain, sehingga suatu Use Case tidak adapat dijalankan jika Use Case sebelumnya belum dijalankan. Gambar 2.16 Contoh Depends On (Sumber : Whitten dan Bentley, 2007, pp. 250) 38 2.1.21.2.5 Inheritance Inheritance merupakan hubungan pada Use Case dimana terdapat beberapa actor yang melakukan Use Case yang sama, sehingga diperlukan abstact actor sebagai penghubung dalam melakukan Use Case tersebut. Gambar 2.17 Contoh Inheritance (Sumber : Whitten dan Bentley, 2007, pp. 250) 2.1.21.3 Use Case Narrative Menurut Whitten dan Bentley (2007:246), Use Case Narrative merupakan penjelasan yang lebih rinci secara step by step dari setiap interaksi actor dengan use case. Berikut penjelasan mengenai bagianbagian use case narrative : a. Use case name : Merepresentasikan goal atau tujuan yang akan dicapai oleh use case yang dimulai dengan kata kerja. 39 b. Actors : Orang atau pihak yang mendapatkan manfaat dari use case dengan menerima suatu nilai yang terukur. c. Descriptions : Ringkasan singkat mengenai tujuan use case beserta aktivitasnya. d. Preconditions : Kondisi yang harus dipenuhi sebelum use case dapat dijalankan. e. Postconditions : Kondisi setelah use case telah dijalankan. f. Normal Flow : Urutan normal dari aktivitas yang dilakukan oleh actor dan sistem. g. Alternate Flow : Menjelaskan jalur alternatif atau pengecualian yang terjadi diluar normal flow. 40 Contoh dari Use Case Narrative : Gambar 2.18 Contoh Use Case Narrative (Sumber : Whitten dan Bentley, 2007, pp. 259) 2.1.21.4 Sequence Diagram Menurut Whitten dan Bentley (2007, pp. 382), sequence diagram merupakan diagram yang menggambarkan interaksi suatu objek dengan objek lainnya secara sekuensial yang menunjukkan proses pengiriman dan penerimaan pesan. Berikut adalah notasi-notasi yang terdapat dalam sequence diagram menurut Whitten & Bentley : 41 1. Actor, merupakan bagian dari aktor pada use-case yang digambarkan dengan simbol actors pada use-case diagram 2. Interface class, kotak yang melambangkan user interface dan untuk membedakan dengan kelas lainnya, kelas ini diberi lambang <<interface>>. Simbol colon (:) yang merupakan standar dari diagram seqeuence menandakan instansi yang sedang digunakan. 3. Controller class, setiap use-case akan memiliki minimal 1 controller class yang dilambangkan dengan <<controller>. Simbol colon (:) yang merupakan standar dari diagram seqeuence menandakan instansi yang sedang digunakan. 4. Entity classes, kotak yang melambangkan setiap entitas atau model yang dibutuhkan untuk dikolaborasikan dalam sequence. 5. Messages, panah horizontal dari aktor menuju ke sistem yang menggambarkan pesan input 6. Activation bars, digambarkan dengan bentuk balok yang terdapat pada lifelines menggambarkan suatu periode waktu ketika partisipan sedang aktif melakukan interaksi. 7. Return messages, garis panah horizontal putus – putus yang melambangkan output yang dihasilkan dari fungsi atau behavior yang telah dipanggil dalam bentuk pesan untuk menandakan berhasil atau tidak fungsi tersebut. 8. Self-call, sebuah objek yang dapat memanggil method diri sendiri. 9. Frame, sebuah kotak yang membungkus satu atau lebih pesan dalam sequence dan menggambarkan sebagai perulangan (loop), bagian alternatif (alternate fragments), atau langkah yang opsional (opt). 42 Gambar 2.19 Contoh Sequence Diagram (sumber : Whitten & Bentley, 2007, pp. 659) 43 2.1.21.5 Activity Diagram Menurut Whitten dan Bentley (2007, pp. 390), activity diagram merupakan diagram yang berfungsi untuk menggambarkan alur proses, step by step dalam use case, dan logika dari metode suatu objek. Gambar 2.20 Contoh Activity Diagram (sumber: Whitten & Bentley, 2007, pp. 392) 44 Berikut ini merupakan notasi-notasi yang digunakan dalam activity diagram : 1. Initial mode, sebuah lingkaran solid yang menggambarkan titik awal dari sebuah proses 2. Actions, berbentuk persegi dengan sisi melengkung yang menggambarkan suatu tahapan 3. Flow, digambarkan dengan panah yang menggambarkan suatu jalannya alur 4. Decision, digambarkan dengan bentuk diamond dengan satu panah sebagai input dan dua atau tiga panah mengarah keluar sebagai output 5. Merge, digambarkan dengan bentuk diamond dengan dua atau lebih panah sebagai input dan satu panah menuju keluar sebagai output 6. Fork, digambarkan dengan balok hitam dengan satu panah ke arah input dan dua atau lebih panah menuju keluar sebagai output yang bertujuan untuk menggambarkan bahwa proses berjalan secara bersamaan 7. Join, digambarkan dengan balok hitam dengan dua atau lebih panah ke arah input dan satu panah menuju keluar sebagai output yang menggambarkan semua proses yang bergabung harus diselesaikan terlebih dahulu sebelum proses dilanjutkan 8. Activity final, digambarkan dengan lingkaran solid yang berada di dalam lingkaran kosong sebagai penanda akhir dari sebuah proses. 2.1.21.6 Entitiy Relation Diagram Menurut Whitten dan Bentley (2007, pp. 271), Entity Relationship Diagram (ERD) merupakan suatu model data yang menggambarkan data berupa entitas dan hubungan antar tabel yang berisi data-data menggunakan beberapa notasi. Berikut merupakan bagianbagian dari ERD: 45 1. Entity Entity adalah class dari orang, tempat, objek, kejadian, atau konsep yang dibutuhkan untuk mengambil dan menyimpan data. 2. Attribute Attribute merupakan nama dari properti atau karakteristik suatu entitas. 3. Relationship Relationship merupakan hubungan antar entitas yang dijelaskan dengan cardinality. Cardinality merupakan jumlah minimum dan maksimum kejadian dari sebuah entitas yang berinteraksi dengan kejadian pada entitas lainnya. 46 Tabel 2.2 Tabel Notasi Cardinality Notasi Grafik atau Jumlah Jumlah Kejadian Kejadian minimum maksimum 1 1 Tepat satu 0 1 Nol atau satu 1 Banyak (>1) 0 Banyak (>1) >1 >1 Keterangan Satu atau lebih dari satu Nol atau lebih dari satu Jumlah spesifik 47 2.1.22 Web Service Web service merupakan suatu sistem perangkat lunak yang dirancang untuk mendukung pengoperasian interaksi antar mesin melalui jaringan. Web service mengizinkan suatu aplikasi untuk berintegrasi dengan aplikasi lain melalui Internet. Web service tidak memiliki user interface dan tidak ditujukan pada Web browsers, melainkan Web service memberikan logika bisnis, data, dan proses-proses melalui tampilan program di dalam jaringan. Connoly dan Begg (2015, pp. 117). 2.1.23 White Box and Black Box Testing Menurut Pressman (2010, pp. 485-495), tahap testing dapat dibedakan menjadi dua jenis, di antaranya yaitu : 1. White-Box Testing White-Box testing merupakan desain test-case yang menggunakan struktur kontrol untuk mengambil test-case. Dengan metode white-box testing, bisa mengambil test case untuk: • Meyakinkan bahwa semua path pada modul telah dicoba minimal sekali. • Mencoba semua pilihan logical baik dari sisi benar maupun salah. • Mengeksekusi semua bagian pada batasan-batasan yang ada. • Mencoba struktur data internal untuk meyakinkan validitasnya 2. Black-Box Testing Black-Box testing fokus terhadap requirement fungsional pada suatu software. Teknik black-Box Testing memungkinkan untuk memperoleh kumpulan kondisi input-an yang akan mencoba semua requirement fungsional program secara keseluruhan. Black Box testing berupaya untuk menemukan error berupa fungsi yang kurang atau salah, kesalahan interface, kesalahan pada struktur data atau pengaksesan database eksternal, kesalahan kinerja, dan kesalahan inisialisasiatau terminasi. 48 2.1.24 5 Faktor Manusia Terukur Menurut Shneiderman dan Plaisant (2010, pp. 32), ada 5 faktor manusia terukur yaitu : 1. Time to learn Ukuran untuk berapa lama waktu yang dibutuhkan seorang user untuk mempelajari cara menggunakan fungsi-fungsi yang relevan pada sekumpulan tugas hingga dapat menggunakan fungsi tersebut dengan baik. 2. Speed of performance Ukuran untuk berapa lama waktu yang diperlukan untuk menyelesaikan suatu tugas. 3. Rate of errors by users Ukuran untuk berapa banyak dan jenis-jenis error yang dilakukan oleh user dalam melakukan sekumpulan tugas. 4. Retention over time Ukuran untuk seberapa lama seorang user dapat mempertahankan ingatan atau pengetahuannya setelah beberapa jam, hari atau minggu. 5. Subjection satisfaction Ukuran untuk seberapa puas user akan ketertarikannya dalam menggunakan berbagai aspek pada suatu tampilan sistem. 2.1.25 10 Prinsip Mobile Interface Desgin Menurut Stark pada NetMagazine.com (2012), smartphone dan desktop computer merupakan dua hal yang sangat berbeda, baik dari segi ukuran layar, koneksi, tingkat bandwidth, pemakain baterai, dan sebagainya. Berdasarkan beberapa hal tersebut, maka perancangan tampilan untuk 49 perangkat mobile tidak dapat disamakan dengan desktop computer. Berikut ini sepuluh prinsip dari mobile interface design: 1. Mobile mindset Dikarenakan adanya perbedaan dalam merancang aplikasi mobile dan desktop computer, berikut merupakan pola pikir yang harus diperhatikan mengenai aplikasi mobile: a. Be Focused: Banyak belum tentu lebih baik, lebih baik menghilangkan fitur yang tidak berguna dalam aplikasi yang akan dibuat. b. Be Unique: Mengenali apa yang membuat suatu aplikasi yang akan dibuat berbeda. Jika aplikasi yang akan dibuat tidak memiliki keunikan tersendiri, maka user tidak akan memilih untuk menggunakan aplikasi tersebut. c. Be Charming: Aplikasi yang mudah digunakan dan memberikan kesenangan kepada user akan lebih menarik perhatian user untuk memilih aplikasi tersebut. d. Be Considerate: Pengembang aplikasi biasanya terlalu fokus pada kesenangan dalam pengembangan aplikasi. Namun pengembang aplikasi harus mencoba untuk menempatkan dirinya pada posisi sebagai user. 2. Mobile contexts Pengembang aplikasi perlu mengetahui alasan orang dalam menggunakan sebuah aplikasi mobile. Ada tiga konteks utama yang harus diperhatikan dalam merancang aplikasi sesuai kebutuhan user, yaitu: a. Bored: Banyak orang menggunakan aplikasi mobile untuk mengisi waktu luang. Aplikasi tersebut memberikan kesenangan dalam jangka panjang yang disertai dengan interupsi seperti notification sehingga 50 user membuka kembali suatu aplikasi dalam jangka waktu tertentu. Contoh: Facebook, Twitter, Angry Birds, web browser. b. Busy: Terkadang aplikasi mobile digunakan untuk menyelesaikan suatu tugas penting dalam waktu cepat dan mudah pada lingkungan yang sibuk. Sangat penting untuk menggunakan target yang besar dan design yang jelas yang mudah dilihat. Contoh: TripIt, email, kalender, dan perbankan. c. Lost: User yang sedang berada pada kondisi dimana user tertarik untuk menjelajahi suatu tempat yang belum diketahui masuk ke dalam kategori ini. Dalam konteks ini, daya tahan baterai dan konektivitas yang terbatas menjadi perhatian utama dalam pembuatan aplikasi. Contoh: Maps, Yelp, Foursquare. 3. Global guidelines Setiap aplikasi yang berbeda memiliki pendekatan, rancangan, dan teknik yang berbeda. Berikut merupakan pedoman umum yang harus diperhatikan dalam merancang suatu aplikasi: a. Responsiveness: Aplikasi yang responsive sangat diperlukan oleh user. Jika user sedang melakukan sesuatu, aplikasi tersebut harus memberikan informasi kepada user sebagai timbal balik sehingga user mengetahui bahwa aplikasi tersebut sedang menjalankan perintah dari user. b. Polish: Pembaharuan pada aplikasi seperti memperhatikan hal-hal kecil pada rancangan dan fitur akan dihargai dan diperhatikan oleh user. c. Thumbs: Ibu jari merupakan bagian dari jari yang paling interaktif dalam menggunakan aplikasi dengan fitur tampilan touchscreen, sehingga perlu memperhatikan interaksi dalam menggunakan ibu jari. d. Targets: Sangat penting dalam menempatkan fungsi-fungsi pada aplikasi dengan posisi baik dan mudah untuk dijangkau, seperti penempatan tombol backspace yang berada di samping tombol enter 51 merupakan ide yang buruk. Developer juga harus memperhatikan ukuran dari setiap tombol agar dapat dijangkau dengan mudah. e. Content: Revolusi dari layar sentuh dimana memungkinkan user untuk berinteraksi secara langsung dengan konten aplikasi. Lebih baik meminimalisir tampilan berupa tombol, tab bars, checkboxes, sliders, dan lainnya sehingga aplikasi terpusat pada konten aplikasi tersebut. f. Controls: Ketika suatu aplikasi membutuhkan control, cobalah untuk meletakkannya pada posisi di bawah layar, seperti tombol next dan previous. g. Scrolling: Sebaiknya menghindari penggunaan fitur scrolling pada aplikasi. Aplikasi yang tidak mempunyai fitur scrolling memberikan rasa kuat dan dapat diandalkan kepada user karena aplikasi terlihat jelas dan tidak membingungkan user dalam mencari konten yang diinginkan. 4. Navigation models Ada beberapa model navigasi dalam merancang tampilan aplikasi mobile, seperti: a. None: Aplikasi single screen seperti aplikasi Weather pada iPhone. b. Tab bar: Aplikasi yang memiliki lebih dari satu area konten aplikasi dan berbentuk seperti tab bar pada bagian atas aplikasi. Contoh: Twitter, Facebook. c. Drill down: Aplikasi yang berbentuk seperti suatu daftar dan detail konten dalam hierarki. Contoh: aplikasi penganturan. 5. User input Aplikasi yang memiliki input pada keyboard yang beragam akan memudahkan user dalam mengetik input yang diinginkan, seperti keyboard untuk teks, angka, email, URL, dan lainnya. Jika aplikasi yang dibuat membutuhkan banyak pengetikan, maka developer seharusnya 52 menyediakan fitur orientasi landscape bagi user yang memiliki ukuran ibu jari yang besar. 6. Gestures Salah satu aspek yang penting dalam merancang tampilan aplikasi mobile adalah gesture. Berikut beberapa gesture yang diantaranya jarang ditemukan atau digunakan oleh user: a. Invinsible: Banyak gesture yang tidak terlihat sehingga perlu adanya instruksi atau petunjuk kepada user untuk menemukan keberadaan gesture tersebut, seperti swipe atau flick gesture. b. Two Hands: Multi-touch gesture memerlukan dua tangan untuk mengeksekusinya, seperti zoom in/out gesture. c. Nice to Have: Dalam banyak kasus, gesture seperti ini jarang ditemukan sehingga orang awam umumnya tidak mengetahui akan keberadaan gesture ini, seperti keyboard shortcuts-power. d. No Replacement: Sebuah kosa kata umum untuk gesture yang belum ada sampai sekarang sehingga terlalu awal untuk beberapa aplikasi menghiraukan visible controls yang dapat digunakan dengan satu jari. 7. Orientation Aplikasi berorientasi portrait merupakan orientasi yang paling populer dalam merancang suatu aplikasi. Jika suatu aplikasi membutuhkan banyak pengetikan, maka seharusnya mendukung orientasi landscape sehingga user dapat mengakses keyboard yang lebih besar. 8. Communications Dalam merancang suatu aplikasi perlu adanya komunikasi antara aplikasi dengan user. Berikut tiga jenis komunikasi yang dapat dilakukan untuk memberikan informasi kepada user: a. Provide feedback: Aplikasi harus menyediakan feedback secara langsung untuk setiap interaksi yang dilakukan oleh user pada 53 aplikasi tersebut. Jika tidak ada feedback, maka user akan menduga bahwa aplikasi tersebut tidak berjalan dengan baik. Feedback dapat berupa teks, suara, dan visual. Jika user melakukan suatu interaksi yang memerlukan waktu cukup lama bagi sistem untuk mengelolanya, maka tampilkan spinner atau progress bar untuk memberikan respon balik ke user. b. Modal alerts: Modal alerts sangat mengganggu user dalam berinteraksi dengan aplikasi, sehingga developer harus menggunakannya ketika ada sesuatu hal yang penting dan tidak berjalan dengan baik. Jangan menggunakan modal alerts untuk pemberian informasi pada umumnya. c. Confirmation: Aplikasi juga perlu memberikan konfirmasi atas aksi yang telah dilakukan oleh user. Misalnya user ingin menghapus suatu file, maka tampilan dialog box yang berisi konfirmasi akan keyakinan user untuk menghapus file tersebut. 9. Launching Ketika user membuka kembali aplikasi yang sebelumnya digunakan, sebaiknya aplikasi tersebut menampilkan operasi yang terakhir dilakukan oleh user. Hal ini dapat memberikan ilusi kecepatan dan berkontribusi untuk merasakan keseluruhan dari rasa responsif. Jika memungkinkan, tampilkan gambar dari aplikasi tersebut saat aplikasi sedang loading pertama kalinya. Apapun yang terlihat interaktif (seperti tombol, link, icon, dan konten) akan membuat user frustasi sehingga mengakibatkan kegagalan interaksi. 10. First impressions Prinsip terakhir yang penting dalam merancang aplikasi mobile adalah kesan pertama. Faktor pertama yang menjadi kesan pertama user adalah icon. Rancangan icon harus dapat membuat aplikasi tersebut terlihat jelas akan tujuannya. Namun tidak perlu rumit, melainkan tepat dan seperti apa 54 yang dapat dilakukan oleh aplikasi tersebut. Faktor kedua yaitu first launch. Faktor ini memberikan dampak apakah user merasa dipermudah atau dipersulit dengan keberadaan aplikasi tersebut. Jika user baru merasa bingung dan frustasi ketika mencoba aplikasi, maka mereka akan sesegera mungkin membuangnya.