Official StoreTekan tombol di atas untuk membeli semua alat dan bahan eksperimen di web ini

Membuat Software Autoreply SMS dengan Delphi

Yang pada mau bikin software autoreply SMS dengan Delphi, yuk kita belajar bareng. Kegunaan sistem autoreply ini ada banyak sekali tergantung implementasinya, tapi intinya adalah untuk memberikan respon secepat mungkin kepada pengirim SMS  sesuai dengan keyword SMS yang diberikan. Pada artikel kali ini saya ingin member contoh, bagaimana membuat software autoreply SMS, yang fungsinya memudahkan pemilik kendaraan bermotor yang ingin mengetahui kapan masa berlaku STNK-nya habis. Cukup dengan mengirimkan keyword nomor polisi STNK Anda ke nomor hotline SMS, maka Anda akan langsung mendapat reply masa berlaku STNK Anda.

Siapkan database MySQL dengan nama ‘dbnopol’ dan tabel dengan nama ‘tabnopol’. Define tabel ‘tabnopol’ dengan  dua field, yakni ‘nopol’ dan ‘deadline’. Field ‘nopol’ nanti akan kita isi dengan nomor-nomor STNK dan field ‘deadline’ akan berisi data masa berlakunya. Intinya, tabel ‘tabnopol’ akan menyimpan seluruh data nomor polisi/STNK beserta masa berlakunya. Bagaimana cara instalasi database MySQL dan koneksinya dengan Delphi, dapat Anda baca disini.

Sebelum kita membuat sebuah program, alangkah baiknya jika mendefinisikan fungsi/tujuan dibuatnya program ini. Kira-kira program yang nanti kita buat, fungsinya adalah “Jika ada SMS masuk dengan keyword tertentu, ceklah di database ‘dbnopol’. Jika ada data yang dimaksud, reply data tersebut kepada pengirim SMS’. Kalau statement ini kita buat flowchart-nya, kurang lebih seperti pada gambar di bawah.

flowchart autoreply sms

Mari kita coba implementasikan flowchart di atas dalam program Delphi. Buat form baru, dan siapkan komponen beserta properties-nya sebagai berikut :

Component Properties Value
Button1 Caption Setting
Button2 Caption Open COM
Button3 Caption Open db
Memo1
Comport1
DBGrid1 DataSource DataSource1
DBNavigator1 DataSource DataSource1
ZConnection1 Database dbnopol
Protocol Mysql-5
Hostname localhost
User root
ZQuery1 Connection ZConnection1
SQL Select * from tabnopol
DataSource1 DataSet DataSource1

Atur tata letak komponen seperti pada gambar di bawah:

Kemudian masukkan source code berikut, berturut-turut untuk button1, button2 dan button3

Button1 berfungsi untuk pengaturan parameter serial (COM) port, Button2 berguna untuk inisialisasi koneksi dengan modem/handphone melalui virtual serial port dan Button3 adalah untuk membuka koneksi dengan database MySQL.
Kemudian masukkan source code berikut di event OnRxChar milik komponen ComPort1. Source code ini berfungsi untuk handling event SMS masuk dan keluar.

Dan terakhir, masukkan source code berikut ke dalam event OnChange milik komponen Memo1. Source code inilah yang sebenarnya berfungsi sebagai program utama dalam program autoreply SMS ini.

Penjelasan source code di atas :

Potongan kode di bawah dimaksudkan untuk mengetahui jika ada SMS masuk yang diindikasikan dengan munculnya karakter ‘+CMTI’

Potongan kode di bawah dimaksudkan untuk me-‘render’ informasi yang ada dalam SMS yang masuk ke modem/handphone. Informasi yang bisa didapatkan antara lain : status SMS, nomor pengirim, tanggal dan waktu diterima SMS, dan yang terakhir adalah isi SMS itu sendiri.

Kalau yang ini, Anda tentunya sudah bisa menduganya sendiri, kan? Potongan source kode di bawah dimaksudkan untuk mengecek apakah keyword SMS sesuai dengan data di database atau tidak. Jika ada data yang dimaksud akan di-reply data masa berlaku nopol STNK, sedang jika tidak ada data yang dimaksud akan di-reply ‘Maaf nopol Anda tidak terdaftar’.

Running-lah program yang telah Anda buat tadi, dan coba koneksikan dengan modem yang terhubung ke computer dengan menekan tombol ‘Setting’ dan ‘Open COM’. Jangan lupa tekan tombol ‘Open db’ untuk membuka koneksi dengan database MySQL. Jika program Anda benar, seharusnya akan muncul tampilan sebagai berikut.

Keterangan : untuk data tabel di atas diisi secara manual, untuk percobaan (misal: nopol K7777JB, deadline 7/30/2011).

Sekarang coba Anda SMS dengan isi SMS ‘K7777JB’ ke nomor ‘hotline’ (nomor di dalam modem yang terhubung computer), dan perhatikan apakah Anda sudah mendapat reply dari nomor hotline. Coba variasikan isi SMS dengan keyword lain, untuk menguji program ini.

