0% menganggap dokumen ini bermanfaat (0 suara)
12 tayangan10 halaman

Aplikasi CRUD SQLite untuk Inventaris Barang

Dokumen tersebut membahas tentang membuat aplikasi CRUD (create, read, update, delete) untuk mengelola data barang menggunakan database SQLite di Android. Terdiri dari model, view, dan controller, model berisi kelas Barang untuk mendefinisikan objek barang, view berisi antarmuka pengguna, dan controller menghubungkan keduanya serta menangani operasi database seperti penambahan data barang baru.

Diunggah oleh

Paulo Dybala
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
12 tayangan10 halaman

Aplikasi CRUD SQLite untuk Inventaris Barang

Dokumen tersebut membahas tentang membuat aplikasi CRUD (create, read, update, delete) untuk mengelola data barang menggunakan database SQLite di Android. Terdiri dari model, view, dan controller, model berisi kelas Barang untuk mendefinisikan objek barang, view berisi antarmuka pengguna, dan controller menghubungkan keduanya serta menangani operasi database seperti penambahan data barang baru.

Diunggah oleh

Paulo Dybala
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

Aplikasi CRUD Database SQLite

CRUD (Create, Read, Update, Delete).


CRUD berarti aplikasi ini akan bisa melakukan fungsi create barang baru, read data
barang, update/edit info barang yang sudah tersimpan, dan delete barang di database. Dan
sebagaimana aplikasi-aplikasi data-driven lainnya.

Model View Controller


Model view controller adalah suatu arsitektur perangkat lunak yang memisahkan representasi informasi
dengan interaksi pengguna.
 Model terdiri dari data aplikasi dan fungsi-fungsi yang berhubungan dengan database, sedangkan
 Controller berfungsi untuk penengah, yang akan mengkonversi input sebagai perintah
untuk model atau view.
 View sendiri berfungsi untuk menampilkan data yang diambil dari model dan diolah lewat kontroller
dalam bentuk tabel, grafik, atau informasi sederhana.

Pada aplikasi inventoris ini yang menjadi objek adalah barang, barang tersebut akan mempunyai atribut
berupa :
 id
 nama_barang
 merk_barang, dan
 harga_barang

Membuat Database SQLite


Kita akan buat kelas modelnya, yaitu kelas [Link].
Kelas barang berfungsi untuk mendefinisikan objek barang beserta fungsi-fungsi dan atribut-atributnya,
mereka mempunyai nama, ID, merk, dan sebagainya.

Inilah kode untuk kelas [Link].

[Link];

