Cara Menghubungkan Aplikasi Android ke Database MySQL

Dalam Basic4Android (B4A) ada banyak cara untuk menghubungkan App Client (Android) ke Remote Database Server seperti: MySQL, SQL Server, Oracle, Sybase, DB2, postgreSQL, Firebird dan lainnya. Salah satu caranya yaitu dengan bantuan Remote Database Connector (RDC).

Apa itu RDC? Yaitu sebuah middleware berupa Java web server yang memungkinkan kita dengan mudah untuk menghubungkan aplikasi android ke berbagai Remote Database Server. Jadi, dengan adanya RDC ini kita tidak perlu repot-repot membuat Web Server sendiri dengan PHP atau sejenisnya.

Oke, dalam postingan kali ini saya ingin share bagaimana caranya menghubungkan aplikasi android ke database MySQL.

Perlu diketahui dalam tutorial kali ini, saya menggunakan OS Windows 8.1 dan server MySQL menggunakan XAMPP.

Sebelum melangkah lebih jauh, terlebih dahulu buat database MySQL-nya, dengan nama (misal): delheru-penjualan. Lalu buatlah satu tabel dengan nama: barang. Dengan field-field sebagai berikut: 01-database-delheru-penjualan-barang

Jika database MySQL sudah dibuat, maka insert-lah beberapa data. Misalnya seperti ini: 08-insert-data

Lalu perhatikan langkah-langkah berikut ini…

  1. Pastikan Windows-nya sudah terinstal Java.
  2. Silakan download RDC Server-nya di sini. Kemudian ekstrak ke mana saja boleh. 07-ekstrak-rdc
  3. Buka config.properties. Lalu sesuaikan config database-nya, seperti JdbcUrl, User, Password. Untuk lainnya (sementara) abaikan saja.

  1. Kemudian buka RunRLC.bat dengan text editor seperti Notepad++ atau Sublime Text. Sesuaikan path direktori java.exe pada Windows Anda. 02-runrlc
  2. Untuk mengaktifkan atau menjalankan RDC-nya, klik dua kali pada RunRLC.bat. Maka, akan muncul seperti gambar di bawah ini: 03-runrlc
  3. Untuk memastikan lagi apakah RDC sudah running atau belum, bisa dicek dengan cara membuka: http://localhost:17178/?method=test di browser. Ganti localhost dengan IP Anda. Jika sudah running, maka akan muncul tulisan seperti pada gambar berikut: 04-runrlc
  4. Oke, sekarang buat project baru, lalu save dengan nama: MyConnectDB.
  5. Lalu import Class Table dan DBRequestManager.

Cara import Class bisa lihat postingan ini.

  1. Buka Class Table. Kemudian tambahkan code berikut ini:

  1. Beralih ke Activity Main. Pada Sub Process_Globals dan Sub Globals deklarasikan object-object seperti di bawah ini:

  1. Pada event Activity_Create masukkan code berikut:

  1. Buat fungsi baru dengan nama GetDataBarang.

  1. Kemudian buat event Click untuk object menu SyncBarang seperti code di bawah ini:

  1. Setelah itu buat event JobDone. JobDone ini akan berjalan ketika proses komunikasi antara App Client (Android) dengan Web Server selesai.

  1. Save, kemudian Run/Compile project ini dalam versi Release.
  2. Lalu lihat, apa yang terjadi… 05-list-barang06-list-barang

Jika datanya ingin ditampilkan ke dalam ListView, silakan lihat postingan ini:

Cara Menampilkan Data MySQL ke Dalam ListView

Oke, demikian cara menghubungkan aplikasi android ke database MySQL menggunakan RDC. Semoga bermanfaat. Dan tetap nantikan juga tutorial-tutorial menarik lainnya seputar Basic4Android. Happy Coding! 🙂

Silakan download source code lengkapnya di sini.

Share This!

191
Leave a Reply

avatar
76 Comment threads
115 Thread replies
8 Followers
 
