BAB II LANDASAN TEORI
2.1
Smartphone Secara
umum
smartphone
adalah
sebuah
ponsel
multifungsi
yang
menggabungkan beberapa fungsi dari sebuah PDA, seperti personal scheduler, kalender dan phone book. Sebuah smartphone dilengkapi dengan kemampuannya untuk mengakses internet, memeriksa e-mail, memainkan game online sampai menulis da mengedit dokumen spreadsheet seperti file Microsoft Word dan Excel layaknya sebuah komputer mini. Oleh karena itu, seperti halnya pada komputer, anda juga dimungkinkan untuk membuat sebuah aplikasi yang selanjutnya dapat dijalankan pada smartphone (Riduwan. Eko.2008). 2.2
Sistem Operasi Android Menurut Ableson (2009, p4), Android adalah sebuah aplikasi platform mobile
yang open source. Android utamanya adalah produk Google, tetapi lebih tepatnya bagian dari Open Handset Alliance. Open Handset Alliance merupakan aliansi dari 30 organisasi yang berkomitmen untuk membawa sebuah perangkat seluler yang lebih baik dan terbuka untuk pasar. Android adalah platform terbuka pertama untuk perangkat mobile, Android adalah sebuah lingkungan perangkat lunak yang dibangun untuk perangkat-perangkat berbasis mobile.
7
8
Android
termasuk kernel berbasis Linux, aplikasi end-user,
dan
framework
aplikasi. User application dibangun berbasiskan bahasa pemrograman Java. Bahkan aplikasi yang dibangun juga berbasiskan Java. Beberapa komponen yang ada dalam Android :
Kapabilitas konektivitas seperti Wi-Fi yang tersedia. Kode-kode libraries yang meliputi : o Teknologi browser contohnya WebKit. o Dukungan database SQLite o Dukungan grafis yang meliputi 2D, 3D, desain animasi dari SGL dan OPENGL
Dukungan servis meliputi : o Activity dan Views. o Telephony. o Windows. o Resources. o Location-based Services Menurut sebuah riset yang dilakukan oleh strategy analytics di tahun 2013, Android merupakan sistem operasi untuk perangkat smartphone terbesar dengan tingkat adopsi sebesar 81.3% disusul iOS dan Windows Phone masing-masing dengan 13.4% dan 4,1% (Bichano, 2013 Android).
9
2.3
Web Service Web Services adalah antar muka yang dapat diakses jaringan untuk
fungsionalitas aplikasi, dibangun menggunakan teknologi internet standar. Web services harus bisa mengirim dan menerima pesan menggunakan beberapa kombinasi standar internet protocols. Web Service merupakan suatu komponen software yang merupakan
self-containing,
aplikasi
modular
self-describing
yang
dapat
dipublikasikan, dialokasikan dan dilaksanakan pada web. Gambar 2.1 merupakan blok bangunan web service yang mana menyediakan komunikasi jarak jauh antara dua aplikasi yang merupakan layer arsitektur web service.
Layer 1: protocol internet standar digunakan sebagai sarana transportasi adalah HTTP dan TCP/IP.
Layer 2: Simple Object Access Protocol (SOAP) berbasiskan XML dan digunakan untuk pertukaran informasi antar sekelompok layanan.
Layer 3: Web Service Description Language (WSDL) digunakan untuk mendeskripsikan atribut layanan.
Layer 4: Universal Description, Discovery, and Integration, yang mana merupakan direktori pusat untuk deskripsi layanan (Tidwell, Doug.2001).
10
Gambar 2.1 Blok Bangunan Web Service(Tidwell, Doug.2001). Sarana komunikasi web service yang menggunakan protocol TCP/IP dan HTTP menjadikan kelebihan tersendiri yaitu kemudahan dalam pengiriman data, karena protocol HTTP merupakan protocol yang umum digunakan di internet. Berikut ini adalah gambaran konsep web service yang bisa diterapkan untuk pengintegrasian berbagai sistem dengan perbedaan platform:
Gambar 2.2 SOAP Web Service(Tidwell, Doug.2001).
11
2.4
SOAP (Simple Object Access Protocol)
Simple Object Access Protocol (SOAP) adalah sebuah standarisasi dasar dari protokol komunikasi untuk saling bertukar informasi terstruktur di antara aplikasiaplikasi yang berjalan. SOAP adalah sebuah aplikasi pesan XML yang sangat bergantung pada skema XML dan XML namespaces untuk mendefinisikannya. SOAP juga sangat bergantung dengan beberapa protokol layer lainnya seperti HTTP, JMS, RPC untuk transmisi pesan. Selain itu webservice berbasis SOAP memiliki kelebihan dan kekurangan antara lain: 1. Kelebihan SOAP
Bahasa, platform, dan transport agnostic
Dirancang untuk menangani lingkungan komputasi terdistribusi
Merupakan standar yang berlaku untuk web servis, sehingga mempunyai dukungan yang lebih baik dari standar yang lain (WSDL, WS-*) dan tools dari berbagai vendor
Built-in error handling
Extensibility
Dalam segi keamanan SOAP lebih baik karena menggunakan metode POST
2. Kekurangan SOAP
Secara konseptual lebih sulit, lebih “heavy-weight” dibanding REST
Membutuhkan lebih banyak pernyataan/kode program
12
Dibutuhkan tools dalam pengembangannya
Dalam penulisan atau pembuatan web service berbbasis SOAP, memiliki metode tersendiri. Berikut contoh pengintegrasian SOAP webservice pada script sistem berbasis php yang akan digunakan :
Gambar 2.3 Contoh script untuk pemanggilan fungsi pada webservice Pada gambar 2.3 adalah contoh metode pemanggilan query yang ada pada webservice, yang mana nantinya webservice akan menghubungkan data di database menuju ke sistem. Bisa dilihat pada script tersebut di setiap pemanggilan fungsi dibutuhkan nuSOAP, selain itu pemanggilan menggunakan url untuk penentuan lokasi webservice, setelah lokasi ditentukan barulah kita tentukan fungsi apa yang akan digunakan, dan selanjutnya tinggal memberikan logic sesuai fungsi yang dibutuhkan. 2.4.1
Keamanan SOAP Web service akan selalu berhubungan dengan informasi. Keberadaan web
service hanyalah sebagai alternatif yang berfungsi sebagai salah satu alat bantu dalam proses pengolahan informasi. Sedangkan proses pengolahan informasi itu sendiri selalu berkaitan dengan keamanan. Dalam request web service SOAP secara tipikal
13
akan menggunakan POST untuk mengkomunikasikan dengan service yang diberikan, dan tanpa melihat evelope SOAP tidak ada cara untuk mngetahui apakah request tersebut hanya ingin meng-query data atau menghapus data. Keamanan informasi memiliki sasaran untuk memelihara kerahasiaan (confidentiality), integritas (integrity) dan ketersediaan informasi (availability) dalam suatu organisasi, dan dicapai dengan kombinasi komponen yang baik, desain arsitektural yang baik, serta perlakuan yang teliti dalam pusat pengelolaannya. Keamanan informasi bertanggung jawab pada tiga hal, yaitu:
Confidentiality, adalah suatu jaminan bahwa informasi hanya dapat digunakan secara bersama oleh organisasi atau orang yang diberi hak.
Integrity, adalah jaminan bahwa informasi adalah asli dan lengkap serta dapat dipercaya ketepatan tujuannya.
Availability, adalah jaminan bahwa sistem yang bertanggung jawab pada pengiriman, penyimpanan dan pengolahan informasi dapat diakses ketika dibutuhkan.
2.4.2
Mekanisme Keamanan Dikarenakan tidak ada peralatan tunggal yang dapat memelihara integritas
informasi, maka penting untuk menempatkan keamanan dalam struktur kinerja. Mekanisme tersebut ialah: Otentikasi user, adalah mekanisme yang dirancang untuk mengidentifikasi user secara unik, menempatkan user pada hak akses informasi yang sesuai, dan
14
menjejaki aktifitas mereka. Otentikasi pada umumnya dilakukan dengan meminta kunci akses (dapat berupa username, password, informasi biometric, kartu pengenal, ataupun smart card) dan menentukan hak akses mereka. 2.4.3
Otentikasi SOAP Teknik pengamanan web service dengan menggunakan otentikasi SOAP
merupakan metode yang cukup sederhana. Proses otentikasi SOAP dilakukan dengan cara menyisipkan suatu informasi pada pesan SOAP yang menggambarkan bahwa suatu pesan SOAP memiliki keaslian tersendiri yang bersifat unik dari suatu client tertentu yang meminta layanan. Informasi yang disisipkan ini berisi data otentikasi dari client yang mengajukan request. Informasi tersebut merupakan data otentikasi SOAP request yang berupa username dan password. Berikut ini adalah langkah-langkah yang diterapkan dalam proses otentikasi SOAP: 1. Client menyusun sebuah paket SOAP request dalam sebuah SOAP envelope 2. Client menyisipkan sebuah data informasi otentikasi ke dalam struktur SOAP request tersebut 3. Client mengirimkan SOAP request melalui protokol HTTP ke aplikasi server (web service provider) 4. Server menerima pesan SOAP resquest kemudian melakukan parsing
15
5. Server mendapatkan data informasi otentikasi dari pesan SOAP request 6. Server mencocokkan data informasi otentikasi dengan database server 7. Apabila data informasi otentikasi sesuai, maka server menangani request, jika tidak server akan menolak request 8. Server mengirimkan pesan SOAP response kepada client berikut informasi tentang status otentikasi. Dalam menerapkan otentikasi SOAP, aplikasi server membutuhkan suatu database yang berfungsi untuk menyimpan data-data semua client yang berhak untuk mengakses layanan yang tersedia. Dengan demikian hanya client yang terdaftar dalam database tersebut yang berhak untuk mengkonsumsi layanan. Teknik pengamanan ini bertujuan untuk mencegah para hacker mengirimkan SOAP request yang berisi instruksi-instruksi ataupun data yang dapat merugikan server. 2.5
XML (eXtended Markup Language) XML merupakan dasar terbentuknya web service yang digunakan untuk
mendeskripsikan data. Pada level paling detail web service secara keseluruhan dibentuk diatas XML. Fungsi utama dari XML adalah komunikasi antar aplikasi, integrasi data, dan komunikasi aplikasi eksternal dengan partner luaran. Dengan standarisasi XML, aplikasi-aplikasi yang berbeda dapat dengan mudah berkomunikasi antar satu dengan yang lain.
16
2.6
Software dan bahasa pemogramman untuk pembuatan aplikasi
2.6.1
Android Android adalah sebuah sistem operasi yang berbasis Linux untuk telepon
seluler seperti telepon pintar dan komputer tablet. Android menyediakan platform terbuka bagi para pengembang untuk menciptakan aplikasi mereka sendiri untuk digunakan oleh bermacam peranti bergerak. Awalnya, Google Inc. membeli Android Inc., pendatang baru yang membuat peranti lunak untuk ponsel. Kemudian untuk mengembangkan Android, dibentuklah Open Handset Alliance, konsorsium dari 34 perusahaan peranti keras, peranti lunak, dan telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia (H, Nazrudin Safaat. 2012). 2.6.2
Android Studio WebView Android Studio adalah lingkungan pengembangan Android baru berdasarkan
IntelliJ IDEA. Mirip dengan Eclipse dengan ADT Plugin, Android Studio menyediakan alat pengembang Android terintegrasi untuk pengembangan dan Debugging (htpp://developer.android.com/tools/studio/index.html). Saat ini Android Studio dilengkapi dengan berbagai macam kemudahan dan kenyamanan dalam perancangan aplikasi berbasis mobile. Salah satu fitur di Android studio adalah Webview, Webview sendiri merupakan sebuah class pada android yang menampilkan dan menjalankan aplikasi mobile yang berbasis web, dengan cara memanggil URL web yang akan di integrasi ke Aplikasi Mobile. di atas kemampuan yang anda harapkan dari IntelliJ, Android Studio menawarkan:
17
2.6.3
Berbasis Gradle membangun dukungan.
Refactoring android, spesifik dan perbaikan yang cepat/
Alat Lint untuk menangkap kinerja, kegunaan, kompatibilitas versi dan masalah lainnya.
ProGuard dan aplikasi penanda tanganan kemampuan.
Penyihir berbasis template untuk membuat desain Android umum dan komponen.
Sebuah layout editor yang memungkinkan anda untuk drag-and-drop UI komponen, layout pratinjau pada beberapa konfigurasi layar, dan banyak lagi.
Software Development Kit (SDK) Software development kit (SDK) merupakan cakupan dari segalanya yang
dibutuhkan untuk memulai pengembangan, pengujian, dan debugging aplikasi android. Software development kit (SDK) juga menyediakan informasi mengenai code yang dipakai untuk membuat sebuah aplikasi. Informasi tersebut berupa dokumentasi yang menjelaskan bagaimana memulai dalam membuat sebuah aplikasi, penjelasan detail mengenai apa yang ada di setiap package dan class pada libraries juga cara pemakaiannya, dan memberikan penjelasan mendasar yang detail mengenai pengembangan aplikasi android. 2.6.4
PHP Source Local Untuk menjalankan aplikasi PHP, kita harus mempunyai web server. Web
server adalah sebuah perangkat lunak server yang berfungsi menerima permintaan HTTP atau APACHE. Di aplikasi ini web server berada di local yang belum di hosting, semua fungsi php ada di folder htdocs (XAMPP) drive c:, dan database ada
18
di mysql phpmyadmin. Setiap pengambilan data dan fungsi php menggunakan web service dengan http request. Untuk menghubungkan fungsi php yang berada di local dengan aplikasi yang dibuat, tinggal load urlnya yang sudah di sertakan di android studio. Dengan menentukan IP dan nama folder fungsi php yang berada di local.
2.6.5
XAMPP XAMPP adalah perangkat lunak bebas, yang mendukung banyak sistem
operasi, merupakan kompilasi dari beberapa program. Fungsinya adalah sebagai server yang berdiri sendiri (localhost), yang terdiri atas program Apache HTTP Server, MySQL database, dan penerjemah bahasa yang ditulis dengan bahasa pemrograman PHP dan Perl. Nama XAMPP merupakan singkatan dari X (empat sistem operasi apapun), Apache, MySQL, PHP dan Perl. Program ini tersedia dalam GNU General Public License dan bebas, merupakan web server yang mudah digunakan yang dapat melayani tampilan halaman web yang dinamis. Untuk mendapatkanya dapat mendownload langsung dari web resminya. (H, Nazrudin Safaat. 2012). 2.6.6
MySQL MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL
(bahasa Inggris: database management system) atau DBMS yang multithread, multiuser, dengan sekitar 6 juta instalasi di seluruh dunia. MySQL AB membuat MySQL tersedia sebagaiperangkat lunak gratis dibawah lisensi GNU General Public License (GPL), tetapi mereka juga menjual dibawah lisensi komersial untuk kasus-kasus
19
dimana penggunaannya tidak cocok dengan penggunaan GPL. Tidak sama dengan proyek-proyek seperti Apache, dimana perangkat lunak dikembangkan oleh komunitas umum, dan hak ciptauntuk kode sumber dimiliki oleh penulisnya masingmasing, MySQL dimiliki dan disponsori oleh sebuah perusahaan komersialSwedia MySQL AB, dimana memegang hak cipta hampir atas semua kode sumbernya. Kedua orang Swedia dan satu orangFinlandia yang mendirikan MySQL AB adalah: David Axmark, Allan Larsson, dan Michael "Monty" Widenius. Sistem manajemen basis data relasional MySQL adalah sebuah implementasi dari sistem manajemen basisdata relasional (RDBMS) yang didistribusikan secara gratis dibawah lisensi GPL (General Public License). Setiap pengguna dapat secara bebas menggunakan MySQL, namun dengan batasan perangkat lunak tersebut tidak boleh dijadikan produk turunan yang bersifat komersial. MySQL sebenarnya merupakan turunan salah satu konsep utama dalam basisdata yang telah ada sebelumnya; SQL (Structured Query Language). SQL adalah sebuah konsep pengoperasian basisdata, terutama untuk pemilihan atau seleksi dan pemasukan data, yang memungkinkan pengoperasian data dikerjakan dengan mudah secara otomatis. Kehandalan suatu sistem basisdata (DBMS) dapat diketahui dari cara kerja pengoptimasi-nya dalam melakukan proses perintah-perintah SQL yang dibuat oleh pengguna maupun program-program aplikasi yang memanfaatkannya.
20
2.7
NuSOAP Dalam pembuatan web service berbasis SOAP dibutuhkan sebuah library
untuk mendukung web service SOAP sebagai middleware dalam proses pengiriman data dari database menuju sistem salah satunya adalah NuSOAP. NuSOAP sendiri adalah sebuah kumpulan class-class PHP yang memungkinkan user untuk mengirim dan menerima pesan SOAP melalui protokol HTTP. NuSOAP didistribusikan oleh NuSphere Corporation (http://www.nusphere.com) sebagai open source toolkit dibawah lisensi GNU LGPL. NuSOAP merupakan toolkit web service berbasis komponen. NuSOAP memiliki sebuah class dasar yang menyediakan method seperti serialisasi variabel dan pemaketan SOAP-Envelope. Interaksi web service dilakukan dengan class client yang disebut dengan class “soapclient” dan class server yang disebut dengan class “soap_server”. Class-class ini mengizinkan user untuk melakukan proses pengiriman dan penerimaan pesan-pesan SOAP dengan bantuan beberapa class-class pendukung lainnya untuk melengkapi proses tersebut 2.8
Metode Waterfall Pada perancangan sistem ini, penulis menggunakan metode waterfall.
Menurut Sommerville (2010, p29) Metode Watefall meliputi kegiatan definisi kebutuhan, pengembangan, validasi dan evolusi, ada beberapa tahapan proses seperti yaitu definisi kebutuhan, perancangan perangkat lunak, implementasi, pengujian dan sebagainya. Metode waterfall adalah metode yang menyarankan sebuah pendekatan
21
yang sistematis dan sekuensial melalui tahapan SDLC untuk membangun sebuah perangkat lunak. Berikut adalah gambar dari metode waterfall.
Gambar 2.3 Metode Waterfall (Sommerville. 2010, p30) Adapun beberapa tahapan dari metode waterfall, diantaranya sebagai berikut : 1.
Definisi Kebutuhan yaitu mendefinisikan kebutuhan secara rinci yang dibutuhkan untuk membangun program.
2.
Desain perangkat lunak yaitu meliputi identifikasi dan menjelaskan penggambaran sistem perangkat lunak.
3.
Implementasi dan unit testing, pada tahap ini desain perangkat lunak direalisasikan, setiap unit yang dilakukan pengujian harus terverifikasi dan memenuhi spesifikasi.
22
4.
Intergrasi dan pengujian sistem, program diintegrasikan dan dilakukan pengujian sebagai satu kesatuan sistem untuk memastikan bahwa kebutuhan perangkat lunak telah dipenuhi.
5.
Operasi dan pemeliharaan, ini merupakan fase terpanjang dari siklus hidup. Sistem dipasang dan dimasukkan kedalam penggunaan praktis. Pemeliharaan meliputi memperbaiki kesalahan yang tidak ditemukan sebelumnya dan meningkatkan layanan sistem.