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

Menyimpan SMS ke Database MySQL dengan Delphi (bagian 2)

Untuk dapat menyimpan SMS ke dalam database MySQL -seperti halnya gammu- ada beberapa persiapan yang harus dilakukan, yakni menginstal komponen ZEOS dan database MySQL itu sendiri. Untuk lebih jelasnya bisa Anda baca di artikel saya sebelumnya.

Berikut ini adalah program sederhana yang berfungsi untuk menyimpan data SMS begitu ada SMS masuk. Data yang disimpan meliputi status SMS (dibaca/belum), nomor pengirim, tanggal dan waktu diterimanya SMS, dan isi SMS. Semuanya akan disimpan dalam tabel ‘inbox’ di database MySQL dengan nama ‘contohsms’.

Sebelum memulai programming dengan Delphi, Anda harus meng-create sebuah database dan tabel terlebih dahulu. Caranya : buka XAMPP Control Panel, dan aktifkan Apache dan MySql-nya. Setelah itu, buka web browser dan ketikkan alamat localhost/phpmyadmin. Setelah itu akan muncul web admin pengelolaan database MySQL.  Kemudian create sebuah database baru dengan nama ‘contohsms’ dan tekan tombol ‘Create’

create database mysql

Dalam database ‘contohsms’ inilah kita akan meletakkan sebuah tabel yang berisi data-data SMS yang masuk. Untuk itu, buatlah sebuah tabel dengan nama ‘inbox’ dengan cara seperti gambar di bawah

create tabel

Isikan  ‘Number of fields’ dengan angka ‘5’. Angka ini menunjukkan kolom (field) dari tabel ‘inbox’. Kemudian tekan tombol ‘Save’ yang ada di bawah, untuk menciptakan sebuah tabel baru. Langkah berikutnya adalah men-define masing-masing field dengan settingan sebgai berikut :

define field

Jadi inti dari settingan di atas adalah akan tercipta sebuah tabel ‘inbox’ yang memiliki 5 kolom/field yang nantinya akan berisi data status SMS, nomor pengirim SMS, tanggal dan waktu diterimanya SMS dan isi SMS itu sendiri.

Setelah selesai menciptakan database dan tabel untuk menyimpan data SMS, barulah dilanjutkan dengan programming Delphi. Untuk itu buatlah sebuah form baru dan atur komponen-komponen yang diperlukan sebagai berikut:

design form

Komponen-komponen yang dibutuhkan adalah memo, button (3 buah), dbnavigator, dbgrid (ada di tab Data Controls), ComPort, ZConnection, ZQuery (tab Zeos Access) dan DataSource (tab Data Access). Berikut adalah property masing-masing komponen yang harus diset di awal agar program berjalan dengan baik

Komponen Tab Comp Pallete Properties Nilai
Button1 Standard caption Setting
Buton2 Standard caption Open COM
Button3 Standard caption Open db
ZConnection1 Zeos Access Database contohsms
HostName localhost
Protocol Mysql-5
User root
Connected true
ZQuery1 Zeos Access Connection ZConnection1
SQL Select * from inbox
DataSource1 Data Access Dataset ZQuery1
dbGrid1 Data Controls DataSource DataSource1
dbNavigator1 Data Controls DataSource DataSource1

Jadi untuk melakukan koneksi dengan database MySQL setidaknya dibutuhkan tiga komponen utama yakni ZConnection, ZQuery dan DataSource. ZConnection berfungsi untuk menghubungkan Delphi dengan database ‘luar’ yakni MySQL, ZQuery berfungsi untuk melakukan pengolah data tabel melalui perintah query SQL setelah database terhubung, dan DataSource merupakan penghubung interface database Delphi seperti dbGrid/dBNavigator.

Setelah Anda atur tata letak dan property komponen seperti pada gambar di atas, programming Delphi sudah dapat dilakukan. Seperti biasa, isikan baris program berikut untuk handling SMS yang masuk di event OnRxChar milik komponen ComPort1.

procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer); 

var

Str: String;

begin

memo1.clear;

ComPort1.ReadStr(Str, Count);

Memo1.Text := Memo1.Text + Str;

end;

Dan isikan baris program berikut di tombol dengan tulisan ‘Setting’ dan ‘Open COM’

procedure TForm1.Button1Click(Sender: TObject); 

begin

comport1.ShowSetupDialog;