Most reacted comment
Hottest comment thread
72 Comment authors
HariiRafi FahrezaiwanWawan Dwi Prasetiyomasyanto Recent comment authors

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  Subscribe  
newest oldest most voted
Notify of
alie
Guest

brooo sukses selalu.

itu root bukannya saatnya kita install xampp ya.
kalo kita install xampp default tanpa password. passwordnyaa kosongin aja kan.

Anri P
Guest
Anri P

Kalau bisa sekalian sama CRUD untuk Server

Imam Riyadi
Guest

Termakasih atas tutorial nya gan …tapi mau tanya kalo untuk login memakai mysql gimana yah …? mohon petunjuk untuk GetUser sama Jobdonenya gan …ditunggu..Trims…regard

Imam Riyadi
Guest

wah …trims banget gan …makasih atas tutornya …regards..:)

Anri P
Guest
Anri P

Ketika saya compile, saya tidak mempunyai Library : CompressedStreams

Tolong di Upload gan…

teguh
Guest

bro tau caranya buat aplikasi android yang mengambil picture dari mysql gak bro?

nur arief wicaksono
Guest
nur arief wicaksono

selamat sore negh mas,bisa gak ditambahin lib yang kurang seperti ScrollView2D dan ByteConverter mungkin bisa dikirim ke email saya makasih

nur arief wicaksono
Guest
nur arief wicaksono

makasih banyak mas

nur arief wicaksono
Guest
nur arief wicaksono

ada gak kode basic4android upload file dan download file

nur arief wicaksono
Guest
nur arief wicaksono

trima kasih

Han
Guest

gan cara mengetahui alamat IP Server RDC-nya? dimana ya

Nur Arief Wicaksono
Guest
Nur Arief Wicaksono

gan saya ada contoh open blob di sqllite kodenya seperti ini :

kalau untuk kode RDCnya kira kira gmn ya makasih

muhamad nur arifin
Guest
muhamad nur arifin

Gan Sorry nih, Buat dapet JDBC URl bagaimana ya?

Muhamad nur arifin
Guest
Muhamad nur arifin

Thanks Gan

ianhade
Guest

Thx banget gan, ilmunya bermanfaat banget….
Ditunggu artikel berikutnya….

ridhwan
Guest

Pas dicoba running muncul error “Unknown type: scrollview2d”
Itu knp ya?

ianhade
Guest

pas di coba sync data barang datanya gk muncul, kemudian di log nya muncul pesan
“Error: org.apache.http.conn.HttpHostConnectException: Connection to http://192.168.100.40:17178 refused
” knp ya?

ianhade
Guest

Bener bgt gan, ternyata device nya gk konek ke server setelah dicoba ping….thx bgt ya. Semoga terus bertambah ilmunya…..

Agung
Guest

Terima kasih, saya mau tanya, kalau kelak disimpan di serer, apanya yang disimpan? Biasanya kan syntax php nya, kalau ini apa? Terima kasih ditunggu jawabannya om 🙂

Sutono
Guest
Sutono

httpjob lib nya ada ngak?

Sutono
Guest
Sutono

Oke Gan Makasi.. Ada Error disini

Error:org.apache.http.conn.HttpHostConnectException: Connection to http://localhost:17178 refused

Tyr
Guest
Tyr

Gimana ya mahu masukkan librarynya?

Arun
Guest
Arun

C:\Users\user\Pictures\Clip_18.jpg

Anjaya
Guest
Anjaya

Gan kalau pakai SQL Server settingnya gimana ya?

Tahta Laksana
Guest

mas rasid kalau tutorial ingin menghubungkan mysql yang ada di hosting itu bagaimana ya caranya ? yang perlu dirubah dibagian mana saja ?

khamdan
Guest

Mas mau tanya kalau projeknya udah di jadiin .apk dan di instal di smartphone gimna cara konekin ke database yg ada di pc

khairunnas
Guest

punya saya ketika RunRlc.bat nya dijalanin malah muncul gini gan

