4.1.3 Implementasi HTTP Connection
Kode Program 4. 2 Http Connection
Kode Program 4.2 merupakan Http Connection yang digunakan aplikasi untuk terhubung ke file kurs.php yang ada di web
hosting, sehingga dapat menerima data hasil fetching berupa string pada variabel response. Data yang diterima dapat berupa tanggal
atau nilai kurs tergantung request yang dikirim.
4.1.4 Implementasi SQLite
Pengimplementasian SQLite pada aplikasi konversi mata uang ini, berfungsi untuk menyimpan data kurs dari Yahoo Finance.
String url = http:alfyan.goodluckwith.uskurs.php?usd=+aw+ct=+awi;
HttpClient httpclient = new DefaultHttpClient; HttpRequestBase httpRequest = null;
HttpResponse httpResponse = null; InputStream inputStream = null;
String response1 = ; String response = ;
StringBuffer buffer = new StringBuffer; httpRequest = new HttpGeturl;
try{httpResponse = httpclient.executehttpRequest;} catch ClientProtocolException e1{e1.printStackTrace;}
catch IOException e1{e1.printStackTrace;} try{inputStream = httpResponse.getEntity.getContent;}
catch IllegalStateException e{e.printStackTrace;} catch IOException e{e.printStackTrace;}
byte[] data = new byte[512]; int len = 0;
try{while -1 = len = inputStream.readdata {buffer.appendnew Stringdata, 0, len;}}
catch IOException e{e.printStackTrace;} try{inputStream.close;}
catch IOException e{e.printStackTrace;} response = buffer.toString;
Kode Program 4.3 Koneksi Sqlite
Kode Program 4.3 meng-extend class SQLiteOpenHelper yang berfungsi untuk mengatur pembuatan database onCreate dan
manajemen versi onUpdate.
4.1.5 Implementasi Aplikasi Konversi Mata Uang
Dalam aplikasi konversi mata uang, saat pertama kali diakses aplikasi akan memeriksa data di dalam database local phone
menggunakan Kode Program 4.4.
Kode Program 4.4 Periksa Data
private static class DatabaseHelper extends SQLiteOpenHelper { DatabaseHelperContext context {
supercontext, DATABASE_NAME, null, DATABASE_VERSION;
} Override
public void onCreateSQLiteDatabase db {
db.execSQLDATABASE_CREATE; db.execSQLDATABASE_CREATE2;
} Override
public void onUpgradeSQLiteDatabase db, int oldVersion, int newVersion {
Log.wTAG, Upgrading database from version + oldVersion + to + newVersion + , which will destroy all old
data; db.execSQLDROP TABLE IF EXISTS notes;
onCreatedb;
Listdata list = new ArrayListdata; Cursor cursor = this.mDb.queryDATABASE_TABLE, new String[]
{KEY_TITLE}, null, null, null, null, null; ifcursor.getCount==0{
data dt = new data; dt.setTanggalkosong;
list.adddt;} ifcursor.getCount=0{
if cursor.moveToFirst { do {
data dt = new data;
dt.setTanggalcursor.getString0; list.adddt;
}
Kode Program 4.4 memeriksa jumlah baris yang ada di dalam tabel tanggal, jika tidak ada baris atau baris sama dengan nol berarti
database masih kosong. Apabila jumlah baris tidak sama dengan nol, maka data tanggal akan dimasukkan ke model untuk proses
selanjutnya. Jika data di dalam database masih kosong pengguna aplikasi pertama kali setelah diinstall, maka user harus download
data kurs terlebih dahulu. Jika database tidak kosong, maka tanggal pada database akan diperiksa untuk menentukan apakah data perlu
diperbaharui atau tidak. Gambar 4.3 merupakan alert dialog untuk download data
karena data di dalam database local phone masih kosong.
Gambar 4.3 Alert Dialog Download
Kode Program 4.5 Insert Data Kurs
ContentValues initialValues = new ContentValues; initialValues.putKEY_JENIS, dt.getJenis;
initialValues.putKEY_NILAI, dt.getNilai; return mDb.insertDATABASE_TABLE2, null, initialValues;
Kode Program 4.5 merupakan kode program yang berfungsi untuk menyimpan data hasil fetching yang berupa nilai kurs dan
jenis mata uangnya ke tabel kurs.
Kode Program 4.6
Insert Data Tanggal
Kode Program 4.6 merupakan kode program yang berfungsi
untuk menyimpan data hasil fetching yang berupa tanggal kurs ke tabel tanggal.
Gambar 4.4 merupakan alert dialog untuk update, karena data tanggal pada database local phone tidak sesuai dengan tanggal yang
sedang berlaku pada saat menjalankan aplikasi konversi.
Gambar 4.4 Alert Dialog Pilihan Update
ContentValues initialValues = new ContentValues; initialValues.putKEY_ROWID, dt.getId;
initialValues.putKEY_TITLE, dt.getTanggal; return mDb.insertDATABASE_TABLE, null, initialValues;
Kode Program 4.7 Banding Tanggal 1
Kode Program 4.7 berfungsi untuk membandingkan tanggal
yang sedang berlaku dengan tanggal dari tabel tanggal. Kedua data tanggal diubah formatnya terlebih dahulu ke date “dd-MM-yyyy”,
jika tanggal dari tabel tanggal nilainya sebelum tanggal sekarang maka muncul alert dialog untuk update.
Proses membandingkan data tanggal pada database local phone dengan data tanggal Yahoo Finance yang menggunakan Kode
Program 4.8 akan berjalan ketika memilih tombol yes pada alert dialog update atau saat memilih menu update. Jika data tanggal pada
database local phone adalah sebelum data tanggal Yahoo Finance maka proses update akan berlanjut sampai selesai.
Kode Program 4.8
Banding Tanggal 2
DateFormat df = new SimpleDateFormat dd-MM-yyyy; Date date = new Date;
int tahun = date.getYear + 1900; int bulan = date.getMonth + 1;
int tanggal = date.getDate; try {
Date d1 = df.parseString.valueOftanggal.toString + - + String.valueOfbulan.toString + - +
String.valueOftahun.toString; Date tau = df.parsedt.getPup;
iftau.befored1{ dt.setUgakayo;
DateFormat dg = new SimpleDateFormat dd-MM-yyyy; try {
Date zz1= dg.parsedt.getPup; Date zz2= dg.parsedt.getPupi;
ifzz2.afterzz1{ dt.setUgakayo;
}
Jika nilai dari variabel zz2data tanggal Yahoo Finance setelah varibel zz1data tanggal pada database local phone, maka
proses update akan lanjut.
Kode Program 4.9
Update Data Kurs
Kode Program 4.9 merupakan kode program yang berfungsi
untuk mengubah nilai kurs yang ada di tabel kurs dengan data hasil fetching yang sesuai dengan jenis mata uangnya.
Kode Program 4.10
Update Data Tanggal
Kode Program 4.10 merupakan kode program yang berfungsi
untuk mengubah nilai tanggal yang ada di tabel tanggal dengan data hasil fetching.
Gambar 4.5 merupakan menu utama yang akan langsung tampil jika tanggal pada database up to date.
ContentValues initialValues = new ContentValues; initialValues.putKEY_NILAI, dt.getNilai;
return mDb.updateDATABASE_TABLE2, initialValues, KEY_JENIS + =?, new String[]{dt.getJenis} 0;
ContentValues args = new ContentValues; args.putKEY_TITLE, dt.getTanggal;
return mDb.updateDATABASE_TABLE, args, KEY_ROWID + = + dt.getId, null 0;
Gambar 4.5 Menu Utama
Tampilan yang akan keluar saat memilih menu nilai kurs terlihat pada Gambar 4.6.
.
Gambar 4.6 Tampilan Menu Nilai Kurs
Kode Program 4.11 Menu Nilai Kurs
Kode Program 4.11 berfungsi untuk memanggil semua data nilai kurs beserta jenis mata uangnya dari tabel kurs, dengan format
jenis mata uang=nilai kursnya.
4.2 Pengujian Aplikasi