SlideShare a Scribd company logo
1 of 15
Download to read offline
Praktikum ANDROID 
ANDROID 
FOR 
BEGINNER MODUL 8 
! 
[ANDROID SAVING DATA] 
!!!!! 
SUDARYATNO 
yatnosudar@gmail.com | @dodulz | facebook : yatno.sudar 
Page 1" of "15
Praktikum ANDROID 
ANDROID SAVING DATA 
! 
Kadang aplikasi yang kita buat membutuhkan media penyimpanan data. Tujuan dari media ini 
adalah menyimpan data yang barus saja kita buat di aplikasi kita. Contoh, GAME untuk 
menyimpan Score, Note untuk menyimpan note, Galleri untuk menyimpan gambar dsb. Android 
memiliki beberapa media penyimpanan data. Media penyimpanan data ini dapat digunakan 
sesuai dengan kebutuhan dari aplikasi kita. 
! 
1. Saving Key-Value Set 
Saving Key-Value digunakan untuk menyimpan data yang bersifat collectioin key dan value. 
Contoh : key = Score value = 100, key = username value = nina dsb. Untuk menggunakan fitur ini 
kita menggunakan class SharedPreferences. 
! 
a. Deklarasi SharePreferences 
Code berikut digunakan untuk mendeklarasi SharePreferences 
b. Menulis SharePreferences 
Code diatas digunakan untuk menyimpan collection save preferences. code putInt() digunakan 
untuk mendeklarasikan collection yang akan disimpan. Dan commit digunakan untuk menyimpan 
data. 
c. Membaca SharePreferences 
! 
Page 2" of "15 
Context context = getActivity();! 
SharedPreferences sharedPref = context.getSharedPreferences(! 
getString(R.string.preference_file_key), Context.MODE_PRIVATE); 
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);! 
SharedPreferences.Editor editor = sharedPref.edit();! 
editor.putInt(getString(R.string.saved_high_score), newHighScore);! 
editor.commit(); 
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);! 
int defaultValue = getResources().getInteger(R.string.saved_high_score_default);! 
long highScore = sharedPref.getInt(getString(R.string.saved_high_score), defaultValue);
Praktikum ANDROID 
2. Saving Files 
Data disimpan dalam bentuk file, data yang disimpan bisa ke dua tujuan. Yaitu internal storage 
dan external storage. Berikut ini adalah kelebihan dan kekurangan di masing-masing 
penyimpanan : 
Jika anda menggunakan external storage sebagai media penyimpanan anda perlu 
menambahkan permission di AndroidManifest.xml : 
Code berikut digunakan untuk menyimpan file di internal storage : 
Code berikut digunakan untuk menyimpan cache 
Page 3" of "15 
Internal Storage ! ! 
Penyimpanan selalu tersedia! 
File hanya bisa diakses oleh apps 
anda! 
Ketika aplikasi di uninstall data 
anda akan hillang 
External Storage! ! 
Penyimpan tidak selalu tersedia! 
File dapat diakses oleh apps lain! 
Ketika aplikasi di uninstall data 
anda masih ada. 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
String filename = "myfile";! 
String string = "Hello world!";! 
FileOutputStream outputStream;! ! try {! 
outputStream = openFileOutput(filename, Context.MODE_PRIVATE);! 
outputStream.write(string.getBytes());! 
outputStream.close();! 
} catch (Exception e) {! 
e.printStackTrace();! 
} 
public File getTempFile(Context context, String url) {! 
File file;! 
try {! 
String fileName = Uri.parse(url).getLastPathSegment();! 
file = File.createTempFile(fileName, null, context.getCacheDir());! 
catch (IOException e) {! 
// Error while creating file! 
}! 
return file;! 
}
Praktikum ANDROID 
Code berikut digunakan melakukan pengecekan apakah external Storage sudah siap untuk 
digunakan atau tidak : 
Untuk menyimpan file di external storage, Kita dapat menentukan apakah apakah directory yang 
kita buat dapat disimpan untuk public atau untuk private. 
public File getAlbumStorageDir(String albumName) {! 
Sedangkan untuk menyimpan dengan dengan directory private android berikut codennya : 
untuk menghapus file bisa menggunakan code berikut 
myContext.deleteFile(fileName); 
Page 4" of "15 
/* Checks if external storage is available for read and write */! 
public boolean isExternalStorageWritable() {! 
String state = Environment.getExternalStorageState();! 
if (Environment.MEDIA_MOUNTED.equals(state)) {! 
return true;! 
}! 
return false;! 
}!! /* Checks if external storage is available to at least read */! 
public boolean isExternalStorageReadable() {! 
String state = Environment.getExternalStorageState();! 
if (Environment.MEDIA_MOUNTED.equals(state) ||! 
Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {! 
return true;! 
}! 
return false;! 
} 
public File getAlbumStorageDir(Context context, String albumName) {! 
// Get the directory for the app's private pictures directory. ! 
File file = new File(context.getExternalFilesDir(! 
Environment.DIRECTORY_PICTURES), albumName);! 
if (!file.mkdirs()) {! 
Log.e(LOG_TAG, "Directory not created");! 
}! 
return file;! 
} 
// Get the directory for the user's public pictures directory. ! 
File file = new File(Environment.getExternalStoragePublicDirectory(! 
Environment.DIRECTORY_PICTURES), albumName);! 
if (!file.mkdirs()) {! 
Log.e(LOG_TAG, "Directory not created");! 
}! 
return file;! 
}
Praktikum ANDROID 
3. Saving Data in SQL Databases 
Untuk menyimpan data dengan lebih terstruktur kita dapat menyimpannya di SQLite. Contoh 
penggunaan aplikasi NOTE. Sama seperti database Enterprise SQLite terdiri dari Database, Table, 
Column, dan Record. 
ORMLite 
Ormlite adalah third party library Android yang digunakan untuk SQLite di android, ringan dan 
dapat menghindari overhead. ORMLite support untuk perintah SQL. Info lebih lanjut dapat dilihat 
di http://ormlite.com/sqlite_java_android_orm.shtml . 
Pada praktikum kali ini kita akan membahas tentang ORMLite. 
Page 5" of "15
Praktikum ANDROID 
PRAKTIKUM 
! Tujuan : Mengenal SQLite, ORMLite,! 
Scope : DBManager, Repo, POJO, ! ! 
1. Create project baru :! 
2. Copy library ormlite-android-4.48-2.jar dan ormlite-core-4.48.jar yang sudah tersedia ke 
folder project -> libs di eclipse ! 
3. Klik kanan pada project -> Properties, kemudian pilih Java Build Path -> Add Jars 
Page 6" of "15
Praktikum ANDROID 
4. Pilih project - > libs , Kemudian pilih library yang kita sudah tambahkan ! 
5. Klik button OK dan OK! 
6. Buat file java dengan nama Notes, ! 
Page 7" of "15 
@DatabaseTable(tableName="notes") 
public class Notes { 
@DatabaseField(generatedId=true) 
public int id; 
@DatabaseField 
public String judul; 
@DatabaseField 
public String isi; 
public int getId() { 
return id; 
} 
public void setId(int id) { 
this.id = id; 
} 
public String getJudul() { 
return judul; 
} 
public void setJudul(String judul) { 
this.judul = judul; 
} 
public String getIsi() { 
return isi; 
} 
public void setIsi(String isi) { 
this.isi = isi; 
} 
}
Praktikum ANDROID 
7. Buat file Java dengan nama DBHelp! 
8. Buat file java DBManager! !! 
Page 8" of "15 
public class DBHelp extends OrmLiteSqliteOpenHelper{ 
private static final String DATABASE_NAME = "buku.db"; 
private static final int DATABASE_VERSION = 1; 
private Dao<Notes, Integer> daoNotes = null; 
private RuntimeExceptionDao<Notes, Integer> runtimesDaoNotes = null; 
public DBHelp(Context context) { 
super(context, DATABASE_NAME, null, DATABASE_VERSION); 
} 
@Override 
public void onCreate(SQLiteDatabase arg0, ConnectionSource arg1) { 
try { 
TableUtils.createTable(connectionSource, Notes.class); 
} catch (SQLException e) { 
Log.e(DBHelp.class.getName(), "Gagal Membuat Table", e); 
} 
} 
@Override 
public void onUpgrade(SQLiteDatabase arg0, ConnectionSource arg1, int 
arg2, 
int arg3) { 
try { 
TableUtils.dropTable(connectionSource, Notes.class, true); 
} catch (SQLException e) { 
Log.e(DBHelp.class.getName(), "Gagal Menghapus Table", e); 
throw new RuntimeException(e); 
} 
} 
@Override 
public void close() { 
daoNotes = null; 
super.close(); 
} 
public Dao<Notes, Integer> getDaoNotes() throws SQLException{ 
if (daoNotes==null) { 
daoNotes = getDao(Notes.class); 
} 
return daoNotes; 
} 
public RuntimeExceptionDao<Notes, Integer> getRuntimesDaoNotes() { 
if (runtimesDaoNotes==null) { 
runtimesDaoNotes = getRuntimeExceptionDao(Notes.class); 
} 
return runtimesDaoNotes; 
} 
}
Praktikum ANDROID 
9. Buat file java NotesRepo! 
10. Edit activity_main.xml layout dengan code berikut : 
Page 9" of "15 
public class DBManager { 
private DBHelp dbHelp = null; 
public DBHelp getDbHelp(Context context) { 
if (dbHelp==null){ 
dbHelp = OpenHelperManager.getHelper(context, 
DBHelp.class); 
} 
return dbHelp; 
} 
public void releaseHelper(DBHelp helper) 
{ 
if (helper != null) { 
OpenHelperManager.releaseHelper(); 
dbHelp = null; 
} 
} 
} 
public class NotesRepo { 
public DBHelp db; 
Dao<Notes,Integer> notesDao; 
public NotesRepo(Context context) { 
try { 
DBManager dbManager = new DBManager(); 
db = dbManager.getDbHelp(context); 
notesDao = db.getDaoNotes(); 
} catch (SQLException e) { 
e.printStackTrace(); 
} 
}public int create(Notes mediaModel) throws SQLException{ 
return notesDao.create(mediaModel); 
}public List<Notes> listall(){ 
try { 
return notesDao.queryForAll(); 
} catch (SQLException e) { 
Log.e("error","query gagal"); 
e.printStackTrace(); 
} 
return null; 
} 
}
Praktikum ANDROID 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/ 
android" 
! 
11. Buat file layout dengan nama add_data.xml dengan code berikut : 
Page "10 of "15 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context=".MainActivity" > 
<LinearLayout 
android:layout_width="match_parent" 
android:layout_height="wrap_content" > 
<TextView 
android:id="@+id/total_data" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_marginBottom="10dp" 
android:layout_weight="0.3" 
android:text="Data Tersimpan" 
android:textAppearance="?android:attr/textAppearanceMedium" 
/> 
! 
<Button 
android:id="@+id/button1" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_weight="1" 
android:onClick="tambah_data" 
android:text="+" /> 
</LinearLayout> 
<ListView 
android:id="@+id/note_data" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_alignParentLeft="true" > 
</ListView> 
</LinearLayout>
Praktikum ANDROID 
! 
12. Edit file MainActivity.java dengan code berikut : ! !! 
Page "11 of "15 
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" > 
<TextView 
android:id="@+id/textView1" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:text="Title" 
android:textAppearance="?android:attr/textAppearanceMedium" /> 
<EditText 
android:id="@+id/editText1" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_marginTop="10dp" 
android:ems="10" > 
<requestFocus /> 
</EditText> 
<TextView 
android:id="@+id/textView2" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_marginTop="10dp" 
android:text="Body" 
android:textAppearance="?android:attr/textAppearanceMedium" /> 
<LinearLayout 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:layout_weight="0.2" 
android:orientation="vertical" > 
<EditText 
android:id="@+id/editText2" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_marginTop="10dp" 
android:background="#fff" 
android:ems="10" 
android:hint="isi notes" 
android:inputType="textMultiLine" /> 
</LinearLayout> 
<Button 
android:id="@+id/button1" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:text="Button" /> ! 
</LinearLayout>
Praktikum ANDROID 
Page "12 of "15 
public class MainActivity extends Activity { 
private ListView list; 
private TextView txt; 
private List<Notes> notes; 
private ArrayAdapter<String> adapter; 
private ArrayList<String> arrlist; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
notes = data(); 
arrlist = data_Notes(); 
setContentView(R.layout.activity_main); 
list = (ListView) findViewById(R.id.note_data); 
txt = (TextView) findViewById(R.id.total_data); 
! 
adapter = new ArrayAdapter<String>(MainActivity.this, 
android.R.layout.simple_list_item_1, arrlist); 
list.setAdapter(adapter); 
! 
if (notes.size() > 0) { 
txt.setText(notes.size() + " note tersimpan"); 
} else { 
txt.setText("Belum ada note"); 
} 
} 
public List<Notes> data(){ 
return new NotesRepo(MainActivity.this).listall(); 
} 
public ArrayList<String> data_Notes(){ 
ArrayList<String> dt = new ArrayList<String>(); 
for (int i = 0; i < data().size(); i++) { 
dt.add(data().get(i).getJudul()); 
} 
return dt; 
} 
public void tambah_data(View view){ 
startActivity(new Intent(MainActivity.this, 
AddActivity.class)); 
} 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
getMenuInflater().inflate(R.menu.main, menu); 
return true; 
} 
}
Praktikum ANDROID 
! 
13. Buat file baru java AddActivity.java ! 
14. Notes adalah class object dari database dan bisa di sebut sebagai table Notes dengan isi judul 
dan body! 
15. DBHelp adalah class database help digunakan untuk membuat database dan menghapus 
database dalam kondisi tertentu! 
16. DBManager adalah database manager digunakan untuk mengontrol database yang akan 
digunakan oleh masing-masing table! 
17. NotesRepo adalah aktifitas database dari table Notes sebagai contoh create, update, delete, 
dan read.! 
18. Jalankan aplikasi 
Page "13 of "15 
public class AddActivity extends Activity { 
private EditText title; 
private EditText body; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.add_data); 
title = (EditText) findViewById(R.id.title_data); 
body = (EditText) findViewById(R.id.body_data); 
} 
public void save_data(View view) { 
Notes notes = new Notes(); 
notes.setJudul(title.getText().toString()); 
notes.setIsi(body.getText().toString()); 
try { 
new NotesRepo(AddActivity.this).create(notes); 
Toast.makeText(AddActivity.this, "Data Sukses 
Tersimpan", 
Toast.LENGTH_LONG).show(); 
} catch (SQLException e) { 
Toast.makeText(AddActivity.this, "Data Gagal 
Tersimpan", 
Toast.LENGTH_LONG).show(); 
e.printStackTrace(); 
} 
startActivity(new Intent(AddActivity.this, 
MainActivity.class) 
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)); 
finish(); 
} 
}
Praktikum ANDROID 
! 
Page "14 of "15
Praktikum ANDROID 
Tugas :! ! 
1. Dari project yang sudah di buat ! 
1. Tampilkan detail data dengan menggunakan query di NotesRepo! 
2. Detail data terdiri dari! 
1. Title / Judul! 
2. Body / isi! 
3. ! 
2. Tambahkan action delete menggunakan action setOnItemLongClickListener. Jika ditekan 
lama maka data akan memunculkan dialog “Hapus Data ” YA untuk menghapus TIDAK untuk 
kembali.! 
3. Method ! 
1. Delete :! 
public int delete(int id) throws SQLException{! 
! return notesDao.deleteById(id);! 
}! 
2. Detail :! 
public Notes detail(int id) throws SQLException{! 
! return notesDao.queryForId(id);! 
}! 
4. Untuk delete di ArrayAdapter anda perlu menambahkan setelah proses delete! 
arrlist.remove(arg2); 
adapter.notifyDataSetChanged(); 
Page "15 of "15

