Tuesday, 17 June 2014

PENGERTIAN SHARED PREFERENCE



Shared Preferences (SP) merupakan penyimpan data dalam bentuk key-value, value yang disimpan harus dalam bentuk tipe data primitif seperti integer, double, string, booelan.. Shared Preference objek untuk activity diperoleh melalui getPreferences().

Mode Shared Preferences
Ada tiga mode untuk shared preferences (SP):

MODE_PRIVATE
data yang disimpan dalam SP hanya dapat dibaca oleh aplikasi yang  bersangkutan.

• MODE_WORLD_READABLE
data yang disimpan dalam SP dapat dibaca oleh aplikasi lain.

MODE_WORLD_WRITEABLE
data yang disimpan dalam SP dapat dibaca dan diubah oleh aplikasi lain.

Contoh Implementasi Shared Preferences
Pada program ini kita akan membuat program yang akan menulis/menyimpan dan membaca data dari Shared Preferences.

Buat project android dengan ketentuan sebagai berikut :
·       Project name                    : SharedPreferences
·       Build Target                      : Android 2.1-update1
·       Application Name           : SharedPreferences
·       Package name                 : id.ac.ub.pttik.sharpreferences
·       Activity                               : SharePreferencesActivity
·       Min SDK                              : 7

Berikut adalah code untuk menyimpan data ke dalam SharedPreferences beserta penjelasan. –

package deedeeitsme.wordpress.com;

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
import android.widget.RadioGroup.OnCheckedChangeListener;

//implements OnCheckedChangeListener & OnClickListener untuk action dari radio button & button simpan
public class MainActivity extends Activity implements OnCheckedChangeListener,
        OnClickListener {

    // inisialisasi variable
    private static final String PREFS_KU = "PREFSKU";
    private static final String TIPE_MAP = "TipeMap";
    private static final String ID = "ID";
    private static final String KEY = "Key";
    private RadioGroup radioGroupTipeMap;
    private EditText editID;
    private EditText editKey;
    private Button btnSimpan;
    private boolean tipeMapSatellite;
    private RadioButton radioStreet;
    private RadioButton radioSatellite;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        // panggil method setupView
        setupView();

    }

    private void setupView() {
        // inisialisasi variable komponen view dari activity sesuai dengan
        // layout main.xml yg telah kita desain
        radioGroupTipeMap = (RadioGroup) findViewById(R.id.radioGroupTipeMap);

        // beri action listener ketika terjadi perubahan check pada radioButton
        // yg terdapat di dalam radioGroup
        radioGroupTipeMap.setOnCheckedChangeListener(this);

        radioSatellite = (RadioButton) findViewById(R.id.radioSatellite);
        radioStreet = (RadioButton) findViewById(R.id.radioStreet);

        editID = (EditText) findViewById(R.id.editID);
        editKey = (EditText) findViewById(R.id.editKey);
        btnSimpan = (Button) findViewById(R.id.btnSimpanKonfigurasi);

        // beri action listener untuk sekali click pada button simpan
        btnSimpan.setOnClickListener(this);

        // Beri nilai shared preferences dengan instance dari
        // getSharedPreferences dengan
        // parameter("nama preferensi","Mode Preferensi")
        // mode_private artinya, setiap activity yg berada dalam aplikasi ini
        // bisa saling berbagi data melalui sharedprefs ini.
        SharedPreferences sharedPreferences = getSharedPreferences(PREFS_KU,
                MODE_PRIVATE);
        // beri nilai tipeMapSatellite dengan data yg telah tersimpan pada
        // sharedPrefs dengan parameter ("Key", "nilai default")
        // maksudnya jika tidak ada data ditemukan pada key TIPE_MAP, maka
        // secara otomatis shared kita berikan nilai default false
        tipeMapSatellite = sharedPreferences.getBoolean(TIPE_MAP, false);

        // cek nilai dari tipeMapSatellite, jika true,. maka radioSatellite yg
        // akan terpilih
        if (tipeMapSatellite) {
            radioSatellite.setChecked(true);
        } else {
            radioStreet.setChecked(true);
        }

        // set text editID & editKey dari data yg di dapat dari sharedPrefs
        // dengan parameter ("Key","nilai default")
        // jika tidak terdapat data pada key ID / KEY., maka sharedprefs akan
        // secara otomatis memberikan nilai default kosong ""
        editID.setText(sharedPreferences.getString(ID, ""));
        editKey.setText(sharedPreferences.getString(KEY, ""));

    }

    // beri action ketika perubahan check radio button terjadi
    @Override
    public void onCheckedChanged(RadioGroup group, int checkedId) {
        // TODO Auto-generated method stub
        switch (group.getCheckedRadioButtonId()) {
        case R.id.radioSatellite:
            SharedPreferences sharedPreferences = getSharedPreferences(
                    PREFS_KU, MODE_PRIVATE);
            // disinilah letak action penyimpanan datanya..
            SharedPreferences.Editor editor = sharedPreferences.edit();
            // beri nilai boolean true pada key TIPE_MAP
            editor.putBoolean(TIPE_MAP, true);
            // jangan lupa panggil method commit agar data tersimpan
            editor.commit();
            Toast.makeText(getApplicationContext(), "Tipe Satellite",
                    Toast.LENGTH_LONG).show();
            break;
        case R.id.radioStreet:
            //penjelasan sama seperti sebelumnya
            SharedPreferences sharedPreferences2 = getSharedPreferences(
                    PREFS_KU, MODE_PRIVATE);
            SharedPreferences.Editor editor2 = sharedPreferences2.edit();
            editor2.putBoolean(TIPE_MAP, false);
            editor2.commit();
            Toast.makeText(getApplicationContext(), "Tipe Street",
                    Toast.LENGTH_LONG).show();
            break;
        }
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        SharedPreferences sharedPreferences = getSharedPreferences(PREFS_KU,
                MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        //berikan nilai pada key ID dari EditText editID & editKey
        editor.putString(ID, editID.getText().toString());
        editor.putString(KEY, editKey.getText().toString());
        editor.commit();
        Toast.makeText(getApplicationContext(), "Konfigurasi Tersimpan",
                Toast.LENGTH_LONG).show();
    }
}



