Praktikum 5 | CRUD_SQLite

Untuk memudahkan melihat hasil dari pekerjaan selanjutnya, saya sarankan menginstall sqlite
manager pada eclipse :

1. Copy SQLite Manager pada folder dopins (lokasi eclipse-dropin-sqlitemanager_1.0.0.jar)
2. Pada Eclipse, buka Windows -> Show View -> Other -> File Explorer


Jika emalator belum dijalankan, pada File Explorer akan kosong, pastikan emulator sudah dijalankan jika
ingin melihat tampilan seperti di atas.

3. Setelah itu kita akan membuat project CRUD_SQILITE
4.Buka Eclipse, lalu klik file->New->Other->Android->Android Application Project
5. Isikan pada masing-masing Field (untuk bagian field lain boleh dibuat sesuai keinginan
    masing-masing) :
    Application Name :CRUD_SQLITE
    Package Name : jhointegrity.com
    Activity : MainActivity
    Layout : main.xml

Ganti Kode pada main.xml menjadi sepertik berikut
Main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/LinearLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"
    android:background="#00ff00" 
    android:layout_gravity="center" 
    android:orientation="vertical" 
    tools:context=".MainActivity" > 
 
    <Button 
        android:id="@+id/buttonTambahBiodata" 
        android:layout_width="186dp" 
        android:layout_height="wrap_content" 
        android:layout_gravity="right" 
        android:text="Tambah Biodata" /> 
 
    <HorizontalScrollView 
        android:id="@+id/horizontalScrollView" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" > 
 
        <ScrollView 
            android:id="@+id/verticalScrollView" 
            android:layout_width="wrap_content" 
            android:layout_height="match_parent" > 
 
            <TableLayout 
                android:id="@+id/tableBiodata" 
                android:layout_width="match_parent" 
                android:layout_height="wrap_content" > 
            </TableLayout> 
        </ScrollView> 
    </HorizontalScrollView> 
 
</LinearLayout> 

Setelah itu MainActivity :

package jhointegrity.com; 
 
import java.util.ArrayList; 
import java.util.HashMap; 
 
import android.app.Activity; 
import android.app.AlertDialog; 
import android.content.DialogInterface; 
import android.graphics.Color; 
import android.os.Bundle; 
import android.support.v4.view.ViewPager.LayoutParams; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.LinearLayout; 
import android.widget.TableLayout; 
import android.widget.TableRow; 
import android.widget.TextView; 
import android.widget.Toast;
 
public class MainActivity extends Activity implements OnClickListener { 
SQLiteHelper sqLiteHelper = new SQLiteHelper(this);
TableLayout tabelBiodata; 
Button buttonTambahBiodata; 
ArrayList<Button> buttonEdit = new ArrayList<Button>(); 
ArrayList<Button> buttonDelete = new ArrayList<Button>(); 
 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
 super.onCreate(savedInstanceState); 
 setContentView(R.layout.main); 
 
 tabelBiodata = (TableLayout) findViewById(R.id.tableBiodata); 
 buttonTambahBiodata = (Button) findViewById(R.id.buttonTambahBiodata); 
 buttonTambahBiodata.setOnClickListener(this); 
 
 TableRow barisTabel = new TableRow(this); 
 barisTabel.setBackgroundColor(Color.BLUE); 
 
 TextView viewHeaderId = new TextView(this); 
 TextView viewHeaderNama = new TextView(this); 
 TextView viewHeaderAlamat = new TextView(this); 
 TextView viewHeaderAction = new TextView(this); 
 
 viewHeaderId.setText("ID"); 
 viewHeaderNama.setText("Nama"); 
 viewHeaderAlamat.setText("Alamat"); 
 viewHeaderAction.setText("Action"); 
 
 viewHeaderId.setPadding(5, 1, 5, 1); 
 viewHeaderNama.setPadding(5, 1, 5, 1); 
 viewHeaderAlamat.setPadding(5, 1, 5, 1); 
 viewHeaderAction.setPadding(5, 1, 5, 1); 
 
 barisTabel.addView(viewHeaderId); 
 barisTabel.addView(viewHeaderNama); 
 barisTabel.addView(viewHeaderAlamat); 
 barisTabel.addView(viewHeaderAction); 
 
