13
Pada Gambar 11 memperlihatkan adanya relasi antara entity set inbox, dengan set outbox, dan set sent item.
Gambar 12 ERD Sistem iCatalog
Pada Gambar 11 memperlihatkan adanya relasi antara entity set penjualan, dengan entity set agen, entity set pembeli, entity set mobil, entity set model, entity
set merk, entity set komentar, dan entity set guest.
4. Hasil dan Pembahasan
Inisialisasi Gammu
Pada implementasi sistem layanan iCatalog berbasis SMS ini, dibutuhkan aplikasi Gammu yang digunakan sebagai SMS gateway antara handphone dengan sistem yang
dibuat. Agar Gammu dapat mengidentifikasi handphone yang terhubung dengan komputer, perlu dilakukan edit file gammurc sebagai berikut.
Kode Program 1
Konfigurasi file gammurc
[gammu] port = com3:
connection = at19200
Perintah pada Kode Program 1 digunakan untuk menghubungkan Gammu ke HP menggunakan port:com3 dengan setting koneksi AT19200. Untuk
melakukan uji koneksi handphone yang sudah terpasang dengan PC, digunakan perintah seperti pada Kode Program 2
14
Kode Program 2 Identifikasi Handphone
C:\Gammu\bingammu identify
Hasil yang akan ditampilkan dari perintah pada Kode Program akan menampilkan identitas handphone seperti pada Gambar berikut ini.
Gambar 13 Hasil Identifikasi
Gammu membutuhkan sebuah database untuk menyimpan setiap pesan yang masuk maupun yang telah dikirimkan. Pada aplikasi SMS Gateway untuk
menunjang aplikasi iCatalog ini digunakan database MySQL agar mudah terintegrasi dengan script PHP yang akan digunakan pada aplikasi pengelolaan
yang berbasis web.
Kode Program 3 Konfigurasi File SMSdrc
[gammu] port = com3:
connection = at19200 service = MYSQL
user = root password =
pc = localhost database = showroom
Pada Kode Program 3 menunjukkan konfigurasi file SMSdrc agar Gammu dapat terkoneksi dengan database MySQL yang digunakan pada sistem ini.
Implementasi Proses Layanan Cari
Ketika aplikasi iCatalog menerima sebuah pesan masuk berisi permintaan cari dari agen, dibutuhkan fungsi yang dapat mengidentifikasi dan membalas
kepada pengirim pesan tersebut, atau yang biasa disebut dengan autorepply. Format atau isi dari SMS Cari agar mendapat balasan adalah, “ Carimerk”,
atau dapat juga “ CariMerkTahun”. Pada sistem yang dibuat ini menggunakan RunOnReceive yang merupakan fitur pada Gammu untuk
menjalankan suatu script ketika ada pesan yang masuk.
Kode Program 4 Konfigurasi RunOnReceive
runonreceive = D:exec.bat
Kode Program 4 merupakan bagian dari isi file smsdrc yang diaktifkan fitur RunOnReceive untuk mengeksekusi sebuah file batch yaitu exec.bat ketika sistem
menerima sebuah pesan masuk.
15
Kode Program 5 File exec.bat
C:\wamp\php\php -f C:\wamp\www\sms\proses.php
File batch pada kode program 5 akan menjalankan sebuah file yaitu proses.php yang merupakan service untuk mengidentifikasi pesan yang masuk dan
menentukan respon yang dijalankan.
Kode Program 6 File proses.php untuk menjalankan proses autoreply pada layanan
SMS Cari
1. 2.
3. 4.
5. 6.
7. 8.
9. 10.
11. 12.
13. 14.
15. 16.
17. 18.
19. 20.
21. 22.
23. 24.
25. 26.
27. 28.
29. 30.
31. 32.
33. 34.
35. 36
37. 38.
39. 40.
41. 42.
43. 44.
45. 46.
47. 48.
49. 50.
51. 52.
53. 54.
55. 56.
57. ?php
Includekoneksi.php; File proses.php digunakan untuk mengirimkan reply ketika ada
sms masuk sql = SELECT ID, SenderNumber, TextDecoded FROM
showroom.inbox WHERE processed = false; qry = mysql_querysql or diemysql_error;
while arr = mysql_fetch_arrayqry { membaca id sms
id = arr[id]; membaca isi sms
sms = arr[TextDecoded]; memecah isi sms berdasarkan karakter
sender = arr[SenderNumber]; pecah = explode ,sms;
qry5 = select from showroom.agen where hp=.sender. ;
hasil5 = mysql_queryqry5; cek_hp = mysql_num_rowshasil5;
if emptycek_hp {
} else
{ cek keyword apakah sama dengan LAPORAN?
if strtoupperpecah[0] == CARI {
qry2 = select from showroom.mobil where tag like .pecah[1]. AND tahun like .pecah[2]. AND sold=false ;
hasil2 = mysql_queryqry2; cek_hasil = mysql_num_rowshasil2;
if emptycek_hasil {
qry3 = INSERT INTO showroom.outbox DestinationNumber, TextDecoded VALUES .arr[SenderNumber].,HASIL PENCARIAN TIDAK
DITEMUKAN. SILAHKAN KUNJUNGI WEBSITE KAMI UNTUK TIPE LAINNYA; mysql_queryqry3;
} else
{ i = 0;
while data2 = mysql_fetch_arrayhasil2 {
i++; nopol = data2[no_polisi];
tag = data2[tag]; tahun = data2[tahun];
warna = data2[warna]; harga = data2[harga];
pesan = Hasil Pencarian :\n.i.. .nopol. .tag. .tahun. .harga.\n INFO LEBIH LANJUT SILAHKAN KUNJUNGI WEBSITE
KAMI. BERKAH MOTOR ; qry4 = INSERT INTO showroom.outbox DestinationNumber, TextDecoded
VALUES .arr[SenderNumber].,.pesan.; mysql_queryqry4;
teks[] = implode ,teks; }
16
58. 59.
60. 61.
62. 63.
64. 65.
66. 67.
68. 69.
70. }
} else
{ mysql_queryINSERT INTO showroom.outboxDestinationNumber,
TextDecoded VALUES .arr[SenderNumber]., FORMAT SMS ANDA SALAH or diemysql_error;
} }
mysql_queryUPDATE showroom.inbox SET processed=true WHERE ID=.arr[ID].;
} ?
Kode program di atas digunakan untuk mengidentifikasi pesan yang masuk dan menentukan respon yang dijalankan. Pada baris 10 sampai dengan baris 15
untuk membaca ID SMS, membaca isi SMS, dan memecah isi SMS berdasarkan keyword “”. Pada baris 16 sampai 23 digunakan untuk mencocokkan sender
number ke database agen. Jika tidak cocok, maka tidak akan melakukan SMS balasan. Apabila cocok, akan menjalankan program pada baris 24 sampai 31
yang berfungsi untuk melakukan pengecekan keyword dengan laporan SMS Format SMS. Apabila keyword yang dicari di database mobil tidak
diketemukan, akan menjalankan baris 32 sampai 37, dan jika sebaliknya, akan menjalankan baris 39 sampai 59. Apabila terjadi kesalahan saat pencocokan
keyword laporan, akan menjalankan baris 60 sampai 66.
Kode Program 7 Proses broadcast mobil baru
1. 2.
3. 4.
5. 6.
7. 8.
9. 10.
11. 12.
13. 14.
15. 16.
17. 18.
19. 20.
21. 22.
23. 24.
25. 26.
27. 28.
29. 30.
31. 32.
33. 34.
35. pesan = AGEN YTH. \n PRODUK BARU:
\n.nopol..tag..tahun.\n.harga.\n INFO LEBIH LANJUT SILAHKAN KUNJUNGI WEBSITE KAMI. BERKAH MOTOR ;
sql3 = select from showroom.agen where active = true; qry3 = mysql_querysql3;
while row3 = mysql_fetch_arrayqry3 {
nohp = row3[hp]; email = row3[email];
nama = row3[nama]; letter = Dear .nama., \n
Kami memiliki prduk baru : \n No Polisi : .nopol.\n
Merk : .tag.\n Tahun : .tahun.\n
Harga : .harga.\n Untuk informasi lebih lanjut, silahkan kunjungi website kami.\n
\n Salam, \n
\n BERKAH MOTOR;
Broadcast pesan ke setiap no hp qry4 = INSERT INTO showroom.outbox DestinationNumber,
TextDecoded VALUES nohp, pesan; mysql_queryqry4;
mailemail, subject, letter; }
broadcast Pembeli pesan2 = PELANGGAN YTH. \n PRODUK BARU:
\n.nopol..tag..tahun.\n.harga.\n INFO LEBIH LANJUT SILAHKAN KUNJUNGI WEBSITE KAMI. BERKAH MOTOR ;
sql5 = select from showroom.pembeli where active = true; qry5 = mysql_querysql5; while row5 = mysql_fetch_arrayqry5
{ hppembeli = row5[hp_pembeli];
email = row5[email_pembeli]; nama = row5[nama_pembeli];
17
36. 37.
38. 39.
40. 41.
42. 43.
44. 45.
46. 47.
48. 49.
50. 51.
letter2 = Dear .nama., \n Kami memiliki prduk baru : \n
No Polisi : .nopol.\n Merk : .tag.\n
Tahun : .tahun.\n Harga : .harga.\n
Untuk informasi lebih lanjut, silahkan kunjungi website kami.\n \n
Salam, \n \n
BERKAH MOTOR; Broadcast pesan ke setiap no hp
qry6 = INSERT INTO showroom.outbox DestinationNumber, TextDecoded VALUES hppembeli, pesan2;
mysql_queryqry6; mailemail, subject, letter2;
Kode program di atas digunakan untuk mengirim broadcast SMS mobil baru. Pada baris pertama sampai dengan baris 20 berisi format SMS yang akan
di broadcast-kan kepada agen setelah melakukan pengecekan terhadap agen yang dalam status aktif = true. Pada baris 23 sampai 26 berfungsi untuk mem-
broadcast pesan ke setiap nomor agen yang dalam status aktif. Pada baris 28 sampai dengan baris 47 berisi format SMS yang akan di broadcast-kan kepada
pembeli setelah melakukan pengecekan terhadap pembeli yang dalam status aktif = true. Pada baris 49 sampai 52 berfungsi untuk mem-broadcast pesan ke
setiap nomor pembeli yang dalam status aktif.
Hasil Implementasi iCatalog
Gambar 14 tampilan halaman utama web iCatalog
Pada Gambar 14 ditunjukkan halaman utama pada website utama Berkah Motor.
Gambar 15 tampilan halaman Dashboard
Pada Gambar 15, ditunjukkan tamppilan menu Dashboard. Menu dashboard merupakan halaman pertama setelah admin melakukan proses login.
18
Di dalam menu Dashboard terdapat beberapa shortcut atau tombol cepat untuk ke menu-menu di dalam web admin. Selain itu juga menampilkan statistik jumlah
mobil, agen maupun pembeli. Dan juga menampilkan jumlah pengunjung yang telah mengakses halaman web utama.
5. Pengujian Sistem