More Related Content

What's hot

Modul praktikum 2 - Android Sudaryatno
Modul praktikum 2 - Android SudaryatnoModul praktikum 2 - Android Sudaryatno
Modul praktikum 2 - Android SudaryatnoYatno Sudar
 
Modul praktikum 14 - Android Sudaryatno
Modul praktikum 14 - Android SudaryatnoModul praktikum 14 - Android Sudaryatno
Modul praktikum 14 - Android SudaryatnoYatno Sudar
 
Modul praktikum 13 - Android Sudaryatno
Modul praktikum 13 - Android SudaryatnoModul praktikum 13 - Android Sudaryatno
Modul praktikum 13 - Android SudaryatnoYatno Sudar
 
Modul praktikum 11 - Android Sudaryatno
Modul praktikum 11 - Android SudaryatnoModul praktikum 11 - Android Sudaryatno
Modul praktikum 11 - Android SudaryatnoYatno Sudar
 
Modul praktikum 17 - Android Sudaryatno
Modul praktikum 17 - Android SudaryatnoModul praktikum 17 - Android Sudaryatno
Modul praktikum 17 - Android SudaryatnoYatno Sudar
 
15. lampiran listing program
15. lampiran   listing program15. lampiran   listing program
15. lampiran listing programFaza Zahrah
 
