Selasa, 03 Maret 2015

Materi Pertemuan 4 (SQLite)

Buat database
package com.example.terjemah;

import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DatabaseHelper extends SQLiteOpenHelper {
    private static final String DATABASE_NAME = "dbterjemah";
    public static final String INGGRIS= "inggris";
    public static final String INDONESIA = "indonesia";
    public static final String JERMAN = "JERMAN";
    //Constructor DataKamus untuk initiate database
    public DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, 1);
    }
    //method createTable untuk membuat table kamus
    public void createTable(SQLiteDatabase db){
        db.execSQL("DROP TABLE IF EXISTS kamus");
        db.execSQL("CREATE TABLE if not exists kamus (_id INTEGER PRIMARY KEY AUTOINCREMENT, " + "inggris TEXT, indonesia TEXT, jerman TEXT);");
    }
    //method generateData untuk mengisikan data ke kamus.
    public void generateData(SQLiteDatabase db){
        ContentValues cv=new ContentValues();
        cv.put(INGGRIS, "run");
        cv.put(INDONESIA, "lari");
        cv.put(JERMAN, "laufen");
        db.insert("kamus", INGGRIS, cv);       
    }
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // TODO Auto-generated method stub
        createTable(db);
        generateData(db);
    }
    @Override
    public void onCreate(SQLiteDatabase db) {
    // TODO Auto-generated method stub
    //Toast.makeText(getBaseContext(), "Oncreate", Toast.LENGTH_SHORT).show();
        createTable(db);
        generateData(db);
    }
}


Buat layout untuk menampilkan terjemahan
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Kamus Inggris Indonesia Jerman" />
    <TextView
        android:id="@+id/TextView01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Inggris :" >
    </TextView>
    <EditText
        android:id="@+id/txtInggris"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="" >
    <requestFocus>
    </requestFocus>
    </EditText>
    <Button
        android:id="@+id/btnTerjemah"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:onClick="getTerjemahan"
        android:text="Terjemahkan" >
    </Button>
    <TextView
        android:id="@+id/TextView03"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Indonesia :" >
    </TextView>
    <EditText
        android:id="@+id/txtIndonesia"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:editable="false"
        android:text="" >
    </EditText>
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Jerman" >
    </TextView>
    <EditText
        android:id="@+id/txtJerman"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >
    </EditText>
</LinearLayout>


Buat class untuk panggil layout terjemah
package com.example.terjemah;

import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {
    private SQLiteDatabase db = null;
    private Cursor kamusCursor = null;
    private EditText txtInggris;
    private EditText txtIndonesia;
    private EditText txtJerman;
    private DatabaseHelper datakamus = null;
    public static final String INGGRIS = "inggris";
    public static final String INDONESIA = "indonesia";
   
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        datakamus = new DatabaseHelper(this);
        db = datakamus.getWritableDatabase();
        setContentView(R.layout.activity_main);
        txtInggris = (EditText) findViewById(R.id.txtInggris);
        txtIndonesia = (EditText) findViewById(R.id.txtIndonesia);
        txtJerman = (EditText) findViewById(R.id.txtJerman);
    }
   
    public void getTerjemahan(View view) {
        String bhsindonesia = "";
        String bhsjerman="";
        String englishword = txtInggris.getText().toString();
        kamusCursor = db.rawQuery("SELECT _ID, INGGRIS, INDONESIA, JERMAN "
        + "FROM kamus where INGGRIS='" + englishword
        + "' ORDER BY INGGRIS", null);
        if (kamusCursor.moveToFirst()) {
            for (; !kamusCursor.isAfterLast();
                    kamusCursor.moveToNext()) {
                bhsindonesia = kamusCursor.getString(2);
                bhsjerman = kamusCursor.getString(3);
            }
            }else{
                    Toast.makeText(getBaseContext(), "Terjemahan Tidak ditemukan", Toast.LENGTH_SHORT).show();
            }
            txtIndonesia.setText(bhsindonesia);
            txtJerman.setText(bhsjerman);
    }
   
    @Override
    public void onDestroy() {
        super.onDestroy();
        try {
            kamusCursor.close();
            db.close();
        }catch (Exception e){
        }
    }
}


Buat layout untuk input baru data terjemah
 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text = "Kamus Inggris Indonesia Jerman" />
    <TextView
        android:id="@+id/TextView01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text = "Inggris :" >
    </TextView>
    <EditText
        android:id="@+id/txtInggris"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="" >
    </EditText>
    <TextView
        android:id="@+id/TextView03"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text = "Indonesia :" >
    </TextView>
    <EditText
        android:id="@+id/txtIndonesia"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="" >
    </EditText>
    <TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text = "Jerman" >
    </TextView>
    <EditText
        android:id="@+id/txtJerman"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >
    </EditText>
    <Button
        android:id="@+id/btnTerjemah"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:onClick="saveData"
        android:text = "Save Data" >
    </Button>
</LinearLayout>


Buat class untuk panggil layout input data
package com.example.terjemah;

import android.app.Activity;
import android.content.ContentValues;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class TambahActivity extends Activity {
    private SQLiteDatabase db = null;
    private EditText txtInggris;
    private EditText txtIndonesia;
    private EditText txtJerman;
    private DatabaseHelper datakamus = null;
    public static final String INGGRIS= "inggris";
    public static final String INDONESIA = "indonesia";
    public static final String JERMAN = "JERMAN";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tambah);
        datakamus = new DatabaseHelper(this);
        db = datakamus.getWritableDatabase();
        txtInggris = (EditText) findViewById(R.id.txtInggris);
        txtIndonesia = (EditText) findViewById(R.id.txtIndonesia);
        txtJerman = (EditText) findViewById(R.id.txtJerman);
    }

    public void saveData(View view) {
        String bhsindonesia = txtIndonesia.getText().toString();;
        String bhsjerman= txtJerman.getText().toString();
        String englishword = txtInggris.getText().toString();
        ContentValues cv=new ContentValues();
        cv.put(INGGRIS, englishword);
        cv.put(INDONESIA, bhsindonesia);
        cv.put(JERMAN, bhsjerman);
        if (db.insert("kamus", INGGRIS, cv)>0){
            Toast.makeText(getBaseContext(), "Save Data Success", Toast.LENGTH_SHORT).show();
        }else{
            Toast.makeText(getBaseContext(), "Save Data Fail", Toast.LENGTH_SHORT).show();
        }
    }
   
    @Override
    public void onDestroy() {
        super.onDestroy();
        db.close();
    }
}


JANGAN LUPA UNTUK MENGATUR CLASS MANA (MainActivity.java atau TambahActivity.java) YANG AKAN DI-RUNNING. ATUR CLASS TERSEBUT PADA FILE AndroidManifest.xml.

Tidak ada komentar:

Posting Komentar