Koneksi VB-MySQL pada Web Server dengan bantuan PHP

Posted: December 3, 2010 in Programming
Tags: , , , ,

Membuat aplikasi database dengan menggunakan Database MySQL mungkin bukan sesuatu yang sulit bagi anda programmer VB. Terutama ketika Server MySQL diimplementasikan dalam satu jaringan yang sama. Di Internet banyak referensi yang membahas Connection String yang bisa digunakan di Visual Basic untuk berbagai bentuk koneksi ke Server MySQL dengan protokol TCP/IP.

Namun jika akan mengakses server MySQL yang run di Web Server terutama yang menerapkan Shared Hosting nampaknya sulit dilakukan dengan menggunakan Connection String yang sudah ada maupun menggunakan software connector seperti ODBC Connector. Alasannya adalah pihak penyedia Hosting menutup akses ke Web Server melalui port 3306 yang merupakan port default untuk koneksi MySQL, dan hanya membuka port-port untuk protokol Web Services seperti port 80, 3128 dan lainnya.

Masalah ini baru saya dapatkan pekan lalu ketika saya mendapat tantangan untuk mengupload data ke web server JILC. Awalnya saya mencoba menggunakan bantuan Connector ODBC, tidak lupa menyetting User Priviledge User MySQL agar bisa diakses secara remote. Dan hasilnya Gagal. Teman saya mencoba memberi solusi dengan membuat aplikasi Web Saja dengan PHP, bukan Aplikasi Desktop dengan VB. Nah dari situ dapat ide untuk mengkolaborasikan VB dengan PHP, dan ternyata Bisa!!!

Prinsip kerjanya sederhana, antara VB dan PHP saling berbagi tugas, PHP bertugas menginput data ke database MySQL, dan VB sebagai aplikasi interface. File PHP ditempatkan di web sedangkan aplikasi yang dibuat dengan VB di sisi Client. Untuk bisa menerapkan ini minimal anda mengerti tentang POST dan GET di PHP, Script PHP untuk menginput data ke MySQL,  Encode dan Decode Data untuk pengiriman data via Internet menggunakan VB, terakhir bagaimana mengirimkan datanya ke Web Server kemudian dieksekusi oleh file PHP di Web Server.

Berikut ini contoh Script PHP yang harus kita upload ke Web Server, Ingat ini hanya contoh, anda harus menyesuaikan dengan kebutuhan anda sendiri nantinya jika ingin mencoba.

<?php
include(“../db.inc”);

$nomorid = $_POST[“nomorid”];
$nomorpin = $_POST[“nomorpin”];
$kelompokujian = $_POST[“kelompokujian”];

savedata($nomorid,$nomorpin,$kelompokujian);

function saveData($strNomorID, $strNomorPIN, $strKelompokUjian)
{
$tglNow = gmdate(“d-m-Y H:i:s”, time()+60*60*8);

$input = “insert into tlog(NoID,NoPIN,KelompokUjian,TanggalDaftar) values(‘$strNomorID’,’$strNomorPIN’,’$strKelompokUjian’,’$tglNow’)”;
mysql_query($input) or die (“Gagal Menyimpan, PIN Tidak Dapat Diaktivasi”);
echo(“Sukses Mengupload Data, PIN Telah Diaktivasi”);
}
?>

Bisa dilihat dari script PHP di atas, bahwa file PHP yang diupload nanti digunakan untuk menginput data NomorID, NomorPIN, KelompokUjian dan TanggalDaftar. Tugas dari aplikasi Desktop kita (yang dibuat dengan VB) adalah mengiriman variabel NomorID, NomorPIN, KelompokUjian, sedangkan TanggalDaftar cukup dengan mengecek Tanggal di server sesaat sebelum menginput (oleh PHP). Yang dibutuhkan di aplikasi VB yang akan kita buat adalah: Minimal Satu Form, Minimal Satu Button, Control-control yang bisa digunakan untuk menginput data yang kita butuhkan, Reference Microsoft XML versi 6, serta Function dan Sub Rutin di bawah ini:

Public Function URLEncode(StringToEncode As String, Optional _
UsePlusRatherThanHexForSpace As Boolean = False) As String

Dim TempAns As String
Dim CurChr As Integer
CurChr = 1
Do Until CurChr – 1 = Len(StringToEncode)
Select Case Asc(Mid(StringToEncode, CurChr, 1))
Case 48 To 57, 65 To 90, 97 To 122
TempAns = TempAns & Mid(StringToEncode, CurChr, 1)
Case 32
If UsePlusRatherThanHexForSpace = True Then
TempAns = TempAns & “+”
Else
TempAns = TempAns & “%” & Hex(32)
End If
Case Else
TempAns = TempAns & “%” & _
Format(Hex(Asc(Mid(StringToEncode, _
CurChr, 1))), “00”)
End Select

CurChr = CurChr + 1
Loop

URLEncode = TempAns
End Function

Private Sub PostData()
Dim URL As String
Dim myData As String

