Sunday, June 20, 2010

Pengantar Membuat Aplikasi SMS

Permohonan Izin
 
Sebelum saya meneruskan langkah demi langkah pengantar Membuat Aplikasi OpenSMS ini, saya mohon izin kepada para sesepuh dan akang-akang (pujisusanto, mbahlawu, pujanggabageur, gyus, flack, agoesdobleb, vberror13, tatangs, k4m4r482, akhirudin, trail, g3zle, ibnuQoyyim dan yang lain-nya yang ga tertulis) dan kawan-kawan yang cukup dan sangat-sangat Advanced di bidang ini dan yang sudah saya anggap guru pribadi saya , saya cuma punya setitik pengetahuan dan hanya ingin berbagi informasi atas dasar.

"Sampaikan Ilmu walaupun satu pembuktian Ilmi-ah"




Ucapan Terima Kasih
  1. Allah SWT yang telah memberikan kurnia IMAN dan pemahaman source code visual basic 6.0 walau hanya sedikitAyah dan Ibu tercinta yang telah mendahului, saya sangat rindu kepadamu. Maaf ananda belum mampu mewujudkan cita-cita Ibunda.
  2. Kawan-kawanku di forum.vb-bego.com yang berubah menjadi iBego
  3. nGOpre-X Community yang tidak terurus blog-nya dan pertemuannya, mudah-mudahan kawan-kawan bisa segera menyelesaikan persoalannya ini
Mukaddimah
Aplikasi ini salah satu aplikasi untuk mengirim SMS yang masih sangat sederhana dari sisi source code, interface dan security. Aplikasi ini dibantu dengan gammu dan MySQL sebagai databasenya. Iseng dan mempertajam daya ingat dikhawatirkan semua source code yang saya miliki luntur karena tidak sering digunakan, tapi besar harapan mudah-mudahan bisa dijadikan satu referensi bagi siapapun yang membutuhkan.

Sesuai dengan namanya OpenSMS ver.01-BETA1 2009, maka source code inipun boleh dikembangkan dan diperbaiki bahwa disesuaikan dengan yang anda suka, selain itu guna mendukung gerakan IGOS (Indonesia, Go Open Sources) dan mencerdasakan kehidupan bangsa, walaupun memang language yang digunakan bukan Open Source. Sejujurnya apapun bahasa yang nanti akan dipakai semuanya pasti bisa.


Software Pendukung
Apikasi ini membutuhkan beberapa software pendukung agar bisa berjalan sesuai dengan fungsinya yaitu mengirim SMS, antara lain software pendukung yang dimaksud adalah :
1. MySQL
2. Gammu win32 Gammu Win32
3. Driver Handphone (jika dibutuhkan)
4. Visual Basic 6.0



Hardware Pendukung
Selain software pendukung, tambahan hardwarepun harus dipersiapkan, dikarenakan software ini untuk mengirim sms maka beberapa hardware pendukung yang harus dipersiapkan antara lain:
1.Handphone Siement C55, Sony Ericsson
2.Kabel data
3.Bluetooth (bila ingin menggunakan fasilitas Bluetooth )




Rancangan Database

1. Install MySQL 
    Gammu membutuhkan database yang di buat di MySQL, oleh karena itu mau tidak mau, suka tidak suka kita harus buat database tersebut di MySQL, tapi sebelum membuat Dbnya terlebih ddahulu kita harus Install dulu MySQL tersebut, untuk mudahnya tinggal kita liat di thread ini viewtopic.php?f=16&t=254
