Anda di halaman 1dari 100

BAB I

PENDAHULUAN

1.1 Latar Belakang

SMS atau Short Message Service merupakan teknologi yang telah menjadi

sarana komunikasi antara semua orang di dunia. Dimulai dari sekedar pengiriman

pesan dari jaringan local hingga mengirim pesan antar negara. Teknologi ini

banyak dipilih karena selain praktis, biaya yang harus dikeluarkan untuk

mengirim satu sms cukup terjangkau. Karena faktor inilah sms telah banyak

digunakan oleh berbagai bidang jenis usaha.

Salah satu dari jasa atau service yang menggunakan sms antaralain adalah

perbankan. SMS Banking misalnya kita hanya perlu mngirim sms untuk

mengetahui saldo dari tabungan kita. Pada dunia hiburan di televisi seperti

pengiriman SMS pada kontes idola untuk mendukung popularitas idola pilihan

kita. Pada industri IT, data center yang memanfaatkan SMS untuk megawasi

kinerja dari server.

Aplikasi SMS sendiri banyak manfaat yang bisa digunakan utuk kepentingan

pada bidang pendidikan. SMS dapat dijadikan sarana untuk menyampaikan

informasi dengan lebih praktis. Pada kesempatan ini penulis mencoba untuk

menerapkan teknologi SMS pada lingkungan sebuah perguruan tinggi, yakni

Universitas Katolik Soegijapranata yang dikhususkan untuk Teknik Elektro.

Dengan adanya aplikasi SMS server ini, hubungan komunikasi antara mahasiswa

dengan dosen bisa terjalin dengan lebih baik, dan tentu saja lebih praktis.
1
Misalnya : Mahasiswa dapat memperoleh informasi ketidakhadiran dosen

beberapa hari sebelum jadwal kelas yang seharusnya ,melalui SMS. Bila

informasi ketidakhadiran dosen baru didapat beberapa menit sebelum, bahkan

setelah jam perkuliahan dimulai, mahasiswa sudah dirugikan oleh waktu dan

ongkos perjalanan menuju tempat perkuliahan. Hal ini bisa diatasi dengan dosen

mengirim SMS secara broadcast kepada mahasiswa atas ketidakhadirannya

beberapa hari atau beberapa jam sebelumnya.

1.2 Perumusan Masalah

Dalam Tugas Akhir yang dibuat ini penulis merancang sms gateway fakultas

berupa website yang ditunjang dengan layanan SMS berbasis PHP dan MySQL

untuk memberikan informasi kepada user yang menggunakan sarana ini.

1.3 Batasan Masalah

Pada tugas akhir ini, penulis memfokuskan pada masalah pembuatan dan

pengiriman sebuah SMS melalui SMS gateway berbasis web, dengan bantuan

program gammu sebagai interfacing antara modem dan PC.

1.4 Tujuan dan Manfaat

Tujuan dari penyelesaian Tugas Akhir ini adalah:

1. Menjadikan SMS server ini sebagai jembatan komunikasi antara mahasiswa

dengan dosen yang lebih praktis.

2
2. Melalui inbox dalam web server mahasiswa dapat menghubungi dosen tanpa

harus mengetahui nomor telepon seluler dosennya.

3. Dosen dapat mengirim SMS secara bersamaan kepada mahasiswa yang

mengikuti kelasnya.

4. Dosen dapat membaca dan membalas pesan yang masuk ke inbox.

1.5 Metodologi Penelitian

Penulis dalam penyusunan tugas akhir ini menggunkan berbagai macam

metode antara lain:

1. Melakukan studi literatur untuk mempelajari konsep-konsep pemrograman

SMS serta mengintegraskannya dengan MySQL dan website berbasis PHP

dengan cara mengumpulkan data-data yang diperlukan yang bisa diperoleh

dari internet, buku-buku yang penulis peroleh dari toko buku, teman, dan

perpustakaan yang berhubungan dengan jaringan komputer.

2. Melakukan perancangan system yaitu merancang database yang digunakan

dan menetapkan pembatasan terhadap jumlah keyword yang dapat diterima

dan digunnakan oleh system.

3. Melakukan pembuatan system yang meliputi pembuatan engine untuk

layanan SMS itu sendiri serta melakukan pemrograman terhadap keyword

agar dapat terhubung dengan database.

4. Melakukan pengujian dan simulasi terhadap system dengan menggunakan

media modem untuk memastikan bahwa system dapat berjalan dengan baik,

secara push maupun pull message.

3
1.6 Sistematika Penyusunan Laporan

Sistematika penulisan yang digunakan dalam tugas akhir ini adalah sebagai

berikut :

BAB I: PENDAHULUAN

Berisi tentang latar belakang, perumusan masalah, pembatasan masalah,

tujuan dan manfaat, metodologi penelitian serta sistematika penulisan.

BAB II: TINJAUAN PUSTAKA

Berisi teori-teori dasar dan teori-teori pendukung dari Tugas Akhir ini.

Berupa definisi, konsep dasar dan teori-teori lain yang didapatkan dari studi

pustaka

BAB III: PERANCANGAN SISTEM

Berisi inti permasalahan yang ada dimana aplikasi merupakan solusi yang

diberikan atas masalah tersebut. Bab ini juga berisi tentang perancangan

aplikasi SMS server. Mulai dari skema diagram,flow chart hingga rancangan

tampilan aplikasi.

BAB IV ANALISA

Berisi implementasi dari rancangan yang sudah dibuat lengkap dengan

tampilan pada layar. Bab ini juga dilengkapi dengan hasil evaluasi yang dapat

dari implemantasi tersebut.

BAB V PENUTUP

Berisi kesimpulan-kesimpulan yang didapat dari pembuatan Tugas akhir

perancangan sms gateway fakultas, disertai saran-saran yang membangun.

4
BAB II

TINJAUAN PUSTAKA

Didalam bab ini penulis akan menjelaskan tentang teori-teori secara umum

yang menjadi landasan untuk perancangan alat. Adapun teori-teori tersebut

meliputi elemen-elemen pada perancangan sistem secara keseluruhan.

2.1 Short Message Service

Short Message Service (SMS) adalah salah satu tipe Instant Messaging (IM)

yang memungkinkan user untuk bertukar pesan singkat kapanpun, walaupun user

sedang melakukan call data/suara. SMS dapat digunakan pada teknnologi GPRS

dan CDMA. SMS menjamin pengiriman pesan oleh jaringan, jika terjadi

kegagalan pesan akan disimpan dahulu di jaringan, pengiriman paket SMS

bersifat out of band dan menggunakan bandwidth rendah.

Teknologi ini diciptakan untuk menyediakan sebuah infrastruktur untuk

pesan-pesan pendek yang maksimal berisi 140 byte (8 bit) data penting dalam

jaringan telekomunikasi mobile. Proses transportasi tersebut dilakukan dalam

bentuk sinyal GSM (dalam jaringan GSM) ataupun paket GPRS (dalam jaringan

GPRS).

SMS memungkinkan pengiriman dan penerimaan pesan dari dan ke mobile

telephones. Pesan tersebut dapat berisi text ataupun data biner. Text dapat

tersusun atas kombinasi huruf atau angka atau alfanumerik. Sebuah short message

dapat mencapai 160 karakter saat menggunakan alfabet latin, dan 70 karakter saat
5
menggunakan alfabet non-latin (seperti bahasa Arab dan Cina). Standard SMS

terakhir dari ETSI menyediakan sebuah ekstensi untuk mengirim pesan yang lebih

panjang melalui SMS. Sementara itu, pengiriman data biner melalui SMS

memiliki alokasi 140 byte data yang terbagi menjadi dua bagian yaitu user data

header dan actual data. User data header dapat digunakan untuk

menginformasikan jenis pesan tertentu kepada mobile phones. Dengan demikian,

SMS dapat dimanfaatkan untuk membawa logo, ringtone, dan seting telepon.

2.1.1 Cara Kerja SMS

SMS dimaksudkan untuk menjadi alat pertukaran informasi antara dua

mobile subscriber. Elemen-elemen utama pada arsitektur SMS terdiri dari Short

Message Entity (SME), SMS Service Centre (SMSC) dan Email Gateway yang

terkoneksi dengan elemen-elemen pada GSM sebagai channel penghantar. Berikut

ini adalah gambar arsitektur SMS pada jaringan GSM.

Gambar 2.1 Elemen-elemen pada jaringan operator seluler

Short Message Center (SMC) adalah sebuah entitas yang bertugas untuk

menerima dan meneruskan pesan dari dan ke ponsel selular (Punnet Gupta 2003).

SMC dibangun oleh beberapa Short Message Entity (SME) yang dapat diletakkan

dalam sebuah jaringan atau telepon selular. Mobile Switching Center (MSC)

6
adalah sebuah entitas dalam sebuah jaringan operator selular yang bertugas

mengendalikan koneksi antar ponsel atau antara ponsel dengan jaringan operator

selular (Punnet Gupta 2003). Gateway Mobile Switching Center (GMSC) adalah

sebuah gerbang MSC yang juga dapat menerima pesan dan berupa sebuah sistem

kontak yang berhubungan dengan jaringan lain (Punnet Gupta 2003). Dalam

menerima pesan dari SMC, GMSC menggunakan jaringan SS7 dalam sistem

Home Location Register (HLR). HLR adalah database utama dalam sebuah

jaringan operator selular (Punnet Gupta 2003). Sistem ini memegang kendali atas

informasi nomor-nomor ponsel dan juga tentang alur informasi dari setiap nomor

ponsel, misalnya informasi atas wilayah jangkauan (Punnet Gupta 2003).

Visitor Location Register (VLR) berkorespondensi terhadap setiap MSC.

VLR berisi informasi tentang identitas ponsel. Dengan bantuan VLR, MSC dapat

meneruskan informasi pesan pendek kepada Base Station System (BSS), dimana

kemudian BSS akan meneruskannya ke ponsel penerima.

Sebuah SMS dapat terdiri atas 160 karakter (skema 7 bit), 140 karakter

(skema 8 bit), atau 70 karakter (skema 16 bit). Saat ini pengiriman beberapa SMS

sekaligus dapat dilakukan. Penggabungan SMS dan kompresi SMS (terdiri lebih

dari 160 karakter) telah dikembangkan. Tetapi fitur-fitur ini belum

diimplemetasikan oleh semua jaringan operator selular di dunia.

2.1.1.1 SMS Service Centre (SMSC)

SMS Service Centre (SMSC) memegang peran kunci dalam arsitektur

SMS. Fungsi utama SMSC adalah menyampaikan pesan singkat antara SME

7
dengan MS, juga menyimpan dan meneruskan pesan singkat (menyimpan pesan

jika penerima SME tidak tersedia). SMSC dapat terintegrasi sebagai bagian dari

mobile network (cth: terintegrasi dengan MSC) atau sebagai entitas network

independen.

2.1.1.2 Short Message Entity (SME)

Short Message Entity (SME) adalah elemen yang dapat mengirim atau

menerima pesan singkat. SME dapat berupa software aplikasi pada mobile

handset, dapat juga berupa perangkat faksimile, perangkat telex, remote internet

server, dll.

Sebuah SME dapat berupa server yang terkoneksi dengan SMS centre

secara langsung atau melalui gateway. Dikenal juga External SME (ESME) yang

merepresentasikan sebuah WAP proxy/server, Email Gateway atau Voice Mail

server.

2.1.1.3 External short messaging entities (ESME)

Dapat dikatakan bahwa Short Message Entity (SME) merupakan entitas

dalam sistem SMS yang dapat berada pada jaringan, berupa perangkat bergerak,

atau merupakan service Centre yang berada di luar jaringan. ESME sendiri, sesuai

namanya, merupakan sebuah SME yang berada di luar jaringan SMS. Saat ini

sebagian besar ESME berada pada jaringan data seperti jaringan TCP/IP yang di

dalamnya termasuk internet. Beberapa macam ESME di antaranya adalah (Romzi,

2004):

8
1. Voice Mail System (VMS)

VMS merupakan perangkat yang berfungsi untuk menerima, menyimpan,

dan menjalankan voice message, ditujukan untuk pelanggan yang sedang sibuk

dan sedang tidak dapat dihubungi melalui sambungan voice.

2. Web

Web merupakan sebuah layanan yang sangat populer pada jaringan data

terutama internet. Pesatnya perkembangan internet dengan jumlah pertumbuhan

penggunanya yang juga sangat tinggi, membuat internet sebagai sebuah entitas

dalam sistem SMS yang banyak membangkitkan trafik SMS.

3. Email

Email merupakan salah satu layanan yang paling banyak digunakan dalam

internet. SMS harus dapat mendukung interkoneksi dengan teknologi email.

Untuk itu kemudian muncul layanan yang juga cukup banyak digemari, yaitu

email-to-sms dan sms-to-mail.

2.1.2 Email Gateway

Email Gateway memungkinkan sebuah email beroperasi menjadi SMS

dengan iterkoneksi SMSC pada internet. Dengan email gateway, pesan dapat

dikirim dari sebuah SME menuju sebuah host internet dan sebaliknya. Peran email

gateway adalah mengubah format pesan (dari SMS ke email dan sebaliknya) dan

merelay pesan antara SMS dan domain internet.

9
2.1.2.1 Basic Features SMS

SMS mempunyai beberapa basic feature, seperti :

a. Message Submission and Delivery

Terdiri dari message sending dan message delivery. Pada message sending,

pesan dikirm dari MS ke SMSC, dialamatkan ke SME lain sebagai mobile user

lain atau host internet. Originator (asal) SME menentukan validity period dari

pesan tersebut, pesan yang sudah tidak valid lagi akan dihapus oleh SMSC

sepanjang pengiriman pesan. Fitur ini dikenal sebagai Short Message-Mobile

Originated (SM-MO).

Pada message delivery, pesan disampaikan oleh SMSC ke MS. Dikenal

sebagai Short Message Mobile Terminated (SM-MT). SM-MO dan SM-MT dapat

dikirim / diterima saat voice call atau koneksi data sedang berlangsung. Pada

GSM pesan dikirim pada channel SDCCH/SACCH, pada GPRS pesan dikirim

pada channel PDTCH.

b. Status Report

SME asal (originator) meminta status report pada pengiriman pesan singkat

ke SME penerima (recipient). Status report memberikan indikasi pada user asal

apakah pesan terkirim dengan sukses atau tidak kepada SME penerima..

c. Addressing Mode

Addressing mode menggunakan MSISDN pada format [ITU-E.164]. Email

address ditentukan oleh IETF pada format [RFC-2822] atau operator specific

numbering.

10
d. Validity Period

Pesan originator dimungkinkan untuk menentukan validity period sebuah

pesan. Validity period ini menentukan batas waktu sebuah pesan harus dikirim

sebelum akhirnya dihilangkan oleh jaringan

2.2 SMS Gateway

Gateway berarti pintu gerbang, sehingga dalam istilah ini, SMS Gateway

berarti pintu gerbang/jembatan antara dua buah device atau lebih. Umumnya SMS

Gateway ini berupa sebuah komputer yang didalamnya telah terinstall aplikasi

untuk menangani pengiriman sms antar HP. Dalam hal ini, sms gateway berfungsi

sebagai aspek pusat yang menangani pengiriman surat sesuai dengan alamat yang

dituju.

SMS Gateway merupakan sebuah aplikasi Short Massage Service (SMS)

yang dapat di jalankan melalui Local Area Network (LAN). Aplikasi ini dapat

digunakan bersama-sama dalam satu jaringan. Walaupun aplikasi ini digunakan

oleh beberapa user tapi hanya mempunyai satu module GSM/CDMA.

Gateway adalah perangkat yang minimal terdiri dari sebuah PC dengan

modem GSM/CDMA, dimana sebuah kartu GSM/CDMA dengan nomor

direct/premium dan sebuah program aplikasi yang berfungsi untuk mengorganize

(menerima ataupun mengirim)sms. Aplikasi SMS Gateway mampu

mengintegrasikan antara teknologi ponsel dan PC.

Dalam pembahasan ini SMS Gateway adalah suatu platform yang

menyediakan mekanisme untuk EUA (External User Application) menghantar dan

11
menerima SMS dari peralatan mobile(HP, PDA phone,dll) melalui SMS Gateway

shortcode (sebagai contoh 9221). Berikut penjelasannya:

SMS Gateway memperbolehkan EUA untuk berkomunikasi dengan

Telco(perusahaan telekomunikasi seperti Indosat, Telkomasel dll)atau SMS

platform untuk menghantar dan menerima pesan SMS dengan sangat mudah,

karena SMS Gateway akan melakukan semua proses dan koneksi dengan Telco.

SMS Gateway juga menyediakan EUA dengan interface yang mudah dan standar.

EUA dapat berupa berbagai aplikasi yang memerlukan pengguna SMS. Seperti

berbagai aplikasi web yang telah banyak menggunakan SMS (free sms,

pendaftaran, konfirmasi melalui SMS, aplikasi perkantoran, dsb), CMS, acara

pengundian di televisi. UEA melakukan komunikasi dengan SMS Gateway

melalui Internet menggunakan standart HTTP GET atau HTTPS (untuk

komunikasi yang aman).

Selain digunakan untuk pengiriman pesan antara mobile phone, teknologi

SMS juga memungkinkan pengiriman pesan antara mobile phone dengan PC.

Agar hal ini dapat dilakukan maka user memerlukan suatu teknologi khusus yang

mampu menjadi perantara antara kedua alat tersebut. Prinsip kerja dari SMS

Gateway ini kita dapat melakukan pengaturan SMS dengan PC yang dihubungkan

dengan jalur GSM dari mobile phone tersebut dengan teknologi ini kita dapat

mengembangkan SMS bukan hanya berkaitan dengan pengiriman dan penerimaan

SMS namun juga bisa diaplikasikan ke beberapa teknologi lainnya.

Ketika sebuah pesan dikirimkan oleh aplikasi komputer, pertama kali pesan

tersebut akan dikirimkan kepada GSM phone atau disebut juga SME (Short

12
Message Entity) , dan kemudian GSM phone akan mentransmisikan pesan

tersebut kepada SMSC (Short Message Service Center) atau penyedia layanan

GSM melalui jalur nirkabel BSS (Base Station System). Di sisi lain, pesan yang

diterima oleh GSM phone akan disimpan di dalam memori atau di dalam SIM

card. Setelah itu, GSM phone akan memberikan peringatan kepada komputer.

Program pada komputer akan menerima peringatan tersebut dan kemudian

membaca ,memori yang tepat serta menghapus pesan dari phone untuk

menyiapkan ruang bagi pesan berikutnya.

Pengiriman dan penerimaan pesan menggunakan handphone memerlukan

waktu kira-kira 10 detik. Dengan menggunakan software yang bagus, komputer

akan mampu dihubungkan dengan device yang lebih banyak dan

menggunakannya secara bersamaan untuk meningkatkan kapasitas. Jadi SMS

Gateway adalah suatu gerbang yang memungkinkan interaksi data dari berbagai

protokol komunikasi ke protokol SMS, contohnya : dari email ke SMS, atau dari

Web ke SMS.

2.2.1 SMS Gateway handphone terkoneksi dengan komputer

1. Serial port (RS 232)

Handphone dapat dihubungkan ke komputer dengan menggunakan kabel data

phone-to-PC. Kabel tersebut terhubung dengan komputer melalui port serial

(COM1 atau COM2).

13
Gambar 2.2 Koneksi ponsel ke komputer dengan kabel data phone-to-

PC

Dibandingkan alternatif yang lain (USB, infrared, bluetooth), kabel serial

merupakan pilihan yang paling mudah dan terpercaya. Industrial GSM modem

yang digunakan untuk performansi dan kehandalan yang krusial selalu

menggunakan kabel data RS 232.

2. USB

Dengan menggunakan koneksi USB, user dapat menghubungkan beberapa

handphone dengan satu komputer melalui USB hub,yang harganya cukup murah.

Namun, user diharuskan menginstal driver untuk kabel tersebut. Hal ini seringkali

menimbulkan error sehingga sistem yang handal tidak bisa diperoleh.

Gambar 2.3 Koneksi handphone ke komputer dengan USB

3. Infrared

Koneksi menggunakan infrared tidak bisa digunakan dalam waktu yang

cukup lama karena dua sebab:

 Jalur komunikasi harus dipertahankan konstan. Apabila komputer atau

handphone digerakkan, jalur tersebut akan kacau sehingga koneksi terputus.

 Kebanyakan handphone akan mematikan fitur infrared secara otomatis

setelah periode tertentu (sekitar 10 menit)

14
Gambar 2.4 Koneksi handphone ke komputer dengan Infrared

4. Bluetooth

Teknologi bluetooth memiliki satu keuntungan yang sama dengan teknologi

infrared, yaitu koneksi nirkabelnya. Perbedaannya adalah, koneksi bluetooth tidak

memerlukan jalur yang konstan karena memanfaatkan gelombang radio.

Sayangnya, koneksi ini hanya dapat dilakukan bila handphone dengan fitur

bluetooth berada dalam radius yang terjangkau oleh komputer. Permasalahan

berikutnya adalah, apabila dalam range tersebut terdapat lebih dari satu device

bluetooth yang aktif maka user harus melakukan pemilihan terlebih dahulu, dan

hal ini cukup sulit apabila informasi tentang device tersebut kurang lengkap.

Apabila koneksi handphone dan komputer telah terpasang maka jaringan akan

terlihat seperti gambar berikut

Gambar 2.5 SMS Network Standard

15
2.2.2 SMS Gateway dengan IP SMS technology

Dengan menggunakan teknologi IP SMS, data sms yang dikirimkan dari

komputer tidak memerlukan hardware tambahan sebagai pembawa informasinya.

Jadi pada IP SMS ini, data langsung dikirim melalui protokol TCP/IP langsung ke

SMSC. Apabila ingin menggunakan IP SMS, pengguna harus mendaftar account

ke SMSC agar beri akses langsung ke server SMSC, sehingga dapat mengirim

SMS dengan protokol IP. Bila account telah disetujui maka pengguna akan

diberikan informasi account berupa username, password, no telpon dan ip address

dari server yang digunakan. Sehingga jaringan IP SMS akan terlihat pada gambar

berikut

Gambar 2.6 IP SMS Network

Karena merupakan subuah aplikasi, maka fitur-fitur yang terdapat didalam

SMS gateway dapat dimodifikasi sesuai dengan kebutuhan, beberapa fitur yang

umum dikembangkan dalam aplikasi sms gateway adalah

1. Auto-reply

SMS gateway secara otomatis akan membalas SMS yang masuk. Contohnya

untuk keperluan permintaan informasi tertentu(misalnya kurs mata uang,

jadwal perjalanan), dimana pengirim mengirimkan SMS dengan format

16
tertentu yang dikenali aplikasi, kemudian aplikasi dapat melakukan auto-reply

dengan membalas SMS tersebut berisi informasi yang dibutuhkan

2. Pengiriman masal.

Disebut juga dengan istilah SMS broadcast, bertujuan untuk mengirimkan

SMS ke banyak tujuan sekaligus. Misalnya untuk informasi produk terbaru

kepada pelanggan.

3. Pengiriman terjadwal.

Sebuah SMS dapat diatur untuk dikirimkan ke tujuan secara otomatis pada

waktu tertentu. Contohnya untuk keperluan mengucapkan selamat ulang

tahun.

Komponen /hal-hal yang berhubungan dengan SMS gateway yaitu:

2.2.2.1 SMSC(Short Message Service Center)

Merupakan jaringan telpon selular yang menangani pengiriman SMS.

Jadi, pada saat seseorang mengirimkan sebuah pesan SMS melalui ponselnya,

SMSC bertugas mengirimkan pesan tersebut ke nomor tujuan. Jika nomor tujuan

tidak aktif, maka SMSC akan menyimpan pesan tersebut dalam jangka waktu

tertentu. Jika SMS tetap tidak dapat terkirim sampai jangka waktu tersebut

berakhir, maka SMS tersebut akan dihapus dari penyimpanan SMSC.

Salah satu masalah adalah pesan SMS yang SMSCs dikembangkan oleh

berbagai perusahaan sendiri menggunakan protokol komunikasi dan protokol

sebagian besar dari program tersebut adalah hak milik. Sebagai contoh, Nokia

memiliki SMSC protokol disebut CIMD sedangkan lain SMSC vendor, CMG,

17
memiliki SMSC protokol disebut EMI. Kedua SMSCs tidak dapat saling

berhubungan jika tidak didukung common SMSC protocol. Untuk menangani

masalah ini, SMS gateway diletakkan di antara dua SMSCs. Hal ini digambarkan

dalam gambar berikut

Gambar 2.7

SMS Gateway bertindak sebagai relay antara dua SMS Center.

SMS Gateway bertindak sebagai relay antara dua SMSCs untuk

menterjemahkan satu SMSC ke protokol lain. Dengan cara ini dapat digunakan

oleh dua operator nirkabel ke interkoneksi SMSCs mereka untuk tujuan seperti

memungkinkan pertukaran antar operator SMS. Selain itu operator selular,

penyedia konten dan aplikasi SMS pengembang juga menemukan SMS Gateway

yang berguna untuk mengirim dan menerima pesan teks SMS pada serve, itu

merupakan salah satu cara untuk menyambung ke SMSCs dari operator selular.

Operator selular yang berbeda dapat menggunakan SMSCs dari berbagai vendor,

yang berarti pesan teks SMS aplikasi mungkin perlu dukungan beberapa SMSC-

protokol tertentu. (Hal ini dapat digambarkan dalam gambar berikut). Akibatnya,

pesan teks SMS kompleksitas aplikasi dan pengembangan waktu meningkat.

18
Gambar 2.8 Sebuah aplikasi pesan teks SMS SMSC

tanpa terhubung ke SMS gateway

Untuk menangani masalah di atas, SMS gateway dapat dikonfigurasi untuk

menangani koneksi ke SMSCs. Sekarang pesan teks SMS aplikasi hanya perlu

tahu cara untuk terhubung ke SMS gateway. Untuk mendukung SMSCs, hanya

perlu memodifikasi pengaturan SMS gateway. Tidak diperlukan adanya

perubahan pada kode sumber dari aplikasi pesan teks SMS.. Untuk terhubung ke

SMS gateway, user dapat menggunakan SMSC protokol seperti SMPP dan

CIMD. Beberapa SMS gateways mendukung sebuah HTTP / HTTPS antarmuka.

HTTP / HTTPS lebih mudah digunakan daripada SMSC protokol. Yang keberatan

mungkin ada yang lebih sedikit untuk menggunakan fitur SMS. Sebagai contoh,

sebuah gateway SMS mungkin tidak mendukung pengiriman pesan gambar

melalui HTTP / HTTPS antarmuka.

Gambar 2.9 Sebuah pesan teks SMS ke aplikasi


19
menghubungkan SMSCs melalui SMS gateway.

Selain menggunakan koneksi langsung ke SMSC dari operator selular, ada

cara lain untuk mengirim dan menerima pesan teks SMS pada komputer adalah

dengan menggunakan ponsel atau modem GSM / GPRS. Untuk melakukan ini,

Anda pesan teks SMS ke aplikasi memiliki cara untuk berkomunikasi dengan

ponsel atau modem GSM / GPRS menggunakan AT. Beberapa SMS gateways

mampu menangani koneksi ke ponsel dan GSM / GPRS modem. Untuk mengirim

dan menerima pesan teks SMS dengan ponsel atau modem GSM / GPRS, SMS

pesan teks aplikasi hanya perlu tahu cara untuk berbicara dengan SMS Gateway

dan tidak perlu tahu apa-apa tentang AT. Rincian lebih lanjut tentang GSM /

GPRS dan modem AT akan diberikan kemudian dalam bagian ini SMS tutorial.

Gambar 2.10 Sebuah pesan teks SMS aplikasi yang menghubungkan

ke ponsel atau GSM / GPRS modem melalui SMS gateway

SMS spesifikasi yang telah ditetapkan cara untuk sebuah komputer untuk

mengirim pesan SMS melalui ponsel atau modem GSM / GPRS. J GSM / GPRS

Modem nirkabel yang bekerja dengan modem GSM / GPRS, jaringan nirkabel. J

nirkabel yang mirip dengan modem dial-up modem. Perbedaan utama adalah

bahwa nirkabel transmit modem data melalui jaringan nirkabel sedangkan dial-up

20
modem transmit data melalui telepon tembaga. Sebuah aplikasi SMS gateway

dapat menggunakan jalur SMSC untuk pengoperasiannya, keuntungannya adalah

penggunaan nomor pendek yang mungkin dapat terdiri dari 3 atau 4 digit saja,

misalnya 222, 990, dan seterusnya.

Contohnya seperti saat seseorang mengikuti poling SMS , nomor pendek

disediakan oleh operator jaringan SMSC. Jalur SMSC juga dapat mengirim SMS

dalam jumlah banyak dalam waktu yang realtif singkat. Hanya saja untuk

membuat SMS gateway dengan menggunakan jalur SMSC, seseorang harus

memiliki jalur koneksi ke operator selular, dan ini bukan hal yang mudah untuk

pelaku bisnis dalam skala kecil ataupun individu. Umumnya layanan ini

digunakan jika aplikasi seseorang dapat menghasilkan lalu lintas SMS yang

tinggi.

Terdapat alternative infrastuktur yang lebih sederhana dan mudah

didapatkan,yaitu membuat sms gateway dengan menggunakan ponsel ataupun

modem GSM/CDMA sebagai media pengirim/penerima SMS, dimana ponsel atau

modem GSM/CDMA tersebut terpasang pada sebuah computer.

Tentu saja SMS tersebut sebenarnya tetap terkirim melalui SMSC, hanya saja

melalui rute yang lebih panjang karena tidak memiliki koneksi langsung ke