public class Barang {

private long id;


private String nama_barang;
private String merk_barang;
private String harga_barang;

public Barang()
{

/**
* @return the id
*/
public long getId() {
return id;
}

Create PDF files without this message by purchasing novaPDF printer ([Link]
/**
* @param id the id to set
*/
public void setId(long id) {
[Link] = id;
}

/**
* @return the nama_barang
*/
public String getNama_barang() {
return nama_barang;
}

/**
* @param nama_barang the nama_barang to set
*/
public void setNama_barang(String nama_barang) {
this.nama_barang = nama_barang;
}

/**
* @return the merk_barang
*/
public String getMerk_barang() {
return merk_barang;
}

/**
* @param merk_barang the merk_barang to set
*/
public void setMerk_barang(String merk_barang) {
this.merk_barang = merk_barang;
}

/**
* @return the harga_barang
*/
public String getHarga_barang() {
return harga_barang;
}

/**
* @param harga_barang the harga_barang to set
*/
public void setHarga_barang(String harga_barang) {
this.harga_barang = harga_barang;
}

@Override
public String toString()
{

Create PDF files without this message by purchasing novaPDF printer ([Link]
return "Barang "+ nama_barang +" "+ merk_barang + " "+
harga_barang;
}
}

Database Helper
Database Helper sebenarnya sudah ada kelasnya pada Android, yaitu bernama SQLiteOpenHelper.
Sehingga kita tinggal meng-extends kelas ini dari kelas SQLiteOpenHelper, atau dengan kata lain,
melakukan pewarisan.
Inilah kode untuk kelas [Link] :

[Link];

//deklarasi import package


import [Link];
import [Link];
import [Link];
import [Link];

public class DBHelper extends SQLiteOpenHelper{


/** deklarasi konstanta-konstanta yang digunakan pada
database, seperti nama tabel,
nama-nama kolom, nama database, dan versi dari database **/
public static final String TABLE_NAME = "data_inventori";
public static final String COLUMN_ID = "_id";
public static final String COLUMN_NAME = "nama_barang";
public static final String COLUMN_MERK = "merk_barang";
public static final String COLUMN_HARGA = "harga_barang";
private static final String db_name ="[Link]";
private static final int db_version=1;

// Perintah SQL untuk membuat tabel database baru


private static final String db_create = "create table "
+ TABLE_NAME + "("
+ COLUMN_ID +" integer primary key autoincrement, "
+ COLUMN_NAME+ " varchar(50) not null, "
+ COLUMN_MERK+ " varchar(50) not null, "
+ COLUMN_HARGA+ " varchar(50) not null);";

public DBHelper(Context context) {


super(context, db_name, null, db_version);
// Auto generated
}

//mengeksekusi perintah SQL di atas untuk membuat tabel


database baru
@Override
public void onCreate(SQLiteDatabase db) {
[Link](db_create);
}

Create PDF files without this message by purchasing novaPDF printer ([Link]
// dijalankan apabila ingin mengupgrade database
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int
newVersion) {
Log.w([Link](),"Upgrading database from
version " + oldVersion + " to "
+ newVersion + ", which will destroy all old
data");
[Link]("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);

Membuat Fungsi Create Data


Kita akan membuat sebuah kelas yang berfungsi untuk insert data atau create data. Kelas ini berfungsi
untuk menambahkan data barang baru ke database. Dan inilah daftar file-file yang akan kita buat :
 [Link] : berfungsi untuk membuat sebuah layout main menu
 create_data.xml : berfungsi sebagail layout untuk tampilan input data
 [Link] : berfungsi sebagai Controller, kelas inilah yang nantinya berguna untuk
melakukan operasi-operasi pada database, termasuk operasi Create Data
 [Link] : berfungsi sebagai View atau interface untuk memasukkan data

File [Link] Isikan kode berikut :


1 <?xml version="1.0" encoding="utf-8"?>
2 <RelativeLayout xmlns:android="[Link]
3 android:layout_width="match_parent"
4 android:layout_height="match_parent"
5 android:orientation="vertical"
6 >
7
8 <TextView
9 android:id="@+id/nama_app"
10 android:layout_width="wrap_content"
11 android:layout_height="wrap_content"
12 android:layout_centerHorizontal="true"
13 android:layout_centerVertical="true"
14 android:textSize="20sp"
15 android:text="[Link]"
16 />
17
18 <Button
19 android:id="@+id/button_tambah"
20 android:layout_width="wrap_content"
21 android:layout_height="wrap_content"
22 android:layout_below="@id/nama_app"
23 android:layout_centerHorizontal="true"
24 android:text="Tambah Data"
25 />

Create PDF files without this message by purchasing novaPDF printer ([Link]
26 </RelativeLayout>

File [Link]
1 [Link];
2
3 import [Link];
4 import [Link];
5 import [Link];
6 import [Link];
7 import [Link];
8 import [Link];
9
10 public class Menu extends Activity implements OnClickListener{
11
12 private Button bTambah;
13
14 @Override
15 public void onCreate(Bundle savedInstanceState) {
16 [Link](savedInstanceState);
17 setContentView([Link]);
18
19 bTambah = (Button) findViewById([Link].button_tambah);
20 [Link](this);
21
22 }
23 @Override
24 public void onClick(View v) {
25 // TODO Auto-generated method stub
26 switch([Link]())
27 {
28 case [Link].button_tambah :
29 Intent i = new Intent(this, [Link]);
30 startActivity(i);
31 break;
32
33 }
34 }
35 }

File create_data.xml :
1 <LinearLayout xmlns:android="[Link]
2 xmlns:tools="[Link]
3 android:layout_width="match_parent"
4 android:layout_height="match_parent"
5 android:orientation="vertical"
6 >
7
8 <EditText
9 android:id="@+id/nama_barang"
10 android:layout_width="wrap_content"
11 android:layout_height="wrap_content"

Create PDF files without this message by purchasing novaPDF printer ([Link]
12 android:layout_marginTop="15dp"
13 android:inputType="text"
14 android:hint=Nama Barang"
15 android:ems="10" >
16
17 <requestFocus />
18 </EditText>
19 <EditText
20 android:id="@+id/merk_barang"
21 android:layout_width="wrap_content"
22 android:layout_height="wrap_content"
23 android:layout_marginTop="15dp"
24 android:inputType="text"
25 android:hint="Merk Barang"
26 android:ems="10" >
27
28 <requestFocus />
29 </EditText>
30 <EditText
31 android:id="@+id/harga_barang"
32 android:layout_width="wrap_content"
33 android:layout_height="wrap_content"
34 android:layout_marginTop="15dp"
35 android:inputType="number"
36 android:hint="Harga Barang"
37 android:ems="10" >
38
39 <requestFocus />
</EditText>
40
41
<Button
42
android:id="@+id/buttom_submit"
43
android:layout_width="wrap_content"
44
android:layout_height="wrap_content"
45
android:text="Submit"
46
/>
47
</LinearLayout>
48

File [Link]
1 [Link];
2
3 import [Link];
4 import [Link];
5 import [Link];
6 import [Link];
7 import [Link];
8 import [Link];
9 import [Link];
10
11 public class CreateData extends Activity implements OnClickListener{
12

Create PDF files without this message by purchasing novaPDF printer ([Link]
13 //inisilisasi elemen-elemen pada layout
14 private Button buttonSubmit;
15 private EditText edNama;
16 private EditText edMerk;
17 private EditText edHarga;
18 //inisialisasi kontroller/Data Source
19 private DBDataSource dataSource;
20
21 @Override
22 public void onCreate(Bundle savedInstanceState) {
23 [Link](savedInstanceState);
24 setContentView([Link].create_data);
25
26 buttonSubmit = (Button) findViewById([Link].buttom_submit);
27 [Link](this);
28 edNama = (EditText) findViewById([Link].nama_barang);
29 edHarga = (EditText) findViewById([Link].harga_barang);
30 edMerk = (EditText) findViewById([Link].merk_barang);
31
32 // instanstiasi kelas DBDataSource
33 dataSource = new DBDataSource(this);
34
35 //membuat sambungan baru ke database
36 [Link]();
37 }
38
39 //KETIKA Tombol Submit Diklik
40 @Override
41 public void onClick(View v) {
42 // Inisialisasi data barang
43 String nama = null;
String merk = null;
44
String harga = null;
45
@SuppressWarnings("unused")
46
47
//inisialisasi barang baru (masih kosong)
48
Barang barang = null;
49
if([Link]()!=null && [Link]()!=null && [Link](
50
{
51
/* jika field nama, merk, dan harga tidak kosong
52
* maka masukkan ke dalam data barang*/
53 nama = [Link]().toString();
54 merk = [Link]().toString();
55 harga = [Link]().toString();
56 }
57
58 switch([Link]())
59 {
60 case [Link].buttom_submit:
61 // insert data barang baru
62 barang = [Link](nama, merk, harga);
63

Create PDF files without this message by purchasing novaPDF printer ([Link]
64
65 //konfirmasi kesuksesan
66 [Link](this, "masuk Barang\n" +
67 "nama" + barang.getNama_barang() +
68 "merk" + barang.getMerk_barang() +
69 "harga" + barang.getHarga_barang(), Toast.LENGTH_LONG)
70 break;
71 }
72
73 }
74 }

Yang kita perlukan sekarang adalah sebuah Controller yang akan menyambungkan interface tersebut
dengan database yang kita buat.
File baru bernama [Link]. Kodenya seperti berikut :
1 [Link];
2
3 import [Link];
4 import [Link];
5 import [Link];
6 import [Link];
7 import [Link];
8 import [Link];
9 import [Link];
10
11 public class DBDataSource {
12
13 //inisialiasi SQLite Database
14 private SQLiteDatabase database;
15
16 //inisialisasi kelas DBHelper
17 private DBHelper dbHelper;
18
19 //ambil semua nama kolom
20 private String[] allColumns = { DBHelper.COLUMN_ID,
21 DBHelper.COLUMN_NAME, DBHelper.COLUMN_MERK,DBHelper.COLUMN_HARG
22
23 //DBHelper diinstantiasi pada constructor
24 public DBDataSource(Context context)
25 {
26 dbHelper = new DBHelper(context);
27 }
28
29 //membuka/membuat sambungan baru ke database
30 public void open() throws SQLException {
31 database = [Link]();
32 }
33
34 //menutup sambungan ke database
35 public void close() {
36 [Link]();

Create PDF files without this message by purchasing novaPDF printer ([Link]
37 }
38
39 //method untuk create/insert barang ke database
40 public Barang createBarang(String nama, String merk, String harga) {
41
42 // membuat sebuah ContentValues, yang berfungsi
43 // untuk memasangkan data dengan nama-nama
44 // kolom pada database
45 ContentValues values = new ContentValues();
46 [Link](DBHelper.COLUMN_NAME, nama);
47 [Link](DBHelper.COLUMN_MERK, merk);
48 [Link](DBHelper.COLUMN_HARGA, harga);
49
50 // mengeksekusi perintah SQL insert data
51 // yang akan mengembalikan sebuah insert ID
52 long insertId = [Link](DBHelper.TABLE_NAME, null,
53 values);
54
55 // setelah data dimasukkan, memanggil
56 // perintah SQL Select menggunakan Cursor untuk
57 // melihat apakah data tadi benar2 sudah masuk
58 // dengan menyesuaikan ID = insertID
59 Cursor cursor = [Link](DBHelper.TABLE_NAME,
60 allColumns, DBHelper.COLUMN_ID + " = " + insertId, null,
61 null, null, null);
62
63 // pindah ke data paling pertama
64 [Link]();
65
66 // mengubah objek pada kursor pertama tadi
67 // ke dalam objek barang
Barang newBarang = cursorToBarang(cursor);
68
69
// close cursor
70
[Link]();
71
72
// mengembalikan barang baru
73
return newBarang;
74
}
75
76
private Barang cursorToBarang(Cursor cursor)
77
{
78
// buat objek barang baru
79
Barang barang = new Barang();
80
// debug LOGCAT
81 Log.v("info", "The getLONG "+[Link](0));
82 Log.v("info", "The setLatLng "+[Link](1)+","+[Link]
83
84 /* Set atribut pada objek barang dengan
85 * data kursor yang diambil dari database*/
86 [Link]([Link](0));
87

Create PDF files without this message by purchasing novaPDF printer ([Link]
88 barang.setNama_barang([Link](1));
89 barang.setMerk_barang([Link](2));
90 barang.setHarga_barang([Link](3));
91
92 //kembalikan sebagai objek barang
93 return barang;
94 }
95 }

Apabila kita telah mengisi data barang dan mengklik tombol submit, data barang tersebut akan dilempar
ke Controller.
Kemudian kontroler akan menerima inputan data barang tersebut dan memasangkannya sesuai dengan
nama kolom pada database menggunakan ContentValues.
Untuk selanjutnya dimasukkan ke database.
Setelah dimasukkan, data akan dicek kembali menggunakan SQL select yang mengembalikan data
berupa Cursor. Data kursor tersebut kemudian akan diubah menjadi objek barang, dan dilemparkan lagi
ke kelas CreateData untuk kemudian mengkonfirmasikan data apa saja yang barusan kita masukkan.
Yang terakhir, kita akan memodifikasi Android Manifest. Kita pindahkan intent filter launcher nya ke
Activity Menu supaya aktivitas tersebut yang dijalankan pertama kali apabila aplikasi dibuka.
1 <manifest xmlns:android="[Link]
2 package="[Link]"
3 android:versionCode="1"
4 android:versionName="1.0" >
5
6 <uses-sdk
7 android:minSdkVersion="8"
8 android:targetSdkVersion="15" />
9
10 <application
11 android:icon="@drawable/ic_launcher"
12 android:label="@string/app_name"
13 android:theme="@style/AppTheme" >
14 <activity
15 android:name="[Link]"
16 android:label="@string/title_activity_main" >
17 </activity>
18 <activity
19 android:name=".Menu"
20 android:label="@string/title_activity_main" >
21 <intent-filter>
22 <action android:name="[Link]" />
23
24 <category android:name="[Link]" />
25 </intent-filter>
26 </activity>
27 </application>
28 </manifest>

Create PDF files without this message by purchasing novaPDF printer ([Link]

Anda mungkin juga menyukai