Menggunakan Database pada Cordova

dokumen-dokumen yang mirip
Menggunakan Vibration pada Cordova

4. Tambahkan dukungan untuk platform Android. Silakan masuk ke folder..\cordova\workshop\ accelerometer dan jalankan perintah:

Menampilkan Battery Status pada Cordova

Menggunakan Connection pada Cordova

Menggunakan Geolocation pada Cordova

Menampilkan Splash Screen pada Cordova

DAFTAR PUSTAKA. Andi, Menguasai Pemerograman Web Dengan Java Script. Wahana Komputer 2010

MODUL PRAKTIKUM SISTEM TERDISTRIBUSI

MODUL 13 INTERKONEKSI CLIENT-SERVER JQUERY

DAFTAR PUSTAKA. Fathansyah. (2007). Basis Data. Informatika : Bandung.

[SANGAT MUDAH] Cara Membuat Tab dengan Bootstrap

Menggunakan Database di Android Desember 2011 Tingkat: Oleh : Feri Djuandi Pemula Menengah Mahir Platform : Android 2.

KAJIAN 3 Web Responsive

Membuat Display Produk dalam Layout Box 4 Kolom

BAB IV IMPLEMENTASI DAN PENGUJIAN

Pendahuluan. Hal itu dimungkinkan dengan adanya framework bernama PhoneGap. PhoneGap

Membuat Chatbox Sederhana dengan Ajax jquery dan PHP PDO

BAB 2 TINJAUAN PUSTAKA DAN DASAR TEORI

Tutorial Implementasi Jquery Mobile dan JSP. 1. Definisi Jquery Mobile

LAMPIRAN.

MODUL 8 MEMBUAT USER DAN MENGAKSES DATABASE

BAB 2 TINJAUAN PUSTAKA DAN DASAR TEORI

Tahap Instalasi PostgreSQL di Windows

TUTORIAL CODEIGNITER Langkah Tepat menjadi Web Developer Handal, menguasai CodeIgniter, jalan membuat aplikasi berbasis website lebih mudah

BAB X AKSES DAN MANIPULASI DATA

Perkenalan Glyphicon Bootstrap dan Cara Mudah Menggunakannya

Advantages. Keunggulan :

CHAPTER 6. Sebelum membuat starter data, kita perlu meng-create collections terlebih dahulu. Buat folder lib pada folder aplikasi.

MODUL 12 PENGENALAN JQUERY MOBILE

Membuat Scrollspy Dengan Bootstrap

[SANGAT MUDAH] Cara Membuat Slide Show dengan Bootstrap 3

MODUL PRAKTIKUM BASIS DATA TEKNIK INFORMATIKA UIN SUNAN KALIJAGA YOGYAKARTA 2011 PENGENALAN DATABASE MYSQL

Pengenalan JavaScript

Upload File dengan Metode AJAX

Persiapan. Jalankan server apache dari XAMPP control panel Ekstrak file yang telah dibagikan, Salin folder week_8 ke htdocs

Pemrograman Web Lanjut 2017

E-trik Ajax. Database MySQL. Dedi Alnas

Pemrograman Web PRAKTIKUM 6. Query Data 2. TUJUAN BELAJAR Mahasiswa dapat menggunakan PHP dan MySQL untuk mengupdate data

Cara Membuat website dengan Dreamweaver

membuat website dengan bootstrap v3.0.0

Tutorial jquery Ajax Bagian 2 (Input, Update, Delete, Animasi Loading)

RANCANG BANGUN APLIKASI KAMUS ISTILAH AKUNTANSI PADA SMARTPHONE DENGAN METODE EXTREME PROGRAMMING

Membuat Duplikasi Form dengan Jquery (Dynamic Form)

Laporan Proyek Aplikasi. Membangun Aplikasi Phonebook Darurat dengan jquery Handphone & SDK Android

Persiapan Table Untuk Latihan Sebelum kita berkenalan lebih jauh dengan Trigger, mari kita buat terlebih dahulu, struktur table yang dibutuhkan.

