Workshop Struktur dan Pemakaian Teknologi Game
134
7.1 Tujuan Pembelajaran
1. Memahami macam penyimpanan data pada Android
2. Memahami cara menulis dan membaca file dari penyimpanan internal dan eksternal
3. Memahami penggunaan database SQLite
7.2 Dasar Teori
Android menyediakan 4 mekanisme dalam menyimpan dan mendapatkan kembali data, yaitu :
1. Preferences,
2. Files,
3. Database, and
4. Network.
Dalam Android, semua data aplikasi termasuk file private terhadap aplikasi itu sendiri. Android juga menyediakan cara untuk sebuah aplikasi untuk menampilkan data
privatenya ke aplikasi lain menggunakan content Providers. Android menyiapkan beberapa content providers untuk tipe data standar, seperti image, audio, video files dan
personal contact information.
7.2.1 Preferences
Preferences adalah mekanisme yang mudah dalam android untuk menyimpan dan mendapatkan kembali pasangan key-value dari tipe data primitivedisebut juga
dengan Maps dan Associative Arrays Biasanya digunakan untuk menyimpan state informasi dan data bersama
diantara beberapa activity dalam aplikasi. Dalam setiap entry key-value key adalah string dan value harus berupa tipe data primitive. Preferences hampir sama
dengan Bundles, namun preferences bersifat persisten sedangkan bundles tidak. Tiga pilihan API untuk mengambil preferences, yaitu
Workshop Struktur dan Pemakaian Teknologi Game
135 •
getPreferences from within your Activity, to access activity specific preferences
• getSharedPreferences from within your Activity or other application
Context, to access application-level preferences •
getDefaultSharedPreferences, on PreferencesManager, to get the shared preferences that work in concert with Android’s overall preference framework
Penggunaan Preference
Semua fungsi get… yang ada pada Preference akan mengembalikan sebuah object dimana isi dari object tersebut dapat dimanipulasi oleh suatu editor melalui
perintah putXXX… dan getXXX untuk meletakkan atau mengambil data container Preference.
Gambar 50 Penggunaan Preference
7.2.2 Files
Android menggunakan konstruksi file yang sama dengan apa yang ada pada aplikasi Java. File dapat disimpan pada memori utama perangkat internal storage
atau pada memori yang lebih besar seperti SD Card external storage. File juga dapat diperoleh dari jaringan.
Workshop Struktur dan Pemakaian Teknologi Game
136 File disimpan dalam media penyimpanan perangkat bersama-sama dengan
sumber daya aplikasi lain seperti ikon, gambar, music, dll yang dinamakan resource files.
7.2.3 Databases
Pengenalan
Android menggunakan program tertanam standalone yang dinamakan sqlite3, yang dapat digunakan untuk :
• create a database,
• define SQL tables,
• indices,
• queries,
• views,
• triggers
• Insert rows,
• delete rows,
• change rows,
• run queries dan
• administer a SQLite database file.
Menggunakan SQLite 1.
SQLite mengimplementasikan standar SQL-92. 2.
Memiliki dukungan trigger dan dapat melakukan query yang cukup kompleks
3. Tidak mendukung referential integrity constraints.
Bagaimana membuat database SQLite
Cara pertama :
Workshop Struktur dan Pemakaian Teknologi Game
137
public static SQLiteDatabase.openDatabase String path, SQLiteDatabase.CursorFactory factory, int flags
Parameters path : to database file to open andor create
factory : an optional factory class that is called to instantiate a cursor when query is called, or null for default
flags : to control database access mode Returns : the newly opened database
Throws : SQLiteException if the database cannot be opened Open
the database
according to
the flags
OPEN_READWRITE, OPEN_READONLY, CREATE_IF_NECESSARY. Sets the locale of the database
to the the systems current locale.
Cara kedua :
SQLiteDatabase db
= this.openOrCreateDatabasemyfriendsDB,
MODE_PRIVATE, null;
where the assumed prefix for the database stored in the devices ram is: datadataCURRENT_namespacedatabases. For instance if this app is created
in a namespace called “cis493.sql1”, the full name of the newly created database will be: “datadatacis493.sql1databasesmyfriendsDB”.
Workshop Struktur dan Pemakaian Teknologi Game
162
Workshop 11
Databases
A. Tujuan
1. Memahami pengertian SQL Database
2. Memahami penggunaan SQL Database
B. Tugas Pendahuluan
1. Pelajari cara pembuatan database di Android
C. Percobaan
a. Percobaan 1 : Membuat table dan insert field pada Android
Langkah 1: Buat project Android baru pada Eclipse Langkah 2: Tambahkan statement berikut pada main.xml
? xml
version =
1.0 encoding
= utf-8
? RelativeLayout
xmlns:android =
http:schemas.android.comapkresandroid android:layout_width
= fill_parent
android:layout_height =
fill_parent android:orientation
= vertical
TextView android:id
= +idtxtFinish
android:layout_width =
wrap_content android:layout_height
= wrap_content
android:layout_centerHorizontal =
true android:layout_centerVertical
= true
android:text =
stringhello TextView
Workshop Struktur dan Pemakaian Teknologi Game
163
android:id =
+idtxtMulai android:layout_width
= wrap_content
android:layout_height =
wrap_content android:layout_alignLeft
= +idtxtFinish
android:layout_below =
+idtxtFinish android:layout_marginTop
= 48dp
android:text =
stringhello RelativeLayout
Langkah 3 : Lengkapi statement berikut pada class java MainActivity
package
com.data;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import
android.util.Log;
public class
DBAdapter {
public static
final String
KEY_ROWID =
_id ;
public static
final String
KEY_ISEBN =
isbn ;
public static
final String
KEY_TITLE =
title ;
public static
final String
KEY_PUBLISHER =
publisher ;
public static
final String
TAG =
DBAdapter ;
private static
final
String DATABASE_NAME
= books
;
private static
final
String DATABASE_TABLE
= titles
;
private static
final int
DATABASE_VERSION = 1;
private static
final String
DATABASE_CREATE =
create table titles _id integer primary key autoincrement,
+ isbn text not null, title text not null,
+ publisher text not null;
;
private final
Context context
;
private
DatabaseHelper DBHelper
;
private SQLiteDatabase
db ;
public DBAdapterContext ctx
{
Workshop Struktur dan Pemakaian Teknologi Game
164
this .
context = ctx;
DBHelper =
new DatabaseHelper
context ;
}
private static
class DatabaseHelper
extends SQLiteOpenHelper
{ DatabaseHelperContext context{
super context,
DATABASE_NAME ,
null ,
DATABASE_VERSION ;
}
public void
onCreateSQLiteDatabase db{ db.execSQL
DATABASE_CREATE ;
}
public void
onUpgradeSQLiteDatabase db, int
oldVersion, int
newVersion{ Log.w
TAG ,
Upgrading database from version +
oldVersion + to
+ newVersion + , which will destroy all
old data ;
db.execSQL Drop table if exist titles
; onCreatedb;
} }
public DBAdapter open
throws SQLException {
db =
DBHelper .getWritableDatabase;
return this
; }
public void
close {
DBHelper .close;
}
public long
insertTitleString isbn,
String title,
String publisher{
ContentValues initialValues = new
ContentValues; initialValues.put
KEY_ISEBN , isbn;
initialValues.put KEY_TITLE
, title; initialValues.put
KEY_PUBLISHER , publisher;
return db
.insert DATABASE_TABLE
, null
, initialValues; }
Workshop Struktur dan Pemakaian Teknologi Game
165
public boolean
delete long
rowid{
return db
.delete DATABASE_TABLE
, KEY_ROWID
+ =
+rowid,
null
0; }
public Cursor getAllTitles{
return db
.query DATABASE_TABLE
, new
String[]{ KEY_ROWID
, KEY_ISEBN
, KEY_TITLE
, KEY_PUBLISHER
},
null ,
null ,
null ,
null ,
null ;
}
public Cursor getTitle
long rowId
throws SQLException{
Cursor mCursor = db
.query true
, DATABASE_TABLE
, new
String[]{ KEY_ROWID
, KEY_ISEBN
, KEY_TITLE
, KEY_PUBLISHER
}, KEY_ROWID
+ =
+ rowId,
null ,
null ,
null ,
null ,
null ;
if mCursor =
null {
mCursor.moveToFirst; }
return mCursor;
}
public boolean
updateTitle long
rowId, String isbn, String title, String publisher{
ContentValues args = new
ContentValues; args.put
KEY_ISEBN , isbn;
args.put KEY_TITLE
, title; args.put
KEY_PUBLISHER , publisher;
return db
.update DATABASE_TABLE
, args, KEY_ROWID
+ =
+ rowId,
null 0;
} }
Workshop Struktur dan Pemakaian Teknologi Game
166 Langkah 4 : Lakukan editing pada kode yang dicetak tebal berikut pada class
AndroidManifest.xml:
? xml
version =
1.0 encoding
= utf-8
? manifest
xmlns:android =
http:schemas.android.comapkresandroid package
= com.data
android:versionCode =
1 android:versionName
= 1.0
uses-sdk android:minSdkVersion
= 10
application android:icon
= drawableic_launcher
android:label =
stringapp_name activity
android:name =
.DatabaseBukuActivity android:label
= stringapp_name
intent-filter action
android:name =
android.intent.action.MAIN category
android:name =
android.intent.category.LAUNCHER intent-filter
activity application
manifest
Langkah 5 : Tekan F11 untuk mendebug aplikasi pada emulator Android Langkah 6 : Maka akan muncul outputnya
Workshop Struktur dan Pemakaian Teknologi Game
167 Langkah 7 : Database akan langsung dibuat, buka SQLiteStudio browser :
Workshop Struktur dan Pemakaian Teknologi Game
168
b. Percobaan 2 : Membuat database dengan SQLHelper