Home > SQLite, Visual Basic > Membuat sms gateway itu gampang, jangan dipersulit !!!

Membuat sms gateway itu gampang, jangan dipersulit !!!

July 12, 2010

Berhubung banyaknya pengunjung yang nyasar ke blog ini, gara-gara keyword “sms gateway” saya jadi merasa bersalah klo enggax ikut-ikutan membahas artikel yang satu ini he he he :D.

Walaupun sudah banyak blog yang membahas tentang masalah ini, tapi kayaxnya tema “sms gateway” masih hangat dan saru eh… seru untuk dibahas :D, dan tentunya dengan adanya artikel ini saya berharap lebih banyak lagi yang tersesat ke blog ini :D.

Oke jadi kasusnya apa nih, kita ambil aja sample sederhana yaitu “pembuatan sms gateway untuk request nilai siswa” dan untuk menyederhanakan pembahasan keywordnya kita batasi saja yaitu request nilai tugas dan ulangan.

Apa yang harus di persiapkan, pertama kita rancang dulu databasenya dan berhubung artikel saya yang membahas tentang database SQLite masih hangat jadi untuk databasenya kita menggunakan SQLite saja.

SQLite adalah database standalone yang kecil, mungil dan gratis. Bagaimana cara membuat database di SQLite sudah saya bahas disini kemudian bagaimana mengaksesnya dari aplikasi juga sudah saya bahasa disini.

Berikut adalah rancangan sederhana database sms yang akan kita buat :

Ada banyak cara untuk membaca sms masuk dan membalasanya, salah satunya adalah menggunakan perintah AT COMMAND dan Microsoft sendiri sudah menyediakan komponen yang bisa mengeksekusi perintah-perintah tersebut.

Tentunya cara ini (menggunakan AT COMMAND) bukan cara yang favorit dikalangan programmer instan seperti Anda dan Saya :D, jadi diartikel ini saya menggunakan komponen pihak ketiga.

Ingat komponen ini adalah shareware, segala resiko (kemudahan dalam membuat aplikasi sms gateway) ditanggung sendiri :D, saya disini hanya share dan tidak terikat kerja sama dengan pihak ketiga tersebut.

Halah pernyataan ngawur 😀

Berikut adalah cuplikan source code untuk membaca dan mengirim sms menggunakan komponen ActiveXpert SMS

1. Membaca SMS Masuk

Private Sub cmdBacaSMS_Click()
    Dim objGsmIn        As ASmsCtrl.GsmIn

    Set objGsmIn = New ASmsCtrl.GsmIn
    With objGsmIn
        .Activate "XXX-XXXX-XXXX-XXXXX"  'diisi serial number yg Anda dapatkan secara ilegal
        .Device = "COM1" 'disesuaikan dengan port COM yang digunakan
        .DeviceSpeed = 19200 'default = 0

        .Storage = 2 '0=sim 1=device 2=any
        .DeleteAfterReceive = True
        .Receive

        If .LastError = 0 Or .LastError = 23140 Then ' Success
            .GetFirstMessage

            While .LastError = 0
                Debug.Print "Pengirim : " & .MessageSender
                Debug.Print "Isi SMS : " & .MessageData

                'TODO : INSERT KE TABEL SMS_IN

                .GetNextMessage
            Wend
        End If
    End With
    Set objGsmIn = Nothing
End Sub

2. Mengirim sms

Private Sub cmdKirimSMS_Click()
    Dim objGsmOut       As ASmsCtrl.GsmOut
    Dim objConstants    As ASmsCtrl.Constants

    Set objGsmOut = New ASmsCtrl.GsmOut
    Set objConstants = New ASmsCtrl.Constants

    With objGsmOut
        .Activate "XXX-XXXX-XXXX-XXXXX"  'diisi serial number yg Anda dapatkan secara ilegal
        .Device = "COM1" 'disesuaikan dengan port COM yang digunakan
        .DeviceSpeed = 19200 'default = 0
        .RequestStatusReport = False

        .MessageType = objConstants.asMESSAGETYPE_TEXT 'mengirim pesan maksimal 160 karakter
        '.MessageType = objConstants.asMESSAGETYPE_TEXT_MULTIPART 'jika lebih dari 160 karakter gunakan opsi ini

        .MessageRecipient = "nomor tujuan" 'biasanya menggunakan prefix +62
        .MessageData = "isi pesan"
        .Send 'kirim
    End With

    Set objConstants = Nothing
    Set objGsmOut = Nothing
End Sub

Jadi cukup dengan bermodalkan 2 cuplikan kode diatas kita akan menyelesaikan aplikasi yg dibahas pada artikel kali ini.

Adapun untuk keyword yang akan digunakan sebagai berikut :

1. Request nilai tugas

keyword : tgs#nis

contoh :
tgs#9941224165

balasan :
Nilai tugas (NAMA SISWA) : BI=95, IPA=75, IPS=80, MTK=85

2. Request nilai ulangan harian

keyword : uh#nis

contoh :
uh#9941224165

balasan :
Nilai ulangan (NAMA SISWA) : BI=95, IPA=75, IPS=80, MTK=85

Berikut penjelasan ringkas beberapa cuplikan source code yang digunakan dalam pembuatan aplikasi sms gateway ini.

Private Function connectToDevice(ByVal device As String) As Boolean
    Dim objGsm      As ASmsCtrl.GsmOut
    Dim manufaktur  As String

    On Error GoTo errHandle

    Set objGsm = New ASmsCtrl.GsmOut
    With objGsm
        .Activate SERIAL_NUMBER
        .device = device

        manufaktur = .SendCommand("AT+CGMI", 500)  'menampilkan informasi manufactur
        manufaktur = Replace$(manufaktur, vbCrLf, "")
        manufaktur = Replace$(manufaktur, "OK", "")
        manufaktur = Replace$(manufaktur, "ERROR", "")
        manufaktur = Replace$(manufaktur, "AT+CGMI", "")
    End With
    Set objGsm = Nothing

    If Len(manufaktur) > 0 Then
        txtModem.Text = manufaktur
        connectToDevice = True
    End If

    Exit Function
errHandle:
    connectToDevice = False
End Function

Sesuai namanya fungsi connectToDevice digunakan untuk mengecek status modem sms yang terpasang, salah satu caranya adalah dengan mengirimkan AT COMMAND “AT+CGM”, AT COMMAND ini berfungsi untuk mendapatkan informasi manufaktur.

Sebagai contoh jika modem sms yg digunakan adalah hp siemens maka nilai yg dihasilkan dari perintah ini adalah “SIEMENS” dan tentunya hp yg bersangkutan juga harus mendukung AT COMMAND.

Private Sub readSMS()
    Dim objGsmIn        As ASmsCtrl.GsmIn
    Dim objConstants    As ASmsCtrl.Constants
    Dim cmd             As cCommand

    Dim keyword         As String
    Dim phoneNumber     As String
    Dim i               As Integer

    On Error GoTo errHandle

    Screen.MousePointer = vbHourglass
    cmdStop.Enabled = False
    tmrReceiveSms.Enabled = False

    DoEvents

    Set objGsmIn = New ASmsCtrl.GsmIn
    Set objConstants = New ASmsCtrl.Constants

    With objGsmIn
        .Activate SERIAL_NUMBER
        .device = cmbPORT.Text
        .DeviceSpeed = 0

        .Storage = cmbStorage.ItemData(cmbStorage.ListIndex)
        .DeleteAfterReceive = True 'hapus sms jika sudah dibaca
        .Receive

        If .LastError = 0 Or .LastError = 23140 Then 'baca sms sukses
            .GetFirstMessage

            strSql = "INSERT INTO sms_in (phone_number, sms_keyword, date_in, time_in) VALUES (?, ?, ?, ?)"
            Set cmd = conn.CreateCommand(strSql)
            conn.BeginTrans

            i = 1
            While .LastError = 0
                phoneNumber = rep0to62(.MessageSender)
                keyword = .MessageData

                cmd.SetText 1, phoneNumber
                cmd.SetText 2, keyword
                cmd.SetDate 3, Format(Now, "yyyy/MM/dd")
                cmd.SetTime 4, Format(Now, "hh:mm:ss")

                cmd.Execute

                If i Mod 10 = 0 Then
                    conn.CommitTrans
                    DoEvents

                    conn.BeginTrans
                End If

                i = i + 1

                .GetNextMessage
            Wend

            conn.CommitTrans
            Set cmd = Nothing

        End If
    End With
    Set objGsmIn = Nothing

    If cekSMSIn Then
        Call sendSMS
    Else
        Call Wait(5000)
    End If

    cmdStop.Enabled = True
    Screen.MousePointer = vbDefault

    tmrReceiveSms.Enabled = True

    Exit Sub
errHandle:
    tmrReceiveSms.Enabled = True
End Sub

Prosedur readSMS digunakan untuk membaca sms masuk dan menyimpannya ke tabel sms_in, berhubung komponen ActiveXpert SMS tidak mempunyai event yg menandai adanya sms masuk maka sebagai gantinya kita menggunakan timer untuk memanggil prosedur readSMS.

Salah satu properties penting yang dimiliki oleh ActiveXpert SMS adalah DeleteAfterReceive, jika nilainya diset true maka sms yg masuk akan otomatis dihapus dan tentunya setelah smsnya dibaca.

Private Function cekSMSIn() As Boolean
    Dim ret As Integer

    strSql = "SELECT COUNT(*) FROM sms_in WHERE status = 0" 'jika status = 0 berarti sms masuk belum di proses
    ret = CInt(dbGetValue(strSql, 0))
    If ret > 0 Then 'ada sms yg belum diproses
        cekSMSIn = True
    End If
End Function

Prosedur cekSMSIn dibutuhkan oleh prosedur readSMS, jadi dengan adanya prosedur cekSMSIn ini program akan mengetahui kapan waktu yg tepat untuk memanggil prosedur sendSMS.

Private Sub sendSMS()
    Dim rsSend          As cRecordset
    Dim cmd             As cCommand

    Dim objGsmOut       As ASmsCtrl.GsmOut
    Dim objConstants    As ASmsCtrl.Constants

    Dim phoneNumber     As String
    Dim keyword         As String
    Dim smsBalasan      As String

    On Error GoTo errHandle

    'cek sms yang belum di proses, ditandai dg status = 0
    strSql = "SELECT id, phone_number, sms_keyword " & _
             "FROM sms_in " & _
             "WHERE status = 0 " & _
             "ORDER BY id"
    Set rsSend = conn.OpenRecordset(strSql)
    If Not rsSend.EOF Then
        Set objGsmOut = New ASmsCtrl.GsmOut
        Set objConstants = New ASmsCtrl.Constants

        objGsmOut.Activate SERIAL_NUMBER
        objGsmOut.device = cmbPORT.Text
        objGsmOut.DeviceSpeed = 0
        objGsmOut.RequestStatusReport = False
        objGsmOut.MessageType = objConstants.asMESSAGETYPE_TEXT_MULTIPART

        Do While Not rsSend.EOF
            'ganti prefix nomor hp 0 -> +62
            phoneNumber = rep0to62("" & rsSend("phone_number").Value)
            keyword = rsSend("sms_keyword").Value

            smsBalasan = getBalasanSms(keyword, phoneNumber)

            objGsmOut.MessageRecipient = phoneNumber
            objGsmOut.MessageData = smsBalasan
            objGsmOut.Send

            If objGsmOut.LastError = 0 Or objGsmOut.LastError = 23140 Then 'sms sukses dikirim
                'update status sms -> 1
                strSql = "UPDATE sms_in SET status = ?, no_ref = ? " & _
                         "WHERE id = ?"
                Set cmd = conn.CreateCommand(strSql)
                With cmd
                    .SetInt32 1, 1
                    .SetInt32 2, objGsmOut.MessageReference
                    .SetInt32 3, rsSend("id").Value

                    .Execute
                End With
                Set cmd = Nothing

                'insert ke tabel sms_out, untuk histori sms keluar
                strSql = "INSERT INTO sms_out (phone_number, replay_msg, date_out, time_out) VALUES (?, ?, ?, ?)"
                Set cmd = conn.CreateCommand(strSql)
                With cmd
                    .SetText 1, phoneNumber
                    .SetText 2, smsBalasan
                    .SetDate 3, Format(Now, "yyyy/MM/dd")
                    .SetTime 4, Format(Now, "hh:mm:ss")

                    .Execute
                End With
                Set cmd = Nothing

            Else 'sms gagal dikirim
                'update status sms -> 1

                'ini masih bisa dikembangkan lagi dengan menambah kolom max_jumlah_kirim di tabel sms_in
                'jadi bisa diberi aturan sms yg gagal dikirim > 3x baru status smsnya diupdate menjadi 1
                strSql = "UPDATE sms_in SET status = ?, no_ref = ? " & _
                         "WHERE id = ?"
                Set cmd = conn.CreateCommand(strSql)
                With cmd
                    .SetInt32 1, 1
                    .SetInt32 2, objGsmOut.MessageReference
                    .SetInt32 3, rsSend("id").Value

                    .Execute
                End With
                Set cmd = Nothing
            End If

            Call Wait(5000)

            rsSend.MoveNext
        Loop
        Set objConstants = Nothing
        Set objGsmOut = Nothing
    End If

    Exit Sub
errHandle:
    Resume Next
End Sub

Prosedur sendSMS akan mengolah sms masuk yg belum di proses (ditandai dengan status = 0), mengupdate statusnya menjadi 1 jika berhasil mengirimkan sms, kemudian menyimpannya ke tabel sms_out sebagai histori pengiriman sms.

Public Function rep0to62(ByVal phoneNumber As String) As String
    'fungsi untuk mengganti prefix 0 -> +62

    rep0to62 = phoneNumber
    If Left(phoneNumber, 1) = "0" Then rep0to62 = "+62" & Right(phoneNumber, Len(phoneNumber) - 1)
End Function

Sesuai namanya fungsi ini berguna untuk mengganti prefix nomor hp 0 menjadi +62 (kode indonesia).

Terakhir fungsi untuk memproses keyword sms yang masuk dan sekaligus sebagai balasan untuk sms keluar.

Public Function getBalasanSms(ByVal keywordSms As String, ByVal phoneNumber As String) As String
    Dim rs              As cRecordset
    Dim param1          As String
    Dim arrKeyword()    As String

    Dim prefix          As String
    Dim nilai           As String
    Dim nama            As String

    Dim tha             As String
    Dim semester        As String

    If Len(keywordSms) > 0 Then
        If InStr(1, keywordSms, "#") > 0 Then 'karakter # -> separator keyword
            arrKeyword = Split(keywordSms, "#")
            If Not (Len(arrKeyword(0)) > 0) Then
                getBalasanSms = "Keyword sms salah"
                Exit Function

            Else
                'do nothing
            End If

        Else
            ReDim arrKeyword(0)
            arrKeyword(0) = keywordSms
        End If

    Else
        getBalasanSms = "Keyword sms salah"
        Exit Function
    End If

    prefix = arrKeyword(0)
    prefix = UCase$(prefix)

    If UBound(arrKeyword) > 0 Then param1 = arrKeyword(1) 'untuk contoh disini param1 bernilai nomor induk siswa

    'untuk pengembangan lebih lanjut tahun ajaran dan semester dibuat settingan tersendiri
    tha = "2009/2010"
    semester = 2

    Select Case prefix
        Case "TGS"
            'validasi nis siswa
            If Not isValidNIS(param1) Then getBalasanSms = Replace(NIS_SALAH, "<nis>", param1): Exit Function

            'validasi no hp siswa
            'nama sekolah sebaiknya disimpan didalam variabel
            If Not isValidHPSiswa(param1, phoneNumber) Then
                getBalasanSms = Replace(HP_UNREG, "<nama_sekolah>", "SMA Negeri Yogyakarta")
                getBalasanSms = Replace(getBalasanSms, "<no_hp>", phoneNumber): Exit Function
            End If

            strSql = "SELECT UPPER(nama) FROM siswa WHERE nis = '" & param1 & "'"
            nama = CStr(dbGetValue(strSql, ""))

            'mulai proses pencarian nilai
            strSql = "SELECT matapelajaran_kode, nilai " & _
                     "FROM nilai_tugas " & _
                     "WHERE siswa_nis = '" & param1 & "' AND tahun_ajaran = '" & tha & "' AND semester = " & semester & " " & _
                     "ORDER BY matapelajaran_kode"
            Set rs = conn.OpenRecordset(strSql)
            If Not rs.EOF Then
                Do While Not rs.EOF
                    nilai = nilai & rs("matapelajaran_kode").Value & "=" & rs("nilai").Value & ", "
                    rs.MoveNext
                Loop
            End If

            If Len(nilai) > 0 Then
                nilai = Left(nilai, Len(nilai) - 2)
                getBalasanSms = "Nilai tugas (" & nama & ") : " & nilai

            Else
                getBalasanSms = "Nilai tugas (" & nama & ") sedang dalam proses pendataan"
            End If

        Case "UH"
            'validasi nis siswa
            If Not isValidNIS(param1) Then getBalasanSms = Replace(NIS_SALAH, "<nis>", param1): Exit Function

            'validasi no hp siswa
            'nama sekolah sebaiknya disimpan didalam variabel
            If Not isValidHPSiswa(param1, phoneNumber) Then
                getBalasanSms = Replace(HP_UNREG, "<nama_sekolah>", "SMA Negeri Yogyakarta")
                getBalasanSms = Replace(getBalasanSms, "<no_hp>", phoneNumber): Exit Function
            End If

            strSql = "SELECT UPPER(nama) FROM siswa WHERE nis = '" & param1 & "'"
            nama = CStr(dbGetValue(strSql, ""))

            'mulai proses pencarian nilai
            strSql = "SELECT matapelajaran_kode, nilai " & _
                     "FROM nilai_ulangan " & _
                     "WHERE siswa_nis = '" & param1 & "' AND tahun_ajaran = '" & tha & "' AND semester = " & semester & " " & _
                     "ORDER BY matapelajaran_kode"
            Set rs = conn.OpenRecordset(strSql)
            If Not rs.EOF Then
                Do While Not rs.EOF
                    nilai = nilai & rs("matapelajaran_kode").Value & "=" & rs("nilai").Value & ", "
                    rs.MoveNext
                Loop
            End If

            If Len(nilai) > 0 Then
                nilai = Left(nilai, Len(nilai) - 2)
                getBalasanSms = "Nilai ulangan (" & nama & ") : " & nilai

            Else
                getBalasanSms = "Nilai ulangan (" & nama & ") sedang dalam proses pendataan"
            End If

        Case Else
            getBalasanSms = "Keyword sms salah"
    End Select
End Function

Untuk mengetahui daftar hp/modem apa saja yang didukung, jangan sungkan dan malu-malu untuk mengklik link ini.

