• Tidak ada hasil yang ditemukan

MEMBANGUN APLIKASI SMS GATEWAY DENGAN DELPHI 7, MYSQL DAN GAMMU

N/A
N/A
Protected

Academic year: 2021

Membagikan "MEMBANGUN APLIKASI SMS GATEWAY DENGAN DELPHI 7, MYSQL DAN GAMMU"

Copied!
17
0
0

Teks penuh

(1)

MEMBANGUN APLIKASI SMS

GATEWAY DENGAN DELPHI 7, MYSQL

DAN GAMMU

OLEH : KUWAT SANTOSO, S.Kom dan MOH. ALI ALJAUHARI, S.Kom 1/2/2012

Modul ini berisi tentang tata cara pembuatan aplikasi sms gateway menggunakan Borland Delphi 7 serta pembuatan databasenya menggunakan MySQL, walaupun pada modul ini Delphi yang dipakai versi 7, tapi tidak jauh berbeda caranya ketika kita mempraktikan pada Delphi versi 5, 6 atau pada Delphi versi lebih tinggi. Akhir kata semoga dapat bermanfaat dan jangan pernah bosan untuk belajar!

(2)

1.

Pendahuluan

- SMS Gateway : merupakan komunikasi dua arah, mengirim dan menerima, digunakan untuk SMS keyword, polling, ataupun informasi lainnya.

2.

Software Yang Harus Di Persiapkan

- MySQL versi 5, dapat diinstall dengan paket software XAMPP (Apache MySQL PHP

Perl) disarankan versi 1.7.2 ke atas, atau bisa anda diinstall memakai paket software yang lain seperti AppServ , PHPTriad, ataupun WAMP.

- Borland Delphi 7 atau versi lebih tinggi (Sebagai Program Aplikasi)

- Gammu : Tools aplikasi sms gateway, dapat di unduh di www.wammu.eu . Gammu

yang dipakai pada modul ini adalah versi: Gammu 1.29.92

- Zeoslib: seperangkat komponen database untuk

MySQL, PostgreSQL,Interbase, Firebird, MS SQL, Sybase, Oracle dan SQLite untuk Delphi, FreePascal/Lazarus, Kylix dan C Builder. Dapat di unduh di http://zeos.firmos.at

3.

Konfigurasi Gammu

- Spesifikasi Gammu dan Modem Yang Dipakai

Versi Gammu: Gammu 1.29.92

Modem: Modem SMS Gateway “Wavecom”

- Konfigurasi Gammu

- Copykan file gammurc & smsdrc dari:

C:\Program Files\Gammu 1.29.92\share\doc\gammu\ examples\config Ke: C:\Program Files\gammu\bin\

- Dengan menggunakan notepad,atur file gammurc yang ada pada :

C:\Program Files\gammu\bin\gammurc device = com23:

connection = at115200

- Dengan menggunakan notepad,atur file smsdrc yang ada pada :

C:\Program Files\gammu\bin\smsdrc device = com23: connection = at115200 Service=MYSQL user = root password = pc = localhost database = sms

(3)

- Langkah selanjutnya, untuk mengecek bahwa gammu dan modem wavecom sudah jalan, coba buka cmd (command prompt)

- Kemudian masuk ke:

- Tes Kirim SMS

- Menjalankan Service Gammu

Langkah selanjutnya, setelah service gammu aktif, coba uji dengan mengirim sms ke nomor yang telah dimasukan di modem dengan format yang telah disetting pada trigger yang dibuat.

4.

Pembuatan Database sms di MySQL

- Buka database MySQL melalui phpMyAdmin ataupun melalui tools GUI MySQL

lainnya, kemudian buatlah database sms : create database sms;

- Untuk pembuatan tabel-tabelnya kita tidak akan merancang dari awal karena akan mengimport dari file mysql.sql bawaan dari installasi gammu. Kalau gammu nya kita install di C biasanya secara default ada di :

(4)

- Setelah kita import, hasilnya akan ada 9 buah tabel yang tercipta seperti gambar berikut:

- Keterangan:

- Tabel inbox: untuk menampung data sms yang masuk, detailnya sbb:

- Tabel outbox: untuk menampung data kirim pesan, detailnnya sbb:

(5)

- Tabel pbk_groups: untuk menampung data grup phonebook, detailnya sbb:

- Tabel pbk : untuk menampung data phonebook, detailnya sbb:

5.

Membuat Program Aplikasi SMS Dengan Delphi 7

- Buka Delphi 7 dari Start Menu>All Programs>Borland Delphi 7>Delphi 7, sehingga akan nampak seperti gambar berikut :

A. Untuk tahap pertama kita buat dulu form inbox (Finbox/Uinbox.pas), persiapkan komponen berikut pada form anda :

(6)

No. Komponen Properti Nilai 1. Form Name Caption Finbox .:: PESAN MASUK ::. 2. ZConnection1

Dari component palete “ZeosAccess” Hostname User Password Protocol Port Database Connected localhost root sesuaikan! Mysql 3306 Sms True Keterangan:

Jika pada saat connected-nya di true kan muncul pesan error: library...

copy file dari

C:\xampp\mysql\bin\libmysql.dll kemudian paste di

c:/windows

3. ZQuery1

Dari component palete “ZeosAccess” Connection SQL Active ZConnection1 SELECT ReceivingDateTime,SenderNumber, TextDecoded FROM inbox

True

4. Datasource1

Dari component palete “Data Access” Dataset Enabled ZQuery1 True 5. DBGrid1

Dari component palete “DataControls”

Datasource Datasource1

6. DBMemo1

Dari component palete “DataControls”

Datasource DataField

Datasource1 TextDecoded

7. Button1 Caption &Tampilkan

8. Button2 Caption &Close

- Berikut tampilan form inbox yang akan dibuat :

- Double klik pada button TAMPILKAN, lalu ketikan skrip dibawah ini :

procedure TFinbox.Button1Click(Sender: TObject); begin

(7)

begin Close; SQL.Clear;

SQL.Text := 'SELECT ReceivingDateTime,

SenderNumber, TextDecoded FROM inbox'; Open;

end; end;

- Double klik pada button CLOSE, lalu ketikan skrip dibawah ini :

procedure TFinbox.Button2Click(Sender: TObject); begin

Close; end;

B. Untuk tahap kedua kita buat form sentitems (Fsent/Usentitems.pas), persiapkan komponen berikut pada form anda :

No. Komponen Properti Nilai

1. Form Name

Caption

Fsent

.:: PESAN TERKIRIM ::.

2. ZConnection1

Dari component palete “ZeosAccess”

Hostname User Password Protocol Port Database Connected localhost root sesuaikan! Mysql 3306 Sms True 3. ZQuery1

Dari component palete “ZeosAccess”

Connection SQL Active ZConnection1 select SendingDateTime, DestinationNumber , TextDecoded from sentitems True 4. Datasource1

Dari component palete “Data Access” Dataset Enabled ZQuery1 True 5. DBGrid1

Dari component palete “DataControls”

Datasource Datasource1

6. DBMemo1

Dari component palete “DataControls” Datasource DataField Datasource1 TextDecoded 7. DBNavigator1

Dari component palete “DataControls”

Datasource Datasource1

8. Button1

Dari component palete “Standard”

Caption &CLOSE

(8)

- Double klik pada button CLOSE, lalu ketikan skrip dibawah ini :

procedure TFsent.Button2Click(Sender: TObject); begin

Close; end;

C. Untuk tahap ketiga kita buat form kirim pesan (Fkirim/Ukirim.pas), persiapkan komponen berikut pada form anda :

No. Komponen Properti Nilai

1. Form Name

Caption

Fkirim

.:: KIRIM PESAN ::.

2. ZConnection1

Dari component palete “ZeosAccess”

Hostname User Password Protocol Port Database Connected localhost root sesuaikan! Mysql 3306 Sms True

3. ZQuery1 (ZeosAccess) Connection

SQL Active ZConnection1 select SendingDateTime, DestinationNumber , TextDecoded from sentitems True

4. Label1 (Standard) Caption Nomor Tujuan

5. Label2 (Standard) Caption Isi Pesan

6. Edit1 (Standard) Text Dikosongkan!

7. Memo1 (Standard)

8. Button1 (Standard) Caption &KIRIM

9. Button2 (Standard) Caption &BATAL

(9)

- Double klik pada bitbutton KIRIM kemudian tuliskan coding dibawah ini:

procedure TFkirim.BitBtn1Click(Sender: TObject); begin ZQuery1.close; ZQuery1.SQL.Clear; ZQuery1.SQL.Text:='insert into outbox(DestinationNumber,TextDecoded) value ("'+ Edit1.Text+'","'+Memo1.Text+'")'; ZQuery1.ExecSQL; edit1.Text:=''; Memo1.Text:=''; ShowMessage('Sms Terkirim!'); end;

- Double klik pada bitbutton Cancel kemudian tuliskan coding dibawah ini:

procedure TFkirim.BitBtn2Click(Sender: TObject); begin

Close; end;

D. Untuk tahap keempat kita buat form phonebook (Fphonebook/Uphonebook.pas), persiapkan komponen berikut pada form anda :

No. Komponen Properti Nilai

1. Form Name

Caption

Fphonebook

.::: PHONEBOOK :::.

2. ZQuery1 (Zeos Access) Connection

SQL

Active

Finbox.ZConnection1 select

p.Number,p.Name,g.Name from pbk p left outer join pbk_groups g

on p.GroupID=g.ID True

3. ZQuery2 (Zeos Access) Connection Finbox.ZConnection1

4. DataSource1 (Data Access) DataSet ZQuery1

5. DataSource2 (Data Access) DataSet ZTable2

6. ZTable1 (Zeos Access) Connection

TableName Active

Finbox.ZConnection Pbk

True

7. ZTable2 (Zeos Access) Connection

TableName Active

Finbox.ZConnection Pbk_groups

True

8. GroupBox1 (Standard) Caption PhoneBook

(10)

No. Komponen Properti Nilai

10. Label1 (Standard) Caption Nama

11. Label2 (Standard) Caption No. HP

12. Label3 (Standard) Caption Group

13. Label4 (Standard) Caption Nama Grup

14. Edit1 (Standard) Text Kosongkan

15. Edit2 (Standard) Text Kosongkan

16. Edit3 (Standard) Text Kosongkan

17. DBComboBox1 (DataControls) DataSource DataSource2

18. Button1 (Standard) Caption &SAVE

19. Button2 (Standard) Caption &ADD

20. BitBtn1 (Additional) Caption &KELUAR

21. DBGrid1 (Data Controls) DataSource DataSource1

22. DBGrid2 (Data Controls) DataSource DataSource2

23. DBNavigator1 (Data Controls) DataSource DataSource1

24. DBNavigator2 (Data Controls) DataSource DataSource2

- Berikut tampilan form phonebook yang akan dibuat :

- Double klik pada button ADD yang ada pada GroupBox2 (GroupPhoneBook) kemudian

tuliskan coding dibawah ini:

procedure TFphonebook.Button2Click(Sender: TObject); begin

ZQuery1.close; ZQuery1.SQL.Clear;

ZQuery1.SQL.Text:='insert into pbk_groups (Name) value ("'+ Edit3.Text+'")';

ZQuery1.ExecSQL; edit3.Text:='';

ShowMessage('Group telah dibuat!'); ZTable2.Refresh;

end;

- Double klik pada button SAVE yang ada pada GroupBox1 (PhoneBook) kemudian

tuliskan coding dibawah ini:

procedure TFphonebook.Button1Click(Sender: TObject); var id:string;

begin

(11)

ZQuery1.SQL.Clear;

ZQuery1.SQL.Text:='select * from pbk_groups where Name="'+DBComboBox1.Text+'"'; ZQuery1.Open; ZQuery1.First; id:= ZQuery1.FieldByName('ID').AsString; ZQuery1.close; ZQuery1.SQL.Clear;

ZQuery1.SQL.Text:='insert into pbk (Name,GroupID,Number) value ("'+Edit1.Text+'","'+id+'","'+Edit2.Text+'")'; ZQuery1.ExecSQL;

ShowMessage('Data telah disimpan ke tabel phonebook!');

ZQuery1.SQL.Clear;

ZQuery1.SQL.Text:='select p.Number,p.Name,g.Name from pbk p '+'left outer join pbk_groups g on p.GroupID=g.ID';

ZQuery1.open;

end;

- Double klik pada bitbutton KELUAR kemudian tuliskan coding dibawah ini:

procedure TFphonebook.BitBtn1Click(Sender: TObject); begin

close; end;

E. Untuk tahap selanjutnya kita buat form kirim pesan group

(Fkirimgrup/Ukirimgrup.pas), persiapkan komponen berikut pada form anda :