Belajar Android PHP MySQL Login dengan Volley
Belajar Android PHP MySQL Login dengan VolleyBelajar Android PHP MySQL Login dengan Volley
Belajar Android PHP MySQL Login dengan VolleyAgus Haryanto
 
Cara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLite
Cara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLiteCara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLite
Cara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLitecreatorb dev
 
Belajar Android Membuat Katalog Produk
Belajar Android Membuat Katalog ProdukBelajar Android Membuat Katalog Produk
Belajar Android Membuat Katalog ProdukAgus Haryanto
 
Belajar Android Studio Memberi Efek animasi pada Button
Belajar Android Studio Memberi Efek animasi pada ButtonBelajar Android Studio Memberi Efek animasi pada Button
Belajar Android Studio Memberi Efek animasi pada ButtonAgus Haryanto
 
Tutorial Cara Membuat Aplikasi RSS Android - creatorb
Tutorial Cara Membuat Aplikasi RSS Android - creatorbTutorial Cara Membuat Aplikasi RSS Android - creatorb
Tutorial Cara Membuat Aplikasi RSS Android - creatorbcreatorb dev
 
Chapt 03 layouting dan desain antarmuka &amp; input kontrol dan android widget
Chapt 03 layouting dan desain antarmuka &amp; input kontrol dan android widgetChapt 03 layouting dan desain antarmuka &amp; input kontrol dan android widget
Chapt 03 layouting dan desain antarmuka &amp; input kontrol dan android widgetEdi Faizal
 
Belajar android studio dengan membuat aplikasi android sederhana
Belajar android studio dengan membuat aplikasi android sederhanaBelajar android studio dengan membuat aplikasi android sederhana
Belajar android studio dengan membuat aplikasi android sederhanaslempase
 