URL = “http://web-anda.com/bla/bla/addnewpin.php&#8221;

myData = “nomorid=” & URLEncode(Me.txtInput.Text) & “&nomorpin=” & URLEncode(strOutPut) & “&kelompokujian=” & URLEncode(Me.cbJurusan.Text)

On Error GoTo Hell

Dim objXMLHttp As New XMLHTTP
objXMLHttp.Open “POST”, URL, False
objXMLHttp.setRequestHeader “Content-Type”, “application/x-www-form-urlencoded”
objXMLHttp.send myData
MsgBox (objXMLHttp.responseText)
Set objXMLHttp = Nothing
Exit Sub

Hell:
MsgBox “Ada Masalah Dalam Pengiriman Data ke Internet”
End Sub

addnewpin.php adalah file PHP yang kita buat sebelumnya. Gunakan Sub Rutin PostData untuk melakukan pengiriman yang pemicunya bisa memanfaatkan Event OnClick pada Control Button/Command di Form VB anda.

Demikian dan semoga bisa membantu teman-teman yang membutuhkannya. Jika ada kritik dan saran yang membangun jangan segan memberikan komentar di bawah.

Comments
  1. bima says:

    kalo dari vb 6.0 koneksi ke MySql tapi servernya ada di komputer lain gimana caranya?
    mohon bantuannya bos

  2. eman says:

    @bima: kalo itu lebih gampang lagi, asumsinya:
    – bima sudah siapkan server mysql nya di PC lain
    yang bima harus siapkan adalah mengaktifkan reference : Microsoft Activex Data Objects 2.x Library (ingat x mulai dari angka 0 sampai 8, pilih sendiri sesuai kebutuhan). caranya: di project vb kamu pilih menu project-references, trus aktifkan library diatas.
    Nah library ini memungkinkan bima mengakses beberapa class yang dibutuhkan untuk komunikasi dengan server rdbms mysql antara lain yang paling sering digunakan:
    – ADODB Connection, semacam object untuk koneksi ke server mysql
    – ADODB Command, object untuk mengirimkan query-query mysql
    – ADODB Recordset, object untuk menampung data yang direquest dari server, anggap saja tempat penyimpanan data sementara di pc kita.
    Konsep programnya nanti kayak gini,
    – Pertama kali lakukan koneksi dengan server menggunakan ADODB Connection
    – Kalo sudah konek, untuk melakukan operasi add,edit,delete dan lainnya gunakan ADODB COmmand
    – Untuk menampilkan data gunakan ADODB recordset
    untuk lebih lengkapnya tunggu saya buatkan dalam bentuk artikel plus source codenya

  3. mbie says:

    mau tanya dunk mas apakah untuk script vb diatas harus ad file reffrence yang diinstal karena saya coba ada error di bagian “Dim objXMLHttp As New XMLHTTP”
    thx

    • eman says:

      yang anda butuhkan cukup mengaktifkan reference : Microsoft Activex Data Objects 2.7 Library dan Microsoft XML, v6.0. Kedua reference tersebut setahu saya sudah termasuk dalam Instalasi Visual Basic 6.0

  4. andre says:

    kak bisa bantu skrif untuk mengkoneksikan web server ke vb untuk PERANCANGAN PENGENDALIAN PERALATAN LAMPU LISTRIK JARAK JAUH MENGGUNAKAN web server..
    tolong kak secepatny….

    • eman says:

      untuk proyek seperti ini, pada dasarnya terbagi dua bagian besar, yakni: bagian elektronik dan hardware dan bagian software. untuk bagian elektroniknya, kamu butuh rangkaian mikrokontroller, saya sih menyarankan menggunakan dari atmel, kemampuan bahasa assembly dibutuhkan disini untuk membuat sistem kontrol yang akan menerima dan memberikan respon dari software melalui port serial. nah rangkaian miktrokontroller ini yang nantinya akan berhubungan langsung dengan lampu atau pun peralatan listrik lainnya yang akan dikontrol. mungkin kamu akan butuh transistor untuk mengontrol on dan off lampu tersebut. untuk bagian software bisa menggunakan kolaborasi PHP dan VB juga. kalo tidak salah, PHP dapat digunakan untuk mengakses port serial komputer dimana PHP tersebut terinstal.

  5. denada says:

    mau tanya dong,, klo misalkan cuma mau connect ke web servernya aja gimna ya, tapi connect nya secara berkala,, jadi kita bisa mengetahui dulu web sever mana yg tidak konek,,

    mohon bantuannya ya,,
    pliss,,

    • eman says:

      mmm logic dari aplikasi ini kira-kira begini: harus ada minimal file, kalao tidak ingin menggunakan database, untuk menyimpan alamat2 web server yang akan di cek, nah untuk mengecek web server itu lagi konek kan tinggal di ping pake VB, kalo ada respon berarti statusnya konek, kalo pesannya destination host unreachable atau RTO anggap saja webnya nggak konek, nah tandai dengan status tidak konek, lalu tampilkan di interface berupa tabel/grid. jadi harus tahu bagaimana melakukan ping menggunakan VB dan bagaimana menangkap respon hasil ping tadi..

  6. ashadi says:

    Thanks nie atas sharenya….
    Like this

  7. joni says:

    kode diatas masih error bro ..bisa minta contoh kode sederhana..membaca dari vb ke php, ..jadi dari vb mengetik kode di text box trus dibaca di php…thanks before…

    • eman says:

      mohon maaf jika masih ada error, mohon disampaikan pesan errornya apa? atau errornya di bagian mana?! agar bisa saya koreksi.. Insya Allah kalo ada kesempatan saya akan tulis versi yang lebih sederhana

  8. wisnu says:

    mas mohon bantuan nya .. sudah berhasil disimpan tapi yg disimpan kosong dan bukan teks yg diinputkan. mohon solusinya karena tidak ada pesan eror apapun . terima kasih

  9. Azlina says:

    klo mo koneksi vb ke database server mysql yg ada di internet, gmn caraya?
    klo bisa bikinin modulnya
    makasih

  10. Blue says:

    thanks bro.
    tapi kalo mau nampilin konfirmasi sukses atau error (yang d script php tsb) ke program vb kita , gimana ya??

    bisa tulis script yang lebih lengkap gak, tentang komunikasi vb dan php. terutama untuk file upload dan download..

  11. aroy says:

    mas, klo mengambil datanya dari webserver(di tempat hosting) ke aplikasi desktop bagaiman ya?

  12. I will immediately take hold of your rss feed as I can’t find your email subscription hyperlink or newsletter service. Do you’ve any? Please let me recognize in order that I could subscribe. Thanks.

  13. dede says:

    mau nanya om, klo inputnya bukan dari kontrol di form gimana?
    misalnya ngambil dari database di client sebanyak 100 record yang akan diupload.
    trims

  14. michsanchsan says:

    assalamu’alaikum mas…
    mas saya tegolong awam di bagian php. tapi saya sangat berminat dengan cara mas ini karena saya sedang mendalami VB 6.0, sekarang saya sudah memiliki database mysql yang terkoneksi dengan VB 6.0 nah untuk bisa saya koneksikan ke internet seperti yang mas lakukan kira2 apa saya yang harus saya siapkan dan bagaimana langkah awal yang harus saya tempuh,… mohon bantuannya ya mas…

  15. Indah lestari says:

    Mas eman,

    Saya mau tanya bagaimana membuat aplikasi vb.6 dengan web service. langkah-langkahnya apa saja yg harus saya persiapkan. dari apa saja yg harus saya install dan juga bagaimana cara membuat koneksinya. terima kasih

  16. dewa says:

    mau tanya dong
    URL = “http://web-anda.com/bla/bla/addnewpin.php”
    8221 tuh artinya apa?
    saya coba kok muncul error ya?

  17. dewa says:

    gan muncul error ni : forbidden, you dont have permision to access /tampildata.php
    kenapa ya gan? butuh pencerahan nih

  18. Permisi mas…
    saya misa dibilang masih baru dalam hal pmrograman web terutama php dan saya kebetulan mendat Tugas Akhir dari dosen untuk mengambil data dari VB.net ke website. Klo boleh mohon gambarannya ya mas. Terima kasih

  19. Famoso Adjie says:

    kak, maksudnya http://web-anda.com/bla/bla/addnewpin.php&#8221 diisi apa ya?? apa diisi sesuai dengan data cpanel yang udah kita buat??? makasih sebelumnya

  20. Ilyas Didit says:

    mkasih buat infonya boss !!!
    tapi,gimana cara yang lebih mudah yaa ??? (coding nya rumit kali)

  21. makasi buat infornya mas.
    Saya mau tanya mas. saya ada buat program dengan vb 6. databasenya saya pakai MySQL yang run di Web Server Shared Hosting. untuk koneksinya ke database saya gunakan coding yg cukup sederhana, codingnya sebagi berikut:

    sub Konek()
    adodc1.ConnectionString = “DRIVER={MySQL ODBC 3.51 Driver};SERVER=namaServer;DATABASE=namadb;UID=userid;PWD=password;PORT=3306;OPTION=3”
    adodc1.RecordSource = “SELECT * From namatabel”
    adodc1.Refresh
    end sub

    untuk coding simpannya:
    with adodc1.recordset
    .addnew
    !namafield1 = xxxx
    !namafiled2 = xxxx
    !dst
    .update
    end with

    Sampai saat ini sih masih bisa menjalankan semua proses yang ada di programnya. cuman terkadang agak lambat dan koneksi ke databasenya kadang-kadang terputus.
    Karena di artikel mas ini saya baca untuk koneksi ke web server itu lumayan rumit dan harus menggunakan php untuk proses inputnya ke database. Saya ingin tanya apakah untuk jangka panjang coding yg saya gunakan diatas bisa diandalkan?
    Mohon informasinya mas.!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s