Advertisement
wildanfuady

Untitled

Feb 19th, 2020
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.05 KB | None | 0 0
  1. import android.content.ContentValues
  2. import android.content.Context
  3. import android.database.Cursor
  4. import android.database.sqlite.SQLiteDatabase
  5. import com.wildanfuady.sekolahku.model.Student
  6.  
  7. class StudentDataSource(context: Context) {
  8.  
  9. private var context = context
  10. private var help = DatabaseHelper(context)
  11. // di db helper:
  12. // 1. buat database sekolah.db baris ke 7
  13. // 2. ada table dan fieldnya 9 - 20
  14. // semua point 1 dan 2 ditampung ke variabel help
  15. private var sqlite: SQLiteDatabase? = null
  16. // default dari variabel sqlite ini kosong
  17.  
  18. private fun openAccess() {
  19. sqlite = help.writableDatabase
  20. // sqlite kosong jadi berisi data dari database helper
  21. }
  22.  
  23. private fun close() {
  24. help.close()
  25. // menutup database
  26. }
  27.  
  28. fun insertStudent(student: Student) { // menampung model siswa yang sudah berisi data input dari form
  29. openAccess()
  30. // punya data dari database dengan si openAccess
  31. var cv = ContentValues()
  32. // memindahkan model siswa ke database helper
  33. cv.put(DatabaseHelper.COL_NAMAD, student.namad)
  34. cv.put(DatabaseHelper.COL_NAMAB, student.namab)
  35. cv.put(DatabaseHelper.COL_NOHP, student.noHp)
  36. cv.put(DatabaseHelper.COL_GENDER, student.gender)
  37. cv.put(DatabaseHelper.COL_JENJANG, student.jenjang)
  38. cv.put(DatabaseHelper.COL_HOBI, student.hobi)
  39. cv.put(DatabaseHelper.COL_ALAMAT, student.alamat)
  40. cv.put(DatabaseHelper.COL_EMAIL, student.email)
  41. cv.put(DatabaseHelper.COL_TGL_LAHIR, student.tgl_lahir)
  42.  
  43. sqlite?.insert("siswa", null, cv)
  44. close()
  45.  
  46. }
  47.  
  48. //mengambil data per-baris
  49. fun fetchRow(cursor: Cursor): Student {
  50. var siswa = Student()
  51.  
  52. var index = cursor.getColumnIndex(DatabaseHelper.COL_NAMAD)
  53. siswa.namad = cursor.getString(index)
  54.  
  55. index = cursor.getColumnIndex(DatabaseHelper.COL_NAMAB)
  56. siswa.namab = cursor.getString(index)
  57.  
  58. siswa.alamat = cursor.getString(cursor.getColumnIndex(DatabaseHelper.COL_ALAMAT))
  59. siswa.hobi = cursor.getString(cursor.getColumnIndex(DatabaseHelper.COL_HOBI))
  60. siswa.gender = cursor.getString(cursor.getColumnIndex(DatabaseHelper.COL_GENDER))
  61. siswa.jenjang = cursor.getString(cursor.getColumnIndex(DatabaseHelper.COL_JENJANG))
  62. siswa.noHp = cursor.getString(cursor.getColumnIndex(DatabaseHelper.COL_NOHP))
  63. siswa.email = cursor.getString(cursor.getColumnIndex(DatabaseHelper.COL_EMAIL))
  64. siswa.tgl_lahir = cursor.getString(cursor.getColumnIndex(DatabaseHelper.COL_TGL_LAHIR))
  65. siswa.id = cursor.getInt(cursor.getColumnIndex(DatabaseHelper.COL_ID))
  66. return siswa
  67. }
  68.  
  69. fun getAll(): ArrayList<Student> {
  70. openAccess()
  71. var cursor = sqlite?.rawQuery("SELECT * FROM siswa"
  72. , null)
  73. cursor?.moveToFirst()
  74.  
  75. var listAll = ArrayList<Student>() // []
  76.  
  77. while (!cursor!!.isAfterLast) {
  78. // masukan data dari table ke array listAll
  79. listAll.add(fetchRow(cursor))
  80. // jika sudah meloop satu data, lanjutkan loop yang lain sampai selesai
  81. cursor.moveToNext()
  82. }
  83. cursor.close()
  84. return listAll
  85. }
  86.  
  87. // fun getStudent(id: Int) : Student{
  88. //
  89. // var sql = "SELECT * FROM siswa WHERE id=$id"
  90. // openAccess()
  91. // var cursor = sqlite!!.rawQuery(sql, null)
  92. // var siswa = fetchRow(cursor)
  93. // mengembalikan data tanpa harus di foreach
  94. // foreach = array adapter
  95. // moveToFirst nggak usah dikasih array adapter
  96. // cursor.moveToFirst()
  97. // id = 1
  98. // namad = wildan
  99. // namab = Fuady
  100. // hobi = Membaca, Menulis
  101. // return siswa
  102. //
  103. // }
  104.  
  105. fun getStudent(id: Int): Student{
  106. var sql = "SELECT * FROM siswa WHERE id=$id"
  107. openAccess()
  108. var cursor = sqlite!!.rawQuery(sql, null)
  109. cursor.moveToFirst()
  110.  
  111. var siswa = fetchRow(cursor)
  112. return siswa
  113. }
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement