2/3/14 Android Indonesia: Database untuk BukuSakuKu
belajar-android-indonesia.blogspot.com/2013/04/database-untuk-bukusakuku.html 1/8
Database untuk BukuSakuKu
...sebelum membaca tentang database untuk BukuSakuKu, silahkan melihat dahulu class untuk halaman
depan_nya dan class untuk halaman isi_nya dengan klik disini.
Mengikuti nalar 'best practice' yang sering di kumandangkan oleh para ahli coding, maka class-class yang
menyangkut database untuk BukuSakuKu ini akan saya bungkus dalam satu paket dengan nama
com.vik_sintus.bukusakuku.database_nya
Menamakan paket adalah sangat tergantung struktur file masing-masing developer, di dunia java biasanya
nama paket memakai cara PSV(period seperated values) atau tulisan yang di pisahkan oleh titik.
Seperti umumnya database, dia bekerja di belakang layar alias tidak berhadapan langsung dengan
pengguna HP atau pengguna komputer. Yang kita lihat di layar HP adalah hanya yang indah-indah saja.
Kita tak peduli mengapa yang indah-indah itu bisa muncul. Tapi para developer tentunya sangat peduli
mengapa dan bagaimana suatu object tampil anggun di layar HP. Yang paling mendasar adalah
komunikasi antara database dan aplikasinya, kalau komunikasinya tak benar maka segala sesuatu yang
indah tak ada gunanya, karena tak akan muncul di layar HP. Itulah sebabnya mengapa saya menyimpan
semua data yang menyangkut database di dalam satu paket.
Di Android, percakapan antara database dan aplikasi di lakukan oleh class yang
bernama SQLiteOpenHelper.java dan sesuai namanya class ini kerjanya membantu membuka database.
Sedangkan SQLite adalah database yang di pakai di dalam semua android sistim. Android menggunakan
SQLite karena ia serverless atau tak perlu server atau self contained sehingga enteng untuk alat-alat kecil
seperti HP.
Mengikuti logika tersebut di atas maka class database untuk BukuSakuKu akan saya menamakan-nya
DatabaseHelperNya.java yang akan merangkul class bawaan android yang
bernama SQLiteOpenHelper.java
Berikut adalah isi dari DatabaseHelperNya.java
view plain print ?
01. package com.vik_sintus.bukusakuku.database_nya; 02. /* 03. * Copyright (C)2013 Vik Sintus Projects 04. * 05. * di larang pakai kode ini untuk kepentingan 06. * komersial tanpa ijin [email protected]. 07. * http://belajar-android-indonesia.blogspot.com 08. * 09. * Unless required by applicable law or agreed to in writing, 10. * this software is distributed on an "AS IS" BASIS, 11. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 12. * express or implied 13. */ 14. import android.content.Context; 15. import android.database.sqlite.SQLiteDatabase; 16. import android.database.sqlite.SQLiteOpenHelper; 17. 18. public class DatabaseHelperNya extends SQLiteOpenHelper { 19. 20. private static final String NAMA_DATABASENYA = "bukusakukuDB.db"; 21. private static final int VERSI_DATABASENYA = 1; 22. 23. public DatabaseHelperNya(Context membuatDatabase) { 24. super(membuatDatabase, NAMA_DATABASENYA, null, VERSI_DATABASENYA); 25. } 26. 27. // Metode berikut akan di panggil saat membuat database 28. @Override 29. public void onCreate(SQLiteDatabase buatlahDatabaseNya) { 30. ClassUntukTable.onCreate(buatlahDatabaseNya); 31. } 32. 33. // Metode berikut di panggil ketika databasenya di upgrade, 34. // tapi developer harus ubah angka versinya ke yang lebih tinggi yah 35. // misalnya VERSI_DATABASENYA=2; dst 36. @Override 37. public void onUpgrade(SQLiteDatabase database_nya, int versiLama, 38. int versiBaru) { 39. ClassUntukTable.onUpgrade(database_nya, versiLama, versiBaru); 40. } 41. }
Kode di atas telah saya tulis menggunakan logika dan bahasa harian sehingga mudah untuk di pahami.
Logikanya begini, deklarasikan nama class dengan menggandeng class SQLiteOpenHelper kemudian
deklarasikan NAMA_DATABASENYA dan VERSI_DATABASENYA (keduanya mirip variable) sampai
disini analoginya sama seperti kita sudah punya kayu dan paku untuk membangun rumah(tapi dalam hal ini
kita sedang membangun class java). Setelah alat-alatnya semua telah di siapkan maka di lanjutkan dengan
Cocok untuk Honeycomb ke atas
DOWNLOAD KAMUS INGGRIS BERSUARA
OLEH VIK SINTUS
Search
CARI INFO DI BLOG INI
Terima kasih kepada pemilik iklan -
iklan yang sering muncul di blog ini.
Mereka telah membantu saya
membeli kopi atau teh saat duduk
menulis di depan komputer
SPONSORS
Aplikasi yang membuat HP bisaNgomong
Sejak android 1.6 telah adaTTS(text to speech) engine dalam
TUTORIAL YANG PALING DI GEMARI
PEMBACA
Share 0 More Next Blog» Create Blog Sign In
2/3/14 Android Indonesia: Database untuk BukuSakuKu
belajar-android-indonesia.blogspot.com/2013/04/database-untuk-bukusakuku.html 2/8
konstruksinya yang di mulai dari public DatabaseHelperNya(Context membuatDatabase) yaitu dalam
konteks apa class ini di buat? tentunya kita mau membuatDatabase yang akan di kerjakan oleh metode
onCreate() dan di dalam database akan ada table di ClassUntukTable.java
Masih di bawah paket com.vik_sintus.bukusakuku.database_nya buatkan class khusus untuk skema
table-nya. Tadi di DatabaseHelperNya telah di deklarasikan nama databasenya bukusakukuDB.db
sekarang kita butuh sebuah table di dalam database tersebut. Oleh karena table mempunyai hubungan erat
dengan database (hampir tak ada database tanpa table) maka class untuk table saya letakkan bersama
class-class yang menyangkut database. Berikut adalah isi dari class ClassUntukTable.java
view plain print ?
01. package com.vik_sintus.bukusakuku.database_nya; 02. /* 03. * Copyright (C) 2013 Vik Sintus Projects 04. * 05. * Segala kelebihan dan kekurangan di 06. * luar tanggung jawab pembuat. 07. * Di larang memakai kode ini untuk 08. * kepentingan komersial tanpa ijin. 09. * Silahkan di pakai untuk kepentingan belajar. 10. * [email protected] 11. * 12. * Unless required by applicable law or agreed to in writing, 13. * this software is distributed on an "AS IS" BASIS, 14. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 15. * either express or implied. 16. * 17. * 18. */ 19. import android.database.sqlite.SQLiteDatabase; 20. import android.util.Log; 21. 22. public class ClassUntukTable { 23. // table untuk database bukusakukuDB.db 24. public static final String TABLE_NYA = "bukusakuku"; 25. public static final String KOLOM_ID = "_id"; 26. public static final String KOLOM_JENIS = "jenis"; 27. public static final String KOLOM_JUDUL = "judul"; 28. public static final String KOLOM_ISI = "isi"; 29. 30. // membuat table dengan SQL statement_nya 31. private static final String BUATLAH_TABLE_NYA = "create table " 32. + TABLE_NYA 33. + "(" 34. + KOLOM_ID + " integer primary key autoincrement, " 35. + KOLOM_JENIS + " text not null, " 36. + KOLOM_JUDUL + " text not null," 37. + KOLOM_ISI 38. + " text not null" 39. + ");"; 40. 41. public static void onCreate(SQLiteDatabase database_nya) { 42. database_nya.execSQL(BUATLAH_TABLE_NYA); 43. } 44. 45. public static void onUpgrade(SQLiteDatabase database_nya, int versiLama, 46. int versiBaru) { 47. Log.w(ClassUntukTable.class.getName(), "Database di upgrade dari versi "
48. + versiLama + " ke " + versiBaru 49. + ", dan akan menghapus semua data lama"); 50. database_nya.execSQL("DROP TABLE IF EXISTS " + TABLE_NYA); 51. onCreate(database_nya); 52. } 53. }
Menempatkan class-class pada paketnya masing-masing sesuai kegunaan-nya adalah 'best practice'
karena dengan cara itu ketika pembangunan aplikasi -nya berkembag atau kalau seandainya mau di
rombak maka tak perlu membongkar semua aplikasi tapi yang di rombak hanyalah bagian-bagian kecilnya
saja. Misalnya kalau mau rombak databasenya maka tinggal di pilih apanya yang mau di rombak, tambah
jumlah kolom?, ganti tipe data? ganti versi aplikasi? apalagi ganti versi aplikasi sangat penting karena versi
lama akan secara otomatis di hapus dengan versi baru sehingga tak perlu membebani resource HP
pengguna
Masih ada satu class lagi yang di butuhkan untuk merampungkan pembangunan aplikasi ini yaitu
class ContentProviderNya.java
Walau namanya ContentProvider tapi sesungguhnya ia tidak menyediakan kontent. dia bekerja mirip
'remote control' pada TV.
Stasiun TV adalah database dan layar TV adalah halaman aplikasi. Kalau tak suka nonton acara di salah
satu stasiun TV janganlah ganti TVnya tapi ganti channel-nya saja, dengan memilih nomor sesuai stasiun
TVnya di remote. Di content provider inilah tempat link ke database berada, sehingga kalau sumber
datanya berubah misalnya dari 'local server' ke 'remote server' maka tak perlu rombak yang lain-lain tapi
hanya merubah sedikit pada ContentProviderNya.
Walau nampak rumit melihat kodenya tapi sebenarnya proses kerja dari class ContentProviderNya.java
hanya merangkul class aslinya yang telah ada di dalam sistim android bernama ContentProvider.java
dengan kata kunci extends
Setelah deklarasikan semua variables yang di butuhkan oleh class ContentProviderNya.java, selebihnya
hanya mengikrarkan semua metode bawaan class ContentProvider.java antara
lain: onCreate(), query(), getType(), insert(), delete(), update().
Metode-metode bawaan tersebut di tandai dengan @Override maksudnya melangkahi proses kerja asli
dari metode tersebut dan memasangnya dengan cara kerja yang sesuai kemauann kita sendiri, misalnya
jikalau satu metode mempunyai default latarbelakang putih kita bisa merubahnya menjadi latarbelakang
hitam tanpa mengubah sifat-sifat lain dari metode tersebut.
android sistim. TTSadalah enginesuara manusia yangbisa membaca apasaja yang...
Membuat KamusDigital
Kamus digitaladalah kamus yangbisa di muat dalamHP, agar mudah di
akses, dan mudah di bacakapanpun dan dimanapun.Tentunya HP-nya androi...
User Interface untukKamus Digital
Ini adalah serilanjutan tentangpembangunanKamus Digital untuk
android. Sebelum melanjutkanmembaca di halaman ini adabaiknya lihat terl...
Aplikasi agar HP bisa mendengardan bisa menulis
Saya telah mengirimi kode ini kebeberapa teman2 yangmembutuhkan-nya. Tapi karenapenyakit bawaan saya yangbernama m a l a s kambuh lagi m...
Penghubung antara aplikasi dandata
2.a Penghubung antara aplikasidan data .....ini adalah seri lanjutandari ' Membuat Kamus Digital 'Sebelum melanjutkan baca ten...
Buku Saku untuk HPAndroid
Pada jaman dahulukala, sebelum adaHP, yang ada disaku celana atau
saku baju di hampir setiap orangyang non-buta huruf adalah hanyasebua...
Kamus Bersuara
Sudah beberapaminggu terakhir inisaya telah bolak-bolak ke googleuntuk mencari
contoh kode untukmengimplementasikan 'kamusbersuara&...
Kalkulator untukbayar tip direstaurant
Hargailah parapekerja2 di hotel2,di cafe, di warung2
termasuk ata_Pika_muku, denganmembiasakan diri untuk memberitip. Di negara lain sep...
Membuat UserInterface di Android
Menurut saya, halyang paling rumitdalam prosespembangunan
sebuah aplikasi android adalahpengaturan, struktur userinterface(UI). Berhas...
Kode di balikTombol di HPAndroid
Masih banyak yangmenanyakantentang proses
pembuatan tombol di android.Tombol yang saya maksudkanadalah ketika di pencet maka akanmembaw...
▼ 2013 (9)
► December (1)
► November (1)
► October (4)
▼ April (2)
Database untuk BukuSakuKu
BACA TUTORIAL PENTING LAIN-NYA
2/3/14 Android Indonesia: Database untuk BukuSakuKu
belajar-android-indonesia.blogspot.com/2013/04/database-untuk-bukusakuku.html 3/8
Demi 'best practice' maka antara saya dan aku telah sepakat untuk menempatkan class
ContentProviderNya.java pada paket tersendiri yang saya beri nama package
com.vik_sintus.bukusakuku.contentprovider_nya;
Untuk lebih jelasnya berikut adalah isi dari ContentProvider.java
view plain print ?
01. package com.vik_sintus.bukusakuku.contentprovider_nya; 02. /* 03. * Copyright (C)Vik Sintus Projects 04. * 05. * Segala kelebihan dan kekurangan di 06. * luar tanggung jawab pembuat. 07. * Di larang memakai kode ini untuk 08. * kepentingan komersial tanpa ijin. 09. * Silahkan di pakai untuk kepentingan belajar. 10. * [email protected] 11. * 12. * Unless required by applicable law or agreed to in writing, 13. * this software is distributed on an "AS IS" BASIS, 14. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 15. * either express or implied. 16. * 17. * 18. */ 19. import java.util.Arrays; 20. import java.util.HashSet; 21. 22. import android.content.ContentProvider; 23. import android.content.ContentResolver; 24. import android.content.ContentValues; 25. import android.content.UriMatcher; 26. import android.database.Cursor; 27. import android.database.sqlite.SQLiteDatabase; 28. import android.database.sqlite.SQLiteQueryBuilder; 29. import android.net.Uri; 30. import android.text.TextUtils; 31. 32. import com.vik_sintus.bukusakuku.database_nya.DatabaseHelperNya; 33. import com.vik_sintus.bukusakuku.database_nya.ClassUntukTable; 34. 35. 36. public class ContentProviderNya extends ContentProvider { 37. 38. // databasenya 39. private DatabaseHelperNya databasenya; 40. 41. // di gunakan untuk mencocokan data dan 42. // mengIdentifikasikan sumber datanya 43. private static final int MENGISI_DATA = 10; 44. private static final int IDENTITAS_DATA = 20; 45. 46. private static final String OTORITAS = "com.vik_sintus.bukusakuku.contentpro
vider_nya"; 47. 48. private static final String BASE_PATH_NYA = "meMasukanData"; 49. public static final Uri CONTENT_URI_NYA = Uri.parse("content://" + OTORITAS
50. + "/" + BASE_PATH_NYA); 51. 52. public static final String TIPE_CONTENT_NYA = ContentResolver.CURSOR_DIR_BAS
E_TYPE 53. + "/meMasukanData"; 54. public static final String TIPE_CONTENT_ITEM_NYA = ContentResolver.CURSOR_IT
EM_BASE_TYPE 55. + "/bukusakuku"; 56. 57. private static final UriMatcher cocokanURInya = new UriMatcher(UriMatcher.NO
_MATCH); 58. static { 59. cocokanURInya.addURI(OTORITAS, BASE_PATH_NYA, MENGISI_DATA); 60. cocokanURInya.addURI(OTORITAS, BASE_PATH_NYA + "/#", IDENTITAS_DATA); 61. } 62. //override lalu ambil context dari DatabaseHelperNya 63. @Override 64. public boolean onCreate() { 65. databasenya = new DatabaseHelperNya(getContext()); 66. return false; 67. } 68. 69. @Override 70. public Cursor query(Uri uriNya, String[] apaYangMauDiQuery, String selection
, 71. String[] selectionArgs, String sortOrder) { 72. 73. // pakai SQLiteQueryBuilder ketimbang metode query() 74. SQLiteQueryBuilder queryBuilderNya = new SQLiteQueryBuilder(); 75. 76. // priksa dulu apakah yang di minta/cari adalah sebuah kolom yang 77. // tak eksis 78. priksaKolom(apaYangMauDiQuery); 79. 80. // pasang table_nya 81. queryBuilderNya.setTables(ClassUntukTable.TABLE_NYA); 82. 83. int tipeURInya = cocokanURInya.match(uriNya); 84. switch (tipeURInya) { 85. case MENGISI_DATA: 86. break; 87. case IDENTITAS_DATA: 88. // tambahkan identitas_data pada query aslinya 89. queryBuilderNya.appendWhere(ClassUntukTable.KOLOM_ID + "=" 90. + uriNya.getLastPathSegment()); 91. break; 92. default: 93. throw new IllegalArgumentException("URI_nya tak di kenal: " + uriNya);
Buku Saku untuk HP Android
► March (1)
► 2012 (8)
► 2011 (6)
Kamus Ngomong
HP Bisa Ngomong
contoh aplikasi di market
Download contoh aplikasi untuk dipelajari
DOWNLOAD CONTOH APLIKASI
Kalau anda suka atau merasa
terbantu dengan artikel ini silahkan
klik G+ berikut
ANDA SUKA ?
6
GOOGLE+ FOLLOWERS
TERIMA POSTINGAN BARU DENGAN
Email address... Submit
cottagesfortwo.com
centralcowestownhouses.com
alburycottages.com
KUNJUNGI WEB SAYA YANG LAIN
Vik Sintus
View my
complete profile
TENTANG SAYA
Join this sitew ith Google Friend Connect
Members (4)
Already a member? Sign in
FOLLOWERS
2/3/14 Android Indonesia: Database untuk BukuSakuKu
belajar-android-indonesia.blogspot.com/2013/04/database-untuk-bukusakuku.html 4/8
94. } 95. 96. SQLiteDatabase db = databasenya.getWritableDatabase(); 97. Cursor cursor = queryBuilderNya.query(db, apaYangMauDiQuery, selection, 98. selectionArgs, null, null, sortOrder); 99. // pastikan semua listeners untuk selalu siap(mendengar) 100. cursor.setNotificationUri(getContext().getContentResolver(), uriNya); 101. 102. return cursor; 103. } 104. 105. @Override 106. public String getType(Uri uri) { 107. return null; 108. } 109. 110. @Override 111. public Uri insert(Uri uriNya, ContentValues dataYangMauDiInsert) { 112. int tipeURInya = cocokanURInya.match(uriNya); 113. SQLiteDatabase sqlDB = databasenya.getWritableDatabase(); 114. long id = 0; 115. switch (tipeURInya) { 116. case MENGISI_DATA: 117. id = sqlDB.insert(ClassUntukTable.TABLE_NYA, null, dataYangMauDiInsert);
118. break; 119. default: 120. throw new IllegalArgumentException("URI tak di kenal: " + uriNya); 121. } 122. getContext().getContentResolver().notifyChange(uriNya, null); 123. return Uri.parse(BASE_PATH_NYA + "/" + id); 124. } 125. 126. @Override 127. public int delete(Uri uriNya, String dataYangDiPilih, String[] dataYangAda)
{ 128. int tipeURInya = cocokanURInya.match(uriNya); 129. SQLiteDatabase sqlDB = databasenya.getWritableDatabase(); 130. int barisDataYangTerhapus = 0; 131. switch (tipeURInya) { 132. case MENGISI_DATA: 133. barisDataYangTerhapus = sqlDB.delete(ClassUntukTable.TABLE_NYA, dataYang
DiPilih, 134. dataYangAda); 135. break; 136. case IDENTITAS_DATA: 137. String id = uriNya.getLastPathSegment(); 138. if (TextUtils.isEmpty(dataYangDiPilih)) { 139. barisDataYangTerhapus = sqlDB.delete(ClassUntukTable.TABLE_NYA, 140. ClassUntukTable.KOLOM_ID + "=" + id, 141. null); 142. } else { 143. barisDataYangTerhapus = sqlDB.delete(ClassUntukTable.TABLE_NYA, 144. ClassUntukTable.KOLOM_ID + "=" + id 145. + " and " + dataYangDiPilih, 146. dataYangAda); 147. } 148. break; 149. default: 150. throw new IllegalArgumentException("URInya tak di kenal: " + uriNya); 151. } 152. getContext().getContentResolver().notifyChange(uriNya, null); 153. return barisDataYangTerhapus; 154. } 155. 156. @Override 157. public int update(Uri uriNya, ContentValues diIsiDenganValue, String dataYan
gDiPilih, 158. String[] dataYangAda) { 159. 160. int uriType = cocokanURInya.match(uriNya); 161. SQLiteDatabase sqlDB = databasenya.getWritableDatabase(); 162. int rowsUpdated = 0; 163. switch (uriType) { 164. case MENGISI_DATA: 165. rowsUpdated = sqlDB.update(ClassUntukTable.TABLE_NYA, 166. diIsiDenganValue, 167. dataYangDiPilih, 168. dataYangAda); 169. break; 170. case IDENTITAS_DATA: 171. String id = uriNya.getLastPathSegment(); 172. if (TextUtils.isEmpty(dataYangDiPilih)) { 173. rowsUpdated = sqlDB.update(ClassUntukTable.TABLE_NYA, 174. diIsiDenganValue, 175. ClassUntukTable.KOLOM_ID + "=" + id, 176. null); 177. } else { 178. rowsUpdated = sqlDB.update(ClassUntukTable.TABLE_NYA, 179. diIsiDenganValue, 180. ClassUntukTable.KOLOM_ID + "=" + id 181. + " and " 182. + dataYangDiPilih, 183. dataYangAda); 184. } 185. break; 186. default: 187. throw new IllegalArgumentException("URI_nya Tak di kenal: " + uriNya); 188. } 189. getContext().getContentResolver().notifyChange(uriNya, null); 190. return rowsUpdated; 191. } 192. 193. private void priksaKolom(String[] kolomYangMauDiLihat) { 194. String[] dataYangTelahAda = { ClassUntukTable.KOLOM_JENIS, 195. ClassUntukTable.KOLOM_JUDUL, ClassUntukTable.KOLOM_ISI, 196. ClassUntukTable.KOLOM_ID }; 197. if (kolomYangMauDiLihat != null) { 198. HashSet<String> kolomYangDiCari = new HashSet<String>
2/3/14 Android Indonesia: Database untuk BukuSakuKu
belajar-android-indonesia.blogspot.com/2013/04/database-untuk-bukusakuku.html 5/8
(Arrays.asList(kolomYangMauDiLihat)); 199. HashSet<String> kolomYangTersedia = new HashSet<String>
(Arrays.asList(dataYangTelahAda)); 200. // priksa dulu apakah kolom yang di maksud ada atau tidak 201. if (!kolomYangTersedia.containsAll(kolomYangDiCari)) { 202. throw new IllegalArgumentException("Tak ada kolom dgn nama tsb"); 203. } 204. } 205. } 206. 207. }
Dengan demikian maka semua class java telah selesai di buat yang semuanya berjumlah 5 buah. Kelima
file java tersebut seharusnya tersusun di dalam file struktur seperti terlihat pada gambar berikut:
Selanjutnya kita akan melengkapi aplikasi ini dengan 7 buah file xml dan 2 buah logo yang harus tersusun
seperti terlihat pada gambar berikut:
Walau terlihat ada 4 buah logo tetapi saya hanya memakai(memanggil 2 buah)(hanya karena saya malas
untuk menghapus logo yang tak terpakai)
Isi dari ke 7 file xml tersebut di atas adalah sbb:
tampil_perbaris.xml
view plain print ?
01. <?xml version="1.0" encoding="utf-8"?> 02. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 03. android:layout_width="match_parent" 04. android:layout_height="wrap_content" > 05. 06. <ImageView 07. android:id="@+id/icon" 08. android:layout_width="30dp" 09. android:contentDescription="@string/logo" 10. android:layout_height="24dp" 11. android:layout_marginLeft="4dp" 12. android:layout_marginRight="8dp" 13. android:layout_marginTop="8dp" 14. android:src="@drawable/logo_kecil" /> 15. 16. 17. <TextView 18. android:id="@+id/tampil_hanya_judul" 19. android:layout_width="match_parent" 20. android:layout_height="wrap_content" 21. android:layout_marginTop="6dp" 22. android:lines="1" 23. android:text="@+id/untuk_baris_judul" 24. android:textSize="24sp" /> 25. 26. 27. </LinearLayout>
2/3/14 Android Indonesia: Database untuk BukuSakuKu
belajar-android-indonesia.blogspot.com/2013/04/database-untuk-bukusakuku.html 6/8
tampilan_bagian_isi.xml
view plain print ?
01. <?xml version="1.0" encoding="utf-8"?> 02. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 03. android:layout_width="match_parent" 04. android:layout_height="match_parent" 05. android:orientation="vertical" > 06. 07. <Spinner 08. android:id="@+id/jenisnya" 09. android:layout_width="wrap_content" 10. android:layout_height="wrap_content" 11. android:entries="@array/priorities" > 12. </Spinner> 13. 14. <LinearLayout 15. android:id="@+id/LinearLayout01" 16. android:layout_width="match_parent" 17. android:layout_height="wrap_content" > 18. 19. <EditText 20. android:id="@+id/isilah_judulnya" 21. android:layout_width="wrap_content" 22. android:layout_height="wrap_content" 23. android:layout_weight="1" 24. android:hint="@string/isilah_judulnya" 25. android:imeOptions="actionNext" > 26. </EditText> 27. </LinearLayout> 28. 29. <EditText 30. android:id="@+id/isilah_isinya" 31. android:layout_width="match_parent" 32. android:layout_height="fill_parent" 33. android:layout_weight="1" 34. android:gravity="top" 35. android:hint="@string/isilah_isinya" 36. android:imeOptions="actionNext" > 37. </EditText> 38. 39. <Button 40. android:id="@+id/tombol_simpan" 41. android:layout_width="wrap_content" 42. android:layout_height="wrap_content" 43. android:text="@string/simpanlah" > 44. </Button> 45. 46. </LinearLayout>
tampilan_depan.xml
view plain print ?
01. <?xml version="1.0" encoding="utf-8"?> 02. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 03. android:layout_width="match_parent" 04. android:layout_height="match_parent" 05. android:orientation="vertical" > 06. 07. <ListView 08. android:id="@android:id/list" 09. android:layout_width="match_parent" 10. android:layout_height="wrap_content" > 11. </ListView> 12. 13. <TextView 14. android:id="@android:id/empty" 15. android:layout_width="wrap_content" 16. android:layout_height="wrap_content" 17. android:text="@string/tak_ada_isi" /> 18. 19. </LinearLayout>
untuk_menu_utama.xml
view plain print ?
01. <?xml version="1.0" encoding="utf-8"?> 02. <menu xmlns:android="http://schemas.android.com/apk/res/android" > 03. 04. <item 05. android:id="@+id/menulis_data" 06. android:showAsAction="always" 07. android:title="Tulis"> 08. </item> 09. 10. </menu>
priority.xml
view plain print ?
01. <?xml version="1.0" encoding="utf-8"?> 02. <resources>
2/3/14 Android Indonesia: Database untuk BukuSakuKu
belajar-android-indonesia.blogspot.com/2013/04/database-untuk-bukusakuku.html 7/8
Posted by Vik Sintus at 5:20 AM
03. 04. <string-array name="priorities"> 05. <item>Segera</item> 06. <item>Ingat</item> 07. </string-array> 08. 09. </resources>
strings.xml
view plain print ?
01. <?xml version="1.0" encoding="utf-8"?> 02. <resources> 03. <string name="hello">BukuSakuKu</string> 04. <string name="nama_aplikasi">BukuSakuKu</string> 05. <string name="tak_ada_isi">Tak ada isi</string> 06. <string name="tambahkan">Tambahkan</string> 07. <string name="hapus_judul">Hapus</string> 08. <string name="judulnya">judul</string> 09. <string name="hapus_isinya">Hapus</string> 10. <string name="isilah_judulnya">Judulnya</string> 11. <string name="isilah_isinya">Isinya</string> 12. <string name="simpanlah">Simpan</string> 13. <string name="logo">BukuSakuKu</string> 14. </resources>
styles.xml
view plain print ?
01. <resources> 02. 03. <style name="AppTheme" parent="android:Theme.Light" /> 04. 05. </resources>
Semua file yang di butuhkan telah di pasang,.. silahkan di kembangkan dan kalau perlu di upload ke
market
One person likes this. Be the f irst of your friends.Like Share
Recommend this on Google
Enter your comment...
Comment as: Google Account
Publish
Preview
2 comments:
Andy June 23, 2013 at 4:00 AM
Assalamu Alaikum
mas, bisa bimbing untuk pembuatan program untuk skripsiku? nanti kita bicarakan honornya....
contact me :
HP : 085397387907
Wechat : r_besarr
fb : www.facebook.com/andyaang
saya tunggu mas ...
Reply
Vik Sintus June 23, 2013 at 6:17 PM
sorry mas Andy, utk sementara saya terlalu banyak pekerjaan, banyak klien yang bersungut2. tetapi saya
selalu ingin mencoba membantu kalau saya bisa... projectnya seperti apa?
Di blog ini saya selalu memasang project kecil2-an yang sudah rampung, silahkan di modify dan di
kembangkan
Reply
2/3/14 Android Indonesia: Database untuk BukuSakuKu
belajar-android-indonesia.blogspot.com/2013/04/database-untuk-bukusakuku.html 8/8
Newer Post Older PostHome
Subscribe to: Post Comments (Atom)
©Vik Sintus. Powered by Blogger.