MODUL 8 Mengoperasikan Perangkat Lunak Basis Data

Ruang Kerja DREAMWEAVER MX 2004 :

Pengenalan Structured Query Language

TUTORIAL CODEIGNITER Langkah Tepat menjadi Web Developer Handal, menguasai CodeIgniter, jalan membuat aplikasi berbasis website lebih mudah

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN WEB Semester: 2 MYSQL 200 menit No.: Job: 12 Tgl: Hal.

Pengenalan Script. Definisi HTML

Content: Pengenalan Web Server Pengenalan MY SQL Connector Pengenalan CodeCharge Studio (CCS)

Lisensi Dokumen: Uraian Kasus :

Instalasi Android SDK Maret 2012 Tingkat: Oleh : Feri Djuandi Pemula Menengah Mahir Platform : Windows XP, Eclipse

PRAKTIKUM SISTEM INFORMASI MANAJEMEN

Pemrograman Web Week 4. Team Teaching

BAB IV HASIL DAN UJI COBA

Eksekusi file setup.exe yang ada dalam CD atau folder instalasi oracle.

MySQL J A M K E T I G A

Bermain Dynamic Tabel Row dengan menggunakan Javascript


Beralih dari Input Submit ke Button dan Cara Mudah Membuat Button Bootstrap

BAB 10 NETBEANS DATABASE

UNIVERSITAS KOMPUTER INDONESIA

SMK BHAKTI NUSANTARA BOJA

BAB V IMPLEMENTASI DAN PENGUJIAN. lingkungan perangkat lunak, implementasi database beserta struktur program dan

b) Membuat database tiket. Siapkan databasenya dengan membuat database tiket Sampai langkah ini database tiket sudah siap digunakan

MEMBUAT MASTER BERITA Teknik Informatika Sopingi, M.Kom

E-trik Ajax. Ajax dan MySQL. Dedi Alnas

Database Systems: Lab. Actvity 1: Database Design. Merancang Database. Merancang Database. Tipe Tabel MySQL.

RANCANG BANGUN APLIKASI KAMUS ISTILAH AKUNTANSI PADA SMARTPHONE DENGAN METODE EXTREME PROGRAMMING

Aplikasi CRUD dengan Visual Basic 2012 [APLIKASI CRUD DENGAN VISUAL BASIC 2012 & MYSQL] September 18, & MySQL. Bahtiar Imran

Pengenalan Sistem Informasi Pembangunan Daerah

Membuat Combobox Bertingkat dengan CakePHP

Pertemuan Ke-13 (PHP & MYSQL) Adi Widodo,S.Kom.,MMSI 1

Tampilan Splash Screen Eclipse Pada gambar 4.1 dibawah ini merupakan tampilan splash screen ketika aplikasi eclipse dibuka.

Pelatihan Intel XDK. Modul 5 Pengembangan Aplikasi Mobile Learning Menggunakan Intel XDK Sesi 2. Dikembangkan oleh Intel Software.

Membuat CRUD Sederhana pada Framework Laravel

2.7.3 Modularisasi require() include() MySQL Keunggulan MySQL Sistem Server pada

Cara Membuat Mail Merge di Word 2010

MySQL Databases. Dasar-dasar MySQL dan Implementasi MySQL kedalam pemrograman PHP. Jakarta, 16 April 2011 Oleh: M. Awaludin, S.Kom

Simak baik-baik komentar-komentar dalam setiap skrip. Komentar diawali dengan tanda #, //, atau /* dan */

KapitaSelekta. (KBKI82127, 2 sks) Materi : Pengenalan MySQL

BAB IV PERANCANGAN SISTEM

AJAX dengan jquery Part 3

BAB V IMPLEMENTASI DAN PEMBAHASAN

MySQL Full-Text Searching

WELCOME MESSAGE WE STARTED AT. 10 March 2016 dimana komunitas ini didirikan

Pertemuan 12 Pengenalan Structured Query Language

Menangani Input dari User

3.1 Form Wizard. 3. Pilihlah menu use data block wizard dan tekanlah button OK, maka akan tampil window di bawah ini.

PEMBUATAN APLIKASI PEMUTAR AUDIO STREAMING BERBASIS ANDROID

BAB 5 IMPLEMENTASI. Gambar 5.1 Arsitektur Jaringan. diimplementasikan pada lebih dari satu komputer dengan satu server. Di

Lampiran Kode Program

Transkripsi:

Menggunakan Database pada Cordova Agustus 2015 Tingkat: Oleh : Feri Djuandi Pemula Menengah Mahir Selain digunakan untuk mengakses fitur yang ada di dalam sebuah perangkat mobile seperti accelerometer, geolocation, kamera, contact dan sebagainya melalui plugin Cordova, salah satu fungsi API Cordova yang sangat berguna saat membuat sebuah aplikasi adalah melakukan operasi dengan database lokal di dalam perangkat tersebut. Hal-hal yang bisa dilakukan pada saat melakukan operasi database adalah meliputi pembuatan database termasuk table-table di dalamnya, penambahan data ke dalam table, menampilkan/mencari data, perubahan data dan penghapusan data. Database sangat berguna misalnya saat Cordova digunakan untuk membuat sebuah aplikasi bisnis yang membutuhkan tempat penyimpanan data secara lokal. Plugin pada API Cordova yang digunakan untuk melakukan operasi database adalah cordova-sqlitestorage. Plugin storage ini memungkinkan aplikasi menjalankan perintah SQL yang umum seperti CREATE TABLE, SELECT, INSERT, UPDATE dan DELETE berikut penanganan kesalahannya. Sebelum memulai dengan pembuatan aplikasi ini, pastikan komputer kerja Anda telah dipersiapkan dengan API Cordova dan software yang dibutuhkan lainnya. Untuk mempersiapkan lingkungan kerja Cordova, silakan membaca artikel Memulai Cordova yang dibuat penulis sebelumnya. Catatan: Pada artikel ini platform yang digunakan hanya Android, sehingga semua penjelasan yang diuraikan mengacu pada platform tersebut. Kode program dari contoh aplikasi telah disertakan bersama artikel ini sehingga Anda bisa menggunakannya sambil membaca penjelasan agar lebih mudah memahaminya. Membuat projek baru Untuk memberikan gambaran mengenai aplikasi contoh ini, berikut ini adalah penjelasan bagian-bagian yang akan dibuat. Fungsi opendb, yang harus dipanggil sebelum melakukan operasi database apapun. Fungsi ini mempunyai dua fungsi: 1. Membuat database jika database belum terbentuk. 2. Membuat koneksi ke database sebelum menjalankan perintah SQL. Di dalam fungsi tersebut terdapat sebuah perintah dari plugin storage yang dijalankan adalah 1

