Aplikasi polling dengan menggunakan media SMS
-
Upload
khangminh22 -
Category
Documents
-
view
1 -
download
0
Transcript of Aplikasi polling dengan menggunakan media SMS
54 Universitas Kristen Petra
4. IMPLEMENTASI
Pada bab implementasi ini akan membahas beberapa hal mengenai
pengimplementasian desain yang telah dibuat di dalam Bab 3.
Pengimplementasian desain dalam hal ini mengenai:
a. Peng-install-an komponen dan software (database) yang diperlukan dalam
pembuatan aplikasi polling SMS yaitu komponen TMSComm, software
MySQL, MyODBC dan MySQL Front.
b. Pengimplementasian aplikasi Polling SMS, dengan langkah-langkah
sebagai berikut:
• Membuat tampilan program utama dan sub program.
• Membuat program utama ( program untuk terima dan mengirim SMS).
• Membuat program untuk mengolah/memeriksa data/SMS yang masuk
dan serta memasukkan data ke dalam database.
• Membuat Desain WEB.
4.1. Instalasi Komponen Dan Software (Database)
Sebelum desain aplikasi Polling SMS yang telah dibuat pada bab 3 dapat
diwujudkan, maka ada beberapa hal yang perlu dilakukan terlebih dahulu. Yang
perlu dilakukan adalah meng-install komponen dan software.
Beberapa komponen dan software (database) yang perlu di-install
adalah: komponen TMSComm dan software database MySQL beserta
koneksivitasnya MyODBC (MyODBC adalah koneksivitas antara software
aplikasi dengan software database-nya), serta meng-install program tambahan
seperti MySQL Front (MySQL Front merupakan sebuah program interface untuk
mempermudah dalam pembuatan sebuah database).
4.1.1. Instalasi Komponen TMSComm
Komponen TMSComm merupakan salah satu komponen ActiveX yang
berfungsi untuk mengakses serial port yang terhubung dengan mobile-phone. File
Universitas Kristen Petra
55
yang diperlukan untuk meng-install komponen TMSComm ini adalah file
MSComm32.ocx yang merupakan file ActiveX control.
Cara meng-install komponen tersebut adalah sebagai berikut:
a. Pada Program Delphi 7, pilih menu Componenet kemudian masuk ke
dalam sub menu Import ActiveX Control, dan akan muncul Windows
Import ActiveX seperti gambar 4.1.
Gambar 4.1. Windows Import ActiveX
b. Pada combo box yang ada, pilih Microsoft Comm Control 6.0, kemudian
klik button Install. Bila tidak ada pilihan tersebut, maka klik Add dan akan
muncul Windows Browse.
c. Arahkan ke direktori C:\Windows\System kemudian pilih MSComm32.ocx
dan klik button Install.
d. Bila proses berhasil maka class untuk ActiveX ini akan terdaftar dengan
nama TMSComm. Dan letak komponen TMSComm ini akan berada pada
Component Pallete ActiveX. Untuk dapat menggunakan komponen ini
cukup dengan meng-klik dan men-drag-nya ke form. Lihat gambar 4.2.
Universitas Kristen Petra
56
Komponen TMSComm
Gambar 4.2. Komponen TMSComm
Ada beberapa properties dari komponen TMSComm ini yang penting dan
harus diperhatikan, agar komponen ini dapat berfungsi atau digunakan secara
benat yaitu antara lain:
a. Commport
Bagian ini berisi nomor serial port komputer yang terhubung dengan
telepon selular. Nilai default-nya adalah ‘1’.
b. Handshaking
Bagian ini berisikan 3 opsi, yaitu comNone, comXon-Xoff, comRTS,
comRTSXonXoff. Dan dapat diisikan dengan opsi comNone atau
comRTSXonXoff
c. Settings
Bagian ini berisi antara lain baudrate, parity, data bit, dan stop bit yang
akan digunakan. Baudrate bergantung jenis telepon yang digunakan. Pada
program kali ini telepon selular yang digunakan memiliki baudrate 57600
bps. Untuk bagian parity nilai default-nya ‘N’, data bit nilai default-nya
‘8’, stop bit nilai default-nya ‘1’. Sehingga Settings-nya yang ada adalah
‘57600,N,8,1’.
4.1.2. Instalasi Database MySQL Dan Konektivitasnya
Untuk aplikasi Polling SMS ada 2 peranan yang cukup penting yaitu
peranan aplikasi Polling SMS dan peranan database. Peranan database dikatakan
cukup penting. Karena dari database yang ada, maka setiap data SMS yang masuk
untuk mengikuti polling dapat disimpan dan diproses.
Untuk Tugas Akhir ini database yang digunakan adalah database
MySQL, serta konektivitasnya dengan program Delphi menggunakan driver
MyODBC. Dan untuk mempermudah membuat sebuah database MySQL maka
Universitas Kristen Petra
57
diperlukan MySQL front. Semuanya itu perlu di-install terlebih dahulu sebelum
membuat sebuah database untuk aplikasi Polling SMS.
4.1.2.1 Instalasi Database MySQL
Setelah program MySQL di-download, maka seperti biasa untuk meng-
install sebuah program klik setup.exe, yang akan men-setup atau meng-install
program yang ada secara otomatis. Lihat gambar 4.3.
Gambar 4.3. Permulaan Men-setup Program MySQL
Setelah itu akan masuk ke dalam beberapa tampilan windows untuk setup
program MySQL. Beberapa tampilan windows tersebut antara lain: Windows
Welcome MySQL, Windows Information MySQL, Windows Choose Destination
Location MySQL, Windows Setup Type MySQL, Windows Peng-install-an
MySQL, Windows Setup Complete MySQL. Ikuti setiap instruksi yang ada pada
setiap tampilan windows yang muncul, hingga akhir peng-install-an.
Universitas Kristen Petra
58
4.1.2.2 Instalasi MyODBC
Setelah program MySQL di setup, maka setelah itu MyODBC harus di-
install untuk konektivitasnya. Klik setup.exe yang akan men-setup atau meng-
install MyODBC secara otomatis. Lihat gambar 4.4
Gambar 4.4. Permulaan Men-setup Program MyODBC
Setelah itu akan masuk ke dalam beberapa tampilan windows untuk setup
program MyODBC. Beberapa tampilan windows tersebut antara lain: Windows
Welcome MySQL Connector/ODBC, Windows Read-me! MySQL
Connector/ODBC, Windows Start Installation! MySQL Connector/ODBC,
Windows Finished!!. Ikuti setiap instruksi yang ada pada setiap tampilan windows
yang muncul, hingga akhir peng-install-an.
4.1.2.3 Setting ODBC
Setelah program MySQL dan MyODBC di setup, maka setelah itu
ODBC harus di-set agar dapat terhubung dengan program aplikasi polling SMS.
Pertama kali akan masuk ke dalam Administrator Tools seperti yang terlihat
dalam gambar 4.5
Universitas Kristen Petra
59
Gambar 4.5. Windows Administrator Tools
Untuk setting ODBC lihat gambar 4.6. sampai gambar 4.11.
Pertama-tama akan masuk ke dalam Windows ODBC Data Source
administrator.
Gambar 4.6. Windows ODBC Data Source Administrator
Setelah itu pilih tab System DSN, dan setelah itu klik button add untuk
menambahkan data source yang akan dipakai sebagai database program yang
akan dibuat.
Universitas Kristen Petra
60
Gambar 4.7. Windows System DNS (1)
Setelah itu akan masuk pada Windows Create New Data Source, dan
setelah itu klik MySQL ODBC 3.51 Driver pada list box select driver untuk
menentukan bahwa data source akan dipakai sebagai database program dengan
menggunakan konektivitas MySQL ODBC 3.51 Driver. Lalu klik button finish.
Gambar 4.8. Windows Create New Data Source
Setelah akan masuk dalam Windows MySQL Connector/ODBC, DNS
Configuration. Dan setelah itu bisa diisikan beberapa hal yang penting untuk pen-
setting-an antara konektivitas MySQL ODBC dengan MySQL server.
Universitas Kristen Petra
61
Gambar 4.9. Windows MySQL Connector/ODBC, DNS Configuration (1)
Isikan Data Source Name dengan nama tertentu untuk memanggil
database di dalam MySQL server. Isikan host/server name(or IP) yaitu
mengisikan nama atau nomor IP komputer data base ditempatkan. Lalu isikan
juga database name sebagai nama database yang akan dipakai, isikan user dan
password bila diperlukan, dan biasanya di-setting user root dan password
dikosongkan, ini berarti data base dapat dibuka tanpa melalui konfrimasi
password terlebih dahulu.
Gambar 4.10. Windows MySQL Connector/ODBC, DNS Configuration (2)
Setelah akan masuk lagi ke dalam Windows System DNS. Dan setelah itu
klik button ok untuk menandakan setting ODBC telah selesai.
Universitas Kristen Petra
62
Gambar 4.11. Windows System DNS (2)
4.1.2.4 Instalasi MySQL Front
Setelah program MySQL dan MyODBC telah di-setup dan men-setting
ODBC setelah itu diperlukan untuk meng-install MySQL Front agar lebih mudah
dalam membuat database untuk program aplikasi polling SMS. Klik MySQL-
Front_Setup.exe yang akan men-setup atau meng-install MySQL front secara
otomatis. Lihat gambar 4.12.
Gambar 4.12. Permulaan Men-setup Program MySQL Front
Universitas Kristen Petra
63
Setelah itu akan masuk ke dalam beberapa tampilan windows untuk setup
program MySQL Front. Beberapa tampilan windows tersebut antara lain:
Windows Welcome Setup MySQL Front, Windows License Agreement MySQL
Front, Windows Select Destination Location MySQL Front, Windows Select Start
Menu Folder MySQL Front, Windows Select Additional Tasks MySQL Front,
Windows Ready to install MySQL Front, Windows Installing MySQL Front,
Windows Information MySQL Front, Windows Setup Complete MySQL Front.
Ikuti setiap instruksi yang ada pada setiap tampilan windows yang muncul, hingga
akhir peng-install-an.
Setelah proses peng-install-an MySQL Front telah selesai, maka akan
langsung masuk ke dalam Windows MySQL Front. Dan terdapat sub windows
Open Session. Klik button new untuk membuat session baru dengan keluarnya sub
windows baru yaitu sub windows Add Session.
Gambar 4.13. Windows MySQL Front Untuk Pertama Kali Dibuka
Setelah itu dalam sub windows Add Session terlihat ada beberapa tab
diantarnya tab General, Connection, Login dan Cache. Pilihlah tab Connection.
Universitas Kristen Petra
64
Gambar 4.14. Windows MySQL Front Untuk Add Session (General)
Setelah itu dalam tab Connection isi beberapa hal yang perlu, yaitu ip
server, port dan connectiom type.
Gambar 4.15. Windows MySQL Front Untuk Add Session (Connection) (1)
Gambar 4.16. Windows MySQL Front Untuk Add Session (Connection) (2)
Universitas Kristen Petra
65
Setelah itu berpindah pada tabs login, isi user dan password bila di
perlukan, serta isi nama database-nya .
Gambar 4.17. Windows MySQL Front Untuk Add Session (Login)
Setelah semua telah di-setting, maka klik button ok (akan terlihat pada
open session database yang akan dipakai). Dan kalau sudah pernah data base ada
sebelumnya, maka data tersebut dapat langsung dipanggil (dengan cara pilih
database yang akan dipanggil yang ada pada list box lalu klik button ok maka
akan muncul format database yang dipanggil lihat gambar 4.18 dan gambar 4.19).
Gambar 4.18. Windows MySQL Front Untuk Open Session
Universitas Kristen Petra
66
Gambar 4.19. Windows MySQL Front Dan Membuka Salah-satu Database
4.2. Implementasi Aplikasi Polling SMS
Pada sub bab 4.2. ini, akan dijelaskan bagaimana pengimplementasian
aplikasi Polling SMS yang telah didesain pada bab 3. Secara umum untuk
program Aplikasi Polling SMS ini terbagi menjadi beberapa bagian yaitu program
utamanya dan sub-sub program pendukung lainnya. Secara keseluruhan aplikasi
ini akan tergabung atau terintegrasi menjadi satu dengan sistem program dengan
tampilan utama program yaitu dalam Form Halaman Utama.
Tahapan-Tahapan yang perlu dilakukan adalah:
a. Membuat Tampilan Program Utama dan Sub Program.
b. Membuat Program Utama (program untuk terima dan mengirim SMS).
c. Membuat Program Untuk Mengolah/Memeriksa Data/SMS Yang Masuk
Serta Memasukkan Data Ke dalam Database.
d. Membuat Desain WEB.
Universitas Kristen Petra
67
4.2.1. Membuat Tampilan Program Utama dan Sub Program Membuat Program
4.2.1.1 Form Password
Form Password adalah tampilan form aplikasi Polling SMS yang
pertama kali muncul sebelum memasuki tampilan program utama, aplikasi Polling
SMS. Tampilan form password dapat dilihat pada gambar 4.20.
Gambar 4.20. Form Password
Bagian-bagian yang ada pada Form Password ini adalah sebagai berikut:
a. Komponen Edit adalah tempat untuk mengisikan password yang ada.
b. Komponen Button adalah tombol untuk menyatakan siap masuk ke dalam
Form Utama Aplikasi Polling SMS.
Ketika Button OK ditekan maka yang dilakukan oleh program adalah: procedure TF_Password.Btn_OKClick(Sender: TObject);
begin
if Tx_Password.Text = F_Utama.Config[0] then
begin
Hide;
F_Utama.Show;
end
else
begin
ShowMessage('Access Denied!');
Tx_Password.Clear;
end;
end;
4.2.1.2 Form Halaman Utama
Form Halaman Utama adalah form utama Aplikasi Polling SMS. Form
ini yang nantinya menjadi tampilan utama untuk aplikasi polling SMS bahkan
akan menjadi tampilan dasar (background) untuk setiap sub-sub program polling
SMS yang ada. Untuk tampilannya dapat dilihat pada Gambar 4.21.
Universitas Kristen Petra
68
Gambar 4.21. Form Halaman Utama (1)
Bagian-bagian yang ada pada Form Password ini adalah sebagai
berikut:
a. Komponen Main Menu (sifat komponen invisible sehingga ketika
program dijalankan maka komponen tersebut tidak telihat) adalah
komponen untuk membuat menu bar dan menu drop down. Isi dari
menu utama adalah sebagai berikut:
Main Menu:
1 File:
Connection:
a. Start
b. Stop
MSComm: 1.MSCommRcv 2. MSCommSend
Timer1
Main Menu: 1 File:
Connection: a. Start b. Stop c. Continue
Polling: a. New b. Edit c. Result
2 View Data 3 Setting:
Change Password Change Configution
Label_Status, Label_Day, Label_Tanggal, Label_Waktu
Timer2
Universitas Kristen Petra
69
c. Continue
Polling:
a. New
b. Edit
c. Result
2 View Data
3 Setting:
Change Password
Change Configution
b. Komponen Timer, karena untuk aplikasi polling SMS ini
memungkinkan menggunakan prosedur penggulangan sehingga
diperlukan komponen Timer dan juga komponen timer dapat
digunakan untuk membuat prosedur waktu untuk tampilan waktu.
Dalam tampilan utama ini ada 2 (dua) komponen Timer yang
pertama digunakan untuk prosedur pengulangan dan juga
digunakan untuk membuat prosedur waktu.
c. Komponen TMSComm, komponen ini merupakan komponen yang
memungkinkan program aplikasi Polling SMS ini untuk
mengakses data yang ada pada Mobile Phone dengan
menggunakan kabel data yang memakai port serial yaitu port yang
digunakan untuk keluar masuknya data. Dalam aplikasi Polling
SMS akan memakai 2 (dua) TMSComm yaitu MsCommRcv untuk
bagian terima data dan MsCommSend untuk bagian pengirim data.
d. Terlihat ada empat komponen Label (Label_Status, Label_Day,
Label Tanggal, Label_Waktu). Masing-masing mempunyai
peranan sendiri-sendiri antara lain adalah label_status untuk
menyatakan status program Receiving, Stop atau Continue,
sedangkan label_day untuk menyatakan Hari, label_Tanggal untuk
menyatakan tanggal, label_Waktu untuk menyatakan jam, menit
dan detik sekarang.
Universitas Kristen Petra
70
Untuk tampilan komponen Main Menu dapat dilihat pada Gambar 4.22
sampai Gambar 4.25.
Gambar 4.22. Form Halaman Utama (2)
Ketika Menu Start ditekan, maka program akan memberikan nilai timer
dengan nilai true. Bandingkan dengan potongan program berikut ini: procedure TF_Utama.Mn_StartClick(Sender: TObject);
begin
…
Timer.Enabled:= True;
…
…
end;
Ketika Timer bernilai true, maka program akan menjalankan fungsi
Terima di unit SMS. Bandingkan dengan potongan program berikut ini: procedure TF_Utama.TimerTimer(Sender: TObject);
begin
Timer.Enabled:= False;
U_SMS.Terima;
…
…
end;
Ketika fungsi Terima dijalankan, maka program tersebut akan melakukan
pembacaan SMS/Data yang masuk, melakukan proses penghapuasan isi inbox,
memasukkan isi SMS/Data yang telah dibaca ke dalam sebuah variabel agar dapat
Universitas Kristen Petra
71
diproses selanjutnya. Program tersebut dapat dilihat sesuai dengan potongan
program sebagai berikut: function Terima: integer;
…
…
begin
…
…
//untuk membaca isi sms (PDU) dari hardware
F_Utama.MSCommRcv.Output:='AT+CMGL='+IntToStr(l)+Chr(13);
…
…
//membaca isi sms (Text) dan mengisikan pada sebuah variable
U_RnS.F_RnS.SGrid_Rx.RowCount:= jum+1; U_RnS.F_RnS.SGrid_Rx.Cells[0,i]:= inttostr(i); U_RnS.F_RnS.SGrid_Rx.Cells[1,i]:= balikinNo(tmpDu[i,1]); U_RnS.F_RnS.SGrid_Rx.Cells[2,i]:= Str2Dt(balikinDt(tmpDu[i,2])); U_RnS.F_RnS.SGrid_Rx.Cells[3,i]:= balikinIsi(tmpDu[i,3]); U_RnS.F_RnS.SGrid_Rx.Cells[4,i]:= '0'; …
…
//untuk menghapus isi sms dari hardware (inbox)
F_Utama.MSCommRcv.Output:='AT+CMGD='+no[i]+Chr(13);
…
…
end;
Ketika fungsi Terima telah jalankan, maka program tersebut akan
melakukan langkah program selanjutnya yaitu mengambil isi SMS sesuai dengan
format polling yang telah ditentukan, dan setelah itu diadakan pengecekan isi
SMS/Data sesuai dengan Aplikasi DATABASE. Program tersebut dapat dilihat
sesuai dengan potongan program sebagai berikut: procedure TF_Utama.TimerTimer(Sender: TObject);
begin
…
…
Depan:= Copy(M_rx, 1, Pos(' ', M_rx) - 1);
Belakang:= Copy(M_rx, Pos(' ', M_rx) + 1, Length(M_rx));
…
…
//untuk format registrasi
if UpperCase(Depan) = 'REG' then
…
…
//Cek nama polling.
…
ADOQuery.SQL.Append('SELECT id FROM polling WHERE nama = ' +
…
…
Universitas Kristen Petra
72
//Cek status Polling.
…
ADOQuery.SQL.Append('SELECT actived, opened FROM polling WHERE id = ' +
IntToStr(ID));
…
…
//Cek nomer HP.
…
ADOQuery.SQL.Append('SELECT id FROM registrasi WHERE id_polling = ' +
IntToStr(ID) + ' AND no_hp = ' + QuotedStr(No_HP_tx));
…
…
//untuk format menjawaban polling
//Cek Nama Polling.
…
ADOQuery.SQL.Append('SELECT id FROM polling WHERE nama = ' +
QuotedStr(Depan));
…
…
//Cek Status actived.
…
ADOQuery.SQL.Append('SELECT actived FROM polling WHERE id = ' +
IntToStr(ID));
…
…
//Cek Status opened.
…
ADOQuery.SQL.Append('SELECT opened FROM polling WHERE id = ' +
IntToStr(ID));
…
…
//Cek Status oneormore.
…
ADOQuery.SQL.Append('SELECT oneormore FROM polling WHERE id = ' +
IntToStr(ID));
…
…
//Cek Status Replied.
…
ADOQuery.SQL.Append('SELECT replied FROM polling WHERE id = ' +
IntToStr(ID));
…
…
end;
Setelah diadakan pengecekan sesuai dengan aplikasi DATABASE, maka
program tersebut akan melakukan langkah program selanjutnya yaitu mengirim
Universitas Kristen Petra
73
balasan SMS sesuai dengan format yang telah ditentukan. Program tersebut dapat
dilihat sesuai dengan potongan program sebagai berikut: procedure TF_Utama.TimerTimer(Sender: TObject);
begin
…
…
//pemangilan proses kirim
U_SMS.Kirim (No_HP_tx,r,smscenter);
…
…
Timer.Enabled:= True;
end;
Untuk melakukan proses Pengiriman, program menjalankan fungsi Kirim
dari unit SMS. Program tersebut dapat dilihat sesuai dengan potongan program
sebagai berikut: function Kirim(StrKpd,StrIsi,smscenter:string):integer;
…
…
begin
…
…
F_Utama.MSCommSend.Output:='AT+CMGS='+IntToStr(panjang[i])+Chr(13);
…
…
end;
Ketika Menu Stop ditekan, maka program akan memberikan nilai timer
dengan nilai false. Bandingkan dengan potongan program berikut ini: procedure TF_Utama.Mn_StopClick(Sender: TObject);
begin
//Koneksi Stop.
Timer.Enabled:= False;
…
…
end;
Ketika Menu Continue ditekan maka program akan memberikan nilai
timer dengan nilai true. Dan setelah itu program akan menjalankan fungsi-fungsi
atau prosedur-prosedur yang sama dengan ketika Menu Start ditekan, bandingkan
dengan potongan program berikut ini: procedure TF_Utama.Mn_ContinueClick(Sender: TObject);
begin
Timer.Enabled:= True;
…
…
end;
Universitas Kristen Petra
74
Gambar 4.23. Form Halaman Utama (3)
Ketika Menu New ditekan, maka program akan membuka form New
Polling atau Tambah_Polling. Bandingkan dengan potongan program berikut ini: procedure TF_Utama.Mn_New_PollingClick(Sender: TObject);
begin
F_Tambah_Polling.ShowModal;
end;
Ketika Menu Edit ditekan, maka program akan membuka form Edit
Polling. Bandingkan dengan potongan program berikut ini: procedure TF_Utama.Mn_Edit_PollingClick(Sender: TObject);
begin
F_Edit_Polling.ShowModal;
end;
Ketika Menu Result ditekan, maka program akan membuka form Result
Polling atau Hasil_Polling. Bandingkan dengan potongan program berikut ini: procedure TF_Utama.Mn_ResultClick(Sender: TObject);
begin
F_Hasil_Polling.ShowModal;
end;
Ketika Menu Exit ditekan, maka program akan berhenti dan Halaman-
Utama akan ditutup. Bandingkan dengan potongan program berikut ini: procedure TF_Utama.Mn_ExitClick(Sender: TObject);
begin
…
Close;
end;
Universitas Kristen Petra
75
Gambar 4.24. Form Halaman Utama (4)
Ketika Menu View Data ditekan, maka program membuka form View
Data atau RnS. Bandingkan dengan potongan program berikut ini: procedure TF_Utama.ViewData1Click(Sender: TObject);
begin
F_RnS.ShowModal;
end;
Gambar 4.25. Form Halaman Utama (5)
Universitas Kristen Petra
76
Ketika Menu Change Password ditekan, maka program membuka form
Change Password. Bandingkan dengan potongan program berikut ini: procedure TF_Utama.Mn_PasswordClick(Sender: TObject);
begin
F_Change_Password.ShowModal;
end;
Ketika Menu Change Configuration ditekan, maka program membuka
form Change Configuration. Bandingkan dengan potongan program berikut ini: procedure TF_Utama.Mn_ConfigurationClick(Sender: TObject);
begin
F_Configuration.ShowModal;
end;
4.2.1.3 Form New Polling
Form New Polling adalah form yang menyediakan fasilitas penambahan
polling baru. Dengan program ini administrator dapat membuat dan menambah
daftar polling yang akan diadakan, beserta memberikan status pada setiap polling
yang akan diadakan. Bentuk form-nya dapat dilihat pada gambar 4.26.
Gambar 4.26. Form New Polling
Bagian-bagian yang ada pada Form New Polling ini adalah sebagai
berikut:
a. Ada 2 (dua) Komponen Edit antara lain:
• Tempat untuk mengisikan Nama Polling
• Tempat untuk mengisikan tambahan Pilihan Jawaban Polling.
b. Ada 3 (tiga) Komponen Button antara lain:
Universitas Kristen Petra
77
• Tombol Add untuk menyatakan menambah pilihan jawaban.
• Tombol Ok untuk menyatakan bahwa pembuatan New Polling
telah dibuat.
• Tombol Clear untuk mengulang proses New Polling.
c. Komponen Group Box (Keterangan) yang mempunyai 4 (empat) pilihan
komponen check box.
• Komponen check box Actived untuk menyatakan bahwa polling
pada keadaan aktif atau tidak.
• Komponen check box One or More untuk menyatakan bahwa
polling pada status hanya dapat diikuti satu kali pengambilan suara
untuk tiap nomor atau bebas.
• Komponen check box Opened untuk menyatakan bahwa polling
pada status hanya dapat diikuti oleh orang yang telah mendaftar
terlebih dahulu atau bebas.
• Komponen check box Replied untuk menyatakan bahwa polling
status setiap peserta polling yang masuk akan diberi balasan atau
tidak.
d. Komponen Memo merupakan tempat untuk memasukkan text reply yang
akan dikirimkan kepada peserta polling, dan Memo akan bernilai true (jika
komponen check box Replied dipilih).
e. Komponen List box adalah komponen yang digunakan untuk membuat
sebuah daftar pilihan. Dan komponen list box yang ada pada form ini
digunakan untuk mendata setiap pilihan jawaban yang akan ditambahkan
untuk sebuah nama polling.
f. Komponen Pop Up merupakan komponen yang digunakan untuk membuat
menu pop up. Menu pop up akan muncul, jika pemakai menggunakan klik
kanan.
g. Beberapa komponen label.
Ketika Button OK ditekan, maka program menjalankan penambahan isi
filed dalam DATABASE. Bandingkan dengan potongan program berikut ini: procedure TF_Tambah_Polling.Bt_OKClick(Sender: TObject);
…
begin
Universitas Kristen Petra
78
…
ADOQuery.SQL.Append('INSERT INTO polling (nama, actived, opened, oneormore,
replied, reply) VALUES(' + QuotedStr(Tx_Nama.Text) + ', ');
…
…
…
end;
Ketika Button Clear ditekan, maka program menjalankan prosedur untuk
menghapus semua data yang telah dibuat dalam form New Polling saat itu.
Bandingkan dengan potongan program berikut ini: procedure TF_Tambah_Polling.Bt_ClearClick(Sender: TObject);
begin
Ls_item.clear;
memo1.clear;
Tx_Add.clear;
Tx_Nama.clear;
Ck_Actived.Checked:= False;
Ck_Opened.Checked:= False;
Ck_OneOrMore.Checked:= False;
Ck_Replied.Checked:= False;
end;
Ketika Button Add ditekan, maka program menjalankan prosedur untuk
menuliskan pilihan jawaban ke dalam listbox sebelum dimasukan ke dalam filed
DATABASE. Bandingkan dengan potongan program berikut ini: procedure TF_Tambah_Polling.Bt_AddClick(Sender: TObject);
begin
Ls_Item.Items.Append(Tx_Add.Text);
end;
Prosedur delete pada program pop-up dalam form New Polling
merupakan prosedur untuk menghapus data yang ada pada listbox. Bandingkan
dengan potongan program berikut ini: procedure TF_Tambah_Polling.Delete1Click(Sender: TObject);
begin
Ls_Item.Items.Delete(Ls_Item.ItemIndex);
end;
4.2.1.4 Form Edit Polling
Form Edit Polling adalah form yang menyediakan fasilitas untuk
merubah polling yang ada. Dengan program ini administrator dapat menambah
atau mengurangkan daftar pilihan polling yang diadakan beserta memberikan
Universitas Kristen Petra
79
status pada setiap polling yang akan diadakan. Bentuk form-nya dapat dilihat pada
gambar 4.27.
Gambar 4.27. Form Edit Polling
Bagian-bagian yang ada pada Form Edit Polling ini adalah sebagai
berikut:
a. Komponen Edit merupakan tempat untuk mengisikan tambahan Pilihan
Jawaban Polling, di pilihan nama polling tertentu
b. Ada 3 (tiga) Komponen Button antara lain:
• Tombol Add untuk menyatakan menambah pilihan jawaban.
• Tombol Ok untuk menyatakan bahwa pembuatan New Polling
telah dibuat.
• Tombol Close untuk keluar dari proses Edit Polling.
c. Komponen Group Box yang mempunyai 4 (empat) pilihan komponen
check box.
• Komponen check box Actived untuk menyatakan bahwa polling
pada keadaan aktif atau tidak.
• Komponen check box One or More untuk menyatakan bahwa
polling pada status hanya dapat diikuti satu kali pengambilan suara
untuk tiap nomor atau bebas.
• Komponen check box Opened untuk menyatakan bahwa polling
pada status hanya dapat diikuti oleh orang yang telah mendaftar
terlebih dahulu atau bebas.
Universitas Kristen Petra
80
• Komponen check box Replied untuk menyatakan bahwa polling
status setiap peserta polling yang masuk akan diberi balasan atau
tidak.
d. Komponen Memo merupakan tempat untuk memasukkan text reply yang
akan dikirimkan kepada peserta polling, dan Memo akan bernilai true (jika
komponen check box Replied dipilih).
e. Komponen List box adalah komponen yang digunakan untuk membuat
sebuah daftar pilihan. Dan komponen list box yang ada pada form ini
digunakan untuk mendata setiap nama Polling yang akan di edit dengan
ditambahkannya sebuah pilihan jawaban polling.
f. Komponen Pop Up merupakan komponen yang digunakan untuk membuat
menu pop up.
g. Beberapa komponen label
Ketika ListBox Nama Polling pada form Edit Polling diklik, maka
program akan menjalankan prosedur untuk mengambil data yang ada pada
DATABASE sesuai dengan nama atau id yang dipanggil, sebelum data yang telah
ada akan di-edit. Bandingkan dengan potongan program berikut ini: procedure TF_Edit_Polling.Ls_PollingClick(Sender: TObject);
…
begin
…
ADOQuery.SQL.Append('SELECT * FROM polling WHERE nama = ' +
QuotedStr(Ls_Polling.Items[Ls_Polling.ItemIndex]));
…
…
ADOQuery.SQL.Append('SELECT detail_polling.pilihan as pilihan FROM
polling, detail_polling WHERE polling.id = detail_polling.id_polling AND
polling.id = ' + IntToStr(ID));
…
…
end;
Ketika Button OK ditekan maka program menjalankan penambahan atau
meng-edit isi filed dalam DATABASE. Bandingkan dengan potongan program
berikut ini: procedure TF_Edit_Polling.Bt_OkClick(Sender: TObject);
…
begin
…
…
Universitas Kristen Petra
81
ADOQuery.SQL.Append('UPDATE polling SET reply = ' +
QuotedStr(Memo1.Lines.GetText) + ' WHERE nama = ' +
QuotedStr(Ls_Polling.Items[Ls_Polling.ItemIndex]));
…
…
if Ck_Actived.Checked then
…
…
if Ck_Opened.Checked then
…
…
if Ck_OneOrMore.Checked then
…
…
if Ck_Replied.Checked then
…
…
ADOQuery.SQL.Append('SELECT id FROM polling WHERE nama = ' +
QuotedStr(Ls_Polling.Items[Ls_Polling.ItemIndex]));
…
…
ADOQuery.SQL.Append('DELETE FROM detail_polling WHERE id_polling = ' +
IntToStr(ID));
…
…
ADOQuery.SQL.Append('DELETE FROM onesms WHERE id_polling = ' +
IntToStr(ID));
…
…
end;
Ketika Button Add ditekan maka program menjalankan prosedur untuk
menuliskan pilihan jawaban ke dalam listbox sebelum dimasukan ke dalam filed
DATABASE. Bandingkan dengan potongan program berikut ini: procedure TF_Edit_Polling.Bt_AddClick(Sender: TObject);
begin
Ls_Item.Items.Append(Tx_Add.Text);
end;
Ketika Button Close ditekan maka program Edit Polling akan
berhenti/ditutup dan akan kembali kepada Halaman-Utama. Bandingkan dengan
potongan program berikut ini: procedure TF_Edit_Polling.Bt_CloseClick(Sender: TObject);
begin
close;
end;
Universitas Kristen Petra
82
Prosedur delete pada program pop-up dalam form Edit Polling
merupakan prosedur untuk menghapus data yang ada pada listbox. Bandingkan
dengan potongan program berikut ini: procedure TF_Edit_Polling.Delete1Click(Sender: TObject);
begin
Ls_Item.Items.Delete(Ls_Item.ItemIndex);
end;
4.2.1.5 Form Result
Form Result adalah form yang menyediakan fasilitas untuk melihat hasil
dari polling yang telah diadakan, dan bentuk dari data yang ada ditampikan dalam
grafik batang. Bentuk form-nya dapat dilihat pada gambar 4.28.
Gambar 4.28. Form Result
Bagian-bagian yang ada pada Form Edit Polling ini adalah sebagai
berikut:
a. Komponen List merupakan tempat untuk setiap daftar nama polling, yang
dapat dilihat hasilnya.
b. Komponen DBChart dimana merupakan komponen untuk membuat
diagram dari setiap data yang telah didapat dan yang telah masuk dalam
database.
Ketika ListBox Nama Polling pada form Result Polling diklik, maka
program akan menjalankan prosedur untuk mengambil data yang ada pada
DATABASE sesuai dengan nama atau id yang dipanggil, dan data tersebut akan
diolah dalam bentuk tabel dalam DBChart. Bandingkan dengan potongan
program berikut ini:
Universitas Kristen Petra
83
procedure TF_Hasil_Polling.Ls_PollingClick(Sender: TObject);
begin
…
…
ADOQuery2.SQL.Append('SELECT detail_polling.pilihan AS pilihan,
detail_polling.jumlah AS jumlah FROM detail_polling, polling WHERE
polling.id = detail_polling.id_polling AND polling.nama = ' +
QuotedStr(Ls_Polling.Items[Ls_Polling.ItemIndex]));
…
…
end;
4.2.1.6 Form View Data
Form View Data adalah form untuk para administrator dapat melihatkan
SMS/Data Masuk serta SMS/Data Keluar. Untuk bentuk form-nya dapat dilihat
pada gambar 4.29.
Gambar 4.29. Form View Data
Bagian-bagian yang ada pada Form Edit Polling ini adalah sebagai
berikut:
a. Terdapat 2 (dua) Komponen Memo antara lain:
• Memo untuk SMS/Data Masuk, yaitu komponen yang akan
menuliskan setiap kegiatan atau setiap SMS/Data yang telah masuk
dan diproses salam sistem Polling SMS.
Universitas Kristen Petra
84
• Memo untuk SMS/Data Keluar yaitu komponen yang akan
menuliskan setiap kegiatan atau setiap SMS/Data yang keluar atau
sebagai SMS balasan dari sistem Polling SMS.
b. Ada 5 (lima) Komponen Button antara lain:
• Button Start yaitu komponen yang memunyai cara kerja yang sama
dengan Menu Start pada Halaman Utama (untuk menjalankan
proses Terima SMS/Data)
• Button Stop yaitu komponen yang memunyai cara kerja yang sama
dengan Menu Stop pada Halaman Utama (untuk memberhentikan
proses Terima SMS/Data)
• Button Continue yaitu komponen yang memunyai cara kerja yang
sama dengan Menu Continue pada Halaman Utama (untuk
menjalankan kembali proses Terima SMS/Data)
• Button Save yaitu komponen yang melakukan kerja untuk
menyimpan semua Data yang telah terproses pada sistem Polling
SMS dan data tersebut akan disimpan dalam bentuk Text.
• Button Clr yaitu komponen yang akan bekerja untuk menghapus
seluruh isi atau Data yang telah tercatat pada Memo Terima
ataupun Memo Kirim.
c. Satu komponen String Grid, pada saat program aplikasi polling
menjalankan prosedur Terima, komponen ini akan menampilkan semua
data/SMS yang masuk. Dan ketika proses trima diulang, maka data terbaru
yang akan ditampilkan oleh komponen ini. Dalam string grid terdapat 5
(lima) kolom yang berisikan antara lain: No, No HP, Tgl/Jam, Messages,
Reply.
d. Beberapa komponen label.
Ketika Button Start ditekan maka program View Data akan menjalankan
prosedur Menu Start seperti pada Form Halaman Utama (ketika ditekannya Menu
Start). Bandingkan dengan potongan program berikut ini: procedure TF_RnS.Bt_StartClick(Sender: TObject);
begin
U_Utama.F_Utama.Mn_Start.Click;
Bt_Start.Enabled:= false;
Bt_Stop.Enabled:= True;
Universitas Kristen Petra
85
Bt_Continue.Enabled:= false;
end;
Ketika Button Stop ditekan maka program View Data akan menjalankan
prosedur Menu Stop seperti pada Form Halaman (Utama ketika ditekannya Menu
Stop). Bandingkan dengan potongan program berikut ini: procedure TF_RnS.Bt_StopClick(Sender: TObject);
begin
U_Utama.F_Utama.Mn_Stop.Click;
Bt_Start.Enabled:= false;
Bt_Stop.Enabled:= false;
Bt_Continue.Enabled:= True;
end;
Ketika Button Continue ditekan maka program View Data akan
menjalankan prosedur Menu Continue seperti pada Form (Halaman Utama ketika
ditekannya Menu Continue). Bandingkan dengan potongan program berikut ini: procedure TF_RnS.Bt_ContinueClick(Sender: TObject);
begin
U_Utama.F_Utama.Mn_Continue.Click;
Bt_Start.Enabled:= false;
Bt_Stop.Enabled:= True;
Bt_Continue.Enabled:= false;
end;
Ketika Button Save ditekan maka program View Data akan menjalankan
prosedur Save_Data_Rx_Tx. Bandingkan dengan potongan program berikut ini:
procedure TF_RnS.Bt_SaveClick(Sender: TObject);
begin
Save_Data_Rx_Tx;
...
end;
procedure Save_Data_Rx_Tx;
...
...
begin
FileName := 'C:\Documents and Settings\Teddy Yulianto\My Documents\TA\TA
(NEW)\Coba_File_Rx.txt'; { set the file name }
// Try to open the Test.txt file for writing to
AssignFile(myFile_Rx, FileName);
{$I-}
// Reopen to append a final line to the file
Append(myFile_Rx);
{$I+}
Universitas Kristen Petra
86
...
...
// Close the file
CloseFile(myFile_Rx);
...
...
end;
begin
FileName := 'C:\Documents and Settings\Teddy Yulianto\My Documents\TA\TA
(NEW)\Coba_File_Tx.txt'; { set the file name }
// Try to open the Test.txt file for writing to
AssignFile(myFile_Tx, FileName);
{$I-}
// Reopen to append a final line to the file
Append(myFile_Tx);
{$I+}
...
...
// Close the file
CloseFile(myFile_Tx);
end;
Ketika Button Clr ditekan maka program View Data akan menghapus isi
Memo untuk Terima dan Memo untuk Kirim. Bandingkan dengan potongan
program berikut ini: procedure TF_RnS.Bt_CLRClick(Sender: TObject);
begin
...
Memo_Rx.Clear;
Memo_Tx.Clear;
...
end;
4.2.1.7 Form Change Configuration
Form Configuration adalah form untuk para administrator dapat
melakukan configurasi antara mobile phone dengan komputer. Untuk bentuk
form-nya dapat dilihat pada gambar 4.30.
Universitas Kristen Petra
87
Gambar 4.30. Form Change Configuration
Bagian-bagian yang ada pada Form Edit Polling ini adalah sebagai
berikut:
a. Terdapat 4 (lima) Komponen GroupBox antara lain:
• GroupBox Koneksi Hardware Pengirim SMS yang berisikan 2
(dua) komponen ComboBox antara lain combo box untuk
menentukan port yang akan digunakan dan combo box untuk
menentukan baudrate yang akan digunakan.
• GroupBox Koneksi Hardware Penerima SMS yang berisikan 2
komponen ComboBox yang sama dengan yang ada di GroupBox
Koneksi Hardware Pengirim SMS.
• GroupBox Kirim SMS Dengan yaitu Group Box yang memuat
informasi tentang jenis Operator, SMS Center, Port, Baudrate
yang digunakan untuk mengirimkan SMS.
• GroupBox Terima SMS Melalui yaitu Group Box yang memuat
informasi tentang jenis Port dan Baudrate yang digunakan untuk
menerima SMS.
b. Ada 2 (dua) Komponen Panel antara lain:
Universitas Kristen Petra
88
• Panel untuk informasi mengenai koneksi default beserta untuk
pengaturan secara default yang terdiri atas: komponen memo, serta
komponen button untuk mengatur koneksi secera default.
• Panel untuk Pengaturan yang berisikan 2 (dua) GroupBox, yaitu
GroupBox Kirim SMS Dengan serta GroupBox Terima SMS
Melalui.
c. Komponen RadioGroup yang mempunyai 5 (lima) pilihan komponen
radiobutton, antara lain
• Radiobutton untuk pilihan operator Telkomsel
• Radiobutton untuk pilihan operator ProXL
• Radiobutton untuk pilihan operator Satelindo
• Radiobutton untuk pilihan operator Indosat
• Radiobutton untuk pilihan operator Lippo Telecom
d. Komponen Checkbox.
e. Ada komponen Button yaitu button untuk save setting-an dan button untuk
keluar (Close)
f. Beberapa komponen label.
Ketika Button Default ditekan, maka program Change Configuration
akan mengubah setiap koneksi yang harus di-setting sesuai dengan setting-an
default yang administrator punya. Bandingkan dengan potongan program berikut
ini: procedure TF_Configuration.Bt_DefaultClick(Sender: TObject);
begin
Rg_Operator.ItemIndex:= 3;
Rg_OperatorClick(Sender);
Cb_Baudrate_Kirim.ItemIndex:= 8;
Cb_Baudrate_Terima.ItemIndex:= 8;
Cb_Port_Kirim.ItemIndex:= 1;
Cb_Port_Terima.ItemIndex:= 1;
Cb_Port_KirimClick(Sender);
Cb_Baudrate_KirimClick(Sender);
Cb_Baudrate_TerimaClick(Sender);
Cb_Port_TerimaClick(Sender);
end;
Universitas Kristen Petra
89
Ketika Button Save ditekan, maka program Change Configuration akan
menyimpan data setting-an koneksi yang telah di-setting oleh administrator.
Bandingkan dengan potongan program berikut ini: procedure TF_Configuration.Bt_OkClick(Sender: TObject);
begin
if (SMS_Center <> '') and (BR_Send <> '') and (BR_Receive <> '') and
(COM_Send >= 0) and (COM_Receive >= 0) then
…
with F_Utama.MSCommSend do
…
with F_Utama.MSCommRcv do
…
…
…
end;
Ketika Button Close ditekan, maka program Change Configuration akan
ditutup dan akan kembali kepada Form Halaman-Utama
4.2.1.8 Form Change Password
Form Configuration adalah form untuk para administrator dapat
melakukan konfigurasi antara mobile phone dengan komputer. Untuk bentuk
form-nya dapat dilihat pada gambar 4.31.
Gambar 4.31. Form Change Password
Bagian-bagian yang ada pada Form Edit Polling ini adalah sebagai
berikut:
a. Terdapat 3 (lima) Komponen Edit antara lain:
• Edit Password yang lama.
• Edit Password baru.
• Edit Password baru ulang.
Universitas Kristen Petra
90
b. Terdapat 2 (dua) komponen button antara lain:
• Button OK untuk menyimpan password baru.
• Button Cancel untuk keluar dan tidak melakukan penggantian
password yang telah ada.
Ketika Button Ok ditekan, maka program Change Password akan
menyimpan data setting-an untuk password yang baru (yang dibuat oleh
administrator). Bandingkan dengan potongan program berikut ini: procedure TF_Change_Password.Bt_OkClick(Sender: TObject);
begin
if Tx_Old.Text = F_Utama.Config[0] then
begin
if Tx_New.Text = Tx_Retype.Text then
begin
F_Utama.Config[0]:= Tx_New.Text;
F_Utama.Config.SaveToFile('config.dtf');
ShowMessage('Password Changed!');
Close;
end
else
begin
ShowMessage('Password tidak sama!');
end;
end
else
begin
ShowMessage('Wrong Password!');
end;
Tx_Old.Clear;
Tx_New.Clear;
Tx_Retype.Clear;
end; Ketika Button Cancle ditekan, maka program Change Password akan
ditutup dan akan kembali ke form Halaman-Utama. Bandingkan dengan potongan
program berikut ini: procedure TF_Change_Password.Bt_CancelClick(Sender: TObject);
begin
Close;
end;
Universitas Kristen Petra
91
4.2.1.9 Form Modul
Form Modul adalah form yang digunakan untuk mengatur koneksi, data
source dan query database. Untuk bentuk form-nya dapat dilihat pada gambar
4.32.
Gambar 4.32. Form Modul
Bagian-bagian yang ada pada Form Edit Polling ini adalah sebagai
berikut:
a. Komponen ADOConnection yaitu komponen yang digunakan untuk
membangun koneksi antara program aplikasi dengan database
b. Terdapat 2 (dua) komponen ADOQuery yaitu komponen yang berfungsi
membaca dan melakukan operasi pada tabel. antaralain:
• ADOQuery
• ADOQuery2
c. Komponen DataSource yaitu komponen yang mengambil data dari tabel
dan sebagai sumber data bagi object lain.
.
4.2.2. Sistem Penerimaan dan Pengiriman SMS (Send dan Receive SMS)
Pada sub bab 4.2.1 ini akan dijelaskan mengenai proses pengiriman dan
penerimaan SMS yang dilakukan program aplikasi Polling SMS.
Ada 2 (dua) mode pengiriman dan penerimaan sebuah SMS oleh mobile-
phone, yaitu mode text dan mode PDU. Hal ini bergantung dengan fasilitas yang
disediakan oleh pabrikan mobile-phone atau fasilitas yang disediakan oleh
operator GSM. Mode PDU pasti ada pada setiap pabrikan mobile-phone karena
mode PDU telah distandarisasikan. Sedangkan mode text hanya ada pada pabrikan
mobile-phone tertentu. Untuk pengecekan apakah mobile-phone mendukung mode
Universitas Kristen Petra
92
text, maka ketikan AT+CMGF=1. Jika hasilnya error, maka itu tandanya bahwa
mobile-phone tidak didukung oleh mode text. Dan untuk AT+CMGF=0, adalah
AT-Command untuk pengecekan mode PDU, jika hasilnya OK itu tandanya
bahwa mobile-phone memakai mode PDU. Dalam Tugas Akhir ini akan dipakai
mode PDU untuk proses pengiriman dan penerimaannya.
Maka dari itu prosedur pengiriman dan penerimaan SMS perlu dibuat,
karena pada saat SMS diterima, data yang diterima oleh komputer masih dalam
bentuk PDU bukan dalam bentuk Text seperti yang dibaca dalam perangkat
mobile phone. Begitu juga sebaliknya, pada saat akan mengirimkan SMS melalui
komputer. Komputer akan cenderung memakai dalam bentuk Text, sedangkan
pengiriman SMS harus dalam bentuk PDU.
Prosedur pengiriman dan penerimaan ini dibuat agar sistem aplikasi
polling SMS yang dibuat dapat menerima SMS dari bentuk PDU dan
mengubahnya dalam bentuk Text. Serta sebaliknya jika ingin mengirimkan SMS,
maka komputer akan mengubah bentuk Text ke dalam bentuk PDU-nya.
4.2.2.1 Penerimaan SMS
Prosedur Penerimaan SMS merupakan prosedur untuk pengolahan data
SMS yang masuk atau format PDU (bilangan heksa) untuk diolah menjadi bentuk
text. Untuk pembuatan prosedur penerimaan atau penerjemaan PDU terima, maka
harus mengikuti format PDU tersebut (Format PDU terima dapat dilihat dalam
bab2 pada sub bab 2.4 tentang PDU).
Berikut ini adalah potongan program prosedur penerimaan SMS: function Terima: integer;
…
…
begin
…
…
//untuk membaca isi sms (PDU) dari hardware
F_Utama.MSCommRcv.Output:='AT+CMGL='+IntToStr(l)+Chr(13);
…
…
//membaca isi sms (Text) dan mengisikan pada sebuah variable
U_RnS.F_RnS.SGrid_Rx.RowCount:= jum+1; U_RnS.F_RnS.SGrid_Rx.Cells[0,i]:= inttostr(i); U_RnS.F_RnS.SGrid_Rx.Cells[1,i]:= balikinNo(tmpDu[i,1]); U_RnS.F_RnS.SGrid_Rx.Cells[2,i]:= Str2Dt(balikinDt(tmpDu[i,2])); U_RnS.F_RnS.SGrid_Rx.Cells[3,i]:= balikinIsi(tmpDu[i,3]);
Universitas Kristen Petra
93
U_RnS.F_RnS.SGrid_Rx.Cells[4,i]:= '0'; …
…
//untuk menghapus isi sms dari hardware (inbox)
F_Utama.MSCommRcv.Output:='AT+CMGD='+no[i]+Chr(13);
…
…
end;
4.2.2.2 Pengiriman SMS
Prosedur Pengirimaan SMS merupakan prosedur untuk pengolahan data
text yang akan diolah menjadi format PDU (bilangan heksa). Untuk pembuatan
prosedur pengirimaan atau pengolahan bentuk menjadi PDU kirim, maka harus
mengikuti format PDU tersebut (Format PDU kirim dapat dilihat dalam bab2 pada
sub bab 2.4 tentang PDU). Pada intinya pada PDU kirim harus mengirimkan data
sesuai dengan format yang ada. Dengan format yang berbeda maka pengiriman
akan gagal karena format PDU tersebut telah menjadi standard yang ada.
Berikut ini adalah potongan program prosedur pengirimaan PDU atau
SMS: function Kirim(StrKpd,StrIsi,smscenter:string):integer;
…
…
begin
…
…
F_Utama.MSCommSend.Output:='AT+CMGS='+IntToStr(panjang[i])+Chr(13);
…
…
end;
4.2.3. Proses Pengambilan Data, Penggolahannya serta Proses Memasukkan Data
ke Dalam Database.
Proses pengambilan data, pengolahannya serta proses memasukkan data
ke dalam database adalah proses yang dilakukan oleh program aplikasi Polling
SMS untuk mengambil dan mengolah data yang masuk (sebelum data tersebut
dimasukkan ke dalam sebuah database) hingga memasukkan data ke dalam
database. Proses pengambilan dan pengolahannya ini berkaitan dengan sistem
aplikasi Polling ini dibuat (karena sistem ini juga mensyaratkan kode-kode
Universitas Kristen Petra
94
tertentu terhadap SMS yang masuk), sehingga isi SMS yang masuk perlu
diperiksa terlebih dulu sebelum diproses.
4.2.3.1 Proses Pengambilan Data
Untuk proses pengambilan data adalah dengan melakukan panggilan
terhadap function program yang memuat tentang program Terima SMS sesuai
dengan program yang ada pada sub bab 4.2.1.1 tentang terima SMS. Tidak hanya
terima saja namun juga mengolahnya ke dalam bentuk text.
4.2.3.2 Proses Pemeriksaan Isi SMS serta Proses Memasukkan Data ke Dalam
Database.
Pemeriksaan Isi SMS ini berkaitan dengan penentuan format yang telah
ditetapkan sebelumnya. Untuk format SMS yang diterima server ada 2 (dua)
macam format yaitu format SMS untuk registrasi dan format SMS untuk
mengikuti polling. Untuk keterangan mengenai format SMS dapat dilihat pada
bab3 sub bab 3.4 mengenai Perancangan Format SMS.
Ketika isi SMS yang masuk ke dalam server dan telah diperiksa format
SMSnya serta juga telah diolah, maka data yang telah masuk tersebut akan di
masukan ke dalam database.
Berikut ini adalah potongan program untuk pemeriksaan Isi SMS: procedure TF_Utama.TimerTimer(Sender: TObject);
begin
…
…
Depan:= Copy(M_rx, 1, Pos(' ', M_rx) - 1);
Belakang:= Copy(M_rx, Pos(' ', M_rx) + 1, Length(M_rx));
…
…
//untuk format registrasi
if UpperCase(Depan) = 'REG' then
…
…
//Cek nama polling.
…
ADOQuery.SQL.Append('SELECT id FROM polling WHERE nama = ' +
…
…
//Cek status Polling.
…
Universitas Kristen Petra
95
ADOQuery.SQL.Append('SELECT actived, opened FROM polling WHERE id = ' +
IntToStr(ID));
…
…
//Cek nomer HP.
…
ADOQuery.SQL.Append('SELECT id FROM registrasi WHERE id_polling = ' +
IntToStr(ID) + ' AND no_hp = ' + QuotedStr(No_HP_tx));
…
…
//untuk format menjawaban polling
//Cek Nama Polling.
…
ADOQuery.SQL.Append('SELECT id FROM polling WHERE nama = ' +
QuotedStr(Depan));
…
…
//Cek Status actived.
…
ADOQuery.SQL.Append('SELECT actived FROM polling WHERE id = ' +
IntToStr(ID));
…
…
//Cek Status opened.
…
ADOQuery.SQL.Append('SELECT opened FROM polling WHERE id = ' +
IntToStr(ID));
…
…
//Cek Status oneormore.
…
ADOQuery.SQL.Append('SELECT oneormore FROM polling WHERE id = ' +
IntToStr(ID));
…
…
//Cek Status Replied.
…
ADOQuery.SQL.Append('SELECT replied FROM polling WHERE id = ' +
IntToStr(ID));
…
…
…
end;
Universitas Kristen Petra
96
4.2.4. Membuat Desain Web
Membuat desain Web dengan tujuan agar setiap peserta polling tidak
perlu mengirimkan SMS lagi untuk mengetahui hasil polling yang diadakan
melainkan dapat dilihat melalui Web yang telah tersedia. Tampilan untuk desain
web yang telah dibuat adalah sebagai berikut lihat gambar 4.33 sampai gambar
4.37.
Gambar 4.33. Halaman Depan
Dalam Halaman Utama yang disediakan ada beberapa yang perlu di
perhatikan antara lain adalah:
a. Halaman Utama mempunyai 4 link utama yaitu link untuk ke Halaman
Utama, link ke Halaman Help, link ke Halaman Tentang, link ke Halaman
FAQ.
b. Di Halaman Utama akan terlihat adanya satu Combo Box dan satu Tombol
Submit yaitu dimana Combo Box digunakan untuk memilih Nama Polling
yang akan dilihat hasilnya, dan tombol Sumbit akan digunakan untuk
mengeksekusi sehingga akan muncul hasil Polling sesuai dengan nama
Polling yang dipilih.
Ketika isi ComboBox dipilih, maka program Web akan melakukan
koneksi dengan database (untuk mengambil semua data yang diperlukan untuk
Universitas Kristen Petra
97
ditampilkan dalam Web yang ada). Bandingkan dengan potongan program berikut
ini: <select name="hasiel">
<?
include "konek_mysql.inc.php";
$tampil=mysql_db_query($db,"SELECT * FROM polling");
while($row=mysql_fetch_row($tampil))
{
?>
<option value =" <? echo $row[0]; ?>" >
<? echo $row[1]; ?>
</option>
<?
}
?>
</select>
Gambar 4.34. Halaman Help
Dalam Halaman Help yang disediakan ada beberapa yang perlu di
perhatikan antara lain adalah:
Universitas Kristen Petra
98
a. Halaman Help mempunyai 4 link utama yaitu link untuk ke Halaman
Utama, link ke Halaman Help, link ke Halaman Tentang, link ke Halaman
FAQ.
Gambar 4.35. Halaman Tentang
Dalam Halaman Tentang yang disediakan ada beberapa yang perlu di
perhatikan antara lain adalah:
a. Halaman Tentang mempunyai 4 link utama yaitu link untuk ke Halaman
Utama, link ke Halaman Help, link ke Halaman Tentang, link ke Halaman
FAQ.
Universitas Kristen Petra
99
Gambar 4.36. Halaman FAQ
Dalam Halaman FAQ yang disediakan ada beberapa yang perlu di
perhatikan antara lain adalah:
a. Halaman FAQ mempunyai 4 link utama yaitu link untuk ke Halaman
Utama, link ke Halaman Help, link ke Halaman Tentang, link ke Halaman
FAQ.
Gambar 4.37. Halaman Hasil Polling
Dalam Halaman Utama yang disediakan ada beberapa yang perlu di
perhatikan antara lain adalah:
Universitas Kristen Petra
100
a. Halaman Hasil Polling mempunyai 4 link utama yaitu link untuk ke
Halaman Utama, link ke Halaman Help, link ke Halaman Tentang, link ke
Halaman FAQ.
b. Halaman Hasil Polling akan menampilkan juga hasil polling dalam bentuk
Diagram Batang.
c. Dalam halaman hasil Polling akan terlihat adanya tombol Create Pie
Chart dimana tombol ini yang akan mengeksekusi dari hasil polling yang
ada atau yang ditampilkan dalam halaman hasil Polling ini untuk dibuat
sebuah diagramnya, yaitu diagram dengan bentuk Pie Chart.
Tampilan Diagram Batang dalam Web selain memampilkan diagram
batang, juga akan menampilkan jumlah atau hasil responden untuk pilihan-pilihan
jawaban dari salah satu nama polling yang diadakan. Tampilan Diagram Batang
dalam WEB dibuat sesuai dengan potongan program berikut ini: <?
include "konek_mysql.inc.php";
$query="select * from polling where id='".$_POST['hasiel']."'";
$tampil=mysql_db_query($db,$query);
while($row=mysql_fetch_row($tampil))
{
echo "<strong>".$row[1]."</strong>";
}
//mysql_select_db($db);
$query="select * from detail_polling where id_polling='".$_POST['hasiel']."'";
$tampil=mysql_db_query($db,$query);
while($row=mysql_fetch_row($tampil))
{
$jmlvote=$jmlvote+$row[4];
}
echo("<table>");
echo("<tr>");
echo("<td>");
echo("<p>".$row[3]."");
echo("<p><table border=1>");
$count=1;
$query='';
$query="select * from detail_polling where id_polling='".$_POST['hasiel']."'";
$tampil=mysql_db_query($db,$query);
while($row=mysql_fetch_row($tampil))
Universitas Kristen Petra
101
{
if($jmlvote==0)
{
$jmlvote=1;$divzero=1;
}
$pct_vote.$count=sprintf("%01.1f",(($row[4]/$jmlvote)*100));
$graf_vote.$count=$pct_vote.$count;
echo("<tr>");
echo("<td>".$row[3]."</td><td width=200><img src=\"1.gif\"
width=".$graf_vote.$count." height=8></td>");
echo("<td>".$row[4]." (".$pct_vote.$count." %) </td>");
echo("</tr>");
$count++;
}
if($divzero==1) $jmlvote=0;
echo("<tr>");
echo("<td></td><td></td><td>Total Pemilih:$jmlvote</td>");
echo("</tr>");
echo("</table>");
?>
Begitu juga dengan tampilan Diagram PieChart, di dalamnya tidak hanya
menampilkan diagram piechart saja, namun juga menampilkan jumlah atau hasil
responden untuk pilihan-pilihan jawaban (dari salah satu nama polling yang
diadakan) untuk menampilkan Diagram PieChart dalam Web dapat memakai
prosedur sesuai dengan potongan program berikut ini: <? include "konek_mysql.inc.php"; $count=1; $query="select * from detail_polling where id_polling='".$_POST['loncat']."'"; $tampil=mysql_db_query($db,$query); while($row=mysql_fetch_row($tampil)) { $jmlvote=$jmlvote+$row[4]; $keterangan[$count]=$row[3]; $potongan[$count]=$row[4]; $jmlvote=$jmlvote+$row[$count]; $count++; } $count=1; $tampil=mysql_db_query($db,$query); while($row=mysql_fetch_row($tampil)) { $pct_vote[$count]=sprintf("%01.1f",(($row[$count]/$jmlvote)*100)); $count++; } $jml=0; $derajat=array(); $diameter=200; $radius=$diameter/2; $count=$count-1;
Universitas Kristen Petra
102
// perbandingan masing-masing bagian for ($x=1; $x<=$count; $x++){$jml+=$potongan[$x];} for ($y=1; $y<=$count; $y++) {if($jml==0){$jml=1;$divzero=1;}$derajat[$y]=($potongan[$y]/$jml) * 360;} if($divsero==1) {$jml=0;} // kirim header header("Content-Type:image/JPEG"); // variabel image $im=ImageCreate(500,500); //variabel warna $a=0; $b=0; $c=0; $ket_warna=300; $hitam=ImageColorAllocate($im,0,0,0); $putih=ImageColorAllocate($im,255,255,255); for($i=1;$i<=$count;$i++) { $warna[$i]=ImageColorAllocate($im,$a+rand(0,255),$b+rand(0,255),$c+rand(0,255)); } //blok kanvas ImageFill($im,0,0,$putih); for($z=1; $z<=$count; $z++) { //menghitung kemudian menggambar masing-masing bagian ImageArc($im, 150, 150, $diameter, $diameter, $d_stop, ($d_stop+$derajat[$z]),$hitam); $d_stop = $d_stop+$derajat[$z]; //menghitung koordinat akhir dari //masing-masing bagian $stop_x=round(150+($radius * cos($d_stop*pi()/180))); $stop_y=round(150+($radius * sin($d_stop*pi()/180))); //menggambar garis batas ImageLine($im,150,150,$stop_x,$stop_y,$hitam); } //menghitung nilai tengah masing-masing bagian //nilai ini dipakai untuk mewarnai masing-masing bagian $d_sekarang=0; $d_pointer=0; $count2=1; $query="select * from detail_polling where id_polling='".$_POST['loncat']."'"; $tampil=mysql_db_query($db,$query); while($row=mysql_fetch_row($tampil)) { $jml_voting[$count2]=$row[4]; $count2+=1; } for($z=1; $z<=$count; $z++) { $d_pointer=$d_sekarang+$derajat[$z]; $sudut=($d_sekarang+$d_pointer)/2; $d_sekarang=$d_pointer; $stop_x=round(150+($radius * cos($sudut*pi()/180))); $stop_y=round(150+($radius * sin($sudut*pi()/180))); $nt_x=round((150+($stop_x))/2); $nt_y=round((150+($stop_y))/2); //mewarnai setiap bagian ImageFillToBorder($im,$nt_x,$nt_y,$hitam,$warna[$z]); imagefilledrectangle($im,10,$ket_warna,20,$ket_warna+10,$warna[$z]); ImageString($im,3,30,$ket_warna,$keterangan[$z],$hitam); ImageString($im,3,100,$ket_warna,$jml_voting[$z]." suara",$hitam); $ket_warna+=20; } $query="select * from polling where id='".$_POST['loncat']."'";