--Selamat Berkunjung. Jika Ingin Mendapatkan Update Artikel Dari Fisika-Koe, Klik Button Follow Disebelah Kanan--

Jumat, 23 November 2012

Penyimpanan SMS ke Database MySql



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’.

KomponenTab Comp PalletePropertiesNilai
Button1StandardcaptionSetting
Buton2StandardcaptionOpen COM
Button3StandardcaptionOpen db
ZConnection1Zeos AccessDatabasecontohsms
HostNamelocalhost
ProtocolMysql-5
Userroot
Connectedtrue
ZQuery1Zeos AccessConnectionZConnection1
SQLSelect * from inbox
DataSource1Data AccessDatasetZQuery1
dbGrid1Data ControlsDataSourceDataSource1
dbNavigator1Data ControlsDataSourceDataSource1
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer); 
var
Str: String;
begin
memo1.clear;
ComPort1.ReadStr(Str, Count);
Memo1.Text := Memo1.Text + Str;
end;
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;
procedure TForm1.Button3Click(Sender: TObject); 
begin
zquery1.Open;
end;
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;




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
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.
Dan isikan baris program berikut di tombol dengan tulisan ‘Setting’ dan ‘Open COM’

Untuk membuka koneksi dengan database Anda harus menuliskan baris program berikut di tombol ‘Open db’
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.
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

sumber:http://saptaji.com

Tidak ada komentar:

Posting Komentar