2. Create dan Import Database
    Berikut dibawah ini langkah-langkah membuat database untuk aplikasi SMS yang kita buat, hanya create dan import yang mesti kita lakukan, inilah enaknya gammu sudah menyiapkan sendiri rancangan databasenya, jadi kita tidak susah-susah buat lagi.
    1. Masuk ke web browse, untuk kali ini kita bisa menggunakan IE atau Firefox, silahkan pakai webbrowser yang anda suka.
    2. Pada Address bar ketik localhost, sehingga akan terlihat tampilan seperti dibawah ini :
      3. Berikutnya klik phpMyAdmin, maka akan terlihat tampilan seperti dibawah ini :
      4. Ketik OpenSMS pada text Create new database, dilanjutkan klik tombol Create, maka database OpenSMS sudah terbuat.
      5. Untuk membuat table didalam database selanjutnya kita klik import, maka akan terlihat tampilan seperti dibawah ini :
      6. Klik tombol browse -----> cari file mysql.sql di folder win32 pada drive C:\, klik Open bila file mysql.sql sudah dipilih. (lihat gambar)
      7. klik GO sebagai terakhir dari membuat database OpenSMS dan import 9 tabel ini, maka akan terlihat seperti ini ;
    Konfigurasi Gammu Untuk sinkronisasi antara port com dan nama database yang digunakan, maka konfigurasi gammu ini mutlak harus dilakukan, ada 2 fila gammu yang harus kita sesuaikan atau kita ubah terlebih dahulu, dibawah ini cara mengkonfigurasi 2 file tersebut.
    1. File gammurc
      a. Sebelum kita ubah isi file gammurc, maka terlebih dahulu anda harus mengextrak file gammu_win32.zip yang sudah di unduh ke drive C:\
      b. Buka folder win32 yang kita extrak tadi, kemudian cari file gammurc
      c. Klik kanan file gammurc, pilih open (maka akan muncul tampilan seperti dibawah ini)



      d. Untuk mempermudah mengubah isi file maka kita harus pilih WordPad, dilanjutkan dengan klik Ok, maka akan terlihat isi file gammurc seperti dibawah ini :

    [gammu]

    port = com10: --------> yang ini harus sesuaikan dengan com di pc anda
    #model = 6110
    connection = at19200 ------> yang ini sesuaikan dengan hp yang dipakai
    #synchronizetime = yes
    #logfile = gammulog
    #logformat = textall
    #use_locking = yes
    #gammuloc = locfile
    #startinfo = yes
    #gammucoding = utf8
    #rsslevel = teststable
    #usephonedb = yes

    [gammu1]

    port = com10: --------> yang ini harus sesuaikan dengan com di pc anda
    #model = 6110
    connection = at19200 ------> yang ini sesuaikan dengan hp yang dipakai
    #synchronizetime = yes
    #logfile = gammulog
    #logformat = textall
    #use_locking = yes
    #gammuloc = locfile
    #startinfo = yes
    #gammucoding = utf8


      Keterangan:
      untuk Handphone siement C55 kita bisa menggunakan connection=at, dan untuk handphone sony Ericcson kita bisa menggunakan connection=at19200. Untuk lebih jelasnya bisa dilihat isi file gammurc dibawahnya. 

      d. Simpan file gammurc yang sudah kita ubah tersebut.
      e. Terakhir, untuk melihat hasil konfigurasi file gammurc ini berhasil atau tidak maka kita harus testing terlebih dahulu dengan cara dibawah ini :
        * Masuk ke DOS dengan klik Start --> Run --> ketik cmd (lihat gambar dibawah ini)

      * Masuk ke drive C:\ dan folder win32, dengan cara ketik cd \win32 ---> Tekan Enter
      * Untuk menjalankan dan sekaligus mengecek file gammurc dan hp sudah terbaca atau belum, ketik gammu –identify ----> Tekan Enter (lihat gambar untuk lebih jelasnya)
      Keterangan : 
      Setelah kita menekan tombol Enter, maka gammu akan mengidentifikasi Handphone yang kita pasang terbaca atau tidak, sebagai tanda kalau handphone yang kita gunakan terbaca maka gammu akan memberikan keterangan nomor imei dari handphone yang kita gunakan.

    2. File smdrc
      Setelah file gammurc sudah kita sesuaikan dengan port com dan connection handphone yang kita gunakan, maka selanjutnya kita harus merubah isi file smsdrc, file ini harus kita sesuaikan dengan database yang kita buat. Dibawah ini potongan file dari smsdrc yang harus kita sesuaikan, dan cara membuka filenya sama dengan cara mengedit file gammurc


      # ----------------------- SETTINGS FOR --smsd MYSQL --------------------
      user = root ----> sesuaikan dengan user name mysql
      password = ----> sesuaikan dengan password user mysql
      pc = localhost ----> sesuaikan dengan host yang digunakan
      database = smsd---> sesuaikan dengan nama database yang kita buat

      # when you send sms from some SMSC, you can have Delivery/Failed Delivery
      # Reports from other SMSC number. You can set here number of this "buggy"
      # SMSC used by you and Gammu will not check it's number during assigning
      # reports to sent sms
      #skipsmscnumber = +48602123456
      # -----------------------------------------------------------------------



      Dari database yang kita buat adalah OpenSMS, dengan user mysqlnya root dan passwordnya null, sedangkan nama hostnya adalah localhost, maka seharusnya isi file smsdrc menjadi seperti dibawah ini :

      # ----------------------- SETTINGS FOR --smsd MYSQL --------------------
      user = root 
      password = 
      pc = localhost 
      database = OpenSMS


      # when you send sms from some SMSC, you can have Delivery/Failed Delivery
      # Reports from other SMSC number. You can set here number of this "buggy"
      # SMSC used by you and Gammu will not check it's number during assigning
      # reports to sent sms
      #skipsmscnumber = +48602123456
      # -----------------------------------------------------------------------


      Jangan lupa untuk menyimpan file smsdrc tersebut.




    3.Testing Service Gammu
      Dua file sudah kita konfigurasi, maka langkah selanjutnya kita coba menjalankan service gammu, service gammu ini berfungsi untuk membaca sms yang masuk dari handphone yang kita gunakan, dan mengirimkan sms yang keluar dari table outbox yang terdapat didatabase MySQL. Tidak rumit dan memusingkan otak untuk menjalankan service gammu ini, silahkan ikuti langkahnya :
      • Masuk ke DOS (ingat bukan DDOS ya aksi membombardir server, yang biasa dilakukan oleh para cracker)
      • Masuk ke direktori gammu dengan perintah CD
      • Ketik perintah gammu –smsd MYSQL smsdrc (awas jangan salah ketik baik huruf besar dan kecilnya), look in picture

      • Bila terdapat tulisan secara terus menerus maka service gammu sudah ok (jangan ditutup dan dihentikan biarkan berjalan)




    Rancangan Interface OpenSMS
    Sudah saatnya kita harus membuat rancangan tampilan atau antar muka pengguna dari Aplikasi OpenSMS, sebagai awal kita akan buat 1 form didalam Visual Basic 6.0, dan diharapkan anda sudah tidak lagi bingung dalam merancang form di dalam Visual Basic 6.0.
    1. Silahkan buka Visual Basic kesayangan anda
    2. Tambahkan 1 Form, 2 object label, 2 object text dan 2 object command serta 2 shape
    3. Silahkan setting sesuai selera anda, sehingga hasilnya kalau saya setting properties seperti ini :






      Saya yakin anda jauh lebih baik dalam hal desain interfacenya dari saya :D

      Create Coding
      Inilah sesi yang paling dan sunggung-sungguh sangat menyulitkan buat saya secara pribadi yang masih muda belia dalam hal pemrograman ini, "Nulis Coding" atau "Syntax" atau "Listing Program"

      Sebelumnya saya mohon maaf kalau penulisan Codingnya tidak memenuhi standar penulisan yang sebenarnya :

      1. Tambahkan 1 modul, silahkan create coding na kaya seperti ini, sebelumnya tambahkan reference Microsoft ActiveX Data Object xx library:

    Public DB       As ADODB.Connection
    Public rsPhone  As ADODB.Recordset
    Public SQL      As String

    Public Sub Koneksi()
    Set DB = New ADODB.Connection
        DB.ConnectionString = "DRIVER={MYSQL ODBC 3.51 Driver};" _
            & "SERVER=localhost;" _
            & "DATABASE=OpenSMS;" _
            & "UID=root;" _
            & "PWD=;" _
            & "OPTION="
    DB.Open
    End Sub

    Public Sub TextKosong()
    Dim i As Control
    For Each i In FrmKirim
        If TypeName(i) = "TextBox" Then
            i.Text = ""
        End If
    Next i
    End Sub
    Public Sub TextMati()
    Dim i As Control
    For Each i In FrmKirim
        If TypeName(i) = "TextBox" Then
            i.Enabled = False
        End If
    Next i
    End Sub

    Public Sub TextHidup()
    Dim i As Control
    For Each i In FrmKirim
        If TypeName(i) = "TextBox" Then
            i.Enabled = True
        End If
    Next i
    End Sub

    2. Kembali ke Form KirimSMS
    '-----------------------------------------------------------------------------------
    'Dibuat oleh : Eka Riana
    'Tanggal     : Awal Oktober 2009
    'Keterangan  : Source code ini berisi tentang bagaimana cara mengirimkan pesan
    '              ke nomor handphone yang dituju
    'Sifat       : Open Source
    'Harapan     : Silahkan dikembangkan untuk perbaikan agar bangsa ini menjadi BESAR
    '-----------------------------------------------------------------------------------
    Private Sub CmdKirim_Click()
    If CmdKirim.Caption = "&Kirim" Then
        If Text1.Text = "" Or Text2.Text = "" Then
            If Text1.Text = "" Then
                MsgBox "Maaf Nomor Pengirim Belum Diisi", vbOKOnly + vbInformation, "Informasi"
                Text1.SetFocus
            ElseIf Text2.Text = "" Then
                MsgBox "Maaf Isi Pesan Belum Diisi", vbOKOnly + vbInformation, "Informasi"
                Text2.SetFocus
            End If
        Else
            CmdKirim.Caption = "&Keluar"
            cmdMulai.Caption = "&Mulai"
            KirimSMS
            TextMati Me
            TextKosong Me
        End If
    Else
        MsgBox "Silahkan Source Code ini dikembangkan (Eka Riana)", vbMsgBoxSetForeground, "Informasi"
    End If
    End Sub

    Private Sub cmdMulai_Click()
    With cmdMulai
        If .Caption = "&Mulai" Then
            TextHidup
            Text1.SetFocus
            .Caption = "&Batal"
            CmdKirim.Caption = "&Kirim"
        Else
            .Caption = "&Mulai"
            CmdKirim.Caption = "&Keluar"
            TextMati
        End If
    End With
    End Sub

    Private Sub Form_Load()
    Koneksi
    TextKosong Me
    TextMati Me
    End Sub

    Sub KirimSMS()
    Set rsKirim = New ADODB.Recordset
    SQL = "Insert Into outbox(DestinationNumber, Coding, TextDecoded) values" _
         & "('" & Text1.Text & "', 'Default_No_Compression'," _
         & "'" & Text2.Text & "')"
    DB.Execute SQL
    End Sub

    Private Sub Text2_Change()
    lblJumlah.Caption = 160 - Len(Text2.Text)
    If Len(Text2.Text) = 160 Then
        MsgBox "Maaf Jumlah Karakter Sudah Tidak Mencukupi", vbOKOnly + vbInformation, "Konfirmasi"
    End If
    End Sub

    'yang ini ga usah di pake yah
    Private Sub Timer1_Timer()
    fadin = fadin - 5
        If fadin >= 10 Then
            MakeTransparent Me.Hwnd, fadin
        Else
            MakeTransparent Me.Hwnd, 255
            Timer1.Enabled = False
            Unload Me
            FrmMe.Show
        End If
    End Sub
    Test Program
    Yang perlu di perhatikan sebelum kita test program yang sudah kita buat ini, mampu mengirim sms atau tidak, berikut dibawah ini yang perlu di perhatikan :
    1. Hp sudah terpasang ke PC lewat Com1 atau Com2 atau via Bloothoet
    2. Hp yang kita gunakan sudah dikenal oleh gammu dengan ciri menampilkan nomor imei hp tersebut.
    3. Service gammunya sudah running (kalau belum silahkan jalankan lagi lewat command prompt)
    4. MySQL sudah running


    Kalau sudah semuanya ok, silahkan tekan F5 dan di coba mengirim SMS ke nomor ane 021-91975218, Insya Allah ane balas kalau ada Pulsa,,, oh iya jadi lupa yang nomor 5 nih

    5. Biar testnya memuaskan kartunya enaknya ada PULSA-nya :D

    Penutup
    Alhamdulillahirabbil`alamin saya menyatakan syukur
    Demikian tutorial Pengantar cara membuat Aplikasi OpenSMS ini, semoga bermanfaat adanya, bila ada yang kurang mohon dikoreksi dan ditambahkan demi perbaikan informasi untuk sesama.

    Parungpanjang, 5 Mei 2010
    Salam,


    Eka Riana




    28 comments:

    1. thanks totorialnya,,,,

      ReplyDelete
    2. maaf nih, mau usul :D
      itu font-nya diperbesar donk (yg bagian atas). agak susah ngebacanya, apalagi bwt yg mata minus :D

      artikelnya sipp om

      ReplyDelete
    3. wahhh keren mas artikelnya....
      ada artikel untuk instalasi warnet with server linux ga.....

      tengkyu

      ReplyDelete
    4. Ada,, nanti ana create dulu yah, soalnya belum sempet...:D

      ReplyDelete
    5. This comment has been removed by the author.

      ReplyDelete
    6. mas...
      koneksi hp sudah konek...
      tetapi tidak masuk ke database pesan yang dikirim

      ReplyDelete
    7. File gammunya donload dari mana mas ? coba ganti pake gammu yang versi diatasnya. kalau ada masalah lagi ini YM ane ekaperintis

      ReplyDelete
    8. mas link gammu nya ga bisa...
      Not Found...
      minta link nya lagi dong,yang bener,,,,trims

      ReplyDelete
    9. This comment has been removed by the author.

      ReplyDelete
    10. Silahkan download ulang mas,,, udah saya perbaiki dan semoga bermanfaat ... :-)

      ReplyDelete
    11. mas bisa nga klo konfigurasi File gammurc dan smsdrc dari visual basic??

      ReplyDelete
    12. Kalau secara teori sangat bisa, tapi saya sendiri belum mencobanya ...

      ReplyDelete
    13. mas saya lagi coba tutorialnya tapi ko nga bisa kirim sms?

      saat kirim sms muncul error,....

      errornya gni mas

      run-time error '-22147467259(80004005)

      [mysql][ODBC 3.51 driver][mysqlld-5.0.45-community-nt] faild
      'creatorid' doesn't have a default value.

      solusianya gmna mas??

      ReplyDelete
    14. MySQL Connector ODBC-nya sudah di install belum ?

      dan koneksi ke mysql Servernya sudah disesuaikan belum ?

      ReplyDelete
    15. kreeeeen...duh jdi kpengen gabung nui!!!!oia pak boleh ikutan gabung gk nui ...saya dah lama nui pngen bsa data base sma bhasa pemograman komputer

      ReplyDelete
      Replies
      1. Makasih, silahkan datang aja ke STMIK Pranata Indonesia -> Jl. BIna Putra Mandiri Parungpanjang Bogor 16360 (Belakang SMP Negeri 1 Parungpanjang)

        Delete
    16. Bloothoet maksudnya bluetooth y om? terus kalau pake bluetooth portnya liat di mana?

      ReplyDelete
      Replies
      1. Iya, bisa dilihat pada Device Managernya om, pilih Port, tinggal lihat aja bloothoet ada di port berapa ?

        Delete
    17. mas kl reference Microsoft ActiveX Data Object xx library di vb6ku kok kakgak ada, cara munculin gimana???

      makasih

      ReplyDelete
      Replies
      1. 1. Klik menu project
        2. Pilih References ..
        3. Centang Microsoft ActiveX Data Object
        4. Oke

        Delete
    18. Tutro nya mantap mas.. Trims ya..

      ReplyDelete
    19. kalo pake php gimana ya cara nya ?? *mohon bantuan nya*

      ReplyDelete
    20. kalo pake PHP gimana ya cara nya ?? *mohon bantuan nya*

      ReplyDelete
      Replies
      1. Kalau pake php prinsipnya sama aja, tinggal insert ke tabel outbox untuk kirim data, dan tabel inbox untuk melihat sms yang masuk

        Delete
    21. om mau tanya, proses kirim terima sms sdh bisa, tapi stelah kirim sms dlm jml bnyak lngsg macet, stelah modem dilepas dan dipasang lagi trus dijalnkan gammu lg, bisa lagi, dan masalah itu slalu muncul stlah kirim sms dlm jml bnyak, itu knp ya?
      saya pake modem wicom smart 100dtu

      ReplyDelete
      Replies
      1. Saya baru buka blog lagi, kemungkinan karena modemnya yang hang ...

        Delete