Jika ada yang ingin didiskusikan, bisa mengisi komentar di bawah. Kalo ada yang mau pesan program sama saya juga boleh 🙂 Happy programming 🙂

Incoming search terms:

sms auto reply dengan delphi, membuat sms auto reply dengan delphi, membuat auto reply sms dengan delphi dan comport, cara membuat auto respon pad delphi, flowchart sms gateway, script at commend untuk autoreplay delphi, auto reply sms dengan comport, auto replay comport delphi, cara mengatasi could not convert variant of type (null) into type (string), sms autoreplay dengan comport

Leave a Reply

89 Comments on "Membuat Software Autoreply SMS dengan Delphi"

avatar
  Subscribe  
newest oldest most voted
Notify of
UDE
Guest

Mas Ajie kalau saya mo minta source prog nya geimana atau prog nya sudah di buat buku ?

senthot
Guest

mas.. sy udah buat seperti dscript di atas. tapi ndak isa reply. setiap abis terima sms. bisa kebaca tapi pas ngirim balik tidak ada pesen error atau apa. trims.

telingabulan
Guest

mas, pada command ‘at+cpms=”SM”‘+#13#10 dan ‘at+cscs=”GSM”‘+#13#10 terjadi error. apakah penulisan saya salah? terimakasih.

jay
Guest

slamat mlem mas. .
mas,sya udah coba program di atas, tapi ketika ada sms masuk bkannya langsung di reply tapi malah kluar pesan source file not found:ZsqlStrings.pas. .
slahnya di mana mas ya,mohon bantuannya. .
terima kasih. .

jay
Guest

pgi mas,klo mslah yg d atas udh bsa d atasi tp skrg mslahnya, ktika sms masuk mlah ada tulisan error d memonya,,knp mas ya?
mhon bntuannya. .
terima kasih. .

jay
Guest

slmat sore mas, , ,
udah pke exception kyk di contoh artikel yang mas bkin tp tetp aj seperti itu salahnya mas. .
kira2 knp ya mas?

Edwin
Guest

program ini pake Delphi versi brp.?

Kurniawan
Guest

Maaf Mas aji, saya mau nanya…
Field nopol dan deadline apa type nya?

Beri
Guest

mas, ijin tanya ni, saya coba buat scriptnya, tpi pas di run ada errornya. keterangan errornya [Error] USMS.pas(91): Undeclared identifier: ‘posex’
itu kenapa ya mas…mohon petunjuknya, thanks!

Beri
Guest

Ok, sudah bisa mas…!
mantap, thanks ilmunya ni mas. insya Allah berkah…he..he..he.

hilmi
Guest

mas aji, saya sudah coba membuat programnya berdasarkan source code yg mas tuliskan dan sudah berhasil jalan programnya. tapi ketika saya coba mengirimkan sms, program hanya bisa membaca smsnya saja tapi saya tidak mendapatkan balasan smsnya. kira-kira kenapa ya mas?

budi
Guest

mas posex yang ditulis discript itu fungsinya untuk apa ya?

kurniawan
Guest

Mas…apa modem Wavecom bisa?

cun
Guest

mas ajie, saya mw bertanya, ad sedikit masalah ketika auto replynya,
ketika pesan sudah dibaca dan dipisah2 kan, kemudian proses mengirimnya gagal, padahal saya yakin program untuk mengirimnya nya dah jlan, ap ad masalah dengan modem yang tidak bisa mengirim langsung setelah menerima, tq

Zulfahmi Alif Abdi
Guest

Asslmlkum mas aji,,
ini karakter yang dibaca hape saya untuk variabel isi . . .

Ä%Ífƒ

kenapa bisa begitu ya mas . .??
adakah cara menanggulanginya???
trims

itonk
Guest

bang ane mw tx pass ane jln kn program d tkn tmbol opencom qo ad error y…??’unable to open com port (win error code:2)’…

john
Guest

mas mw share ne kenapa pas saya kirim sms ad error ‘tabel unknown’ pada sql-nya??

guz
Guest

mas ajie…mhon bntuannya……….untuk sms auto forward….source codenya gmn………

jawabannya ditunggu segera…….
terimakasih sblumnya

fahmi
Guest

misi mas,saya ingin menanyakan,saya udah ikutin tutorialnya tapi ada kendala pas di compile, malah muncul notif Error : Undeclared identifier : “posex” padahal udah di pasang di interfacenya StrUtils, saya menggunakan Delphi 6 mas, mohon bantuannya?

fahmi
Guest

Mas saya udah install delphi 7 nya nih, dan sudah bisa.
tapi bagaimana ya untuk ngebaca pas di bales autoreply ada notifikasi sms terkirim ?

Saya dapat caranya kaya gini
AT+CSMP = 49,167,0,242
AT+CNMI = 1,0,0,1,0

terus pas di coba hasilnya kaya gini mas :
+CMGS: 54
+CDSI: “SR”,53

Mohon bantuannya ya

cadexs
Guest

mas setelah saya coba run terjadi error unable to open com port (error 5) solusinya bagaimana…
makasih sebelumnya

coe
Guest