var db = window.opendatabase("mydatabase", "1.0", "My Database", 200000); Pada pertama kali dijalankan perintah ini akan membuat database bernama mydatabase dengan versi 1.0 dan dekskripsi "My Database". Database tersebut berukuran 200000 byte. Fungsi initdb, yang akan dipanggil ketika koneksi database berhasil dibuat. Perintah SQL yang akan dijalankan adalah untuk membuat table DEMO jika ia belum terbentuk. tx.executesql('create TABLE IF NOT EXISTS DEMO (id unique, data)'); Table DEMO ini terdiri dari dua buah field. Field pertama bernama id yang bertipe data numeric dan bersifat unik (tidak boleh duplikat). Field kedua bernama data yang bertipe data string. Fungsi getrecordcountdb, yang berfungsi untuk medapatkan jumlah record di dalam table DEMO. tx.executesql('select * FROM DEMO', [], recordcountsuccess, errorcb );... totalrecordcount = results.rows.length; Fungsi cleandb, yang berfungsi untuk mengosongkan isi table DEMO/menghapus semua data. tx.executesql('delete FROM DEMO'); Fungsi populatedb, yang berfungsi untuk mengisi data ke dalam table DEMO secara random.... for(j=1; j <= i; j++) { var k = totalrecordcount + j; var sql = 'INSERT INTO DEMO (id, data) VALUES (' + k + ', "' + randomstring() + '")'; tx.executesql(sql); Fungsi querydb, yang berfungsi untuk menampilkan isi table DEMO.... tx.executesql('select * FROM DEMO', [], querysuccess, errorcb);... var storagecontent = "<ul data-role='listview' data-inset='true'>\r\n"; var len = results.rows.length; for (var i=0; i<len; i++){ var item = "Row = " + i + " ID = " + results.rows.item(i).id + " Data = " + results.rows.item(i).data; storagecontent += '<li>' + item + '</li>\r\n'; storagecontent += '</ul>\r\n'; $("#content").html(storagecontent); $("#content").find( ":jqmdata(role=listview)" ).listview(); 2

Fungsi-fungsi di atas adalah bagian-bagian utama dari aplikasi. Selain yang dijelaskan di atas masih terdapat beberapa fungsi pendukung lainnya. Semua fungsi terdapat di file index.js dan index.html. Berikut ini adalah langkah-langkah untuk membuat projek aplikasi tersebut: 1. Buat sebuah folder kerja untuk projek Cordova. Pada contoh ini folder tersebut diletakkan pada folder..\cordova\workshop. Anda bebas menentukan nama dan lokasi folder tersebut. Buka sebuah command shell dan masuk ke dalam folder kerja di atas. Pada contoh ini akan dibuat sebuah projek bernama storage. 2. Jalankan perintah berikut ini: cordova create storage com.excercise.storage Storage Setelah projek berhasil dibuat, file-file projek tersebut akan disimpan di dalam folder..\cordova\workshop\storage. Silakan menuju folder tersebut dan melihat folder-folder dan filefile apa saja yang sudah terbentuk. 3. Tambahkan dukungan untuk platform Android. Silakan masuk ke folder..\cordova\workshop\ storage dan jalankan perintah: cordova platforms add android 4. Tambahkan plugin-plugin yang dibutuhkan. Silakan masuk ke folder..\cordova\workshop\storage dan jalankan perintah: cordova plugin add cordova-plugin-device cordova plugin add cordova-plugin-console cordova plugin add cordova-sqlite-storage 5. Sesuaikan versi API Android yang terinstal pada komputer kerja dengan versi target yang akan dibuat. Pada API Cordova yang digunakan oleh penulis, secara default target yang ditetapkan adalah android-22. Namun karena pada komputer kerja penulis versi API Android yang terinstal adalah 21 maka bagian ini harus diedit secara manual. 3

Buka file project.properties di dalam folder..\workshop\storage\platforms\android. Ubah versi API pada bagian target dengan yang sesuai. Buka file AndroidManifest.xml di dalam folder..\workshop\storage\platforms\android. Ubah versi API pada bagian android:targetsdkversion dengan yang sesuai. Mempersiapkan jquery Langkah ini bertujuan untuk memperindah tampilan dan tidak berhubungan dengan fungsi inti dari aplikasi yang sedang dibuat. jquery dibutuhkan untuk digunakan bersama-sama jquery Mobile. Versi jquery yang digunakan pada contoh program ini adalah jquery-1.11.3. Dianjurkan untuk tidak menggunakan jquery 2.x karena terbatasnya versi browser yang didukung oleh versi tersebut. 1. Silakan mengunduh jquery dari situs beralamat: https://jquery.com/download/ 2. Silakan menyalin file jquery-1.11.3.js ke dalam folder..\storage\www\js. Mempersiapkan jquery Mobile Pada contoh ini framework jquery Mobile akan digunakan untuk memperindah tampilan antar muka (User Interface= UI). jquery Mobile adalah UI framework yang sangat populer dan cukup mudah digunakan. Versi jquery Mobile yang digunakan pada contoh program ini adalah jquery.mobile-1.4.5, namun demikian tidak ada batasan untuk menggunakan versi yang lebih baru. 1. Silakan mengunduh jquery Mobile dari situs beralamat: https://jquerymobile.com/ 2. Silakan menyalin file jquery.mobile-1.4.5.min.js ke dalam folder..\storage\www\js. 3. Silakan menyalin file jquery.mobile-1.4.5.min.css ke dalam folder..\storage\www\css. Mengedit file index.js Buka file index.js yang ada di dalam folder..\storage\www\js. Hapus semua skrip yang asli dan ganti dengan skrip yang baru berikut ini. var totalrecordcount = 0; // Wait for Cordova to load // document.addeventlistener("deviceready", ondeviceready, false); // Cordova is ready // function ondeviceready() { 4

getrecordcount(); //Open & init the database function opendb() { var db = window.opendatabase("mydatabase", "1.0", "My Database", 200000); db.transaction(initdb, errorcb); return db; function initdb(tx) { //tx.executesql('drop TABLE IF EXISTS DEMO'); tx.executesql('create TABLE IF NOT EXISTS DEMO (id unique, data)'); //Clean the database function cleanstorage() { var db = opendb(); db.transaction(cleandb, errorcb, successcb ); getrecordcount(); //Update the "totalrecordcount" variable function cleandb(tx) { tx.executesql('delete FROM DEMO'); //Random string generator function randomstring() { var text = ""; var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; for( var i=0; i < 10; i++ ) text += possible.charat(math.floor(math.random() * possible.length)); return text; //Populate items function populateitems() { var db = opendb(); db.transaction(populatedb, errorcb, successcb); function populatedb(tx) { getrecordcount(); //Update the "totalrecordcount" variable //alert("totalrecordcount=" + totalrecordcount); var i = Math.floor((Math.random() * 10) + 1); for(j=1; j <= i; j++) { var k = totalrecordcount + j; //alert("k=" + k); var sql = 'INSERT INTO DEMO (id, data) VALUES (' + k + ', "' + randomstring() + '")'; //alert("sql=" + sql); tx.executesql(sql); //Get total record count function getrecordcount() { var db = opendb(); db.transaction(getrecordcountdb, errorcb); return totalrecordcount; function getrecordcountdb(tx) { tx.executesql('select * FROM DEMO', [], recordcountsuccess, errorcb ); function recordcountsuccess(tx, results) { totalrecordcount = results.rows.length; // Transaction error callback 5

// function errorcb(tx, err) { alert("error processing SQL: "+err); // Transaction success callback // function successcb() { alert("success!"); 6

Mengedit file index.html Buka file index.html yang ada di dalam folder..\storage\www. Hapus semua skrip HTML yang asli dan ganti dengan skrip yang baru berikut ini. <!DOCTYPE html> <html> <head> <title>storage Plugin</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <!--link rel="stylesheet" type="text/css" href="css/index.css"--> <link rel="stylesheet" href="css/jquery.mobile-1.4.5.min.css"> <script src="js/jquery-1.11.3.js"></script> <script src="js/jquery.mobile-1.4.5.min.js"></script> <script> $(document).bind( "pagebeforechange", function( e, data ) { if ( typeof data.topage === "string" ) { var u = $.mobile.path.parseurl( data.topage ); var pageid = u.hash.replace( /.*#/, "" ), pageselector = u.hash.replace( /\?.*$/, "" ); //alert(pageid); if(pageid=="display") { showdata( ); ); function showdata() { var db = opendb(); db.transaction(querydb, errorcb ); function querydb(tx) { tx.executesql('select * FROM DEMO', [], querysuccess, errorcb); function querysuccess(tx, results) { var storagecontent = "<ul data-role='listview' data-inset='true'>\r\n"; var len = results.rows.length; for (var i=0; i<len; i++){ var item = "Row = " + i + " ID = " + results.rows.item(i).id + " Data = " + results.rows.item(i).data; storagecontent += '<li>' + item + '</li>\r\n'; storagecontent += '</ul>\r\n'; $("#content").html(storagecontent); //ajax to inject the listview $("#content").find( ":jqmdata(role=listview)" ).listview(); //render/refresh the listview html 7

</script> </head> <body> <!--############# MAIN MENU ############# --> <div data-role="page" id="mainmenu"> <div data-role="header"> <h1>storage Plugin</h1> <div data-role="main" class="ui-content"> <p>please select an action:</p> <ul data-role="listview"> <li><a href="#clean">clean storage</a></li> <li><a href="#insert">populate new items</a></li> <li><a href="#" onclick="alert(getrecordcount() ); return false;">display item count</a></li> <li><a href="#display">display storage</a></li> </ul> <!--############# CLEAN STORAGE ############# --> <div data-role="page" data-dialog="true" id="clean"> <div data-role="header"> <h1>clean Storage</h1> <div data-role="main" class="ui-content"> <p>are you sure want to remove all items in the storage?</p> <p align="center"> <a href="#" data-ajax="false" data-role="button" data-iconpos="left" data-inline="true" data-theme="b" onclick="cleanstorage();$.mobile.changepage('#mainmenu'); return false;">yes, remove all</a></p> <!--############# INSERT ITEM ############# --> <div data-role="page" data-dialog="true" id="insert"> <div data-role="header"> <h1>insert Items</h1> <div data-role="main" class="ui-content"> <p>do you want to add some random data items into the storage?</p> <p align="center"> <a href="#" data-ajax="false" data-role="button" data-icon="plus" data-iconpos="left" data-inline="true" datatheme="b" onclick="populateitems();$.mobile.changepage('#mainmenu'); return false;">yes, populate Items</a></p> <!--############# DISPLAY ############# --> <div data-role="page" id="display"> 8

<div data-role="header"> <h2>display Storage</h2> <a href="#mainmenu" data-icon="home" data-iconpos="notext">home</a> <div data-role="main" class="ui-content"> <h3>storage contents:</h3> <div id="content"> <script type="text/javascript" src="cordova.js"></script> <script type="text/javascript" src="js/index.js"></script> </body> </html> 9

Mempersiapkan file-file gambar File-file gambar ada di dalam folder..\storage\www\img. Mempersiapkan file icon Sebuah icon baru telah dipersiapkan untuk menggantikan icon standar dari aplikasi Cordova. 1. Siapkan sebuah gambar dengan format PNG dan berukuran 96 x 96 pixel. 2. Pada folder projek aplikasi Cordova, silakan masuk ke sub-folder..\platforms\android\res. Di situ akan dijumpai beberapa folder drawable dan drawable-xxx seperti pada gambar berikut ini. 3. Hapus semua folder drawable-xxx dan tinggalkan sebuah folder bernama drawable. Dengan dihapusnya folder-folder drawable-xxx maka perangkat mobile selalu akan mencari gambar icon di dalam folder drawable. 4. Di dalam folder drawable terdapat file bernama icon.png. File inilah yang dapat diganti dengan gambar lain supaya icon aplikasi berubah sesuai dengan gambar yang diinginkan. Silakan mengambil gambar icon yang baru dan salin ke dalam folder ini dengan nama file yang sama (hapus file icon.png yang asli). Pastikan resolusinya sama dengan gambar yang asli. 10

Menjalankan aplikasi 1. Sambungkan kabel data dari komputer ke perangkat Android. Pastikan perangkat Android terdeteksi oleh komputer. 2. Masuk ke dalam folder..\cordova\workshop\storage dan jalankan perintah: cordova run android Tampilan aplikasi saat dijalankan diperlihatkan pada gambar di bawah ini. Fungsi-fungsi yang tersedia Menghapus isi table Mengisi table Menampilkan jumlah record 11

Menampilkan isi table Referensi: http://cordova.apache.org/docs/en/2.4.0/cordova_storage_storage.md.html https://github.com/litehelpers/cordova-sqlite-storage Proverbs 1:7. The fear of the LORD is the beginning of knowledge: but fools despise wisdom and instruction. 12