end;

 

procedure TForm1.Button2Click(Sender: TObject); 

begin

if ComPort1.Connected then

begin

ComPort1.Close;

button2.Caption:=’Open’;

end

else

begin

ComPort1.Open;

button2.Caption:=’Close’;

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

ComPort1.WriteStr(‘at+cpms=”SM”‘+#13#10);

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

end;

end;

Untuk membuka koneksi dengan database Anda harus menuliskan baris program berikut di tombol ‘Open db’

procedure TForm1.Button3Click(Sender: TObject); 

begin

zquery1.Open;

end;

Sampai dengan langkah di atas Anda sudah berhasil membuat program yang mampu melakukan handling SMS masuk dan melakukan koneksi dengan database MySQL. Agar SMS masuk langsung mengisi tabel ‘inbox’ sesuai kolom masing-masing, maka Anda perlu mengisikan baris program berikut di event OnChange milik komponen Memo1.

procedure TForm1.Memo1Change(Sender: TObject); 

var a,b,c,d:integer;

kar_awal,kar_akhir:integer;

s:string;

begin

a:=pos (‘+CMTI’,memo1.Text);

if  a <> 0 then

begin

b:=posex (‘,’,memo1.Text,a+1);

c:=posex (#13#10,memo1.Text,b+1);

s:=copy (memo1.Text,b+1,c-b-1);

ComPort1.WriteStr(‘at+cmgr=’+s+#13#10);

end;

 

d:=pos (‘+CMGR’,memo1.Text);

if  d <> 0 then

begin

zquery1.insert;

kar_awal:=pos (‘”‘,memo1.Text);

kar_akhir:=posex (‘”‘,memo1.Text,kar_awal+1);

zquery1.FieldValues[‘status’]:=copy(memo1.Text,kar_awal+1,kar_akhir-kar_awal-1);

 

kar_awal:=posex (‘”‘,memo1.Text,kar_akhir+1);

kar_akhir:=posex (‘”‘,memo1.Text,kar_awal+1);

zquery1.FieldValues[‘sender’]:=copy(memo1.Text,kar_awal+1,kar_akhir-kar_awal-1);

 

kar_awal:=posex (‘”‘,memo1.Text,kar_akhir+1);

kar_akhir:=posex (‘,’,memo1.Text,kar_awal+1);

zquery1.FieldValues[‘tanggal’]:=copy(memo1.Text,kar_awal+1,kar_akhir-kar_awal-1);

 

kar_awal:=kar_akhir;

kar_akhir:=posex (‘”‘,memo1.Text,kar_awal+1);

zquery1.FieldValues[‘waktu’]:=copy(memo1.Text,kar_awal+1,kar_akhir-kar_awal-1);

 

kar_awal:=posex (#13#10,memo1.Text,kar_akhir+1);

kar_akhir:=posex (#13#10,memo1.Text,kar_awal+1);

zquery1.FieldValues[‘isi’]:=copy(memo1.Text,kar_awal+1,kar_akhir-kar_awal-1);

 

zquery1.Post;

end;

end;

 

Baris program dalam event OnChange Memo inilah sebenarnya program utama dari program menyimpan SMS ke MySQL ini. Jadi inti dari baris program di atas adalah melakukan pembacaan SMS begitu ada indikasi SMS masuk (mendeteksi karakter +CMTI sebagai indikator SMS masuk) dan memasukkan data-data SMS (status SMS, nomor pengirim, tanggal, waktu dan isi SMS) ke dalam database MySQL. Oh ya, Anda harus menambahkan unit StrUtils, karena function ‘posex’ berada di unit ini. Selamat mencoba ya, semoga bermanfaat bagi Anda. Jika ada pertanyaan bisa ditujukan email atau YM saya. Happy programming…..

Hasil program

bersambung

Incoming search terms:

cara menyimpan sms ke dalam memo di hp, apakah sms masuk dlm memo, simpan sms masuk ke database di delphi, simpan sms ke database mysql, prosedure menyimpan sms dari handphone ke database mysql, prosedur penyimpanan sms yang di kirim dari handphone ke dalam database mysql, parsing isi sms pengirim arduino, menyimpan sms ke dalam database mysql, menyimpan data isi memo ke zquery pada delphi, download prosedure text langsung di simpan di memo
69 Comments

Add a Comment

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

error: Content is protected !!