Membuat CRUD dengan Database MySQL di Basic4Android
|Seperti yang pernah saya katakan sebelumnya, bahwa setiap aplikasi baik yang berbasis desktop, web, maupun mobile (android) biasanya terdapat yang namanya CRUD di dalamnya. Dan fungsi CRUD ini tak lain tak bukan adalah sebagai proses untuk memanipulasi data di dalam database. Jika pada tutorial Membuat Aplikasi CRUD di Basic4Android database yang digunakan adalah SQLite, maka pada tutorial kali ini database yang digunakan adalah database server, yaitu MySQL. Cara menghubungkan ke database server-nya masih menggunakan Remote Database Connector (RDC).
Agar tutorial ini lebih mudah dimengerti, silakan simak dulu postingan di bawah ini:
Karena file project yang akan digunakan adalah dari postingan-postingan tersebut. Sehingga akan saling berkaitan antara yang satu dengan yang lainnya.
Oke, sebelumnya sudah ada database dengan nama delheru-penjualan, yang pada postingan sebelumnya sudah dibuat. Dan di dalamnya ada tabel dengan nama: barang. Tambahkan satu field lagi dengan nama: kode seperti gambar berikut:
Jika field kode sudah dibuat, maka insert-lah beberapa data. Misalnya seperti ini:
Dan, silakan ikuti langkah-langkah berikut ini…
- Buka folder RDC Server-nya.
- Kemudian buka config.properties. Tambahkan beberapa command seperti di bawah ini:
1 2 3 4 5 6 |
#commands sql.select_barang=SELECT nama, FORMAT(harga,0), id FROM barang sql.select_barang_by_id=SELECT * FROM barang WHERE id=? sql.insert_barang=INSERT INTO barang (kode, nama, harga, keterangan, kategori_id) VALUES (?,?,?,?,?) sql.update_barang=UPDATE barang SET nama=?, harga=?, keterangan=?, kategori_id=? WHERE id=? sql.delete_barang=DELETE FROM barang WHERE id=? |
- Buka project MyConnectDB.
- Pada event Activity_Create tambahkan satu menu lagi: Create Barang. Lengkapnya bisa lihat code berikut:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Sub Activity_Create(FirstTime As Boolean) 'Do not forget to load the layout file created with the visual designer. For example: 'Set judul untuk activity ini. Activity.Title = "List Barang" 'Tambahkan menu. Activity.AddMenuItem("Create Barang","CreateBarang") Activity.AddMenuItem("Sync data Barang","SyncBarang") 'Initialize ListView. LvBarang.Initialize("LvBarang") 'Tampilkan ListView di activity ini. Activity.AddView(LvBarang, 0,0,100%x,100%y) If FirstTime Then 'Initialize RDC-nya. reqManager.Initialize(Me, RDCServer) End If End Sub |
- Lalu pada event Activity_Resume panggil fungsi: GetDataBarang. Agar setiap List Barang dibuka akan otomatis menampilkan data barang dari database server.
1 2 3 |
Sub Activity_Resume GetDataBarang End Sub |
- Kemudian pada event JobDone, ubah code yang sudah ada menjadi seperti berikut:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Sub JobDone(Job As HttpJob) If Job.Success = False Then Log("Error: " & Job.ErrorMessage) ProgressDialogHide Else If Job.JobName = "DBRequest" Then Dim result As DBResult = reqManager.HandleJob(Job) 'Tampilkan data dari RDC ke dalam ListView. reqManager.ExecuteListView(result, LvBarang, True) 'Set Count barang. BarangView.Count = result.Rows.Size ProgressDialogHide End If End If Job.Release End Sub |
- Buat fungsi event ItemClick untuk object ListView: LvBarang.
1 2 3 4 5 6 7 |
Sub LvBarang_ItemClick (Position As Int, Value As Object) 'Saat ListView diklik, buka BarangView (detail barang). Dim v() As Object = Value BarangView.ID = v(2) BarangView.NewData = False StartActivity(BarangView) End Sub |
- Buat satu fungsi event lagi, kali ini event Click untuk menu: Create Barang.
1 2 3 4 5 6 |
Sub CreateBarang_Click 'Saat Menu Create Barang diklik, maka buka BarangView. 'Dan set NewData di BarangView menjadi True. BarangView.NewData = True StartActivity(BarangView) End Sub |
- Buka Class DBRequestManager. Lalu buat fungsi baru dengan nama: GetRecsTable.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
Public Sub GetRecsTable(Table As DBResult) As Map Dim Mainmap As Map Dim Submap, Colmap As Map Mainmap.Initialize Submap.Initialize Colmap.Initialize Dim i, j As Int i = 0 j = 0 For Each col In Table.Columns.Keys Colmap.Put(i, col) i = i + 1 Next Log(" Column map: " & Colmap) For Each row() As Object In Table.Rows i = 0 j = j + 1 Submap.Initialize For Each record As Object In row Dim r As String r = record r = r.Replace("'"," ") Submap.Put(Colmap.Get(i),r) i = i + 1 Next Log("Submap Record number: "&j) Log(Submap) Mainmap.Put(j, Submap) Next Return Mainmap End Sub |
- Kemudian tambahkan satu activity baru dengan nama: BarangView.
- Jika sudah dibuat, pada Sub Process_Globals deklarasikan variabel-variabel seperti di bawah ini:
1 2 3 4 5 6 7 8 9 10 11 |
Sub Process_Globals 'These global variables will be declared once when the application starts. 'These variables can be accessed from all modules. 'Variabel ID untuk menampung ID barang. Dim ID As Int 'Variabel boolean untuk membedakan apakah create data baru atau bukan. Dim NewData As Boolean 'Variabel untuk keperluan generate kode. Dim Count As Int End Sub |
- Buat object-object seperti Panel, Label, EditText dan Button, deklarasikan semua object tersebut di Sub Globals.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
Sub Globals 'These global variables will be redeclared each time the activity is created. 'These variables can only be accessed from this module. Dim reqManager As DBRequestManager Dim PnlBarang As Panel Dim LblKode As Label Dim LblNama As Label Dim LblHarga As Label Dim LblKeterangan As Label Dim EdtKode As EditText Dim EdtNama As EditText Dim EdtHarga As EditText Dim EdtKeterangan As EditText Dim BtnSave As Button Dim BtnDelete As Button End Sub |
- Pada event Activity_Create masukkan beberapa fungsi yang nanti akan digunakan dalam activity ini. Lengkapnya bisa dilihat code berikut ini:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Sub Activity_Create(FirstTime As Boolean) 'Do not forget to load the layout file created with the visual designer. For example: 'Activity.LoadLayout("Layout1") Activity.Title = "Create Barang" reqManager.Initialize(Me, Main.RDCServer) 'Fungsi untuk initialize object-object yang ada. InitObject 'Fungsi untuk set label pada object-object yang ada. SetLabel 'Fungsi request data barang di database server. GetDataBarang 'Fungsi untuk menampilkan object-object di activity ini. SetObjectView End Sub |
- Semua fungsi yang dipanggil di atas pasti berwarna merah, itu tandanya bahwa fungsi tersebut belum pernah dibuat. Maka dari itu buatlah fungsi-fungsi baru seperti berikut:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
Sub InitObject LblKode.Initialize("") LblNama.Initialize("") LblHarga.Initialize("") LblKeterangan.Initialize("") EdtKode.Initialize("EdtKode") EdtNama.Initialize("EdtNama") EdtHarga.Initialize("EdtHarga") EdtKeterangan.Initialize("EdtKeterangan") BtnSave.Initialize("BtnSave") BtnDelete.Initialize("BtnDelete") PnlBarang.Initialize("PnlBarang") 'Set keyboard menjadi number. EdtHarga.InputType = EdtHarga.INPUT_TYPE_NUMBERS End Sub Sub SetLabel LblKode.Text = "Kode" LblNama.Text = "Nama" LblHarga.Text = "Harga" LblKeterangan.Text = "Keterangan" 'Disable kode, karena ini akan terisi otomatis. EdtKode.Enabled = False 'Jika create barang baru, Button-nya beri nama: Save. Dan disable Button delete. 'Selain itu, Button-nya beri nama: Update. Dan enable Button delete. If NewData Then BtnSave.Text = "Save" BtnDelete.Enabled = False Else BtnSave.Text = "Update" BtnDelete.Text = True End If BtnDelete.Text = "Delete" End Sub Sub GetDataBarang 'Jika create baru, maka set kode otomatis dan kosongkan form-form yg lain. 'Selain itu, maka request data barang dari database server sesuai ID-nya. If NewData Then Dim kode As String = GenerateKode EdtKode.Text = kode EdtNama.Text = "" EdtHarga.Text = 0 EdtKeterangan.Text = "" Else ProgressDialogShow2("Loading data from server... Please wait!", False) Dim cmd As DBCommand cmd.Initialize cmd.Name = "select_barang_by_id" cmd.Parameters = Array As Object(ID) reqManager.ExecuteQuery(cmd, 0, "select_barang_by_id") End If End Sub Sub SetObjectView Dim ctop As Int = 20dip Dim labelHeight As Int = 30dip Dim textHeight As Int = 40dip 'Taruh Label dan EditText di Panel. PnlBarang.AddView(LblKode, 20dip, ctop, 100%x-40dip, 30dip) : ctop = ctop + labelHeight PnlBarang.AddView(EdtKode, 20dip, ctop, 100%x-40dip, 40dip) : ctop = ctop + textHeight PnlBarang.AddView(LblNama, 20dip, ctop, 100%x-40dip, 30dip) : ctop = ctop + labelHeight PnlBarang.AddView(EdtNama, 20dip, ctop, 100%x-40dip, 40dip) : ctop = ctop + textHeight PnlBarang.AddView(LblHarga, 20dip, ctop, 100%x-40dip, 30dip) : ctop = ctop + labelHeight PnlBarang.AddView(EdtHarga, 20dip, ctop, 100%x-40dip, 40dip) : ctop = ctop + textHeight PnlBarang.AddView(LblKeterangan, 20dip, ctop, 100%x-40dip, 30dip) : ctop = ctop + labelHeight PnlBarang.AddView(EdtKeterangan, 20dip, ctop, 100%x-40dip, 40dip) : ctop = ctop + textHeight 'Taruh Panel dan Button di activity. Activity.AddView(PnlBarang, 0,0,100%x, 85%y) Activity.AddView(BtnSave, 0, 85%y, 50%x, 15%y) Activity.AddView(BtnDelete, 50%x, 85%y, 50%x, 15%y) End Sub |
- Bisa kita lihat pada fungsi GetDataBarang, di situ ada baris code yang berwarna merah, yaitu: GenerateKode. Untuk itu, sekarang buatlah fungsi ini seperti berikut:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Sub GenerateKode 'Output kodenya: BRG-0001, BRG-0002, BRG-0003, dst. Dim CountStr As String = Count + 1 If CountStr < 10 Then CountStr = "000" & CountStr Else If CountStr < 100 Then CountStr = "00" & CountStr Else If CountStr < 1000 Then CountStr = "0" & CountStr Else CountStr = CountStr End If Log("count: " & CountStr) Dim kd As String = "BRG-" & CountStr Return kd End Sub |
- Kemudian buatlah fungsi untuk meng-handle event Click dari Button save dan Button delete. Masukkan code di bawah ini:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
Sub BtnSave_Click() 'Jika create baru, maka insert. 'Selain itu, maka update. If NewData Then ProgressDialogShow2("Inserting data to server... Please wait!", False) Dim cmd As DBCommand cmd.Initialize cmd.Name = "insert_barang" 'parameters: kode, nama, harga, keterangan, kategori_id cmd.Parameters = Array As Object(EdtKode.Text, EdtNama.Text, EdtHarga.Text, EdtKeterangan.Text, 1) reqManager.ExecuteCommand(cmd, "insert_barang") Else ProgressDialogShow2("Updating data to server... Please wait!", False) Dim cmd As DBCommand cmd.Initialize cmd.Name = "update_barang" 'parameters: nama, harga, keterangan, kategori_id, id cmd.Parameters = Array As Object(EdtNama.Text, EdtHarga.Text, EdtKeterangan.Text, 1, ID) reqManager.ExecuteCommand(cmd, "update_barang") End If End Sub Sub BtnDelete_Click() Dim result As Int = Msgbox2( "Apakah Anda yakin ingin menghapus barang: " & EdtNama.Text & "?", "Confirmation", "Yes", "No", "", _ LoadBitmap (File.DirAssets, "confirm.png")) If result = DialogResponse.Positive Then ProgressDialogShow2("Deleting data... Please wait!", False) Dim cmd As DBCommand cmd.Initialize cmd.Name = "delete_barang" 'parameters: id cmd.Parameters = Array As Object(ID) reqManager.ExecuteCommand(cmd, "delete_barang") End If End Sub |
- Setelah itu buat event JobDone. JobDone ini akan berjalan ketika proses komunikasi antara App Client (Android) dengan Web Server selesai.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
Sub JobDone(Job As HttpJob) If Job.Success = False Then Log("Error: " & Job.ErrorMessage) ProgressDialogHide Else If Job.JobName = "DBRequest" Then Dim result As DBResult = reqManager.HandleJob(Job) Select result.Tag Case "select_barang_by_id" 'Load data barang dara database server. Dim m As Map = reqManager.GetRecsTable(result) LoadDataBarang(m) Case "insert_barang" 'Saat data barang sukses di-insert, munculkan notif. ToastMessageShow("Barang has been created.", True) 'Balik lagi ke List Barang Activity.Finish Case "update_barang" 'Saat data barang sukses di-update, munculkan notif. ToastMessageShow("Barang has been updated.", True) 'Refresh data barang GetDataBarang Case "delete_barang" 'Saat data barang sukses di-delete, munculkan notif. ToastMessageShow("Barang has been deleted.", True) 'Balik lagi ke List Barang Activity.Finish End Select End If ProgressDialogHide End If Job.Release End Sub |
- Oh, iya. Buat satu fungsi lagi dengan nama: LoadDataBarang. Fungsi ini untuk menampilkan data yang di-request dari database server ke object-object EditText yang ada di activity BarangView.
1 2 3 4 5 6 7 8 9 10 11 |
Sub LoadDataBarang(MapRDC As Map) Dim m As Map : m.Initialize For i = 0 To MapRDC.Size-1 m = MapRDC.GetValueAt(i) Activity.Title = "View: " & m.Get("nama") EdtKode.Text = m.Get("kode") EdtNama.Text = m.Get("nama") EdtHarga.Text = m.Get("harga") EdtKeterangan.Text = m.Get("keterangan") Next End Sub |
- Save, kemudian Run/Compile project ini dalam versi Release.
- Lalu lihat, apa yang terjadi…
- Halaman List Barang, sudah terdapat beberapa data di dalamnya.
- Ada tambahan menu Create Barang.
- Saat Create Barang diklik, muncul form baru seperti ini.
- Silakan isi data-data barangnya.
- Setelah diisi, klik button Save.
- Apa yang terjadi? Ya, jika proses insert data berhasil, maka akan muncul notif seperti ini.
- Dan ketika melakukan update data, dan sukses ter-update ke database server, maka akan muncul notif seperti gambar berikut.
- Ketika ingin melakukan delete data, akan muncul dialog konfirmasi. Jika yakin ingin menghapusnya, klik saja Yes.
- Apa yang terjadi? Ya, jika proses delete data berhasil, maka akan muncul notif seperti gambar ini.
Oke, demikian cara membuat CRUD yang datanya dari database MySQL. Semoga bermanfaat. Dan tetap nantikan juga tutorial-tutorial menarik lainnya seputar Basic4Android.
Happy Coding! 🙂
Silakan download source code lengkapnya di sini.
oke gan makasih tutor nya ….ini mantap…hehehe
Oke, sama-sama gan. Semoga bermanfaat untuk semua.
allow gan…mau tanya nih ..gimana kalo ada 2 table..misal kategori barang dan list barang nah di listview tampil kategori barang… begitu listview_itemclick baru muncul list barang berdasarkan kategori barang……mohon bantuannya regards…:)
1. Di config rdc-nya buat command baru lagi, misal:
2. Saat ListView Kategori diklik, kirim parameter category_id ke activity BarangList (ListView Barang), misal:
Note: terlebih dahulu harus buat variabel CategoryID di BarangList.
3. Di activity BarangList buat fungsi GetDataBarang pakai command: select_barang_by_category.
solved gan….makasih banyak…:)
Oke sip 🙂
Itu ngedevelopnya pake apa gan?
Pakai Basic4Android gan.
Gan bagi emailnya dong….
gan bagi email nya … ane mau kirim2 nih ..hehehe
gan kalau get databasenya ketika di panggil barcode scanner (ABZxing) bisa ga? ‘contoh jika scanner = id maka nama,keterangan,kode barangnya langsung muncul di listview
Bisa gan. Fungsi GET-nya panggil waktu scan barcode-nya. Saya asumsikan pakai database MySQL ya, koneknya seperti di postingan ini pakai RDC.
1. Buat fungsi GetData.
2. Saat barcode telah di-scan…
Intinya seperti itu, selebihnya tinggal disesuaikan saja dengan kebutuhannya.
solved gan, terimakasih
Oke sip.
om, share dong yang menggunakan barcode scanner, terima kasih
mas saya juga ada masalah, saya menggunakan scane barcode untuk mencari data tapi eror kayak gini. Mohon Bantuannya
https://www.facebook.com/photo.php?fbid=477031015833064&set=pcb.995723827176384&type=3&theater
Mas, mau tanya nih, ini bisa ndak ya di buat seperti gini misalkan :
panel admin buat CRUD nya pakai web base, lalu tampilin datanya di mobile?
tolong pencerahannya mas heheh
Bisa. Kalau cuma buat menampilkan data saja, bisa lihat artikel ini.
Gan untuk dim cmd as dbcommad mengaktikan modul apa ya??
Itu salah satu object yg ada di class DBRequestManager. Fungsinya untuk memanggil commands di RDC. Untuk lebih jelasnya, silakan cek dua postingan sebelumnya.
mas di poin 16, untuk btn save, kalo saya pakai spiner/combobox, yang bener yang mana ya spiner.SelectedItem / spiner.SelectedIndex. Semaunya bisa save sih , tapi ketika poin 18 bekerja (listview diklik) itu muncul pesan eror, kayak gini
https://www.facebook.com/photo.php?fbid=475726439296855&set=gm.993079737440793&type=3&theater
Coba dicek postingan ini: Cara Membuat Spinner Dinamis di Basic4Android
Di situ ada contohnya. Dipahami aja dari mana asalnya variabel KategoriId. Karena value dari spinner-nya saya tampung di variabel tsb.
mas udah fix, kalo misallnya mau nyimpan tanggal gimana ? soalnya gak ada komponen date time packer di b4a
Ini saya buatin:
MyDateTimePicker
terimakasih…. Mas.
Mas boleh minta library DateDialog……
Itu pake library Dialog. Itu library bawaan b4a.
Mas saya ada pertanyaan lagi di Spiner dinamis
mau tanya gimana model source code, jika ada kondisi membuka activity sesuai dengan bulan (ex activity dapat dibuka/aktif jika bulan= juli or agustus) Terimakasih.
bagi contak personal mas
Mas punya tutorial notifikasi di B4A ? share donk, misalnya setiap ada inputan data di database muncul notifikasi. (ex: pesan makanan, mucul pesanannya di hp admin) Terimakasih
Itu push notification. Kalo di android pake GCM. Pelajari aja ini.
mas mau tanya, apa yang harus dirubah kalo seandainya foreign keynya (id) tidak auto increment/id nya diisi sendiri, saya sudah bisa sampai simpan aja, tapi eror duplicate ketika list viewnya diklik
gini aja, sebelum insert ke database, cek dulu di database-nya apakah id yg sekarang mau di-insert udah ada atau belom? kalau ada, kasih warning “id exist” misalnya. kalau gak ada tinggal insert aja.
Saya kasih contoh dah.
Pertama bikin fungsi buat cek ID di table ybs.
Kemudian pada saat mau insert ke database, panggil fungsi tadi.
mas itu db nya pake sqlite apa yang dari db dr server ya?
klo dr server source code nya seperti apa ? terimakasih
Mas heru,
link nya pas diklik, saya ga da hak akses untuk download. mohon bantuannya mas?
kalo cuma mau menampilkan barang sesuai kode yang kita inginkan..logikanya gimana mas
Di atas sudah saya jabarkan. Coba cek no. 14 baris kode ke 52-57, no. 17 baris kode ke 10-13, dan no. 18. Hasilnya bisa dilihat di (screenshot) no. 27.
mas kalo misalnya mau nyimpen checkbox contoh kodingnya bagaimana ? soalnya kan lebih dari satu pilihan. Terimakasih
Mas tolong cekin koding saya, yg eror apa ? di layout daftar user kodenya tidak mau otamatis, ex : “KDS-0001” berhasil dibuat, tapi waktu create lagi tetep “KDS-0001”. Tolong dibantu, terimakasih
http://www.mediafire.com/download/15vdi1iiobb52tj/Aplikasi.rar
Tambah lagi gan tutor b4anya .. paling top dah disini 🙂
Tambah lagi gan tutorial b4anya .. paling top dah disini 🙂 sukses trus gan
Java.sql.SQLException: An attempt by a client to checkout a Connection has timed out.
kalo ini salahnya dimana om?
http://www48.zippyshare.com/v/rJJ5LrLt/file.html
om tolong di bantu , pas disini kan uda klar , tapi pas comopile , harusnya di pertama ada muncul list barang , tapi ko ga muncul ya om ?
Mas kalo saya punya 2 menu (input data A & B) jadi saya buat dua (lisview A & B), masalahnya ketika mau input data B “count/generate kode” data B mengacu hitungan data A (ex: data A = kode 024, data B = kode 001 –> tapi waktu input data B harusnya kode 002 malah kodenya 0025). Mohon bantuannya mas
Waktu insert data B, hitungnya pakai count data B. Jangan pakai data A.
bro,, ini salah kenapa???
padahal sudah ikutin tutor nya..
http://imgbox.com/LlmR0Zar
Itu karena method atau fungsi ExecuteListView di DBRequestManager belum ada. Coba ditambahkan fungsi tersebut ke DBRequestManager. Caranya bisa lihat poin 6 di positingan ini.
maaf mas,
gk bisa run terus…unknown type httpjob – nya, mhon solusinya mas ?
bang punya lib Uploadfilephp ?
Coba link library-nya post di sini. Nanti saya download-kan.
Halo mas, maaf newbie mau tanya, saya sudah coba turorial dari mas chairruddin sampai myconnectdb2, saya jalankan rdcserver di pc dan aplikasi dari b4a sudah terinstal di hp berjalan lancar pada jaringan yang sama/wifi,tapi ketika hp tidak terkoneksi wifi atau beda jaringan jadi tidak bisa konek. gimana solusinya mas?
Halo mas, maaf newbie mau tanya, saya sudah coba turorial dari mas chairruddin sampai myconnectdb2, saya jalankan rdcserver di pc dan aplikasi dari b4a sudah terinstal di hp berjalan lancar pada jaringan yang sama/wifi,tapi ketika hp tidak terkoneksi wifi atau beda jaringan jadi tidak bisa konek. gimana solusinya mas?
Kalau servernya ada di jaringan local (belum IP public atau di-hosting), si client (hp-nya) harus satu jaringan sama servernya Mas. Jika tidak, maka tidak bisa konek.
Mas mau nanya klo saya pakai sql server gmn ya cara koneksinya?terima kasih banyak sebelumnya
gan maaf mau tanya, ini saya sudah saya selesaikan codingnya, barang viewnya sudah tampil gan tapi di get data barangnya saya rasa error dikarenakan setiap saya call fungsi getdatabarang maka di android app has been stoped gan, cara debugnya gmn ya gan?
sebelumnya saya pake vb.net gan.
oh iya postingan agan membantu saya banget gan sampe saya print semua. makasi ya saya jadi bs belajar android
gan maaf mau tanya, ini saya sudah saya selesaikan codingnya, barang viewnya sudah tampil gan tapi di get data barangnya saya rasa error dikarenakan setiap saya call fungsi getdatabarang maka di android app has been stoped gan, cara debugnya gmn ya gan?
sebelumnya saya pake vb.net gan.
oh iya postingan agan membantu saya banget gan sampe saya print semua. makasi ya saya jadi bs belajar android
Kalau b4a dan HP-nya masih tersambung dengan kabel USB, biasanya nanti ada log atau pesan error di samping kanan b4a-nya.
BANG MAU TANYA BANG.
ini SV (ScrollView2D) kog masih ada garis merahnya ya ??
terimakasih/
akan lebih mudah di pahami jika dibuatkan versi video / youtube