KOTA YOGYAKARTA
VIA SMS (
Short Messages service
)
SKRIPSI
Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik
Jurusan Teknik Informatika
Disusun Oleh :
Nama : Ony Purba Kesuma
NIM : 015314072
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
INFORMATION SERVICE
VIA SMS (
Short Messages service
)
FINAL PROJECT
Presented as Partial Fulfillment of the Requirements to Obtain the Sarjana Teknik Degree Department
of Informatics Technology
Disusun Oleh :
Nama : Ony Purba Kesuma
NIM : 015314072
DEPARTMENT OF INFORMATICS TECHNOLOGY
FACULTY OF ENGINEERING
SANATA DHARMA UNIVERSITY
YOGYAKARTA
HALAMAN PERSEMBAHAN
Karya Ini Kupersembahkan untuk
mereka yang ku cintai dan kasihi
Tuhan Allah dan Putra dan Roh Kudus
Bapak-ku Dan Ibu-ku
Kakak-ku
Dan Orang-orang Disekitar-ku
HALAMAN MOTTO
Berjuanglah dengan semangat yang keras dan kamu akan
mendapakan apa yang kamu inginkan
Jangan melakukan pekerjaan karena terpaksa, lakukanlah
dengan ketulusan hati
Lakukanlah apa yang seharusnya kamu lakukan sekarang dan
jangan pernah menundanya
Biarlah kita jatuh, namun bagai mana kita dapat mengurangi
rasa sakit yang kita alami
dan dapat kembali berdiri lagi dengan tegak
KEASLIAN KARYA
Saya menyatakan dengan ini, bahwa sesungguhnya skripsi yang telah saya susun dan dipertahankan di depan Panitia Penguji ini, tidak memuat atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.
Yogyakarta, 8 Agustus 2007
Penulis
KATA PENGANTAR
Penulis ucapkan puji syukur kepada Tuhan Yang Maha Kuasa yang telah melimpahkan berkat-Nya sehingga penulis dapat menyelesaikan pendidikan, dan penelitian serta penulisan tugas akhir ini dengan baik.
Tugas akhir ini dapat disusun dan diselesaikan juga atas dukungan dan bantuan dari berbagai pihak. Pada kesempatan ini, penulis ingin mengucapkan terima kasih banyak kepada pihak-pihak yang telah memberikan bimbingan, petunjuk, kerjasama, kritikan, maupun saran:
1. Bapak Agung Hernawan, S.T., dan Ibu Ridowati Gunawan, S.Kom., M.T., selaku dosen pembimbing.
2. Ir. Gregorius Heliarko SJ, SS, BST, MA, M.Sc., selaku Dekan Fakultas
Teknik Universitas Sanata Dharma.
3. Ibu A.M. Polina, M.Sc. selaku Ketua Jurusan Teknik Informatika Universitas Sanata Dharma.
4. Bapak Agung Hernawan, S.T., Ibu Ridowati Gunawan, S.Kom., M.T., Bapak Stevanus Wijaya, ST., Anastasia Rita Widiarti, S.Si., M.Kom, selaku panitia penguji pada ujian pendadaran penulis.
5. Kedua orang tua penulis serta kakak penulis, yang selalu berdoa kepada Tuhan, memberikan dorongan dan semangat untuk menyelesaikan kuliah ini. 6. Seluruh Staf dan dosen pengajar di Universitas Sanata Dharma pada umumnya
dan Jurusan Teknik Informatika pada khususnya.
7. Narko “Gasong”, yang selalu membantu, membimbing, dengan segenap hati kepada penulis dalam menyelesaikan tugas akhir ini.
8. Sigit MS, terima kasih untuk semuanya.
9. Keluarga besar Pak Darno dan Bu Wiji, Dani, Wulan, Tika, dan Bagus.
11.Keluarga besar BFF, Danang ‘bogel’, Joko ‘bolot’, Gunawan ‘sodom’, Eko ‘kodok’, Dhani ‘kancil’, Afik ‘goupur’, Edi ‘otong’, Ardi ‘daan’, Jun. Terimakasih atas persahabatan dan kebersamaannya selama ini.
12.Adrianus Mado,S.T., Damianus S, S.T., Anand Silaonang (makasih untuk kertasnya), Sigit Giant S.T, Ucok Firdaus (makasih untuk cd linux-nya dan buku-bukunya), makasih untuk kebersamaanya selama ini dan juga yang telah memberikan semangat agar cepat lulus.
13.Vivi, yang selalu membantu untuk menyelesaikan tugas akhir.
14.Christine S.T, Bali Nita, Vindi, Desni S.T, Tiwi, Robin S.T, Yakob, Wahyu S.T, Theo S.T, Tanto, Danu, Andi, Tria, Ida, Heni, Ema, Tio, Grace Cempluk, Grace ‘Unyil’, Indra, Nia, Willy, Mario dan Angel, semangat-semangat.
15.Teman – teman TI’01, yang gak bisa disebutin satu persatu. Lanjutkan perjuangan kalian ya.
16.Anak-anak kost “Bu Siti”, Wiwin Agus, Sigit PTK ,Wahyu Gentho, Nathan, Ervan, terima kasih untuk semuanya.
Akhir kata, penulis berharap bahwa skripsi yang masih jauh dari sempurna ini dapat bermanfaat bagi pihak yang membutuhkannya, khususnya di kalangan USD. Semoga skripsi ini dapat memberikan inspirasi dan sumbangan ilmu pengetahuan.
Yogyakarta, Agustus 2007
Ony Purba Kesuma
DAFTAR ISI
HALAMAN JUDUL...………...i
HALAMAN PERSETUJUAN…...…….……….ii
HALAMAN PENGESAHAN...………....iii
HALAMAN PERSEMBAHAN...……….iv
HALAMAN MOTTO...………...v
KEASLIAN KARYA ...………...vi
ABSTRAKSI...………...vii
ABSTRACT...………...viii
KATA PENGANTAR...………...ix
DAFTAR ISI...……….…..xi
DAFTAR GAMBAR...………...xiv
DAFTAR TABEL...………...xvii
BAB I Pendahuluan ………1
1.1Latar Belakang Masalah………...1
1.2Rumusan Masalah..………...2
1.3Batasan Masalah.……….………..2
1.4Tujuan Penulisan...………2
1.5Manfaat Penulisan...………3
1.6Metodologi Penelitian .……….3
1.7Sistematika Penulisan………....4
BAB II Landasan Teori………5
2.1 Siatem Informasi………...………5
2.2 Use Case Diagram...…………..………5
2.3 ERD ( Entity Relationship Diagram )...7
2.4 DFD ( Data Flow Diagram )...11
2.5 SMS dan SMS Gaateway...12
2.6 Kannel...13
2.7 PHP (Personal Home Page)...19
BAB III Analisis dan Perancangan Sistem...23
3.1 Analisa Sistem...23
3.1.1 Gambaran Umum Sistem...23
3.1.2 Desain Arsitektur...23
3.1.3 Desain Aplikasi SMS...25
1. Proses Aplikasi Kannel...25
2. Proses Aplikasi smsbalikuser.php...26
3. Proses Aplikasi updatesms.php...27
3.1.4 Requirement Analysis...29
3.1.4.1 Use Case Diagram...29
3.1.5 Logical Design...30
3.1.5.1.1 Proses Modeling...30
3.1.5.1.2 Context Diagram...30
3.1.5.1.3 Bagan Berjenjang...31
3.1.5.1.4 Overview Diagram...32
3.1.5.1.5 Data Modeling...36
3.2 Disain Sistem...37
3.2.1 Disain Database...37
3.2.2 Relasi Antar Tabel...40
3.2.3 Disain Input...41
3.2.3.1 Disain Input Super Admin...41
3.2.3.1 Disain Input Admin...42
3.2.4 Disain Output...45
3.2.3.1 Disain Output Super Admin...45
3.2.3.1 Disain Output Admin...46
BAB IV Implementasi...50
4.1 Kebutuhan Sistem...50
4.2 Konfigurasi Kannel...51
4.3 Proses Aplikasi SMS...53
4.3.1.1 Sms masuk...53
4.3.1.2 Sms keluar...53
4.3.2 Updatesms.php...54
4.3.3 Smsbalikuse.php...57
4.4 Aplikassi Web...58
4.4.1 Proses Tambah...58
4.4.2 Proses Ubah...59
4.4.3 Proses Hapus...60
4.4.4 User Interface...62
BAB V Analisis Dan Hasil Implentasi...67
5.1 Hasil Pengujian Sistem...67
5.1.1 Pengujian Melalui SMS...67
5.1.2 Pengujian Melalui Web...69
5.2 Kelebihan Sistem...70
5.3 Kekurangan Sistem...70
BAB VI Analisis Dan Hasil Implentasi...71
6.1 Kesimpulan...71
6.2 Saran...71
DAFTAR GAMBAR
Gambar Keterangan Halaman
2.1 Simbol Use Case 6
2.2 Simbol Aktor 6
2.3 Contoh dari E-R Diagram 7
2.4 Contoh dari Entity 7
2.5 Contoh dari Atribut 8
2.6 Contoh dari identifier atau key 9
2.7 Contoh dari Relasi 9
2.8 Notasi dari Cardinality 10
2.9 Simbol Proses menurut Gane dan Sarson 11
2.10 Simbol dari arus data 11
2.11 Simbol kesatuan luar menurut Gane dan Sarson 12
2.12 Simbol penyimpanan data menurut Gane dan Sarson 12
2.13 cara kerja PHP 20
3.1 Gambar desain arsitektur 23
3.2 Gambar desain arsitektur server 24
3.3 flow chart kannel 25
3.7 Use Case Diagram 29
3.8 Context Diagram 30
3.9 Bagan berjenjang 31
3.10 Overview diagram 32
3.11 Overview diagram level 1 proses 2 33
3.12 Overview diagram level 1 proses 3 34
3.13 Overview diagram level 1 proses 35
3.14 ER Diagram 36
3.15 Relasi antar tabel 40
3.16 desain input login 41
3.17 desain halaman input data admin 41
3.18 desain halaman input data user 42
3.19 desain halaman perintah 42
3.20 desain halaman detail perintah 43
3.21 desain halaman send sms 43
3.22 output halaman admin 45
3.23 output halaman user 46
3.24 output halaman perintah 46
3.25 output halaman detail perintah 47
3.26 output halaman inbox 47
3.27 output halaman detail perintah 48
3.29 output halaman sent item admin 49
4.1 halaman login 62
4.2 halaman data admin 62
4.3 halaman data user 63
4.4 halaman perintah 63
4.5 halaman detail perintah 64
4.6 halaman inbox 64
4.7 halaman inbox admin 65
4.8 halaman sent item user 65
4.9 halaman sent item admin 66
DAFTAR TABEL
Table Keterangan Halaman
3.1 Tabel Input Output Proses Modeling 30
3.2 Tabel admin 37
3.3 Tabel user 37
3.4 Tabel perintah 37
3.5 Tabel detail_perintah 38
3.6 Tabel inbox 38
3.7 Tabel inbox_admin 38
3.8 Tabel sent_item_user 39
3.9 Tabel sent_item_admin 39
3.10 tabel desain input sms untuk admin 44
3.11 tabel sintaks penulisan sms untuk admin 44
3.12 tabel desain penulisan sms untuk 44
3.13 tabel sintaks penulisan sms untuk user 45
3.14 Tabel output sms untuk admin 46
4.15 Tabel output sms untuk user 47
5.1 output input user yang terdaftar 67
5.2 output input User yang sisa dananya tidak mencukupi 68
5.3 output input User yang tidak terdaftar 68
5.4 output input Admin yang terdaftar 68
1.1Latar Belakang Masalah
Yogyakarta sebagai kota besar menyediakan berbagai macam layanan dan
fasilitas umum untuk mencukupi kebutuhan warganya. Terdapat banyak fasilitas
umum di kota Yogyakarta misalnya: rumah sakit, tempat parwisata, pom bensin,
hotel, pasar, sekolah dll. Keberadaan fasilitas-fasilitas layanan publik tersebut,
tersebar di berbagai tempat dan membutuhkan adanya pengelolaan sistem
informasi sehingga warga dan pendatang yang membutuhkan pelayanan dapat
mengakses dengan lebih cepat.
Kebutuhan untuk mengakses informasi mengenai letak fasilitas publik
secara cepat mendorong pembangunan suatu layanan informasi yang efektif dan
efisien. Salah satu cara yang dapat dipakai adalah layanan pesan singkat (short
messages service SMS). Layanan informasi dalam bentuk sms dinilai cukup
efektif karena saat ini sebagian besar orang sudah memiliki telepon selular
(handphone).
Saat ini teknologi untuk membangun sms gateway sudah banyak, salah satunya ialah menggunakan kannel. Kannel adalah sebuah program yang dapat bekerja sebagai SMS gateway untuk GSM modem, dimana telpon GSM dapat
1.2Rumusan Masalah
Dari latar belakang di atas dapat dirumuskan suatu permasalahan yaitu:
Bagaimana menerapkan teknologi kannel pada layanan informasi letak fasilitas umum kota Yogyakarta melalui layanan pesan singkat (SMS).
1.3Batasan Masalah
1. Hanya untuk menangani informasi letak fasilitas umum kota Yogyakarta
berupa alamat dan no telpon. Kategori yang akan dibuat dalam skipsi ini
adalah kategori hotel, rumah sakit, dan stasiun. Untuk kategori yang lain
nantinya dapat ditambah oleh admin melalui web atau melalui sms. 2. Update yang dilakukan lewat sms hanya untuk tambah perintah, tambah
detail perintah, tambah user, ubah user, hapus user.
3. Layanan ini hanya diberlakukan bagi semua nomor yang telah terdaftar.
4. Informasi yang di terima oleh pengguna berupa teks.
5. Untuk masalah keamanan sistem, tidak dibahas dalam skripsi ini.
1.4Tujuan Penelitian
Menerapkan teknologi kannel sebagai sms gateway pada implementasi layanan informasi letak fasilitas umum kota Yogyakarta melalui layananpesan
1.5Manfaat Penelitian
Memberikan kemudahan bagi pihak-pihak yang membutuhkan informasi
mengenai letak fasilitas umum di kota Yogyakarta secara cepat
1.6 Metodologi Penelitian
Metode penelitian yang digunakan adalah :
1. Studi literatur
Mengumpulkan data dan informasi yang sesuai dengan permasalahan
yang akan dikerjakan melalui buku-buku, internet dan informasi yang
sesuai dengan system yang akan dibuat.
2. Identifikasi masalah
Menggunakan teknik antara lain :
a. Pengamatan (observasi) : pengumpulan data dan pengamatan langsung di kantor pemerintahan kota yogyakarta.
b. Wawancara (interview) : cara memperoleh keterangan untuk tujuan penelitian dengan cara tanya jawab secara langsung dengan
pemerintah kota Yogyakarta.
3. Menganalisa sistem dan merancang sistem yang akan dibangun.
4. Implementasi sistem
Implementasi sistem berbasis SMS ini dibuat menggunakan program
1.7 Sistematika Penulisan
Sistematika penulisan tugas akhir ini adalah sebagai berikut :
BAB 1 PENDAHULUAN
Bab I membahas mengenai latar belakang masalah, rumusan masalah,
batasan masalah, tujuan dan manfaat penelitian, metode penelitian dan
sistematika penulisan.
BAB II LANDASAN TEORI
Bab II berisi tentang acuan-acuan yang mendukung pokok pembahasan
penulisan ini.
BAB III ANALISIS DAN PERANCANGAN SISTEM
Bab III berisi analisa sistem yang ada dan gambaran mengenai
perancangan sistem yang akan dibuat. Metode penulisan menggunakan
pendekatan tersruktur.
BAB IV IMPLEMENTASI PERANGKAT LUNAK
Bab IV berisi tentang penjelasan rinci mengenai proses implementasi
perangkat lunak sesuai dengan analisa dan rancangan yang
dikembangkan.
BAB V ANALISA HASIL PERANGKAT LUNAK
Bab V berisi tentang analisa perangkat lunak yang telah
diimplementasikan.
BAB VI PENUTUP
2.1 Sistem Informasi
Sistem informasi dapat didefinisikan sebagai sebuah sistem di dalam suatu
organisasi yang merupakan kombinasi dari orang-orang, fasilitas, teknologi,
media, prosedur-prosedur dan pengendalian yang ditujukan untuk mendapatkan
jalur komunikasi penting. Sistem informasi memproses tipe transaksi rutin
tertentu, memberi sinyal kepada manajemen dan yang lainnya terhadap
kejadian-kejadian internal dan eksternal yang penting dan menyediakan suatu dasar
informasi untuk pengambilan keputusan( Jogiyanto,2001 ).
Sistem informasi terdiri dari komponen-komponen yang disebut dengan
istilah blok bangunan ( building block ). Blok bangunan tersebut terdiri dari blok masukan( input block ), blok model( model block ), blok keluaran( output block ) dan blok teknologi( technology block ), blok basis data( database block ) dan blok kendali( control block ). Sebagai suatu sistem, keenam blok tersebut masing-masing saling berinteraksi satu dengan yang lainnya membentuk satu kesatuan
untuk mencapai sasarannya( Jogiyanto, 2001 ).
2.2 Use Case Diagram
horizontal dan nama dari use case yang tertera di atas, di bawah atau di dalam elips. Gambar 2.1 di bawah ini merupakan simbol use case:
Simbol Use case
Gambar 2.1. Simbol Use Case
Actor merupakan segala sesuatu yang dibutuhkan untuk berinteraksi dengan sistem untuk mengubah informasi. Actor dapat berupa orang, organisasi atau
sistem informasi yang lain atau juga suatu waktu kejadian. Gambar 2.2 di bawah
ini merupakan simbol dari actor:
Simbol Actor
Gambar 2.2. Simbol Aktor
2.3 ERD (Entity Relationship Diagram)
ERD merupakan sebuah data model yang memanfaatkan beberapa notasi
untuk menggambarkan data dalam entity dan relasi yang dijelaskan oleh data. Data model adalah sebuah teknik untuk mengorganisasikan dan
mendokumentasikan data dari sistem. Juga disebut dengan database modeling. Gambar 2.3 di bawah ini merupakan contoh E-R diagram
Gambar 2.3. Contoh dari E-R Diagram
Entity adalah sebuah kumpulan dari orang, tempat, objek, kejadian atau konsep yang diperlukan untuk menyimpan data. Nama entity berupa kata benda tunggal (singular noun). Gambar 2.4 merupakan contoh dari entity student
Atribut merupakan sebuah properti yang deskriptif atau karakteristik dari sebuah
entity. Sinonimnya adalah element, property, dan field. Gambar 2.5 merupakan contoh dari atribut student
Gambar 2.5 Contoh dari Atribut
Key merupakan sebuah atribut atau kelompok atribut yang diasumsikan memiliki nilai yang unik untuk setiap instance. Sering juga disebut dengan identifier.
1. Concatenated key merupakan sekelompok atribut yang memiliki identitas instance dari sebuah entity yang unik Sinonimnya composite key dan compound key.
2. Candidate key merupakan satu dari nilai key yang akan berfungsi sebagai primary key dari sebuah entity. Sinonimnya adalah candidate identifier
3. Primary key merupakan sebuah candidate key yang paling umum digunakan untuk mengidentifikasikan secara unik instance dari entity
4. Alternate key merupakan sebuah candidate key yang tidak dapat dipilih untuk menjadi primary key. Sinonimnya adalah secondary key.
Gambar 2.6 merupakan contoh dari identifier atau key
Gambar 2.6. Contoh dari identifier atau key
Relationship adalah sebuah asosiasi bisnis normal yang ada antara satu atau lebih
entity. Relasi mungkin juga mewakili suatu kejadian yang menghubungkan antara
entity atau logika gabungan antara entity. Gambar 2.7 merupakan contoh dari relasi
Student
Is being studied by is enrolled inCurriculum
Gambar 2.7. Contoh dari Relasi
Cardinality merupakan minimum dan maksimum kejadian dari sebuah entity yang
adalah bidirectional maka cardinality haru didefinisikan pada kedua direction
untuk setiap relasi. Gambar 2.8 merupakan notasi dari cardinality.
Gambar 2.8. Notasi dari Cardinality
Foreign key adalah sebuah primary key dari sebuah entity yang digunakan oleh
entity yang lain untuk mengidentifikasikan instance dari sebuah relasi.
Nonspecific relationship merupakan relasi dimana banyak instance dari sebuah
entity berasosiasi dengan banyak instance dari entity yang lainnya. Disebut juga dengan relasi many-to-many relationship. Nonspecific relationship harus diselesaikan. Kebanyakan dari nonspecific relationship diselesaikan dengan sebuah associative entity.
Key-base data model bertujuan untuk mengeliminasikan nonspecific relationship jika ada, menambah asosiatif entity termasuk primary dan alternate key, dan
kardinalitas yang tepat.
2.4DFD (Data Flow Diagram)
Data Flow Diagram merupakan sebuah model proses yang digunakan untuk mengambarkan aliran dari data yang melalui sebuah system dan proses
yang dibentuk oleh sistem.
DFD terdiri dari 4 buah simbol yaitu :
1. Proses (Process)
Proses adalah kerja yang dilakukan oleh sistem dalam merespon arus data
yang datang atau suatu kondisi.
Gambar 2.9 merupakan simbol proses menurut Gane dan Sarson :
Nama Proses
Gambar 2.9 Simbol Proses menurut Gane dan Sarson
2. Arus data (Data Flow)
Arus data adalah data sebagai masukan ke proses atau keluaran dari
sebuah proses.
Gambar 2.10 merupakan simbol dari arus data :
Gambar 2.10 Simbol dari arus data
Arus data adalah data yang bergerak.
Arus data juga digunakan untuk mewakili creation, reading, deleting, atau
updating dari data dalam file atau database (disebut datastore atau penyimpanan data).
3. Kesatuan Luar (External Agent).
Kesatuan luar adalah orang, unit organisasi, sistem atau organisasi luar
yang berinteraksi dengan sistem. Disebut juga dengan external entity.
Gambar 2.11 merupakan simbol kesatuan luar menurut Gane dan Sarson :
Gambar 2.11 Simbol kesatuan luar menurut Gane dan Sarson Nama
kesatuan luar
4. Penyimpanan data (Data Store)
Penyimpanan data digunakan untuk menyimpan data hasil proses maupun
menyediakan data untuk diproses. Sinonim dengan file dan database.
Gambar 2.12 merupakan simbol penyimpanan data menurut Gane dan
Sarson
Gambar 2.12 Simbol penyimpanan data menurut Gane dan Sarson
Penyimpanan data
2.5 SMS dan SMS Gateway
SMS ( Short Messages service ) adalah sebuah teknologi dimana kita dapat mengirimkan pesan singkat antara handphone dengan handphone yang lain. SMS Gateway merupakan pintu gerbang bagi penyebaran Informasi dengan menggunakan SMS. Anda dapat menyebarkan pesan ke ratusan nomor secara
otomatis dan cepat yang langsung terhubung dengan database nomor-nomor
ponsel saja tanpa harus mengetik ratusan nomor dan pesan di ponsel anda karena
Selain itu, dengan adanya SMS Gateway anda dapat mengustomisasi pesan-pesan yang ingin dikirim. Dengan menggunakan program tambahan yang
dapat dibuat sendiri, pengirim pesan dapat lebih fleksibel dalam mengirim berita
karena biasanya pesan yang ingin dikirim berbeda-beda untuk masing-masing
penerimanya.
Untuk kebutuhan SMS Gateway tidak terlalu belebihan dan juga fleksibel karena bisa dibuat dengan PC maupun Notebook. Yang mutlak dibutuhkan adalah
sebuah komputer, sebuah ponsel dengan kabel data ( Kabel berantarmuka serial
yang dapat menghubungi ponsel dengan PC ) atau dapat munggunakan InfraRed
dan piranti lunak sebagai SMS Gateway. Untuk menggunakan InfraRed anda membutuhkan sebuah ponsel yang juga memiliki fasilitas tsb, tapi tidak
dianjurkan untuk kebutuhan SMS gateway karena komunikasi dengan InfraRed tidak terlalu baik jika tergeser gampang putus.
2.6Kannel
Kannel adalah oppen source WAP gateway. Kannel juga dapat bekerja
sebagai SMS gateway untuk jaringan GSM. Semua telpon GSM dapat menerima
dan mngirim pesan.
Telpon seluler yang dapat bekerja di kannel adalah wavecom, premicell,
siemens (c 35, m20, sl45), nokia phone, falcom, ericsson (R520m, t68),
sonyericsoon (gr47, T630-T628), alcatel. Berikut konfigurasinya : group = modems
id = wavecom name = Wavecom
group = modems id = premicell name = Premicell
detect-string = "PREMICEL" no-pin = true
no-smsc = true
group = modems id = premicell name = Premicell
detect-string = "PREMICEL" no-pin = true
no-smsc = true
group = modems id = siemens_tc35 name = "Siemens TC35" detect-string = "SIEMENS" detect-string2 = "TC35"
init-string = "AT+CNMI=1,2,0,1,1" speed = 19200
enable-hwhs = "AT\\Q3" need-sleep = true
group = modems id = siemens_m20 name = "Siemens M20" detect-string = "SIEMENS" detect-string2 = "M20" speed = 19200
enable-hwhs = "AT\\Q3"
keepalive-cmd = "AT+CBC;+CSQ" need-sleep = true
group = modems id = siemens_sl45 name = "Siemens SL45" detect-string = "SIEMENS" detect-string2 = "SL45"
init-string = "AT+CNMI=1,2,2,2,1" keepalive-cmd = "AT+CBC;+CSQ" speed = 19200
enable-hwhs = "AT\\Q3" need-sleep = true message-storage = "SM"
group = modems id = nokiaphone name = "Nokia Phone"
detect-string = "Nokia Mobile Phone" need-sleep = true
keepalive-cmd = "AT+CBC;+CSQ" enable-mms = true
name = "Falcom"
detect-string = "Falcom" #no-smsc = true
group = modems id = ericsson_r520m name = "Ericsson R520m" detect-string = "R520m"
init-string = "AT+CNMI=3,2,0,0"
group = modems id = ericsson_t68 name = "Ericsson T68" detect-string = "T68"
init-string = "AT+CNMI=3,3" keepalive-cmd = "AT+CBC;+CSQ" broken = true
group = modems
id = sonyericsson_gr47 name = "Sony Ericsson GR47" detect-string = "GR47" message-storage = "ME"
# use this init-string for non sim-buffering init-string = "AT+CNMI=3,2,0,0"
# use this init-string for sim-buffering #init-string = "AT+CNMI=3,1,0,0"
reset-string = "ATZ" broken = true
group = modems id = alcatel name = "Alcatel"
detect-string = "Alcatel"
init-string = "AT+CNMI=3,2,0,0"
group = modems
id = sonyericsson_T630-T628 name = "Sony Ericsson T630-T628?
init-string = "AT+CNMI=2,3,2,0,0;+CMGF=0? keepalive-cmd = "AT+CBC;+CSQ;+CMGF=0? broken = true
Konfigurasi sms kannel terdapat di smskannel.conf dimana file ini terletak
pada folder gw, berikut ini isi dari file smskannel.conf:
#
# THIS IS A SAMPLE CONFIGURATION FOR SMS KANNEL #
# send messages which are replied with simple fixed text message.
# It is run like this: #
# 1% gw/bearerbox gw/smskannel.conf # 2% gw/smsbox gw/smskannel.conf
# 3% test/fakesmsc -i 0.1 -m 100 "123 345 text nop" #
# ..all 3 commands in separate shells (or screen sessions) # Note that you can run them in different machines but have to
# add certain command line argument and configuration variables then
# #
# For any modifications to this file, see Kannel User Guide # If that does not help, see Kannel web page
(http://www.kannel.org) and
# various online help and mailing list archives #
# Notes on those who base their configuration on this: # 1) check security issues! (allowed IPs, passwords and ports)
# 2) groups cannot have empty rows inside them! # 3) read the user guide
#
# Kalle Marjola for Kannel project 2001, 2004
#--- # CORE
#
# There is only one core group and it sets all basic settings
# of the bearerbox (and system). You should take extra notes on
# configuration variables like file' (or 'store-dir'),
# 'admin-allow-ip' and 'access.log'
group = core
admin-port = 13000 smsbox-port = 13001 admin-password = bar #status-password = foo #admin-deny-ip = "" #admin-allow-ip = ""
#log-file = "/tmp/kannel.log" #log-level = 0
box-deny-ip = "*.*.*.*" box-allow-ip = "127.0.0.1"
#unified-prefix = "+358,00358,0;+,00" #access-log = "/tmp/access.log"
#store-file = "kannel.store"
#ssl-certkey-file = "mycertandprivkeyfile.pem"
#--- # SMSC CONNECTIONS
#
# SMSC connections are created in bearerbox and they handle SMSC specific
# protocol and message relying. You need these to actually receive and send
# messages to handset, but can use GSM modems as virtual SMSCs
# This is a fake smsc connection, _only_ used to test the system and services.
# It really cannot relay messages to actual handsets!
group = smsc smsc = fake smsc-id = FAKE port = 10000
connect-allow-ip = 127.0.0.1
#--- # SMSBOX SETUP
#
# Smsbox(es) do higher-level SMS handling after they have been received from
# SMS centers by bearerbox, or before they are given to bearerbox for delivery
group = smsbox
bearerbox-host = 127.0.0.1 sendsms-port = 13013
global-sender = 13013
#sendsms-chars = "0123456789 +-" #log-file = "/tmp/smsbox.log" #log-level = 0
#access-log = "/tmp/access.log"
#--- # SEND-SMS USERS
#
# These users are used when Kannel smsbox sendsms interface is used to
# send PUSH sms messages, i.e. calling URL like #
http://kannel.machine:13013/cgi-bin/sendsms?username=tester&password=foobar...
group = sendsms-user username = tester password = foobar #user-deny-ip = "" #user-allow-ip = ""
# SERVICES #
# These are 'responses' to sms PULL messages, i.e. messages arriving from
# handsets. The response is based on message content. Only one sms-service is
# applied, using the first one to match.
group = sms-service keyword = nop
text = "You asked nothing and I did it!"
# There should be always a 'default' service. This service is used when no
# other 'sms-service' is applied.
group = sms-service keyword = default
text = "No service specified"
Untuk menjalankan kannel maka, bearerbox dan smsbox harus bekerja.
Perintah untuk menjalankan bearerbox adalah ./bearerbox –v 1 smskannel.conf
sedangkan untuk smsbox./smsbox –v 1 smskannel.conf.
Kannel memiliki beberapa parameter yang dapat digunakan untuk
mendapatkan data yang dibutuhkan yaitu:
Parameter Keterangan
%k Kata pertama isi pesan
%r Seluruh isi dari sms selain kata pertama
%p Nomor pengirim
%t Waktu sms diterima
Untuk menjalankan kannel maka, harus menjalankan bearerbox dan
smsbox. Untuk menjalankan bearerbox maka, harus mengetikkan ./bearerbox –v 1
smskannel.conf pada konsul, sedangkan untuk menjalankan smsbox adalah
2.7PHP ( Personal Home Page )
PHP adalah PHP Hypertext Preposesor yang merupakan bahasa berbentuk skrip yang ditempatkan dalam server dan diproses dalam server. Hasilnya dikirim ke client, tempat user menggunakan browser. PHP adalah salah satu teknologi yang biasa digunakan untuk membuat halaman web yang dinamis dan interaktif.
Secara umum, halaman web dapat dibuat secara statis dan dinamis. Web statis
biasanya dibuat dengan menggunakan HTML. Teknologi web dinamis dapat
digolongkan atas 2 golongan besar:
1. client-side technologies
2. server-side technologies
PHP dibangun sekitar tahun 1994 oleh Rasmus Lerdoff. PHP versi 3
ditulis ulang oleh Zeev Suraski dan Andi Gutmans pada tahun 1998.
PHP bekerja hampir sama seperti JSP dan ASP. Skrip diawali dengan tag
<?php …… dan diakhiri dengan tag ……?> serta dimasukkan ke halaman HTML. Skrip ini akan dieksekusi oleh server sebelum halaman tersebut dikirim ke
browser klien, sehingga tidak mungkin ada ketidakcocokan platform mesin
browser klien. Tidak seperti ASP, PHP dapat dijalankan multiplatform. PHP dapat
dijalankan di web server IIS dan Apache, di sistem operasi Windows, UNIX dan
2.7.1 Cara kerja PHP
Cara kerja PHP dapat dilihat pada gambar di bawah ini:
web server
client
HTTP request HTTP responseGets page
<HTML> <?php echo (" Hello "); ?>
</HTML>
Hello
Browser akan membentuk halaman web
Gambar 2.13. cara kerja PHP
Saat ada permintaan suatu halaman dari browser klien, server web akan
melakukan 3 langkah :
1. membaca permintaan browser.
2. mencari halaman html yang diminta di server.
3. mengeksekusi perintah PHP sehingga halaman html termodifikasi
4. mengirim halaman html yang diminta ke browser klien melalui media
internet atau intranet.
Setelah halaman html diterima oleh klien, browser klien akan menerjemahkan
halaman html tersebut ke bentuk web.
2.7.2 Penulisan PHP
Tata cara penulisan php:
2. <? echo(“ PHP Code goes here”); ?>
Sintaks dasar PHP bersifat case sensitive.
2.7.3 Tipe Data
PHP mempunyai 6 tipe data.
Empat tipe skalar:
1. boolean
2. integer
3. floating-point number (float)
4. string
Dua tipe gabungan:
1. array
2. object
2.7.4 Operator
Operator di PHP sama dengan operator di C.
1. Arithmetic Operators
Example Name Result
$a + $b Addition Sum of $a and $b. $a - $b Subtraction Difference of $a and $b. $a * $b Multiplication Product of $a and $b. $a / $b Division Quotient of $a and $b.
$a % $b Modulus Remainder of $a divided by $b.
2. Comparison Operators
Example Name Result
Example Name Result
$a = = = $b Identical TRUE if $a is equal to $b, and they are of the same type. (PHP 4 only)
$a != $b Not equal TRUE if $a is not equal to $b. $a <> $b Not equal TRUE if $a is not equal to $b.
$a !== $b Not identical TRUE if $a is not equal to $b, or they are not of the same type. (PHP 4 only)
$a < $b Less than TRUE if $a is strictly less than $b. $a > $b Greater than TRUE if $a is strictly greater than $b. $a <= $b Less than or
equal to TRUE if $a is less than or equal to $b. $a >= $b Greater than or
equal to TRUE if $a is greater than or equal to $b.
2.7.5 Regular Expression Functions (POSIX Extended)
Regular Expression Functions (POSIX Extended) digunakan untuk memanipulasi string yang kompleks. PHP menggunakan POSIX extended regular expression. Dalam hal ini penulis mengunakan preg split. Berikut ini sintaks penulisannya:
preg_split ( string pattern, string subject [, int limit [, int flags]] )
2.8MySQL
MySql adalah sebuah database management system (DBMS) yang dalam
pengolahan data dan pengaksesan database server mengunakan perintah structur
query language(SQL). SQL adalah suatu standar bahasa terstruktur yang
digunakan sebagai metode komunikasi antara script pemrograman dengan
3.1 Analisis Sistem
3.1.1 Gambaran Umum Sistem
Sistem yang akan dibuat adalah sistem layanan informasi letak fasilitas
kota Yogyakarta via sms, dimana pelanggan dapat mengirimkan sms untuk
menerima informasi berupa letak fasilitas yang dibutuhkan. Sistem ini hanya
melayani nomor-nomor yang telah terdaftar.
Teknologi untuk sms gateway mengunakan kannel. Kannel adalah sebuah program yang dapat bekerja sebagai SMS gatway untuk GSM modem, dimana
GSM phones dapat mengirim dan menerima pesan. Kannel dapat berjalan di sistem operasi Linux. Sedangkan aplikasi web yang digunakan untuk update data
dibangun dengan menggunakan PHP dan MySQL.
3.1.2 Desain arsitektur
Berikut ini adalah desain arsitektur yang akan di ujicobakan
Arsitektur server
Table 3.2 Gambar desain arsitektur server
Keterangan :
1. Telpon pengirim digunakan untuk mengim SMS.
2. Telpon penerima digunakan untuk mengirim SMS dari server.
3. Kabel data yang menghubungkan antara telpon penerima dengan
komputer.
4. Sistem operasi Linux Mandriva 2007.
5. SMS gateway server menggunakan Kannel 1-4-1.
6. Web server menggunakan apache 2 dan php 5.
3.1.3 Desain aplikasi SMS
1. Proses aplikasi kannel
Proses ini merupakan aplikasi yang mengendalikan SMS, dimana SMS
yang masuk akan disesuaikan dengan keyword yang elah ditentukan. Untuk
keyword update maka akan menjalankan aplikasi updatesms.php, jika tidak maka
akan menjalankan aplikasi smsbalikuser.php.
2. Proses aplikasi smsbalikuser.php
Gambar 3.4 flow chart aplikasi smsbalikuser.php
Aplikasi smsbalikuser.php ini merupakan aplikasi yang akan digunakan
Untuk user yang tidak terdaftar maka akan mendapat balasan bahwa user belum
terdaftar, sedangkan untuk yang terdaftar akan diberikan jawaban jika dana yang
ada mencukupi.
3. Proses aplikasi updatesms.php
Gambar 3.5 flow chart aplikasi updatesms.php
Aplikasi updatesms.php ini merupakan aplikasi yang digunakan untuk
meng update data melalui sms. Perintah update tersebut adalah tambah, edit, dan
hapus. Data yang dapat di tambah adalah data perintah, data detail perintah, dan
data user, untuk data yang dapat di edit hanya data user, sedangkan data yang
dapat dihapus adalah data data user. Berikut ini adalah flow chart tambah, ubah
Proses tambah
3.1.4 Requirement Analysis 3.1.4.1 Use Case Diagram
Sistem Layanan Informasi Letak Fasilitas Kota Yogyakarta via
<<depend on>> <<depend on>>
Mendapat balasan Mengirim sms
admin
login Update perintah
Update detail perintah
Update pelanggan
Update admin
Super Admin
Hapus inbox
Hapus inbox admin
Hapus sent item user
Hapus sent item admin
3.1.5 Logical Design 3.1.5.1Proses Modeling
Table 3.1 Tabel Input Output Proses Modeling
Entity Input Output
user karakter sms informasi letak fasilitas kota yogyakarta berupa text
admin id_admin dan password, data perintah, data user
Informasi data perintah,
informasi data inbox,
informasi data inbox_admin,
informasi data sent_item_admin,
informasi data sent_item_user,
informasi data user
Super Admin id_admin, password, dan data admin
informasi data admin
3.1.5.2Context Diagram
Informasi letak fasilitas kota yogyakarta, Data kategori, Isi hategori
perintah sms
user admin
0
Sistem Layanan Informasi Letak Fasilitas Kota Yogyakatra via
SMS
username dan password data perintah, data user
Informasi data perintah,
informasi data inbox,
informasi data inbox_admin,
informasi data sent_item_admin,
informasi data sent_item_user,
informasi data user
Gambar 3.8 Context Diagram
username dan password data admin
informasi data admin
Fasilitas Kota Yogyakarta via SMS
5 p
proses hapus inbox mengubah data
user menghapus data
user
4.4 p
proses melihat data
user
proses hapus sent_item_user
8p
proses hapus sent_item_admin mengubah data
admin menghapus data
admin
2.4 p
proses melihat data
admin mengubah data
perintah menghapus data
perintah
3.4 p
proses melihat data
perintah
``
Gambar 3.10 Overview diagram
1p
Proses hapus Data sent_item_user 3
Proses Data perintah
usename dan password
Update perintah
id_petugas dan password yang valid
Detail data perintah
Update data isi
Data sent_item_user Detail data isi
pemakai
5p
Proses hapus Data inbox
Data smsmasuk Username,
password, level
Data smsmasuk
admin *
Data perintah Informasi data kategori
Informasi data isi
8p
Proses hapus Data sent_item_admin
data sms admin masuk
Informasi data sent_item_user Informasi data sent_item_admin
6p
Proses hapus Data inbox_admin Proses sms admin
masuk
data inbox_admin
Informasi data inbox Informasi data inbox admin
admin *
Inbox admin D7
Proses logout
2
admin
D2
2.1p
Menambah data admin
2.2p
Melihat data admin
2.3p
Mengubah data admin
2.4p
Menghapus data admin
username dan password yang valid
Data admin yang akan dirubah
Data admin yang telah dirubah Detail data admin Data admin
Data admin yang telah
Informasi data admin
Data admin
3
perintah
D2
3.1p
Menambah data perintah
3.2p
Melihat data perintah
3.3p
Mengubah data perintah
3.4p
Menghapus data perintah username dan password
yang valid
Data perintah yang akan dirubah
Data perintah yang telah dirubah Detail data perintah Data perintah
Data perintah yang telah dihapus Data perintah yang akan di hapus
Admin *
Informasi data perintah
Data perintah
4
user
D2
4.1p
Menambah data user
3.2p
Melihat data user
3.3p
Mengubah data user
3.4p
Menghapus data user
username dan password yang valid
Data user yang akan dirubah
Data user yang telah dirubah Detail data user Data user
Informasi data user
Data user
memiliki
3.2 Desain Sistem 3.2.1 Desain Database
Pada desain database ini mengunakan 8 tabel admin, user, perintah, detail_perintah, inbox, inbox_admin, sent_item_user, dan sent_item_admin.
Tabel 3.2 Tabel admin
Nama field Type data Panjang Keterangan
no_telp_admin* varchar 25
nama varchar 60
username varchar 60
password varchar 32
Nama field Type data Panjang Keterangan
No_telp_user* varchar 25
nama varchar 60
Alamat Varchar 100
Sisa_dana Varchar 10
Nama field Type data Panjang Keterangan
Id_perintah varchar 60
Perintah_2 varchar 10
Table 3.5 Tabel detail_perintah
Nama field Type data Panjang Keterangan
Id_detperintah* int 10 Auto increment
Perintah_2 varchar 60
isi Varchar 160
Id_perintah varchar 60 fk
Table 3.6 Tabel inbox
Nama field Type data Panjang Keterangan
Id_inbox* int 10 Auto increment
No_telp_pengirim varchar 25
isi varchar 160
Tgl_masuk date
Table 3.7 Tabel inbox_admin
Nama field Type data Panjang Keterangan
Id_inbox_admin* int 10 Auto increment
No_telp_pengirim varchar 25
isi varchar 160
Table 3.8 Tabel sent_item_user
Nama field Type data Panjang Keterangan
Id_outbox* int 10 Auto increment
no_telp_tujuan_user varchar 25
isi varchar 160
keterangan date 160
Table 3.9 Tabel sent_item_admin
Nama field Type data Panjang Keterangan
Id_outbox_admin* varchar 10
no_telp_tujuan_admin varchar 25
isi varchar 160
Detail_perintah perintah
user admin
Inbox_admin Sent_item_user
Gambar 3.15 Relasi antar tabel
3.2.2 Relasi Antar Tabel
3.2.3 Desain Input
Desain login untuk web maintenance
Reset Login
Password : Username :
Gambar 3.16 desain input login
3.2.3.1Desain Input Super Admin
Desain input data admin
Data Admin
header
Username Level
submit
Password No telp Admin Nama
logout
3.2.3.2Desain Input Admin
Halaman data user
Sent item user Data user
inbox
Sent item admin
submit
Sisa dana alamat nama no telp user
header
perintah
Inbox admin
logout Send sms
Gambar 3.18 desain halaman input data user
Halaman perintah
Sent item user Data user
inbox
Sent item admin
header
submit
Perintah 1 Id perintah perintah
Inbox admin
logout Send sms
Halaman detail perintah
Sent item user Data user
inbox
Sent item admin
header
submit
isi Perintah 2 perintah
Inbox admin
logout Send sms
Gambar 3.20 desain halaman detail perintah
Halaman send sms
Sent item user Data user
inbox
Sent item admin
header
perintah
Inbox admin
Isi pesan
submit
Gambar 3.21 desain halaman send sms
No tujuan
Desain input untuk aplikasi sms
Desain untuk admin
Tabel 3.10 tabel desain input sms untuk admin
Printah keterangan
update Fasilitas ini digunakan untuk
menambah, menghapus, mengubah
Sintaks penulisan
Tabel 3.11 tabel sintaks penulisan sms untuk admin
Perintah update Sintaks Contoh
Tambah perintah update
tambah#perintah#id_perintah#perintah_1
update tambah#perintah#stadiun#stdn
Tambah Detail
perintah
uwoharjo depok sleman#stadiun
Tambah user Update tambah#user#
no_telp_user#nama#alamat#sisa dana
Update tambah#user#
+6285868479554#jony#jl kantil#100000
Ubah user Update ubah#user# no_telp_user#1000 Update ubah#user#
+6285868479554#1000
Hapus user Update hapus#user#no_telp_user Update hapus#user#+6285868479554
Desain untuk user
Tabel 3.12 tabel desain penulisan sms untuk user
Perintah keterangan hot Untuk mendapatkan informasi letak hotel
rs Untuk mendapatkan informasi rumah sakit
stsn Untuk mengetahui letak stasiun
help Untuk mengetahui perintah yang tersedia
Sintaks penulisan sms user
Tabel 3.13 tabel sintaks penulisan sms untuk user
Perintah Sintaks Contoh
hot hot<spasi>Nama hotel hot santika
rs rs<spasi>nama rumahsakit rs sarjito
stsn stns<spasi>nama stasiun stsn lempuyangan
help help help
help hotel help<spasi>nama fasilitas help hotel
3.2.4 Desain output
3.2.4.1Desain Output Super Admin
Nama No Telp Admin Level Username Password
ony +6285868479554 1 ony
03c7c0ace395d801 82db07ae2c30f034
Data user
Tambah Tabel Admin
header
logout
3.2.4.2Desain Output Admin
Halaman user
Gamabar 3.24 output halaman perintah
no telp user nama alamat
sisa
dana pilihan
+6285868479554 ony jl kanthil 5 100000 [hapus] [ubah]
Sent item user Data user
inbox
Sent item admin
Tambah Tabel User
header
perintah
Inbox admin
logout Send sms
Halaman perintah
id perintah perintah 1 pilihan
hotel hot [hapus][ubah][detail]
Sent item user Data user
inbox
Sent item admin
Tambah Tabel Perintah
header
perintah
Inbox admin
logout Send sms
Halaman detail perintah
Gamabar 3.25 output halaman detail perintah
Gamabar 3.26 output halaman inbox Halaman inbox
Perintah 2 Isi pilihan
Santika
Jl jendral sudirman no 19
(563036) [hapus][ubah]
no telp pengirim isi
tanggal
masuk pilihan
+6285868479554 Help 2007-0717 [hapus] +6285868479554 Hot santika 2007-0717 [hapus]
Sent item user Data user
inbox
Sent item admin
header
perintah
Inbox admin
Tambah Tabel Detail Perintah
Send sms
logout
Sent item user Data user
inbox
Sent item admin
header
perintahi
Inbox admin
Tabel Inbox
Send sms
Halaman inbox admin
Gamabar 3.27 output halaman detail perintah
Gamabar 3.38 output halaman sent item user Halaman sent item user
no telp pengirim isi
tanggal
masuk pilihan
+6285868479554 ubah#user#+6285868479554#100000
2007-0717 [hapus] +6285868479554 tambah#perintah#rumah sakit#rs
2007-0717 [hapus]
no telp pengirim isi keterangan pilihan
+6285868479554 Help
Terkirim sebagai
pelanggan [hapus]
+6285868479554 Hot santika
Terkirim sebagai
pelanggan [hapus]
Sent item user Data user
inbox
Sent item admin
header
perintahi
Inbox admin
Tambah Tabel Detail Perintah
Send sms
logout
Sent item user Data user
inbox
Sent item admin
header
perintahi
Inbox admin
Tabel sent item user
Send sms
Halaman sent item admin
Gamabar 3.29 output halaman sent item admin
Table 3.15 Tabel output sms untuk user Table 3.14 Tabel output sms untuk admin Output untuk sms
Untuk admin
Sintaks Isi pesan
Update
tambah#perintah#rumah sakit#rs
terkirim berhasil mengubah isi tabel user
Untuk user
Sintaks Isi pesan
Hot santika Jl jendral sudirman no 19 (563036), sisa dana anda 10000
Rs sarjito Jl kesehatan 1 (587333,518689,518689,547784),sisa dana anda 6000
Stsn lempuyangan Jl lempuyangan 10 (512454), sisa dana anda 1000
HELP Hot hotel, rs rumah sakit sakit, stsn stasiun, sisa dana anda 7000
HELP HOTEL novotel,santika,hyatt,ibis,inna garuda, sisa dana anda 6000
no telp pengirim isi keterangan pilihan
+6285868479554 ubah#user#+6285868479554#100000
Terkirim sebagai
pelanggan [hapus]
+6285868479554 ubah#user#+6285868479554#100000
Terkirim sebagai
pelanggan [hapus]
Sent item user Data user
inbox
Sent item admin
header
perintahi
Inbox admin
Tabel Sent item admin
Send sms
Setelah melakukan analissis dan rancangan, kemudian tahap selanjutnya
adalah mengimplementasikan hasil dan rancangan yang telah dibuat. Dalam Bab ini
membahas implementasi sistem berdasarkan analisa dan rancangan yang telah dibuat.
4.1 Kebutuhan Sistem
Untuk dapat menjalankan sistem dibutuhkan beberapa sistem penunjang,
antara lain :
• SMS Gateway Server
o Kannel 1.4.1.
• Web Server
o Apache2.
o Php 5.
• Database Server
o MySQL - 5.0.21.
• Sistem Operasi
4.2 Konfigurasi Kannel 1.4.1
Agar telpon seluler dapat dikenali oleh komputer harus melakukan
konfigurasi terlebih dahulu. Dalam kannel file configurasinya terdapat di
smskannel.conf, berikut ini configurasinya;
group = smsc smsc = at
smsc-id = GSMModem
modemtype = siemens_sl45 device = /dev/ttyUSB0
#sms-center = "+6281100000" sms-center = "+62816124" #port = 10000
#connect-allow-ip = 127.0.0.1
Group diset dengan smsc, dimana smsc sebagai sms center. Smsc = at karena telpon yang digunakan adalah siemens (Nokia diset dengan cimd). GSMModem
adalah nama koneksinnya, kemudian /dev/ttyUSB0 adalah port yang digunakan untuk menghubungkan telpon dengan komputer, dimana port yang digunakan adalah port
usb ke 1 untuk port usb yang ke 2 diset /dev/ttyUSB1. sms-center adalah sms center kartu yang digunakan, dalam hal ini penulis menggunakan kartu simpati sehingga sms-center di set dengan sms-center = “+6281100000”.
#--- # SMSBOX SETUP
#
group = smsbox
sendsms-port = 13013 global-sender = 13013
konfigurasi diatas adalah konfigurasi untuk smsbox dimana mengunakan port
13013 untuk sendsms-port dan global-sender. Dimana sendsms-port digunakan untuk
#--- # SEND-SMS USERS
#
group = sendsms-user username = tester password = foobar #user-deny-ip = ""
user-allow-ip = "127.0.0.1"
Konfigurasi diatas adalah konfigurasi untuk sendsms-user dimana untuk
melakukan pengiriman melalui web, dimana diset username = tester dan password =
foobar.
#--- # SERVICES
#
group = sms-service keyword = update get-url =
"http://localhost/sms/updatesms.php?sender=%p&pesan=%r&time=%t "
group = sms-service keyword = default get-url =
"http://localhost/sms/smsbalikuser.php?sender=%p&pesan=%k%20%r &time=%t"
Konfigurasi diatas adalah konfigurasi untuk balasan perintah sms yang
dikirimkan. Group diset dengan sms-service. Dalm konfigurasi diatas terdapat dua
keyword yaitu; update dan default. Untuk keyword update digunakan bila perintah sms yang dimasukkan sesuai. Keyword update ini nantinya digunakan untuk
mengupdate data lewat sms. Semua perintah sms selain keywordnya update akan
diproses pada keyword default.
detect-string = "SIEMENS" detect-string2= "SL45"
init-string = "AT+CNMI=1,1,0,2,1" keepalive-cmd = "AT+CBC;+CSQ" speed = 19200
enable-hwhs = "AT\\Q3" need-sleep = true
message-storage = "SM"
Konfigurasi diatas adalah untuk modem yang digunakan. Dalam hal ini penulis
menggunakan telpon seluler sebagai modem. Telpon seluler yang digunakan
adalah siemens sl45
4.3 Prose Aplikasi SMS 4.3.1 Proses Aplikasi Kannel
4.3.1.1SMS Masuk
Saat melakukan perintah sms, kannel akan memroses berdasarkan keyword
yang ada. Kemudian kannel akan mngirimkan parameter-parameter yang nantinya akan diproses oleh web server. Berikut ini adalah keword yang tersedia di kannel:
1. Update
Pada keyword update kannel akan memangil file updatesms.php beserta
variabel yang disertakan. Berikut ini adalah perintah untuk memanggil
updatesms.php:
get-url=
"http://localhost/sms/updatesms.php?sender=%p&pesan=%r&t
ime=%t"
Pada Perintah diatas terdapat variabel yang berisikan parameter. Untuk
adalah nomor telpon pengirim, untuk variabel pesan berisikan parameter
%r dimana isi dari parameter tersebut adalah isi pesan yang dikirimkan
tanpa menyertakan kata pertama pada pesan, sedangkan variabel time
berisikan parameter %t dimana isi dari parameter tersebut adalah waktu
pesan diterima.
2. Default
Keyword default akan menampung semua perintah selain perintah update.
Selanjutnya akan memnggil smsbalikuser.php beserta variabel yang
disertakan. Berikut ini adalah perintah untuk memanggil
smsbalikuser.php:
get-url =
"http://localhost/sms/smsbalikuser.php?sender=%p&pesan=%
k%20%r&time=%t"
Variabel yang disertakan adalah sender, pesan dan time. Variabel sender
menggunakan parameter %p yang isinya adalah no telpon pengirim, variabel pesan menggunakan parameter %k%20%r yang artinya untuk %k
adalah kata pertama dari perintah sms ikut disertakan kemudian %20
4.3.1.2SMS Keluar
Sms keluar adalah jawaban kepada user yang melakukan perintah sms.
Jawaban sesuai dengan perintah yang dikirimkan. Contohnya bila user yang terdaftar
dan memiliki sisa dana lebih dari atau =1000 melakukan perintah hot santika, maka
isi dari jawaban tersebut adalah Jl jendral sudirman no 19 (563036), sisa dana anda
10000.
4.3.2 Proses Aplikasi updatesms.php
Pada aplikasi ini digunakan untuk melakukan perintah update data melalui
sms. Proses yang akan dilakukan adalah sebagai berikut;
1. Proses yang pertamakali adalah menyimpan variabel yang dikirimkan oleh
kannel. Variabel-variabel tersebut akan disimpan di tabel inbox_admin.
Berikut ini potongan programnya;
$query = "INSERT INTO
".$cfg["tbl_inbox_admin"]."(id_inbox_admin,no_telp_admin,is i,tgl_masuk) ". " VALUES
('','".$sender."','".$pesan."','".$time."')"; $hasil = send_query($query);
2. Dari data sms yang dikirimkan data akan dipecah. Variabel yang akan
dipecah adalah variabel text. Berikit ini adalah perintah untuk memecah
variabel text.
$perintah = preg_split("/#/",$text,3);
Dari perintah diatas maksudnya adalah variabel akan dipecah menjadi
array. Isi variabel text akan dipecah bila menemukan karakter #. Jumlah
maka kata yang diterima adalah kata setelah kata update, misalnya update
tambah#perintah#sekolah#skl data yang dipakai nantinya hanya
tambah#perintah#sekolah#skl saja, kata update tidak dipakai. Hasil dari
pemecahan perintah sms tersebut adalah $perintah[0] = tambah,
$perintah[1] = perintah, $perintah[2] = sekolah#skl.
3. Untuk selanjutnya bila nomor telpon tidak terdaftar maka program tidak
akan melakukan proses selanjutnya. Bila nomor terdaftar maka program
akan mengeksekusi perintah selanjutnya, misalnya $perintah[0] = tambah,
kemudian perintah selanjutnya adalah tabel apa yang akan ditambah
misalnya $perintah[1] = perintah.
4. Proses selanjutnya adalah memecah kembali $perintah[2], berikut ini
adalah potongan programnya;
$kata= preg_split("/#/",$perintah[2]);
Perintah diatas akan memecah $perintah[2] menjadi dua bagian lagi yaitu
$kata[0] = sekolah, $kata[1] = skl. Kemudian adalah proses untuk
menambah dimanan potongan programnya adalah sebagai berikut;
$query = "INSERT INTO
".$cfg["tbl_perintah"]."(id_perintah,perintah_1) ". " VALUES ('".$kata[0]."','".$kata[1]."')";
program diatas adalah proses menambah table perintah dimana
4.3.3 Smsbalikuser.php
Aplikasi ini digunakan untuk mendapatkan informasi dari perintah sms yang
di kirimkan oleh user. Berikut ini proses yang akan dilakukan.
1. Proses yang pertama adalah melakukan pemecahan kata. Kata yang
disertakan adalah semua kata yang dikirimkan oleh pengirim, misalnya
hot adem ayem, dari seluruh perintah tersebut maka akan digunakan
seluruhnya. Berbeda dengan perintah update, perintah update tidak
disertakan. Berikut potongan programnya;
$kata = preg_split("/\s/",$text,2);
perintah diatas digunakan untuk memecah $text menjadi dua bagian,
yaitu; $kata[0] = hot, $kata[1] = adem ayem.
2. Proses selanjutnya adalah proses untuk membandingkan apakah nomor
yang digunakan sudah terdaftar, berikut ini potongan programnya;
$sql = "select sisa_dana from user where no_telp_user='".$sender."'";
diatas adalah proses pencarian apakah nomor pengirim memiliki sisa dana
untuk mengakses informasi yang ada. Informasi tidak dapat diterima jika
nomor pengirim belum terdaftar dan dana yang tersisa tudak mencukupi.
Untuk
3. Proses selanjutnya adalah mencari informasi yang dibutuhkan, misalkan
ayem, maka perintah smsnya adalah hot adem ayem. Berikut ini potongan
program untuk pencarian perintah sms dari user;
$query = "select b.perintah_2, b.isi from " .$cfg["tbl_perintah"] ."
a,".$cfg["tbl_detail_perintah"]." b " ."where a.id_perintah=b.id_perintah "
."and a.perintah_1='".$kata[0]."' and b.perintah_2 like '%".$kata[1]."%'";
Program diatas digunakan untuk melakukan pencarian perintah_2 dan isi,
dimana id_perintah pada table perintah sama dengan id_perintah pada
table detail_perintah dan perintah_1 sama dengan $kata[0] dan perintah_2
sama dengan $kata[1].
4. Untuk nomor yang terdaftar bila melakukan perintah sms sisa dananya
akan selalu berkurang 1000. berikut ini potongan programnya;
$jml['sisa_dana']=$jml['sisa_dana']-1000;
$sql= "UPDATE ".$cfg["tbl_user"] ." SET "
. " sisa_dana='".$jml["sisa_dana"]."' "
. " where no_telp_user='".$sender."' ";
4.4 Aplikasi Web
Aplikasi ini dugunakan untuk melakukan proses update data melalui web.
Proses yang akan dilakukan adalah melakukan perintah tambah, hapus dan ubah data.
4.4.1 Proses Tambah 4.4.1.1Proses tambah user
Pada proses ini akan dilakukan proses untuk menambah user. Berikut adalah
potongan program proses.php untuk menambah user;
$sql= "insert into ".$cfg["tbl_user"] ."
"])."','".trim($_POST["alamat"])."','".trim($_POST["sisa_dana" ])."')";
4.4.1.2Proses tambah perintah
Pada proses ini akan dilakukan proses untuk menambah isi tabel perintah.
Berikut potongan program prses.php untuk menambah perintah;
$sql= "insert into ".$cfg["tbl_perintah"] ."
values('".$_POST["id_perintah"]." ',' ".$_POST["perintah_1"]." ')";
4.4.1.3Proses tambah detail_perintah
Proses ini adalah untuk menambah isi dari tabel detail_perintah. Potongan
program proses.php sebagai berikut;
$sql= "insert into ".$cfg["tbl_detail_perintah"] ."
values('','".trim($_POST["perintah_2"])."','".trim($_POST["isi "])."','".trim($_POST["id_perintah"])."')";
4.4.2 Proses Ubah 4.4.2.1Proses ubah user
Proses ini adalah untuk mengubah isi tabel user. Berikut potongan program
peoses.php;
$sql= "UPDATE ".$cfg["tbl_user"]." SET " . "
no_telp_user='".$_POST["no_telp_user"]."', "
. " nama='".$_POST["nama"]."', " . " alamat='".$_POST["alamat"]."', "
. "
sisa_dana='".$_POST["sisa_dana"]."' ". " where no_telp_user='".$_POST["no_telp_user_ori"]."'";
4.4.2.2Proses ubah perintah
Proses ini digunakan untuk mengubah isi dari tabel perintah. Berikut ini
$sql= "UPDATE ".$cfg["tbl_perintah"] ." SET "
. " id_perintah='".$_POST["id_perintah"]."', " . " perintah_1='".$_POST["perintah_1"]."' "
. " where id_perintah='".$_POST["id_perintah_ori"]."'";
4.4.2.3Proses ubah detail_perintah
Proses ini digunakan untuk mengubah isi dari tabel detail perintah. Berikut ini
adalah potongan perintah proses.php;
$sql= "UPDATE ".$cfg["tbl_detail_perintah"] ." SET "
. " id_detperintah='".$_POST["id_detperintah"]."', " . " perintah_2='".$_POST["perintah_2"]."', "
. " isi='".$_POST["isi"]."', "
. " id_perintah='".$_POST["id_perintah"]."' "
. " where id_detperintah='".$_POST["id_detperintah_ori"]."'";
4.4.3 Proses Hapus 4.4.3.1Proses hapus user
Proses ini digunakan untuk melakukan proses hapus untuk tabel user. Berikut
potongan program proses.php untuk melakukan proses hapus;
$sql = "delete from ".$cfg["tbl_user"]." where
no_telp_user='".$no_telp_user."'"; 4.4.3.2Proses hapus perintah
Proses untuk melakukan proses hapus pada tabel perintah. Berikut potongan
program proses.php;
$sql = "delete from ".$cfg["tbl_perintah"]." where id_perintah='".$id_perintah."'";
4.4.3.3Proses hapus detail_perintah
Berikut ini adalah proses hapus pada tabel detail_perintah. Berikut ini adalah
potongan program untuk menghapu detail_perintah;
4.4.3.4Proses hapus inbox
Proses untuk menghapus data dari tabel inbox. Berikut potongan perintah
proses.php;
$sql = "delete from ".$cfg["tbl_inbox"]." where
id_inbox='".$id_inbox."'";
4.4.3.5Proses hapus inbox_admin
Proses untuk menghapus data dari tabel inbox_admin. Berikut potongan
perintah proses.php;
$sql = "delete from ".$cfg["tbl_inbox_admin"]." where
id_inbox_admin='".$id_inbox_admin."'";
4.4.3.6Proses hapus sent_item_user
Proses untuk menghapus data dari tabel sent_item_user. Berikut potongan
perintah proses.php;
$sql = "delete from ".$cfg["tbl_sent_item_user"]." where id_outbox='".$id_outbox."'";
4.4.3.7Proses hapus sent_item_admin
Proses untuk menghapus data dari tabel sent_item_admin. Berikut potongan
perintah proses.php;
4.4.4 User Interface 1. Halaman login
Gamabar 4.1 halaman login
2. User Interface Super Admin Halaman Data Admin
Gamabar 4.4 halaman data user
3. User Interface Data User Halaman data user
Halaman Perintah
Halaman Detail Perintah
Gamabar 4.6 halaman detail perintah
Halaman Inbox
Halaman Inbox Admin
Gamabar 4.8 halaman inbox admin
Halan Sent Item User
Halaman Sent Item Admin
Gamabar 4.10 halaman sent item admin
Halaman Send SMS