Top Banner
Modul Praktikum Pemrograman IV -adam_ab-2014 Hal 1 Praktikum XIV Aplikasi dengan Database SQLite Pokok bahasan: Database SQLite Proses CrUD (Create, Update, Delete) Tujuan Belajar: Setelah mempelajari modul ini mahasiswa diharapkan mengetahui: Proses penyimpanan pada sqlite Membuat aplikasi menggunakan sqlite secara sederhana Teori Dasar SQLite database Android telah menyediakan suatu database yang disebut SQLite untuk menyimpan data dengan model basis data relasional. Aplikasi-aplikasi tertentu yang membutuhkan data secara terstruktur tentu akan sangat terbantu dengan adanya SQLite ini. Aplikasi yang biasanya menggunakan data yang terstruktur misalnya aplikasi kamus, buku telepon dan sebagainya. Sqlite merupakan lighweight database application yang cukup ideal untuk aplikasi mobile. Kelas-kelas yang terdapat di aplikasi yang menggunakan SQLite a. SQLite Database Merupakan kelas yang mempunyai metode seperti: Insert(), meambahkan baris ke database Update(), memperbarui baris pada database Delete(), menghapus baris pada database execSQL(), untuk mengeksekusi sintak SQL b. SQLiteOpenHelper Merupakan sub kelas yang memiliki beberapa metode seperti: onCreate(), dijalankan jika sebelumnya belum tersedia database
11

Praktikum XIV SQLite dataHobbi - never stop learning · PDF fileModul Praktikum Pemrograman ... Modul Praktikum Pemrograman IV -adam_ab-2014 Hal 2 ... Project pada modul ini adalah

Feb 06, 2018

Download

Documents

vankiet
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Praktikum XIV SQLite dataHobbi - never stop learning · PDF fileModul Praktikum Pemrograman ... Modul Praktikum Pemrograman IV -adam_ab-2014 Hal 2 ... Project pada modul ini adalah

Modul Praktikum Pemrograman IV -adam_ab-2014 Hal 1

Praktikum XIV

Aplikasi dengan Database SQLite

Pokok bahasan:

• Database SQLite

• Proses CrUD (Create, Update, Delete)

Tujuan Belajar:

Setelah mempelajari modul ini mahasiswa diharapkan mengetahui:

• Proses penyimpanan pada sqlite

• Membuat aplikasi menggunakan sqlite secara sederhana

Teori Dasar

SQLite database

Android telah menyediakan suatu database yang disebut SQLite untuk menyimpan data dengan

model basis data relasional. Aplikasi-aplikasi tertentu yang membutuhkan data secara

terstruktur tentu akan sangat terbantu dengan adanya SQLite ini. Aplikasi yang biasanya

menggunakan data yang terstruktur misalnya aplikasi kamus, buku telepon dan sebagainya.

Sqlite merupakan lighweight database application yang cukup ideal untuk aplikasi mobile.

Kelas-kelas yang terdapat di aplikasi yang menggunakan SQLite

a. SQLite Database

Merupakan kelas yang mempunyai metode seperti:

• Insert(), meambahkan baris ke database

• Update(), memperbarui baris pada database

• Delete(), menghapus baris pada database

• execSQL(), untuk mengeksekusi sintak SQL

b. SQLiteOpenHelper

Merupakan sub kelas yang memiliki beberapa metode seperti:

• onCreate(), dijalankan jika sebelumnya belum tersedia database

Page 2: Praktikum XIV SQLite dataHobbi - never stop learning · PDF fileModul Praktikum Pemrograman ... Modul Praktikum Pemrograman IV -adam_ab-2014 Hal 2 ... Project pada modul ini adalah

Modul Praktikum Pemrograman IV -adam_ab-2014 Hal 2

• onUpgrade(), dijalankan jika sebelumnya sudah ditemukan database yang sama

namun beda versi. Metode ini bisa digunakan untuk mengubah skema database.

• onOpen(), dijalankan jika database sudah dalam keadaan terbuka

• getWriteDatabase(), berfungsi untuk memanggil database agar bisa dimasuki

data.

• getReadableDatabase(), berfungsi untuk memanggil database agar bisa

membaca datanya.

Cursor

Cursor mempresentasikan hasil query yang dieksekusi pada baris dan kolom tertentu. Contoh di

bawah merupakan ilustrasi mengenai kursor

[Melly, Bekasi] �

Nama Kota

jarwo Bekasi

Tusam Jakarta

Fitri Jogjakarta

Metode yang digunakan pada praktikum ini antara lain:

• moveToFirst(), pindah ke baris pertama

• isAfterLast(), mengirim pesan balik jika posisi kursor sudah berada di baris terakhir.

• getLong(), untuk mengambil data pada kolom yang mempunyai tipe data long

• getString(), untuk mengambil data pada kolom yang mempunyai tipe data string.

Project pada modul ini adalah membuat aplikasi Android untuk memasukkan nama dan hobi ke

dalam form android yang akan diisikan ke database.

Page 3: Praktikum XIV SQLite dataHobbi - never stop learning · PDF fileModul Praktikum Pemrograman ... Modul Praktikum Pemrograman IV -adam_ab-2014 Hal 2 ... Project pada modul ini adalah