FAILED SelectChannelConnector@0.0.0.0:80 FAILED: java.net.BindException: Address already in use: bind

itu kenapa gan,
mohon pencerahannya.

david
Guest
david

mas mau tanya kalau misalnya koneksinya kita buatkan layout sendiri, terus mengetahui bahwa sudah konek ke server ? mohon bantuannya

david
Guest
david

sudah mas, dan untuk get data barang apakah bisa ditaruh pada layout data barang, jadi pisah dengan layout koneksi, karena sudah saya coba saat get data barang (poin 13) saya hilangkan, dia tidak connect, tapi jika seperti (poin 13) berhasil connect. tadi data barang tidak muncul di layout data barang

david
Guest
david

bisa dicontohkan mas saya kurang paham, jadi JobDone ada dua dong ? satu buat koneksi dan satu buat GetDataBarang

david
Guest
david

mas udah sukes tapi ada yg aneh, klo saya coba koneksi (sukses) dulu baru datanya muncul, tapi saat saya coba koneksi (gagal) dulu lalu saya koneksi (sukses), malah selalu ke layout koneksi, diketerangan resume, ketika memilih layout data barang selalu menuju layout koneksi

david
Guest
david
David
Guest
David
M Nur
Guest
M Nur

Ass. Mas Chairruddin Arrasid, mau nanya nih…
Kalau buka: http://192.168.1.200:17178/?method=test komputer tempat RDC muncul
RemoteServer is running (Fri Feb 12 14:31:59 SGT 2016)
Connection successful.
Kalau pakai computer lain atau android tidak konek..
Apa penyebabnya ya…..

M Nur
Guest
M Nur

ok…berhasil..jadi gimana nih.. apakah harus dimatikan terus ?

M Nur
Guest
M Nur

Activity.AddMenuItem(“Sync data Barang”,”SyncBarang”)
tidak muncul menu SyncBarang

Donny
Guest
Donny

Mas. Numpang tanya. mengapa saya menampilkan data mysql ke dalam bentuk table. Lebar kolom nya tdk bisa otomatis berubah ya? Pdhal AutomaticWidths sudah di set true. Mohon Bantuannya. Thx

HasbiBasith
Guest
HasbiBasith

kalo komputernya mati / mysql nya sedang tidak aktif , apa masih bisa di akses di android ?
Terima Kasih

Hafidz
Guest
Hafidz

Kak, benar sih yang dikatakn kak HasbiBasith diatas.
disini yg ingin saya tanyakan apakah source yg diatas bisa digunakan saat kita online dari lokasi yg berbeda, contoh antar kecamatan atau kota?

IndraFA
Guest
IndraFA

Nice gan, sangat membantu

bikangelektro
Guest
bikangelektro

nice info,

gan, kalo misal kita buat aplikasi barcode scanner dengan data base yang terhubung dengan ms.access bisa tidak ya

bikangelektro
Guest
bikangelektro

kalau gitu saya tunggu artikel agan yang satu ini, nice blog 🙂

David
Guest
David

Mas yang poin 12 maksudnya apa : reqManager.ExecuteQuery(cmd, 0, “select_barang”) —> yang 0(nol) itu apa ya

Bobby
Guest
Bobby

mohon maaf mas rasid, bisa tanya utk select where like itu syntak nya gmn ya jika akan jadi parameter? saya coba di config.property misal select* from item where nama like %”?”% lalu atau saya coba ‘%?%’ atau malah %?% semua ngga bisa muncul ya… mohon bantuannya.. terima kasih

Taruna
Guest
Taruna

src\b4a\example\dbrequestmanager.java:30: error: package anywheresoftware.b4a.agraham.byteconverter does not exist
public anywheresoftware.b4a.agraham.byteconverter.ByteConverter _bc = null;

Taruna
Guest
Taruna

itu kenapa ya gan ?

Taruna
Guest
Taruna

solve gan

rizal
Guest
rizal

java.sql.SQLException: An attempt by a client to checkout a Connection has timed out.
itu kenapa ya gan?