SMSC, karena itu kapasitas dan kecepatan pengirimannya tidak sebaik performa

jika langsung menggunakan jalur SMSC. Karena relative lebih mudah untuk

diimplementsikan, SMS gateway bisa digunakan pada ponsel GSM/CDMA

dimana kinerja ponsel tersebut adalah sebagai modem. Modem GSM/CDMA

21
lebih sering digunakan, karena memiliki performa yang baik dan stabil

dibandingkan dengan ponsel biasa

Sedangkan modem GSM atau modem CDMA hanya dibedakan oleh

jaringannya saja.Untuk saat ini modem GSM lebih banyak digunakan karena

jaringan lebih stabil. Cara kerja modem GSM/CDMA mirip dengan modem dial-

up yang biasa digunakan untuk koneksi internet melalui line telepon.

Perbedaannya adalah modem dial-up mengirim dan menerima data melalui line

telepon, sedangkan modem GSM/CDMA mengirim dan menerima data melalui

gelombang radio.

2.2.2.2 Library SMS Gateway

Inti dari sebuah SMS gateway adalah mesin atau engine pengiriman dan

penerima SMS, sehingga developer dapat menggunakan function-function yang

telah disediakan engine tersebut dan menyesuaikannya dengan kebutuhan dan

database. Salah satu komponen ActiveXyang dapat digunakan untuk keperluan

SMS gateway adalah FBUS yang dapat digunakan oleh programmer Visual Basic

ataupun bahasa pemrograman lain yang mendukung control ActiveX.

Yang paling menarik adalah untuk versi FBUS Lite dapat didownload secara

gratis, pada saat ini tidak mudah mendapatkan komponen SMS gateway yang

gratis dan berkualitas, terutama untuk platform Windows. FBUS kompatibel

dengan kebanyakan ponsel Nokia, dengan panduan contoh program demo yang

ikut disertakan dalam paket downloadnya dan referensi dari website,SMS gateway

yang sederhana sudah dapat dibuat,

22
Library komponen lain yang dipergunakan adalah Boomerang GSM yang

dibuat dengan bahasa pemrograman Delphi, tetapi juga disediakan library

ActiveX yang dapat digunakan oleh Visual Basic. Untuk versi Lite juga dapat

diperoleh secara gratis meskipun diperlukan registrasi melalui website Boomerang

pada saat menggunakan computer. Library ini cukup dapat diandalkan dan

compatible dengan cukup banyak jenis ponsel maupun modem GSM.

2.3 AT Command

AT Command adalah perintah yang digunakan dalam komunikasi dengan

serial port. Dengan AT Command kita dapat mengetahui vendor dari handphone,

mengetahui kekuatan sinyal, membaca pesan SMS, mengirim SMS, menghapus

pesan dan masih banyak lagi MSComm menyediakan komunikasi data melalui

serial port(juga mendukung USB dan infrared) dari suatu aplikasi. Sehingga dapat

berkomunikasi dengan ponsel atau modem GSM yang terpasang pada serial port

computer.

Bahasa yang dikenali oleh ponsel/modem GSM disebut dengan AT command. AT

merupakan kependekan dari Attention. AT command dapat digunakan antara lain

untuk menginstruksikan perintah-perintah sabagai berikut :

1. Mengirim dan menerima pesan SMS, atau fax.

2. Mendapatkan informasi mengenai device, misalnya nama manufaktur, nomor

IMEI, dan lain-lain.

3. Mendapatkan status device, misalnya status aktifitas, status registrasi

network, kekuatan sinyal, ataupun status baterai.

23
4. Penulisan dan pencarian phonebook.

5. Dari sisi keamanan, Anda dapat mengaktifkan fasilitas lock dan mengubah

password.

6. Menyimpan dan mengembalikan konfigurasi.

Tidak semua device mengimplementasikan seluruh AT command, pada

umumnya modem GSM lebih mendukung banyak AT command dibandingkan

ponsel biasa AT command disupport dengan menggunakan HyperTerminal yang

disediakan oleh Microsoft Windows yang terletak pada menu All Programs-

Accessories, Communications-Hyperterminal Sebelum digunakan terlebih dahulu

pastiikan driver telah terinstal agar system operasi mengenali device yang akan

dipakai kemudian masukkan kartu GSM pada onsel ataupun modem GSM.

Kemudian koneksikan pada port computer, supaya program HyperTerminal dapat

dipanggil.

Untuk dapat melakukan test koneksi dengan ponsel modem GSM, cukup

ketikan perintah AT diikuti dengan penekanan tombol enter yang akan direspon

dengan OK jika tidak terdapat masalah

Di bawah ini menunjukkan contoh sederhana yang menunjukkan bagaimana

cara menggunakan perintah AT HyperTerminal dan program Microsoft Windows

untuk mengirim pesan teks SMS. Baris dalam huruf tebal adalah baris perintah

yang harus dimasukkan dalam HyperTerminal. Baris yang lain adalah tanggapan

kembali dari GSM / GPRS modem atau ponsel.

AT

OK

24
AT + CMGF = 1

OK

AT + CMGW = "+85291234567"

> A simple demo dari pesan teks SMS.

+ CMGW: 1

OK

AT + CMSS = 1

+ CMSS: 20

OK

Berikut ini adalah penjelasan dari apa yang dilakukan pada contoh di atas:

 Baris 1: "AT" dikirim ke modem GSM / GPRS untuk menguji sambungan.

GSM / GPRS modem mengirimkan kembali hasilnya kode "OK"

 Baris 2, yang berarti koneksi antara program HyperTerminal dan modem

GSM / GPRS works fine.

 Baris 3: Perintah AT + CMGF digunakan untuk memerintahkan GSM /

GPRS modem untuk beroperasi dalam mode teks SMS. Hasilnya kode "OK"

dikembalikan

 Baris 4, menunjukkan baris perintah "AT + CMGF = 1" telah berhasil

dijalankan. Jika hasil kode "KESALAHAN" dikembalikan, ada kemungkinan

bahwa modem GSM / GPRS tidak mendukung mode teks SMS. Untuk

konfirmasi, ketik "AT + CMGF =?" pada program HyperTerminal. Jika

jawabannya adalah "+ CMGF: (0,1)" (0 = PDU mode dan 1 = text mode),

25
maka teks SMS modus yang didukung. Jika jawabannya adalah "+ CMGF:

(0)", maka teks SMS modus tidak didukung.

 Baris 5 dan 6: Perintah AT + CMGW digunakan untuk menulis pesan teks

SMS ke pesan penyimpanan GSM / GPRS modem. "+85291234567" Adalah

nomor ponsel penerima. Setelah mengetik penerima nomor ponsel, Anda

harus menekan tombol Enter pada keyboard. GSM / GPRS modem kemudian

akan kembali sebuah prompt ">" dan Anda dapat mulai mengetik pesan teks

SMS "A simple demo dari pesan teks SMS.". Setelah selesai, tekan Ctrl + z

dari keyboard.

 Baris 7: "+ CMGW: 1" memberitahu kita bahwa indeks ditetapkan pada

pesan teks SMS 1. It menunjukkan lokasi SMS pesan teks dalam pesan

penyimpanan.

 Baris 8: Hasil kode "OK" menunjukkan eksekusi dari perintah AT + CMGW

berhasil.

 Baris 9: The perintah AT + CMSS digunakan untuk mengirim pesan teks

SMS dari pesan penyimpanan GSM / GPRS modem. "1" adalah indeks dari

pesan teks SMS yang diperoleh dari baris 7.

 Baris 10: "+ CMSS: 20" memberitahu kita bahwa nomor referensi ditetapkan

pada SMS pesan teks adalah 20.

 Baris 13: Hasil kode "OK" menunjukkan eksekusi dari perintah AT + CMSS

berhasil.

26
AT command dapat dikategorikan dalam beberarpa kategori yaitu:

AT Command Fungsi

AT+CGMI Mengambil informasi manufaktur

AT+CGMM Mengambil informasi model

AT+CGMR Mengambil informasi revisi

AT+CGSN Mengambil informasi serial number device

AT+CSCS Memilih set karakter

Tabel 1. Tabel fungsi AT Comm secara umum

AT command untuk control:

AT Command Fungsi

ATD Melakukan dial

ATH Hang up panggilan yang masuk

ATA Menjawab panggilan yang masuk

Tabel 2. Tabel Control AT Comm

AT command untuk layanan jaringan:

AT Command Fungsi

AT+CNUM Nomor subscriber

AT+CREG Registrasi jaringan

AT+COPS Pemilihan operator

AT+CLCK Fasilitas lock

AT+CPWD Penggantian password

AT+CCWA Call waiting

Tabel 3. Tabel AT Command untuk layanan jaringan


27
AT command untuk SMS:

AT Command Fungsi

AT+CPMS Menentukan penyimpanan pesan

AT+CMGF Format pesan

AT+CSCA Nomor service center

AT+CNMI Pengaktifan indikasi pesan baru

AT+CMGL Daftar pesan

AT+CMGR Membaca pesan

AT+CMGS Mengirim pesan

AT+CMGD Menghapus pesan

AT+CMMS Mengirimkan lebih banyak pesan

+CMTI Notifikasi delivery pesan

+CDSI Notifikasi status report

Tabel 4. Tabel AT Command untuk SMS

Masih banyak lagi AT command yang tersedia, akan sangat bagus jika user

memiliki dokumentasi AT command yang didukung oleh device yang Anda

gunakan, sehingga dapat memaksimalkan kemampuan device yang digunakan

pada SMS gateway.

Untuk AT command yang berawalan dengan AT (misalnya: AT+CMGS,

AT+CMGD) diketikkan dengan diikuti parameter-parameter yang dibutuhkan,

sedangkan command tanpa awalan AT (seperti +CMTI,+CDSI) merupakan result

yang dikeluarkan oleh device. Jika computer tidak memiliki dokumentasi yang

cukup mengenai AT command yang didukung oleh device yang digunakan AT

28
command dapat dicoba melalui Hyperteminal.Disini hyperteminal berfungsi

mengembalikan pesan kesalahan jika AT command yang diketikkan tidak

dimengerti oleh device.

Saat sebuah AT command tidak menampilkan pesan kesalahan, perlu dicoba

lebih jauh dengan mengetikkan parameter-parameter yang mungkin digunakan

dalam aplikasi.

Hal ini penting mengingat AT command juga bisa berbeda parameter antara

device satu dengan device lainny. Terdapat dua tipe AT command, yaitu basic

command dan extended command. Basic command adalah AT command yang

tidak menggunakan tanda +, misalnya ATD, ATH, dan ATA. Sebaliknya, AT

command yang menggunakan tanda + merupakan extended command. Setiap

extended command memiliki parameter/perintah test yaitu =?, yang akan

mengembalikan informasi mengenai command tersebut.

Gambar 2.11 Struktur ATComm pada SMS Gateway

29
2.4 Protocol Data Unit (PDU)

Terdapat 2 cara dalam mengirim dan menerima SMS, yaitu dengan cara teks

dan cara PDU. Cara teks hanya digunakan pada beberapa model telepon selular.

Cara teks ini hanya merupakan cara penyandian arus bit yang diwakili PDU. Jika

cara ini diterapkan, aplikasi harus membatasi dengan menetapkan pilihan

penyandian. Jika cara PDU digunakan, penyandian apapun dapat diterapkan.

PDU tidak hanya berisi pesan saja, tetapi juga banyak informasi tentang

pengirim. Mulai dari nomer pengirim, nomer SMSC pengirim, waktu berlaku

SMS, dan lain sebagainya. Semuanya dibangun dalam bentuk bilangan-bilangan

heksadesimal. Setiap pengiriman SMS akan melalui proses konversi ke format

PDU, demikian juga saat menerima SMS. PDU untuk mengirim SMS dengan

PDU untuk menerima SMS adalah berbeda.

2.4.1 Struktur Data SMS DELIVER

Penjelasan parameter seperti yang telah dijelaskan sebelumnya, struktur

data SMS SUBMIT dengan SMS DELIVER adalah berbeda. Meskipun demikian,

terdapat beberapa bagian parameter yang sama diantara keduanya. Berikut akan

dijelaskan maksud dan format data untuk setiap parameter.Informasi Service

Center Address (SCA) atau nomor SMS Center. Struktur data informasi SCA

dapat diperlihatkan seperti berikut ini.digit2 digit1 digit4 digit3 … digit n digit n-

1. Lebar Data Kode Nas./Int. Nomer SMSC

2.4.2 Struktur Data SCA

30
Pada keterangan diatas SCA terbagi atas 3 bagian kecil, yaitu:

 Lebar data SMS Center, yaitu jumlah pasangan heksadesimal SMS Center.

dalam bilangan heksa.

 Kode nasional/internasional. Untuk nasional kode heksanya 81, sementara

untuk internasional kode heksanya 91.

 Nomer SMS Center itu sendiri. Disusun dalam pasangan heksadesimal yang

dibalik-balik. Jika tersisa satu angka heksa yang tidak memiliki pasangan,

angka tersebut akan dipasangkan dengan huruf F didepannya.

 Contoh: nomer SMSC Excelcom yang ditulis dalam format internasional:

62818445009 diubah menjadi:

07 ada 7 pasang.

911 pasang (untuk kode internasional).