 tabelBiodata.addView(barisTabel, new TableLayout.LayoutParams( 
   LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT)); 
 
 ArrayList<HashMap<String, String>> arrayListBiodata = sqLiteHelper 
   .tampil_semua_biodata(); 
 
 if (arrayListBiodata.size() > 0) { 
 
  for (int i = 0; i < arrayListBiodata.size(); i++) { 
 
   // ambil masing-masing hasmap dari arrayListBiodata 
   HashMap<String, String> hashMapRecordBiodata = arrayListBiodata.get(i); 
// JSONObject jsonChildNode = arrayBiodata.getJSONObject(i); 
   String name = hashMapRecordBiodata.get("nama"); 
   String alamat = hashMapRecordBiodata.get("alamat"); 
   String id = hashMapRecordBiodata.get("id_biodata"); 
 
   System.out.println("Nama :" + name); 
   System.out.println("Alamat :" + alamat); 
   System.out.println("ID :" + id); 
 
   barisTabel = new TableRow(this); 
 
   if (i % 2 == 0) { 
    barisTabel.setBackgroundColor(Color.LTGRAY); 
   } 
 
   TextView viewId = new TextView(this); 
   viewId.setText(id); 
   viewId.setPadding(5, 1, 5, 1); 
   barisTabel.addView(viewId); 
 
   TextView viewNama = new TextView(this); 
   viewNama.setText(name); 
   viewNama.setPadding(5, 1, 5, 1); 
   barisTabel.addView(viewNama); 
   
   TextView viewAlamat = new TextView(this); 
   viewAlamat.setText(alamat); 
   viewAlamat.setPadding(5, 1, 5, 1); 
   barisTabel.addView(viewAlamat); 
 
   buttonEdit.add(i, new Button(this)); 
   buttonEdit.get(i).setId(Integer.parseInt(id)); 
   buttonEdit.get(i).setTag("Edit"); 
   buttonEdit.get(i).setText("Edit"); 
   buttonEdit.get(i).setOnClickListener(this); 
   barisTabel.addView(buttonEdit.get(i)); 
 
   buttonDelete.add(i, new Button(this)); 
   buttonDelete.get(i).setId(Integer.parseInt(id)); 
   buttonDelete.get(i).setTag("Delete"); 
   buttonDelete.get(i).setText("Delete"); 
   buttonDelete.get(i).setOnClickListener(this); 
   barisTabel.addView(buttonDelete.get(i)); 
   tabelBiodata.addView(barisTabel, new TableLayout.LayoutParams(
    LayoutParams.MATCH_PARENT, 
    LayoutParams.MATCH_PARENT)); 
  } 
 } 
 
 
@Override 
public void onClick(View view) { 
 
 if (view.getId() == R.id.buttonTambahBiodata) { 
  // Toast.makeText(MainActivity.this, "Button Tambah Data", 
  // Toast.LENGTH_SHORT).show(); 
 
  tambahBiodata(); 
 
 } else { 
  /* 
   * Melakukan pengecekan pada data array, agar sesuai dengan index 
   * masing-masing button 
   */ 
  for (int i = 0; i < buttonEdit.size(); i++) { 
 
   /* jika yang diklik adalah button edit */ 
   if (view.getId() == buttonEdit.get(i).getId() 
     && view.getTag().toString().trim().equals("Edit")) { 
    //Toast.makeText(MainActivity.this, "Edit : " +  // buttonEdit.get(i).getId(), Toast.LENGTH_SHORT).show();
    int id = buttonEdit.get(i).getId(); 
    getDataByID(id); 
   
      } /* jika yang diklik adalah button delete */ 
      else if (view.getId() == buttonDelete.get(i).getId() 
        &&
  view.getTag().toString().trim().equals("Delete")) { 
       // Toast.makeText(MainActivity.this, "Delete : " +  // buttonDelete.get(i).getId(), Toast.LENGTH_SHORT).show(); 
       int id = buttonDelete.get(i).getId(); 
       deleteBiodata(id); 
   
      } 
     } 
    } 
   } 
   