Sukarno
Guest
Sukarno

mohon pencerahan…

untuk koneksi ke mysql yg dihosting gmn ya?

Mohammad Agustiar
Guest
Mohammad Agustiar

mau nanya nih kang, kalo mau dihubungin database dari web server apa kita harus beli hosting dulu ? Makasih 😀

David
Guest
David

mas saya mau tanya, kenapa kalau akses ex: listview data_barang dahulu kemudian akses koneksi dan balik ke listview data_barang selalu tidak muncul datanya, tapi kalau akses koneksi kemudian ke listview data_barang normal (data muncul). Dan untuk login sesuai tutorial dibawah kenapa jika masuk dengan user 1, kemudian masuk dengan user 2. User 2 selalu ditolak (bagaimana cara logout user 1 terimakasih)

David
Guest
David

bisa tolong contohkan mas … 😀 , soalnya saya pakai seperti ini waktu log out / tombol kembali ditekan (etnama.text = “”), tapi waktu login tetep data ke 2 ditolak. Terimakasih

Budi
Guest
Budi

om nanya dong , misal kalo kita ngisinya pas diandroid itu gimana ya source coudenya ? thanks om

dini
Guest
dini

sorry mau nanya, saya mau koneksiin database ke eclipse buat aplikasi elearning aja. jadi cuma narik materi sama gambar. ga perlu ada login. apa cara koneksiin nya sama kaya tutorial diatas? makasih sebelumnya 🙂

dini
Guest
dini

iya java android. yahhh kirain bisa 🙁 oke deh makasih yaa

Rudi
Guest
Rudi

Release muncul Error description : Unknown member : cellalignment
Table.CellAlignment = Bit.OR (Gravity.LEFT, Gravity.CENTER_VERTICAL)
Word : cellalignment…kenapa ya….??? terima kasih sebelumnya

Ryan
Guest
Ryan

Mas Chairruddin…

Saya sudah coba seluruh panduan diatas… so far tidak ada masalah, tapi jika menu SyncBarang saya Click, hasilnya table tetap kosong, padahal data sudah saya isi persis seperti panduan….

Saya coba debug trace line/line… tidak muncul error…

Mohon pencerahannya…

Terima Kasih sebelumnya….

Flore
Guest
Flore

Coba cek lagi RDCnya mas.sya jga pernah kay gtu.
jika RDC tidak di jalankan, maka dia tidak akan tampil.

Ryan
Guest
Ryan

Mas Chairrudin…

Maaf yang tadi setelah saya cek di log ternyata ada error

java.lang.IllegalArgumentException: Host name may not be null

Mohon pencerahannya.

Thanks
RAD

Floren
Guest
Floren

nah, itu kalau gk slah di di Cek dlu di RunRLC.
Sesuaikan dengan lokasi javanya.
kalau sya seperti dibawah ini.

“C:Program Files (x86)Javajdk1.8.0binjava” -Xmx256m -cp .;libs*;jdbc_driver* anywheresoftware.b4a.remotedatabase.RemoteServer
pause

ADE
Guest
ADE

artikelnya bagus,
kalo untuk SQL server ada tutorialnya ga

andri
Guest
andri

Dim RDCServer As String = “http://192.168.0.100:17178”
192.168.0.100 itu diperoleh dari mana ya??
klo 17178 : port mysql yg sdh diseting sebelumnya

septian haryadi
Guest
septian haryadi

Bro, itu kenapa reqManager saya merah ya?
emg sdkit saya ubah dr source kode nya.

Sub Process_Globals
‘These global variables will be declared once when the application starts.
‘These variables can be accessed from all modules.
Dim reqManager As DBRequestManager
‘Sesuaikan alamat IP Server RDC-nya
Dim RDCServer As String = “http://192.168.43.227:17178”
End Sub

bimo
Guest
bimo

itu pake library apa aja bro?

heri
Guest
heri

bagi library Reflection donk gan

