Cara Membuat SQLite Database Input Data Tugas 1

5
Seperti biasa buatlah project dengan nama terserah anda tapi disini saya beri nama Tugas 1 karena project ini untuk memenuhi tugas mata kuliah saya pemrograman Android. Untuk  :
Activity Name = database4
Layout Name  = main
setelah project dibuat nantinya akan ada dua class yang akan kita modifikasi yaitu class java dan class xml.
kemudian tambahkan/buat beberapa file java dan xml sehingga file yang akan di modifikasi atau kita ubah source kodenya seperti gamar berikut :
1
jika sudah seperti gambar yang di tampilkan sebelumnya, selanjutnya kita akan memodifikasi file main.xml, ubahalah seperti source kode dibawah ini :<?xml version=”1.0″ encoding=”utf-8″?>
   android:id=”@android:id/list”
   android:layout_width=”fill_parent”
   android:layout_height=”fill_parent”
/>
setelah memodifisi file main.xml nantinya tampilan layoutnya akan seperti berikut :
3
Selanjutnya kita mengubah source code file detail_form.xml sehingga coding menjadi seperti berikut :<TableLayout xmlns:android=”http://schemas.android.com/apk/res/android&#8221;
   android:layout_width=”fill_parent”
   android:layout_height=”wrap_content”
   android:stretchColumns=”1″
   >
   <TableRow>
      <TextView android:text=”Nama:” />
      <EditText android:id=”@+id/nama” />
   </TableRow>
   <TableRow>
      <TextView android:text=”Alamat:” />
      <EditText android:id=”@+id/alamat” />
   </TableRow>
   <TableRow>
      <TextView android:text=”Jenis Kelamin:” />
      <RadioGroup android:id=”@+id/jekel”>
          <RadioButton android:id=”@+id/pria”
              android:text=”Pria”
          />
          <RadioButton android:id=”@+id/perempuan”
              android:text=”Perempuan”
          />
         
      </RadioGroup>
   </TableRow>
   <TableRow>
      <TextView android:text=”Hp:” />
      <EditText android:id=”@+id/hp”
          android:singleLine=”false”
          android:gravity=”top”
          android:lines=”2″
          android:scrollHorizontally=”false”
          android:maxLines=”2″
          android:maxWidth=”200sp”
      />
   </TableRow>
   <Button android:id=”@+id/save”
      android:layout_width=”fill_parent”
      android:layout_height=”wrap_content”
      android:text=”Save”
   />
</TableLayout>
Cek hasil Layoutnya apa menjadi seperti gambar dibawah ini :
2
Kemudian kita akan mengubah coding dari file row.xml menjadi seperti coding dibawah ini :<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android&#8221;
   android:layout_width=”fill_parent”
   android:layout_height=”wrap_content”
   android:orientation=”horizontal”
   android:padding=”4px”
   >
   <ImageView android:id=”@+id/icon”
      android:layout_width=”wrap_content”
      android:layout_height=”fill_parent”
      android:layout_alignParentTop=”true”
      android:layout_alignParentBottom=”true”
      android:layout_marginRight=”4px”
   />
   <LinearLayout
      android:layout_width=”fill_parent”
      android:layout_height=”wrap_content”
      android:orientation=”vertical”
      >    
      <TextView android:id=”@+id/title”
          android:layout_width=”fill_parent”
          android:layout_height=”wrap_content”
          android:layout_weight=”1″
          android:gravity=”center_vertical”
          android:textStyle=”bold”
          android:singleLine=”true”
          android:ellipsize=”end”
      />
      <TextView android:id=”@+id/alamat”
          android:layout_width=”fill_parent”
          android:layout_height=”wrap_content”
          android:layout_weight=”1″
          android:gravity=”center_vertical”
          android:singleLine=”true”
          android:ellipsize=”end”
      />
   </LinearLayout>
</LinearLayout>
Setelah mengubah beberapa file xml , sekarang kita akan mengubah isi coding yang ada pada file database4.java seperti coding dibawah ini :package com.wilis.database4;
import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.LayoutInflater;
import android.widget.AdapterView;
import android.widget.CursorAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.RadioGroup;
import android.widget.TabHost;
import android.widget.TextView;
public class database4 extends ListActivity {
   public final static String ID_EXTRA=”com.wilis.database4._ID”;
   Cursor model=null;
   AlmagAdapter adapter=null;
   EditText nama=null;
   EditText alamat=null;
   EditText hp=null;
   RadioGroup jekel=null;
   AlmagHelper helper=null;
   SharedPreferences prefs=null;
   