Kenalan Dengan Firebase Android
Kenalan Dengan Firebase AndroidKenalan Dengan Firebase Android
Kenalan Dengan Firebase AndroidAgus Haryanto
 
Aplikasi Cuaca dan Quiz Android
Aplikasi Cuaca dan Quiz AndroidAplikasi Cuaca dan Quiz Android
Aplikasi Cuaca dan Quiz Androidrivalbamen
 
Modul framework code igniter
Modul framework code igniterModul framework code igniter
Modul framework code igniterFakhir Rizal
 
Live coding andorid
Live coding andoridLive coding andorid
Live coding andoridArif Huda
 
Tutorial Android Membuat Aplikasi senter Flash light
Tutorial Android Membuat Aplikasi senter Flash lightTutorial Android Membuat Aplikasi senter Flash light
Tutorial Android Membuat Aplikasi senter Flash lightAgus Haryanto
 
Membuat Aplikasi Android Keren
Membuat Aplikasi Android KerenMembuat Aplikasi Android Keren
Membuat Aplikasi Android KerenHangga Aji Sayekti
 
Membuat spinner array pada adt
Membuat spinner array pada adtMembuat spinner array pada adt
Membuat spinner array pada adtiswan_di
 

What's hot (20)

Modul praktikum 2 - Android Sudaryatno
Modul praktikum 2 - Android SudaryatnoModul praktikum 2 - Android Sudaryatno
Modul praktikum 2 - Android Sudaryatno
 
Modul praktikum 14 - Android Sudaryatno
Modul praktikum 14 - Android SudaryatnoModul praktikum 14 - Android Sudaryatno
Modul praktikum 14 - Android Sudaryatno
 
Modul praktikum 13 - Android Sudaryatno
Modul praktikum 13 - Android SudaryatnoModul praktikum 13 - Android Sudaryatno
Modul praktikum 13 - Android Sudaryatno
 
Modul praktikum 11 - Android Sudaryatno
Modul praktikum 11 - Android SudaryatnoModul praktikum 11 - Android Sudaryatno
Modul praktikum 11 - Android Sudaryatno
 
Modul praktikum 17 - Android Sudaryatno
Modul praktikum 17 - Android SudaryatnoModul praktikum 17 - Android Sudaryatno
Modul praktikum 17 - Android Sudaryatno
 
15. lampiran listing program
15. lampiran   listing program15. lampiran   listing program
15. lampiran listing program
 
Belajar Android PHP MySQL Login dengan Volley
Belajar Android PHP MySQL Login dengan VolleyBelajar Android PHP MySQL Login dengan Volley
Belajar Android PHP MySQL Login dengan Volley
 
Cara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLite
Cara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLiteCara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLite
Cara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLite
 
Belajar Android Membuat Katalog Produk
Belajar Android Membuat Katalog ProdukBelajar Android Membuat Katalog Produk
Belajar Android Membuat Katalog Produk
 
Belajar Android Studio Memberi Efek animasi pada Button
Belajar Android Studio Memberi Efek animasi pada ButtonBelajar Android Studio Memberi Efek animasi pada Button
Belajar Android Studio Memberi Efek animasi pada Button
 
Tutorial Cara Membuat Aplikasi RSS Android - creatorb
Tutorial Cara Membuat Aplikasi RSS Android - creatorbTutorial Cara Membuat Aplikasi RSS Android - creatorb
Tutorial Cara Membuat Aplikasi RSS Android - creatorb
 
Chapt 03 layouting dan desain antarmuka &amp; input kontrol dan android widget
Chapt 03 layouting dan desain antarmuka &amp; input kontrol dan android widgetChapt 03 layouting dan desain antarmuka &amp; input kontrol dan android widget
Chapt 03 layouting dan desain antarmuka &amp; input kontrol dan android widget
 
Belajar android studio dengan membuat aplikasi android sederhana
Belajar android studio dengan membuat aplikasi android sederhanaBelajar android studio dengan membuat aplikasi android sederhana
Belajar android studio dengan membuat aplikasi android sederhana
 
Kenalan Dengan Firebase Android
Kenalan Dengan Firebase AndroidKenalan Dengan Firebase Android
Kenalan Dengan Firebase Android
 
Aplikasi Cuaca dan Quiz Android
Aplikasi Cuaca dan Quiz AndroidAplikasi Cuaca dan Quiz Android
Aplikasi Cuaca dan Quiz Android
 
Modul framework code igniter
Modul framework code igniterModul framework code igniter
Modul framework code igniter
 
Live coding andorid
Live coding andoridLive coding andorid
Live coding andorid
 
Tutorial Android Membuat Aplikasi senter Flash light
Tutorial Android Membuat Aplikasi senter Flash lightTutorial Android Membuat Aplikasi senter Flash light
Tutorial Android Membuat Aplikasi senter Flash light
 
Membuat Aplikasi Android Keren
Membuat Aplikasi Android KerenMembuat Aplikasi Android Keren
Membuat Aplikasi Android Keren
 
Membuat spinner array pada adt
Membuat spinner array pada adtMembuat spinner array pada adt
Membuat spinner array pada adt
 

Viewers also liked

MVVM Core By GITS-Indonesia
MVVM Core By GITS-IndonesiaMVVM Core By GITS-Indonesia
MVVM Core By GITS-IndonesiaYatno Sudar
 
Modul praktikum 9 - Android Sudaryatno
Modul praktikum 9 - Android SudaryatnoModul praktikum 9 - Android Sudaryatno
Modul praktikum 9 - Android SudaryatnoYatno Sudar
 
372 Dasar Pengenalan Android Programming
372 Dasar Pengenalan Android Programming372 Dasar Pengenalan Android Programming
372 Dasar Pengenalan Android ProgrammingWirat Mojo
 
Tutorial Lengkap Cara Membuat Aplikasi Android Sederhana
Tutorial Lengkap Cara Membuat Aplikasi Android SederhanaTutorial Lengkap Cara Membuat Aplikasi Android Sederhana
Tutorial Lengkap Cara Membuat Aplikasi Android Sederhanacreatorb dev
 
Pemrograman mobile (project)
Pemrograman mobile (project)Pemrograman mobile (project)
Pemrograman mobile (project)altrypurba
 
Cloud Function For Firebase - GITS
Cloud Function For Firebase - GITSCloud Function For Firebase - GITS
Cloud Function For Firebase - GITSYatno Sudar
 
