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

133 Comments

Add a Comment

Your email address will not be published. Required fields are marked *