Friday, January 24, 2014

Android Database SQLite Tutorial (III) : Membuat Fungsi Lihat Data (Tampil Data)

Ini merupakan tutorial lanjutan dari seri tutorial android sebelumnya (lihat postingan sebelum ini). Jadi kita akan tetap bekerja pada project yang sudah kita buat sebelumnya.

Okeh langsung saja ke step-stepnya:

1. Buat Activity baru dengan nama “LihatData” (tanpa tanda petik) dan layout “lihatdata”. *Silahkan sesuaikan sendiri jika ingin memberi nama sendiri.

2. Selanjutnya kita akan mengatur tampilan layoutnya. Buka folder res/layout pada project kalian dan buka file “lihatdata.xml”. Isikan kode berikut:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:background="@drawable/bgbiru"
    tools:context=".LihatData" >

<TextView android:id="@+id/judul"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="20dp"
        android:textStyle="bold"
        android:textColor="#00FF00"
        android:textSize="18sp"
        android:text="@string/txtjudul" />

<ListView
    android:id="@+id/lv"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/judul" >
</ListView>
</RelativeLayout>
3. Buka “strings.xml” dan tambahkan script berikut:
<string name="txtjudul">DAFTAR MAHASISWA</string>
4. Kemudian kita akan menghubungkan activity LihatData ke MainMenu supaya jika menu tambah data diklik akan tampil activity LihatData. Buka MainMenu.java dan ganti scriptnya menjadi seperti berikut:
 package com.aina.dblatihan;

import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.app.Activity;
import android.content.Intent;


public class MainMenu extends Activity implements OnClickListener{
    private Button btnTambah,btnLihat,btnCari;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mainmenu);
        btnTambah = (Button) findViewById(R.id.btntambah);
        btnTambah.setOnClickListener(this);
      
        btnLihat = (Button) findViewById(R.id.btnlihat);
        btnLihat.setOnClickListener(this);
      
        btnCari = (Button) findViewById(R.id.btncari);
        btnCari.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch(v.getId())
        {
            case R.id.btntambah :
                Intent td = new Intent(this, TambahData.class);
                startActivity(td);
                break;
            case R.id.btnlihat :
                Intent ld = new Intent(this, LihatData.class);
                startActivity(ld);
                break;
        }
    }
}

5. Selanjutnya buka DBDataSource.java. Kita perlu menambahkan fungsi untuk mengambil semua data mahasiswa dari database. Berikut ini kodenya (Tambahkan pada bagian sebelum kurung tutup terakhir) :
 //mengambil semua data mhs
    public ArrayList<Mahasiswa> getAllMahasiswa() {
        ArrayList<Mahasiswa> daftarMahasiswa = new ArrayList<Mahasiswa>();
   
        // select all SQL query
        Cursor cursor = database.query(DBHelper.TABLE_NAME,
            allColumns, null, null, null, null, null);
   
        // pindah ke data paling pertama
        cursor.moveToFirst();
        // jika masih ada data, masukkan data mhs ke
        // daftar mhs
        while (!cursor.isAfterLast()) {
          Mahasiswa mahasiswa = cursorToMahasiswa(cursor);
          daftarMahasiswa.add(mahasiswa);
          cursor.moveToNext();
        }
        // Make sure to close the cursor
        cursor.close();
        return daftarMahasiswa;
      }

6. Berikutnya buatlah file xml dengan nama “kolom.xml”. Sesuaikan scriptnya menjadi seperti berikut:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:paddingBottom="5dp"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="5dp" >

    <TextView
        android:id="@+id/nama"
        android:layout_width="120dp"
        android:layout_height="wrap_content"
        android:text="@string/txtnama"
        android:textColor="#FFFF00"
        />

    <TextView
        android:id="@+id/alamat"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/txtalamat"
        android:textColor="#FFFF00"
    />

</LinearLayout>

7. Kemudian buatlah kelas “DataListAdapter” (tanpa tanda petik) dan berikut ini scriptnya:
package com.aina.dblatihan;

import java.util.ArrayList;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

public class DataListAdapter extends BaseAdapter{
         Context context;
        ArrayList<Mahasiswa> mhsList;
   
        public DataListAdapter(Context context, ArrayList<Mahasiswa> values) {
   
            this.context = context;
            mhsList = values;
        }
        @Override
        public int getCount() {
   
            return mhsList.size();
        }
   
        @Override
        public Object getItem(int position) {
   
            return mhsList.get(position);
        }
   
        @Override
        public long getItemId(int position) {
   
            return position;
        }
        @Override
        public View getView(int position, View convertView, ViewGroup arg2) {
            Mahasiswa contactListItems = mhsList.get(position);
   
            if (convertView == null) {
                LayoutInflater inflater = (LayoutInflater) context
                        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                convertView = inflater.inflate(R.layout.kolom, null);
            TextView tvNama = (TextView) convertView.findViewById(R.id.nama);
            tvNama.setText(contactListItems.getNama());
            TextView tvAlamat = (TextView) convertView.findViewById(R.id.alamat);
            tvAlamat.setText(contactListItems.getAlamat());

   
            return convertView;
        }
            return convertView;
    }
}

8. Selanjutnya buka kelas LihatData dan atur scriptnya menjadi seperti berikut:
package com.aina.dblatihan;

import java.util.ArrayList;
import android.os.Bundle;
import android.widget.ListView;
import android.app.Activity;

public class LihatData extends Activity {
    private DBDataSource dataSource;
    ListView lvCustomList;
    //inisialisasi arraylist
    private ArrayList<Mahasiswa> values;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.lihatdata);
       
        lvCustomList = (ListView) findViewById(R.id.lv);
        dataSource = new DBDataSource(this);
        // buka kontroller
        dataSource.open();

        // ambil semua data mhs
       
        values = dataSource.getAllMahasiswa();
        DataListAdapter contactListAdapter = new DataListAdapter(
                    LihatData.this, (ArrayList<Mahasiswa>) values);
                  lvCustomList.setAdapter(contactListAdapter);
            dataSource.close();
       
    }
             }

9. Jalankan Aplikasi. Pilih Menu Lihat Data maka akan tampil seperti berikut:




Fin.
Happy Coding.
Alhamdulillah.

Jum'at, 24 Januari 2014
21:31

2 comments:

  1. mksi infonya..
    mw naxa donk,, bgaimana menampilkan banyak data dari sqlite ke listview, misalnya 1000 data bgmna cara menampilkannya di listview??
    trima kasih sebelumnya

    ReplyDelete
  2. nanya dong , gimana setelah login, username muncul sebagai text view pembuka, cth: hello, adi.. nah si adi ngambil dari username yang sudah terdaftar

    ReplyDelete