   public void deleteBiodata(int id) { 
   
    sqLiteHelper.hapus_biodata(id); 
   
    /* restart acrtivity */ 
    finish(); 
    startActivity(getIntent()); 
   } 
   
   public void getDataByID(int id) { 
   
    String namaEdit = null, alamatEdit = null; 
   
    HashMap<String, String> hashMapBiodata = sqLiteHelper 
      .tampil_biodata_berdasarkan_id(id); 
   
    for (int i = 0; i < hashMapBiodata.size(); i++) { 
     namaEdit = hashMapBiodata.get("nama"); 
     alamatEdit = hashMapBiodata.get("alamat"); 
    } 
   
    LinearLayout layoutInput = new LinearLayout(this); 
    layoutInput.setOrientation(LinearLayout.VERTICAL); 
   
    // buat id tersembunyi di alertbuilder 
    final TextView viewId = new TextView(this); 
    viewId.setText(String.valueOf(id)); 
    viewId.setTextColor(Color.TRANSPARENT); 
    layoutInput.addView(viewId); 
   
    final EditText editNama = new EditText(this);
    editNama.setText(namaEdit); 
    layoutInput.addView(editNama); 
   
    final EditText editAlamat = new EditText(this); 
    editAlamat.setText(alamatEdit); 
    layoutInput.addView(editAlamat); 
   
    AlertDialog.Builder builderEditBiodata = new AlertDialog.Builder(this); 
    builderEditBiodata.setTitle("Update Biodata"); 
    builderEditBiodata.setView(layoutInput); 
    builderEditBiodata.setPositiveButton("Update", 
      new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        String nama = editNama.getText().toString(); 
        String alamat = editAlamat.getText().toString(); 
   
        System.out.println("Nama : " + nama + " Alamat : " + alamat); 
   
      
   sqLiteHelper.update_biodata(Integer.parseInt(viewId 
          .getText().toString()), 
  editNama.getText() 
          .toString(), 
  editAlamat.getText().toString()); 
   /* restart acrtivity */ 
     finish(); 
     startActivity(getIntent()); 
    } 
 
   }); 
 
 builderEditBiodata.setNegativeButton("Cancel", 
   new DialogInterface.OnClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int which) { 
     dialog.cancel(); 
    } 
   }); 
 
 builderEditBiodata.show(); 
 
   }
 
public void tambahBiodata() { 
 /* layout akan ditampilkan pada AlertDialog */ 
 LinearLayout layoutInput = new LinearLayout(this); 
 layoutInput.setOrientation(LinearLayout.VERTICAL); 
 
 final EditText editNama = new EditText(this); 
 editNama.setHint("Nama"); 
 layoutInput.addView(editNama); 
 
 final EditText editAlamat = new EditText(this); 
 editAlamat.setHint("Alamat"); 
 layoutInput.addView(editAlamat); 
 
 AlertDialog.Builder builderInsertBiodata = new AlertDialog.Builder(this); 
 builderInsertBiodata.setTitle("Insert Biodata"); 
 builderInsertBiodata.setView(layoutInput); 
 builderInsertBiodata.setPositiveButton("Insert", 
   new DialogInterface.OnClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int which) { 
     String nama = editNama.getText().toString(); 
     String alamat = editAlamat.getText().toString(); 
 
     System.out.println("Nama : " + nama + " Alamat: " + alamat); 
 
     sqLiteHelper.tambah_biodata(nama, alamat); 
     /* restart acrtivity */ 
     finish(); 
     startActivity(getIntent()); 
     
    }
    
 }); 
 
 builderInsertBiodata.setNegativeButton("Cancel", 
   new DialogInterface.OnClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int which) { 
     dialog.cancel(); 
    } 
   }); 
 builderInsertBiodata.show(); 


Setelah Mebuat MainActivity.java sekarang SQLiteHelper.java, berikut source code SQLiteHelper.java :

package jhointegrity.com; 
import java.util.ArrayList;
import java.util.HashMap;

import android.content.ContentValues; 
import android.content.Context; 
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 
 
public class SQLiteHelper extends SQLiteOpenHelper { 
 
