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

Cara Mengirim SMS dengan Delphi

Untuk mengirim SMS menggunakan bahasa pemrograman Delphi, modem Anda harus support AT command. Instal dulu software / driver bawaan modem (biasanya auto install) dan pastikan driver modem tersebut menciptakan COM port (serial port) virtual. Untuk melihat virtual port yang tercipta, silahkan lihat di device manager. Jika Anda menggunakan Windows XP maka menunya adalah sebagai berikut : Start | My Computer (klik kanan) | Manage | Device Manager | Port (COM & LPT). Nah di sana akan muncul port-port (serial atau parallel) yang sedang attach di computer Anda. Untuk mengirim SMS lewat modem, gunakan COM Port yang ada tulisannya ‘NMEA’ – nya (contoh di laptop saya adalah COM 33.

Langkah kedua adalah menginstal komponen Delphi ‘CPort’ (bisa Anda baca tutorialnya dan download di tulisan saya sebelumnya).  Setelah  berhasil menginstal komponen CPort, Delphi kini telah siap untuk mengirim SMS. Saya anggap Anda sudah bisa menggunakan IDE (Integrated Development Environment) Delphi, sudah bisa ‘menarik’ komponen ke form Delphi, meng’compile’ dan me-‘run’ program. Jika belum familiar dengan Delphi, Anda bisa googling dulu di internet dan mencari tutorialnya.

Program Sederhana Kirim SMS

Buat satu project dan simpan dengan nama sesuai keinginan Anda. Misal ‘SMSkirim.dpr’. Klik komponen ComPort1 di tab component pallete  ‘CPortLib’, ke dalam form kerja. Setelah itu ‘tarik’ komponen kotak edit 2 buah, komponen ‘label’ 2 buah dan ‘button’ 3 buah, atur seperti contoh pada gambar di bawah.

Double click tombol dengan tulisan ‘Setting modem’ dan isikan baris program sebagai berikut :

procedure TForm1.Button2Click(Sender: TObject);

begin

comport1.ShowSetupDialog;  // isi ini aja

end;

Maksud dari baris program comport1.ShowSetupDialog; adalah untuk menampilkan kotak setup dialog, hingga Anda bisa mengatur konfigurasi modem secara run time (nomor COM port, baud rate, bit parity, star/stop bit dll). Tekan tombol F9 untuk menjalankan (Run) program dan coba klik tombol ‘Setting modem’, maka akan muncul kotak dialog untuk mengatur settingan modem.  Kemudian atur supaya Port berisi COM port modem (contoh dalam laptop saya adalah COM33), dan klik tombol ‘OK’. Untuk settingan yang lain gunakan settingan default saja.

Setelah selesai melakukan konfigurasi, modem masih harus diinisialisasi dan ‘dibuka’ koneksinya melalui COM port virtual. Untuk melakukannya klik ganda pada tombol ‘Open’ dan isikan baris program sebagai berikut:

procedure TForm1.Button3Click(Sender: TObject);

begin

if ComPort1.Connected then

begin

ComPort1.Close;

button3.Caption:=’Open’;

end

else

begin

ComPort1.Open;

button3.Caption:=’Close’;

ComPort1.WriteStr(‘at+cmgf=1’+#13#10);

ComPort1.WriteStr(‘at+cscs=”GSM”‘+#13#10);

end;

end;

Untuk membuka atau menutup koneksi dengan modem dapat digunakan perintah ComPort1.Open; atau ComPort1.Close; . Sedangkan untuk menginisialisasi modem untuk keperluan SMS adalah baris perintah

ComPort1.WriteStr(‘at+cmgf=1’+#13#10);

ComPort1.WriteStr(‘at+cscs=”GSM”‘+#13#10);

Perintah  ComPort1.WriteStr(‘at+cmgf=1’+#13#10); adalah untuk mengirim AT command ‘AT+CMGF=1’ ke modem. Arti perintah ini adalah untuk mengeset modem agar berada di mode teks, jadi proses kirim (dan terima) SMS akan berlangsung dalam mode teks (semua karakter akan berbentuk karakter ASCII alfanumerik  dan kita juga bisa membacanya). Berbeda jika jika ‘AT+CMGF=0’, jika kita memberikan command ini, maka modem akan berada di mode PDU (Packet Data Unit), sehingga semua karakter SMS harus dikirim menggunakan format PDU (dalam bentuk angka dan harus mengikuti format PDU).  Saya sendiri lebih menyukai mode teks karena selain lebih mudah pemrogramannya juga lebih mudah men-trace program jika terjadi crash.

Sedangkan perintah ComPort1.WriteStr(‘at+cscs=”GSM”‘+#13#10); adalah untuk memerintahkan modem agar menggunakan karakter set ‘GSM’, yakni karakter alfanumerik standar seperti yang kita gunakan sehari – hari. Pada beberapa modem karakter set ‘GSM’ sudah merupakan settingan default.  Oya, pastikan agar software bawaan modem Anda matikan dulu supaya tidak terjadi konflik saat mengakses COM Port modem.

Langkah terakhir dan inti dari program sederhana ini adalah mengisikan baris program sebagai berikut ke tombol ‘Send SMS’. Klik ganda tombolnya dan isikan beberapa baris program berikut:

procedure TForm1.Button1Click(Sender: TObject);

begin

ComPort1.WriteStr(‘at+cmgs=”‘+edit2.text+'”‘+#13#10);

ComPort1.WriteStr(edit1.text);

ComPort1.WriteStr(#26);

end;

Maksud dari baris program di atas adalah sebagai berikut :

ComPort1.WriteStr(‘at+cmgs=”‘+edit2.text+'”‘+#13#10);  -> mengambil data nomor handphone tujuan di kotak edit2 dan mengirimnya ke modem melalui perintah ‘AT+CMGS=”no tujuan” ‘. Karakter ‘#13#10’ adalah kode ASCII untuk tombol ‘Enter’ (CR LF). Jadi seakan – akan Anda melakukan penenkan tombol enter secara otomatis di sini.

ComPort1.WriteStr(edit1.text); -> menuliskan isi SMS dan mengirimnya ke modem

ComPort1.WriteStr(#26); -> mengirim karakter ASCII untuk CTRL-Z ke modem sebagai penanda berakhirnya penulisan isi SMS.

Silahkan Anda ‘RUN’ program yang telah Anda buat tadi, kemudian coba untuk mengirim SMS setelah melakukan konfigurasi dan inisialisasi modem. Jika butuh bantuan Anda dapat menghubungi saya di YM: ajiew atau email ajie@saptaji.com

Bersambung ke tulisan berikutnya : Cara Menerima SMS dengan Delphi

Incoming search terms:

sms delphi, program kirim sms dengan delphi, listing ascii tombol tabe delphi, cara melakukan penyusunan modem vodafone di laptop untuk mengirim sms, sms long sms di delphi, cara mengirim sms dengan delphi, at cmgf delphi, proses pengiriman sms dengan delphi 7, Cara buat Sms broadcast di delphi 7, membuat sms broadcast dengan delphi

Leave a Reply

160 Comments on "Cara Mengirim SMS dengan Delphi"

avatar
  Subscribe  
newest oldest most voted
Notify of
Rosy Indra P.
Guest

bagi pengunjung lain yang mencoba aplikasi ini mohon untuk diperiksa setting bauderate modem anda dan pastikan modem tidak terhubung dengan program terminal lain seperti hyperterminal, teraterm dll bsa crash komunikasix.
mkasi buat pak ajie atas artikel dan ilmunya dYM.

rizal
Guest

mas ajie salam kenal..
artikelnya siiiippp banget, bermanfaat buat saya yg msh newbi
terus berkarya dan sukses selalu mas…

henix
Guest

mas… component CPORT sama source code nya gak bisa di donlod tuh,,,
boleh donk mas kasi link nya,,, soalnya tulisan “DISINI” nya gak ti hypelink mas, hehehe…
btw, thanks ya mas ajie…

Dani
Guest

Gan, Mohon di posting mengenai AT Command untuk USSD, saya merasa kesulitan membuat program pake delphi untuk mengecek pulsa simpati. misalnya saya masukkan at+CUSD=1,”*888#” OK dan tidak keluar hasilnya… kan seharusnya keluar berapa sisa pulsa yang ada. mohon pencerahannya… Thx

dedi
Guest

mas mau bertannya..tentang cara menggunakan komponen TComport..pada delphi..
saya akan mengrim data berupa bit..melalui USB to serial yang terhubung ke beberapa IC baru masuk ke relay…nantinya Data bit yang dikirm dari komputer menggunakan program sederhanan..data bit tersebut akan memutuskan Relay tersebut..kiranya dapat membantu saya atau coding untuk cara menggunakan Tcomport mengrim data dan menerima data…help ya mas

Borist
Guest

mas Adjie mau tanya kenapa setiap saya coba kirim sms ke beberapa nomor hape, pasti ada beberapa yang tidak terkirim, kalau hanya 1-1 sieh bisa mas ?

Mohon tuntunannya

ikodeh
Guest

dalam interface diatas anda memakai modem apa? apakah modem huawei e173 support untuk atcommand mengirim sms? trims

Tyo
Guest

articlenya bagus bget mas, T.O.P dah. clo article comport untuk menyalakan dan mematikan led memakai paralel port ada gak mas? makasih ya mas atas share ilmunya, smoga yang kuasa membalas kabaikan mas.

joy
Guest

saya coba iktin artikel yang diatas untuk kirim sms kok ngak bisa ya. saat saya tekan send seperti ngak ada respon, saya pakai mode e1153

imin
Guest

Artikelnya mantappppp…kalau ingin yang auto reply gimana mas???

bang dayat
Guest

makasih ya mas atas penjelasannya….sangat bermanfaat..

jay
Guest

mas,sya udh ikutin semua perintah di atas tapi ketika di klik send,hasilnya tidak terkirim ke no tujuan, ,
apa modemnya tidak support,karena di ports nya hanya ada 3g wireless-application interface (com13),3g wireless-diagnotic interface (com14), 3g wireless-PC UI interface (com15) tidak ada com port yang tulisannya NMEA. .
sya menggunakan modem advan dt-8. .
mohon pencerahannya. .
terima kasih mas. .

UDE
Guest

Mas Aji, begitu kirim SMS karena karakternya banyak jadi error bagaimana mengatasinya ? mohon pencerahan & terima kasih sebelum nya…..

UDE
Guest

Error nya ada yaitu 305 (Parameter Mode Teks invalid), tapi cara memperbaikinya blm tahu…..mohon bantuannya,terima kasih sebelumnya.

rajib
Guest

Alhamdulillah mas ajie,,sya coba tidak ada error,.tpi kq sms tidak terkirim z??
pa d modemnya itu untuk settingnya disesuaikan dengan sim card nya?masalahnya untuk modem yg sy pakai ini telkom flash tipe SU-8600U, dan settingan untuk sim card nya masih manual ..
terima kasih,

UDE
Guest

Mas Ajie, bagaimana kalau mau membuat flag di database untuk sms yang gagal atau sukses terkirim. Trim’s

rajib
Guest

mas ajie ….tandanya terkirim dan tidak nya sms ada tidak?
ni saya sudah mencoba 2 kali pakai 2 sim card yang berbeda koq tetep tidak bisa terkirim .
pa modemnya harus diconectkan dulu dengan internet?

rajib
Guest

mas ajie..ni tanda terkirim dan tidaknya sms gimna?saya sudah coba dan tidak ada error,tapi sms nya kq tidak terkirim ke nmor tujuan z…apa masalahnya mas?

warsito
Guest

makasih bos artikelnya

Kurniawan
Guest

Maaf mas ajie, mau nanya…, apa sistem kirim sms nya bisa dibuat kirim otomatis tdk mas? dan jika bisa bagian dari coding mas diatas yg mana yg harus d rubah atau ditambah mas? 🙂

Hildan
Guest

makasih buat tutornya akan saya coba

Andre
Guest

Kalau mau kirim sms lebih dari 160 karakter selain kita potong manual apakah bisa langsung dari cport nya? (maksud nya apakah ada event nya untuk itu?)

budi
Guest
wieh … sip mas udah berhasil ngirim smsnya cuma koq mesti harus 2 percobaan tekan tombol sendnya ya apa emang seperti itu ato sy salah ngetik codingnya ya? ini codung yg sy ketik procedure TForm1.BtOpenClick(Sender: TObject); begin if ComPort1.Connected then begin ComPort1.Close; BtOpen.Caption:=’Open’; end else begin ComPort1.Open; BtOpen.Caption:=’Close’; ComPort1.WriteStr(‘at+cmgf=1’+#13#10); ComPort1.WriteStr(‘at+cscs=”GSM”‘+#13#10); end; end; procedure TForm1.BtSendClick(Sender: TObject); begin try begin ComPort1.WriteStr(‘at+cmgs=”‘+edit1.text+'”‘+#13#10); ComPort1.WriteStr(memo1.text); ComPort1.WriteStr(#26); end; finally memo2.Lines.Add(‘send sms’); end; end;
budi
Guest

oya mas bisa tidak tulisan yg terkirim ke no tujuannya itu hanya messagenya aja, bisa tidak mas? jadi tulisan at+cmgs=”no tujuan” ga usah ikut terkirim di layar pesan no tujuannya….

budi
Guest

mas kenapa waktu kirim sms ada sms yang isi pesannya kosong dilayar hp penerima? sy buat debug di event OnRxChar yg menyimpan setiap interaksi cport ke memo
nah kalo liat tanda2 dari log memonya, isi teksnya yang berhasil ke kirim (muncul di layar hp penerima) itu muncul tanda > setelah tombol send di tekan
tolong dong beritahu bagaimana caranya supaya waktu pengiriman sms isi teks selalu terkirim ( tidak kosong ) dan lebih stabil ( muncul tanda > setelah tombol send ditekan. plz ya

mahasiswa
Guest

sudah ku coba pak, tapi gak berhasil, di Run bisa tapi SMS nya gak nyampe nyampe. boleh tw knapa ya pak?
apa kerana modemnya CDMA ya?
tapi dah kucoba ganti GSM jadi CDMA

ComPort1.WriteStr(‘at+cscs=”GSM”‘+#13#10);

ComPort1.WriteStr(‘at+cscs=”CDMA”‘+#13#10);

nafi
Guest

mas, kalo misalnya pas kirim sms itu di kasih filter kalo sms gagal terkirim akan muncul message dialog gimana ya caranya?

Idris
Guest

mas, boleh gak saya minta komponen comport nya, soalnya link yang mas kasih udah expired,

mohon dibalas mas 🙂

Dhiasa Janwar
Guest

Mas,
Aku baca buku mas Ajie ttg SMS Gateway Delphi, dan kalo mas masih inget duluuuuuu kita pernah bahas ttg baca sms panjang via whatsapp. saya dah coba tapi gagal mas, bisa tolongin saya mas??? soale di buku mas ajie tsb cuma ada kirim smsnya, nggak dibahas masalah baca smsnya

edo
Guest

mas aji, saya install componen Cport dan berhasil, tapi setelah saya coba ternyata di run error, ini mas command error nya, [Fatal Error] Unit1.pas(7): File not found: ‘CPort.dcu’, mohon pencerahanya mas. thnks

ivan
Guest

mas, link cport sudah tiada,,
bisa tolong untuk uploadkan ulang ?
terima kasih

artikelnya sangat membantu saya
terima kasih banyak

Rul
Guest

Mas mau tanya neh…, kalau kita membuat aplikasi sms menggunakan delphi apa bisa “Masking ID Sender”…? Kalau pun bisa ada nggak komponennya..? atau ada AT-Command khusus untuk itu..? mohon penjelasannya. Terima Kasih.

Dian
Guest

Kalo membuat tanda bahwa modem sudah terkoneksi?? ya.. seperti membuat status connected atau seperti tanda signal, atau tanda kedipan agar meyakinkan kita bahwa modem tersebut sudah terhubung ke operator, caranya gimana ya…??

ryann
Guest

mas..gmn kalo kirim sms broadcast?

ali
Guest

mas sy mau nanya,kenapa waktu saya coba send terjadi error mas (‘Port Not open’),padahal setting port.x udah bener mas…

NB :modem yg sy pake tuh vodafone type K3715, trus OS. Win 8…

apa nggak compatible yah mas delphi7 ma win.8?
mohon pencerahan.x mas…

terima kasih

mahafikri
Guest

mas, kalau mau ngirim long message gmn?
soalnya kalau lebih dari 160 karakter itu tidak bisa.

Andrian
Guest

Mas ajie mw tanya..
gmn coding untuk menfilter sms supaya kalau sms yang dikirim oleh member tidak sesuai dengan isi dari tabel “nopol” tidak tersimpan ke tabel inbox….

tolong pencerahannya….

fani
Guest

mas aji gimana cara kalau kita mw memfilter salah satu filed dari tebel???saya coba pakai script ” if zquery2.recordcount=1 then” tapi malah memfilter seluruh filed yang ada dalam tabel??? mohon pencerahannya….trimakasih

irvan
Guest

mas kalo untuk mengirim secara broadcast sourcodenya gimana ya mas

supriono
Guest

mas source code untuk pengiriman pesan tanpa menginput tanda titik atau koma, setelah sms masuk kepeda penerima sudah ada tanda titik atau koma tersebut? contoh mengetik “tadi” di edit1, mengetik lagi “siang” di edit2, pada saat si penerima menerima sms “tadi.siang” mhon bantuanya,

Johnf878
Guest

It is actually a nice and helpful piece of information. I am happy that you simply shared this helpful information with us. Please stay us informed like this. Thank you for sharing. bdbacdkgfeca

farid
Guest

kang mau tanyak, boleh ngak?? boleh ya.. pliss…. 😀

kan aku dah ngikutin cara diatas, waktu tak klik send sms.a… kok kagak masuk sms.a ya kang?? padahal hp juga ada disebelah modem… aku coba diatas modem juga tetep kgak bisa… :p

pa ada kang script yang buat semacam message box low sms.a terkirim gitu kang?? low ada mohon tuturnya kang…

untuk setting modem.a pa cuman gitu aja kang??
low aku lihat yang make gammu kan kayak di identifikasi dulu gamu.a konek gak ma modem.a…

low yang make comport kyak gini gimana ya kang?? mohon pencerahannya suhu…

bryan
Guest

tanya lagi dong mas.
kalau 1 modem dibuat kirim + nerima yang aman gmn ya ?
soalnya kalau indikator sms dinyalain pas sms masuk dan modem lg proses sms keluar kan error.
belum lg kena hapus pesan tiap ada sms masuk.

sementara sih saya akalin pakai timer.
ada cara yg lebih cepet ?

idan
Guest

Bang bisa bantu ane bikin progam SMS gateway memakai delphi… sudah pusing ni bang error terus hasilnya….

Fauzi
Guest

Mas ajie..bagaimana tips agar sms broadcast/massal bisa sampai semua ke penerima..saya pakai cport dan delphi..maksimal 1x klik untuk brp nomor hp?apa ada batasan atau terserah? dan apa bisa sambil kirim juga terima informasi status terkirim ke nomor massalnya itu..sebelumnya trims…

ramundro
Guest

om…
nasib saya kayak kebanyakan temen-temen di atas,
ga ada error, termasuk pas send,
tapi ga ada sms yang masuk di HP,

saya yakin semua nya sudah sesuai,
soalnya saya coba di hyperterminal, itu sms kekirim,
dengan setingan yang sama,
tapi pas dipake di delphi,
entah kenapa ga kekirim,

mohon pencerahannya,

Nindyo
Guest

dobel post gag ya….biasa, inet lemot …

pak saya sudah bikin program kirim sms utk sekolah, berhasil dengan baik
Tapi kalo kode kirim sms saya masukkan ke looping utk dikirim ke semua siswa 1 kelas tidak terkirim.
Bagaimana cara cek kalo proses kirim pertama selesai, sblm kirim sms berikutnya ?
Atau haruskah pake timer ? atau ada event dari Comport yang bisa dimonitor ?

Mohon pencerahannya pak. terima kasih.

fauzi
Guest

Pak kalo misal mau dikirim ke banyak nomor langsung itu gimana yah..?
terima kasih..

fauzi
Guest

writefile function failed (win error code:6)
itu kenapa ya pak. padahal portnya sudah saya ganti.. posisi modemnyapun sudah saya pindah.. tapi tetap muncul.. mohon bimbingannya Pak..
terimakasih..

tias syawala putra
Guest

gan izin tanya lagi, ane saat waktu ngirim ada bacaan error ” project.exe raised exception EcomPort with message’port not open’. process stoppep. use step or run to contiune”.. itu kenapa ya gan?

tias syawala putra
Guest

dan satu lagi mas waktu klik send. kenapa sms nya ga masuk ya?

error: Content is protected !!