No. Komponen Properti Nilai

1. Form Name

Caption

Fkirimgrup

.::: KIRIM PESAN GRUP :::.

2. ZQuery1 (Zeos Access) Connection Finbox.ZConnection1

3. Label1 (Standard) Caption GRUP

4. Label2 (Standard) Caption PESAN

5. ComboBox1 (Standard)

6. Memo1 (Standard)

7. BitBtn1 (Additional) Caption

Kind

KIRIM bkOK

8. BitBtn2 (Additional) Caption

Kind

CANCEL bkCancel

(12)

- Double klik pada form kirim grup (Fkirimgrup), kemudian tuliskan coding dibawah ini:

procedure TFkirimgrup.FormCreate(Sender: TObject); var i:integer;

begin

ZQuery1.Close; ZQuery1.SQL.Clear;

ZQuery1.SQL.Add('select * from pbk_groups'); ZQuery1.Open;

ZQuery1.First; i:=0;

ComboBox1.Clear;

while i< ZQuery1.RecordCount do begin ComboBox1.Items.Add(ZQuery1.FieldByName('Name').AsString); i:=i+1; ZQuery1.Next; end; ZQuery1.Close; end;

- Double klik pada BitBtn1(KIRIM), kemudian tuliskan coding dibawah ini:

procedure TFkirimgrup.BitBtn1Click(Sender: TObject); var i:integer;

begin

//pilih nomor dalam Group

ZQuery1.close; ZQuery1.SQL.Clear;

ZQuery1.SQL.Text:='select pbk.*,pbk_groups.* from pbk left outer join pbk_groups on '+

' pbk.GroupID=pbk_groups.ID where pbk_groups.Name="'+ComboBox1.Text+'"' ; i:=0; ZQuery1.Open; ZQuery1.First; while i < ZQuery1.RecordCount do begin ZQuery2.close; ZQuery2.SQL.Clear;

(13)

ZQuery2.SQL.Text:='insert into outbox(DestinationNumber,TextDecoded) value ("'+ ZQuery1.FieldByName('Number').AsString+'","'+Memo1.Text+'") '; ZQuery2.ExecSQL; i:=i+1; ZQuery1.Next; end; ZQuery1.Close; Memo1.Text:=''; ShowMessage('Sms Terkirim!'); end;

- Double klik pada BitBtn2(CANCEL), kemudian tuliskan coding dibawah ini:

procedure TFkirimgrup.BitBtn2Click(Sender: TObject); begin

Close; end;

F. Selanjutnya kita buat form menu sms (Fmenusms/Umenusms.pas), persiapkan komponen berikut pada form anda :

No. Komponen Properti Nilai

1. Form Name Caption Menu PopupMenu Fmenusms .:: FORM MENU SMS GATEWAY ::. MainMenu1 PopupMenu1

2. MainMenu1 (Standard) Items Sesuaikan seperti

gambar berikut :

3. Popup Menu1 (Standard) Items

4. Label1 (Standard) Caption SELAMAT

(14)

No. Komponen Properti Nilai

APLIKASI SMS GATEWAY

5. Image1 (Standard) Picture

Stretch

Load(cari gambar yg sesuai dari direktori anda)

True

- Berikut tampilan form menu sms (Fmenusms) yang akan dibuat :

- Source Code Umenusms (Fmenusms)

unit Umenusms; interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Menus, StdCtrls, jpeg, ExtCtrls; type TFmenusms = class(TForm) MainMenu1: TMainMenu; File1: TMenuItem; sms1: TMenuItem; SMS2: TMenuItem; Inbox1: TMenuItem; Sent1: TMenuItem; Help1: TMenuItem; About1: TMenuItem; PopupMenu1: TPopupMenu; Inbox2: TMenuItem; SentItems1: TMenuItem; About2: TMenuItem; keluar1: TMenuItem; Label1: TLabel; KirimPesan1: TMenuItem; Image1: TImage; PhoneBook1: TMenuItem; PhoneBook2: TMenuItem; KirimPesanGrup1: TMenuItem; KirimPesanGrup2: TMenuItem;

(15)

procedure sms1Click(Sender: TObject); procedure Inbox1Click(Sender: TObject); procedure Sent1Click(Sender: TObject); procedure Inbox2Click(Sender: TObject); procedure SentItems1Click(Sender: TObject); procedure keluar1Click(Sender: TObject); procedure KirimPesan1Click(Sender: TObject); procedure About2Click(Sender: TObject);

