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:
kampuslist

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

  1. DBController.java , Semua operasi CRUD ada disini
  2. MainActivity.java, menampilkan data kampus ke listview
  3. NewKampusActivity.java, Form tambah data kampus

File XML

  1. view_kampus_entry.xml, template untuk menampilkan data kampus per item
  2. activity_main.xml, xml layou tuntuk menampilkan seluruh data kampus dan tombol tambah
  3. 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

By Candra Adi Putra

Candra Adi Putra S.Kom adalah Alumni STMIK AKAKOM Yogyakarta. hubungi saya di candraadiputra (at) gmail (dot) com

7 thoughts on “Tutorial CRUD Android SQLite”

Leave a Reply to Mberu Studio Cancel reply

Your email address will not be published. Required fields are marked *

Discover more from CandraLab

Subscribe now to keep reading and get access to the full archive.

Continue reading