Modul Praktikum Pemrograman IV -adam_ab-2014 Hal 3

mainActivity.java

package com.datahobi; import java.util.ArrayList;

import com.db.satu.R;

import android.app.Activity; import android.os.Bundle; import android.view.View;

import android.widget.Button; import android.widget.EditText; import android.widget.TableLayout;

import android.widget.TableRow;

import android.widget.TextView; import android.widget.Toast;

public class MainActivity extends Activity { DatabaseManager dm;

EditText nama, hobi; Button addBtn;

TableLayout tabel4data;// tabel for data

/** Called when the activity is first created. */ @Override

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);

dm = new DatabaseManager(this); tabel4data = (TableLayout) findViewById(R.id.tabel_data);

nama = (EditText) findViewById(R.id.inNama); hobi = (EditText) findViewById(R.id.inHobi); addBtn = (Button) findViewById(R.id.btnAdd);

addBtn.setOnClickListener(new View.OnClickListener() {

@Override public void onClick(View v) {

// TODO Auto-generated method stub simpanData(); }

}); updateTable(); }

protected void simpanData() { // TODO Auto-generated method stub

try {

Page 4: Praktikum XIV SQLite dataHobbi - never stop learning · PDF fileModul Praktikum Pemrograman ... Modul Praktikum Pemrograman IV -adam_ab-2014 Hal 2 ... Project pada modul ini adalah

Modul Praktikum Pemrograman IV -adam_ab-2014 Hal 4

dm.TambahRow(nama.getText().toString(), hobi.getText().toString());

Toast.makeText(getBaseContext(), nama.getText().toString() + ", berhasil disimpan", Toast.LENGTH_SHORT).show();

updateTable();

kosongkanField(); } catch (Exception e) {

// TODO Auto-generated catch block e.printStackTrace(); Toast.makeText(getBaseContext(), "gagal simpan, " +

e.toString(), Toast.LENGTH_LONG).show();

}

}

protected void kosongkanField() { nama.setText(""); hobi.setText("");

} protected void updateTable() {

// TODO Auto-generated method stub while (tabel4data.getChildCount() > 1) { tabel4data.removeViewAt(1);

}

double aa = tabel4data.getChildCount(); String a = String.valueOf(aa);

Toast.makeText(getBaseContext(), "tabel data child : " + a, Toast.LENGTH_SHORT).show();

ArrayList<ArrayList<Object>> data = dm.ambilSemuaBaris();// for (int posisi = 0; posisi < data.size(); posisi++) {

TableRow tabelBaris = new TableRow(this); ArrayList<Object> baris = data.get(posisi);

TextView idTxt = new TextView(this); idTxt.setText(baris.get(0).toString()); tabelBaris.addView(idTxt);

TextView namaTxt = new TextView(this); namaTxt.setText(baris.get(1).toString());

tabelBaris.addView(namaTxt); TextView hobiTxt = new TextView(this);

hobiTxt.setText(baris.get(2).toString()); tabelBaris.addView(hobiTxt);

Page 5: Praktikum XIV SQLite dataHobbi - never stop learning · PDF fileModul Praktikum Pemrograman ... Modul Praktikum Pemrograman IV -adam_ab-2014 Hal 2 ... Project pada modul ini adalah

Modul Praktikum Pemrograman IV -adam_ab-2014 Hal 5

tabel4data.addView(tabelBaris);

} } }

Page 6: Praktikum XIV SQLite dataHobbi - never stop learning · PDF fileModul Praktikum Pemrograman ... Modul Praktikum Pemrograman IV -adam_ab-2014 Hal 2 ... Project pada modul ini adalah

Modul Praktikum Pemrograman IV -adam_ab-2014 Hal 6

DatabaseManager,java

package com.datahobi;

import java.util.ArrayList;

import android.content.ContentValues; import android.content.Context;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log;

public class DatabaseManager {

private static final String ROW_ID = "_id";

private static final String ROW_NAMA = "nama"; private static final String ROW_HOBI = "hobi";

private static final String NAMA_DB = "Databasehobi";// nama database private static final String NAMA_TABEL = "hobiku"; // nama tabel

private static final int DB_VERSION =1; //CREATE TABLE hobiku (_id integer PRIMARY KEY autoincrement, nama text,hobi text)

private static final String CREATE_TABLE = "create table "+NAMA_TABEL+" ("+ROW_ID+" integer PRIMARY KEY autoincrement, "+ROW_NAMA+" text,"+ROW_HOBI+"

text)";

private final Context context;

private DatabaseOpenHelper dbHelper; private SQLiteDatabase db;

public DatabaseManager(Context ctx) { this.context = ctx; dbHelper = new DatabaseOpenHelper(context);

db = dbHelper.getWritableDatabase();

}