Fundamental android application development
Fundamental android application developmentFundamental android application development
Fundamental android application developmentGoogle
 
Laporan praktikum modul 4
Laporan praktikum modul 4Laporan praktikum modul 4
Laporan praktikum modul 4Devi Apriansyah
 
Laporan pratikum v mulmet
Laporan pratikum v mulmetLaporan pratikum v mulmet
Laporan pratikum v mulmetrahmi wahyuni
 
Laporan praktikum ii visual
Laporan praktikum ii visualLaporan praktikum ii visual
Laporan praktikum ii visualrahmi wahyuni
 
Pengenalan android ndk
Pengenalan android ndkPengenalan android ndk
Pengenalan android ndkGoogle
 
Laporan praktikum iv.1 visual
Laporan praktikum iv.1 visualLaporan praktikum iv.1 visual
Laporan praktikum iv.1 visualrahmi wahyuni
 
Laporan praktikum iv.2 visual
Laporan praktikum iv.2 visualLaporan praktikum iv.2 visual
Laporan praktikum iv.2 visualrahmi wahyuni
 

Viewers also liked (14)

MVVM Core By GITS-Indonesia
MVVM Core By GITS-IndonesiaMVVM Core By GITS-Indonesia
MVVM Core By GITS-Indonesia
 
Modul praktikum 9 - Android Sudaryatno
Modul praktikum 9 - Android SudaryatnoModul praktikum 9 - Android Sudaryatno
Modul praktikum 9 - Android Sudaryatno
 
372 Dasar Pengenalan Android Programming
372 Dasar Pengenalan Android Programming372 Dasar Pengenalan Android Programming
372 Dasar Pengenalan Android Programming
 
Tutorial Lengkap Cara Membuat Aplikasi Android Sederhana
Tutorial Lengkap Cara Membuat Aplikasi Android SederhanaTutorial Lengkap Cara Membuat Aplikasi Android Sederhana
Tutorial Lengkap Cara Membuat Aplikasi Android Sederhana
 
Pemrograman mobile (project)
Pemrograman mobile (project)Pemrograman mobile (project)
Pemrograman mobile (project)
 
Cloud Function For Firebase - GITS
Cloud Function For Firebase - GITSCloud Function For Firebase - GITS
Cloud Function For Firebase - GITS
 
Fundamental android application development
Fundamental android application developmentFundamental android application development
Fundamental android application development
 
Laporan praktikum modul 4
Laporan praktikum modul 4Laporan praktikum modul 4
Laporan praktikum modul 4
 
Laporan pratikum v mulmet
Laporan pratikum v mulmetLaporan pratikum v mulmet
Laporan pratikum v mulmet
 
Laporan praktikum ii visual
Laporan praktikum ii visualLaporan praktikum ii visual
Laporan praktikum ii visual
 
Modul android
Modul android Modul android
Modul android
 
Pengenalan android ndk
Pengenalan android ndkPengenalan android ndk
Pengenalan android ndk
 
Laporan praktikum iv.1 visual
Laporan praktikum iv.1 visualLaporan praktikum iv.1 visual
Laporan praktikum iv.1 visual
 
Laporan praktikum iv.2 visual
Laporan praktikum iv.2 visualLaporan praktikum iv.2 visual
Laporan praktikum iv.2 visual
 

Similar to Modul praktikum 8 - Android Sudaryatno

9.android&sq lite
9.android&sq lite9.android&sq lite
9.android&sq liteZhank's Cjr
 
Menggunakan database di android
Menggunakan database di androidMenggunakan database di android
Menggunakan database di androidInto Setiawan
 
F 10011543 fathorazi nur fajri
F 10011543 fathorazi nur fajriF 10011543 fathorazi nur fajri
F 10011543 fathorazi nur fajriSyarif Fudin
 
Modul pelatihan-django-dasar-possupi-v1
Modul pelatihan-django-dasar-possupi-v1Modul pelatihan-django-dasar-possupi-v1
Modul pelatihan-django-dasar-possupi-v1Ridwan Fadjar
 
CRUD pada Android Studio menggunakan MySQL
CRUD pada Android Studio menggunakan MySQLCRUD pada Android Studio menggunakan MySQL
CRUD pada Android Studio menggunakan MySQLLusiana Diyan
 
Dicoding Developer Coaching #23: Android | Membangun Modern App dengan Jetpac...
Dicoding Developer Coaching #23: Android | Membangun Modern App dengan Jetpac...Dicoding Developer Coaching #23: Android | Membangun Modern App dengan Jetpac...
Dicoding Developer Coaching #23: Android | Membangun Modern App dengan Jetpac...DicodingEvent
 
modul-praktikum-pemrogramanjavadgnnetbeans-171005005920.pdf
modul-praktikum-pemrogramanjavadgnnetbeans-171005005920.pdfmodul-praktikum-pemrogramanjavadgnnetbeans-171005005920.pdf
modul-praktikum-pemrogramanjavadgnnetbeans-171005005920.pdfHerikusnawijaya3
 
Wawan tutorial-zend-bagian-1-3
Wawan tutorial-zend-bagian-1-3Wawan tutorial-zend-bagian-1-3
Wawan tutorial-zend-bagian-1-3Haswi Haswi
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.11)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.11)Modul Praktikum Pemrograman Berorientasi Objek (Chap.11)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.11)Debby Ummul
 
Octav android mysql
Octav android mysqlOctav android mysql
Octav android mysqlrikysp
 
Introduction on Android programming Tutorial
Introduction on Android programming TutorialIntroduction on Android programming Tutorial
Introduction on Android programming TutorialDimas Prawira
 
Netbeans jasper-tutorial
Netbeans jasper-tutorialNetbeans jasper-tutorial
Netbeans jasper-tutorialyunus pramono
 
Java2 micro edition_Helmi MH_1100631026
Java2 micro edition_Helmi MH_1100631026Java2 micro edition_Helmi MH_1100631026
Java2 micro edition_Helmi MH_1100631026Helmi Mahfudhatul
 
Pertemuan 13 - Shared Preferences and Settings.pptx
Pertemuan 13 - Shared Preferences and Settings.pptxPertemuan 13 - Shared Preferences and Settings.pptx
Pertemuan 13 - Shared Preferences and Settings.pptxHendroGunawan8
 