Selamat MENCOBA 🙂

  1. July 12, 2010 at 12:33 am

    panjang juga ya caranya…

    • July 12, 2010 at 1:06 am

      Iya namanya juga pengembangannya om, klo perintah basicnyakan sederhana.
      Wah si om kayaxnya jago mati-matian eh matematika nih 😀

    • 123456789
      September 28, 2012 at 9:41 pm

      klo pengen buat, make program apa yach?

  2. July 12, 2010 at 10:43 am

    Mengunduh (download) sms gateway itu gampang, jangan dipersulit !!! 😀

  3. irzan
    July 12, 2010 at 4:19 pm

    pak dosen, itu contoh utk request ulangan harian masih salah.
    disitu tertulis :
    2. Request nilai ulangan harian

    keyword : uh#nis

    contoh :
    tgs#9941224165

    tolong dikoreksi lg 😀

    • July 12, 2010 at 10:14 pm

      Oke om udah dikoreksi, tq 🙂

  4. July 12, 2010 at 10:57 pm

    sama-sama

  5. July 14, 2010 at 3:13 pm

    wah ane keduluan upload sms gateway pake ActiveXpert SMS, gpp lah nanti ana banyakin tutorial Crystal Reportnya pake database SQLite 😀 dalam bentuk video,,,

    Izin copy paste pa,,,,

    • July 15, 2010 at 2:55 am

      He he he keduluan ya om :D, oke om ditunggu tutorialnya, jadi udah mulai coba SQLite juga nih 😀

  6. July 15, 2010 at 4:02 pm

    Nambah lagi koleksi Q…
    Donlot oM…

    • July 16, 2010 at 1:24 am

      Oke om

  7. Mahmud83
    July 16, 2010 at 5:08 am

    Om..
    Kalau menggunakan ActiveXpert SMS Stabil untuk aplikasi SMS Gateway

    • July 16, 2010 at 6:16 am

      Yg pernah saya coba untuk pendaftaran PSB menggunakan hp siemens c55 sehari bisa menghandle sekitar 900an sms.

  8. July 21, 2010 at 3:45 pm

    Saya sendiri bergerak di bidang SMS gateway, tapi bukan di bagian coding-nya. Wah, kalau gak ngerti coding, ternyata rumit juga ya bikinnya, hehehe… salam kenal ya 🙂

    • July 22, 2010 at 1:09 am

      Salam kenal juga mas tq sudah berkunjung 🙂
      Aplikasi SMS databipnya keren mas? basisnya apa ya? web atw desktop

  9. July 28, 2010 at 4:55 am

    Pak Admin, cara kerjanya bagaimana?

    • July 28, 2010 at 5:54 am

      Masa’ belom bisa sih om?
      1. Install kabel data hpnya, lengkapnya di SINI
      2. Jalankan source trus klik tombol start, klo hpnya di support otomatis keluar nama vendornya
      3. klo langkah 2 sukses, coba keyword berikut :

      tgs#9941224165
      
      • July 28, 2010 at 6:40 am

        Sudah Pak, tapi kok tidak ada SMS ke HP saya?

  10. July 28, 2010 at 6:55 am

    Oke om selamat mendebug prosedur readSMS dan sendSMS 😀

  11. July 28, 2010 at 2:43 pm

    mau tanya nih

    kalo mau merubah nomor hp menjadi nama gimana ya script php nya.

    contoh => jika kita isi pulsa kan ada laporan dari M-TRONIK bukan nomor hp atau klo ada info dari INDOSAT itu kan gak nomor, padahal kita gak mnyimpan nomor hp yang bernama INDOSAT.

    gimana tuh caranya…jika ada yang tau mohon balas di blog saya => http://syfakumala.blogspot.com

    • July 28, 2010 at 10:27 pm

      Klo SENDER IDnya menggunakan nama terserah kita seperti yg om maksud itu kayaxnya tinggal pesan/beli ke operator deh, jadi enggak di handle via kode.

      Klo enggak salah istilahnya MSID
      CMIIW 🙂

  12. Ivan Arafat
    July 29, 2010 at 10:21 am

    Pk mohon pencerahannya…sy coba utk yg procedure cmdbacaSMS kok ga jalan…..sms ga ke baca…sy pake modem itegno3800..mohon pencerahannya om tq

  13. July 29, 2010 at 10:42 am

    Sy tanya dulu om :
    1. Serial Numbernya diisi apa?
    2. Posisi devicenya (port COMnya) udah benar belum
    3. Jangan langsung mencoba prosedure cmdBacaSMS tapi coba dulu fungsi connectToDevice diatas, klo hasilnya false ada kemungkinan modemnya enggak disupport. Coba cek link INI untuk mengecek daftar modem yg disupport.

  14. July 29, 2010 at 12:22 pm

    Mas, pake aja gammu. Bisa kok gammu diintegrasikan pake VB atau JAVA atau bahasa lainnya.

    • July 29, 2010 at 12:37 pm

      Tq om udah mampir n komennya 🙂

      Berdasarkan pengalaman, banyak yg males make gammu karna keterbatasan akses databasenya.

      Pertanyaannya selalu “Bisa enggak ya pake Ms Access” atau “Pake SQL Server” sedangkan utk saat ini Gammu baru mendukung database dg tipe file, MySQL, PostgreSQL dan SQLite (khusus linux)

      Walaupun kekurangan ini bisa diatasi dg langsung mengakses gammu command, tetapi menggunakan gammu command sendiri lumayan lambat dan sedikit lebih rumit 😦

      CMIIW 🙂

  15. echil
    August 5, 2010 at 1:08 am

    mas..mau tanya nih..gmn cara n source codenya mengambil data dari port serial COM dengan visual basic n trus menyimpannya di database m.access

    • August 5, 2010 at 1:36 am

      Harus tau dulu inputannya dari apa ? barcode ? atw lainnya
      Di visual basic udah ada komponen untuk menghandle masalah ini namanya “Microsoft Comm Control 6.0”

      • echil
        August 5, 2010 at 6:58 am

        inputnya dari port serial COM.yang saya bingungkan bagaimana caranya agar data dari port tersebut dapat dibaca di visual basic dan dapat tersimpan di database microsoft access

      • echil
        August 5, 2010 at 7:03 am

        inputannya dari PC yang lain

  16. August 5, 2010 at 7:17 am

    echil :

    inputannya dari PC yang lain

    Masih belum jelas :-D, maksudnya 2 komputer dihubungkan menggunakan kabel RS232?
    Emg data yang diinput dari pc lain berupa apa?

  17. joel
    August 12, 2010 at 4:24 am

    link program yg dikasih itu cuman buat detect hape aja y mas??

    kalo bentuk sms gateway nya gmn y??

    • August 12, 2010 at 4:55 am

      Ya enggak itu udah sample aplikasi sms gatewaynya kok, coba di baca lagi artikelnya pelan2x trus dicoba juga sample programnya.

  18. Fery
    August 16, 2010 at 1:41 am

    untuk HP, kabel datanya harus pake kabel serial atau bisa kabel USB pak? sekarang cari kabel serial agak susah soalnya

  19. August 16, 2010 at 2:27 am

    Pake yg USB aja om, ya tergantung HPnya sih.
    Setelah driver kabel datanya diinstall tinggal cek aja dikenali sebagai COM brp?
    Informasi lengkapnya disini

  20. Ahmad
    August 20, 2010 at 5:33 pm

    Pak klo mau nampilin Imei, databits, provider nya gimana ????????

  21. August 21, 2010 at 6:48 am

    Ahmad :

    Pak klo mau nampilin Imei, databits, provider nya gimana ????????

    Klo nampilin imei cukup seperti ini (masih menggunakan ActiveXpert SMS)

    Private Sub cmdCekIMEI_Click()
        Dim objGsm  As ASmsCtrl.GsmOut
        Dim imei    As String
        
        Set objGsm = New ASmsCtrl.GsmOut
        With objGsm
            .Activate SERIAL_NUMBER
            .device = cmbPORT.Text
        
            imei = .SendCommand("AT+CGSN", 500) 
            imei = Replace$(imei, vbCrLf, "")
            imei = Replace$(imei, "OK", "")
            imei = Replace$(imei, "AT+CGSN", "")
        End With
        Set objGsm = Nothing
        
        MsgBox "Imei : " & imei
    End Sub
    

    databits ?

    msh belum jelas

    provider ?

    pake at+command AT+CREG klo error berarti hpnya enggak support, info at+command yg lain bisa dilihat disini

  22. August 24, 2010 at 12:16 am

    com yang digunakan modem misalnya com 76…… gimana?

    • August 24, 2010 at 1:39 am

      Tinggal ganti aja properties style ComboBoxnya menjadi Dropdown Combo jadi klo ada COM yg belum tersedia langsung bisa diketik.

      Tapi sy baru tau klo port COM itu nyampe 76 😆

  23. August 24, 2010 at 2:05 am

    hmm ok….. komp saya bener2x sampai com76…..semua dah ok berrjalan lancar tp tidak ada sms masuk setelah ngirim sms????

    • August 24, 2010 at 3:56 am

      Pembacaan sms masuk berhubungan dengan setting storage(sim, device, any) coba aja diganti devicenya om, soalnya hp sekarang biasanya defaultnya menggunakan device.

      Jadi tidak semua mendukung pilihan any, tapi untung hp jelex saya (siemens c55) masih mendukung pilihan any 😆

  24. August 24, 2010 at 5:38 am

    hmm hrs ganti hp nie biar ok… 😀 ActiveXpert SMS juga sm ga bisa bc sms masuk… hars bnyk bljar nie…. thank ilmu na Om 🙂

  25. herman
    September 17, 2010 at 3:29 am

    Mas kalau kirim sms da bisa, tp kalau terima belum bisa . saya pakai hp soni ericson k320i. storage nya pakai any .

    • September 17, 2010 at 6:29 am

      coba pilihan storagenya diganti device om.

  26. Angel
    September 20, 2010 at 6:43 pm

    Mas, kalo mo baca phonebook dari simcard gimana ya?

    • September 22, 2010 at 1:09 am

      Coba seperti ini om :

      Private Sub cekPhonebook_Click()
          Dim objGsm  As ASmsCtrl.GsmOut
          Dim phoneBook    As String
          
          Set objGsm = New ASmsCtrl.GsmOut
          With objGsm
              .Activate SERIAL_NUMBER
              .device = cmbPORT.Text
          
              phoneBook = .SendCommand("AT+CPBR=1,5", 1000)   'membaca phonebook lokasi 1 s.d 5
          End With
          Set objGsm = Nothing
          
          Debug.Print phoneBook
      End Sub
      

      Tapi kode diatas blom sy coba langsung, kelupaan bw kabel data 😀

      • Angel
        September 22, 2010 at 8:44 pm

        Sip mass.. Well done.. 😀

  27. dedy
    October 14, 2010 at 7:44 am

    mas, klo mo stop kok ga bisa, disable tombolnya, proses Call Wait(5000) kok ga jalan ya…ditambah syntax apa biar bs stop… trims ya

    • October 15, 2010 at 1:37 am

      secara normal tombol stopnya akan aktif setiap 5 detik, tp jika ada proses membaca/mengirim sms otomatis prosesnya(membaca/mengirim sms) akan diselesaikan terlebih dahulu.

      makanya dibatasi di programnya, misalnya maksimal setiap pengiriman hanya 5 sms. jadi akan ada jeda waktu agar tombol stopnya bisa aktif lagi

  28. October 15, 2010 at 7:03 am

    Membuat SMS Gateway dengan Visual Basic itu mudah.

    —-
    saya bantu SEO hehehe

    • October 16, 2010 at 1:27 am

      wah tq banget om, sy sendiri belum sempat belajar SEO 🙂

  29. October 16, 2010 at 2:25 am

    SEO asal2an kok om.. hahahahaha

    • October 18, 2010 at 1:44 am

      Oke om yg penting udah dibantu. Tq

  30. October 18, 2010 at 7:42 am

    sama2 om 😀

  31. October 31, 2010 at 3:14 am

    Assalamu’alaikum akhi, programnya keren.

    boleh g ana minta sourecodenya di share juga. Habis, bingung cara praktekin code di atas. Thanks

  32. October 31, 2010 at 3:58 am

    Waalaikumussalam

    Sourcecodenya bisa didownload disini.

  33. fiqri08
    November 11, 2010 at 9:31 am

    ommmm doseennnn.. ane mo nanya nih..

    yang punya om khan cuma bisa untuk simpan satu nomer hape persiswa klo supaya bisa nerima dua nomer hape persiswa ato lebih gimana om..

    (siswa sekarang terkadang bisa punya hape lebih dari satu)

    kira2 yg di edit apanya om..

    • November 12, 2010 at 4:42 am

      Gini om mahasiswa langkah-langkahnya :
      1. Tambah field baru di tabel siswa, misal no_hp2
      2. Trus lakukan revisi di fungsi isValidHPSiswa

      Private Function isValidHPSiswa(ByVal nis As String, ByVal phoneNumber As String) As Boolean
          On Error GoTo errHandle
                  
          ' query sebelumnya
          'strSql = "SELECT COUNT(*) " & _
          '         "FROM siswa " & _
          '         "WHERE nis = '" & nis & "' AND no_hp = '" & phoneNumber & "'"
      
          ' query baru, ada penambahan pengecekan field no_hp2
          strSql = "SELECT COUNT(*) " & _
                   "FROM siswa " & _
                   "WHERE nis = '" & nis & "' AND (no_hp = '" & phoneNumber & "' OR no_hp2 = '" & phoneNumber & "')"
                   
          ret = CLng(dbGetValue(strSql, 0))
          If ret > 0 Then isValidHPSiswa = True
          
          Exit Function
      errHandle:
          isValidHPSiswa = False
      End Function
      

      Selamat mencoba 🙂

      • fiqri08
        November 12, 2010 at 7:16 am

        Om.. kodenya udah ane coba alhamdulillah bisa tapi kaya nya gk bisa dinamis yah Om.. klo ane mo tambahin nomer hape menjadi 4 berarti ane musti bikin ato tambah field lagi dong om..
        bisa gk yah om klo dibuat tetep menggunakan satu field tapi di dalam isi fieldnya masing2 nomer hape di pisahin dengan koma ato titik koma kaya nya ini lebih praktis om.. tapi ane bingung gimana kode untuk mengeceknya..

        solusinya dong Om..

        • November 12, 2010 at 7:49 am

          Seperti itu bisa, tp solusi yg lebih baik buat aja tabel baru misal dg nama hp_siswa isinya cukup 2 field aja yaitu nis dan no_hp.

          Trus tinggal sesuaikan aja query yg ada di fungsi isValidHPSiswa :

          strSql = "SELECT COUNT(*) FROM hp_siswa WHERE nis = '" & nis & "' AND no_hp = '" & phoneNumber & "'"
          

          Selamat mencoba 🙂

  34. Pemula
    November 11, 2010 at 6:55 pm

    Bang admin mau tanya, kalau untuk membaca port comm menggunakan komponen mscomm
    kalau untuk membaca port usb pakai apa y? apa bisa?
    thx b4 😀

    • November 12, 2010 at 4:38 am

      Klo itu sy belom pernah coba om, tapi biasanya port USBnya sudah ada perwakilan port COMnya.

      Jadi enggak perlu report2x ngakses port USBnya cukup mengakses port COM perwakilannya tadi (klo istilahnya dulu sy enggak tau n skrg lupa he he :D)

      Coba merujuk ke link ini, cara mengecek port USBnya jadi COM brp.

      Selamat mencoba 🙂

  35. AngeL
    December 3, 2010 at 9:05 am

    Mas, mo tanya Lagi. KaLo buat perintah panggiLan gimana ya? (ex: cek puLsa)
    Sama gimana ya kaLo mo baca hasiL USSD? (ex: baca hasiL cek puLsa)
    Maaf ya mas ngerepotin. 😀

    • December 4, 2010 at 2:33 am

      Coba gunakan perintah AT+CKPD=keys,timepressed,pause.
      Contoh klo menggunakan kartu simpati dengan perintah : *888#

      Private Sub cekPhonebook_Click()
          Dim objGsm      As ASmsCtrl.GsmOut
          Dim phoneBook   As String
          Dim ret         As String
          
          Set objGsm = New ASmsCtrl.GsmOut
          With objGsm
              .Activate SERIAL_NUMBER
              .device = cmbPORT.Text
          
              ret = .SendCommand("AT+CKPD=" & Chr(34) & "*888#" & Chr(34) & ",3,10", 1000)
          End With
          Set objGsm = Nothing
          
          Debug.Print ret
      End Sub
      

      Klo untuk membacanya sy juga belum berhasil om :D, soalnya hasilnya kan enggak kesimpan tapi langsung nampil ke layar.

      Selamat mencoba 🙂

      • December 31, 2011 at 8:44 am

        maaf mas..sya coba USSD / Dial nya kok ga jdi yah?
        ga ngerespon sma skali…

        klau pake MSComm dri windows bisa dengan menggunakan AT Command ATD & txtDial & “;”

        sdng kan klau menggunakan “AT+CKPD=” menekan keypad di modem..

        tp sya aplikasikan ke ASmsCtrl ga bisa jalan untuk ATD nya…ada solusi mas? 😀
        mksh sblum nya..

  36. Yudhistira
    December 6, 2010 at 6:05 am

    Oom.. thanks banget infonya.., saya dah download, dan coba migrasi ke VB.NET 2008, soalnya dah nggak punya VB6 lagi,

    Hanya saja di modul “modWait” nya om, saya ada kendala di sini oom :
    Public Declare Function SetTimer Lib “user32” (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
    Public Declare Function GetMessage Lib “user32” Alias “GetMessageA” (ByVal lpMsg As MSG, ByVal hwnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long) As Long
    Public Declare Function TranslateMessage Lib “user32” (ByVal lpMsg As MSG) As Long
    Public Declare Function DispatchMessage Lib “user32” Alias “DispatchMessageA” (ByVal lpMsg As MSG) As Long
    Public Declare Function KillTimer Lib “user32” (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long

    ketemu errornya waktu disini :
    TimerID = SetTimer(0, 0, mSecs, AddressOf TimerProc)

    Pesan errornya :
    ‘AddressOf’ expression cannot be converted to ‘Long’ because ‘Long’ is not a delegate type

    Udah saya minta bantuan ama oom google.. tapi hasilnya makin bingung.
    Mohon bantuannya oom, atau sebenarnya coding diatas bisa dibikin dalam bentuk lain.

    Thanks.

    • December 6, 2010 at 8:30 am

      Coba deklarasi fungsi SetTimer direvisi menjadi :

      Public Declare Function SetTimer Lib "user32" (ByVal hwnd As IntPtr, ByVal nIDEvent As Integer, ByVal uElapse As Integer, ByVal lpTimerFunc As MethodInvoker) As Integer
      

      Kemudian revisi juga bagian kode TimerID = SetTimer menjadi

      TimerID = SetTimer(0, 0, mSecs, New MethodInvoker(AddressOf TimerProc))
      

      Selamat mencoba 🙂

  37. Yudhistira
    December 6, 2010 at 9:46 am

    It’s done…., thanks oom…
    btw saya bingung.. modul ini gunanya untuk apa yah?
    Atau ada refrensi yang bisa oom share agar saya bisa lebih memahami maksud dibuatnya modul ini…

    THNKS AGAIN..!!

    • December 6, 2010 at 10:19 am

      Sesuai namanya modul untuk menunda suatu proses, tetapi proses lain tetap bisa berjalan.

      Ya agak mirip dengan konsep thread di java (CMIIW) :D.

      Contoh :

      Private Sub Command1_Click()
          Dim i As Integer
          
          For i = 1 To 5
              List1.AddItem i
              Call Wait(2000) ' tunda 2 detik
          Next i
      End Sub
      
      Private Sub Command2_Click()
          Dim i As Integer
          
          For i = 1 To 5
              List2.AddItem i
              Call Wait(2000) ' tunda 2 detik
          Next i
      End Sub
      

      Om tetap bisa mengklik tombol Command2, walaupun proses perulangan di Command1 belum selesai.

      Selamat mencoba 🙂

  38. Yudhistira
    December 9, 2010 at 9:14 am

    Thanks, Oom, atas penjelasannya.. tapi bukankah di VB.NET juga sudah ada konsep Thread nya sendiri?

    Btw saya dah selesaikan coding sesuai dengan petunjuk, tapi sekarang setiap abis reply satu sms akan muncul pesan spt ini oom :

    A callback was made on a garbage collected delegate of type ‘System.Windows.Forms!System.Windows.Forms.MethodInvoker::Invoke’. This may cause application crashes, corruption and data loss. When passing delegates to unmanaged code, they must be kept alive by the managed application until it is guaranteed that they will never be called.

    Mohon pencerahannya… thanks…

    • December 9, 2010 at 10:21 am

      Wedewww mengerikan om pesannya, kayaxnya codenya benar2 unsafe deh 😀 soalnya sy juga belom pernah coba di vb.net mendingan diganti aja deh, seperti kata om coba pelajari lagi konsep thread di vb.net

      Ini ada contoh yang bagus.

      Selamat mencoba 🙂

  39. AngeL
    December 15, 2010 at 2:00 am

    Mas, kaLo nge-cLose device-nya gimana ya? Matiin fungsi connectToDevice-nya. Hee…. 😀

    • December 15, 2010 at 2:30 am

      Kok dimatiin, entar enggak bisa konek donk ❓

      • AngeL
        December 15, 2010 at 10:26 am

        Hee… Maksudnya, kaLo kita pengen masang Lebih dari satu port misaLny. Bisa dua, tiga, dst. KaLo kita pengen non-aktifin koneksi ke device yang ga ingin kita jaLankan mas.

        LaLu, misaL di tengah jaLan koneksinya putus. Indikatornya apa ya. Hee…
        KaLo pake Timer, kurang efektif ya kaLo pengen nambah port Lebih dari satu.

        Saya jadi bingung meLuapkan daLam bentuk kaLimatnya ini. Maaf ya mas kaLo kurang jeLas. 😀 😀 😀

        • December 16, 2010 at 2:47 am

          AngeL :
          Hee… Maksudnya, kaLo kita pengen masang Lebih dari satu port misaLny. Bisa dua, tiga, dst. KaLo kita pengen non-aktifin koneksi ke device yang ga ingin kita jaLankan mas.

          Kalo mau bisa akses beberapa port sekaligus ya otomatis menggunakan array (var objGsmOut, objGsmIn, combo port, timernya) semuanya dijadikan array.

          AngeL :
          LaLu, misaL di tengah jaLan koneksinya putus. Indikatornya apa ya. Hee

          Klo ngirim manual ada indikatornya enggak ya?

          Klo enggak salah ActiveXpert SMS punya method QueryStatus di coba aja.

          AngeL :
          KaLo pake Timer, kurang efektif ya kaLo pengen nambah port Lebih dari satu.

          Ya itulah kekurangan ActiveXpert SMS enggak punya event untuk mengecek sms masuk, otomatis ya harus pake timer.

          Sory yo enggak bisa ngasih sample, soalnya lagi “sibuk coding demi sesuap nasi” 😀

          • AngeL
            December 17, 2010 at 6:27 am

            OK suhu. 😀
            Tak uji nyaLi duLu. Eh, uji coba duLu. 😀

            • December 17, 2010 at 10:17 am

              Selamat mencoba 🙂

  40. rusdhie
    December 20, 2010 at 4:36 am

    mas,, sy kan pakai hp nokia 5800 sebagai modemnya…
    kira2 ada tamabahan ga atau ada yang perlu dirubah ga di codyng vb nya…
    kalo ada tolong kasih tau ya mas……

    • December 20, 2010 at 4:46 am

      Kurang tau nih om, yg penting cari info aja hp nokia 5800 udah support AT+COMMAND enggak

  41. January 27, 2011 at 5:48 am

    bang ko Toolkit yea trial g full versi,,,, punya Cr4ck ya g …. !!

    • January 27, 2011 at 6:25 am

      Enggak om

  42. February 27, 2011 at 12:22 pm

    salam sukses!!
    mas, saya sedang menulis TA, kebetulan tema yg diambil sms gateway. saya boleh ngobrol2 byk tentang ini ga mas kepada mas sendiri??
    klo boleh tau alamat YM, atau facebooknya?

    • February 28, 2011 at 3:31 am

      YM : k4m4r82

      Tapi sory yo om, sy jarang OL

      • February 28, 2011 at 12:22 pm

        klo alamat FB nya blh tau juga gaaa?

        • March 1, 2011 at 12:18 am

          Ini om

  43. XanXus
    March 2, 2011 at 8:32 am

    bos maw nany kondisi objGsmIn.lasterror = 0 itu terjadi kapan ya? kq ane pke ericsoon k320i pke storage any, device maupun SIM ndk kebaca smsny.. dan kondisi ObjGsmIn.laterror = 23140 trus.. kira2 napa ya bos..

    • March 4, 2011 at 10:21 pm

      LastError = 0 artinya sukses mengirim sms, klo 23140 setelah sy cek kok enggak ketemunya ya? jangan2x sy salah ketik lagi 😀

      Atau om bisa cek langsung di ActiveXperts Error Codes.

  44. fandi
    March 8, 2011 at 2:04 pm

    Mas,nanya ya. Aku dah donlot ActiveXpert,aku coba aplikasi vb.net yg udah jadi(project bawaan).
    HP saya Soner W580,dan smsnya jalan,bisa terkirim dan diterima di hp.
    Tapi untuk contoh aplikasi di atas,saya jalankan kok loading start/stop terus ya.
    Padahal udah terdetek com port dan tipe handphone nya. Mohon penjelasannya.
    Trima kasih

    • March 9, 2011 at 1:59 am

      Iya om soalnya contoh aplikasi diatas udah otomatis membaca dan mengirim sms secara otomatis.

      Untuk tombol stop sifatnya aktif/non-aktif jadi klo lg ada proses otomatis tombolnya menjadi non-aktif, tunggu aja beberapa detik nanti tombolnya aktif sendiri kok.

  45. March 9, 2011 at 2:37 am

    Mas, aku ari. mau tanya nih..kok kadang activeXpert suka generic open port error ya?cara benerinnya gmn ya mas kira2?aq pake modem wavecom M1206B yg USB. Apa mungkin gara2 USB nya?klo di resend baru akhirnya terkirim.mohon bantuannya ya..ke email sy di: ari_ns1504@yahoo.co.id

    • March 9, 2011 at 3:31 am

      Mungkin ada aplikasi lain om yang mengakses port modemnya

  46. March 14, 2011 at 6:07 am

    mas, saya boleh minta sreenshot hasil apliksi yg didemokan oleh mas??

    • March 14, 2011 at 7:04 am

      Loh bukannya diatas udah ada sreenshot demo aplikasinya om

      • m eko saputra
        April 25, 2011 at 2:27 am

        tu kan pake vb ya om, klo selain pake vb bisa ga??

        • April 25, 2011 at 4:22 am

          Bisa om, untuk lengkapnya coba cek disini.

          • May 2, 2011 at 10:51 am

            mau tanya lagi om, bedanya activexpert dengan menggunakan gammu apa ya? bagaimana perbedaan secara detailnya? klo dilihat kok mudah pake gammu ya

            • May 2, 2011 at 11:26 am

              Klo gammu berupa service om sedangkan activexpert sms berupa activex dll.

              Memang sih klo cuma dilihat mudahhan gammu, klo ada sms masuk tinggal cek tabel inbox untuk mengirim tinggal insert ke tabel outbox, tapi masalahnya gammu kan terbatas dukungannya databasenya, beda dengan activexpert sms mau pake database apa juga enggak masalah.

  47. Andhika
    March 18, 2011 at 11:02 am

    Maaf Pak bisa tahu bagaimana cara mengambil status reportnya, terkirim atau tidaknya msg, terima kasih

    • March 18, 2011 at 11:43 am

      Coba gini om :

      Private Sub cmdSend_Click()
          Dim objGsmOut       As ASmsCtrl.GsmOut
          Dim objGsmConst     As ASmsCtrl.Constants
          
          Set objGsmOut = New ASmsCtrl.GsmOut
          Set objGsmConst = New ASmsCtrl.Constants
          
          objGsmOut.Activate SERIAL_NUMBER
          objGsmOut.device = "DEVICE_MODEM"
          objGsmOut.deviceSpeed = 0
          objGsmOut.RequestStatusReport = True ' di set true
          objGsmOut.MessageType = objGsmConst.asMESSAGETYPE_TEXT_MULTIPART
          objGsmOut.MessageRecipient = phoneNumber
          objGsmOut.MessageData = msg
          objGsmOut.Send
                              
          If objGsmOut.LastError = 0 Then ' Success
              Call Wait(20000) ' tunggu 20 detik
              objGsmOut.QueryStatus
              
              If objGsmOut.LastError = 0 Then
                  Debug.Print "Status pengiriman: " & objGsmOut.GetStatusDescription(objGsmOut.StatusCode)
              End If
          End If
      End Sub
      

      Selamat mencoba 🙂

      • Andhika
        March 19, 2011 at 7:09 am

        O ya berhasil Pak :D, terima kasih

        • March 19, 2011 at 9:21 am

          Oke om sama2x 🙂

  48. ferdian
    March 25, 2011 at 2:10 pm

    kak, kalau saya mau buat sms gateway ini untuk memberitahukan kejadian penting yg terjadi, katakanlah peringatan, bisa tidak ya kalau dikirimkan keribuan pengguna nomor di indonesia, dengan syarat mereka harus registrasi ke nomor yg telah kita siapkan agar nomor mereka terdaftar kedalam dabes secara otomatis, kemudian bila ada peringatan, maka si operator langsung mengirim pesan saja… trima kasih…

    • March 26, 2011 at 6:00 am

      Yg jelas bisa om, tinggal kembangin aja source diatas.

      Nah masalahnya untuk mengirim ke ribuan pengguna ini nih yg belum pernah sy coba :D.

      Tapi klo mau coba juga, cari modem sms yg bagus misal WaveCom trus waktu mau ngirim loopingnya jangan langsung ribuan nomor batasi aja misal 20 nomor sekali kirim dan jangan lupa nomor2x yg udah dikirim dikasih status.

      Selamat mencoba 🙂

  49. simon
    April 13, 2011 at 9:13 am

    klo send sms ke banyak nomor coding nya gimana om???

    • April 14, 2011 at 2:03 am

      Sama seperti diatas om, tinggal perintah ngirim smsnya dimasukkan kedalam perulangan

  50. April 15, 2011 at 4:46 pm

    waduh, aku gak bisa om.. kok susah banget se?

    • April 17, 2011 at 12:43 am

      Tinggal jalanin aja kok om sourcenya masa’ gitu aja ribet, gimana klo disuruh buat 😀

  51. May 6, 2011 at 4:08 am

    Assalamu’alaikum Wr.Wb.
    mas…. tolong saya nich…!!!
    saya sekarang lagi skripsi dan kebetulan tentang masalah sms gateway….
    berikut judul skripsi saya…

    RANCANG BANGUN SISTEM INFORMASI NILAI SISWA BERBASIS SMS GATEWAY MENGGUNAKAN WEB

    kalau sekiranya mas punya artikel lengkapnya tolong di uploadkan dong….!!! soalnya aku pengen tau cara membuatnya… tapi saya g tau sama sekali tentang SMS Gatway ini…!!! mohon dengan sangat yach… mas…!!!

    Wassalamu’alaikum Wr.Wb.

    • May 6, 2011 at 6:08 am

      Klo basis web pake gammu om, mungkin om bisa coba artikel ini tentang pengenalan gammu.

  52. KandenZ
    May 12, 2011 at 10:21 pm

    makasih tutornya, kan saya coba aplikasikan di sekolah….! mohon do’anya, hehe

    • May 13, 2011 at 1:25 am

      Oke om semoga sukses 🙂

  53. simon
    May 19, 2011 at 8:34 am

    kalau memakai lebih dari 1 modem gimana caranya?

    • May 19, 2011 at 8:52 am

      Ya tinggal dijadikan array om objeknya

  54. simon
    May 19, 2011 at 10:08 am

    maksudnya supaya bisa reply otomatis secara simultan
    atau bs sending secara simultan gitu….
    klo cm dijadiin array langsung bs apa om 😕

    • May 19, 2011 at 10:17 am

      Yg pernah sy coba satu modem utk nerima dan satunya lagi buat balas

  55. simon
    May 19, 2011 at 10:40 am

    kalau buat balasnya pakai lebih dari 1 modem gimana kira2?
    trus misalkan sending ke 1000 nmr, itu sendingnya pakai lebih dari 1 modem, misal 4 modem bisa sending secara simultan ke 1000 nmr tersebut?

    • May 19, 2011 at 11:12 am

      Ya tetap aja menggunakan array om, kan nanti diprogramnya untuk masing2x modemkan udah dikasi penanda yg mana untuk menerima dan membalas.

      Trus waktu ada sms masuk langsung aja dikasih penanda juga nanti membalasanya pake modem yang mana.

      Misal klo ada 1000 sms berarti dibagi aja 4 :
      Modam 1 -> 250
      Modem 2 -> 250
      Modem 3 -> 250
      Modem 4 -> 250

      CMIIW 😀

  56. mokhamad yunus
    May 21, 2011 at 2:18 pm

    mas kalo bahasa pemrogramannya pakek delphi 7 gimana? karena aku baru belajar n pingin bisa makanya aku buka terus blog anda karena aku berharap anda mau bagi-bagi ilmu ama aku. makasih n tolong jawabannya

    • May 22, 2011 at 12:24 am

      Untuk delphi 7 juga bisa kok om, coba lihat disini

  57. Sobeb
    May 26, 2011 at 8:14 pm

    Mas,mau tanya kalo penerimaan&pengiriman mms gateway gmn ya.
    Dimana hp server dhubngkan dg pc server lalu bisa mengirimkan k hp clien.dg ctatan di pc server g di instal dg hp server tp menggunakan AT+Command biar operasinya g dijalankan scra manual.
    Mohon bantuannya mas.
    Tugas akhir saya tentang sistem monitoring ruang kerja scra streaming berbasis web dan mms gateway.
    Kalau web,dll udah jalan,tinggal mms gateway yg jd kendala.
    Tlg di emailkan k sobeb_17@yahoo.co.id
    Partisipasi mas sangat saya harapkan untk meringankan beban ini.
    Terima kasih

    • May 26, 2011 at 10:31 pm

      Sy paling tidak suka klo ditanya jawabannya minta diemail.

      Ada kaidah yg baik om dalam belajar “Ilmu itu didatangi, bukan mendatangi“.

      Om coba dulu program diatas, sy yakin klo sudah dicoba sedikit banyaknya om akan punya gambaran bagaimana menyelesaikan masalah om.

      Atau klo om sudah terbiasanya memprogram berbasis web om bisa mencoba solusi lain yaitu menggunakan GAMMU.

      Coba aja cari referensinya dengan keyword GAMMU+PHP, meluangkan waktu mengklik satu2x link hasil pencarian juga sy anggap sebagai proses mendatangi ilmu.

  58. Sobeb
    May 27, 2011 at 3:12 am

    Ok om.
    Hehe

  59. sobeb
    May 27, 2011 at 7:04 am

    om pernah bikin mms gateway g?

    • May 27, 2011 at 7:16 am

      Yg jelas pake komponen diatas bisa kok om, contohnya ada disini.

  60. sobeb
    May 27, 2011 at 7:35 am

    thx om

    • May 27, 2011 at 8:41 am

      Yuph sama2x om 🙂

  61. Azharry
    May 29, 2011 at 6:20 am

    Pak dosen, bagi ilmu cara mnegirim perintah USSD ke siemens C55 dong….
    Matur Tangkyu

    • May 29, 2011 at 7:54 am

      Udah ada yg nanya om diatas, coba dicek lagi.

  62. June 5, 2011 at 5:12 am

    om,blognya mantap pisan,..!!tp apakah lulusun smp sperti saya apa bisa membuat program sms gateway,?mohon bimbinganya ya om,..!!walapun agak membuat kepala pusing,apa itu SQLite/database tp asik juga nih buat nambah2 ilmu,..!!klw progran yg tinggal instal z ada ga yah?

    • June 6, 2011 at 8:50 am

      Yg jelas bisa om, trus pelajari dulu basic2x pemrogramming untuk databasenya bisa nyusul

  63. osa
    June 15, 2011 at 1:23 am

    om ada contoh source sms gateway yang menggunakan lebih dari 1 modem?
    untuk mengakses menu kartu sim kodenya gimana om?
    thx b4….

  64. ions
    June 23, 2011 at 3:46 pm

    Makasih om bagi-bagi ilmunya…,newbie mau tanya om… untuk membuat paket instalasi VB+SQlite dengan inno setup caranya gimana om? kalo di tutor Om yang sebelumnya khan dengan menggunakan MySQL versi non installer.., ya pinginnya pada saat user instal aplikasinya tinggal pencet next dan next
    tanpa perlu setting database. Makasih ya Om..

    • June 24, 2011 at 2:15 am

      db SQlitenya dianggap aja seperti file biasa om, jadi enggak perlu ada konfigurasi khusus

  65. Mrtm
    July 9, 2011 at 5:34 pm

    om bisa tolong bikinin sms gateway project.vbp buat ngisi pulsa mkios ga
    1. conection comport
    a. combobox buat milih comport
    b. botton conect
    c. label status conect / disconect comport
    2. dial number isi pulsa
    a. textbox1 buat masukan no hp yang di isi
    b. combobox buat milih nominal pulsa (5,10,20,25)
    c. botton kirim, simpan, print dengan perintah:
    – dial *777*NO_HP*NOMINAL*PIN#
    expl. *777*081234567890*10*1234#
    – menyimpan transaksi di data base.mdb
    – print struk kecil
    d. label status berhasil / dengan msgrib
    sebelumnya matur nuwun dan kirimin project.vbp nya ke emailku ya om. thannnkkkkkksss

    • July 10, 2011 at 7:45 am

      Enggak sempat om

  66. July 9, 2011 at 8:17 pm

    thanks inponya n slam knal om… 🙂

    • July 10, 2011 at 7:46 am

      Salam kenal juga om

  67. siibocahkreatif
    July 10, 2011 at 9:48 am

    itu komponennya trial ya ?

  68. July 10, 2011 at 10:10 am

    Udah full om

  69. aris
    July 12, 2011 at 2:36 am

    makasih gan, tutorialnya mantap…… mampir juga di blog saya gan .!!!!!!!!!!!!1

  70. rudy
    July 13, 2011 at 1:38 am

    Pak mau tanya, ini kan saya pake hp nokia 5800 waktu tak jalanin aplikasi sms gatewaynya untuk ngirim bisa tapi untuk baca smsnya kok ga bisa. Kenapa ya? Bisa mohon pencerahannya. Tolong pak ya. txs

    • July 13, 2011 at 2:22 am

      Pilihan storagenya ganti SIM om

      • rudy
        July 13, 2011 at 2:56 am

        ok tak coba dulu maksih banyak pak, tapi ntar klo ga bisa q comment lagi ya pak. txs.

  71. rudy
    July 13, 2011 at 11:27 am

    Pak aku sudah coba ganti STORAGE nya pake yang SIM tapi tetep kok ga bisa ya. tolong ya..

    • July 13, 2011 at 1:01 pm

      Klo pilihan STORAGE nya sudah diganti DEVICE tp tetap enggak mau juga berarti mungkin hape om enggak disupport, kerena memang ada beberapa jenis hp yang hanya support untuk menerima saja atw menggirim saja.

      • rudy
        July 14, 2011 at 1:22 am

        Oh gitu ya pak, aku sudah coba storage tiga2nya tp tetep ga bisa. makasih ya infonya. klo datanya ditampilin ke listview gmn ya codingannya?. maaf tanya terus, soalnya lagi belajar vb nih pak.

        • July 14, 2011 at 1:30 am

          Klo mau nampilin di Listview coba meluncur kesini om

          • rudy
            July 14, 2011 at 1:41 am

            Terima kasih banyak pak.

            • July 14, 2011 at 1:56 am

              sama2x om 🙂

  72. July 13, 2011 at 7:42 pm

    ActiveXpert SMS?…bisa nggak kalo pake mscomm saja, buat emparsing n more?…jd ngk usah ketergantungan ma komponen, yg ada ma…, komponen kena virus aplikasinya ngeload virus deh…,n musti install ActiveXpert SMS lg….think aboout it brow…..

    • July 13, 2011 at 11:10 pm

      Kelamaan om, programmer itu juga sama seperti dokter ada spesialisasinya ada yang fokus ke pemrograman grafis, database, hardware dll.
      Sy jarang sekali ngeliat ada ada virus yang kurang kerjaan menginfeksi file dll/ocx klo pun ada itu pun mungkin buatannya om 😀

  73. July 13, 2011 at 7:45 pm

    so bikin komponen anak negeri sendiri….jd usah pake GAMMU,ActiveXpert SMS, atw ya berbau komponen asing….buktikan loe emg VB man sejati….brow…lets make original engine from indonesian VB…salam M??Editor

    • July 13, 2011 at 11:14 pm

      Sy setuju banget om tapi spesialisasi sy bukan ke pemrograman ActiveX DLL/Control (klo sy mau ini gampang sekali om) spesialisasi sy lebih kearah pengembangan sistem informasi.

      Seorang dokter suntik sejati kan enggak harus bisa buat alat suntiknya yg penting bisa makenya.
      Klo ukuran sejatinya harus bisa buat alat suntik, di negeri kita jadi kekurangan doktek suntik donk om 😀

  74. July 16, 2011 at 7:13 am

    Pak, saya ud download and mau dicoba, tapi baru klik start_button ud error, ” user -defined type not defined” di Dim objGsm As ASmsCtrl.GsmOut pada line 1 Connecttodevice, apakah ada yang kelewat yang harus dilakukan, Add Reference AsmsCtrl.dll dkk sudah dilakukan… Mohon pencerahannya – baru belajar vb6…. Thanks

  75. July 16, 2011 at 8:46 am

    Setelah file SMSGateway.rarnya diekstrak lakukan langkah2x berikut :
    1. cek folder dll didalamnya ada file install atw install.cmd, jalankan file tersebut
    2. buka source sms gateway kemudian klik menu Project -> References… harusnya library ActiveXPerst SMS … dan dhRichClient3 sudah tercontreng otomatis

    Lihat gambar

  76. July 19, 2011 at 6:56 am

    permisi omm….
    sebelumnya maaf ya kalau pertanyaan/permintaan saya agak gak tau diri..
    ini kan bahasanya pake visual basic, ada yang visual C# nya gak omm..?
    btw saya pake ActiveXperts yang SMS and Pager Toolkit

    • July 19, 2011 at 6:59 am

      *Visual C# .NET

      • July 19, 2011 at 8:34 am

        Kan library ActiveXpert SMSnya masih dibisa dipake om di C#.
        Ini sy coba di C# 2008, masih bisa :

        private void ReadSMS() 
        {
            ASmsCtrl.GsmIn objGsmIn = new ASmsCtrl.GsmIn();
        
            objGsmIn.Activate("XXX-XXXX-XXXX-XXXXX");
            objGsmIn.Device = "COM4";
            objGsmIn.DeviceSpeed = 0; //default = 0
            objGsmIn.Storage = 0; //0=sim 1=device 2=any
            objGsmIn.DeleteAfterReceive = 1; // hapus klo udah dibaca
            objGsmIn.Receive();
        
            if (objGsmIn.LastError == 0 || objGsmIn.LastError == 23140) // Success
            {
                objGsmIn.GetFirstMessage();
        
                while (objGsmIn.LastError == 0) 
                {
                    listBox1.Items.Add("Pengirim : " + objGsmIn.MessageSender);
                    listBox1.Items.Add("Isi SMS : " + objGsmIn.MessageData);
        
                    objGsmIn.GetNextMessage();
                }
            }
        
        }
        
        • July 19, 2011 at 8:57 am

          sebelumnya makasi banyak ya omm udah mau ngerespon 😀
          maaf ngerepotin,, ini saya mau tes dulu ya omm

          ada lagi ni pertanyaannya,, kan yang om pake tuh activexperts yang Mobile Messaging Toolkit
          nahh saya pakeknya yang SMS and Pager Toolkit (kompeni maunya pake yang legal. dulu udah beli soalnya)
          kira2 yang ini bisa konek ke database gak ya om? soalnya saya udah cari2 di manualnya..gak nemu soal konek ke database
          trus saya pengen jadiin multiport.. ada masukan..? atau ada pengalaman pernah pake yang ini?

          • July 19, 2011 at 9:23 am

            Library ActiveXpert SMSnya kan enggak ada hubungan dg database om, fungsinyakan cuma untuk membaca dan mengirim sms.

            • July 20, 2011 at 12:55 am

              hoo..iya sih..
              brarti harus pake yang SMS Messaging Server dong ya..supaya dia bisa multiport juga..?
              oke deh omm.. makasi banyak ya!! :-bd

              • July 20, 2011 at 1:13 am

                Oke sama2x om 🙂

  77. masghoz
    August 7, 2011 at 4:34 pm

    Pak, salam kenal saya juga termasuk yg terdampar di sini setelah sekian lama googling 🙂
    Saya tertarik untuk mencoba tapi masih belum tahu cara dapetin yg ini :
    “Activate “XXX-XXXX-XXXX-XXXXX” ‘diisi serial number yg Anda dapatkan secara ilegal”
    maaf mungkin terlalu ndeso pertanyaannya 😀 terimkasih.

    • August 8, 2011 at 2:16 am

      Coba link ini om.

  78. masghoz
    August 8, 2011 at 2:45 pm

    Admin :
    Coba link ini om.

    Makasih Pak, programnya sudah bisa di run dan konek dg HP siemens 🙂 Terus untuk mengakses datanya kira2 pakai keyword sms apa ya? Jazakallah.

    • August 9, 2011 at 1:22 am

      Coba dibaca lagi om postingan diatas kan sudah disebutin keyword apa saja yg bisa digunakan.

  79. masghoz
    August 9, 2011 at 2:13 am

    Admin :
    Coba dibaca lagi om postingan diatas kan sudah disebutin keyword apa saja yg bisa digunakan.

    Okay Om, maaf bacanya kecepetan 🙂 jadi keywordnya terlewatkan. Programnya sudah sukses merespon keywordnya dan mengirim sms tapi dengan cara edit status sms in yg sudah ada di databasenya menjadi 0 . Soalnya sms yg dikirim belum berhasil di retrieve oleh programnya. Kira2 problemnya ada di mana ya Om? Jazakallah.

    • August 10, 2011 at 4:51 am

      Sy jadi bingung

      Programnya sudah sukses merespon keywordnya dan mengirim sms

      Trus

      Soalnya sms yg dikirim belum berhasil di retrieve oleh programnya

      Bukannya merespon keywordnya itu sama prosesnya dg retrieve om ???

  80. masghoz
    August 10, 2011 at 6:28 am

    Admin :
    Sy jadi bingung

    Programnya sudah sukses merespon keywordnya dan mengirim sms

    Trus

    Soalnya sms yg dikirim belum berhasil di retrieve oleh programnya

    Bukannya merespon keywordnya itu sama prosesnya dg retrieve om ???

    Maksude Om.. SMS yg di HP tdk bisa di retrieve (tdk terbaca) jadi gak masuk ke Data Base. Kemaren itu coba2 edit statusnya SMS in yg bawaannya program 🙂 Thx

    • August 10, 2011 at 7:47 am

      Coba pilihan storagenya diganti SIM om

      • August 10, 2011 at 9:32 am

        Masih belum bisa Om..

        • August 11, 2011 at 1:41 am

          Ganti hp aja om :D, soalnya sy juga baru coba di hp siemens c55 dan modem wavecom

          • August 11, 2011 at 4:40 am

            Ow gitu om ya 🙂 .. tapi saya masih penasaran nih. Maaf, soalnya kalo pake program lainnya bisa berjalan normal. Apakah mungkin komponen ActiveXpert SMS nya ga support utk HP yg saya pakai ya?. Saya pakai SIEMENS S57. Thx

            • August 11, 2011 at 5:48 am

              Oke om coba cek fungsi readSMS, trus ganti :

              .Storage = cmbStorage.ItemData(cmbStorage.ListIndex)
              

              Menjadi :

              .Storage = cmbStorage.ListIndex
              

              Klo udah dicoba lagi programnya n coba satu2x pilihan storagenya

  81. August 11, 2011 at 7:44 am

    Admin :
    Oke om coba cek fungsi readSMS, trus ganti :

    .Storage = cmbStorage.ItemData(cmbStorage.ListIndex)
    

    Menjadi :

    .Storage = cmbStorage.ListIndex
    

    Klo udah dicoba lagi programnya n coba satu2x pilihan storagenya

    Alhamdulillah, Om Master problemnya sudah solved. Boleh tahu penjelasannya Om. Thx

    • August 11, 2011 at 9:12 am

      Ya bug aja sih om, seharusnya memang

      .Storage = cmbStorage.ListIndex
      

      Properties Storage mewakili tempat disimpannya SMS
      cmbStorage.ListIndex = 0 -> SIM
      cmbStorage.ListIndex = 1 -> Storage/Phone
      cmbStorage.ListIndex = 2 -> Any (SIM/Phone) cuma enggak semua hp mendukung fitur Any

      • August 12, 2011 at 1:30 am

        Makasih Om petunjuknya.. sekarang penasaran pengen bisa customize responnya and bikin keyword baru lainnya 😀

        • August 12, 2011 at 3:41 am

          Oke om slamet berexplorasi 😀

  82. Idiet
    August 24, 2011 at 12:10 pm

    Mas Kalo SMS Gateway buat transfer pulsa gimana yah, trus gax masalahkan kalo pake HP Nokia?
    Tolong Balasannya yah..

    • August 29, 2011 at 10:26 am

      Batasan aplikasi transfer pulsanya sampe mana om ?
      Untuk hp nokia selama masih mendukung at+command seharusnya enggak masalah

  83. September 1, 2011 at 3:38 am

    Bang, itu pake vb6 ya.. Kalo pake vb.net ada ga tutornya?? Soalnya saya dari awal langsung belajar vb.net, jadi saya ga paham dengan vb6.. Mohon dibantu ya.. tq sebelumnya..

    • September 4, 2011 at 5:47 am

      Gampang om, tinggal buka aja project diatas menggukan vb .net 2003 atw 2005

  84. awik
    September 7, 2011 at 5:53 am

    mas saya coba menjalankan sms gateway tapi pas saya terima sms kok tidak dapat masuk ke tabel sms_in ya.. mohon pencerahanaya

    • September 8, 2011 at 2:33 am

      Udah ada yg nanya om, coba dicek lagi komentar diatas mulai dari komentar #162

      • awik
        September 9, 2011 at 4:14 am

        Terima Kasih OM Aku udah nyoba sukses… tinggal coba2 dikembangkan.. Matur nuwun..

        • September 9, 2011 at 1:04 pm

          Sama2x om

  85. Markus
    September 8, 2011 at 1:38 am

    Serial Number yg mas kasih buat apa ya??
    Saya baru mau bikin nih programnya

  86. Markus
    September 8, 2011 at 1:42 am

    Can’t Find Project or Library, kurang apa ya?

    • September 8, 2011 at 2:34 am

      Coba sample lengkapnya disini om.

      • Markus
        September 8, 2011 at 3:48 am

        Yg td udah…
        trus yg ini ga bisa
        Dim objGsm As ASmsCtrl.GsmOut

        • September 9, 2011 at 12:50 pm

          Emg pesan errornya apa om?

      • Markus
        September 8, 2011 at 3:51 am

        Sy sdh pernah bikin,untuk kirim smsnya sdh bisa
        trus kalo mau membaca isi sms yg ada di sim card untuk ditampilkan ke listview atau disimpan ke database gimana?

        • September 9, 2011 at 12:52 pm

          Klo untuk menampilkan data ke ListView om bisa coba postingan saya yg disini.

          • Markus
            September 16, 2011 at 1:16 am

            kalo yg om postingin sdh biasa sy bikin maksudnya sms yg ada di simcard mau dibaca lewat listview atau bs disimpan ke database trus bs ditampilkan jg ke listview…
            Mohon bantuannya om….mksh sblumnnya..

            • September 16, 2011 at 1:33 am

              Di postingan diatas kan sudah ada prosedure readSMS om, isinya membaca sms yg ada disimcard trus menyimpan kedatabase.
              Berhubung om sudah berpengalaman menampilkan data dg listview jadi enggak perlu kita bahas kan ?

  87. September 10, 2011 at 7:57 am

    wah…, nice share boz…, smoga ilmu ada terus bertambah seiring byaknya ilmu yang anda share… good luck

    • September 11, 2011 at 10:46 am

      Amin 🙂

  88. awik
    September 12, 2011 at 9:22 am

    Om Mau tanya lagi ne om kalo untuk menampilkan no telepon yang tersimpan di HP ke grid codingnya seperti apa om.. terima kasih sebelumnya..

    • September 12, 2011 at 9:45 am

      Coba luangkan sedikit waktu untuk membaca komentar diatas om, sudah ada yg nanya cek komentar #45 dan #46

  89. genxxx
    September 25, 2011 at 2:26 am

    Terima kasih buat tutorialnya ane coba dan sukses, mo nanya Om, kalo database-Nya pake MYSQL, gimana yah om???udah download tool2-Nya : mysql, mysql-connector-odbc trus pake VBMySQLDirect, udah dicoba2, loading-Nya lama, trus akhirnya gak konek ke hp,

    trus Om masih bingung di procedur readSMS, buat ganti metode CreateCommand kalo pake MYSQL apa yah???

    • September 26, 2011 at 4:19 am

      Artikel sy yg disini juga bisa diterapkan untuk MySQL om, disitu sudah ada contoh untuk INSERT, UPDATE, DELETE dan SELECTnya

      Untuk konektornya pake MySQL ODBC Connector aja

  90. Yoko
    September 27, 2011 at 3:55 am

    Salam kenal, Mas trimakasih atas tutornya sy minta database smsnya dunk biar buat belajar

    • September 27, 2011 at 7:39 am

      Download disini om.

  91. 6391nn3r
    September 30, 2011 at 2:37 am

    wah … seruuuu ….
    jadi pengin ikutan nyoba … pak ustadz
    masalahnya saya pake delphi7, sedangkan pak ustadz pke vb … adakah tutorialnya yg pke delphi7 ….
    thx ustadz …

    • 6391nn3r
      September 30, 2011 at 2:41 am

      tambahan ustadz …
      saya pke delphi7, mySQL & koneksinya pke DACforSQL (mySQLDAC)

      thx

    • October 2, 2011 at 4:07 am

      Untuk sample delphi bisa dicek disini om.

  92. genxxx
    October 1, 2011 at 3:06 pm

    Terima kasih Om atas jawabannya, udah saya coba om, cuman kok gak konek2 yah pas diintegrasikan ke Mysql, jadi bingung saya, host, user, password ama database udah disetting, errornya dimana lagi, mo pake cCommand diatas gak bisa (itukan buat sqlite yah om gak bisa dipake buat yang lain)???

    • October 2, 2011 at 4:09 am

      Ya jelas enggak bisa om, klo databasenya mysql membutuhkan MySQL ODBC/Connector.
      Sudah banyak sekali om artikel yg membahas masalah ini, coba digooling dulu.

  93. genxxx
    October 10, 2011 at 2:44 am

    Ok…. Om, dah dicoba, cuma masih bingung om kalo formatnya 3 kata gimana ya om, misalkan seperti ini : total#nama_barang#qty????mentok di metode getBalasanSms, udah dicoba, kalo format tidak sesuai balasan smsNya tampil (“keyword salah”), tapi kalo format sesuai malah balasan smsNya kosong (Bingungnya disini-nih). Om minta solusinya dong seperti apa souce codeNya,…

    Terima Kash…

    • October 10, 2011 at 11:12 am

      Emg kode yg udah om buat seperti apa ?

  94. genxxx
    October 14, 2011 at 10:58 pm

    Code-nya sama kaya yang Om kasih, cuman dimodifikasi aja sih, tapi terima kasih om udah berhasil… diobok2, cari sono-cari sini refrensinya, heheheheeeee. yang masih bingung sih nampilin data sms input ke dalam DataGrid kok gak bisa update2 yah, paling berubahnya kalo form udah dimattin terus dibuka lagi baru data terbaru tampil, pake yang ini nih om :
    strsql = “SELECT * FROM t_jual ORDER by ID ASC”
    rs.open conn, adOpenStatic, adLockOptimistic
    dataGrid1.dataSouce = rs
    datadataGrid1.refresh
    kok gak bisa yah Om????

    • October 15, 2011 at 1:43 am

      Jadi gini aja misal tambahkan prosedure baru misal dg nama LoadData :

      Private Sub LoadData()
          strsql = "SELECT * FROM t_jual ORDER by ID ASC"
          rs.open conn, adOpenStatic, adLockOptimistic
          dataGrid1.dataSouce = rs
          datadataGrid1.Refresh
      End Sub
      

      Trus tinggal panggil di event Form_Load dan pada saat sukses insert ke tabel sms masuk

  95. Oktama
    October 16, 2011 at 3:09 am

    Om.. mau tanya neh ? gimana tuh cara nambah PORT nya ?? soalnya PORT modem saya nomer COM11 dan itu cuman nyampe port COM6 aja ?? tolong om bingung neh 🙂

    • October 16, 2011 at 3:22 am

      Masa’ gitu aja udah bingung om, gimana klo menghadapi kasus yg lebih rumit.?
      Coba pilih objek cmbPORT trus cari properties List, tinggal ketik aja port COM11 nya disitu

  96. abad
    October 16, 2011 at 5:56 am

    Salam kenal mas. terma ksih tutornya.. udah saya coba, tapi koneksi ke dbasenya gagal.kira2x mslahnya d mna ya mas?

    • October 20, 2011 at 6:06 am

      Mungkin ada librarynya yg belum didownload om, coba kesini dulu.

  97. azharry
    October 21, 2011 at 10:07 am

    ikut nimbung pak dosen. Keluar dari tema nih. activeXpertSMS bisa kirim sms dengan panjang lebih dari 160 karakter (1sms) ga? mohon pencerahanya. maturnuwun….

    • October 24, 2011 at 1:37 pm

      Yang jelas bisa om, sy udah coba bisa ngirim sampe 500 karakter lebih

  98. awik
    October 29, 2011 at 4:52 am

    om saya mau tanya.. sebelum saya koneksikan ke komputer di inbox sudah ada isinya setelah saya koneksikan ke komputer secara otomatis membaca sms di inbok tapi berulang-ulang tida berhenti.. mohon pencerahanya.. jadi di sms_in datanya double2..

    • October 31, 2011 at 5:19 am

      Seharusnya setelah baca inbox sms langsung dihapus om, biar enggak double2x

  99. awik
    November 1, 2011 at 8:53 am

    untuk prosesdur hapus inbox setelah terbaca sudah saya aktifkan dan saya coba tetep aja baca sms inbox terus padahal di sms inbox sudah kosong om.. mohon pencerahanya lagi om.. untuk prosedurnya sama persis dengan kode yang di atas.. saya saat ini menggunakan hp sony ericson G502 dan W300i..

  100. awik
    November 1, 2011 at 8:54 am

    tapi kalau hp saya konekan terlebih dahulu ke komputer terus ada sms masuk itu gak maslah lancar2 saja.. berjalan normal..

    • November 3, 2011 at 11:47 am

      Klo untuk prosedur baca smsnya memang diset om setiap beberapa detik, maklum komponenya belum ada fitur notifkasi sms masuk jadi ya harus diakalin menggunakan timer.

  101. November 19, 2011 at 4:04 am

    om dah punya code untuk modem cdmanya ??

    • November 21, 2011 at 4:08 am

      Lom om, soalnya enggak punya modem cdma jadi enggak bs coba

  102. Ismail
    December 6, 2011 at 9:53 am

    Assalamu’alaikum akhi,
    minta bantuannya donk. Ane lagi bikin SMS Gateway juga, ane masih bingung di koding buat ngebaca SMS masuk & menyeleksi format SMS yg masuk tp pke Gammu & VB6. jadi rencana ane mo bikin format SMS:
    1. REG#NIS#Nama#Kelas
    2. UNREG#NIS
    3. SARAN#Isi Saran
    ane udah baca koding antum di atas tp masih bingung ngedit kodingnya, harap maklum ane masih newbie, jadi masih bingung query2 dan kode dalam VB.
    ane juga udah terlanjur pake Gammu.

    • December 9, 2011 at 2:56 pm

      Langsung query aja akh ke tabel inboxnya

      • Ismail
        December 10, 2011 at 1:49 pm

        Admin :
        Langsung query aja akh ke tabel inboxnya

        query yg dipake SELECT CASE akh??

        • December 10, 2011 at 3:55 pm

          Iya nyeleksinya tetap pake select case

          Private Sub readSMS()
              Dim keyword         As String
              Dim arrKeyword()    As String
              
              strSql = "SELECT id, textdecoded " & _
                       "FROM inbox " & _
                       "WHERE processed = 'false'"
              Set rs = New ADODB.Recordset
              rs.Open strSql, conn, adOpenForwardOnly, adLockReadOnly
              If Not rs.EOF Then
                  Do While Not rs.EOF
                      keyword = "" & rs("textdecoded").Value
                      
                      If InStr(1, keyword, "#") > 0 Then
                          arrKeyword = Split(keyword, "#")
                          
                          Select Case UCase$(arrKeyword(0))
                              Case "REG"
                                  Debug.Print "NIS : " & arrKeyword(1) & ", Nama = " & arrKeyword(2) & ", Kelas = " & arrKeyword(3)
                                  
                              Case "UNREG"
                                  Debug.Print "NIS : " & arrKeyword(1)
                                  
                              Case "SARAN"
                                  Debug.Print "Saran : " & arrKeyword(1)
                          End Select
                      
                      Else
                          ReDim arrKeyword(0)
                          arrKeyword(0) = keyword
                      End If
                                  
                      ' update pesan yg sudah diproses
                      strSql = "UPDATE inbox SET processed = 'true' WHERE id = " & rs("id").Value
                      conn.Execute strSql
                      
                      rs.MoveNext
                  Loop
              End If
              rs.Close
              Set rs = Nothing
          End Sub
          

          Trus tinggal panggil prosedur ReadSMSnya dari objek timer

  103. Ismail
    December 14, 2011 at 8:25 am

    Admin :
    Iya nyeleksinya tetap pake select case

    Private Sub readSMS()
        Dim keyword         As String
        Dim arrKeyword()    As String
    
        strSql = "SELECT id, textdecoded " & _
                 "FROM inbox " & _
                 "WHERE processed = 'false'"
        Set rs = New ADODB.Recordset
        rs.Open strSql, conn, adOpenForwardOnly, adLockReadOnly
        If Not rs.EOF Then
            Do While Not rs.EOF
                keyword = "" & rs("textdecoded").Value
    
                If InStr(1, keyword, "#") > 0 Then
                    arrKeyword = Split(keyword, "#")
    
                    Select Case UCase$(arrKeyword(0))
                        Case "REG"
                            Debug.Print "NIS : " & arrKeyword(1) & ", Nama = " & arrKeyword(2) & ", Kelas = " & arrKeyword(3)
    
                        Case "UNREG"
                            Debug.Print "NIS : " & arrKeyword(1)
    
                        Case "SARAN"
                            Debug.Print "Saran : " & arrKeyword(1)
                    End Select
    
                Else
                    ReDim arrKeyword(0)
                    arrKeyword(0) = keyword
                End If
    
                ' update pesan yg sudah diproses
                strSql = "UPDATE inbox SET processed = 'true' WHERE id = " & rs("id").Value
                conn.Execute strSql
    
                rs.MoveNext
            Loop
        End If
        rs.Close
        Set rs = Nothing
    End Sub
    

    Trus tinggal panggil prosedur ReadSMSnya dari objek timer

    Admin :
    Iya nyeleksinya tetap pake select case
    view sourcehttp://s2.wp.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter/scripts/clipboard.swf?m=1303859956gprint?01Private Sub readSMS()02    Dim keyword         As String03    Dim arrKeyword()    As String04 05    strSql = "SELECT id, textdecoded " & _06             "FROM inbox " & _07             "WHERE processed = 'false'"08    Set rs = New ADODB.Recordset09    rs.Open strSql, conn, adOpenForwardOnly, adLockReadOnly10    If Not rs.EOF Then11        Do While Not rs.EOF12            keyword = "" & rs("textdecoded").Value13 14            If InStr(1, keyword, "#") > 0 Then15                arrKeyword = Split(keyword, "#")16 17                Select Case UCase$(arrKeyword(0))18                    Case "REG"19                        Debug.Print "NIS : " & arrKeyword(1) & ", Nama = " & arrKeyword(2) & ", Kelas = " & arrKeyword(3)20 21                    Case "UNREG"22                        Debug.Print "NIS : " & arrKeyword(1)23 24                    Case "SARAN"25                        Debug.Print "Saran : " & arrKeyword(1)26                End Select27 28            Else29                ReDim arrKeyword(0)30                arrKeyword(0) = keyword31            End If32 33            ' update pesan yg sudah diproses34            strSql = "UPDATE inbox SET processed = 'true' WHERE id = " & rs("id").Value35            conn.Execute strSql36 37            rs.MoveNext38        Loop39    End If40    rs.Close41    Set rs = Nothing42End Sub
    Trus tinggal panggil prosedur ReadSMSnya dari objek timer

    ane coba dulu, syukron akh 🙂

  104. Ismail
    December 14, 2011 at 8:30 am

    Admin :
    Iya nyeleksinya tetap pake select case
    view sourcehttp://s2.wp.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter/scripts/clipboard.swf?m=1303185279gprint?01Private Sub readSMS()02    Dim keyword         As String03    Dim arrKeyword()    As String04 05    strSql = "SELECT id, textdecoded " & _06             "FROM inbox " & _07             "WHERE processed = 'false'"08    Set rs = New ADODB.Recordset09    rs.Open strSql, conn, adOpenForwardOnly, adLockReadOnly10    If Not rs.EOF Then11        Do While Not rs.EOF12            keyword = "" & rs("textdecoded").Value13 14            If InStr(1, keyword, "#") > 0 Then15                arrKeyword = Split(keyword, "#")16 17                Select Case UCase$(arrKeyword(0))18                    Case "REG"19                        Debug.Print "NIS : " & arrKeyword(1) & ", Nama = " & arrKeyword(2) & ", Kelas = " & arrKeyword(3)20 21                    Case "UNREG"22                        Debug.Print "NIS : " & arrKeyword(1)23 24                    Case "SARAN"25                        Debug.Print "Saran : " & arrKeyword(1)26                End Select27 28            Else29                ReDim arrKeyword(0)30                arrKeyword(0) = keyword31            End If32 33            ' update pesan yg sudah diproses34            strSql = "UPDATE inbox SET processed = 'true' WHERE id = " & rs("id").Value35            conn.Execute strSql36 37            rs.MoveNext38        Loop39    End If40    rs.Close41    Set rs = Nothing42End Sub
    Trus tinggal panggil prosedur ReadSMSnya dari objek timer

    ane coba dulu, syukron akh 🙂

    • December 14, 2011 at 3:51 pm

      Yuph

  105. December 23, 2011 at 10:16 pm

    Permisi mas…numpang tanya..
    gmna cara nya agar bisa kirim secara simultan dengan bbrpa modem ya?
    bisa mnta dibuatkan contoh array nya ga? terima kasih sblm nya

    • December 26, 2011 at 8:38 am

      Coba tes seperti ini dulu om :

      Private Sub cmdTest_Click()
          Dim objGsm(1)       As ASmsCtrl.GsmOut
          Dim arrModem(1)     As String
          
          Dim i               As Integer
          Dim manufaktur      As String
          
          arrModem(0) = "COM1"
          arrModem(1) = "COM2"
          
          For i = 0 To UBound(objGsm)
              Set objGsm(i) = New ASmsCtrl.GsmOut
              
              With objGsm(i)
                  .Activate "SERIAL NUMBER"
                  .Device = arrModem(i)
                  
                  manufaktur = .SendCommand("AT+CGMI", 500)
                  manufaktur = Replace$(manufaktur, vbCrLf, "")
                  manufaktur = Replace$(manufaktur, "OK", "")
                  manufaktur = Replace$(manufaktur, "ERROR", "")
              End With
              
              Debug.Print "Manufaktur : " & manufaktur
          Next i
          
      End Sub
      

      Contoh diatas dg asumsi menggunakan 2 modem

  106. nining
    December 25, 2011 at 10:41 am

    makasihh pak atas tutornya saya sudah coba ternyata tidak ada masalah, cuma saya ada sedikit pertanyaan pak mohon bimbingannya: bagaimana jika pulsanya habis untuk hp yang digunakan sms gateway-nya bisakah aplikasinya memberitahukan ke no hp yang lain untuk coding di vb-nya bagaimana?

    Sekali lagi makasih pak..!

  107. nining
    December 25, 2011 at 6:30 pm

    maaf pak pertanyaannya saya ulang, maksudnya bagaimana jika pulsanya habis aplikasinya otomatis bisa memberitahukan misalnya pake alarm atau kirim email, bisa dibantu kasih codingnya pak. makasih sebelumnya.

    • December 26, 2011 at 8:42 am

      Untuk mengcek pulsa coba gunakan perintah AT+CKPD=keys,timepressed,pause.
      Contoh klo menggunakan kartu simpati dengan perintah : *888#

      Private Sub cekPhonebook_Click()
          Dim objGsm      As ASmsCtrl.GsmOut
          Dim phoneBook   As String
          Dim ret         As String
          
          Set objGsm = New ASmsCtrl.GsmOut
          With objGsm
              .Activate SERIAL_NUMBER
              .device = cmbPORT.Text
          
              ret = .SendCommand("AT+CKPD=" & Chr(34) & "*888#" & Chr(34) & ",3,10", 1000)
          End With
          Set objGsm = Nothing
          
          Debug.Print ret
      End Sub
      

      Masalahnya adalah hasil perintah diatas tidak masuk ke inbox tapi langsung nampil ke layar, sehingga sulit untuk diproses lebih lanjut.

  108. Hidayat
    December 26, 2011 at 11:30 am

    maaf mas..numpang tanya..knp coding autoreply sya ga berfungsi yah? apa nya yg slah..jd bingung 😀
    ‘======================================================================
    Public Sub CekSMS()
    Dim keyword As String
    Dim arrKeyword() As String
    Dim xPesan As String
    Dim cmd As cCommand
    Dim xFormat1 As String, xFormat2 As String, xFormat3 As String

    SQL = “Select * From Inbox WHERE status = ‘0’”
    Set RS = Cnns.OpenRecordset(SQL)

    If Not RS.EOF Then
    Do While Not RS.EOF
    keyword = RS(“isi_reply”).Value

    If InStr(RS(“No_tujuan”).Value, “+62”) = 1 Then
    xNomor = “0” & Mid(RS(“No_tujuan”).Value, 4)
    ElseIf InStr(RS(“No_tujuan”).Value, “08”) = 1 Then
    xNomor = RS(“No_tujuan”).Value
    Else
    xNomor = RS(“No_tujuan”).Value
    End If

    If InStr(1, keyword, “#”) > 0 Then
    arrKeyword = Split(keyword, “#”)

    Select Case UCase$(arrKeyword(0))
    Case “REG”
    xFormat1 = arrKeyword(1)
    xFormat2 = arrKeyword(2)
    xFormat3 = arrKeyword(3)

    xPesan = “”
    xPesan = “Terima Kasih ” & xFormat1 & ” Sudah Melakukan Registrasi” _
    & “(SMS Center Kenjisoft Indonesia).”

    ‘Input Data User
    ‘SQL = “INSERT INTO user (Nama, No_HP, Alamat) VALUES (?, ?, ?)”
    ‘Set cmd = Cnns.CreateCommand(SQL)
    ‘With cmd
    ‘.SetText 1, xFormat1
    ‘.SetText 2, xNomor
    ‘.SetText 3, xFormat2
    ‘.Execute
    ‘End With
    ‘Set cmd = Nothing

    ‘Input ke outbox
    SQL = “INSERT INTO outbox (No_tujuan, isi_reply, tanggal, jam) VALUES (?, ?, ?, ?)”
    Set cmd = Cnns.CreateCommand(SQL)
    With cmd
    .SetText 1, xNomor
    .SetText 2, xPesan
    .SetDate 3, Format(Now, “yyyy/MM/dd”)
    .SetTime 4, Format(Now, “hh:mm:ss”)
    .Execute
    End With
    Set cmd = Nothing

    Case “UNREG”
    Debug.Print “Nama : ” & arrKeyword(1)

    Case “SARAN”
    Debug.Print “Saran : ” & arrKeyword(1)
    End Select

    Else
    ReDim arrKeyword(0)
    arrKeyword(0) = keyword
    End If

    ‘ update pesan yg sudah diproses
    SQL = “UPDATE Inbox SET status = ‘1’ WHERE id = ‘” & RS(“id”).Value & “‘”
    Cnns.Execute SQL

    RS.MoveNext
    Loop
    End If
    Set RS = Nothing
    End Sub

    Private Sub Timer7_Timer()
    Call CekSMS
    End Sub
    ‘======================================================================

    untuk inbox nya dpt terbaca dan langsung diupdate ke status “1” (sdh diproses)..tp ga mau nginput ke tabel user & outbox nya..knp ya mas?

    mksh sblum nya..

  109. December 26, 2011 at 3:51 pm

    Berarti kondisi

    If InStr(1, keyword, "#") > 0 Then
    

    tidak pernah terpenuhi alias false terus, coba dibreakpoint aja kode

    If InStr(1, keyword, "#") > 0 Then
        arrKeyword = Split(keyword, "#")
    

    untuk melihat nilainya

    • Hidayat
      December 26, 2011 at 5:26 pm

      terima kasih mas…ternyata slah di coding modul sms nya 😀
      oh ya..untuk untuk arrKeyword dibuat maximal 3 aja bgamna ya mas?
      jdi REG#NAMA#ALAMAT#TANGGAL
      jdi klau misal kirim REG#NAMA#ALAMAT saja tanpa TANGGAL…dapat reply salah/gagal registrasi..

      sya coba pakai coding sya diatas muncul error nya 😀

      • December 26, 2011 at 5:49 pm

        Tinggal dicek aja nilai UBound(arrKeyword) nya harus = 3

        • Hidayat
          December 26, 2011 at 5:53 pm

          maaf mas..bisa mnta contoh nya ga?

          • December 26, 2011 at 6:01 pm
            If InStr(1, keyword, "#") > 0 Then
                arrKeyword = Split(keyword, "#")
                
                If UBound(arrKeyword) = 3 Then
                    ' TODO : lanjutkan pengecekan keyword
                    
                Else
                    ' TODO : parameter tidak valid
                End If
            Else
                ReDim arrKeyword(0)
                arrKeyword(0) = keyword
            End If
            
  110. December 28, 2011 at 8:32 pm

    mas saya menggunakan mode flexy net..
    source code nya beda atau nggak,?
    saya pake cara di atas tapi ttp sj tdk mau konek.modem saya di port 3

    • December 29, 2011 at 9:32 pm

      Coba cek dulu om, modem flexy nya support AT-COMMAND enggak ?

      • January 2, 2012 at 8:51 pm

        ok mas saya cek dulu…
        kalau lewat hp..tinggal di sambungin lewat usb aja,
        atau di setting dulu ??

  111. Eci
    December 31, 2011 at 7:32 am

    trmksh untuk infonya…tp klo mw buat sms biar si penerima sms ga bs balas pesan ( menu balas g aktif) gmn ya maz???

    • January 3, 2012 at 1:15 pm

      Ya tinggal nonaktifkan aja prosedur balas smsnya

      • Eci
        January 3, 2012 at 4:47 pm

        trs caranya gmn maz???? mklm masih belajar maz…

        • January 7, 2012 at 1:11 pm

          Buka sample programnya trus nonaktifkan kode pemanggilan method sendSMS.

          Sy harap tidak ada pertanyaan susulan bagaimana menonaktifkan kode program.

  112. Adi
    January 1, 2012 at 5:30 pm

    Kalo pake multiport kok engga stabil ya… kalo 1 hp lancar jaya.. solusinya gimana om?

    • January 3, 2012 at 1:17 pm

      Enggak stabilnya dimana ? Klo sy udah pernah coba 2 model 1 untuk nerima yg lainnya utk balas, kayaxnya lancar2x aja

  113. January 4, 2012 at 8:47 pm

    “With objGsmIn.Activate “XXX-XXXX-XXXX-XXXXX” ‘diisi serial number yg Anda dapatkan secara ilegal” mo nanya coding diatas minta serial number maksudnya apaan gan, makasih atas penjelasannya

    • January 7, 2012 at 1:08 pm

      Serialnya udah include disample programnya om.

  114. jasper
    January 17, 2012 at 4:19 pm

    om .. itu activeXexpert di http://www.activexperts.com/sms-messaging-server/ trial 30 hari aja .. ada gk yang free …

    • January 24, 2012 at 11:36 am

      Klo yg gratis coba yg ini om.

      • March 12, 2012 at 10:04 am

        perlu pake komponen file tambahan ga?, saya coba kok ga jalan ya?

  115. bos ahong
    January 31, 2012 at 3:24 am

    ijin bookmark bosss. makasih sharing nya

    • January 31, 2012 at 9:11 am

      Siiipp 🙂
      Silahkan om

  116. February 6, 2012 at 7:19 pm

    Aku dimana??? (Nyasar ke blog ini)

    Wah. Wah.. kebetulan nih harus bikin sms gateway.. let’s try..

    Doumo Arigatou Gozaimashita… 😀

    • February 7, 2012 at 11:58 am

      Sama2x om, mudah2xan sering nyasar kesini 😀

  117. February 19, 2012 at 12:41 pm

    Salam Kenal,
    Saya pernah buat smsgateway pake nowsms,
    lumayan bagus kok hasilnya dan gak ribet, tapi kendalanya waktu digunakan adalah masalah tarif sms.
    Tarif sms yang murah hanya ketika operatornya sama, padahal siswa dan orang tua kan no HP-nya dari operator yang beda2.
    Yah,… sekarang dah nggak kepake lagi.
    Jika ada temen2 yang mau coba smsgateway pake nowsms coba mampir di http://ptkguru.com/?darmajaya=index&daryono=base&action=listmenu&skins=1&id=412&tkt=2
    Makasih….

  118. February 20, 2012 at 10:15 am

    Tq om buat info linknya 🙂

  119. Ridho
    February 22, 2012 at 11:35 am

    Aslmkm,,
    om, ane lgi buat SMS Gateway untuk cek absen siswa dalam 1 bulan.
    kebingungan buat code reply smsnya ni om.
    mohon pencerahan ya..

    • February 22, 2012 at 6:04 pm

      Bingung g mana om ? Udah jelas diatas ada sample replay smsnya. Udah dicoba belum om ?

      Fokusnya om kan seharusnya cuma buat fungsi untuk mengambil informasi absensi siswa dalam 1 bulan trus memanggilnya di prosedur kirim sms

  120. lagibelajar
    February 23, 2012 at 10:04 am

    kalau pake oracle 8i pak, kira2 bagaimana caranya yah?

    • February 23, 2012 at 4:02 pm

      Bisa om, tinggal ganti aja string koneksinya info lengkapnya coba meluncur kesini.

  121. March 1, 2012 at 3:45 am

    bang,
    mau tanya nih, klo pake komponenen activeXpert bisa buat multi handphone or modem dalam 1 aplikasi gak?

    • March 1, 2012 at 7:48 am

      Bisa om tinggal diarray aja object activeXpertnya

      • March 1, 2012 at 11:56 am

        mohon contohnya bang…….
        please dah yo….. 😀

        • March 2, 2012 at 8:40 am

          Contoh untuk 2 modem

          Private Sub cmdBacaSMS_Click()
              Dim objGsmIn(1)     As ASmsCtrl.GsmIn
              Dim device(1)       As String
                  
              Dim i As Integer
              
              device(0) = "COM1"
              device(1) = "COM2"
              
              For i = 0 To UBound(objGsmIn)
                  Set objGsmIn(i) = New ASmsCtrl.GsmIn
                  With objGsmIn(i)
                      .Activate "XXX-XXXX-XXXX-XXXXX"
                      .device = device(i) 'disesuaikan dengan port COM yang digunakan
                      .DeviceSpeed = 19200 'default = 0
              
                      .Storage = 2 '0=sim 1=device 2=any
                      .DeleteAfterReceive = True
                      .Receive
              
                      If .LastError = 0 Or .LastError = 23140 Then ' Success
                          .GetFirstMessage
              
                          While .LastError = 0
                              Debug.Print "Pengirim : " & .MessageSender
                              Debug.Print "Isi SMS : " & .MessageData
              
                              'TODO : INSERT KE TABEL SMS_IN
              
                              .GetNextMessage
                          Wend
                      End If
                  End With
                  Set objGsmIn(i) = Nothing
              Next
          End Sub
          
          • March 2, 2012 at 11:25 am

            terima kasih banyak kang…….

            • March 2, 2012 at 3:53 pm

              Sama2x om, wah kayaxnya lagi ada orderan nih 😀

              • March 12, 2012 at 7:34 pm

                heheheh gak juga kang. cuma mau buatin ortu program kecil buat isi pulsa,,, 😀

                nah kang, mau tanya nih, gimana cara mengetahui kata/karakter/angka yang tertulis sebelum tanda silang(“x”) dan jumlah angka yang tertulis setelah tanda silang(“x”) seperti di bawah ini??

                karakter sebelum silang1x1
                karakter sebelum silang2x10
                karakter sebelum silang3x100
                karakter sebelum silang4x10
                karakter sebelum silang5x5
                karakter sebelum silang[n]x[n]

                sedangkan jumlah karakter untuk sebelum tanda silang tidak ada batasan jumlah dalam dalam smsnya….
                jadi nanti klo di tampilkan dalam listview tampilannya seperti ini
                ===================================================
                No Pengirim |SMS |Jumlah Isi |
                ===================================================
                085643400078 |Karakter sebelum silang5 |5
                085643400078 |Karakter sebelum silang4 |10
                085643400078 |Karakter sebelum silang3 |100
                085643400078 |Karakter sebelum silang2 |10
                085643400078 |Karakter sebelum silang[n] |[n]
                ===================================================

                • March 14, 2012 at 9:32 am

                  Pake split om :

                  Private Sub Command1_Click()
                      Dim str         As String
                      Dim arrStr()    As String
                      
                      str = "karakter sebelum silang3x100"
                      arrStr = Split(str, "x")
                      MsgBox arrStr(0) & vbCrLf & arrStr(1)
                  End Sub
                  
  122. ajied
    March 1, 2012 at 2:45 pm

    sekedar share aja untuk USSD, sudah di coba di wavecom sukses..

    Private Sub cmdTes_Click()
        Dim strResponse As String
        Dim strCommand As String
        Dim strFields
        
        MousePointer = vbHourglass
        
        Set objGsmOut = New ASmsCtrl.GsmOut
        dial = InputBox("Masukan Nomor", "Search Teks Pesan", "*888#")
        strCommand = "AT+CUSD=1," & Chr(34) & dial & Chr(34)
        With objGsmOut
            .Activate SERIAL_NUMBER
            .device = SERIAL_PORT
            .DeviceSpeed = 0
        End With
        
        strResponse = objGsmOut.SendCommand(strCommand, 10000)
        If (InStr(strResponse, "OK") > 0) Then
            strResponse = objGsmOut.SendCommand("", 15000)
            If (InStr(strResponse, "+CUSD:") > 0) Then
                strFields = Split(strResponse, Chr(34))
                strResponse = strFields(1)
            End If
        End If
        
        If (objGsmOut.LastError = 0) Then
            TextResponse.Text = "N / A"
            TextResult.Text = "ERROR #" & objGsmOut.LastError & " (" & objGsmOut.GetErrorDescription(objGsmOut.LastError) & ")"
        Else
            TextResponse.Text = strResponse
            TextResult.Text = "SUCCESS"
        End If
        
        TextResponse.Text = strResponse
        MousePointer = vbDefault
    End Sub
    
    • March 2, 2012 at 8:32 am

      Tq om atas sharenya 🙂

  123. dani utama
    March 5, 2012 at 9:44 am

    cara mengetahui serial number nya dari mana masbro..???
    agak bingung nih

  124. rizki
    March 9, 2012 at 8:38 pm

    koneksi ke database gagal. gmna tuh om.? mohon pencerahannya.

    • March 9, 2012 at 9:01 pm

      Jangan terlalu bersemangat om, sebelum membuka dan menjalankan sourcecodenya baca dulu petunjuk penggunaannya.

  125. jasper
    March 10, 2012 at 3:03 pm

    omm .. bgaimna dengan kode_aktivasix .. itu bisa dipakekan selamanya ??

    • March 10, 2012 at 5:32 pm

      Setau sy sih bisa om, coba aja deh tahun komputer om diganti menjadi 2050 masih jalan enggak ya ? 😀

  126. March 12, 2012 at 9:52 am

    permisi om,mau tanya, modem yang supprot untuk program ini apa ya? saya coba pake modem O2, ga ngerespon, stress aku

    • March 12, 2012 at 5:25 pm

      Klo O2 kayaxnya memang enggak support om.

  127. jasper
    March 12, 2012 at 12:25 pm

    Admin :
    Setau sy sih bisa om, coba aja deh tahun komputer om diganti menjadi 2050 masih jalan enggak ya ?

    hahaaa .. ok dh om .. mantapp …

  128. March 15, 2012 at 1:17 pm

    kang…..
    mau tanya lagi…
    misalnya, klo dalam 1x pengiriman sms memiliki lebih dari 1 keyword (perbaris per keyword) seperti ini:
    tgs#9941224165
    tgs#9941224164
    tgs#9941224166
    tgs#9941224169

    atau misalnya dalam kasus saya
    S.10.08123456789.1234
    S.10.08123455457.1234
    S.10.08123455457.1234

    atau dalam 1 baris terdapat multi keyword (yang memisahkan tanda koma dalam tiap keyword) contoh:

    S.10.08123456789.1234, S.10.08123455457.1234, S.10.08123455457.1234, keyword[n]

    kira-kira bisa gak kang??

    • March 15, 2012 at 1:57 pm

      Ya jelas bisa om, tetap pake fungsi split, selain itu sebaiknya hindari penggunaan spasi

      Private Sub Command1_Click()
          Dim objGsmOut       As ASmsCtrl.GsmOut
          Dim objConstants    As ASmsCtrl.Constants
          
          Dim pesan       As String
          Dim arrPesan()  As String
          Dim i           As Integer
          
          Set objGsmOut = New ASmsCtrl.GsmOut
          Set objConstants = New ASmsCtrl.Constants
      
          With objGsmOut
              .Activate "XXX-XXXX-XXXX-XXXXX"  'SERIAL NUMBER
              .Device = "COM1" 'disesuaikan dengan port COM yang digunakan
              .DeviceSpeed = 19200 'default = 0
              .RequestStatusReport = False
      
              .MessageType = objConstants.asMESSAGETYPE_TEXT 'mengirim pesan maksimal 160 karakter
      
              .MessageRecipient = "SMS CENTER PULSA" 'biasanya menggunakan prefix +62
              
              pesan = "S.10.08123456789.1234,S.10.08123455457.1234,S.10.08123455457.1234"
              arrPesan = Split(pesan, ",")
          
              For i = 0 To UBound(arrPesan)
                  .MessageData = arrPesan(i)
                  .Send 'kirim
                  DoEvents
              Next i
          End With
      End Sub
      
  129. zoomy
    March 22, 2012 at 10:32 pm

    wah… om admin ini bener2 hebat, semua pertanyaan dilayani dan dijawab dengan baik, saya belum pernah coba buat sms gateway, hanya baru rencana. pun hanya untuk coba2 saja.
    sekalian nanya dikit ya om. kalau buat portal SMS semisal sms 4 digit itu /kayak iklan di tipi2 itu pake apa ya om?

    • March 23, 2012 at 5:34 am

      Nah itu udah ada info bagus dari om afdoal

      maksudnya yang empat nomor tujuan gitu (ex. ketik bla.. bla.. bla.. dan kirim ke: 1234) ??
      empat nomor itu klo gak salah istilahnya premium number (itupun klo gak salah….) 😀
      dan utuk dapatinnya, main2 aja ke kantor provider2 yang ada

  130. afdoal
    March 23, 2012 at 3:18 am

    zoomy :
    kalau buat portal SMS semisal sms 4 digit itu /kayak iklan di tipi2 itu pake apa ya om?

    maksudnya yang empat nomor tujuan gitu (ex. ketik bla.. bla.. bla.. dan kirim ke: 1234) ??
    empat nomor itu klo gak salah istilahnya premium number (itupun klo gak salah….) 😀
    dan utuk dapatinnya, main2 aja ke kantor provider2 yang ada 🙂 << maaf kang admin, tak jawab

    • March 23, 2012 at 5:30 am

      Oke om sippp, klo bisa sering2x aja 😛

  131. afdoal
    March 29, 2012 at 8:41 pm

    kang….. tanya lagi nih 😀

    gimana menggunakan fungsi instr untuk menegcek text/sms yang masuk??
    Misalnya:
    strValidKarakter=”.”, “Angka 1-9)

    text/SMS yang benar adalah terdapat karakter strValidKarakter
    apabila tidak ada karakter2 tersebut maka Salah

  132. March 30, 2012 at 9:43 am

    klo textnya = “ab123cd9e” dianggap benar enggak ya ? 😀

    • afdoal
      March 30, 2012 at 12:30 pm

      yang di boleh kan:
      Angka: 1-9
      Tanda : “.”, “#”, dan “$”

      • March 30, 2012 at 3:43 pm

        Coba gini om :

        Private Function isValidMsg(ByVal msg As String) As Boolean
            Dim strValid    As String
            
            Dim pos         As Integer
            Dim i           As Integer
            
            strValid = "0123456789.#$"
                
            isValidMsg = True
            For i = 1 To Len(msg)        
                pos = InStr(strValid, Mid$(msg, i, 1))
                If pos = 0 Then ' ilegal karakter
                    isValidMsg = False
                    Exit For
                End If
            Next i
        End Function
        

        Contoh :

        Private Sub Command1_Click()
            Dim msg As String
            
            msg = "123456889#."
            Debug.Print isValidMsg(msg) ' output true
            
            msg = "123a45X6889#."
            Debug.Print isValidMsg(msg) ' output false, karena ada karakter a dan X
        End Sub
        
        • March 31, 2012 at 6:33 am

          wadow…..
          saya juga buat fungsi yang sama dan bedanya saya gak pake perulangan (maksudnya gak kepikiran tuk make perulangan). pantas aja dari kemarin gagal terus…………

          terima kasih banyak kang…/.
          case Close

          • March 31, 2012 at 6:47 am

            Yah itulah bedanya antara yg udah expert dan expret 😛

  133. afdoal
    March 31, 2012 at 7:20 am

    Admin :
    Yah itulah bedanya antara yg udah expert dan expret

    satuju…………………..
    hehhehehe

  134. yudha
    April 1, 2012 at 10:38 pm

    om cara dapetin activex ASmsCtrl gimana ya?

    • April 2, 2012 at 12:52 pm

      Download disini om.

  135. andi
    April 3, 2012 at 9:34 pm

    salam knal mas,
    mau nanya,,, Itu berarti aplikasi nya mesti reload setiap beberapa deti g? buat ngecek sms d database untuk d kirim….?
    maaf nubi 😀

  136. April 4, 2012 at 9:46 am

    Iya om betul sekali 😀

  137. joko_st
    April 4, 2012 at 1:15 pm

    Salam kenal mas.
    mas saya bikin sms gateway tp slalu error kalo kirim sms lebih dari 160 karakter,saya pake comport
    ComPort1.Open;
    ComPort1.WriteStr(‘at+cmgf=1’+#13#10);
    ComPort1.WriteStr(‘at+cscs=”GSM”‘+#13#10);
    ComPort1.WriteStr(‘at+cmgs=”‘enomor.text'”‘+#13#10);
    ComPort1.WriteStr(eisi.Text);
    ComPort1.WriteStr(#26);
    mohon pencerahanya dong.
    terimakasih 🙂

    • April 4, 2012 at 1:26 pm

      Klo displit aja g mana om ? Jadi klo lebih dari 160 karakter dipecah menjadi 2 sms

      • joko_st
        April 4, 2012 at 1:44 pm

        displit gmana mas, maaf nubi 🙂
        kalo dipecah berarti jika smsnya lebih dr 160 karakter jadi 2 sms gt mas?
        bs dicontohkan ? 🙂

        • April 4, 2012 at 1:56 pm

          Tambahkan fungsi berikut :

          Private Function pembulatanKeAtas(ByVal X As Double, Optional ByVal Factor As Double = 1) As Double
              Dim temp As Double
              
              temp = Int(X * Factor)
              pembulatanKeAtas = (temp + IIf(X = temp, 0, 1)) / Factor
          End Function
          
          Private Function splitMsg(ByVal msg As String, ByVal maxKarakter As Integer) As String()
              Dim div         As Integer
              Dim lengthMsg  As Integer
              Dim n           As Integer
              Dim i           As Integer
              
              Dim arrTmp()    As String
                  
              lengthMsg = Len(msg)
              If lengthMsg > maxKarakter Then 
                  div = pembulatanKeAtas(lengthMsg / maxKarakter)
                  
                  ReDim arrTmp(div)
                  
                  n = 1
                  For i = 1 To div
                      arrTmp(i - 1) = Mid(msg, n, maxKarakter)
                      n = n + maxKarakter
                  Next i
                  
              Else
                  ReDim arrTmp(0)
                  arrTmp(0) = msg
              End If
              
              splitMsg = arrTmp
          End Function
          

          Contoh penggunaaan :

          Private Sub Command1_Click()
              Dim arrMsg()    As String
              Dim msg         As String
              Dim i           As Integer
              
              msg = "Aplikasi ini berfungsi sebagai aplikasi untuk pencarian " & _
                    "data-data buku selain itu juga bisa digunakan untuk mencatat data-data pengunjung, " & _
                    "aplikasi ini sudah terintegrasi dengan Smart Library School yg juga disediakan secara gratis di blog ini"
              
              arrMsg = splitMsg(msg, 160)
              For i = 0 To UBound(arrMsg)
                  If Len(arrMsg(i)) Then
                      ' TODO : perintah kirim smsnya disini
                      Debug.Print arrMsg(i)
                  End If
              Next i
          End Sub
          
          • joko_st
            April 4, 2012 at 2:12 pm

            🙂 oke, terimaksih mas saya cb dl

            • April 4, 2012 at 5:36 pm

              Oke om sippp 🙂

  138. andi
    April 4, 2012 at 5:09 pm

    apa g berat itu om….
    main formnya di load?
    ato mungkin ada cara lain?

    • April 4, 2012 at 5:34 pm

      Enggak juga biasa aja, sy sudah sering menggunakan cara ini normal2x aja.

      Solusi lain ya menggunakan library sms yg support notifikasi otomatis ketika ada sms masuk, nah kebetulan komponen yg sy bahas dipostingan ini belum mempunya fitur ini, sehingga solusinya ya menggunakan timer.

  139. pinginkaya
    April 9, 2012 at 3:20 pm

    mas, saya dah jalanin fungsi readsms

    Private Sub cmdBacaSMS_Click() <<—
    bgitu dijalanin, kluar smua sms2 yg ada
    TAPI
    ketika dijalankan lagi, kok malah kosong?… (kode tidak diubah pas berhasl retrieve data sms)
    saya curiga dengan setting ini, .DeleteAfterReceive = True <<—
    trus saya coba aja kirim sms sendiri (lewat hp) kenomor sendiri sbanyak 3 kali (kali aja emang data kedelete dibagian memori ato apalah)

    Private Sub cmdBacaSMS_Click() <<— pas dicoba lagi , tetep kosong (padahal dicek di hp, daftar sms ada) dan fungsi sendsms tetep jalan

    tu gimana yah mas?

    • April 9, 2012 at 4:00 pm

      Ya iya om klo property DeleteAfterReceive = True, otomatis akan menghapus data diinbox saat memanggil method Receive

      • pinginkaya
        April 9, 2012 at 5:57 pm

        Ya iya om klo property DeleteAfterReceive = True, otomatis akan menghapus data diinbox saat memanggil method Receive <<— inbox nya kehapus, thats why, skarang aku kirim sms kediri sendiri (jadi inboxnya sudah ada lagi)
        pas di run, kok masih kosong ?…. (kompi belum tak restart sih, gk tau ngaruh pa gak)

        • pinginkaya
          April 9, 2012 at 6:05 pm

          .Storage = 2 ‘0=sim 1=device 2=any <<—- ini nih biang keroknya

          aku pake '.Storage = 2' , karena sepertinya mbaca dari 'sim' maupun 'device'
          tpi pas dijalanin, data kosong
          ketika tak ubah menjadi 0 (sim) '.Storage = 0'
          skarang dah lancar, dah kliatan
          okey, keep on sharing TS

          • April 9, 2012 at 6:50 pm

            Wah sipp udah otomatis case closed sendiri 😀

  140. ajied
    April 12, 2012 at 12:30 pm

    om,.. klo sy lihat dari komponen ini ada yg agak kurang gereget di proses readsms nya,.. agak lama dan aplikasi jadi blank sejenak .. kira2 knp om ,..

    • April 13, 2012 at 9:19 am

      Makanya jeda refresh pembacaan sms masuknya jangan hitung detik om, coba 1 atw 2 menit soalnya proses pengecekan sms masuk itu memang lumayan berat.

  141. andi
    April 13, 2012 at 5:44 pm

    ijin nyoba om…
    oy, kalo mau refesh halamn kira2 scripnya gmna y …hehehee…

    • April 14, 2012 at 8:33 am

      Halaman g mana om ? Kayax web programing aja ?

  142. andi
    April 14, 2012 at 9:39 pm

    kan itu setiap beberapa detik perlu ngerefresh main page buat ngecek outbok y…?
    nah kira2 skrip buat ngerefresh main page nya itu om,… hehehhee

    • April 15, 2012 at 6:14 am

      Kan sample diatas udah gitu om, katanya ijin nyoba ternyata belum dicoba.

      Klo udah nyoba pasti enggak kan nanya hal2x seperti ini.

  143. andi
    April 16, 2012 at 9:19 am

    ookek, tengkyu om… 🙂

  144. anwar
    April 19, 2012 at 6:36 pm

    saya mau tanya,
    kalau mau ngirim sms lebih dari 160 karakter dalam netbeans bagaimana caranya???

    • April 19, 2012 at 7:56 pm

      Pertanyaan si om ini harus sy luruskan dulu, NetBeans itu hanyalah sebuah tool atau IDE yg digunakan untuk mempermudah kita menulis program apakah menggunakan bahasa java, php, c++ atw bahasa lain yg didukung oleh netbeans itu sendiri.

      Nah pertanyaannya om menggunakan bahasa yg mana ? Klo java berarti pertanyaan yg seharusnya adalah “bagaimana mengirim sms lebih dari 160 karakter menggunakan java”.

      Dan berhubung sy bukan programmer java, coba om googling dulu menggunakan keyword “sms library for java”, tadi sudah sy coba banyak sekali link library gratis yg bisa om coba.

  145. ruben
    April 27, 2012 at 6:29 am

    mantap… sdh dicoba pake wavecom.. berhasil. trims tutorialnya

  146. ruben
    April 27, 2012 at 6:33 am

    sori kalo fungsi wait(5000) utk apa ya?

    • April 27, 2012 at 10:00 am

      Cuma buat istirahat aja kok om, kan cape juga klo harus baca dan kirim sms terus 😀

  147. ruben
    May 2, 2012 at 9:40 am

    hari ini smsgatewynya error waktu di uji coba lagi. nomor portnya sdh benar com13, sesuai informasi dari device manager.lampunya di wavecom juga berkedip-kedip normal.
    tapi muncul pesan koneksi ke modem diport13 gagal!
    sy coba kemudian pake gammu, waktu sy cek pake gammu identify, muncul pesan “No response in specified timeout. Probably phone not connected” ….. ada masukan om? mustikah ganti modem …..? (mb modemnya ini mash baru 🙂 )

    • May 3, 2012 at 4:35 pm

      Coba diuninstall ulang aja om driver modemnya

  148. May 8, 2012 at 3:14 pm

    Om, Dosen yah? Dosen dimana, kayanya asik kalo diajar situ :p

    hehe, btw.. Saya mau tanya, program yang saya download di 4shared itu, apa udah bisa dipake? minimal, apa yang harus asya instal dan sediakan. Soalnya saya ada tugas untuk bikin program sms dan kurang lebihnya konsepnya sama kaya di artikel ini..

    • May 8, 2012 at 6:34 pm

      Ah itu sih cuma hoak om 😛

      Yg penting sebelum membuka source codenya jalankan terlebih dulu file install.cmd yg ada di folder “dll”

      • May 8, 2012 at 6:51 pm

        Udah saya instal dot batnya, terus gimana? itu file file visual basic yah? Saya mau liat source codenya gimana?

        • May 10, 2012 at 8:50 am

          Iya om itu visual basic 6 jadi diinstall dulu

  149. May 9, 2012 at 11:54 am

    Pa dosen.. Ini untuk testernya apa aja yang dibutuhin? Bisa pake modem usb ga?

    • May 10, 2012 at 8:57 am

      Bisa om sy udah pernah make modem huawei yg usb lancar

  150. May 9, 2012 at 6:25 pm

    Pa, help me.. Untuk bisa tester program ini apa aja yang harus disiapin.

    • May 10, 2012 at 9:11 am

      Klo skrg g mana udah bisa ?

      • May 10, 2012 at 10:23 am

        Iya, kemaren saya udah coba pake Huwaei bisa kedetek.. tapi ko loading nya lama yah setelah saya klik ‘start’… Ga ada respon lagi.. Source code nya belum ada yang saya rubah, dan saya udah install ActiveXpert SMS. itu gunanya untuk apa yah pa?

  151. May 10, 2012 at 10:27 am

    Akhmad Bayquni :
    Iya, kemaren saya udah coba pake Huwaei bisa kedetek.. tapi ko loading nya lama yah setelah saya klik ‘start’… Ga ada respon lagi.. Source code nya belum ada yang saya ubah, dan saya udah install ActiveXpert SMS. itu gunanya untuk apa yah pa?

    Oh iya, ActiveXpert SMS masih trial a.k.a Evaluation :p

    • May 10, 2012 at 11:09 am

      Kan diawal tulisan ini udah sy buat pernyataan seperti berikut om

      Ingat komponen ini adalah shareware, segala resiko (kemudahan dalam membuat aplikasi sms gateway) ditanggung sendiri 😀 , saya disini hanya share dan tidak terikat kerja sama dengan pihak ketiga tersebut.

      • May 10, 2012 at 3:41 pm

        Admin :
        Kan diawal tulisan ini udah sy buat pernyataan seperti berikut om

        Ingat komponen ini adalah shareware, segala resiko (kemudahan dalam membuat aplikasi sms gateway) ditanggung sendiri , saya disini hanya share dan tidak terikat kerja sama dengan pihak ketiga tersebut.

        Hehe. iya, tapi dipake buat apa yah itu actiExpertnya… Sampe sekarang masih tetep error mas setiap kali saya klik start… Itu kira kira kenapa yah?

        • May 11, 2012 at 6:29 pm

          Emg pesan errornya apaan om ?

  152. ruben
    May 10, 2012 at 3:48 pm

    Om kalo db pake sqllite, dan tidak pake library .dll di artikel ini, koneksi ke DBnya perlu pake komponen tambahankah? trimakasih…

  153. May 11, 2012 at 8:27 pm

    Ngga ada error sama sekali mas.. Diem begitu aja, sampe akhirnya saya harus end process.. Dan kalo udah begitu, ga bisa lagi statrt. Selalu gagal koneksi ke com yang sebelumnya bisa ngedetel (uda keliatan di box nya ada tulisan Huawei)

    Itu kira kira kenapa yah mas?

    • May 11, 2012 at 8:47 pm

      Coba settingan properties Storagenya diset 0 (membaca sim) klo enggak salah disamplenya sy set 2 (any) jadi mungkin aja enggak disupport.

  154. ayah dedo
    May 11, 2012 at 10:10 pm

    ass. makasih infonya bermanfaat. sy coba pk modem advan kartunya 3. tapi coba konek gak bisa kenapa ya mas. com nya sy periksa com 5. tapi dicoba semua com tetep gak bisa knp ya mas. trm kasih banyak.

    • May 12, 2012 at 8:56 am

      Waalaikumussalam

      Ada beberapa kemungkinan om :
      1. Modemnya juga diakses olah aplikasi lain (misal aplikasi bawaan)
      2. Salah mengidentifikasi port modemnya (coba di cek di device manager node port)
      3. Modemnya enggak support AT-COMMAND, karena pada saat mengecek modemnya menggunakan perintah AT-COMMAND.

  155. May 13, 2012 at 10:27 am

    pangen nyoba tp bngung mulainya dr mana…
    soalnya masih bru msuk dunia IT
    itu softwarenya pke Visual Basic ap pak?

    • May 14, 2012 at 10:08 am

      Iya om pake VB 6

  156. May 14, 2012 at 9:25 am

    Pa, kalo modem saya kedetek sebagai COM8, COM9 apa yang harus saya tamnbahin di codenya?

    • May 14, 2012 at 10:10 am

      Ditambah manual aja om, soalnya contoh diatas daftar COMnya baru nyampe COM6

  157. ajied
    May 15, 2012 at 7:38 am

    Sekedar share info ,. ada yg memodifikasi dl nya activexpert yg dari om admin tapi ditambah ocx lagi dan hasilnya source code yg diperlukan tdk jd panjang,
    nii linknya http://forum.technosoft-id.com/index.php?topic=7.0

    • May 18, 2012 at 1:42 pm

      Tq om infonya 🙂

  158. May 15, 2012 at 8:32 am

    Pagi Pa.. dengan modem huawei,. sudah saya set Storagenya jadi 0 a.k.a SIM. Tapi tetep gabisa, tombol ‘stop’ berulang kali mati-idup tanpa ada proses apa apa lagi.

    Sekarang saya ganti modem, tapi kedeteknya COM8 dan COM9. Untuk nambahin com tersebut di sourcecodenya di bagian mana yah? saya search ga huruf yang berhubungan dengan ‘COM’ :p

    • May 18, 2012 at 1:43 pm

      Ditambahkan manual aja om, lewat properties List objek ComboBoxnya

  159. May 21, 2012 at 12:14 pm

    mas, saya lagi belajar bikin sms gateway buat penjualan pulsa elektrik tapi pake modem USB bisa ga?trus ane udah coba2 bikin pake komponen MFBUS.OCX tapi ternyata gak support Win 7 os ane soalnya win 7,,ada solusi selain pake MSBUS ?soalnya ane lg bikin Tugas Akhir bikin multi aplikasi penjualan om…thx

    • ajied
      May 22, 2012 at 10:48 am

      @om kahfi : om silakan dicoba pake ini support win 7 , Modem USB dan source code simple >> http://forum.technosoft-id.com/index.php?topic=7.0

      • May 22, 2012 at 11:28 am

        udah nyoba mas….saya buat tugas akhir klo pake itu gak support untuk penjualan pulsa…karena saya ingin buat tugas akhir multi aplikasi klo pake technosoft di smsnya ada iklan..jadi pesan yg di tampilin ada tambahannya…

  160. May 22, 2012 at 11:32 am

    waduh jadi malu nih…ternyata support win 7 cuma gara2 UAC jadi gak keregister dllnya….mas ada referensi contoh gateway sms untuk penjualan pulsa g?yang terkoneksi database access

  161. May 22, 2012 at 11:37 am

    ane dah coba sourcecode yang om admin kasih..jalan..tapi begitu di start responnya lama bgd mas…gak jalan2…saya pake modem huawei. kayanya jalannya cuma di baudrate 115200 aj deh modem saya mas…ad solusi?

    • May 26, 2012 at 10:28 am

      Klo sy enggak pernah ngotak-atik nilai baudratenya om 😀

  162. Hanz-Moe
    May 22, 2012 at 9:02 pm

    om klo pake java hibernate sama atau tidak iaa dengan java EE source codenya??

    • May 26, 2012 at 10:32 am

      Setau sy java itu cuma punya tiga edisi om, Java ME, Java SE dan Java EE klo hibernate itu cuma framework untuk mempermudah access database dg konsep ORM.

  163. ridha
    May 26, 2012 at 12:42 am

    assalamualaikum,

    kalo yang pakek php ada gak??
    kalo bisa tolong dibantu ya , ,

    terima kasih

    • May 26, 2012 at 10:36 am

      Waalaikumussalam
      Klo php bisa memanfaatkan Gammu om

  164. deni
    May 26, 2012 at 3:09 pm

    gimana cara buat sms gateway dengan modem smart ce682

    • May 26, 2012 at 3:58 pm

      Harus enggak ada masalah yg penting support AT-COMMAND

  165. MowLn
    June 5, 2012 at 3:40 pm

    Assalamu’alaikum…
    Mantab Ni Gan, Izin Sedot Ilmu’y Gan!
    Kira2, Klo Databasenya Di Konversi Ke Ms.Access Bisa Ga Gan?
    Klo Bisa Cara’y Gimana Ya Gan?
    Trim’s…. 🙂

    • June 5, 2012 at 4:18 pm

      Klo dikonversi ke ms access malah ribet om, mendingan langsung buat aja di ms access trus untuk kode mengakses database seperti biasa menggunakan library ADO.

      • MowLn
        June 6, 2012 at 10:59 am

        OK, Trims Gan…

        • June 6, 2012 at 1:09 pm

          Sama2x om gan

  166. toni
    June 6, 2012 at 10:44 am

    permisi mao nanya gan ini kan databasenya pake sql lite klo pake xampp bsa ga yaw??

    • June 6, 2012 at 1:13 pm

      Sy baru tau om klo ada database namanya xampp, itu buatan vendor mana ya om ? 😀

      Setau sy database itu ya SQL Server, MySQL, Firebird, Postgresql, Oracle Databse, ms access, paradox, sqlite, dll

  167. MowLn
    June 6, 2012 at 11:10 am

    Gan Klo Mw Bikin Bentuk Tabel Yang Di Relasi Kaya Gambar Di Atas, Caranya Gimana Ya, Atw Pake Aplikasi Lagi Gan?
    Trim’s… 🙂

    • June 6, 2012 at 1:14 pm

      Pake MySQL Workbench om, gratis kok :).

      • MowLn
        June 6, 2012 at 4:13 pm

        Ok Gan!:)
        Gan Ane Dah Bikin DB Pake Ms.Access Tapi Mw Nyambungin Pake Coding Ga Bisa2!

        Public conn As ADODB.Connection
        ————————————-
        Private Function openDb() As Boolean
        Set conn = New ADODB.Connection
        conn = “Provider=Microsoft.Jet.Oledb.4.0; Data Source=” & App.Path & “\dbsms.Mdb;”
        openDb.Open conn
        Exit Function
        End Function

        Tolong Bantuannya Gan! 🙂

        • June 7, 2012 at 12:19 pm

          Emg cara om manggil fungsi di atas g mana ? trus ada errornya enggak ?

          • MowLn
            June 7, 2012 at 2:26 pm

            Maksudnya “Cara Manggil Fungsi” Tuh Gmn Ya Gan? 😛
            Klo Errornya Tuh “Compile Error : Invalid Qualifier” Trus Kata Yang Di Blok Biru “openDb”. Gmn Tuh Gan?

            • June 7, 2012 at 2:40 pm

              Kodenya si om masih bermasalah, coba bandingkan dg ini :

              Public conn As ADODB.Connection
              
              Public Function openDb() As Boolean
                  Dim strConn As String
                  
                  On Error GoTo errhandle
                  
                  strConn = "Provider=Microsoft.Jet.Oledb.4.0; Data Source=" & App.Path & "\dbsms.Mdb;"
                  Set conn = New ADODB.Connection
                  conn.Open strcon
                          
                  openDb = True
                  
                  Exit Function
              errhandle:
                  openDb = True
              End Function
              
              • MowLn
                June 7, 2012 at 3:25 pm

                Form1nya Jalan Gan, Tapi DBnya Loss (Ga Kebaca), Coz File DBnya Ane Hapus Tapi Form1nya Tetep Jalan Gan, Ane Jadi Makin Bingung! Maaf Gan Ane Dah Banyak Nanya, Maklum Baru Belajar! 😛

                • June 7, 2012 at 3:41 pm

                  Om aja bingung apa lagi sy yg enggak tau apa2x ttg project om.

                  Emg lokasi databasenya dimana ? Klo ngeliat kode koneksinya sih seharusnya lokasi databasenya satu folder dg project vbnya

                  • MowLn
                    June 7, 2012 at 4:51 pm

                    Betul Sekali Gan, DBnya Satu Folder Sama Proj VBnya! Tapi Knp Bisa Loss Ya Gan, Harusnya Kan Klo Ga Connect Muncul “Koneksi ke database gagal !!!”, Atw Coding DB SQLite Sama DB Ms.Access Ga Compatible Ya Gan? Coz Ane Cuma Ngedit DB Program Juragan Aja! 😛

                    • June 7, 2012 at 6:51 pm

                      Ya udah makanya om buat program sederhana dulu untuk koneksi ke ms access trus mencoba mengeksekusi perintah2x INSERT, UPDATE, DELETE dan SELECT biar gampang ngedebug errornya.

  168. dedy
    June 7, 2012 at 1:54 pm

    permisi gan numpang tanya ini yg dipake vb brp ya?vb 2005/2008?.. trus klo pake databasenya mysql gmn ya gan? ane pake gammu bingung soalnya
    mohon pencerahannya gan 😀

    • June 7, 2012 at 2:08 pm

      Masih pake vb 6 kok, contoh diatas menggunakan library tambahan untuk membaca dan mengirim sms, jadi enggak ada hubungannya dengan database.

      Jadi apapun database yg om pake terserah, selamat om sudah terbiasa menggunakan library ADO untuk mengakses databases.

  169. dedy
    June 7, 2012 at 2:23 pm

    ow pake vb 6..klo sayanya pake vb. 2008 untuk libarary active x apakah bsa om? terus untuk script read ama bales sms apakah ada perbedaan juga?antara vb 6ama vb net 2008..
    Maaf banyak nanya gan 😀

    • June 7, 2012 at 2:30 pm

      Yg jelas bisa aja sih di upgrade ke VB .NET 2008, tapi mendingan pake library yg dibuat untuk .NET, sy sendiri klo devlop aplikasi sms pake C# menggunakan library SMS libraries (for GSM phones), gratis kok 🙂

  170. dedy
    June 7, 2012 at 2:36 pm

    ada gk om contoh aplikasinya yg dibuat di vb 2008 untuk sms gatewaynya..??

    Mohon Bantuanya gan 🙂

    • June 7, 2012 at 2:44 pm

      Coba disini om, tapi pake C# 😀

      Toh sama saja C# dan VB .NET tinggal bolak-balik tipe data 🙂

  171. dedy
    June 7, 2012 at 2:50 pm

    ok thx gan infonya 😀

    • June 7, 2012 at 3:42 pm

      Oke om gan sama2x 🙂

  172. MowLn
    June 8, 2012 at 11:15 am

    Admin :
    Ya udah makanya om buat program sederhana dulu untuk koneksi ke ms access trus mencoba mengeksekusi perintah2x INSERT, UPDATE, DELETE dan SELECT biar gampang ngedebug errornya.

    OK Gan, Ane Coba Dlu Deh!!
    Trim’s… 🙂

    • June 9, 2012 at 10:00 am

      Oke om, sipp 🙂

  173. dedy
    June 9, 2012 at 2:37 pm

    gan ini gwa dah coba pake vb.net 2008..cuman gwa bingungnya gmn ya caranya buat ngirim sms yang dimana datanya sesuai yang ada di database..
    mohon pencerahannya gan 😀

    • June 10, 2012 at 8:45 am

      Loh bukannya tinggal perulangan biasa om :
      1. lakukan select trus ditampung ke objek datareader atw data adapter
      2. lakukan perulangan, sambil dicek klo nomor hpnya valid ya dikirim.

  174. June 9, 2012 at 5:14 pm

    pakai gammu aja gimana maz??
    lebih simple….

    • June 10, 2012 at 8:47 am

      Setuju pake gammu aja biar enggak report sudah service yg nanganin sms in dan outnya

  175. dedy
    June 9, 2012 at 6:22 pm

    klo pake gammu gmn crnya gan??ada contohn aplikasi vb.net yg pake gammu gan??

    • June 10, 2012 at 8:48 am

      Karena sudah banyak pembahasan tentang gammu, makanya tidak sy bahas disini.

  176. toni
    June 9, 2012 at 6:29 pm

    saya dolo pernah jg buat pake gammu gan 🙂 cuman bingung pada saat ngirim SMSnya jadi gini mis
    ada 2 tabel
    tabel a kolomnya (ID, NAMA, Alamat) terus valuesnya (“1″,”ferdi”, “jln kesana kesini”)
    tabel B kolomnya ( NAMA) valuesnya (“1″,”ferdi”, “jln kesana kesini”)

    dimana tabel B ini merupakan isi dari SMS yang dikirimkan. Ane bingung pas pada bagian outboxnya gan

    Mungkin ada yg tahu bsa jadi referensi buat saya 😀

    • June 10, 2012 at 8:52 am

      Klo mau ngirim smsnya kan tinggal insert ke tabel outbox atau outbox_multipart jika pesannya melebihi 160 karakter

  177. toni
    June 16, 2012 at 1:52 pm

    ia gan cmn datanya g bisa ke insert ke outboxnya..ada contoh lain gak gan selain pake gammu untuk sms gateway pada vb.net 2005/2008??

    Mohon Bantuanya gan:)

    • June 16, 2012 at 5:21 pm

      Coba ini om.

  178. Aka
    June 17, 2012 at 8:16 pm

    Mau tanya Pak Guru,,,Misalkan ada sms masuk dengan isi seperti ini “Telah terjadi gempa bumi dengan parameter sementara sbb: Kekuatan : 8,5 SR Tanggal : 08-Jun-12 Waktu Gempa : 13:29:11 WIB Tempat Selatan Pangandaran Kedalaman : 10 Km Gempa ini berpotensi TSUNAMI” nah saya ingin menerjemahkan kekuatan gempa, letak dan potensi nya dan dari hasil yang ada maka akan mengaktifkan sirine Tsunami Early Warning,,,apa yang bisa saya lakukan dengan berbagai macam ilmu yang anda jelaskan panjang lebar diatas,,,atas penjelasan yang diberikan saya ucapkan terima kasih,,tentunya akan sangat bermanfaat bagi masyarakat..

    • June 17, 2012 at 9:02 pm

      Yg penting ada jaminan format isi smsnya standar, sehingga mempermudah proses parsing.

      Private Sub Command1_Click()
          Dim msg As String
          
          Dim pos1    As Integer
          Dim pos2    As Integer
          Dim pos3    As Integer
          Dim pos4    As Integer
          Dim pos5    As Integer
          Dim pos6    As Integer
          
          msg = "Telah terjadi gempa bumi dengan parameter sementara sbb: " & _
                "Kekuatan : 8,5 SR " & _
                "Tanggal : 08-Jun-12 " & _
                "Waktu Gempa : 13:29:11 WIB " & _
                "Tempat Selatan Pangandaran " & _
                "Kedalaman : 10 Km " & _
                "Gempa ini berpotensi TSUNAMI"
                            
          pos1 = InStr(1, msg, "Kekuatan : ")
          pos2 = InStr(1, msg, "Tanggal : ")
          pos3 = InStr(1, msg, "Waktu Gempa : ")
          pos4 = InStr(1, msg, "Tempat ")
          pos5 = InStr(1, msg, "Kedalaman : ")
          pos6 = InStr(1, msg, "Gempa ini ")
          
          List1.Clear
          
          List1.AddItem Mid$(msg, pos1, pos2 - pos1)
          List1.AddItem Mid$(msg, pos2, pos3 - pos2)
          List1.AddItem Mid$(msg, pos3, pos4 - pos3)
          List1.AddItem Mid$(msg, pos4, pos5 - pos4)
          List1.AddItem Mid$(msg, pos5, pos6 - pos5)
          List1.AddItem Mid$(msg, pos6)
      End Sub
      

      Contoh hasil kode diatas : gambar

  179. ferdi
    July 2, 2012 at 7:44 pm

    pak mao tanya tentang script auto reply untuk di vb.net 2008 itu gimana ya?jadi setiap ada orang sms masuk langsung di balesi smsnya??
    butuh pencerahannya gan 😀

    • July 6, 2012 at 2:26 pm

      Coba pelajari referensi ini om.

  180. pemula banget
    July 14, 2012 at 7:02 am

    Alhamdulillah akhirnya nemu apa yang saya cari,,,saya pemula Mas Admin, mohon bimbingannya. di atas di jelaskan keyword yang dipakek hanya nis, seandainya keywordnya ditambah dengan kode mapel dan semester gimana codingnya ya? seperti ul#9941224165 PPKN 2, soalnya diatas cuman dipakek string smesternya, maunya dari db aja. perlu buat para siswa. terimakasih sebelumnya

    • July 15, 2012 at 1:56 pm

      Ya variabel paramnya aja yg ditambah, klo contoh diatas keywordnya kan seperti ini :
      TGS#NIS

      Penjelasan :
      TGS = prefix
      NIS = param1

      Klo keyword om kan seperti ini :
      ul#9941224165 PPKN 2 diubah dulu menjadi ul#9941224165#PPKN#2

      UL = prefix
      NIS = param1
      KODE MP = param2
      SEMESTER = param3

      • pemula banget
        July 16, 2012 at 11:02 am

        makasih Om Admin tapi Maaf Om Admin, belum jelas+bingung.hehe… penambahan letak paramnya.mohon contoh potongan codingnya kalo sempet.makasih banget

        • July 21, 2012 at 9:23 am

          Coba seperti ini om :

          Public Function getBalasanSms(ByVal keywordSms As String, ByVal phoneNumber As String) As String
              Dim param1          As String
              Dim param2          As String
              Dim param3          As String
              
              Dim arrKeyword()    As String
              Dim prefix          As String
             
              If Len(keywordSms) > 0 Then
                  If InStr(1, keywordSms, "#") > 0 Then 'karakter # -> separator keyword
                      arrKeyword = Split(keywordSms, "#")
                      If Not (Len(arrKeyword(0)) > 0) Then
                          getBalasanSms = "Keyword sms salah"
                          Exit Function
                          
                      Else
                          'do nothing
                      End If
                      
                  Else
                      ReDim arrKeyword(0)
                      arrKeyword(0) = keywordSms
                  End If
                  
              Else
                  getBalasanSms = "Keyword sms salah"
                  Exit Function
              End If
              
              prefix = arrKeyword(0)
              prefix = UCase$(prefix)
              
              If UBound(arrKeyword) > 0 Then param1 = arrKeyword(1) ' nomor induk siswa
              If UBound(arrKeyword) > 1 Then param2 = arrKeyword(2) ' kode mp
              If UBound(arrKeyword) > 2 Then param3 = arrKeyword(3) ' semester
              
              Select Case prefix
                  Case "UL"
                      
                      strSql = "SELECT UPPER(nama) FROM siswa WHERE nis = '" & param1 & "'"
                      nama = CStr(dbGetValue(strSql, ""))
                      
                      ' cek nilai ulangan
                      strSql = "SELECT nilai FROM nilai_ulangan " & _
                               "WHERE nis = '" & param1 & "' AND kode = '" & param2 & "' AND semester = " & param3 & ""
                      
                      ' TODO : proses query nilai ul diatas
                      
                  Case Else
                      getBalasanSms = "Keyword sms salah"
              End Select
          End Function
          
  181. pemula banget
    July 29, 2012 at 2:50 pm

    makasih banyak om Admin, beres dah. tak doain semoga om admin semakin banyak rejeki ya, cuman itu yg bisa tak ucapin.

    • July 30, 2012 at 2:03 pm

      Amin 🙂

  182. August 30, 2012 at 4:33 am

    Mas kalau pas SMS masuk langsung muncul 1 pesan belum terbaca, itu gimana ya caranya? biar nanti pas export ke db tinggal klik, sekarang saya bikin check pesan, tp kadang kosong hehehe ,,,

  183. newbieeeee
    September 10, 2012 at 9:09 am

    gan kl modemnya pakai modem usb bisa gak gan?

    • September 10, 2012 at 9:51 am

      Lah, ini bukannya emang pake modem usb? 😀

  184. hilmi
    September 13, 2012 at 10:00 am

    om, kalo pake modem speedup 3.5G bisa ga? saya liat kayaknya rata-rata pada pakai handphone gsm.

    • newbieeeee
      September 14, 2012 at 11:30 am

      insya allah bisa yang penting support AT Command insya allah bisa krn setiap modem yang bisa untuk at command bisa kok, udah saya coba dengan berbagai modem, tapi ga tau lagi kl g bisa heee 😀 pissss. coba cek langsung pakai send sms mengunakan at command.

  185. lansia
    September 16, 2012 at 11:53 am

    gan kl nampilin field keyword pada database ke listbox gimana ya

  186. September 25, 2012 at 12:33 am

    izin sedot kang……….

  187. September 25, 2012 at 12:35 am

    1. EDWAR ARIANOR

    2. IRFANSYAH

    Semester : V

    Ruang : G

    B. Study : e-commerce

    Dosen : Eko Purwanto. S,kom

    URL BLOG :

  188. tomi
    October 2, 2012 at 7:46 am

    om admin, saya mau nanya. kalo databsenya uda ada tapi pake foxbase. itu bagaimana ya?? saya bingung. terima kasih

    • October 7, 2012 at 8:37 am

      Coba tes koneksi via ODBC om.

  189. October 10, 2012 at 4:30 pm

    Pak Dosen, klo saya pakai modem GSM gitu, portnya gmn ya? Bingung aku…

  190. arief
    November 10, 2012 at 1:48 pm

    Maaf om, mau tanya, untuk validasi kode mata pelajaran k ga bisa ya? sy pakai format ex : UH#MTK1#992001
    codingnya seperti ini :
    Private Function isValidKodeMP(ByVal kodemp As String) As Boolean

    strSql = “SELECT COUNT(*) ” & _
    “FROM matapelajaran ” & _
    “WHERE kode = ‘” & kodemp & “‘”

    ret = CLng(dbGetValue(strSql, 0))
    If ret > 0 Then isValidKodeMP = True

    Exit Function
    errHandle:
    isValidKodeMP = False
    End Function

    dan di Public Function getBalasanSms ditulis coding

    Case “TGS”
    ‘validasi nis siswa
    If Not isValidNIS(param1) Then getBalasanSms = Replace(NIS_SALAH, “”, param1): Exit Function

    ‘validasi kode mata pelajaran
    If Not isValidKodeMP(param2) Then getBalasanSms = Replace(KODEMP_SALAH, “”, param2): Exit Function

    ‘validasi no hp siswa
    If Not isValidHPSiswa(param1, phoneNumber) Then
    getBalasanSms = Replace(HP_UNREG, “”, “SMKN 1 Madiun”)
    getBalasanSms = Replace(getBalasanSms, “”, phoneNumber): Exit Function
    End If

    replay smsnya salah terus, padahal kode MTK1 sudah masuk di database, kira-kira apa yang salah om?
    terima kasih sebelumnya

  191. didi
    November 13, 2012 at 9:34 pm

    Gan, ane dah ngikutin prosedurnya. Tp katanya koneksi ke data basenya masih gagal. Kira” apanya yang salah ya gan?

  192. Reas
    November 14, 2012 at 1:47 am

    om admin bisa minta contact personnya gak? banyak hal yang mau saya tanyain atau send email ke andrea_riani@yahoo.com

  193. arief
    November 14, 2012 at 8:57 am

    om mau tanya, SQLite ODBC saya tidak bisa jalan ya di windows 64 bit.?
    ketika mencoba koneksi selalu muncul error seperti ini “ODBC error : [Microsoft][ODBC Driver Manager] The specified DSN
    contains an architecture mismatch between the Driver and Application”, kira-kira apa yang salah ya om?

  194. dika
    November 26, 2012 at 7:26 am

    kok saya gak bisa connect ke databaseNya ya???
    tolong bantuAnNya ^_^

  195. aiv
    December 2, 2012 at 9:29 am

    om permisi sya mau tnya, sya bkin sms gateway jg tp pke C#, sya bingung bwt ngrim lbh dri 160 sms tu gmn. om bsa di jls kn d C# ga yg ini:

    Admin :
    Tambahkan fungsi berikut :
    view sourceprint?01Private Function pembulatanKeAtas(ByVal X As Double, Optional ByVal Factor As Double = 1) As Double02    Dim temp As Double03     04    temp = Int(X * Factor)05    pembulatanKeAtas = (temp + IIf(X = temp, 0, 1)) / Factor06End Function07 08Private Function splitMsg(ByVal msg As String, ByVal maxKarakter As Integer) As String()09    Dim div         As Integer10    Dim lengthMsg  As Integer11    Dim n           As Integer12    Dim i           As Integer13     14    Dim arrTmp()    As String15         16    lengthMsg = Len(msg)17    If lengthMsg > maxKarakter Then18        div = pembulatanKeAtas(lengthMsg / maxKarakter)19         20        ReDim arrTmp(div)21         22        n = 123        For i = 1 To div24            arrTmp(i - 1) = Mid(msg, n, maxKarakter)25            n = n + maxKarakter26        Next i27         28    Else29        ReDim arrTmp(0)30        arrTmp(0) = msg31    End If32     33    splitMsg = arrTmp34End Function
    Contoh penggunaaan :
    view sourceprint?01Private Sub Command1_Click()02    Dim arrMsg()    As String03    Dim msg         As String04    Dim i           As Integer05     06    msg = "Aplikasi ini berfungsi sebagai aplikasi untuk pencarian " & _07          "data-data buku selain itu juga bisa digunakan untuk mencatat data-data pengunjung, " & _08          "aplikasi ini sudah terintegrasi dengan Smart Library School yg juga disediakan secara gratis di blog ini"09     10    arrMsg = splitMsg(msg, 160)11    For i = 0 To UBound(arrMsg)12        If Len(arrMsg(i)) Then13            ' TODO : perintah kirim smsnya disini14            Debug.Print arrMsg(i)15        End If16    Next i17End Sub

    • December 2, 2012 at 1:15 pm

      Coba ini om, kode versi C#nya :

      private static float PembulatanKeAtas(float x)
      {
          float temp = 0;
      
          temp = x == temp ? x : x + 1;
          
          return temp;
      }
      
      private static string[] SplitMsg(string msg, int maxKarakter)
      {
          int div = 1;
          int lengthMsg = 0;
          int n = 0;
          int sisaKarakter = 0;
      
          string[] arrTmp;
      
          lengthMsg = msg.Length;
          sisaKarakter = lengthMsg;
      
          if (lengthMsg > maxKarakter)
          {
              div = (int)PembulatanKeAtas(lengthMsg / maxKarakter);
              
              arrTmp = new string[div];
              
              n = 0;
              for (int i = 1; i <= div; i++)
              {
      
                  if (sisaKarakter > maxKarakter)
                  {
                      arrTmp[i - 1] = msg.Substring(n, maxKarakter);
                  }
                  else
                  {
                      arrTmp[i - 1] = msg.Substring(n, sisaKarakter);
                  }
      
                  sisaKarakter -= maxKarakter;
                  n += maxKarakter;
              }
          }    
          else
          {
              arrTmp = new string[1];
              arrTmp[0] = msg;
          }
      
          return arrTmp;
      }
      
      static void Main(string[] args)
      {
          string msg = "Aplikasi ini berfungsi sebagai aplikasi untuk pencarian " +
                       "data-data buku selain itu juga bisa digunakan untuk mencatat data-data pengunjung, " +
                       "aplikasi ini sudah terintegrasi dengan Smart Library School yg juga disediakan secara gratis di blog ini";
          
          string[] arrMsg = SplitMsg(msg, 60);
          
          for (int i = 0; i <= arrMsg.GetUpperBound(0); i++)
          {
              if (arrMsg[i].Length > 0)
              {
                  // TODO : perintah kirim smsnya disini
                  Console.WriteLine(arrMsg[i]);
              }
          }
      
          Console.ReadKey();
      }
      
  196. aiv
    December 10, 2012 at 2:38 am

    gan sory tnya lgi… ane ngebagi lbh dri 160 sms msh bngung gan, ane coba ga bsa… ane pke referensi yg ini

    Admin :
    Coba pelajari referensi ini om.

  197. tomi
    January 2, 2013 at 6:20 am

    pak admin mau nanya, itu komponen activexpert sms diinstalnya gimana?? atau dimasukkinnya gmn?? masih ga ngerti saya, di webnya english semua soalnya. makasih

    • January 2, 2013 at 10:49 am

      Tinggal ikutsertakan file ASmsCtrl.dll dipaket instalasi yg om buat

  198. Belber
    January 8, 2013 at 11:11 pm

    mas admin, serial number nya itu nemu dimana ?

    • January 9, 2013 at 5:01 am

      Sudah ada beberapa pengunjung yg menanyakan pertanyaan yg sama dicek dulu aja ya om.

  199. h'ry haliyana
    January 10, 2013 at 10:12 am

    bang maaf mu tanya activeXperts nya pake yang mana??
    saya masih awam pngen tau cara dari awalnya mas trus yang hrus ada buat bikin sms gateway apa aja.. mksih atas smuanya,. 😀
    lams knal bang,,, mohon bantuannya nya low ga kirim aja ke email saya sahacing13@gmail.com

    • January 10, 2013 at 10:42 am

      1. Pake Activexperts SMS
      2. Klo males mempelajari postingan sy diatas, langsung download aja contohnya disini tinggal pelajari aja source codenya trus kembangkan sesuai kebutuhan.

  200. tomi
    January 15, 2013 at 7:49 pm

    pakenya activexpert sms messaging server ya bang??

    • January 16, 2013 at 8:22 am

      Bukan ActiveXpert SMS tok

  201. tomi
    January 28, 2013 at 5:09 pm

    yg di situsnya adanya messaging server dan sms component. itu yg mana bang yg dipake? masuk situsnya ini kan bang http://www.activexperts.com/download/ ??

  202. Elfan S
    January 29, 2013 at 7:18 pm

    Halo experts,
    Saya dah mencoba untuk kirim sms, berhasil untuk kirim 1 nomor. Cuma saat ini mau test untuk mengirimkan lebih dari 1 nomor dalam 1 waktu. Kalau dibuat pengulangan, maka akan memakan waktu lama.

    FYI: untuk kirim ke 1 nomor, dibutuhkan 2 detik. Jadi kalau ada 100 nomor yang mau dikirim, maka minimal 200 detik (krn looping).. apakah ada cara lain selain pengulangan?

    Apakah durasi 2 detik itu adalah durasi sekali pengiriman (berarti bisa mungkin dalam 1x pengiriman bisa 50 number?) atau untuk 1 nomor memang dibutuhkan jeda 2 detik?

    • February 2, 2013 at 9:51 am

      Ya sistemnya memang harus antrian om, jadi setau sy memang tidak memungkinkan dalam waktu bersamaan mengirim ke beberapa nomor sekaligus.

      Jadi perhitungann omnya sudah benar klo 1 sms = 2 detik berarti 50 sms = ? 😀

  203. tomi
    January 30, 2013 at 9:11 am

    mas elfan, bisa minta link download activexpertnya yg mana?? mohon pencerahannya. sy bgg. kalo bs email sy ke tommy_moto17@yahoo.com….terima kasih

    • February 2, 2013 at 9:34 am

      Nah inilah akibat dari males nyoba dan langsung bertanya, padahal disample program postingan sy diatas sudah sy ikut sertakan library ActiveXpert SMSnya.

  204. tomi
    February 2, 2013 at 11:37 am

    sudah bisa om admin. makasih ya bantuannya. sangat membantu saya :d

    • February 2, 2013 at 12:42 pm

      Oke om sippp

  205. February 12, 2013 at 4:49 pm

    bos ne lg bermasalah pad koneksinya,koneksi gagal terus padahal saya dah kasi mauk alamat file nya
    Set conn = New cConnection
    conn.openDb App.Path & “db\dbsms.db3”
    openDb = True

    saya ganti Set conn = New cConnection
    conn.openDb App.Path & “D:\tes\smsgateway\SMSGateway\db\dbsms.db3”
    openDb = True
    sesuai dengan letak filenya !mkasih

    • February 13, 2013 at 8:34 am

      Emg pesan errornya apa om ?

      • February 13, 2013 at 11:41 am

        koneksi database gagal om!

        • February 13, 2013 at 2:17 pm

          Coba kode conn.openDbnya dirubah seperti ini om :

          conn.openDb "D:\tes\smsgateway\SMSGatewa\db\dbsms.db3"
          
          • February 14, 2013 at 7:35 am

            masih tetep g bisa om,apa pengaruh saya blum pakek hp/modem y?

            • February 14, 2013 at 1:51 pm

              Emg yakin om di folder “D:\tes\smsgateway\SMSGatewa\db” ada file dbsms.db3nya

              • February 15, 2013 at 8:23 am

                sngat2 yakin om soalnya almtnya sy kopi langsung di addresnya……. om ada email biar sya print scren biar liat keadanya heheheh…..

                • February 16, 2013 at 11:54 am

                  Coba kesini om.

                  • February 28, 2013 at 8:17 am

                    om kok blum dbls y?sekalian mau tanya beli hpnya d mn y om?
                    om tlng kasih rekomendasinya!mks

                    • February 28, 2013 at 1:39 pm

                      Belum dibalas apaan om ? Kayaxnya blm ada email dari om.
                      Trus dari pada pake mendingan pake modem Wavecom aja om.

                    • March 1, 2013 at 8:07 am

                      ane dah kirim ulang hasil print scren om!smothireng@gmail.com mohon bantuanya

  206. hun7
    February 12, 2013 at 11:27 pm

    kalo untuk distribusi ODBC sqlite menggunakan inno setup gmana,,

    • February 13, 2013 at 8:31 am

      1. Download dulu file sqliteodbc.exe
      2. Ekstrak file sqliteodbc.exe menggunakan tool Universal Extractor 1.6.1
      3. Copy file SQLiteODBCInstaller.exe, sqlite3odbc.dll, sqliteodbc.dll dan sqliteodbcu.dll yg ada difolder “…\sqliteodbc\$INSTDIR”
      4. Terakhir skrip inno setup yang harus disesuaikan

      [Files]
      Source: SQLiteODBCInstaller.exe; DestDir: {sys}; Flags: onlyifdoesntexist
      Source: sqlite3odbc.dll; DestDir: {sys}; Flags: onlyifdoesntexist
      Source: sqliteodbc.dll; DestDir: {sys}; Flags: onlyifdoesntexist
      Source: sqliteodbcu.dll; DestDir: {sys}; Flags: onlyifdoesntexist
      
      [Run]
      Filename: {sys}\SQLiteODBCInstaller.exe; Parameters: "-i -a -q"; StatusMsg: "Sedang menginstall SQLite ODBC Driver ..."; Flags: runhidden;
      
      [UninstallRun]
      Filename: {sys}\SQLiteODBCInstaller.exe; Parameters: "-u -a -q"; StatusMsg: "Sedang menguninstall SQLite ODBC Driver ..."; Flags: runhidden
      

      Selamat mencoba 🙂

  207. iqbal
    February 28, 2013 at 1:10 am

    Pak bisa berikan contoh database MS acces gak ???
    database udah terkoneksi dengan program.. tapi sms gak bisa masuk di database..!!
    klw gak sempat berikan contoh database ms.acces.. mungkin bapak bisa berikan penjelasan tentang type data yang di gunakan…

    • February 28, 2013 at 1:43 pm

      Settingan storagenya kali om, kan ada tida pilihan
      1. SIM
      2. DEVICE
      3. ANY

      Di beberapa hp tidak mendukung pilihan ANY, kebetulan sample di atas secara default menggunakan pilihan ANY, coba aja diganti menjadi SIM

      • iqbal
        March 1, 2013 at 12:20 am

        saya gak pake HP OM…
        pke modem HUWAI…
        dan selalunya juga pake storage SIM..

        Mohon Pencerahanya OM…

        • March 1, 2013 at 2:11 pm

          Wah klo gini udah susah om, harus di trace sendiri fungsi readSmsnya

          • iqbal
            March 1, 2013 at 11:16 pm

            bisa minta codingx gak OM.. soalnya lagi butuh banget..
            lgi kerja skripsi OM.. Pleaseee…..

            • March 2, 2013 at 9:19 am

              Codingnya kan sudah ada di sample program di atas om, udah download kan ?

              • iqbal
                March 3, 2013 at 1:16 am

                udah OM mksudnya untuk read sms di database acces gimana ???
                mohon bantuanya OM

                • March 3, 2013 at 8:48 am

                  Oo gt ternyata om belum bisa baca database toh, coba kesini dulu om.

                  • iqbal
                    March 4, 2013 at 12:55 am

                    cuman bisa ngerti dikit om…
                    dengan cara itu ms. acces bisa ber interaksi dengan coding SQL yah OM ???

                    #mohon tegur klw salah OM!!!

                    • March 4, 2013 at 6:12 am

                      Iya om, makanya pelajari dulu

  208. March 1, 2013 at 2:10 pm

    @Irfan Yasin

    Irfan Yasin :

    ane dah kirim ulang hasil print scren om!smothireng@gmail.com mohon bantuanya

    Coba non aktifkan error handler di fungsi openDb

    Private Function openDb() As Boolean
        'On Error GoTo errHandle
    
        Set conn = New ADODB.Connection
        conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db\dbsms.mdb"
        conn.Open
        
        openDb = True
        
        'Exit Function
    'errHandle:
        'openDb = False
    End Function
    

    Setelah itu coba dijalankan lagi, dan perhatikan pesan error yg muncul.

    Trus dari pada pake hp mendingan pake modem Wavecome aja

    • iqbal
      March 3, 2013 at 12:06 am

      udah OM mksudnya untuk read sms di database acces gimana ???
      mohon bantuanya OM…

    • March 6, 2013 at 12:26 pm

      thnks om,ane coba !

  209. tomo
    March 4, 2013 at 5:26 pm

    om, itu waktu awal bikin projeknya pake vb 2008, pilihnya windows form application, class library, wpf application, wpf browser application, atau console application? sy uda download sourcenya, yg dipake yg mana om? maklum baru om. koneksi databasenya gmn? terima kasih om

    • March 5, 2013 at 10:01 am

      Sample project sms di atas masih pake VB 6 om 😀

  210. tomo
    March 6, 2013 at 4:24 pm

    kalo dipake ke vb 8 ga bs ya om?

  211. tomo
    March 7, 2013 at 6:52 am

    nanya aja deh om. koneksi ke databasenya gimana ya?

    • March 16, 2013 at 1:26 pm

      Pake library SQLite.NET aja om.

      Untuk kodenya seperti berikut :

      Pertama tambahkan namespace System.Data.SQLite

      Imports System.Data.SQLite
      

      Kemudian tinggal buat koneksi ke database SQLitenya

      Dim appDir As String = System.IO.Directory.GetCurrentDirectory()
      Dim strConn As String = "Data Source=" + appDir + "\dbsms.db3"
      Dim conn As New SQLiteConnection(strConn)
      conn.Open()
      
  212. ekha
    March 9, 2013 at 12:54 am

    om, bisa minta program sms gateway dengan database microsoft acces gak?

    • March 16, 2013 at 1:12 pm

      Belum sempat bantu convert nih 😀

  213. iqbal
    March 16, 2013 at 11:28 pm

    ommm.. cuman mw tanya…
    saya dah pelajari menggunakan konsep ADO tapi tetap juga sms tidak terbaca di database ms.acces.. mmng konsep ado bisa berinterksi dengan semua coding untuk hubungkan database apapun ..!!!
    akn tetapi apakah konsep ADO bisa berinterksi juga, bila memakai memakai coding pihak ke tiga (coding dhrichclient3) ???

    mohon penjelasanya OM….

    • March 19, 2013 at 5:28 am

      ADO = ActiveX Data Objects merupakan library STANDAR yang disediakan oleh Microsoft untuk mengakses berbagai sumber data (sql server, oracle, firebird, mysql, PostgreSQL, interbase, paradox, ms access, ms excel, sqlite dan sumber data lainnya) selama driver untuk mengakses sumber data tersebut tersedia.

      Dengan menggunakan ADO walaupun sumber datanya berbeda sintak/perintah yg digunakan secara umum tetap sama.

      Contohnya bisa om lihat disini.

      Klo library dhRichClient3, ini kan library khusus untuk mengakses SQLite, jadi enggak bisa om pake untuk mengakses database yg lain, Misal Ms Access, MySQL dan lain-lain.

      Jadi sekarang udah tau ya om bedanya dimana.

  214. iqbal
    March 19, 2013 at 11:05 pm

    Waduh… !!!
    berarti klw gitu harus bongkar coding yach OM… ???

    • March 20, 2013 at 10:11 am

      Yoi om 😛

      • iqbal
        March 21, 2013 at 11:14 pm

        waduhhh klw mw belajar buat bongkar coding ntar gak cukup waktu… maksih sebelumnya OMM..

        klw boleh nanya OM… cara untuk memasukkan sms di database sesuai dengan keyword sms gmana yach om ???
        contoh1: Reg#Kode#Nama >>> tersimpan di Tabel Registrasi
        contoh2: Kode#Tujuan#>>> tersimpan di Tabel penumpang..

        saya dah coba coding di coment no. 230.. tp gak berhasil OM…

        please bantuin donk OM…

        • March 22, 2013 at 3:44 pm

          Ya dibreak aja kodenya satu2x pada saat proses seleksinya biar gampang ngeceknya.

          Atau di debug.print dulu isi dari keywordnya

          • iqbal
            March 24, 2013 at 12:57 am

            bisa minta contohx gak omm. ???
            😀

  215. maman@gmail.com
    March 20, 2013 at 3:44 pm

    Makasih tutorialnya om, mantaff interaktif banget empat jempol buat sampyn

    • March 21, 2013 at 9:59 am

      Dua jempol aja om, enggak sopan klo pake jempol kaki 😀

  216. nokati
    March 21, 2013 at 8:53 pm

    pak…saya newbi nih ceritanya, mau buat ta tetang sms gateway, apa saja yang diperlukan (di unduh)? minta link nya ya 😀 beberapa link diatas gak bisa kebuka soalnya, kalo ada tutorialnya boleh dikirim via email? makasih pak 😀

    • March 22, 2013 at 3:38 pm

      Yg dibutuhkan cuma VB 6 plus sample program dari postingan sy di atas.
      Link yg mana ya, yg enggak bisa diunduh, sy coba bisa tuh

  217. sitasya
    March 23, 2013 at 12:06 pm

    Terima kasih buat tutorialnya ane coba dan sukses, mo nanya Om, kalo database-Nya pake MYSQL, gimana yah om???udah download tool2-Nya : mysql, mysql-connector-odbc trus pake VBMySQLDirect, udah dicoba2, loading-Nya lama, trus akhirnya gak konek ke hp,
    trus Om masih bingung di procedur readSMS, buat ganti metode CreateCommand kalo pake MYSQL apa yah???

  218. tomi
    April 5, 2013 at 7:04 am

    om admin, saya uda coba kok pas di start, pesannya koneksi ke database gagal. padahal posisi databasenya uda saya arahkan ke foldernya. itu kira2 knp ya om?? mohon pencerahannya

    • April 10, 2013 at 4:07 pm

      Harusnya perintah berikut

      conn.openDb App.Path & "\db\dbsms.db3"
      

      Yg ada di fungsi openDb tidak perlu diganti, cukup dinonaktifkan error handlernya sehingga menampilkan pesan error yg sebenarnya :

      Private Function openDb() As Boolean
          'On Error GoTo errHandle
      
          Set conn = New cConnection
          conn.openDb App.Path & "\db\dbsms.db3"
          openDb = True
      
          'Exit Function
      'errHandle:
          'openDb = False
      End Function
      

      Jalankan lagi programnya, kemudian lihat pesan errornya.

  219. April 6, 2013 at 7:29 pm

    kalo pake PHP codingan nya seperti apa ya pak ? *mohon bantuan nya*

    • April 10, 2013 at 4:02 pm

      Wah Admin blognya belum mensupport code PHP 😀

  220. tomi
    April 11, 2013 at 4:29 am

    setelah error handlernya dinonaktif, pesan erornya ‘run time error 429 active x component can’t create object’. itu kenapa ya om??

    • April 11, 2013 at 3:36 pm

      Jangan2x library pendukungnya belum diinstall

      Coba lakukan langkah2x berikut :
      1. Tutup dulu kode samplenya
      2. Coba om cek folder dll yg ada di folder source code, trus klik ganda file install.cmd

  221. tomi
    April 11, 2013 at 4:41 am

    waktu itu sy email ke om juga tentang eror ini…

  222. tomi
    April 11, 2013 at 5:34 am

    om kalo pake mysql, yg dirubah bagian koneksinya aja atau gimana? atau sqlite tetapi pake yg odbc gmn om? maaf banyak nanya om

    • April 11, 2013 at 3:39 pm

      Klo pake MySQL semua kode yg berhubungan dg akses database seperti insert, update, delete dan select harus dicoding ulang.

  223. tomi
    April 11, 2013 at 4:06 pm

    itu setiap sy klik ganda instal.cmd, acces denied, copy2nya gagal semua om. sy pake vista. trs saya copy manual ke system32. itu ngaruh ga om?

    • April 11, 2013 at 4:19 pm

      coba user access controlnya (UAC) dinonaktifkan dulu kemudian restart setelah itu cb lg jawaban sy yg sebelumnya.

  224. tomi
    April 11, 2013 at 4:13 pm

    tapi kalo project propertiesnya sy ganti sub main jadi form1, itu bisa start program smp keluar interface. tp ga bisa masuk database

  225. tomi
    April 11, 2013 at 4:31 pm

    om uda jalan bisa. tp kok sy ga dapet balesan sms ya? itu knp om? pdhl scriptnya ga sy rubah. cm ganti lokasi folder database aja. sy pake bb om buat modemnya.

    • April 12, 2013 at 8:55 am

      Pada saat diklik start, informasi modemnya nampil enggak ? Klo enggak berarti bbnya om engga disupport coba aja hp/modem yg lain.

  226. tomi
    April 12, 2013 at 10:59 am

    tampil om. saya pake com3, any, yg informasi modem keluar research in motion. gitu om. tp seri bbnya ga keluar..

    • April 12, 2013 at 2:34 pm

      Coba pilihan storagenya di ganti sim

  227. tomi
    April 13, 2013 at 10:46 pm

    ga bisa om. uda diganti sim tp cm bisa nerima aja. itu jg ga masuk ke tabel database om. gimana ya om? TA sy mirip ky gini soalnya om

  228. tomi
    April 14, 2013 at 8:55 pm

    atau ada yg perlu diinstal dulu software2 lain gitu om? serial number harus dimasukkan atau gimana?

    • April 17, 2013 at 2:48 pm

      Enggak perlu, serial numbernya kan udah diset via kode

  229. tomi
    April 17, 2013 at 5:25 am

    kalo klik start, button stop nyala mati nyala mati doang om. ga ada proses smsnya.

    • April 17, 2013 at 2:50 pm

      Ya memang seperti itu setiap n-detik sekali programnya jalan/running dan idle utk memberikan kesempatan ke user melakukan sesuai misal menyetop aplikasi smsnya

  230. tomi
    April 17, 2013 at 5:26 pm

    tapi ga bisa om. terima sms masuk hp. tp ga masuk database. terus ga ada balesannya pdhl keyword uda sama. gimana ya om??

    • April 18, 2013 at 10:57 am

      Dari pada om bingung sendiri ngoprek program yg udah jadi dan enggak ketemu2x masalahnya dimana, mendingan om mulai dari hal yg sederhana dulu.
      1. Membaca SMS masuk
      2. Mengirim SMS

      Utk databasenya mendingan entar aja deh, di atas sudah kodenya untuk dua poin di atas silahkan di coba dulu.

  231. bandi kun
    April 17, 2013 at 9:52 pm

    klo temen2 pke .NET , saya biasanya pke ini Logiccode GSM SMS .Net Library, lumayan memuaskan kok,

    • April 18, 2013 at 11:00 am

      Klo sy pake SMS libraries lumayan memuaskan juga, ada event notifikasinya sehingga enggak perlu menggunakan timer utk pengecekan sms masuk, dan yg lebih penting gratis 🙂

    • balqis
      February 4, 2014 at 3:31 pm

      ada yg py S/N logiccode v 5.2, bagi S/N nya om 🙂 terima kasih

  232. tomi
    April 19, 2013 at 2:56 pm

    ituga perlu bikin form dulu om? lgsg module aja?

    • April 25, 2013 at 11:27 am

      Di form aja, nanti tambahkan tombol Baca dan Kirim sms

  233. Joko Pitoyo
    April 23, 2013 at 7:44 am

    Gampang kalau sudah ada SDK/COmponent, coba kalau develop mulai dari awal, pasti agak sulit, harus belajar format PDU Dll….

    • April 25, 2013 at 11:00 am

      Setuju om, pilihan ada di tangan kita 🙂

  234. April 26, 2013 at 6:18 am

    Akh. Afwan, bisa minta tolong banget, dibuatin codenya untuk ngirim sms ke banyak nomor sekaligus dengan nomor Hp Ngambil dari tabel Siswa. terima kasih sebelumnya

    • April 26, 2013 at 8:54 am

      Untuk pengiriman sms masal ya tinggal pake perulangan aja.

      Private Sub cmdTesKirimSMSMasal_Click()
          Dim rsSend          As ADODB.Recordset
          
          Dim objGsmOut       As ASmsCtrl.GsmOut
          Dim objConstants    As ASmsCtrl.Constants
      
          Dim phoneNumber     As String
          Dim msg             As String
          
          strSql = "SELECT no_hp FROM siswa"
          Set rsSend = New ADODB.Recordset
          rsSend.Open strSql, conn, adOpenForwardOnly, adLockReadOnly
          If Not rsSend.EOF Then
          
              Set objGsmOut = New ASmsCtrl.GsmOut
              Set objConstants = New ASmsCtrl.Constants
              
              objGsmOut.Activate SERIAL_NUMBER
              objGsmOut.device = "COM3" ' nilai disesuaikan
              objGsmOut.DeviceSpeed = 0 ' sim
              objGsmOut.RequestStatusReport = False
              objGsmOut.MessageType = objConstants.asMESSAGETYPE_TEXT
          
              Do While Not rsSend.EOF
              
                  'ganti prefix nomor hp 0 -> +62
                  phoneNumber = rsSend("no_hp").Value
                  msg = "tess kirim sms"
                  
                  objGsmOut.MessageRecipient = phoneNumber
                  objGsmOut.MessageData = msg
                  objGsmOut.Send ' kirim sms
                  
                  ' cek status pengiriman sms
                  If objGsmOut.LastError = 0 Or objGsmOut.LastError = 23140 Then
                      ' TODO : jika sms sukses dikirim
                      
                  Else
                      ' TODO : jika sms gagal dikirim
                  End If
                  
                  ' fungsi Wait ada di modWait
                  Call Wait(5000) ' jeda 5 detik setiap pengiriman sms
                  
                  rsSend.MoveNext
              Loop
              Set objConstants = Nothing
              Set objGsmOut = Nothing
          End If
          rsSend.Close
          Set rsSend = Nothing
      End Sub
      
  235. Vika Andini
    May 3, 2013 at 5:25 pm

    Mrtm :
    om bisa tolong bikinin sms gateway project.vbp buat ngisi pulsa mkios ga
    1. conection comport
    a. combobox buat milih comport
    b. botton conect
    c. label status conect / disconect comport
    2. dial number isi pulsa
    a. textbox1 buat masukan no hp yang di isi
    b. combobox buat milih nominal pulsa (5,10,20,25)
    c. botton kirim, simpan, print dengan perintah:
    – dial *777*NO_HP*NOMINAL*PIN#
    expl. *777*081234567890*10*1234#
    – menyimpan transaksi di data base.mdb
    – print struk kecil
    d. label status berhasil / dengan msgrib
    sebelumnya matur nuwun dan kirimin project.vbp nya ke emailku ya om. thannnkkkkkksss

    [OOT] Aku ngakak baca nya 😀 ,,,, Dasar pemalas.
    sekalian aja minta admin bikinin kopi setiap pagi.

    • May 4, 2013 at 8:11 am

      Iya nih, ciri2x programmer instant 😀

  236. tomi
    May 14, 2013 at 12:15 am

    om mau nanya lagi. ini kalo sy portnya 8 gimana? sy uda coba cara yg ada diatas, kan ada org yg komen jg soal hal ini, tp sy ga bisa om. kalo pake modem yg penting uda dicolokin,uda keinstal,kedetek portnya,uda bisa dipake kan om? atau harus dikonekin ke internetnya dulu om?

  237. May 21, 2013 at 10:30 am

    gan ini bisa buat modem smartfren gak?

  238. sandika
    May 31, 2013 at 1:03 am

    om admin udah jago kayanya nih 😀

  239. hid4yat
    June 1, 2013 at 9:40 am

    mau tanya nih master…
    klu untuk CDMA Activex yg recommend ga? 😀

    thank…

  240. June 15, 2013 at 10:35 am

    gan databasenya kalo diganti ms access ngrubah apanya aja?

  241. June 18, 2013 at 9:00 pm

    sdh hmpr 3 taon akhirnya punya siemen juga…. 🙂 input no hp dan nis dgn metode reg gmna om biar db na terisi otomatis oleh siswa

    • June 24, 2013 at 1:48 pm

      Saya sekarang malah enggak punya hape siemen om 😀

  242. June 18, 2013 at 9:16 pm

    hp sdh d daftarkan d dtbase tp blsan sms na hp blom terdaftar truz…. knp ya om??

    • June 24, 2013 at 1:50 pm

      Coba cek lagi konfigurasi portnya, trus coba ganti pilihan storagenya menjadi SIM.

  243. June 25, 2013 at 6:13 am

    sdh bisa nie om ketinggalan + na hehe… tp nilai siswa tidak terpenuhi jdi balasan sms nilai siswa selalu dalam proses pendatan…
    If Len(nilai) > 0 Then
    nilai = Left(nilai, Len(nilai) – 2)
    ‘getBalasanSms = “Nilai tugas (” & nama & “) : ” & nilai

    Else
    ‘getBalasanSms = “Nilai tugas (” & nama & “) sedang dalam proses pendataan”
    getBalasanSms = “Nilai tugas (” & nama & “) : ” & nilai
    End If
    akhir na di balik om bru bisa…. knpa ya om ???truz untuk cek pulsa knpa selalu +cme error 3 ya…??? klo ingin ganti dbtase dengan mysql dengan vbmysqldirect gmana om mhon pencerahan na….

    klo registrasi no hp klo tanpa cmd gmana om …..
    Select Case prefix
    Case “REG”

    strSql = “INSERT INTO siswa (nis, nama, no_hp) VALUES (?, ?, ?)”
    Set cmd = conn.CreateCommand(strSql)
    With cmd

    .SetText 2, param1
    .SetText 3, param2

    .Execute
    End With
    Set cmd = Nothing
    getBalasanSms = “anda telah terdaftar”
    Case Else
    getBalasanSms = “Keyword sms salah”
    End Select

  244. Agus
    July 15, 2013 at 1:23 pm

    Bang, untuk modem yang support ama AT Command itu modem apa?

    Soalnya udah tak coba 3 modem yg berbeda ndak bisa konek???

    • July 17, 2013 at 1:53 pm

      Ya langsung tanya aja tokonya modemnya support AT Command g 😀

  245. rizal
    July 21, 2013 at 6:11 am

    ass….
    om admin,,
    ane mnta pncerahan dunk,,
    kl ada tutorial ttg PERANCANGAN SISTEM PENJUALAN BERBASIS SMS di share jg dunk om,,
    cz ane bnr2 binggung cra pmbuatan’y….

    • July 22, 2013 at 2:03 pm

      Yg namanya aplikasi sms gateway itu secara umum sama om, pahami dulu cara kerja aplikasi sms gatewaynya setelah itu tinggal pengembangan saja.

  246. ainah
    July 25, 2013 at 1:44 pm

    Ane bisa kursus gak nih pak admin sama ente 😉 thx

    • July 25, 2013 at 2:24 pm

      Lembaga kursus udah banyak kok mba

      • ainah
        July 26, 2013 at 10:16 am

        tapi ini studi kasusnya khusus, agak bingung

        • July 26, 2013 at 10:37 am

          Ini buat TA/Skripsi ya ? Kan bisa konsultasi dg dosen pembimbingnya

          • July 31, 2013 at 5:03 pm

            om pake acces bisa ga

            • August 1, 2013 at 11:56 am

              Bisa

              • August 3, 2013 at 11:39 am

                biasanya kan pake acces hhehehehhe,
                om nanya kalo ngrim pulsa m3 misalnya trus no hp nya ngambil dari txt gmna om??? 😀

                • August 5, 2013 at 9:01 am

                  Untuk membaca isi file text, om bisa menggunakan library Microsoft Scripting Runtime

                  • August 6, 2013 at 11:13 am

                    hadew,
                    kirain uda dsederhanain om. xixixixi.
                    om di ym g prnah ol tah. q coba chat g ad respon

                    • August 7, 2013 at 7:38 am

                      Ya disederhanaan sendiri aja 😀

                      Iya nih sy jarang OL 😀

  247. August 15, 2013 at 6:35 am

    bang mnt tlong coding untuk membuat halaman untuk broadcast sms dari admin ke seluruh pengguna pake sms gateway

    • August 18, 2013 at 5:18 am

      Sudah kah om mencoba sample di atas ?

  248. nazar
    September 12, 2013 at 7:43 am

    trimakasih contoh kodenya

    bisakah minta postingnya lanjutannya dengan kode dalam versi VB.net?

    • September 12, 2013 at 9:38 am

      Ada rencana sih tp belum tau kapan, jadi mendingan dikonversi sendiri aja om, tinggal buka project VB 6nya dari VB .NET kemudian tinggal ikuti aja langkah2x upgradenya

  249. lutfi
    September 17, 2013 at 12:05 pm

    aslmu’alaikum om,
    mau tanya nih om. kalo coding nya yang versi delphi7 ada?

    • September 19, 2013 at 1:54 pm

      Klo contohnya bisa dilihat disini om.

  250. agung
    September 29, 2013 at 4:54 pm

    om klo buat voice call bisa??

    • September 30, 2013 at 7:46 pm

      Setau sy cuma mendukung sms text + mms

  251. khrisna
    October 2, 2013 at 12:40 pm

    Siang om Admin…
    saya tertarik dengan postingannya dan sdh sy coba berhasil.
    Tapi sy coba untuk kirim ke nomor selain awalan 0 koq gak bisa ya?
    contoh: kirim SMS ke 151 indosat
    Mohon pencerahannya om admin…terimakasih sebelumnya.

    • October 7, 2013 at 8:44 am

      Coba dulu om kode yg ada di komentar #279

      • Khrisna
        October 29, 2013 at 5:04 pm

        Siap…komentar #279 sdh saya laksanakan dan berhasil,& bisa menangkap flashmessage 1 tp flashmessage 2 gak bisa terdeteksi om…(mohon sarannya)

        Untk komentar #562 yg saya maksud sebenarnya bukan USSD kode om (komentar #279) tapi kirim SMS biasa dengan nomer tujuan 151 (biasanyakan 08123….)…mohon pencerahannya om ADMIN…terimakasih sebelumnya.

  252. Uchudoank
    October 26, 2013 at 12:39 pm

    Salam sukses min…
    Sy mo tanya, misal nya Form dbuat exe dgn nama TERMINAL, agar menudahkan user tinggal klik kanan dgn opsi menambahkan TERMINAL cara nya gmn?? Jd bisa menggunaka banyak Terminal
    Trima kasih gan

    • October 26, 2013 at 12:45 pm

      Maksudnya gimana toh om ? Dibuat context menu gitu ?

      • Uchudoank
        October 26, 2013 at 2:43 pm

        .iya gan jd begitu klik kanan bisa tambah terminal yg beda port dan beda modem

        • October 29, 2013 at 9:09 am

          Klik kanannya di mana dulu ?

          Mungkin dengan gambar lebih jelas om, dari pd sy nebak2x apa yg om maksud

          • hid4yat
            October 29, 2013 at 2:04 pm

            mungkin yg di maksd seprti ini kali gan…

            😀

            • October 30, 2013 at 8:53 am

              Nah itu udah bisa membuat Popup Menunya 😀

              • hid4yat
                October 30, 2013 at 1:06 pm

                itu cuma contoh..
                sya cari di mbah google… 😀

  253. anjal
    October 30, 2013 at 6:41 pm

    assalamu’alaikum pakdhe, boleh minta alamat emailnya? reply ke email saya ya jika berkenan? terimakasih

  254. November 9, 2013 at 3:46 pm

    If Len(pesan) > 160 Then ‘A
    ‘funsi kirim 1
    lbl_ket.Caption = “Tunggu sedang Proses kirim 1…”
    pesan1 = Mid$(pesan, 1, 150)
    pesan2 = Mid$(pesan, 151, 300)
    pesan3 = Mid$(pesan, 301, 450)

    MSComm1.Output = “AT+CMGS=” & Chr(34) & nomor & Chr(34) & vbCrLf
    Delay 1
    MSComm1.Output = pesan1 & Chr(26) & vbCrLf
    If WaitForSuccess Then
    lbl_ket.Caption = “Proses Pesan 1 Terkirim No urut ” & indexpesan & “, No HP : ” & nomor
    Set rs = cn.Execute(“update MSGSENT set sent = ‘Y’, datetimesent = sysdate where msgindex = ” & indexpesan & “”)
    Else
    lbl_ket.Caption = “Proses Pesan 1 Gagal No urut ” & indexpesan & “, No HP : ” & nomor
    End If
    ‘funsi kirim 2
    strBuffer = “”
    Delay 1
    lbl_ket.Caption = “Tunggu sedang Proses kirim 2…”
    MSComm1.Output = “AT+CMGS=” & Chr(34) & nomor & Chr(34) & vbCrLf
    Delay 1
    MSComm1.Output = pesan2 & Chr(26) & vbCrLf
    If WaitForSuccess Then
    Timer2.Enabled = False
    lbl_ket.Visible = True
    lbl_ket.Caption = “Proses Pesan 2 Terkirim No urut ” & indexpesan & “, No HP : ” & nomor
    Set rs = cn.Execute(“update MSGSENT set sent = ‘Y’, datetimesent = sysdate where msgindex = ” & indexpesan & “”)
    X = txt_time.Text
    Timer1.Enabled = True
    Else
    lbl_ket.Caption = “Proses Pesan 2 Gagal No urut ” & indexpesan & “, No HP : ” & nomor
    Timer1.Enabled = True
    End If

    ‘kirim3
    strBuffer = “”
    Delay 1
    lbl_ket.Caption = “Tunggu sedang Proses kirim 3…”
    MSComm1.Output = “AT+CMGS=” & Chr(34) & nomor & Chr(34) & vbCrLf
    Delay 1
    MSComm1.Output = pesan3 & Chr(26) & vbCrLf
    If WaitForSuccess Then
    Timer2.Enabled = False
    lbl_ket.Visible = True
    lbl_ket.Caption = “Proses Pesan 3 Terkirim No urut ” & indexpesan & “, No HP : ” & nomor
    Set rs = cn.Execute(“update MSGSENT set sent = ‘Y’, datetimesent = sysdate where msgindex = ” & indexpesan & “”)
    X = txt_time.Text
    Timer1.Enabled = True
    Else
    lbl_ket.Caption = “Proses Pesan 3 Gagal No urut ” & indexpesan & “, No HP : ” & nomor
    Timer1.Enabled = True
    End If

  255. November 9, 2013 at 3:52 pm

    sry om dopost… om mau tanya dong, saya nyoba bkin sms gateway jg tp saya ada msalah klo misalkan dy ngirim lbih dri 450 karakter pesan pertama dan ke tiga terkirim tp kenapa yg kedua gk terkirim ya? code sya bgini om, sya udh nyoba pke pnya om tp gk bsa, mohon pencerahan y om….

    gildhot :
    If Len(pesan) > 160 Then ‘A
    ‘funsi kirim 1
    lbl_ket.Caption = “Tunggu sedang Proses kirim 1…”
    pesan1 = Mid$(pesan, 1, 150)
    pesan2 = Mid$(pesan, 151, 300)
    pesan3 = Mid$(pesan, 301, 450)
    MSComm1.Output = “AT+CMGS=” & Chr(34) & nomor & Chr(34) & vbCrLf
    Delay 1
    MSComm1.Output = pesan1 & Chr(26) & vbCrLf
    If WaitForSuccess Then
    lbl_ket.Caption = “Proses Pesan 1 Terkirim No urut ” & indexpesan & “, No HP : ” & nomor
    Set rs = cn.Execute(“update MSGSENT set sent = ‘Y’, datetimesent = sysdate where msgindex = ” & indexpesan & “”)
    Else
    lbl_ket.Caption = “Proses Pesan 1 Gagal No urut ” & indexpesan & “, No HP : ” & nomor
    End If
    ‘funsi kirim 2
    strBuffer = “”
    Delay 1
    lbl_ket.Caption = “Tunggu sedang Proses kirim 2…”
    MSComm1.Output = “AT+CMGS=” & Chr(34) & nomor & Chr(34) & vbCrLf
    Delay 1
    MSComm1.Output = pesan2 & Chr(26) & vbCrLf
    If WaitForSuccess Then
    Timer2.Enabled = False
    lbl_ket.Visible = True
    lbl_ket.Caption = “Proses Pesan 2 Terkirim No urut ” & indexpesan & “, No HP : ” & nomor
    Set rs = cn.Execute(“update MSGSENT set sent = ‘Y’, datetimesent = sysdate where msgindex = ” & indexpesan & “”)
    X = txt_time.Text
    Timer1.Enabled = True
    Else
    lbl_ket.Caption = “Proses Pesan 2 Gagal No urut ” & indexpesan & “, No HP : ” & nomor
    Timer1.Enabled = True
    End If
    ‘kirim3
    strBuffer = “”
    Delay 1
    lbl_ket.Caption = “Tunggu sedang Proses kirim 3…”
    MSComm1.Output = “AT+CMGS=” & Chr(34) & nomor & Chr(34) & vbCrLf
    Delay 1
    MSComm1.Output = pesan3 & Chr(26) & vbCrLf
    If WaitForSuccess Then
    Timer2.Enabled = False
    lbl_ket.Visible = True
    lbl_ket.Caption = “Proses Pesan 3 Terkirim No urut ” & indexpesan & “, No HP : ” & nomor
    Set rs = cn.Execute(“update MSGSENT set sent = ‘Y’, datetimesent = sysdate where msgindex = ” & indexpesan & “”)
    X = txt_time.Text
    Timer1.Enabled = True
    Else
    lbl_ket.Caption = “Proses Pesan 3 Gagal No urut ” & indexpesan & “, No HP : ” & nomor
    Timer1.Enabled = True
    End If

  256. ananda91
    November 20, 2013 at 10:21 pm

    Reblogged this on slametmenulis.

  257. December 23, 2013 at 1:08 pm

    Maaf mo tanya nih…kalo untuk penyelesaian kasus di atas (request nilai tugas dan ulangan) dengan code php bagaimana?

    • December 23, 2013 at 1:28 pm

      Untuk sms gateway dg php biasanya banyak yg menggunakan gammu, coba google dulu dg keyword “gammu php” soalnya sudah banyak yg membahas masalah ini.

  258. January 15, 2014 at 7:36 am

    Maf om, mau tanya.. klo cuma pengen kasih informasi dari aplikasi web ada pesan baru ke hp itu gmna? trus kalo pke MysQL itu bisa ga? tolong dibantu ya pa dosen baru belajar jadi belom ngerti 😀

    • January 17, 2014 at 3:33 pm

      Klo baru belajar ya nanya yg gampang2x aja, misal bagai mana menulis Hello World ke console pake php 🙂

  259. amyfhesa
    January 29, 2014 at 7:12 pm

    klu menggunakan komponen xcomm untuk membuat sms gateway codeY kaya gimana mas?

  260. rio
    February 10, 2014 at 11:20 pm

    om boleh minta alamat FB nya gk buat nanya2…
    saya mahasiswa baru,belum belajar tapi ingin mencoba ajja karena dikampus buming ama smsgateway…thanks rio rinaldi

  261. Risma Afrianti
    March 25, 2014 at 12:24 pm

    mas , mau nanya.. kalo misalnya mau bikin website online trs disitu untuk hak akses operatornya ada fitur sms ke anggota grup. itu pake apa yaa efisiennya ? sms gateway atau apa ? mohon bantuannya ^^ makasih.

    • March 25, 2014 at 3:40 pm

      Karena aplikasinya berbasis web, untuk fitur sms gatewaynya bisa menggunakan Gammu.
      Udah banyak banget artikel berbahasa Indonesia yang membahas masalah Gammu, coba aja di google.

  262. April 5, 2014 at 1:55 pm

    oh gitu ^^ hehe nambah lagi boleh yaa , mas nanya ny. kemarin dosen saya ada nyuruh bikin sms gateway ny kerjasama dgn provider. jadi nggak perlu isi pulsa gitu. kira-kira gimana yaa tuh , mas caranya ? mohon bantuannya 🙂

    • April 8, 2014 at 1:59 pm

      Ya tinggal hubungi aja pihak operator yang ingin diajak kerjasama 😀

  1. June 20, 2011 at 7:43 am
  2. July 15, 2011 at 2:30 am
  3. April 16, 2014 at 9:12 am
Comments are closed.