private static class DatabaseOpenHelper extends SQLiteOpenHelper { public DatabaseOpenHelper(Context context) {

super(context, NAMA_DB, null, DB_VERSION); // TODO Auto-generated constructor stub

}

@Override public void onCreate(SQLiteDatabase db) {

// TODO Auto-generated method stub db.execSQL(CREATE_TABLE); }

Page 7: Praktikum XIV SQLite dataHobbi - never stop learning · PDF fileModul Praktikum Pemrograman ... Modul Praktikum Pemrograman IV -adam_ab-2014 Hal 2 ... Project pada modul ini adalah

Modul Praktikum Pemrograman IV -adam_ab-2014 Hal 7

@Override

public void onUpgrade(SQLiteDatabase db, int oldVer, int newVer) { // TODO Auto-generated method stub"DROP TABLE IF EXISTS

titles"

db.execSQL("DROP TABLE IF EXISTS "+NAMA_DB); onCreate(db);

} }

public void close() { dbHelper.close(); }

public void TambahRow(String nama, String hobi) {

ContentValues values = new ContentValues(); values.put(ROW_NAMA, nama); values.put(ROW_HOBI, hobi);

try {

// db.delete(NAMA_TABEL, null, null); db.insert(NAMA_TABEL, null, values);

} catch (Exception e) { Log.e("DB ERROR", e.toString()); e.printStackTrace();

} }

public ArrayList<ArrayList<Object>> ambilSemuaBaris() { ArrayList<ArrayList<Object>> dataArray = new ArrayList<ArrayList<Object>>();

Cursor cur; try { cur = db.query(NAMA_TABEL,

new String[] { ROW_ID, ROW_NAMA, ROW_HOBI },

null, null, null, null, null);

cur.moveToFirst(); if (!cur.isAfterLast()) { do {

ArrayList<Object> dataList = new ArrayList<Object>();

dataList.add(cur.getLong(0));

Page 8: Praktikum XIV SQLite dataHobbi - never stop learning · PDF fileModul Praktikum Pemrograman ... Modul Praktikum Pemrograman IV -adam_ab-2014 Hal 2 ... Project pada modul ini adalah

Modul Praktikum Pemrograman IV -adam_ab-2014 Hal 8

dataList.add(cur.getString(1)); dataList.add(cur.getString(2));

dataArray.add(dataList);

} while (cur.moveToNext());

}

} catch (Exception e) { // TODO Auto-generated catch block

e.printStackTrace(); Log.e("DEBE ERROR", e.toString());

}

return dataArray; }

}

Tambahkan script pada string.xml menjadi seperti di bawah ini

<?xml version="1.0" encoding="utf-8"?>

<resources> <string name="hello">Masukkan nama dan hobi</string> <string name="app_name">Database nama dan hobby</string>

<string name="btnAddtxt">Tambah Data</string> <string name="namaLabel">Nama</string> <string name="hobiLabel">hobi</string>

<string name="nomorLabel">No.</string>

</resources>

Page 9: Praktikum XIV SQLite dataHobbi - never stop learning · PDF fileModul Praktikum Pemrograman ... Modul Praktikum Pemrograman IV -adam_ab-2014 Hal 2 ... Project pada modul ini adalah

Modul Praktikum Pemrograman IV -adam_ab-2014 Hal 9

Tambahkan script mainactivity layout menjadi seperti di bawah ini

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent"

android:layout_height="fill_parent"> <TextView android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/hello" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"

android:id="@+id/linearLayout1"> <EditText android:id="@+id/inNama" android:layout_height="wrap_content"

android:layout_width="100dip"></EditText>

<EditText android:id="@+id/inHobi" android:layout_height="wrap_content"

android:layout_width="100dip"></EditText> <Button android:layout_width="wrap_content" android:id="@+id/btnAdd"

android:layout_height="wrap_content" android:text="@string/btnAddtxt"></Button>

</LinearLayout>

<TableLayout android:layout_height="wrap_content"

android:layout_width="match_parent"

android:id="@+id/tabel_data"> <TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content"

android:layout_height="wrap_content"> <TextView android:layout_height="wrap_content" android:layout_width="50dip"

android:text="@string/nomorLabel" android:id="@+id/no_id"></TextView> <TextView android:layout_height="wrap_content"

android:layout_width="100dip" android:text="@string/namaLabel"

android:id="@+id/nama_id"></TextView>

<TextView android:layout_width="100dip" android:layout_height="wrap_content" android:text="@string/hobiLabel"

android:id="@+id/hobi_id"></TextView> </TableRow> </TableLayout>

</LinearLayout>

Page 10: Praktikum XIV SQLite dataHobbi - never stop learning · PDF fileModul Praktikum Pemrograman ... Modul Praktikum Pemrograman IV -adam_ab-2014 Hal 2 ... Project pada modul ini adalah

Modul Praktikum Pemrograman IV

Jalankan aplikasi tersebut

Pemrograman IV -adam_ab-2014

Data ditambah anto

Hal 10

Page 11: Praktikum XIV SQLite dataHobbi - never stop learning · PDF fileModul Praktikum Pemrograman ... Modul Praktikum Pemrograman IV -adam_ab-2014 Hal 2 ... Project pada modul ini adalah

Modul Praktikum Pemrograman IV

Database dibuka dengan SQLite database Browser

Pemrograman IV -adam_ab-2014

SQLite database Browser

Hal 11