   @Override
   public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);
     
      helper=new AlmagHelper(this);
      prefs=PreferenceManager.getDefaultSharedPreferences(this);
     
      nama=(EditText)findViewById(R.id.nama);
      alamat=(EditText)findViewById(R.id.alamat);
      hp=(EditText)findViewById(R.id.hp);
      jekel=(RadioGroup)findViewById(R.id.jekel);
     
      initList();
      prefs.registerOnSharedPreferenceChangeListener(prefListener);
   }
   
   @Override
   public void onDestroy() {
      super.onDestroy();
     
      helper.close();
   }
   
   @Override
   public void onListItemClick(ListView list, View view,
                                                          int position, long id) {
      Intent i=new Intent(database4.this, DetailForm.class);
      i.putExtra(ID_EXTRA, String.valueOf(id));
      startActivity(i);
   }
   
   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
      new MenuInflater(this).inflate(R.menu.option, menu);
      return(super.onCreateOptionsMenu(menu));
   }
   @Override
   public boolean onOptionsItemSelected(MenuItem item) {
      if (item.getItemId()==R.id.add) {
          startActivity(new Intent(database4.this, DetailForm.class));
         
          return(true);
      }
      else if (item.getItemId()==R.id.prefs) {
          startActivity(new Intent(this, EditPreferences.class));
     
          return(true);
      }
      return(super.onOptionsItemSelected(item));
   }
   
   private void initList() {
      if (model!=null) {
          stopManagingCursor(model);
          model.close();
      }
     
      model=helper.getAll(prefs.getString(“sort_order”, “nama”));
      startManagingCursor(model);
      adapter=new AlmagAdapter(model);
      setListAdapter(adapter);
   }
   
   private SharedPreferences.OnSharedPreferenceChangeListener prefListener=
    new SharedPreferences.OnSharedPreferenceChangeListener() {
      public void onSharedPreferenceChanged(SharedPreferences sharedPrefs,
                                                                                  String key) {
          if (key.equals(“sort_order”)) {
              initList();
          }
      }
   };
   
   class AlmagAdapter extends CursorAdapter {
      AlmagAdapter(Cursor c) {
          super(database4.this, c);
      }
     
      @Override
      public void bindView(View row, Context ctxt,
                                               Cursor c) {
          AlmagHolder holder=(AlmagHolder)row.getTag();
         
          holder.populateFrom(c, helper);
      }
     
      @Override
      public View newView(Context ctxt, Cursor c,
                                               ViewGroup parent) {
          LayoutInflater inflater=getLayoutInflater();
          View row=inflater.inflate(R.layout.row, parent, false);
          AlmagHolder holder=new AlmagHolder(row);
         
          row.setTag(holder);
         
          return(row);
      }
   }
   
   static class AlmagHolder {
      private TextView nama=null;
      private TextView alamat=null;
      private ImageView icon=null;
      private View row=null;
     
      AlmagHolder(View row) {
          this.row=row;
         
          nama=(TextView)row.findViewById(R.id.title);
          alamat=(TextView)row.findViewById(R.id.alamat);
          icon=(ImageView)row.findViewById(R.id.icon);
      }
     
      void populateFrom(Cursor c, AlmagHelper helper) {
          nama.setText(helper.getNama(c));
          alamat.setText(helper.getAlamat(c));
   
          if (helper.getJekel(c).equals(“Pria”)) {
              icon.setImageResource(R.drawable.pria);
          }
          else if (helper.getJekel(c).equals(“Perempuan”)) {
              icon.setImageResource(R.drawable.perempuan);
          }
         
      }
   }
}
Isi file DetailForm.java ubahlah menjadi seperti berikut :package com.wilis.database4;
import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.TextView;
public class DetailForm extends Activity {
EditText nama=null;
EditText alamat=null;
EditText hp=null;
RadioGroup jekel=null;
AlmagHelper helper=null;
String almagId=null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.detail_form);
helper=new AlmagHelper(this);
nama=(EditText)findViewById(R.id.nama);
alamat=(EditText)findViewById(R.id.alamat);
hp=(EditText)findViewById(R.id.hp);
jekel=(RadioGroup)findViewById(R.id.jekel);
Button save=(Button)findViewById(R.id.save);
save.setOnClickListener(onSave);
almagId=getIntent().getStringExtra(database4.ID_EXTRA);
if (almagId!=null) {
load();
}
}
@Override
public void onDestroy() {
super.onDestroy();
helper.close();
}
private void load() {
Cursor c=helper.getById(almagId);
c.moveToFirst();
nama.setText(helper.getNama(c));
alamat.setText(helper.getAlamat(c));
hp.setText(helper.getHp(c));
if (helper.getJekel(c).equals(“Pria”)) {
jekel.check(R.id.pria);
}
else if (helper.getJekel(c).equals(“Perempuan”)) {
jekel.check(R.id.perempuan);
}
c.close();
}
private View.OnClickListener onSave=new View.OnClickListener() {
public void onClick(View v) {
String type=null;
switch (jekel.getCheckedRadioButtonId()) {
case R.id.pria:
type=”Pria”;
break;
case R.id.perempuan:
type=”Perempuan”;
break;
}
if (almagId==null) {
helper.insert(nama.getText().toString(),
alamat.getText().toString(), type,
hp.getText().toString());
}
else {
helper.update(almagId, nama.getText().toString(),
alamat.getText().toString(), type,
hp.getText().toString());
}
finish();
}
};
}
Isi file AlmagHelper.java ubahlah menjadi seperti berikut :package com.wilis.database4;
import android.content.Context;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteQueryBuilder;
class AlmagHelper extends SQLiteOpenHelper {
   private static final String DATABASE_NAME=”addressmanager4.db”;
   private static final int SCHEMA_VERSION=1;
   