sama nih mentog disini,,,project1.exe raised exception class EvariantTypeCasterror with message ‘could not convert variant of type (null) into type (string)’.

udah plototin script dr mas ajie berjam-jam gak ada yg beda alias disamain sepersisnya,masih kendalanya sama huftt,,,mohon pencerahaannya mas ajie,,
apakah script diatas husus utk sql,saya pake access databse nya dan koneksinya mnggunakan adoconnection dan adoquery,berjalan normal kalo cek yg ada di database,tp kl yg tdk ada mncul error ky diatas,,bingung

Yatna
Guest

Mas kalau sms yang masuk tidak muncul di TMemo kenapa ya tp malah masuk di inbox modem? Padahal semua koneksi sudah OK (baik modem dan database), saya coba tambahkan fitur kirim sms manual dari PC ke ponsel tujuan sudah berfungsi dengan baik.

ghani
Guest

mas, ini pake gammu jg ga mas?trus kalo pake modem smartfren bs juga kah?
makasih sebelumnya mas

mulyo
Guest

langsung aja nih ga bisa banyak basa basi pengen iku gabung untuk belajar apa bisa di terima …terima kasih

rendy
Guest
mas.. koq setelah saya kirim pesan,, malah mncul error data kosong di bagian untuk mengirim pesan.. pada data tersebut sudah saya isi di database.. sama percis seperti yang di atas.. zquery1.SQL.Text:=’select * from lampu where kode_lampu=”’+isi+””; zquery1.ExecSQL; zquery1.Open; zquery1.Refresh; try ComPort1.WriteStr(‘at+cmgs=”‘+pengirim+'”‘+#13#10); ComPort1.WriteStr(zquery1.FieldValues[‘pesan’]); ComPort1.WriteStr(#26); nah di fieldValues[pesan] nya itu selalu muncul pesan error kalau data nya ksosong.
engkab
Guest

mas mau tanya,kalau membuat autoreply menggunakan accsess bagaimana merubah listingnya..

efendi
Guest

setiap pesan masuk, sistem akan muncul error invalid column name ‘K7770JB”
saya mengunakan adoquery dan adoconnection

efendi
Guest

masalah invalid column name sudah di atasi,
pak,saya ingin bereksperimen, jika dia buat reg (spasi) nopol, bagaimana caranya ?
terima kasih,

efendi
Guest

could not convert variant of type(null) into type (string) , ini kenapa ya mas ? kok pada saat saya mencoba mengirim format ya salah maka akan muncul error ini.

alif mukti arifuddin
Guest

mas.. sy udah buat seperti dscript di atas. tapi ndak isa reply. setiap habis terima sms. bisa kebaca tapi pas ngirim balik tidak ada pesen error atau apa. kesalahannya dimana ya mas. terima kasih

Fangky Suwito
Guest

selamat pagi mas. gini mas sy mau bertanya di buku “membuat sms gateway dengan delphi 7” ada dibahas tentang sms autoreply cek nomor STNK. dalam materi tersebut dibahas hanya untuk satu eksekusi dengan mengirim format no STNK. nah jika sy menambahkan format registrasi pelanggan. nah di bagian memochange di sisipkan koding untuk format No STNK. untuk format Reg pelanggan disisipkan dimana mas? karna klo untuk format No STNK hanya 1 kali eksekusi. sy sdh buatkan koding untuk regis pelanggannya. mohon pencerahannya mas. Terima Kasih.

rizkiana
Guest

mas tanya, saya kan membuat sms autoreplay dan sms kurangi stok dalam satu form gimana caranya agar saya bisa mengakses dua-duanya soalnya bisanya cuma 1 proses.
contoh : saya kirim SMS ke modem format (Jual#KD001#10) terus aku parse ke edit dan terus simpan untuk update stok. terus saya kirim SMS lagi dengan format (KD001) baut ngecek stok. biar semuanya jalan source code nya gimana mas. apa dikasih kondisi IF then else.?

Alief
Guest

mohon maaf mas, mau tanya lagi
1. 1 comport digunakan untuk beberapa proses dan berbeda form bisa enggax mas?
2. maksud dari ComPort1.WriteStr(‘at+cnmi=1,1,2,1,0’+#13) ; ComPort1.WriteStr(‘at+cnmi=1,1,0,0,0’+#13#10); mas.?

alief mukti
Guest

mas, kenapa ya kok kadang2 bisa di parse smsnya dan kadang2 enggax bisa di parse sms nya.? kesalahan nya dimana ya mas. .

rizkiana
Guest

padahal di dalam database ada datanya mas, tapi pas mau ngirim auto reply eror di bagian itu terus. . solusinya apa ya mas.?
tapi pas WHERE tb_barang.kode_barang=’+QuotedStr(sEdit1.Text); diganti WHERE tb_barang.kode_barang=”‘+isi+'”‘; bisa autoreply mas. . gimana ya mas solusinya.? tinggal ini aja mas yang belum bisa-bisa. .

Muhammad Mukhrodi
Guest

mas itu kok nmr hp nya nggak berubah jadi nama pengirim cara ngubahnya gimana itu mas?

error: Content is protected !!