SQlite adalah database bawaan yang didukung secara resmi oleh android. SQlite dipakai di android untuk penyimpanan data seperti Call Log, SMS, contact dan lainnya. Aplikasi pihak ketiga yang membutuhkan database juga bisa memanfaatkan SQLite. Dalam tutorial kali ini, kita akan belajar membuat pengolahan data kampus SQLite di Android. Database hanya terdiri dari satu tabel (kampus) dan 3 kolom yaitu idkampus,namaKampus dan alamat. Tampilan dari listview kampus dan form kampus adalah sbb:
File yang dibutuhkan
Untuk membuat applikasi ini kita membutuhkan 6 file, 3 file XML dan 3 File java. Dalam tutorial, aplikasi baru bisa menampilkan dan menambah data kampus.
File java
- DBController.java , Semua operasi CRUD ada disini
- MainActivity.java, menampilkan data kampus ke listview
- NewKampusActivity.java, Form tambah data kampus
File XML
- view_kampus_entry.xml, template untuk menampilkan data kampus per item
- activity_main.xml, xml layou tuntuk menampilkan seluruh data kampus dan tombol tambah
- add_new_kampus.xml, file xml untuk form data tambah kampus
DBController.java
package com.candra.sqlite; import java.util.ArrayList; import java.util.HashMap; import android.util.Log; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class DBController extends SQLiteOpenHelper { private static final String LOGCAT = null; public DBController(Context applicationcontext) { super(applicationcontext, "kampus.db", null, 1); Log.d(LOGCAT,"Created"); } @Override /* kbuat tabel kampus */ public void onCreate(SQLiteDatabase database) { String query; query = "CREATE TABLE kampus ( kampusId INTEGER PRIMARY KEY," + " kampusName TEXT,alamat TEXT)"; database.execSQL(query); Log.d(LOGCAT,"kampus Created"); } @Override /*upgrade tabelkampus */ public void onUpgrade(SQLiteDatabase database, int version_old, int current_version) { String query; query = "DROP TABLE IF EXISTS kampus"; database.execSQL(query); onCreate(database); } /* kode untuk insert data ke tabel kampus * */ public void addKampus(HashMap<String, String> queryValues) { SQLiteDatabase database = this.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("kampusName", queryValues.get("kampusName")); values.put("alamat", queryValues.get("alamat")); database.insert("kampus", null, values); database.close(); } /* getAllKampus * menampilkan data seluruh kamus ke listview * */ public ArrayList<HashMap<String, String>> getAllkampus() { ArrayList<HashMap<String, String>> kampusList; kampusList = new ArrayList<HashMap<String, String>>(); String selectQuery = "SELECT * FROM kampus"; SQLiteDatabase database = this.getWritableDatabase(); Cursor cursor = database.rawQuery(selectQuery, null); if (cursor.moveToFirst()) { do { HashMap<String, String> map = new HashMap<String, String>(); map.put("kampusId", cursor.getString(0)); map.put("kampusName", cursor.getString(1)); map.put("alamat", cursor.getString(2)); kampusList.add(map); } while (cursor.moveToNext()); } // return contact list return kampusList; } }
Kode MainActivity
package com.candra.sqlite; import java.util.ArrayList; import java.util.HashMap; import android.app.ListActivity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.ListAdapter; import android.widget.SimpleAdapter; import android.widget.TextView; public class MainActivity extends ListActivity { Intent intent; TextView kampusId; DBController controller = new DBController(this); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /*ambil data kampus dari DBController.getAllKampus */ ArrayList<HashMap<String, String>> kampusList = controller .getAllkampus(); /* jikta tidak kosong, tampilkan data kampus ke ListView * */ if (kampusList.size() != 0) { ListAdapter adapter = new SimpleAdapter(MainActivity.this, kampusList, R.layout.view_kampus_entry, new String[] { "kampusId", "kampusName", "alamat" }, new int[] { R.id.kampusId, R.id.kampusName, R.id.alamat }); setListAdapter(adapter); } } /* jika user mengklik tombol Add, maka buka halaman * NewKampusActivity.java */ public void showAddForm(View view) { Intent objIntent = new Intent(getApplicationContext(), NewKampusActivity.class); startActivity(objIntent); } }
Kode untuk Form tambah kampus
package com.candra.sqlite; import java.util.HashMap; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.EditText; public class NewKampusActivity extends Activity{ EditText kampusName,alamat; DBController controller = new DBController(this); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.add_new_kampus); kampusName = (EditText) findViewById(R.id.txtKampusName); alamat = (EditText) findViewById(R.id.txtAlamat); } /* kode untuk menambah data kampus*/ public void addNewKampus(View view) { HashMap<String, String> queryValues = new HashMap<String, String>(); queryValues.put("kampusName", kampusName.getText().toString()); queryValues.put("alamat", alamat.getText().toString()); controller.addKampus(queryValues); this.callHomeActivity(view); } /* panggil MainActivity */ public void callHomeActivity(View view) { Intent objIntent = new Intent(getApplicationContext(), MainActivity.class); startActivity(objIntent); } }
Source code Project
Untuk source code lengkapnya, silahkan download sini
siip tutorial sqlite nya, kalo tutorial buat update gimana gan?
kok insert doang
gan android manifest a kok kosong
Bagus banget nih :))
thanks gan, kalau boleh tau, kenapa untuk menambah data kampus menggunakan hashmap ? maaf saya newbie bingung :)
simple, pas, g kepanjangan :)
Thanks
Mantap Gan…sangat bermanfaat