Angga
Guest
Angga

mas bro,, ini blog masih aktif kah komennya?
ane mau tanya.. itu diatas udah berhasil. nah giliran database di config.properties RDC ane ganti database lain kok eror ya,. ane cek di runRLC.bat kok cannot represented as java,sql.date at bla bla bla….

Angga
Guest
Angga

saya rasa emang gak support klo ada kolom tanggal didatabasenya ato gmna.? soalnya klo ganti database lain yg kolom2nya gak ada tanggal bisa ngeload.

Angga
Guest
Angga

solved gan.. trimakasih.. sukses selalu.. lain kali bakalan tanya lebih banyak. hehe

bimo
Guest
bimo

bro mau nnya lagi ni, kan saya ada tugas buat buku panduan, di sana ada form login nya, pake emulator semuanya jalan tanpa masalah, tapi pas mau nyoba pake hp dengan b4a bridge, saat proses login loading nya lama dan setelah itu gk ada masuk ke form selanjutnya,itu ngatasin nya gmna ya? terima kasih..

bimo
Guest
bimo

kondisi nya hp dan laptop nya sudah terhubung via hotspot hp.

di logcat kyk nya gk ada yg aneh,gini tulisan yg ada di log cat nya :
LogCat connected to : B4A – Bridge : MITO MITO A180
————- beginning of /dev/log/system
————- beginning of /dev/log/main
Installing file.
packageAdded : package:b4a.example

bimo
Guest
bimo

ip server nya sih pake 10.0.2.2(localhost) karna di android, saya msh pake server local mas.

bimo
Guest
bimo

jadi yang di bagian dim rdcserver as string = “http://10.0.2.2:17178” di ganti dengan rdcserver as string = “http://ip komputer:17178”?

bimo
Guest
bimo

ip nya udah saya ganti dengan ip komputer dan firewall sudah saya off kan, tapi gk ada perubahan mas…

bimo
Guest
bimo

bisa ya pakai usb? setau saya pakai bluetooth atau wifi mas, gmna cara nya mas?

bimo
Guest
bimo

nanti secara otomais device nya bakal terdeteksi mas?

bimo
Guest
bimo

ok mas, saya coba dulu

bimo
Guest
bimo

sudah saya coba dengan usb, tpi tetap aja gk mau login, di log keluar tulisan error apace connection time out gtu… ada solusi mas?

bimo
Guest
bimo

ip komputer server nya gk bsa di panggil di browser hp nya mas

bimo
Guest
bimo

begini penampakan error nya mas, Error: org.apache.http.conn.ConnectTimeoutException: Connect to .. timed out

bimo
Guest
bimo

firewall udah mati mas, jaringan gmna ya mas? secara kan percobaan nya cma pakai laptop sebagai server nya dan device dihubungkan dengan usb

Sanjanur
Guest
Sanjanur

Gak bisa terima Orderan di aplikasi gojek karna status tidak aktif

Sonny
Guest
Sonny

Saya ada buat aplikasi dengan android studio tetapi saya ada masalah ketika respond error konek ke server lama sekali.
bahkan sampai di klik trus oleh user keluar tunggu atau tutup.

Yang mau saya tanyakan cara supaya respond kalau gagal konek nya lebih cepat bgmn? Terima kasih.

heri
Guest
heri

sore mas…
tanya dong mas. misal kalo kita mau akses database dari webserver / cpanel itu gmn ya mas?

Ulfa
Guest
Ulfa

Kak bantuii dong kak. Kerja tugas pake mysql

amar
Guest
amar

solusinya gina gan

RemoteServer is running (Thu Jun 29 13:25:49 ICT 2017)
java.sql.SQLException: An attempt by a client to checkout a Connection has timed out.

amar
Guest
amar

ude bisa mas kealahanya di pasword ya zh mkasih yo

heri
Guest
heri

mas, saya pakai ip publik akses ke database kantor, ga bisa sdh ganti port : 3306 juga ga bisa.
minta pencerahan dong…