 private static final String nama_database = "database_pemain.db"; 
 private static final int versi_database = 1; 
 private static final String query_buat_tabel_biodata_pemain = "CREATE TABLE IF NOT EXISTS tabel_biodata(id_biodata INTEGER PRIMARY KEY AUTOINCREMENT, nama TEXT,alamat TEXT)"; 
 private static final String query_hapus_tabel_biodata_pemain = "DROP TABLE IF EXISTS query_buat_tabel_biodata_pemain"; 
 
 public SQLiteHelper(Context context) { 
  super(context, nama_database, null, versi_database); 
 } 
 
 @Override 
 public void onCreate(SQLiteDatabase sqLiteDatabase) { 
  sqLiteDatabase.execSQL(query_buat_tabel_biodata_pemain); 
  System.out.println("tabel_biodata sudah dibuat"); 
 } 
 
 @Override 
 public void onUpgrade(SQLiteDatabase database, int versi_lama, 
   int versi_baru) { 
  database.execSQL(query_hapus_tabel_biodata_pemain); 
  onCreate(database); 
 
 } 
 
 public void tambah_biodata(String nama, String alamat) { 
  SQLiteDatabase database = this.getWritableDatabase(); 
  ContentValues values = new ContentValues(); 
  values.put("nama", nama); 
  values.put("alamat", alamat); 
  database.insert("tabel_biodata", null, values); 
  database.close(); 
 } 
 public ArrayList<HashMap<String, String>> tampil_semua_biodata() { 
 
// deklarasikan sebuah arraylist yang bisa menampung hashmap 
ArrayList<HashMap<String, String>> arrayListBiodata = new ArrayList<HashMap<String,
String>>(); 
 
SQLiteDatabase database = this.getWritableDatabase(); 
 
Cursor cursor = database.rawQuery("SELECT * FROM tabel_biodata", null); 
 
// kursor langsung diarkan ke posisi paling awal data pada tabel_biodata 
if (cursor.moveToFirst()) { 
 do { 
  // deklarasikan sebuah hashmap, yang bisa menamp 
  HashMap<String, String> hashMapBiodata = new HashMap<String, String>(); 
 
  // masukkan masing-masing field dari tabel_biodata ke dalam hashMapBiodata 
  //pastikan id_biodata, nama dan alamat sama persis dengan field yang ada pada tabel_biodata 
  hashMapBiodata.put("id_biodata", cursor.getString(0)); 
  hashMapBiodata.put("nama", cursor.getString(1)); 
  hashMapBiodata.put("alamat", cursor.getString(2));
// masukkan hashMapBiodata ke dalam arrayListBiodata 
  arrayListBiodata.add(hashMapBiodata); 
 
 } while (cursor.moveToNext()); 
 
return arrayListBiodata; 
 public int update_biodata(int id, String nama, String alamat) { 
 SQLiteDatabase database = this.getWritableDatabase(); 
 ContentValues recordBiodata = new ContentValues(); 
 recordBiodata.put("nama", nama); 
 recordBiodata.put("alamat", alamat); 
 return database.update("tabel_biodata", recordBiodata, "id_biodata=" + id, null); 
}
 public void hapus_biodata(int id) { 
SQLiteDatabase database = this.getWritableDatabase(); 
database.execSQL("DELETE FROM  tabel_biodata WHERE id_biodata='" + id+ "'"); 
database.close(); 
}  
 public HashMap<String, String> tampil_biodata_berdasarkan_id(int id) { 
 
SQLiteDatabase database = this.getReadableDatabase(); 
 
HashMap<String, String> hashMapBiodata = new HashMap<String, String>(); 
 
 
Cursor cursor = database.rawQuery("SELECT * FROM tabel_biodata WHERE id_biodata="
+ id + "", null); 
 
if (cursor.moveToFirst()) { 
 do { 
  hashMapBiodata.put("id_biodata", cursor.getString(0)); 
  hashMapBiodata.put("nama", cursor.getString(1)); 
  hashMapBiodata.put("alamat", cursor.getString(2)); 
 } while (cursor.moveToNext()); 
 
return hashMapBiodata; 
}

Jalankan Run dengan shourcut CTRL+F11 atau klik Kanan package > Runa As > Android Projeck. Lihat Hasilnya Seperti Dibawah Ini :


      



 

 

 
 
 



 

0 komentar:

Posting Komentar