   public AlmagHelper(Context context) {
      super(context, DATABASE_NAME, null, SCHEMA_VERSION);
   }
   
   @Override
   public void onCreate(SQLiteDatabase db) {
      db.execSQL(“CREATE TABLE almag (_id INTEGER PRIMARY KEY AUTOINCREMENT, nama TEXT, alamat TEXT, jekel TEXT, hp TEXT);”);
   }
   @Override
   public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
      // no-op, since will not be called until 2nd schema
      // version exists
   }
   public Cursor getAll(String orderBy) {
      return(getReadableDatabase()
                      .rawQuery(“SELECT _id, nama, alamat, jekel, hp FROM almag ORDER BY “+orderBy,
                                          null));
   }
   
   public Cursor getById(String id) {
      String[] args={id};
      return(getReadableDatabase()
                      .rawQuery(“SELECT _id, nama, alamat, jekel, hp FROM almag WHERE _ID=?”,
                                          args));
   }
   
   public void insert(String nama, String alamat,
                                       String jekel, String hp) {
      ContentValues cv=new ContentValues();
                 
      cv.put(“nama”, nama);
      cv.put(“alamat”, alamat);
      cv.put(“jekel”, jekel);
      cv.put(“hp”, hp);
     
      getWritableDatabase().insert(“almag”, “nama”, cv);
   }
   
   public void update(String id, String nama, String alamat,
                                       String jekel, String hp) {
      ContentValues cv=new ContentValues();
      String[] args={id};
     
      cv.put(“nama”, nama);
      cv.put(“alamat”, alamat);
      cv.put(“jekel”, jekel);
      cv.put(“hp”, hp);
     
      getWritableDatabase().update(“almag”, cv, “_ID=?”, args);
   }
   
   public String getNama(Cursor c) {
      return(c.getString(1));
   }
   
   public String getAlamat(Cursor c) {
      return(c.getString(2));
   }
   
   public String getJekel(Cursor c) {
      return(c.getString(3));
   }
   
   public String getHp(Cursor c) {
      return(c.getString(4));
   }
}
Yang terakhir isi file EditPreferences.javapackage com.wilis.database4;
import android.app.Activity;
import android.os.Bundle;
import android.preference.PreferenceActivity;
public class EditPreferences extends PreferenceActivity {
   @Override
   public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
     
      addPreferencesFromResource(R.xml.preferences);
   }
}
Jika telah selesai memodifikasi semua file coba merunning project
Hasil running awal masih kosong karena belum diinputkan data, tekan button menu pada emulator untuk menampilkan button menu yang ada pada project
4


Komentar

Postingan populer dari blog ini

Cara Buat Form Login & Register Database MYSQL Dengan Eclipse Adt

Cara Buat Aplikasi Android Biodata

Cara Buat Aplikasi Android From Login & Register