Similar to Modul praktikum 8 - Android Sudaryatno (20)

Pengenalan pemrograman android
Pengenalan pemrograman androidPengenalan pemrograman android
Pengenalan pemrograman android
 
9.android&sq lite
9.android&sq lite9.android&sq lite
9.android&sq lite
 
Modul belajar java I/O (Input/Ouptut)
Modul belajar java I/O (Input/Ouptut)Modul belajar java I/O (Input/Ouptut)
Modul belajar java I/O (Input/Ouptut)
 
Menggunakan database di android
Menggunakan database di androidMenggunakan database di android
Menggunakan database di android
 
F 10011543 fathorazi nur fajri
F 10011543 fathorazi nur fajriF 10011543 fathorazi nur fajri
F 10011543 fathorazi nur fajri
 
Modul pelatihan-django-dasar-possupi-v1
Modul pelatihan-django-dasar-possupi-v1Modul pelatihan-django-dasar-possupi-v1
Modul pelatihan-django-dasar-possupi-v1
 
CRUD pada Android Studio menggunakan MySQL
CRUD pada Android Studio menggunakan MySQLCRUD pada Android Studio menggunakan MySQL
CRUD pada Android Studio menggunakan MySQL
 
Modul pbo baru
Modul pbo baruModul pbo baru
Modul pbo baru
 
Dicoding Developer Coaching #23: Android | Membangun Modern App dengan Jetpac...
Dicoding Developer Coaching #23: Android | Membangun Modern App dengan Jetpac...Dicoding Developer Coaching #23: Android | Membangun Modern App dengan Jetpac...
Dicoding Developer Coaching #23: Android | Membangun Modern App dengan Jetpac...
 
Modul praktikum-pemrograman java dgn netbeans
Modul praktikum-pemrograman java dgn netbeansModul praktikum-pemrograman java dgn netbeans
Modul praktikum-pemrograman java dgn netbeans
 
modul-praktikum-pemrogramanjavadgnnetbeans-171005005920.pdf
modul-praktikum-pemrogramanjavadgnnetbeans-171005005920.pdfmodul-praktikum-pemrogramanjavadgnnetbeans-171005005920.pdf
modul-praktikum-pemrogramanjavadgnnetbeans-171005005920.pdf
 
Wawan tutorial-zend-bagian-1-3
Wawan tutorial-zend-bagian-1-3Wawan tutorial-zend-bagian-1-3
Wawan tutorial-zend-bagian-1-3
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.11)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.11)Modul Praktikum Pemrograman Berorientasi Objek (Chap.11)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.11)
 
Octav android mysql
Octav android mysqlOctav android mysql
Octav android mysql
 
Introduction on Android programming Tutorial
Introduction on Android programming TutorialIntroduction on Android programming Tutorial
Introduction on Android programming Tutorial
 
PBO Pratikum 1
PBO Pratikum 1PBO Pratikum 1
PBO Pratikum 1
 
Netbeans jasper-tutorial
Netbeans jasper-tutorialNetbeans jasper-tutorial
Netbeans jasper-tutorial
 
Java2 micro edition_Helmi MH_1100631026
Java2 micro edition_Helmi MH_1100631026Java2 micro edition_Helmi MH_1100631026
Java2 micro edition_Helmi MH_1100631026
 
Workshop On eCos
Workshop On eCosWorkshop On eCos
Workshop On eCos
 
Pertemuan 13 - Shared Preferences and Settings.pptx
Pertemuan 13 - Shared Preferences and Settings.pptxPertemuan 13 - Shared Preferences and Settings.pptx
Pertemuan 13 - Shared Preferences and Settings.pptx
 

More from Yatno Sudar

Introduction Data Warehouse With BigQuery
Introduction Data Warehouse With BigQueryIntroduction Data Warehouse With BigQuery
Introduction Data Warehouse With BigQueryYatno Sudar
 
Introduction Flutter for Create Multiplatform Apps
Introduction Flutter for Create Multiplatform AppsIntroduction Flutter for Create Multiplatform Apps
Introduction Flutter for Create Multiplatform AppsYatno Sudar
 
Chatbot With Dialogflow
Chatbot With DialogflowChatbot With Dialogflow
Chatbot With DialogflowYatno Sudar
 
Dialog Flow - GITS Indonesia
Dialog Flow - GITS IndonesiaDialog Flow - GITS Indonesia
Dialog Flow - GITS IndonesiaYatno Sudar
 
Technical Feasibility For Product
Technical Feasibility For ProductTechnical Feasibility For Product
Technical Feasibility For ProductYatno Sudar
 

More from Yatno Sudar (6)

Slack Time
Slack TimeSlack Time
Slack Time
 
Introduction Data Warehouse With BigQuery
Introduction Data Warehouse With BigQueryIntroduction Data Warehouse With BigQuery
Introduction Data Warehouse With BigQuery
 
Introduction Flutter for Create Multiplatform Apps
Introduction Flutter for Create Multiplatform AppsIntroduction Flutter for Create Multiplatform Apps
Introduction Flutter for Create Multiplatform Apps
 
Chatbot With Dialogflow
Chatbot With DialogflowChatbot With Dialogflow
Chatbot With Dialogflow
 
Dialog Flow - GITS Indonesia
Dialog Flow - GITS IndonesiaDialog Flow - GITS Indonesia
Dialog Flow - GITS Indonesia
 
Technical Feasibility For Product
Technical Feasibility For ProductTechnical Feasibility For Product
Technical Feasibility For Product
 