procedure PhoneBook1Click(Sender: TObject); procedure PhoneBook2Click(Sender: TObject); procedure About1Click(Sender: TObject);

procedure KirimPesanGrup1Click(Sender: TObject); procedure KirimPesanGrup2Click(Sender: TObject);

private { Private declarations } public { Public declarations } end; var Fmenusms: TFmenusms; implementation

uses Ucobazeoc, Usentitems, Ukirim, Uphonebook, Uabout, Ukirimgrup;

{$R *.dfm}

procedure TFmenusms.sms1Click(Sender: TObject); begin

Fphonebook.ShowModal;

end;

procedure TFmenusms.Inbox1Click(Sender: TObject); begin

Finbox.showmodal; end;

procedure TFmenusms.Sent1Click(Sender: TObject); begin

Fsent.showmodal; end;

procedure TFmenusms.Inbox2Click(Sender: TObject); begin

Finbox.ShowModal; end;

procedure TFmenusms.SentItems1Click(Sender: TObject); begin

Fsent.ShowModal; end;

procedure TFmenusms.keluar1Click(Sender: TObject); begin

(16)

Fphonebook.ShowModal; end;

procedure TFmenusms.KirimPesan1Click(Sender: TObject); begin

Fkirim.showmodal; end;

procedure TFmenusms.About2Click(Sender: TObject); begin

Fkirim.Showmodal; end;

procedure TFmenusms.PhoneBook1Click(Sender: TObject); begin

Application.Terminate; end;

procedure TFmenusms.PhoneBook2Click(Sender: TObject); begin

Fkirimgrup.ShowModal; end;

procedure TFmenusms.About1Click(Sender: TObject); begin

Fabout.showmodal; end;

procedure TFmenusms.KirimPesanGrup1Click(Sender: TObject); begin

Fkirimgrup.showmodal; end;

procedure TFmenusms.KirimPesanGrup2Click(Sender: TObject); begin Application.Terminate; end; end.

(17)

6.

REFERENSI :

1. Kadir, Abdul.2006.Dasar Pemrograman Delphi.Yogyakarta : Andi Publisher

2. Saputra, Agus.2011.Step by step Membangun Aplikasi SMS dengan PHP dan

MySQL.Jakarta: Elex Media Komputindo.

3. www.apachefriends.org 4. blog.rosihanari.net 5. www.wammu.eu

6. www.ilmukomputer.org 7. samsonasik.wordpress.com

Gambar

gambar berikut :

Referensi

Dokumen terkait

Tujuan penelitian ini adalah 1) mengetahui perbedaan secara signifikan hasil belajar IPA siswa yang dibelajarkan menggunakan model pembelajaran inkuiri terbimbing berbasis

Hal ini mengindikasikan bahwa citra rumah sakit yang positif tidak hanya meningkatkan loyalitas pasien secara langsung, tetapi juga meningkatkan kepuasan pasien

b) Menyerahkan keputusan akhir kepada Walikota, untuk penunjukan badan hukum yang menjadi mitra kerja sama. Dalam memutuskan, Walikota dapat meminta pendapat dari TKKSD. Batas

industri nasional sesuai dengan Pasal 2 Peraturan Presiden RI Nomor 28 Tahun 2008 tentang Kebijakan Industri Nasional, perlu menetapkan peta panduan ( Road Map )

2) Pada tataran akomodasi mahasiswa meyakini nilai-nilai yang terkandung dalam pernikahan dan berkeluarga sebagai upaya untuk menciptakan masyarakat yang bermartabat.

Dierks dan Patel (1997) menjabar- kan EVA sebagai suatu bentuk pengu- kuran kinerja keuangan dengan meng- kombinasikan antara konsep umum pen- dapatan bersih dengan

Dari persamaan Arrhenius terlihat bahwa laju reaksi (dalam hal ini diwakili tetapan laju reaksi) semakin besar saat reaksi terjadi pada suhu tinggi yang disertai dengan energi

secara baik, walaupun seseorang dalam keadaan marah tetapi marah itu tidak ditampakkan keluar, karena dia dapat mengatur kapan kemarahan itu perlu dimanifestasikan. Bersifat sabar,