Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import android.content.ContentValues
- import android.content.Context
- import android.database.Cursor
- import android.database.sqlite.SQLiteDatabase
- import com.wildanfuady.sekolahku.model.Student
- class StudentDataSource(context: Context) {
- private var context = context
- private var help = DatabaseHelper(context)
- // di db helper:
- // 1. buat database sekolah.db baris ke 7
- // 2. ada table dan fieldnya 9 - 20
- // semua point 1 dan 2 ditampung ke variabel help
- private var sqlite: SQLiteDatabase? = null
- // default dari variabel sqlite ini kosong
- private fun openAccess() {
- sqlite = help.writableDatabase
- // sqlite kosong jadi berisi data dari database helper
- }
- private fun close() {
- help.close()
- // menutup database
- }
- fun insertStudent(student: Student) { // menampung model siswa yang sudah berisi data input dari form
- openAccess()
- // punya data dari database dengan si openAccess
- var cv = ContentValues()
- // memindahkan model siswa ke database helper
- cv.put(DatabaseHelper.COL_NAMAD, student.namad)
- cv.put(DatabaseHelper.COL_NAMAB, student.namab)
- cv.put(DatabaseHelper.COL_NOHP, student.noHp)
- cv.put(DatabaseHelper.COL_GENDER, student.gender)
- cv.put(DatabaseHelper.COL_JENJANG, student.jenjang)
- cv.put(DatabaseHelper.COL_HOBI, student.hobi)
- cv.put(DatabaseHelper.COL_ALAMAT, student.alamat)
- cv.put(DatabaseHelper.COL_EMAIL, student.email)
- cv.put(DatabaseHelper.COL_TGL_LAHIR, student.tgl_lahir)
- sqlite?.insert("siswa", null, cv)
- close()
- }
- //mengambil data per-baris
- fun fetchRow(cursor: Cursor): Student {
- var siswa = Student()
- var index = cursor.getColumnIndex(DatabaseHelper.COL_NAMAD)
- siswa.namad = cursor.getString(index)
- index = cursor.getColumnIndex(DatabaseHelper.COL_NAMAB)
- siswa.namab = cursor.getString(index)
- siswa.alamat = cursor.getString(cursor.getColumnIndex(DatabaseHelper.COL_ALAMAT))
- siswa.hobi = cursor.getString(cursor.getColumnIndex(DatabaseHelper.COL_HOBI))
- siswa.gender = cursor.getString(cursor.getColumnIndex(DatabaseHelper.COL_GENDER))
- siswa.jenjang = cursor.getString(cursor.getColumnIndex(DatabaseHelper.COL_JENJANG))
- siswa.noHp = cursor.getString(cursor.getColumnIndex(DatabaseHelper.COL_NOHP))
- siswa.email = cursor.getString(cursor.getColumnIndex(DatabaseHelper.COL_EMAIL))
- siswa.tgl_lahir = cursor.getString(cursor.getColumnIndex(DatabaseHelper.COL_TGL_LAHIR))
- siswa.id = cursor.getInt(cursor.getColumnIndex(DatabaseHelper.COL_ID))
- return siswa
- }
- fun getAll(): ArrayList<Student> {
- openAccess()
- var cursor = sqlite?.rawQuery("SELECT * FROM siswa"
- , null)
- cursor?.moveToFirst()
- var listAll = ArrayList<Student>() // []
- while (!cursor!!.isAfterLast) {
- // masukan data dari table ke array listAll
- listAll.add(fetchRow(cursor))
- // jika sudah meloop satu data, lanjutkan loop yang lain sampai selesai
- cursor.moveToNext()
- }
- cursor.close()
- return listAll
- }
- // fun getStudent(id: Int) : Student{
- //
- // var sql = "SELECT * FROM siswa WHERE id=$id"
- // openAccess()
- // var cursor = sqlite!!.rawQuery(sql, null)
- // var siswa = fetchRow(cursor)
- // mengembalikan data tanpa harus di foreach
- // foreach = array adapter
- // moveToFirst nggak usah dikasih array adapter
- // cursor.moveToFirst()
- // id = 1
- // namad = wildan
- // namab = Fuady
- // hobi = Membaca, Menulis
- // return siswa
- //
- // }
- fun getStudent(id: Int): Student{
- var sql = "SELECT * FROM siswa WHERE id=$id"
- openAccess()
- var cursor = sqlite!!.rawQuery(sql, null)
- cursor.moveToFirst()
- var siswa = fetchRow(cursor)
- return siswa
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement