8
Aplikasi yang membuat HP bisa Ngomong Sejak android 1.6 telah ada TTS(text to speech) engine dalam TUTORIAL YANG PALING DI GEMARI PEM BACA Share 0 More Next Blog» Create Blog Sign In

Android Indonesia_ Database Untuk BukuSakuKu

Embed Size (px)

DESCRIPTION

Pembuatan database untuk buku saku

Citation preview

Page 1: Android Indonesia_ Database Untuk BukuSakuKu

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

Page 2: Android Indonesia_ Database Untuk BukuSakuKu

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

Page 3: Android Indonesia_ Database Untuk BukuSakuKu

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

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

Page 4: Android Indonesia_ Database Untuk BukuSakuKu

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>

Page 5: Android Indonesia_ Database Untuk BukuSakuKu

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>

Page 6: Android Indonesia_ Database Untuk BukuSakuKu

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>

Page 7: Android Indonesia_ Database Untuk BukuSakuKu

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

Page 8: Android Indonesia_ Database Untuk BukuSakuKu

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.