Modul praktikum 8 - Android Sudaryatno

  • 1. Praktikum ANDROID ANDROID FOR BEGINNER MODUL 8 ! [ANDROID SAVING DATA] !!!!! SUDARYATNO yatnosudar@gmail.com | @dodulz | facebook : yatno.sudar Page 1" of "15
  • 2. Praktikum ANDROID ANDROID SAVING DATA ! Kadang aplikasi yang kita buat membutuhkan media penyimpanan data. Tujuan dari media ini adalah menyimpan data yang barus saja kita buat di aplikasi kita. Contoh, GAME untuk menyimpan Score, Note untuk menyimpan note, Galleri untuk menyimpan gambar dsb. Android memiliki beberapa media penyimpanan data. Media penyimpanan data ini dapat digunakan sesuai dengan kebutuhan dari aplikasi kita. ! 1. Saving Key-Value Set Saving Key-Value digunakan untuk menyimpan data yang bersifat collectioin key dan value. Contoh : key = Score value = 100, key = username value = nina dsb. Untuk menggunakan fitur ini kita menggunakan class SharedPreferences. ! a. Deklarasi SharePreferences Code berikut digunakan untuk mendeklarasi SharePreferences b. Menulis SharePreferences Code diatas digunakan untuk menyimpan collection save preferences. code putInt() digunakan untuk mendeklarasikan collection yang akan disimpan. Dan commit digunakan untuk menyimpan data. c. Membaca SharePreferences ! Page 2" of "15 Context context = getActivity();! SharedPreferences sharedPref = context.getSharedPreferences(! getString(R.string.preference_file_key), Context.MODE_PRIVATE); SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);! SharedPreferences.Editor editor = sharedPref.edit();! editor.putInt(getString(R.string.saved_high_score), newHighScore);! editor.commit(); SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);! int defaultValue = getResources().getInteger(R.string.saved_high_score_default);! long highScore = sharedPref.getInt(getString(R.string.saved_high_score), defaultValue);
  • 3. Praktikum ANDROID 2. Saving Files Data disimpan dalam bentuk file, data yang disimpan bisa ke dua tujuan. Yaitu internal storage dan external storage. Berikut ini adalah kelebihan dan kekurangan di masing-masing penyimpanan : Jika anda menggunakan external storage sebagai media penyimpanan anda perlu menambahkan permission di AndroidManifest.xml : Code berikut digunakan untuk menyimpan file di internal storage : Code berikut digunakan untuk menyimpan cache Page 3" of "15 Internal Storage ! ! Penyimpanan selalu tersedia! File hanya bisa diakses oleh apps anda! Ketika aplikasi di uninstall data anda akan hillang External Storage! ! Penyimpan tidak selalu tersedia! File dapat diakses oleh apps lain! Ketika aplikasi di uninstall data anda masih ada. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> String filename = "myfile";! String string = "Hello world!";! FileOutputStream outputStream;! ! try {! outputStream = openFileOutput(filename, Context.MODE_PRIVATE);! outputStream.write(string.getBytes());! outputStream.close();! } catch (Exception e) {! e.printStackTrace();! } public File getTempFile(Context context, String url) {! File file;! try {! String fileName = Uri.parse(url).getLastPathSegment();! file = File.createTempFile(fileName, null, context.getCacheDir());! catch (IOException e) {! // Error while creating file! }! return file;! }
  • 4. Praktikum ANDROID Code berikut digunakan melakukan pengecekan apakah external Storage sudah siap untuk digunakan atau tidak : Untuk menyimpan file di external storage, Kita dapat menentukan apakah apakah directory yang kita buat dapat disimpan untuk public atau untuk private. public File getAlbumStorageDir(String albumName) {! Sedangkan untuk menyimpan dengan dengan directory private android berikut codennya : untuk menghapus file bisa menggunakan code berikut myContext.deleteFile(fileName); Page 4" of "15 /* Checks if external storage is available for read and write */! public boolean isExternalStorageWritable() {! String state = Environment.getExternalStorageState();! if (Environment.MEDIA_MOUNTED.equals(state)) {! return true;! }! return false;! }!! /* Checks if external storage is available to at least read */! public boolean isExternalStorageReadable() {! String state = Environment.getExternalStorageState();! if (Environment.MEDIA_MOUNTED.equals(state) ||! Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {! return true;! }! return false;! } public File getAlbumStorageDir(Context context, String albumName) {! // Get the directory for the app's private pictures directory. ! File file = new File(context.getExternalFilesDir(! Environment.DIRECTORY_PICTURES), albumName);! if (!file.mkdirs()) {! Log.e(LOG_TAG, "Directory not created");! }! return file;! } // Get the directory for the user's public pictures directory. ! File file = new File(Environment.getExternalStoragePublicDirectory(! Environment.DIRECTORY_PICTURES), albumName);! if (!file.mkdirs()) {! Log.e(LOG_TAG, "Directory not created");! }! return file;! }
  • 5. Praktikum ANDROID 3. Saving Data in SQL Databases Untuk menyimpan data dengan lebih terstruktur kita dapat menyimpannya di SQLite. Contoh penggunaan aplikasi NOTE. Sama seperti database Enterprise SQLite terdiri dari Database, Table, Column, dan Record. ORMLite Ormlite adalah third party library Android yang digunakan untuk SQLite di android, ringan dan dapat menghindari overhead. ORMLite support untuk perintah SQL. Info lebih lanjut dapat dilihat di http://ormlite.com/sqlite_java_android_orm.shtml . Pada praktikum kali ini kita akan membahas tentang ORMLite. Page 5" of "15
  • 6. Praktikum ANDROID PRAKTIKUM ! Tujuan : Mengenal SQLite, ORMLite,! Scope : DBManager, Repo, POJO, ! ! 1. Create project baru :! 2. Copy library ormlite-android-4.48-2.jar dan ormlite-core-4.48.jar yang sudah tersedia ke folder project -> libs di eclipse ! 3. Klik kanan pada project -> Properties, kemudian pilih Java Build Path -> Add Jars Page 6" of "15
  • 7. Praktikum ANDROID 4. Pilih project - > libs , Kemudian pilih library yang kita sudah tambahkan ! 5. Klik button OK dan OK! 6. Buat file java dengan nama Notes, ! Page 7" of "15 @DatabaseTable(tableName="notes") public class Notes { @DatabaseField(generatedId=true) public int id; @DatabaseField public String judul; @DatabaseField public String isi; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getJudul() { return judul; } public void setJudul(String judul) { this.judul = judul; } public String getIsi() { return isi; } public void setIsi(String isi) { this.isi = isi; } }
  • 8. Praktikum ANDROID 7. Buat file Java dengan nama DBHelp! 8. Buat file java DBManager! !! Page 8" of "15 public class DBHelp extends OrmLiteSqliteOpenHelper{ private static final String DATABASE_NAME = "buku.db"; private static final int DATABASE_VERSION = 1; private Dao<Notes, Integer> daoNotes = null; private RuntimeExceptionDao<Notes, Integer> runtimesDaoNotes = null; public DBHelp(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase arg0, ConnectionSource arg1) { try { TableUtils.createTable(connectionSource, Notes.class); } catch (SQLException e) { Log.e(DBHelp.class.getName(), "Gagal Membuat Table", e); } } @Override public void onUpgrade(SQLiteDatabase arg0, ConnectionSource arg1, int arg2, int arg3) { try { TableUtils.dropTable(connectionSource, Notes.class, true); } catch (SQLException e) { Log.e(DBHelp.class.getName(), "Gagal Menghapus Table", e); throw new RuntimeException(e); } } @Override public void close() { daoNotes = null; super.close(); } public Dao<Notes, Integer> getDaoNotes() throws SQLException{ if (daoNotes==null) { daoNotes = getDao(Notes.class); } return daoNotes; } public RuntimeExceptionDao<Notes, Integer> getRuntimesDaoNotes() { if (runtimesDaoNotes==null) { runtimesDaoNotes = getRuntimeExceptionDao(Notes.class); } return runtimesDaoNotes; } }
  • 9. Praktikum ANDROID 9. Buat file java NotesRepo! 10. Edit activity_main.xml layout dengan code berikut : Page 9" of "15 public class DBManager { private DBHelp dbHelp = null; public DBHelp getDbHelp(Context context) { if (dbHelp==null){ dbHelp = OpenHelperManager.getHelper(context, DBHelp.class); } return dbHelp; } public void releaseHelper(DBHelp helper) { if (helper != null) { OpenHelperManager.releaseHelper(); dbHelp = null; } } } public class NotesRepo { public DBHelp db; Dao<Notes,Integer> notesDao; public NotesRepo(Context context) { try { DBManager dbManager = new DBManager(); db = dbManager.getDbHelp(context); notesDao = db.getDaoNotes(); } catch (SQLException e) { e.printStackTrace(); } }public int create(Notes mediaModel) throws SQLException{ return notesDao.create(mediaModel); }public List<Notes> listall(){ try { return notesDao.queryForAll(); } catch (SQLException e) { Log.e("error","query gagal"); e.printStackTrace(); } return null; } }
  • 10. Praktikum ANDROID <LinearLayout xmlns:android="http://schemas.android.com/apk/res/ android" ! 11. Buat file layout dengan nama add_data.xml dengan code berikut : Page "10 of "15 xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/total_data" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="10dp" android:layout_weight="0.3" android:text="Data Tersimpan" android:textAppearance="?android:attr/textAppearanceMedium" /> ! <Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:onClick="tambah_data" android:text="+" /> </LinearLayout> <ListView android:id="@+id/note_data" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" > </ListView> </LinearLayout>
  • 11. Praktikum ANDROID ! 12. Edit file MainActivity.java dengan code berikut : ! !! Page "11 of "15 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" > <TextView android:id="@+id/textView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Title" android:textAppearance="?android:attr/textAppearanceMedium" /> <EditText android:id="@+id/editText1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:ems="10" > <requestFocus /> </EditText> <TextView android:id="@+id/textView2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="Body" android:textAppearance="?android:attr/textAppearanceMedium" /> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="0.2" android:orientation="vertical" > <EditText android:id="@+id/editText2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:background="#fff" android:ems="10" android:hint="isi notes" android:inputType="textMultiLine" /> </LinearLayout> <Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Button" /> ! </LinearLayout>
  • 12. Praktikum ANDROID Page "12 of "15 public class MainActivity extends Activity { private ListView list; private TextView txt; private List<Notes> notes; private ArrayAdapter<String> adapter; private ArrayList<String> arrlist; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); notes = data(); arrlist = data_Notes(); setContentView(R.layout.activity_main); list = (ListView) findViewById(R.id.note_data); txt = (TextView) findViewById(R.id.total_data); ! adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, arrlist); list.setAdapter(adapter); ! if (notes.size() > 0) { txt.setText(notes.size() + " note tersimpan"); } else { txt.setText("Belum ada note"); } } public List<Notes> data(){ return new NotesRepo(MainActivity.this).listall(); } public ArrayList<String> data_Notes(){ ArrayList<String> dt = new ArrayList<String>(); for (int i = 0; i < data().size(); i++) { dt.add(data().get(i).getJudul()); } return dt; } public void tambah_data(View view){ startActivity(new Intent(MainActivity.this, AddActivity.class)); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } }
  • 13. Praktikum ANDROID ! 13. Buat file baru java AddActivity.java ! 14. Notes adalah class object dari database dan bisa di sebut sebagai table Notes dengan isi judul dan body! 15. DBHelp adalah class database help digunakan untuk membuat database dan menghapus database dalam kondisi tertentu! 16. DBManager adalah database manager digunakan untuk mengontrol database yang akan digunakan oleh masing-masing table! 17. NotesRepo adalah aktifitas database dari table Notes sebagai contoh create, update, delete, dan read.! 18. Jalankan aplikasi Page "13 of "15 public class AddActivity extends Activity { private EditText title; private EditText body; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.add_data); title = (EditText) findViewById(R.id.title_data); body = (EditText) findViewById(R.id.body_data); } public void save_data(View view) { Notes notes = new Notes(); notes.setJudul(title.getText().toString()); notes.setIsi(body.getText().toString()); try { new NotesRepo(AddActivity.this).create(notes); Toast.makeText(AddActivity.this, "Data Sukses Tersimpan", Toast.LENGTH_LONG).show(); } catch (SQLException e) { Toast.makeText(AddActivity.this, "Data Gagal Tersimpan", Toast.LENGTH_LONG).show(); e.printStackTrace(); } startActivity(new Intent(AddActivity.this, MainActivity.class) .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)); finish(); } }
  • 14. Praktikum ANDROID ! Page "14 of "15
  • 15. Praktikum ANDROID Tugas :! ! 1. Dari project yang sudah di buat ! 1. Tampilkan detail data dengan menggunakan query di NotesRepo! 2. Detail data terdiri dari! 1. Title / Judul! 2. Body / isi! 3. ! 2. Tambahkan action delete menggunakan action setOnItemLongClickListener. Jika ditekan lama maka data akan memunculkan dialog “Hapus Data ” YA untuk menghapus TIDAK untuk kembali.! 3. Method ! 1. Delete :! public int delete(int id) throws SQLException{! ! return notesDao.deleteById(id);! }! 2. Detail :! public Notes detail(int id) throws SQLException{! ! return notesDao.queryForId(id);! }! 4. Untuk delete di ArrayAdapter anda perlu menambahkan setelah proses delete! arrlist.remove(arg2); adapter.notifyDataSetChanged(); Page "15 of "15