PENGERTIAN SQLite

Pengertian SQLite
SQLite itu merupakan sebuah Database yang bersifat ACID-compliant dan memiliki ukuran pustaka kode yang relatif kecil, ditulis dalam bahasa C. SQLite merupakan proyek yang bersifat public domain yang dikerjakan oleh D. Richard Hipp. SQLite adalah sebuah open source database yang telah ada cukup lama, cukup stabil, dan sangat terkenal pada perangkat kecil, termasuk Android. Android menyediakan database relasional yang ringan untuk setiap aplikasi menggunakan SQLite. Aplikasi dapat mengambil keuntungan dari itu untuk mengatur relational database engine untuk menyimpan data secara aman dan efiesien. Untuk Android, SQLite dijadikan satu di dalam Android runtime, sehingga setiap aplikasi Android dapat membuat basis data SQLite. Karena SQLite menggunakan antarmuka SQL, cukup mudah untuk digunakan orang orang dengan pengalaman lain yang berbasis databases. Terdapat beberapa alasan mengapa SQLite sangat cocok untuk pengembangan aplikasi Android, yaitu:
Database dengan konfigurasi nol. Artinya tidak ada konfigurasi database untuk para developer. Ini membuatnya relatif mudah digunakan. Tidak memiliki server. Tidak ada proses database SQLite yang berjalan. Pada dasarnya satu set libraries menyediakan fungsionalitas database. Single-file database. Ini membuat keamanan database secara langsung. Open source. Hal ini membuat developer mudah dalam pengembangan aplikasi.

Contoh produk apa saja yang memekai SQLite?
PHP, Firefox, Chrome, iPhone dan Android adalah contoh produk yang menggunakan SQlite. di Browser firefox, Sqlite dipakai untuk menyimpan konfigurasi, bookmark dan history website sedangkan di smartphone android, SQLite dipakai untuk menyimpan contact. Contoh penggunaan lain bisa dilihat di http://www.sqlite.org/famous.html.

lisensi SQlite?
SQLite adalah produk public domain. Artinya tidak punya lisensi, anda boleh mengambil binary atau source codenya secara free / GRATIS membuat produk komersial menggunakan SQLite?
Anda boleh membuat software dengan lisensi suka suka anda.  Anda boleh mengopensourcekan atau mengkomersialkan itu bebas anda lakukan.

Tipe data yang didukung di SQLite :
Numeric ( integer , float , double)
Text ( Char , varchar , text )
DATETIME
 BLOB.

Untuk mendapatkan SQLite :
Anda bisa mendownloadnya di http://www.sqlite.org.

OS yang didukung oleh SQLite :
SQLite mendukung semua platform. Anda bebas memilih OS, mau pakai Windows, Linux, Mac OSX bahkan Android dan iPhone.

kesulitan menggunakan SQLite menggunakan Commandline, apakah ada too  berbasis web atau desktop untuk mengelola database SQLite?
Tool yang cukup populer adalah SQLite manager. SQLite manager adalah plugin Firefox, sedangkan tool berbasis web adalah SQLiteManager  yang dibuat dengan PHP dan bisa menggunakan Navicat