26-18-48-54-00-F9 6 pasang (nomer SMS Center itu sendiri dibalik-balik

berpasangan. Total dari kode nasional dan nomer SMS Center itu ada 7

pasang (seperti pada poin pertama).Sehingga diperoleh kode PDU-nya

adalah: 07912618485400F9

2.4.3 Protocol Data Unit Type (TPDU) atau tipe SMS.

TPDU menunjukkan dengan tipe apa sebuah SMS akan

dikirimkan/diterima. Setiap SMSC dalam sebuah jaringan operator belum tentu

mendukung semua tipe PDU ini. Biasanya, setiap SMSC memiliki standar TPDU

sendiri-sendiri. Meskipun dapat saling berbeda, setiap SMC juga harus

memperhatikan beberapa hal yang bersifat standar, seperti kode SMS SUBMIT

31
atau kode SMS DELIVER. TPDU terdiri atas 8 bit data atau 1 nilai oktal. TPDU

untuk SMS SUBMIT dengan TPDU untuk SMS DELIVER memiliki format yang

berbeda. Parameter-parameter yang terdapat dalam TPDU antara lain:

 Replay Path (RP).

Jika bernilai 0 berarti alur jawab (reply path) tidak diset dalam PDU

ini.Sementara jika bernilai 1 berarti alur jawab diset dalam PDU ini.

 User Data Header Indicator (UDHI)

Jika bernilai 0 berarti isi dari parameter User Data (UD), hanya berisi SMS.

Jika bernilai 1 berarti diawal isi UD terdapat sebuah header sebagai tambahan

dalam SMS.

 Status Report Indication (SRI)

SRI hanya diset oleh Short Message Entity (SME). Jika bernilai 0 berarti

status report tidak akan dikembalikan ke SME. Jika bernilai 1 berarti status

report akan dikembalikan ke SME.

 Status Report Request (SRR)

Jika bernilai 0 berarti tidak ada permintaan status report. Jika bernilai 1

berarti ada permintaan status report.

 Validity Period Format (VPF)

VPF menempati bit 4 dan bit 3. Ada 4 kemungkinan nilai dari VPF, yaitu:

00, berarti isi Validity Period (VP) tidak ada.

01, berarti Reserved.

10, berarti isi VP memiliki format integer (relatif).

11, berarti isi VP memiliki format semi-oktal (pasti).

32
More Message to Send (MMS)

Jika bernilai 0 berarti ada pesan lanjutan yang sedang menunggu di SMSC

untuk dikirimkan. Jika bernilai 1 berarti tidak ada pesan lagi yang menunggu

untuk dikirimkan.

 Reject Duplicates (RD)

Jika bernilai 0 berarti SMSC dapat menerima SMS SUBMIT dengan Message

Reference (MR) dan Destination Address (DA) yang sama seperti pada

pengiriman sebelumnya. Jika bernilai 1 berarti sebaliknya.

 Message Type Indicator (MTI)

MTI menempati bit 1 dan bit 0. Ada 4 kemungkinan isi dari MTI, yaitu:

00, menunjukkan SMS DELIVER atau SMS DELIVER REPORT.

01, menunjukkan SMS SUBMIT atau SMS SUBMIT REPORT.

10, menunjukkan SMS STATUS REPORT.

11, berarti Reserved.

Secara umum, untuk SMS SUBMIT, TPDU ini diset dengan nilai 01,

sementara untuk SMS DELIVER, TPDU ini diset dengan nilai 04.

 Message Reference (MR) atau nomer referensi SMS.

MR memiliki lebar data 8 bit atau 1 oktal. Nomer referensi ini dibangkitkan

secara otomatis oleh ponsel. Untuk sementara diisi dengan 0, jadi bilangan

heksanya adalah 00.

 Originator Address (OA) atau nomer ponsel pengirim.

Cara konversi sama seperti cara konversi PDU untuk SMS Center.

 Destination Address (DA) atau nomer ponsel penerima.

33
Cara konversi sama seperti cara konversi PDU untuk SMS Center.

2.4.3.1 Protocol Identifier (PID) atau bentuk SMS.

PID memiliki lebar data 8 bit atau 1 oktal. Secara umum, bentuk SMS

dalam parameter PID ini menempati bit 4, bit 3, bit 2, bit 1, dan bit 0. Sementara

bit 5-7 diisi dengan standar setiap SMSC. Kemungkinan nilai desimal yang paling

umum didukung oleh semua SMSC adalah sebagai berikut:

 0 dikirim sebagai SMS

 1 dikirim sebagai teleks.

 2 dikirim sebagai faks.

2.4.3.2 Data Coding Scheme (DCS) atau skema encoding data.

DCS memiliki lebar data 8 bit atau 1 oktal. Ada 2 skema DCS, yaitu:

 Skema 7 bit, ditandai dengan angka 0 00

 Skema 8 bit, ditandai dengan angka lebih besar dari 0, kemudian diubah ke

heksadesimal. Skema 8 bit sama saja dengan tabel ASCII-HEX milik

INTEL.Saat ini kebanyakan ponsel yang ada dipasaran menggunakan skema

7 bit.

2.4.3.3 Service Center Time Stamp (SCTS) atau waktu tiba di SMS Center.

SCTS adalah informasi yang berisi waktu tiba SMS di entitas Transport

Layer SMS Center. SCTS memiliki lebar data 7 oktal x 8 bit = 56 bit. Pada

34
gambar 2.4 berikut diperlihatkan struktur SCTS dalam 7 pasang heksadesimal

yang dibalik-balik.

Tahun Bulan Tanggal Jam Menit Detik Zona Waktu

Contoh:

79501231543300

Contoh diatas menunjukkan SCTS: 21 Mei 1997 13:45:33 dengan zona waktu +0

GMT.

2.4.3.4 Validity Period (VP) atau jangka waktu validitas SMS

Jika bagian ini dilewati, itu berarti tidak ada batasan waktu berlakunya

SMS. Sedangkan jika diisi dengan suatu bilangan integer yang kemudian diubah

dalam heksadesimal, bilangan tersebut akan mewakili jumlah waktu validitas

SMS tersebut. Ada 2 cara mengisi parameter ini, yaitu dengan cara relatif dan cara

absolut/pasti. Jika cara absolut, dapat menggunakan cara sama seperti format

SCTS. Sedangkan cara relatif memiliki cara yang lebih mudah. Dapat dilihat cara

menghitung jangka waktu validitas sebuah SMS yang akan dikirimkan dengan

cara relatif (nilai integer harus diubah ke nilai heksadesimal).

 Jangka Waktu Validitas SMS

Integer(INT) Jangka Waktu Validitas SMS

0-143 (INT+1) x 5 menit (berarti: 5 menit s/d 12 jam)

144-167 12 jam + ((INT-143) x 30 menit)

168-196 (INT-166) x 1 hari197-255 (INT-192) x 1 minggu

35
User Data Length (UDL) atau lebar isi SMS menunjukkan lebar data atau jumlah

huruf yang diwakili oleh pasangan heksadesimal isi SMS.

User Data (UD) atau isi SMS, berupa pasangan heksa. Ada dua langkah yang

harus dilakukan untuk mengkonversikan isi SMS, yaitu:

 Mengubahnya menjadi kode 7 bit (dengan asumsi ponsel/gateway yang

digunakan menggunakan skema 7 bit).

 mengubah kode 7 bit menjadi 8 bit, yang diwakili oleh pasangan heksa.

Setiap manufaktur memiliki standar tabel konversi sendiri-sendiri meskipun

secara keseluruhan tetap harus ada kecocokan (kompatibel). Perusahaan-

perusahaan pengembang ponsel seperti NOKIA, SIEMENS, WAVECOM, dan

yang lain dapat memiliki standar tabel konversi yang sedikit berbeda satu sama

lain.

36
BAB III

PERANCANGAN SISTEM

3.1 Gambaran Umum Perancangan

Terminal yang dipasangkan pada serial port di computer berfungsi untuk

mengirim dan menerima pesan. Pesan yang diterima dan akan dikirim, diproses

oleh server. Secara garis besar, ada dua pekerjaan penting yang dilakukan pada

server, yaitu :

 Memantau pesan yang datang ke terminal, memprosesnya, dan

menuliskannya ke database.

 Memantau pesan yang akan dikirim pada database untuk kemudian dengan

segera dikirimkan ke terminal.

Untuk berinteraksi dengan server seperti melakukan pengiriman pesan,

melihat status dari pesan yang dikirim, Client/Agent menggunakan perantara

browser. Untuk itu diperlukan web server.

Computer
server

Ponsel Komunikasi serial Jaringan LAN


(kabel data RS232)
Send/receive
sms

Modem
wavecom admin

Gambar 3.1 Gambaran Umum Perancangan

37
3.2 Diagram Blok Proses Komunikasi Server

3.2.1 Proses pengiriman New Sms

Berikut adalah proses yang terjadi pada saat sms dikirim melalui server

Start

Login

Web Server

SMS Manager

New SMS

Input number PhoneBook

Pesan

Database
Outbox

Diolah Gammu

Data
dikirim ke
Modem

Dipindah ke
SentItem

Finish

Gambar 3.2 Diagram Blok Pengiriman Pesan

Diagram diatas merupakan proses pengiriman pesan baru, pertama

user(admin)terlebih dahulu harus melakukan konfirmasi terlebih dahulu pada

server dengan login. Setelah login sukses admin yang akan mengirim pesan baru

terlebih dahulu harus membuka SMS Manager untuk dapat masuk ke dalam link

New SMS. Dari New SMS admin dapat membuat sms baru sebelum sms

38
dikirimkan terlebih dahulu user harus menginputkan nomor tujuan dimana pesan

tersebut akan dikirim. Dalam proses ini user dapat mengisikan secara langsung

number tujuan atau memasukkan nomor yang telah dituliskan terlebih dahulu

dalam phonebook baru kemudian mengirimkannnya, tetapi sebelum pesan dikirim

data tersebut dikirim ke database outbox terlebih dahulu baru kemudian diolah

oleh gammu disisni gammu hanya berfungsi sebagai monitoring untuk

disampaikan ke modem bahwa pesan dapat dikirim, setelah diproses modem, data

baru dapat dikirim dan data yang terkirim akan masuk ke dalam database sent

items.

3.2.2 Proses pengolahan data saat SMS Masuk

Berikut adalah proses pengolahan data saat SMS Masuk ke dalam server

Sms dikirim

Data dikirim
masuk ke
Modem

Dibaca dan diolah


oleh Gammu

Data dipindah ke
database inbox

Ditampilkan dalam
web server inbox

Finish

Gambar 3.3 Diagram Blok Sms masuk ke web server

39
Pada saat sms dikirim pertama-tama sms diterima oleh modem

kemudiankemudian dibaca dan diolah oleh gammu setelah itu data yang dipindah

ke database inbox baru kemudian ditampilkan dalam tampilan server inbox.

3.2.3 Proses mereply SMS Masuk

Berikut adalah proses pengolahan data saat akan mereply/membalas SMS

yg masuk ke dalam server

SMS dikirim

Diterima
oleh
modem

Data dibaca
kemudian diolah
oleh gammu

Dipindah pada
database inbox

Masuk Tidak
Inbox

Ya

Replay Delete

Database
Outbox

Diolah Gammu

Dikirim ke
Modem

Dipindah ke
sent item

Finish

Gambar 3.4 Diagram Blok mereply sms masuk

40
Pada saat sms dikirim pertama-tama sms diterima oleh modem kemudian

kemudian dibaca dan diolah oleh gammu setelah itu data yang dipindah ke

database inbox baru kemudian ditampilkan dalam tampilan server inbox.

Kemudian user bisa mereplay ataupaun menghapus sms yang masuk. sebelum

pesan dikirim data tersebut dikirim ke database outbox terlebih dahulu baru

kemudian diolah oleh gammu disisni gammu hanya berfungsi sebagai monitoring

untuk disampaikan ke modem bahwa pesan dapat dikirim, setelah diproses

modem, data baru dapat dikirim dan data yang terkirim akan masuk ke dalam

database sent items.

3.3 Diagram Alir

Perancangan sistem kerja dari aplikasi server dapat digambarkan dengan

menggunakan diagram alir(flowchart).

3.3.1 Diagram Alir Tampilan Utama Server

Pada awalnya akan diadakan pengecekan apakah user ingin melakukan

koneksi pada server dengan login. Bila betul, maka akan dilanjutkan menuju

method”Buka Koneksi Awal”. Bila tidak, akan dilanjutkan ke pengecekan

selanjutnya yaitu apakah user ingin membuka Sms Manager. Bila betul akan

dilanjutkan menuju method”Kirim SMS”. Bila tidak, akan dilanjutkan ke

pengecekan berikutnya yaitu apakah user ingin mengupdate user maupun

password saat login. Bila betul, akan dilajutkan menuju ”User Manager”. Bila

tidak, akan dilajutkan ke pengecekan berikutnya yaitu apakah user ingin keluar

41
dari aplikasi server. Bila betul, maka method berakhir dan program selesai. Bila

tidak, maka akan dilakukan looping menuju pengecekan pertama kembali.

Start

Y Buka
Pilih’Login’ Koneksi
Awal

Pilih’Sms Y Kirim /
Manager’ Reply SMS

Update
Pilih’User Y User &
Manager’
Password

T
Pilih’Logout’

Finish

Gambar 3.5 Diagram alir tampilan utama server

3.3.2 Diagram Alir Buka Koneksi

Setelah user memilih tombol”Buka Koneksi”,program akan menjalankan

method inisialisasi. Apabila proses inisialisasi gagal, maka method ini berakhir.

Bila proses inisialisasi berhasil,maka akan dilanjutkan menuju pengecekan

berikutnya, yaitu apakah user ingin mematikan koneksi pada server. Bila betul

maka method ini berkahir. Bila tidak, maka akan dilanjutkan menuju pengecekan

berikutnya, yaitu apakah user ingin masuk pada Sms Manager. Bila betul, maka

akan dilanjutkan menuju method ‟Kirim/Reply pesan‟. Bila tidak, maka akan

dilanjutkan menuju pengecekan berikutnya, yaitu apakah user ingin


42
menghentikan koneksi server. Bila betul, maka akan dilanjutkan menuj

method”Keluar/Berhenti”. Bila tidak, maka akan dilanjutkan menuju pengecekan

berikutnya, yaitu apakah user inigin mengirim sms yang baru. Bila betul akan

dilanjutkan menuju method”Kirim Sms”. Bila tidak maka akan dilanjutkan

menuju pengecekan berikutnya, yaitu apakah user ingin melihat daftar phonebook

. Bila betul, akan dilanjutkan menuju method”Update Phonebook”. Bila tidak,

maka akan dilanjutkan dengan 3 jalur yang berjalan bersamaan . Alur kedua dan

ketika dipasang timer, dimana jika ada salah dari dua alur itu yang sedang berjalan

maka satu alur yang lain akan berhenti sementara. Alur yang paling kiri berfungsi

untuk memantau apabila ada SMS yang masuk ke dalam server. Bila ada respon

dari luar(misal: ada SMS masuk), maka server akan menjalankan method

“Response Terminal”. Alur yang pertama berfungsi untuk membaca pesan pada

table Receive. Alur yang selanjutnya berfungsi untuk mengirim pesan pada table

Send.

43
Start

Inisialisasi

Gagal Y
Inisialisasi

Tutup
Pilih’Logout’
Koneksi

Pilih ‘ Sms Y Kirim/


Manager’ ReplyPesan

Y Keluar/
Pilih’Logout’
Berhenti

Y
Pilih’New SMS Kirim Sms

Pilih Y Update
‘Phonebook’ Phonebook

Timer 1 Aktif Timer 2 Aktif


Respon
Terminal
T
Y Y T
Baca Tabel Baca Tabel
Receive Send

Gambar 3.6 Diagram alir buka koneksi

3.3.3 Diagram Alir Inisialisasi

Pada awalnya server akan melakukan koneksi kepada database pada

MySQL Front. Apabila proses koneksi sukses, akan dilanjutkan menuju method

“Buka koneksi ke terminal”dan method kemudian berakhir.

44
Start

Buka koneksi ke
database

Buka koneksi ke
terminal

Finish

Gambar 3.7 Diagram alir inisialisasi

3.3.4 Diagram Alir Buka Koneksi ke Terminal

Pada awalnya server akan membuka serial port serta dilanjutkan dengan

proses konfigurasi port. Kemudian akan dilanjutkan dengan proses konfigurasi

awal „gammu –identify pengecekan AT command dari modem dan selanjutnya

method selesai.

Start

Buka serial port

Konfigurasi
port

Konfigurasi
‘gammu --
identify’ pada
awal terminal

Finish

Gambar 3.8 Diagram alir buka koneksi ke terminal

3.3.5 Diagram Alir Kirim New Sms

Setelah user memilih tombol”Buka Koneksi”,program akan menjalankan

method inisialisasi. Apabila proses inisialisasi gagal, maka method ini berakhir.
45
Bila proses inisialisasi berhasil,maka akan dilanjutkan menuju pengecekan

berikutnya, yaitu apakah user ingin mematikan koneksi pada server. Bila betul

maka method ini berkahir. Bila tidak, maka akan dilanjutkan menuju pengecekan

berikutnya, yaitu apakah user ingin masuk pada Sms Manager. Bila betul, maka

akan dilanjutkan menuju method ‟Kirim/Reply pesan‟. Bila tidak, maka akan

dilanjutkan menuju pengecekan berikutnya, yaitu apakah user ingin

menghentikan koneksi server. Bila betul, maka akan dilanjutkan menuj

method”Keluar/Berhenti”. Bila tidak, maka akan dilanjutkan menuju pengecekan

berikutnya, yaitu apakah user inigin mengirim sms yang baru. Bila betul akan

dilanjutkan menuju method”Kirim Sms”. Bila tidak maka akan dilanjutkan

menuju pengecekan berikutnya, yaitu apakah user ingin melihat daftar phonebook

. Bila betul, akan dilanjutkan menuju method”Update Phonebook”. Bila tidak,

maka akan dilanjutkan mengirim pesan dengan input number manual dan

dilanjutkan dengan proses mengirim pesan lalu keluar. Atau menginput/memilih

number dari phonebook (kirim ke banyak) dengan mengganti tanda‟X‟ menjadi

„V‟ tanda bahwa itulah yang terpilih untuk dikirimi sms. Bila tidak maka akan

dilanjutkan dengan proses keluar

46
Start

Inisialisasi

Gagal Y
Inisialisasi

Tutup
Pilih’Logout’
Koneksi

Pilih ‘ Sms Y Kirim/


Manager’ ReplyPesan

Y Keluar/
Pilih’Logout’
Berhenti

Y
Pilih’New SMS Kirim Sms

Pilih Y Update
‘Phonebook’ Phonebook

Send’Input Send’Pilih dari


Manual’ Phonebook’

T Y Y T
Kirim ke
Send Sms
banyak

Logout’Keluar’;

Gambar 3.9 Diagram alir kirim SMS

47
3.3.6 Diagram Alir Baca Tabel Receive

Method diawali dengan proses pengecekan apakah ada record yang belum

diproses pada table link Inbox. Apabila tidak, maka method akan berakhir.

Apabila ada, server akan mengambil record baru tersebut dan akan memproses

record tersebut pada method berikutnya, yaitu method”Proses Data pada Tabel

Received”. Setelah itu baru method ini akan berakhir.

Start

Ada record yang T


belum diproses pada
link inbox

Ambil record yang


belum diproses

Proses Data
Tabel Receive

Finish

Gambar 3.10 Diagram alir baca tabel receive

3.3.7 Diagram Alir Proses Data pada Tabel Receive

Methode ini diawali dengan memilih tombol”Buka Koneksi”,program akan

menjalankan method inisialisasi. Apabila proses inisialisasi gagal, maka method

ini berakhir. Bila proses inisialisasi berhasil,maka akan dilanjutkan menuju

pengecekan berikutnya, yaitu apakah user ingin mematikan koneksi pada server.

Bila betul maka method ini berkahir. Bila tidak, maka akan dilanjutkan menuju

pengecekan berikutnya, yaitu apakah user ingin masuk pada Sms Manager. Bila

betul, maka akan dilanjutkan menuju method ‟Kirim/Reply pesan‟. Bila tidak,
48
maka akan dilanjutkan menuju pengecekan berikutnya, yaitu apakah user ingin

masuk ke Inbox. Bila tidak, maka akan dilanjutkan Reply/Delete pesan. Bila betul

user dapat memilih atau mereply dengan mengubah tanda „X‟ menjadi „V‟ yaitu

tanda bahwa sms tersebut akan direplay ataupun di delete. Bila tidak maka akan

akan dilanjutkan pengecekan untuk keluar dari server.

Start

Inisialisasi

Gagal Y
Inisialisasi

Y Tutup
Pilih’Logout’
Koneksi

Pilih’SMS Y Kirim/Reply
Manager’ Pesan

Y Reply/Delete
Pilih’Inbox’
Pesan

Y
T Y T

Replay Delete

Proses

Logout’Keluar’

Finish

Gambar 3.11 Diagram alir proses data pada tabel receive


49
3.3.8 Diagram Alir Proses pada User Manager

Methode ini diawali dengan memilih tombol”Buka Koneksi”,program akan

menjalankan method inisialisasi. Apabila proses inisialisasi gagal, maka method

ini berakhir. Bila proses inisialisasi berhasil,maka akan dilanjutkan menuju

pengecekan berikutnya, yaitu apakah user ingin mematikan koneksi pada server.

Bila betul maka method ini berkahir. Bila tidak, maka akan dilanjutkan menuju

pengecekan berikutnya, yaitu apakah user ingin masuk pada User Manager. Bila

betul maka method ini akan dilanjutkan ke edit ataupun input user baru. Jika betul

maka akan langsung diproses dan kemudian keluar.

Start

Inisialisasi

Gagal
Inisialisasi

Y
Tutup
Pilih’Logout’
Koneksi

Y
Pilih’User Edit/Input
Manager’ User

Pilih’Edit’ Pilih’Input’

Y
T
T
Proses

Logout’Keluar’

Finish

Gambar 3.12 Diagram alir proses pada user manager

50
3.4 Perencanaan dan Pembuatan Perangkat Keras

3.4.1 Hardware

Pada penggunaan hardware SMS Geteway server device yang harus

dipersiapkan adalah

1. Sebuah computer Pentium IV dengan minimal RAM 512

2. Operatian System(OS) yang dipakai yaitu Windows XP/2000

3. Sebuah modem SMS Gateway dilengkapi dengan kabel data dan

software/driver beserta dengan kartu GSM dalam perancangan ini penulis

memakai modem Wavecom Fastrack Supreme 10.

3.4.2 Software

Pada perancangan sms gateway fakultas berbasis web software yang

digunakan yaitu

 PHP 5.2.6

Salah satu bahasa pemrograman yang digunakan dalam membangun

system ini adalah PHP, pemilihan bahasa pemrograman ini karena sifatnya

gratis dan handal untuk aplikasi berbasis web. PHP adalah bahasa program

yang berbentuk script yang dituliskan pada sela-sela tag HTML dan

ditampilkan didalam server web.

 MySQL 5.0.1b

MySQL adalah sebuah sistem manajemen database relasi (relational

database management system) yang bersifat open source. (Arbie, 2004 : 5)

 Gammu-1.25.0-Windows_2

51
Gammu merupakan aplikasi open source untuk keperluan SMS

gateway. Sekarang gammu telah menyediakan codebase yang stabil dan

mapan untuk berbagai macam model telepon maupun modem yang

tersedia di pasaran dibandingkan dengan project sejenis. Gammu project

yang berlisensi GNU GPL 2 sehingga menjamin kebebasan menggunakan

tool ini tanpa perlu takut dengan masaah legalitas dan biaya yang mahal

yang harus dikeluarkan. Gammu mendukung berbagai macam model

telepon seluler dengan berbagai jenis koneksi dan type.

(www.gammu.org).

 Digunakan Wamp(Windows, Apache, MySQL dan PHP) server

Wamp adalah sebuah aplikasi yang dapat menjadikan komputer kita

menjadi sebuah server. Kegunaan wamp server ini untuk membuat

jaringan local sendiri dalam artian kita dapat membuat website secara

offline untuk masa coba-coba di komputer sendiri.

3.5 Perancangan Web Server

Perancangan tampilan utama web server berikut menggunakan software

pendukung dreamweaver 8.0.2

3.5.1 Perancangan tampilan utama web server

ELEKTRO SMS GATEWAY


Home SMS Manager User Manager Logout

Menu

52
Gambar 3.13 Perancangan tampilan utama web server

Dalam perancangan, tampilan utama web server tediri atas : Home, Sms

Manager, User Manger dan Logout.

3.5.2 Perancangan tampilan SMS Manager setelah user login

ELEKTRO SMS GATEWAY


Home SMS Manager User Manager Logout

Menu
NewSMS

Inbox

Outbox
Phonebook

Gambar 3.14 Perancangan tampilan sms manager setelah user login

Dalam perancangan tampilan SMS Manager setelah user login terdiri atas:

New SMS, Inbox, Outbox dan Phonebook.

3.5.3 Perancangan tampilan New SMS

ELEKTRO SMS GATEWAY


Home SMS Manager User Manager Logout

Menu Phonebook
No Tujuan

New SMS Pesan


Inbox
Outbox
Phonebook Kirim

Gambar 3.15 Perancangan tampilan New SMS

Dalam perancangannya tampilan web server untuk New SMS terdiri atas No

Tujuan, Phonebook, Form Pesan dan tombol Push Botton Kirim. Disini admin

53
bisa menginput no tujuan secara manual atau mengambilnya langsung dari

phonebook.

3.5.4 Perancangan tampilan inbox

ELEKTRO SMS GATEWAY


Home SMS Manager User Manager Logout

Menu
Date Tel.Number Message Reply Deleted

New SMS
Inbox
Outbox
Proses
Phonebook

Gambar 3.16 Perancangan tampilan Inbox

Pada perancangan tampilan inbox tampilan servernya terdiri atas: Date,

Telepon Number, Message, Replay, Delete, Form untuk pesan dan tombol Push

Botton proses.

3.5.5 Perancangan tampilan Outbox

ELEKTRO SMS GATEWAY


Home SMS Manager User Manager Logout

Menu
Date Tel.Number Message Status Deleted

New SMS
Inbox
Outbox

Phonebook Proses

Gambar 3.17 Perancangan tampilan Outbox

Pada perancangan tampilan outbox tampilan servernya terdiri atas: Date,

Telepon Number, Message, Status, Deleted dan tombol Push Botton proses.

54
3.5.6 Perancangan tampilan Phonebook

ELEKTRO SMS GATEWAY


Home SMS Manager User Manager Logout

Menu
No Nama Lengkap No HP Status Edit/Delete

New SMS
Inbox
Outbox

Phonebook Send

3.18 Perancangan tampilan Phonebook

Pada perancangan tampilan outbox tampilan servernya terdiri atas: Number,

Nama Lengkap, Number Ponsel, Status, Edit/Deleted dan tombol Push Botton

proses.

3.5.7 Perancangan tampilan User Manager

ELEKTRO SMS GATEWAY


Home SMS Manager User Manager Logout

User Manager No Nama User Password Status Edit/Delete

3.19 Perancangan tampilan User Manager

Pada perancangan tampilan user manager tampilan servernya terdiri atas:

Number, Nama User, Password, Status, Edit/Deleted dan tombol Push Botton

proses.

55
BAB IV

ANALISA PERANCANGAN SMS GATEWAY FAKULTAS

BERBASIS WEB

Setelah perencanaan dan pembuatan system maka langkah selanjutnya yaitu

melakukan pengujian terhadap system yang telah dibuat. Pengujian dilakukan

untuk mengetahui apakah systemyang dibangun dapat berjalan sesuai yang

diinginkan.

4.1 Database MySQL

Pengujian ini bertujuan untuk menyiapkan database MySQL untuk

menampung data-data SMS yang diperlukan Gammu untuk SMS Gateway.

Dengan cara membuat database dengan nama „smsd„ menggunakan PHP

MyAdmin membuat table-tabel yang diperlukan oleh Gammu. Tabel yang dipakai

bisa dilihat melalui folder „share/doc/gammu/examples/sql/mysql.sql. SMS

daemon pada Gammu digunakan untuk proses pembacaan otomatis SMS yang

diterima lalu disimpan ke database. SMS daemon juga diperlukan untuk keperluan

pengiriman SMS.

4.1.1 Daemons

Field Type Null

Start Text No

Info Text No

Tabel 4.1 Demons

56
4.1.2 Gammu

Field Type Null Default

Version Tinyint(4) No 0

Tabel 4.2 Gammu

4.1.3 Inbox

Field Type Null Default Extra

UpdatedInDB Timestamp No Current_timestamp

ReceivingDateTime TimeStamp No 0000:00-00-

00:00:00

Text Text No

SenderNumber Varchar(20) No

Coding Enum(Default_No No 8bit

UDH Text No

SMSCNumber Varchar(20) No

Class Int(11) No -1

TextDeoded Varchar(160) No

ID Int(11)unsigned No auto_increment

Recepient ID Text No

Processed enum(„false‟,‟true‟) No False

Tabel 4.3 Inbox

4.1.4 Outbook

Field Type Null Default Extra

UpdatedInDB Timestamp No

InsertIntoDB Timestamp No

SendingDateItem Timestamp No

57
Text Text Yes

Destination varchar(20) No

Number

Coding enum(„Default_No Yes

UDH Text Yes

Class int(11) Yes

TextDecoded varchar(160) No

ID int(11) No

MultiPart varchar(20) Yes

RelativeValidity int(11)unsigned Yes

SenderID Text Yes

SendingTimeOut Timestamp Yes

DeliveryReport enum(„default‟,‟yes‟‟no‟) Yes

CreatorID Text No

Tabel 4.4 Outbox

4.1.5 Outbook_multipart

Field Type Null Default

Text Text Yes

Coding enum(„Default_No Yes 8bit

UDH Text Yes

Class int(11) Yes -1

TextDecoded varchar(160) Yes

ID int(11) No 0

SequencePosition varchar(160) No 1

Tabel 4.5 Outbook_multipart

58
4.1.6 Pbk

Field Type Null Default

GroupID int(11) No -1

Name Text No

Number Text No

Tabel 4.6 Pbk

4.1.7 Pbk_group

Field Type Null Default Extra

Name Text No

ID Int(11) No auto_increment

Tabel 4.7 Pbk_group

4.1.8 Phoneb

Field Type Null Default Extra

No tinyint(3) No auto_increment

Nama char(25) Yes 0

Telp char(25) Yes 0

Numb Char(1) Yes 0

Tabel 4.8 Phoneb

4.1.9 Phones

Field Type Null Default

ID Text No

UpdataedInDB Timestamp No CURRENT_TIMESTAMP

InsertIntoDB Timestamp No 0000-00-00 00:00:00

TimeOut Timestamp No 0000-00-00 00:00:00

Send enum(„yes‟,‟no‟) No No

59
Receive enum(„yes‟,‟no‟) No No

IMEI Text No

Client Text No

Tabel 4.9 Phones

4.1.10 Sentitems

Field Type Null Default

UpdatedInDB Timestamp No CURRENT_TIMESTAMP

InsertIntoDB Timestamp No 0000-00-00 00:00:00

SendingDateTime Timestamp No 0000-00-00 00:00:00

DeliveryDateTime Timestamp No 0000-00-00 00:00:00

Text Text No

DestinationNumber varchar(20) No

Coding Enum(„Default_No No 8bit

UDH Text No

SMSCNumber varchar(20) No

Class int(11) No -1

TextDecoded varchar(160) No

ID int(11)unsigned No 0

SenderID Text No

SequencePosition int(11) No 1

Status enum(„SndingOK‟ No SendingOK

StatusError int(11) No -1

TPMR int(11) No -1

RelativeValidity int(11) No -1

CreatorID Text No

Tabel 4.10 Sentitems

60
4.1.11 User

Field Type Null Default Extra

Id Tinyint(3) No Auto_increment

User char(25) Yes 0

password char(25) Yes 0

Status Char(25) Yes 0

Tabel 4.11 User

4.2 Tampilan Utama Web Server

Gambar 4.1 Tampilan utama web server

<?php
if (!isset($_SESSION)) {
session_start();
}
?>
<?php

 Jika terdapat session atau hak akses maka session tersebut diawali

dengan script session start.

61
4.2.1 Tampilan login

Gambar 4.2 Tampilan Login

//Select database
$db=mysql_select_db("smsd");
if(!$db) {
die("Unable to select database");
$result=mysql_query("SELECT id FROM user WHERE user='$user1' AND
password='$password1'");
 Jika terdapat user dan password yang sesuai dgn database, maka dibuat

variable session

session_register("commonuser","permit");
$commonuser=$user1;
$permit=ok;
 Session yang diregister yaitu commonuser, dimana variable

commonuser mewakili user1, variable permit mewakili pengijinan

pengaksesan database

62
4.2.2 Tampilan SMS Manager

Gambar 4.3 Tampilan Tampilan SMS Manager

if (empty($permit))
{
echo "<meta http-equiv='refresh' content='0;URL=not.php' />";
}
 Jika permit kosong maka akan dialihkan ke script not.php

4.2.3 Tampilan Inbox

Gambar 4.4 Tampilan Inbox

<?php
$result = mysql_query("SELECT * FROM inbox ORDER BY
ReceivingDateTime ");
while($row = mysql_fetch_array( $result ))
 Pembacaan dari keseluruhan table inbox dengan urutan berdasarkan

waktu dan ditampilkan berulang menggunakan while.

63
<?php
$nohp = $_GET['nohp'];
?>
<form method="post" action="send.php">
No. HP Tujuan :
<label>
<input name="nohp" type="text" value=<?php echo $nohp; ?> />
</label>
<br>
Pesan : <textarea name="msg" cols="50" rows="4">Your message here . .
.</textarea>
<br>
<input type="submit" name="submit" value="Kirim SMS">
</form>

4.2.4 Tampilan Outbox

Gambar 4.5 Tampilan Outbox

$result = mysql_query("SELECT * FROM sentitems ORDER BY

SendingDateTime DESC");

 Pemanggilan database dengan pemunculan dari sms terbaru berada di

bagian paling atas

64
4.2.5 Tampilan Phonebook

Gambar 4.6 Tampilan Phonebook

$sql = "SELECT * FROM phoneb WHERE no=$id";


$qry = mysql_query($sql);
$row = mysql_fetch_array($qry);
<?php
$result = mysql_query("SELECT * FROM phoneb ORDER BY no");
//select data with variable and order it by time and date of the reception
while($row = mysql_fetch_array( $result )) {
$id=$row['no'];
if ($row['send']=="V") {
$noTujuan = $row['telp'];
$message = $_POST['msg'];
$query = "insert into
outbox(InsertIntoDB,SendingDateTime,DestinationNumber,Coding,TextDe
coded)
values(NOW(),'TIME: Auto
NOW()','$noTujuan','Default_No_Compression','$message')";
$hasil = mysql_query($query);
}
mysql_query("UPDATE phoneb SET send='X' WHERE no=$id");

65
>?php
$send = $_GET['send'];
$id = $_GET['no'];
mysql_select_db("smsd") or die(mysql_error()); //select database
if($send=='V'){
$qry = "UPDATE phoneb SET send='X' WHERE no='$id'" ;
mysql_query($qry);
}else{
$qry = "UPDATE phoneb SET send='V' WHERE no='$id'" ;
mysql_query($qry);
}
<?php
$nohp = $_GET['no'];
mysql_select_db("smsd");
$qry = "DELETE FROM phoneb WHERE telp='$nohp'" ;
mysql_query($qry);

4.2.6 Tampilan User Manager

Gambar 4.7 Tampilan User Manger

<?php
$id = $_GET['id'];
// Ambil data phonebook dari database
$sql = "SELECT * FROM user WHERE id=$id";
66
$qry = mysql_query($sql);
$row = mysql_fetch_array($qry);

//$sql = "SELECT * FROM phoneb";


//$qry = mysql_query($sql);
$result = mysql_query("SELECT * FROM user");
while($row = mysql_fetch_array( $result ))
{
//while($row = mysql_fetch_array($qry)) {
if($row['id']!=$id){
?>
<?php
$no = $_GET['no'];
$qry = "DELETE FROM user WHERE id='$no'" ;
mysql_query($qry);
header("location:user.php");
?>

67
BAB V

PENUTUP

5.1 Kesimpulan

Dari hasil perancangan , implementasi, pengujian dan analisa yang telah

dilakukan pada bab – bab sebelumnya, maka dapat ditarik beberapa

kesimpulan sebagai berikut :

1. SMS Gateway merupakan sebuah aplikasi Short Massage Service

(SMS) yang dapat di jalankan melalui Local Area Network (LAN).

Aplikasi ini dapat digunakan bersama-sama dalam satu jaringan.

Walaupun aplikasi ini digunakan oleh beberapa user tapi hanya

mempunyai satu module GSM/CDMA.

2. Gammu adalah nama sebuah project yang ditujukan untuk membangun

aplikasi, script dan drivers yang dapat digunakan untuk semua fungsi

yang memungkinkan pada telepon seluler atau alat sejenisnya. Selain

gammu bisa juga digunakan program oxygen dan nowsms namun

program te rsebut berbayar sedangkan untuk gammu yaitu bersifat open

source.

3. Secara garis besar gammu berfungsi untuk memonitoring database

pada proses pengiriman dan penerimaan jika terjadi perubahan data

pada database maka akan diproses

4. Menjadikan SMS server ini sebagai media komunikasi antara

mahasiswa dengan dosen yang lebih praktis berbasis web.


68
5. Dosen dapat mengirim SMS secara bersama-sama kepada mahasiswa

yang mengikuti kelasnya.

5.2 Saran

Untuk mendapatkan performa yang lebih baik dari system ini dapat

digunakan processor yang digunakan khusus untuk server. Apabila PC

difungsikan sebagai server sebaiknya tidak menggunakan antivirus kalupun

menggunakan antivirus, maka gunakan antivirus khusus yang digunakan pada

server

69
DAFTAR PUSTAKA

1. Kadir, Abdul “ Dasar Pemrograman WEB Dinamis Menggunakan PHP, Andi

Yogyakarta,2002

2. Nugroho, Bunafit”PHP & MySQL dengan Editor Dreamweaver

MX,Andi,2004

3. Musalini,Uus & Hakim Lukmanul,”Cara Mudah Memadukan WEB Design

dan Web Programming, Elex Media Komputindo,2004

4. Syafi‟i, M,”Membangun Aplikasi Berbasis PHP & MySQL, Andi,2006

5. http://materikuliah.net/artikel/menggunakan-gammu-untuk-aplikasi-sms-

gateway.aspx

6. http://blog.rosihanari.net/setting-gammu-untuk-aplikasi-sms-gateway

7. http://mbotengaptek.uni.cc/?p=96

8. http://smileboys.blogspot.com/2008/06/pengertian-mysql-dan-gammu.html

9. http://superbayyek.blogspot.com/2009/11/pengertian-tentang-wampp5.html

10. http://rajamodem.com/index.php?action=store.showProduct&product_id=137

&title=GSM%20Modem%2CWavecom%20Supreme%2CModem%20Wavec

om%2CSerial%20Modem%2CSupreme%20Modem%2CModem%20GSM%

20Supreme%2CGSM%20Modem%2CWavecom%20Fastrak%20Supreme%2

CFastrack%20Supremehttp://materikuliah.net/artikel/menggunakan-gammu-

untuk-aplikasi-sms-gateway.aspx

11. http://blog.rosihanari.net/setting-gammu-untuk-aplikasi-sms-gateway

12. http://mbotengaptek.uni.cc/?p=96

70
13. http://smileboys.blogspot.com/2008/06/pengertian-mysql-dan-gammu.html

14. http://superbayyek.blogspot.com/2009/11/pengertian-tentang-wampp5.html

71
Lampiran

Tampilan Utama Web Server

Index.php

<?php
if (!isset($_SESSION)) {
session_start();
}
?>
<body>
<div align="center"><tr>

<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0"


bgcolor="#0099FF">
<tr>
<td align="center"><table width="70%" border="0" cellspacing="0" cellpadding="0">
<tr bgcolor="#0099FF">
<td width="26%">&nbsp;</td>
<td width="32%">&nbsp;</td>
<td width="42%">&nbsp;</td>
</tr>
<tr bgcolor="#000099">
<td colspan="3"><p><img src="images/top.png" width="900" height="100"></p> </td>
</tr>
<tr bgcolor="#00FFFF">
<td colspan="3"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="26%" height="23"><div align="center"><a href="index.php"
class="style2">Home</a></div></td>
<td width="32%"><div align="center"><a href="smsmanager.php" class="style2">Sms
Manager</a> </div></td>
<td width="30%"><div align="center"><a href="usermanager.php" class="style2">User
Manager</a> </div> <div align="center"><a href="report.php"
class="style2"></a></div></td>
<td>

<div align="center">

72
</div></td>
</tr>
</table></td>
</tr>
<tr bgcolor="#99FF99">
<td bgcolor="#CCFFFF"></td>
<td bgcolor="#CCFFFF">&nbsp;</td>
<td bgcolor="#CCFFFF"><div align="right"></div>
<table width="100%" border="0">
<tr>
<td width="73%"><div align="right">@2009</div></td>
<td width="27%"><DIV id=waktu>
</tr>
</table></td>
</tr>
<tr bgcolor="#99FFFF">
<td height="375" align="center" valign="top"><table width="80%" border="0"
cellpadding="0" cellspacing="0" bordercolor="#FFFFFF" bgcolor="#EBE9ED">
<tr>
<td><div align="center"><span class="style2">Menu</span></div></td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
</table></td>
<td colspan="2"></td>
</tr>

<tr bgcolor="#000099">
<td colspan="3"><div align="center">Nana @ 2009 </div></td>
</tr>
<tr bgcolor="#0099FF">
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table></td>
</tr>
</table></div>
</body>
</html>

73
Tampilan login

Login.php

<title>Login Form</title>
<style type="text/css">
<!--
.style1 {
font-family: "Comic Sans MS";
font-weight: bold;
}
.style3 {font-family: "Bauhaus 93"}
-->
</style>
<table width="200" border="0" align="center" bgcolor="#0099FF">
<tr>
<td><div align="center">
<form name="form1" method="post" action="login-exec.php">
<table width="100%" border="0">
<tr>
<td colspan="3"><div align="center" class="style1">Form Login </div></td>
</tr>
<tr>
<td width="35%">&nbsp;</td>
<td width="30%">&nbsp;</td>
<td width="35%">&nbsp;</td>
</tr>
<tr>
<td><span class="style3">User</span></td>
<td colspan="2"><label>
<input name="user1" type="text" id="user" size="15">
</label></td>
</tr>
<tr>
<td><span class="style3">Password</span></td>
<td colspan="2"><label>
<input name="password1" type="password" id="password" size="15">
</label></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
74
<td><label></label></td>
<td><input type="reset" name="Submit2" value="batal"></td>
<td><label>
<input type="submit" name="Submit" value="masuk">
</div></td>
</tr>
</table>

Login-exec.php

<title>Login Form</title>
<style type="text/css">
<!--
.style1 {
font-family: "Comic Sans MS";
font-weight: bold;
}
.style3 {font-family: "Bauhaus 93"}
-->
</style>
<tr>
<td><span class="style3">User</span></td>
<td colspan="2"><label>
<input name="user1" type="text" id="user" size="15">
</label></td>
</tr>
<tr>
<td><span class="style3">Password</span></td>
<td colspan="2"><label>
<input name="password1" type="password" id="password" size="15">
</label></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td><label></label></td>
<td><input type="reset" name="Submit2" value="batal"></td>
<td><label>
<input type="submit" name="Submit" value="masuk">
</label></td>
</tr>
<tr>
<td colspan="3"><div align="center"></div></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
</form>
</div></td>
</tr>
</table>

75
Tampilan Penolakan

Not.php

<!--
.style1 {font-family: "Bauhaus 93"}
-->
</style>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<h2 align="center" class="style1">MAAF ANDA TIDAK BERHAK MENGAKSES SITUS
INI</h2>
<h2 align="center" class="style1">Terimakasih Atas Perhatiannya </h2>
</body>
</html>

76
Tampilan User Manager

Sms manager

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"


"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>ELEKTRO SMS Gateway</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body {
margin-left: 0px;
margin-top: 10px;
margin-right: 0px;
margin-bottom: 0px;
}
.style1 {font-family: "Comic Sans MS"}
.style2 {font-family: "Bauhaus 93"}
-->
</style></head>

<body>
<div align="center">
<table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#0099FF">
<tr>
<td align="center"><table width="70%" border="0" cellspacing="0" cellpadding="0">
<tr bgcolor="#0099FF">
<td width="26%">&nbsp;</td>
<td width="32%">&nbsp;</td>
<td width="42%">&nbsp;</td>
</tr>
<tr bgcolor="#000099">
<td colspan="3"><p><img src="images/top.png" width="900" height="100"></p> </td>
</tr>
<tr bgcolor="#00FFFF">
<td colspan="3"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="26%" height="23"><div align="center" class="style2"><a href="index.php"
class="style2">Home</a></div></td>
<td width="32%"><div align="center" class="style2"><a href="smsmanager.php"
class="style2">Sms Manager</a> </div></td>

77
<td width="30%"><div align="center" class="style2"><a href="usermanager.php"
class="style2">User Manager</a> </div></td>
<td width="0%"><div align="center" class="style2"><a href="report.php"
class="style2"></a></div></td>
<td width="0%"><span class="style2"></span></td>
<td width="8%"><div align="right" class="style2">
<?php
if (!empty($commonuser))
{
//echo "hello ,";
//echo ($commonuser);
echo (" ");
echo ('<a href=logoff.php>Logoff</a>');
}
else
{
echo("<a href=login.php>Login</a>");
echo($commonuser);
}
?>
</div></td>
<td width="4%">&nbsp;</td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
</table></div>
</body>
</html>

78
Tampilan New SMS

Newsms.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"


"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>ELEKTRO SMS Gateway</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body {
margin-left: 0px;
margin-top: 10px;
margin-right: 0px;
margin-bottom: 0px;
}
.style2 {font-family: "Bauhaus 93"; }
-->
</style></head>

<?php
if (!empty($commonuser))
{
//echo "hello ,";
//echo ($commonuser);
echo (" ");
echo ('<a href=logoff.php>Logoff</a>');
}
else
{
echo("<a href=login.php>Login</a>");
echo($commonuser);
}
?>
</div>
</div></td>
<td width="2%">&nbsp;</td>
</tr>
</table></td>
</tr>
<tr bgcolor="#99FF99">
<td bgcolor="#CCFFFF"></td>

79
<td bgcolor="#CCFFFF">&nbsp;</td>
<td bgcolor="#CCFFFF"><div align="right"></div>
<table width="100%" border="0">
<tr>
<td width="73%"><div align="right">@2009</div></td>
<td width="27%"><DIV id=waktu>
<div align="right"><SCRIPT language=javascript>
function jam() {
var d = new Date();
document.getElementById("waktu").innerHTML = d.getHours() + ":" +
d.getMinutes() + ":" + d.getSeconds() ;
setTimeout("jam()", 1000);
}
jam();
</SCRIPT></div></div></td>
</tr>
</table></td>
</tr>
<tr bgcolor="#99FFFF">
<td height="375" align="center" valign="top" > <table width="80%" border="0"
cellpadding="0" cellspacing="0" bordercolor="#FFFFFF" bgcolor="#EBE9ED">
<tr>
<td><div align="center"><span class="style2">Menu</span></div></td>
</tr>
<tr>
<td class="style1"><a href="newsms.php" class="style2">New SMS </a></td>
</tr>
<tr>
<td class="style1"><a href="inbox.php" class="style2">Inbox</a></td>
</tr>
<tr>
<td class="style1"><a href="outbox.php" class="style2">Outbox</a></td>
</tr>
<tr>
<td class="style1"><a href="phonebook.php" class="style2">PhoneBook</a></td>
</tr>

<tr bgcolor="#000099">
<td colspan="3"><div align="center">Nana @ 2009 </div></td>
</tr>
<tr bgcolor="#0099FF">
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table></td>
</tr>
</table></div>
</body>
</html>

Send-sms.php

<style type="text/css">
<!--
.style1 {font-family: "Bauhaus 93"}
-->
</style>
<span class="style1">No. HP Tujuan :</span>
<input type="text" name="nohp">
<span class="style1">Pesan</span> : <textarea name="msg" cols="30" rows="5">Your message
here . . .</textarea>
80
<br>
<input type="submit" name="submit" value="Kirim SMS">
</form>

Send.php

<?php
mysql_connect("localhost", "root", "");
mysql_select_db("smsd");
$noTujuan = $_POST['nohp'];
$message = $_POST['msg'];

//echo ($noTujuan);
//echo ($message);
if ($hasil) echo "SMS berhasil dikirim ";
else echo "SMS gagal dikirim";
echo( $query);

header("Location:send-sms.php");
?>

81
Tampilan Inbox

Inbox.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"


"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>ELEKTRO SMS Gateway</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body {
margin-left: 0px;
margin-top: 10px;
margin-right: 0px;
margin-bottom: 0px;
}
.style2 {font-family: "Bauhaus 93"}
-->
</style></head>

</table></td>
</tr>
<tr bgcolor="#99FFFF">
<td align="center" valign="top" height="375"> <table width="80%" border="0"
cellpadding="0" cellspacing="0" bordercolor="#FFFFFF" bgcolor="#EBE9ED">
<tr>
<td><div align="center"><span class="style2">Menu</span></div></td>
</tr>
<tr>
<td class="style1"><a href="newsms.php" class="style2">New SMS </a></td>
</tr>
<tr>
<td class="style1"><a href="inbox.php" class="style2">Inbox</a></td>
</tr>
<tr>
<td class="style1"><a href="outbox.php" class="style2">Outbox</a></td>
</tr>
<tr>
<td class="style1"><a href="phonebook.php" class="style2">PhoneBook</a></td>
</tr>

82
</table></td>
<tr bgcolor="#000099">
<td colspan="3"><div align="center">Nana @ 2009 </div></td>
</tr>
<tr bgcolor="#0099FF">
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table></td>
</tr>
</table></div>
</body>
</html>

Sms_read.php
<meta http-equiv="refresh" content="10">
<html>
<head>

body {background-color: #CCCCFF}


h1 {background-color: #FF8000}
h1 {color: #000066}
body
{
background-image:
url('');
background-repeat:
no-repeat;
background-position:
right;
}
{font-size: 10px}
</style>
</head>
<body>

<?php

function mysql_timestamp_to_human($dt) //mysql timestamp to human readable


{
$yr=strval(substr($dt,0,4)); //year
$mo=strval(substr($dt,4,2)); //month
$da=strval(substr($dt,6,2)); //day
$hr=strval(substr($dt,8,2)); //hour
$mi=strval(substr($dt,10,2)); //minute
//$se=strval(substr($dt,12,2)); //sec

return date("d M Y H:i", mktime ($hr,$mi,0,$mo,$da,$yr)).""; //format of displayed date and


time
}
?>

<?PHP

mysql_connect("localhost", "root", "") or die(mysql_error()); //connect to mysql


mysql_select_db("smsd") or die(mysql_error()); //select database
echo "<table border=1>"; //begin creation of table
echo "<tr> <th>Date </th><th>Tel. Number</th> <th>Message</th> <th>Reply</th>
<th>Deleted</></tr>"; //header of the table
while($row = mysql_fetch_array( $result )) { //create variable row
// Print out the contents of each row into a table
83
echo "<tr><td>"; //begin of row and cell
$d= $row['ReceivingDateTime']; //create variable for function at begin
//echo mysql_timestamp_to_human($d); //paste normal date
echo ($d);
echo "</td><td>";// end and begin of cell
echo $row['SenderNumber']; //show sender number
echo "</td><td>"; //end and begin of cell
echo $row['TextDecoded']; //show text of the message
echo "</td>"; //end and begin of cell

if($row['send']!='V'){ ?>
<td align="center"><a href="sendinbox.php?no=<?php echo($row['ID']); ?> & send=<?php
echo($row['send']); ?>"><font face="Bauhaus 93">X</ font></a>
<?php }else{ ?>
<td align="center"><a href="sendinbox.php?no=<?php echo($row['ID']); ?> & send=<?php
echo($row['send']); ?>"><font face="Bauhaus 93">V</ font></a>
echo "</tr></table>"; //end of table

?>
<font face="Bauhaus 93">Send SMS to selected phone number : <br />
</font><br />
<textarea cols="50" rows="4" wrap="VIRTUAL" name="msg">
</textarea>
&nbsp;<input type="submit" value="Proses" />
</form>

<br><br><br>
</body>
</html>

Hapuslagi.php
<?php

// konek ke database
// sesuaikan dengan konfigurasi database Anda
mysql_connect("localhost", "root", "") or die(mysql_error()); //connect to mysql
mysql_select_db("smsd") or die(mysql_error()); //select database
{
$id=$row['ID'];
if ($row['send']=="V") {

$noTujuan = $row['SenderNumber'];
$message = $_POST['msg'];
}

mysql_query("UPDATE inbox SET send='X' WHERE ID =$id");

if ($row['Hapus']=="V") {
$qry = "DELETE FROM inbox WHERE ID='$id'" ;
mysql_query($qry);

}
}

}
header("Location:sms_read.php");

?>

84
Sendinbox.php

// konek ke database
// sesuaikan dengan konfigurasi database Anda
mysql_connect("localhost", "root", "") or die(mysql_error()); //connect to mysql
mysql_select_db("smsd") or die(mysql_error()); //select database
if($send=='V'){
$qry = "UPDATE inbox SET send='X' WHERE ID='$id'" ;
mysql_query($qry);
}else{
$qry = "UPDATE inbox SET send='V' WHERE ID='$id'" ;
mysql_query($qry);
}
?>

Hapusinbox.php
// konek ke database
// sesuaikan dengan konfigurasi database Anda
mysql_connect("localhost", "root", "") or die(mysql_error()); //connect to mysql
mysql_select_db("smsd") or die(mysql_error()); //select database
if($send=='V'){
$qry = "UPDATE inbox SET Hapus='X' WHERE ID='$id'" ;
mysql_query($qry);
}else{
$qry = "UPDATE inbox SET Hapus='V' WHERE ID='$id'" ;
mysql_query($qry);
}

85
Tampilan Outbox

Outbox.php
<?php
if (!isset($_SESSION)) {
session_start();
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>ELEKTRO SMS Gateway</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
<?php
if (!empty($commonuser))
{
//echo "hello ,";
//echo ($commonuser);
echo (" ");
echo ('<a href=logoff.php>Logoff</a>');
}
else
{
echo("<a href=login.php>Login</a>");
echo($commonuser);
}
?>
</div>
</div></td>
<td width="2%">&nbsp;</td>
</tr>
</table></td>
</tr>
<tr bgcolor="#99FF99">
<td bgcolor="#CCFFFF"></td>
<td bgcolor="#CCFFFF">&nbsp;</td>
<td bgcolor="#CCFFFF"><div align="right"></div>
<table width="100%" border="0">
<tr>
<td width="73%"><div align="right">@2009</div></td>
<td width="27%"><DIV id=waktu>

86
</tr>
</table></td>
</tr>
<tr bgcolor="#99FFFF">
<td height="375" align="center" valign="top"> <table width="80%" border="0"
cellpadding="0" cellspacing="0" bordercolor="#FFFFFF" bgcolor="#EBE9ED">
<tr>
<td><div align="center"><span class="style1">Menu</span></div></td>
</tr>
<tr>
<td class="style1"><a href="newsms.php" class="style2">New SMS </a></td>
</tr>
<tr>
<td class="style1"><a href="inbox.php" class="style2">Inbox</a></td>
</tr>
<tr>
<td class="style1"><a href="outbox.php" class="style2">Outbox</a></td>
</tr>
<tr>
<td class="style1"><a href="phonebook.php" class="style2">PhoneBook</a></td>
</tr>
</tr>
<tr bgcolor="#000099">
<td colspan="3"><div align="center">Nana @ 2009 </div></td>
</tr>
<tr bgcolor="#0099FF">
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table></td>
</tr>
</table></div>
</body>
</html>

Sms_sent.php
<meta http-equiv="refresh" content="5">

<html>
<head>

body {background-color: #CCCCFF}


h1 {background-color: #FF8000}
h1 {color: #000066}
body
{
background-image:
url('');
background-repeat:
no-repeat;
background-position:
right;
}
</style>
</head>
<body>

<?php

function mysql_timestamp_to_human($dt) //mysql timestamp to human readable


{
87
$yr=strval(substr($dt,0,4)); //year
$mo=strval(substr($dt,4,2)); //month
$da=strval(substr($dt,6,2)); //day
$hr=strval(substr($dt,8,2)); //hour
$mi=strval(substr($dt,10,2)); //minute
//$se=strval(substr($dt,12,2)); //sec

return date("d M Y H:i", mktime ($hr,$mi,0,$mo,$da,$yr)).""; //format of displayed date and


time
}

mysql_connect("localhost", "root", "") or die(mysql_error()); //connect to mysql


mysql_select_db("smsd") or die(mysql_error()); //select database
echo "<table border=1>"; //begin creation of table
echo "<tr> <th>Date </th><th>Tel. Number</th> <th>Message</th> <th>Status</th>
<th>Delete</th></tr>"; //header of the table
while($row = mysql_fetch_array( $result )) { //create variable row
// Print out the contents of each row into a table

echo "<tr><font size='-4'><td>"; //begin of row and cell


$d= $row['SendingDateTime']; //create variable for function at begin
//echo mysql_timestamp_to_human($d); //paste normal date
echo ($d);
echo "</td><td>";// end and begin of cell
echo $row['DestinationNumber']; //show sender number
echo "</td><td>"; //end and begin of cell
echo $row['TextDecoded']; //show text of the message
echo "</td><td>"; //end and begin of cell
echo $row['Status']; //show text of the message
echo "</td>";
$c = $row['ID'];
if($row['dihapus']!='V'){ ?>
<td align="center"><a href="pilihdelete.php?no=<?php echo($row['ID']); ?> & send=<?php
echo($row['dihapus']); ?>"><font face="Bauhaus 93">X</font ></a></td>
<?php }else{ ?>
<td align="center"><a href="pilihdelete.php?no=<?php echo($row['ID']); ?> & send=<?php
echo($row['dihapus']); ?>"><font face="Bauhaus 93">V</font ></a></td>
<?PHP
}}

echo "</tr></table>"; //end of table


?>
<input type="submit" value="Proses" />
</form>

<br><br><br>
</body>
</html>

Hapusoutbox.php
<?php

// konek ke database
// sesuaikan dengan konfigurasi database Anda
mysql_connect("localhost", "root", "") or die(mysql_error()); //connect to mysql
mysql_select_db("smsd") or die(mysql_error()); //select database
{
if ($row['dihapus']=="V") {
$qry = "DELETE FROM sentitems WHERE ID='$id'" ;
mysql_query($qry);

}
88
Pilihdelete.php

<?php
$send = $_GET['send'];
$id = $_GET['no'];

// konek ke database
// sesuaikan dengan konfigurasi database Anda
mysql_connect("localhost", "root", "") or die(mysql_error()); //connect to mysql
mysql_select_db("smsd") or die(mysql_error()); //select database
if($send=='V'){
$qry = "UPDATE sentitems SET dihapus='X' WHERE ID='$id'" ;
mysql_query($qry);
}else{
$qry = "UPDATE sentitems SET dihapus='V' WHERE ID='$id'" ;
mysql_query($qry);
}

header("location:sms_sent.php");
?>

89
Phonebook.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"


"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>ELEKTRO SMS Gateway</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
</tr>
</table></td>
</tr>
<tr bgcolor="#99FFFF">
<td align="center" valign="top" height="375"> <table width="80%" border="0"
cellpadding="0" cellspacing="0" bordercolor="#FFFFFF" bgcolor="#EBE9ED">
<tr>
<td><div align="center"><span class="style1">Menu</span></div></td>
</tr>
<tr>
<td class="style1"><a href="newsms.php" class="style2 style1">New SMS </a></td>
</tr>
<tr>
<td class="style1"><a href="inbox.php" class="style2 style1">Inbox</a></td>
</tr>
<tr>
<td class="style1"><a href="outbox.php" class="style2 style1">Outbox</a></td>
</tr>
<tr>
<td class="style1"><a href="phonebook.php" class="style2 style1">PhoneBook</a></td>
</tr>
<tr bgcolor="#000099">
<td colspan="3"><div align="center">Nana @ 2009 </div></td>
</tr>
<tr bgcolor="#0099FF">
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table></td>
</tr>
</table></div>
</body>
</html>
90
Pb.php

<html>
<head>
</head>
<body>

<?php
$id = $_GET['id'];

// konek ke database
// sesuaikan dengan konfigurasi database Anda
mysql_connect("localhost", "root", "") or die(mysql_error()); //connect to mysql
mysql_select_db("smsd") or die(mysql_error()); //select database

<td align="center">&nbsp<input type="hidden" name="id" value="">


</td>
<td align="center"><input type="text" name="namabaru"></td>
<td align="center"><input type="text" name="nomorbaru"></td>
<td align="center"><input type="submit" value="Add Contact" /></td>
<td align="center"><input type="hidden" name="id"
value="<?php echo($row[no]); ?>"></td>
<td align="center"><input type="text" name="namabaru"
value="<?php echo($row[nama]); ?>"></td>
<td align="center"><input type="text" name="nomorbaru"
value="<?php echo($row[telp]); ?>"></td>
<td align="center"><input type="submit" value="Update" /></td>
<?php
}
?>

</tr>
</form>

<form action="sendpb.php" method="POST">

<tr>
<?php if($row['send']!='V'){ ?>
<td align="center"><a href="sendpbid.php?no=<?php echo($row['no']); ?> & send=<?php
echo($row['send']); ?>"><font face="Bauhaus 93">X</font></a></td>
<td align="center"><?php echo($row['nama']); ?></td>
<td align="center"><?php echo($row['telp']); ?></td>
<td align="center">
</tr>
}
}
?>

</table>

<br /> <br />

<font face="Bauhaus 93">Send SMS to selected phone number : <br />


</font><br />
<textarea cols="50" rows="4" wrap="VIRTUAL" name="msg">
Your message here . . .</textarea>
&nbsp;<input type="submit" value="Send" />
</form>

</body>
</html>

91
Update.php

// konek ke database
// sesuaikan dengan konfigurasi database Anda
mysql_connect("localhost", "root", "") or die(mysql_error()); //connect to mysql
mysql_select_db("smsd") or die(mysql_error()); //select database

if($id==""){
$qry = "INSERT INTO phoneb (no, nama, telp)
VALUES ('', '$namabaru', '$nomorbaru')" ;
mysql_query($qry);
}
}

?>

Sendpb.php
<?php

// konek ke database
// sesuaikan dengan konfigurasi database Anda
mysql_connect("localhost", "root", "") or die(mysql_error()); //connect to mysql
mysql_select_db("smsd") or die(mysql_error()); //select database
{
if ($row['send']=="V") {

$noTujuan = $row['telp'];
$message = $_POST['msg'];
$query = "insert into
outbox(InsertIntoDB,SendingDateTime,DestinationNumber,Coding,TextDecoded)
values(NOW(),'TIME: Auto NOW()','$noTujuan','Default_No_Compression','$message')";
$hasil = mysql_query($query);
}

mysql_query("UPDATE phoneb SET send='X' WHERE no=$id");


}

?>

Sendpbid.php

// konek ke database
// sesuaikan dengan konfigurasi database Anda
mysql_connect("localhost", "root", "") or die(mysql_error()); //connect to mysql
mysql_select_db("smsd") or die(mysql_error()); //select database
if($send=='V'){
$qry = "UPDATE phoneb SET send='X' WHERE no='$id'" ;
mysql_query($qry);
}else{
$qry = "UPDATE phoneb SET send='V' WHERE no='$id'" ;
mysql_query($qry);
}

?>

92
Tampilan UserManager

Usermanager.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"


"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>ELEKTRO SMS Gateway</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body {
margin-left: 0px;
margin-top: 10px;
margin-right: 0px;
margin-bottom: 0px;
}
.style1 {font-family: "Bauhaus 93"}
-->
</style></head>
</tr>
</table></td>
</tr>
<tr bgcolor="#99FFFF">
<td height="375" align="center" valign="top"> <table width="80%" border="0"
cellpadding="0" cellspacing="0" bordercolor="#FFFFFF" bgcolor="#EBE9ED">
<tr>
<td><div align="center"><span class="style1">User Manager </span></div></td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
</table></td>
<tr bgcolor="#000099">

93
<td colspan="3"><div align="center">Nana @ 2009 </div></td>
</tr>
<tr bgcolor="#0099FF">
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table></td>
</tr>
</table></div>
</body>
</html>

Usermen.php
<html>
<head>
<style type="text/css">
<!--
.style1 {font-family: "Bauhaus 93"}
-->
</style>
</head>
<body>
// konek ke database
// sesuaikan dengan konfigurasi database Anda
mysql_connect("localhost", "root", "") or die(mysql_error()); //connect to mysql
mysql_select_db("smsd") or die(mysql_error()); //select database
// menampilkan data phonebook dalam bentuk table
<table border="1">
<tr>
<td align="center" width="30px"><span class="style1">No.</span></td>
<td align="center" width="100px"><span class="style1">Nama User </span></td>
<td align="center" width="100px"><span class="style1">Password</span></td>
<td align="center" width="100px"><span class="style1">Status</span></td>
<td align="center" width="100px"><span class="style1">Edit/Delete</span></td>
</tr>
<td align="center"><input type="hidden" name="id" value=""></td>
<td align="center"><input name="user" type="text" size="15"></td>
<td align="center"><input type="text" name="password" size="15"></td>
<td align="center"><input type="text" name="status" size="15"></td>
<td align="center"><input type="submit" value="Add Contact" size="15"></td>
<td align="center"><input type="hidden" name="id"
value="<?php echo($row[id]); ?>"></td>
<td align="center"><input type="text" name="user"
value="<?php echo($row[user]); ?>" size="15"></td>
<td align="center"><input type="password" name="password"
value="<?php echo($row[password]); ?>" size="15"></td>
<td align="center"><input type="text" name="status"
value="<?php echo($row[status]); ?>" size="15"></td>
<td align="center"><input type="submit" value="Update" /></td>
<?php
}

<?php
// Ambil data phonebook dari database
//$sql = "SELECT * FROM phoneb";
//$qry = mysql_query($sql);

$result = mysql_query("SELECT * FROM user");


while($row = mysql_fetch_array( $result ))
{
//while($row = mysql_fetch_array($qry)) {
94
if($row['id']!=$id){
?>
</table>
</body>
</html>

Updateau.php

// konek ke database
// sesuaikan dengan konfigurasi database Anda
mysql_connect("localhost", "root", "") or die(mysql_error()); //connect to mysql
mysql_select_db("smsd") or die(mysql_error()); //select database

if($id==""){
$qry = "INSERT INTO user (id, user, password, status)
VALUES ('', '$user', '$password','$status')" ;
mysql_query($qry);
} else {
$qry = "UPDATE user SET user='$user', password='$password' , status='$status'
WHERE id='$id'" ;
mysql_query($qry);
}

?>

95
Konfigurasi Modem

GSM Modem Kekuatan Besar(Heavy Duty) WAVECOM FASTRACK SUPREME

WAVECOM FASTRACK Supreme GSM 900/1800 GPRS/GPS Class 10,AT Command Support.

Connectivity stack. 7x24 ontime,Tahan tanpa dimatikan. Cocok untuk SMS Gateway, Fax

Modem, GPRS/GPS, BROADCAST, Poling SMS, Content Provider, system ATM Bank, Alert

System, SMS REminder Quiz Interactive TV, System Pulsa/Voucher Elektronik dll. Efisiensi

perusahaan. WAVECOM FASTRACK Supreme Package:

GSM 900/1800 & GPRS Class 10 -SIRIM & IDA Approved

Power Supply with 4 pin connector - PS-003

Modem Serial cable with RJ11 plug - WMSER-2

GSM Dual Band antenna - ANT-HTGM-02

With optional IP Connectivity stack

AT Command Support

Applications :

o Appliance

o SMS Gateway

o Alert System

o Electronic Voucher GSM & CDMA

o Autorefill System

o GPRS or GPS

o ATM Terminals

o Automotive

o Data Collections

o Gas Pumps

o Industrial and Medical Remote monitoring system

o Remote Diagnosis

o Remote Metering

o Security System

o Vending/Gaming Machines

96
o Other devices requiring wireless connectivity

o Etc.

GSM Modem berkekuatan tinggi dan Telah terbukti Handal untuk keperluan : System

Pulsa/VoucherElektronik, ATM (jaringan ATM diIndonesia), SMS Gateway, GPRS/GPS,

SMSBroadcast,SMS Alert, ATM Network, SMS Poling, Quiz, BTS, Alert System dll.Full Package

Conten :

GSM 900/1800 & GPRS - M1306B - SIRIM & IDA Approved

Power Supply with 4 pin connector - PS-003

Modem Serial cable with RJ11 plug - WMSER-2

GSM Dual Band antenna - ANT-HTGM-02.

With optional IP Connectivity stack

AT Command Support

GSM Modem berkekuatan tinggi untuk keperluan SMS Gateway/Gatekeeper, Pulsa / Voucher

Elektronik, SMS Center, Autorefill System, GPRS/GPS, SMS Broadcast, SMS Alert System, ATM

Network Bank, SMS Poling, Quiz Yang membutuhkan Jutaan SMS per Jamnya, kinerja tinggi,

Industrial Konsep, Tahan Panas, M2M (Mechine to Mechine), Realtime & Ontime terus hingga

berbulan-bulan bahkan tahunan tanpa harus dimatikan

Konfigurasi file smsdrc untuk koneksi ke database dan file gammmurc

untuk koneksi ke modem.

Smsdrc

# This section contains general settings


# PIN - PIN for SIM card
# logfile - logfile for info about smsd actions
# CommTimeout - (time in seconds) after each read/write loop smsd waits so
# many seconds to make it again. Default: 1
# SendTimeout - shows how many seconds smsd should wait for network answer
# during sending sms. If nothing happen during this time,
# sms will be resent. Default: 10
# receivefrequency - the number of seconds between testing for received SMSes, when the phone
# is busy sending SMSes. Normally a test for received SMSes is done every commtimeout
# seconds and after each sent SMS. Default: 0 (not used)
# resetfrequency - the number of seconds between performing a preventive soft reset in order
# to minimize the cases of hanging phones e.g. Nokia 5110 will sometimes
# freeze to a state when only after unmounting the battery the phone will be functional
again.
# Default: 0 (not used)
# deliveryreport - should delivery reports be used no/log/sms.
# log: one line log entry,
# sms: store in inbox as a received SMS
# Default: no

97
# phoneid - string with info about phone used for sending/receiving
[smsd]
PIN = 1234
logfile = smsdlog
commtimeout = 1
sendtimeout = 10
#receivefrequency = 1
#resetfrequency = 0
deliveryreport = sms
#phoneid = MyPhone1

# ------------------------- SETTINGS FOR --smsd MYSQL ---------------------------


user = root
password =
pc = localhost
database = smsd
# when you send sms from some SMSC, you can have Delivery/Failed Delivery
# Reports from other SMSC number. You can set here number of this "buggy"
# SMSC used by you and Gammu will not check it's number during assigning
# reports to sent sms
#skipsmscnumber = +48602123456
# -------------------------------------------------------------------------------

# ------------------------- SETTINGS FOR --smsd FILES ---------------------------


# The following paths must be written with trailing '/' or '\' depending on OS.
# inboxpath - where the received SMSes are stored, default current directory
# outboxpath - where SMSes to be sent should be placed, default current
# directory
# sentsmspath - where the transmitted SMSes are placed, default outboxpath
# (= deleted)
# errorsmspath - where SMSes with error in transmission is placed, default
# sentsmspath
# inboxformat - the format in which the SMS will be stored: 'detail', 'unicode', 'standard'.
# The 'detail' format is the format used for backup. See below.
# 'standard' is in the standard character set.
# Default: unicode.
# transmitformat - the format for transmitting the SMS: 'auto', 'unicode', '7bit'. Default: auto
#inboxpath = /var/spool/sms/inbox/
#outboxpath = /var/spool/sms/outbox/
#sentsmspath = /var/spool/sms/sent/
#errorsmspath = /var/spool/sms/error/
#inboxformat = unicode
#transmitformat = auto
# -------------------------------------------------------------------------------

# ------------------------- INFO ABOUT --smsd FILES ---------------------------


#
# Receiving
# -----------------------------------------------------------------------------
# The filename will be
#
# IN<date>_<time>_<serialno>_<phone number>_<sequence>.txt
#
# eg. IN20021130_021531_00_+45409000931640979_00.txt
# where
# <date> is yyyymmdd
# <time> is hhmmss
# <serialno> is nn (in case of more SMSes sent at the same time to the phone)
# <sequence> is nn (for multi-SMSes)
#
# In case of 8 bit SMS coding the SMS is stored as binary data with the file
# extension .bin
98
#
# Transmitting
# -----------------------------------------------------------------------------
# The filename should be one of the following formats
#
# OUT<phone number>.txt<options>
# OUT<priority>_<phone number>_<serialno>.txt<options>
# OUT<priority><date>_<time>_<serialno>_<phone number>_<anything>.txt<options>
# where
# <priority> is an alphabetic character (A-Z) A = highest priority
# File extension convention:
# OUTxxxxx.txt : normal text SMS
# Options appended to the extension applying to this SMS only:
# d: delivery report requested
# f: flash SMS
# b: WAP bookmark as name,URL
# e.g. OUTG20040620_193810_123_+4512345678_xpq.txtdf
# is a flash text SMS requesting delivery reports

# Other fields as above.

# SMSes will be transmitted sequentially based on the file name


#
# The contents of the file is the SMS to be transmitted (in Unicode or standard
# character set)
#
# Example of the 'detail' inbox format
# -----------------------------------------------------------------------------
# [SMSBackup000]
# #ABCDEFGHIJKLMNOPQRSTUVWXYZ
##
SMSC = "+62855000000"
# SMSCUnicode = 002B0034003500340030003500390030003000300030
# Sent = 20021201T025023
# State = UnRead
# Number = "+4522706947"
# NumberUnicode = 002B0034003500320032003700300036003900340037
# Name = ""
# NameUnicode =
# Text00 =
004100420043004400450046004700480049004A004B004C004D004E004F00500051005200530054
00550056005700580059005A000A
# Coding = Default
# Folder = 1
# Length = 27
# Class = -1
# ReplySMSC = True
# RejectDuplicates = True
# ReplaceMessage = 0
# MessageReference = 0

Koneksi gammu pada gammurc

; In Win32 copy it into directory with Gammu.exe and name gammurc


; More about parameters later
; Anything behind ; or # is comment.
; -----------------------------------------------------------------------------

[gammu]

port = com3
99
;model = 6110
connection = at115200
;synchronizetime = yes
;logfile = gammulog
;logformat = textall
;use_locking = yes
;gammuloc = locfile
;startinfo = yes
;gammucoding = utf8
;rsslevel = teststable
;usephonedb = yes

[gammu1]

port = com8:
;model = 6110
connection = fbusblue
;synchronizetime = yes
;logfile = gammulog
;logformat = textall
;use_locking = yes
;gammuloc = locfile
;startinfo = yes
;gammucoding = utf8

100

Anda mungkin juga menyukai