Aplikasi polling dengan menggunakan media SMS

50
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

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]."&nbsp;(".$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']."'";

Universitas Kristen Petra

103

$tampil=mysql_db_query($db,$query); while($row=mysql_fetch_row($tampil)) { $judul=$row[1]; } //menulis judul ImageString($im,5,120,10,$judul,$hitam); //output ke browser ImagePNG($im); ?>