BAB II LANDASAN TEORI 2.1 SMS (Short Message Service) 2.1.1. Definisi SMS SMS adalah sebuah laporan pengiriman pesan singkat daridan ke handphone, faximile, ataupun telepon. SMS menjadi daya tarik pengguna handphone, karena dalam waktu singkat tingkat pertumbuhan hanphone sangat tinggi. Layanan ini disebut layanan pesan singkat karena lebar karakternya hanya 160 karakter alphanumeric dan tidak berupa gambar atau grafik. Suatu provider telepon selular pasti menyediakan layanan ini sebagai salah satu layanan utama provider tersebut. SMS didukung oleh GSM (Global System of Mobile Communication) CDMA (Code Division Multiple Access) yang berbasis pada telepon seluler saat ini banyak digunakan. Karena layanan SMS sudah digunakan bertahun-tahun, maka pengguna telepon selular membuat layanan SMS ini menjadi sebuah layanan yang menarik. 2.1.2 Karakteristik SMS Karakteristik utama SMS adalah SMS merupakan sebuah Sistem pengirim data dalam paket yang bersifat out-of-band dengan bandwith kecil. Dengan karakteristik ini, pengiriman suatu burst data yang sangat pendek dapat dilakukan dengan efisiensi yang sangat tinggi. Layanan SMS merupakan sebuah layanan yang bersifat nonreal time dimana sebuah short message dapat di-submit ke suatu tujuan, tidak peduli apakah tujuan 9 10 tersebut aktif atau tidak. Bila dideteksi bahwa tujuan tidak aktif, maka Sistem akan menunda pengiriman ke tujuan hingga tujuan aktif kembali. Pada dasarnya Sistem SMS akan menjamin delivery dari suatu short message hingga sampai ke tujuan. Kegagalan pengiriman yang bersifat sementara seprti tujuan tidak aktif akan selalu teridentifikasi sehingga pengiriman ulang short message akan selalu dilakukan kecuali bila diberlakukan aturan bahwa short message yang telah melampaui batas waktu tertentu harus dihapus dan dinyatakan gagal terkirim. 2.1.3 Keuntungan SMS Pada tingkat minimum keuntungan yang dapat diberikan oleh SMS bagi pemakai meliputi pengiriman notifikasi dan peringatan (alert), penyampaian pesan SMS yang terjamin, handal, mekanisme komunikasi dengan biaya rendah, kemampuan untuk menyaring pesan SMS dan menganggapi panggilan secara efektif sehingga meningkatnya produktifitas customer. Untuk fungsionalitas yang lebih canggih, SMS memberikan beberapa keuntungan tembahan bagi user aitu pengiriman pesan SMS ke beberapa user sekaligus dalam waktu yang bersamaan, kemampuan menerima Informasi yang beragam, dan integrasi dengan aplikasi lain yang berbasis internet dan data. 2.1.4 Cara Kerja SMS Dalam Sistem SMS, mekanisme utama yang dilakukan dalam suatu Sistem adalah melakukan pengiriman short message dari suatu terminal customer ke terminal yang lain. Hal ini dapat dilakuakan berkat adanya sebuah entitas dalam Sistem SMS yang bernama short Message Service Center (SMSC), disebut juga Message Center (MC). 11 Pada saat pesan SMS dikirim dari handphone (mobil orginated) pesan tersebut tidak langsung dikirim ke handphone tujuan (mobile terminated), akan tetapi terlebih dahulu ke SMSC, baru kemudian pesan tersebut dikirimkan ke handphone tujuan. SMSC merupakan sebuah perangkat yang melakukan tugas store and forward trafik short message. Di dalamnya termasuk penentuan atau pencarian rute tujuan akhir dari short message. Sebuah SMSC biasanya didesain untuk dapat mengani short message dari berbagai sumber seperti Voice Mail System (VMS), Web-based messaging, Email Integration, External Short Message Entities (ESME), dan lain-lain Gambar 2.1 Skema cara kerja SMS 2.1.5 Sistem Kerja SMS 1) AT Command Dibalik teks SMS yang diterima dan dikirim pada sebuah telepon seluler sebenarnya adalah berupa perintah AT Command yang bertugas mengirim atau menerima data dari dan SMS Center. Perintah AT Command tiap-tiap SMS device bisa berbeda-beda, setiap vendor biasanya memberikan referensi tentang daftar perintah AT yang tersedia atau bisa di download di internet. AT Command digunakan untuk berkomunikasi dengan terminal melalui serial port pada komputer. Dengan menggunakan perintah AT, kita dapat mengetahui kekuatan 12 sinyal dari terminal, mengirim pesan, menambahkan item pada buku alamat, mematikan terminal, dan banyak fungsi lainnya. Salah satu software yang digunakan untuk mengetes perintah AT Command adalah windows HyperTerminal yang biasanya teleh tersedia bersma windows installer, shingga hanya perlu menambahkan software tersebut dari contol panel. Tidak semua perintah AT digunakan pada program, yang diambil hanya yang diperlukan saja, misal untuk mengirim, membaca, manghapus dan menerima pesan dari terminal. AT Command yang umum digunakan adalah Tabel 2.1 AT Command Perintah AT Kegunaan AT Mengecek apakah handphone telah terhubung AT+CMGF Menetapkan terminal AT+CSCS Menetapkan jenis encoding AT+CNMI Mendeteksi pesan SMS yang baru masuk secara otomatis AT+CMGL Membuka daftar SMS yang ada pada SIM Card AT+CMGS Mengirim pesan SMS AT+CMGR Membaca pesan SMS AT+CMGD Menghapus pesan SMS format mode dan AT Command sebenarnya hampir sama dengan perintah > (prompt) pada DOS. Perintah-perintah yang dimasukan ke port dimulai dengan kata AT, lalu diikuti oleh karakter lainnya, yang memiliki fungsi unik. Contoh: ATEI digunakan untuk menanyakan status port. Output “OK” akan tampak dilayar jika kondisi port tersebut siap untuk berkomunikasi. 13 2) SMS Center (SMSC) Pada saat kita mengirim pesan SMS dari handphone (mobile originated) pesan tersebut tidak langsung dikirimkan ke handphone tujuan (mobile terminated), akan tetapi dikirim terlebih dahulu ke SMS Center (SMSC), baru kemudian pesan tersebut diteruskan ke handphone tujuan. Dengan adanya SMSC ini kita dapat mengetahui status dari pesan SMS yang dikirim, apakah telah sampai atau gagal diterima oleh handphone tujuan. Apabila handphone tujuan dalam keadaan aktif dan dapat menerima pesan SMS yang dikirim, handphone tersebut akan mengirimkan kembali pesan konfirmasi ke SMSC yang menyatakan bahwa pesan telah diterima. Kemudian SMSC mengirimkannya kembali status tersebut kepada si pengirim. Jika handphone tujuan dalam keadaan mati, pesan yang kita kirimkan akan tersimpan pada SMSC sampai periode validity terpenuhi. 3) Koneksi ke SMSC Untuk dapat mengirim dan menerima pesan, kita harus melakukan koneksi ke SMSC. Ada beberapa cara untuk melakukan koneksi ke SMSC antara lain: a. Menggunakan terminal baik berupa GSM modem atau handphone. Cara ini adalah yang paling mudah tetapi memiliki kekurangan antara lain jumlah pesan yang dikirim permenit sangat terbatas (sekitar 6-10 pesan per-menit). Untuk mengantisipasi hal ini biasanya digunakan lebih dari satu terminal. b. Koneksi langsung ke SMSC Dengan melakukan koneksi langsung ke SMSC kita dapat mengirim pesan dalam jumlah banyak, dapat mencapai sekitar 600 SMS per menit bergantung pada kapasitas dari SMSC itu sendiri. Untuk melakukan koneksi ke SMSC diperlukan protokol penghubung. Protokol yang umum digunakan 14 adalah UDP, SMPP, CIMD2, OIS dan TAP. Masing-masing operator GSM menyediakan tipe protokol yang berbeda-beda. c. Menggunakan software bantu Saat ini banyak vendor telekomunikasi menawarkan software bantu untuk melakukan koneksi ke SMSC, dari yang bersifat freeware, open source sampai dengan komersial. Pemilihan koneksi ke SMSC biasanya disesuaikan dengan jumlah pesan SMS yang akan dikirim. 4) PDU sebagai bahasa SMS Data yang mengalir ke atau dari SMSC harus berbentuk PDU (Protocol Data Unit). PDU berisi bilangan-bilangan heksadesimal yang mencerminkan bahasa I/O. PDU terdiri dari beberapa header yang berbeda pada saat dikirim SMS ke SMSC dengan saat SMS diterima dari SMSC. (dikutip dari: http://library.gunadarma.ac.id/repository/files/10887/10106461/babii.pdf pada 15-3-2012 pukul 16.00WIB) 2.2 GAMMU 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. Sekarang gammu telah menyediakan codebase yang stabil dan mapan untuk berbagai macam model telepon yang tersedia di pasaran dibandingkan dengan project sejenis. Gammu merupakan project yang berlisensi GNU GPL 2, sehingga menjamin kebebasan menggunakan tool ini tanpa perlu takut dengan masalah legalitas dan biaya yang mahal yang harus dikeluarkan. Gammu mendukung berbagai macam model 15 telepon seluler dengan berbagai jenis koneksi dan type. (www.gammu.org). GAMMU merupakan software sms gateway yang cukup bagus dan terkenal. Selain mudah penggunaannya, perangkat modem gsm yang support cukup banyak mulai dari nokia, siemen dan Sonny ericsson. Untuk sony ericsson saya dah nyoba dan penggunaannya sangat mudah. Selain itu perangkat lain yang lebih cocok untuk dijadikan sms gateway dengan software gammu seperti modem gsm itegno. GAMMU bahkan sudah menyediakan service online untuk proses update data sms ke database. Database yang di support GAMMU adalah MySQL. Gammu bukanlah Aplikasi jadi, tapi dia merupakan sebuah modul yang bisa digabungkan dengan Bahasa pemrograman apa saja. Anda suka web based, bisa dengan PHP atau ASP, anda ingin yang desktop Apps, bias pakai Delphi atau Visual Basic. Bahkan tanpa pemrogramanpun, anda sudah bisa mengirim dan menerima SMS lewat computer anda, hanya saja tidak ada interfacenya, anda Cuma mengaksesnya lewat database administration seperti PhpMyadmin Misalnya. Kelebihan Gammu dari tool sms gateway lainnya adalah : 1. Gammu bisa di jalankan di Windows maupun Linux 2. Banyak device yang kompatibel oleh gammu 3. Gammu menggunakan database MySql 4. Baik kabel data USB maupun SERIAL, semuanya kompatibel di Gammu 2.3 PHP PHP adalah sebuah bahasa pemograman yang berbentuk scripting, system kerja dari program ini adalah sebagai interpreter bukan sebagai compiler. Perbedaan antara bahasa compiler dengan bahasa yang berupa interpreter adalah sebagai berikut 16 2.3.1 Teknik penggunaan PHP PHP memiliki beberapa aturan penulisanyang harus diketahui sebalumnya, yaitu bagaimana memulai program PHP dan mengakhiri PHP, sehingga dengan mengetahui beberapa aturan yang ada setidaknya dapat mengerjakan program yang dihadapi . pada table 2.3 ditunjukan beberapa bentuk pembuka dan penutup program PHP. Tabel 2.2 tabel pembuka dan penutup Program php awal akhir <? ?> <?php ?> <script language=”php”> </script> <% %> 2.3.2 Variable dalam PHP Untuk membentuk sebuah variabel dapat dibuat dengan mengguinakan tanda String ($) sebagai pendeklarasian awal, dengan menggunakan tanda $ maka karakter yang ada setelahnya akan dianggap/dikenali oleh program sebagai bentuk variabel. Aturan yang dapat digunakan untuk penulisan Variabel adalah sebagai berikut: a. Pendeklarasian variabel harus ditandai dengan String ($) b. Variabel dapat menggunakan huruf kecil maupun huruf besaratau perpaduan antara keduanya. c. Penulisan awal Variabel tidak boleh menggunakan angka. d. Apabila ingin menggunakan angka sebagai variabelnya makadapat menggunakan tanda underscore (_) untuk memulainya 17 e. Tidak boleh menggunakan bentuk bentuk karakter yang tergolong ke dalam kode ASCII 2.3.3 Operator dalam PHP Dalam beberapa operasi tentunya akan selalu menggunakan beberapa operator baik yang berkaitan dengan operator matematik ataupun yang berkenaan dengan operator logikal. Dengan adanya beberapa operator maka PHP telah menjadi sebuah bentuk pemograman yang sangat kompleks, sehingga pada pemograman ini dapat dihasilkan sebuah sistem yang mampu menangani banyak permasalahan yang dihadapi. Beberapa operator yang ada, di dalam PHP sebenarnya telah distandarkan dengan bentuk pemograman yang lain, diantaranya adalah: 2.3.3.1 Operator Aritmatik Operator aritmatik mendukung segala bentuk operasi matematika. Kegunaan dari operator ini adalah melakukan penghitungan matematika. Ada beberapa bentuk operasi matematik yang sering digunakan dalam kehidupan sehari hari, diantaranya ditunjukan pada table berikut : Tabel 2.2 Operator Aritmatik Operator Keterangan + Penjumlahan - Pengurangan * Perkalian / Pembagian % Modulus/sisapembagian 18 2.3.3.2 Operator Penugasan Khusus Saat melakukan operasi perhitungan matematika adakalanya memiliki permasalahan dengan rumus yang sangat panjang, Pada PHP mendukung bentuk bentuk operator yang dapat digunakan untuk menyingkat beberapa operator yang berkaitan dengan operasi penjumlahan. Bentuk – bentuk operator tersebut akan menjadi sebuah operator yang menyingkat fungsi yang telah dibuat, bentuk operator tersebut dapaty ditunjukkan seperti pada table berikut: Tabel 2.3 Bentuk Operator Penggunaan Khusus Bentuk Sederhana Bentuk sebenarnya X+=Y X=X+Y X-+Y X=X-Y X*=Y X=X*Y X/=Y X=X/Y X%=Y X=X% 2.3.3.3 Operator Penaikan dan Penurunan Operator ini merupakan bentuk operator yang berguna untuk menuliskan bentuk singkat dari operasi penaikan dan penurunannilai data dengan satu,artinya semua angka yang berada pada operator ini akan selalu dinaikan satu tingkat (ditambah 1) dari nilai sebelumnya. Berikut adalah gambaran penggunaanya Tabel 2.4 Bentuk Operator penaikan dan pengurangan Operator Sebenarnya Keterangan X++ X=X+1 Penambahan 1 setelah proses X-- X=X-1 Pengurangan 1 setelah proses ++X Penambahan 1 sebelum proses --X Pengurangan 1 sebelum proses 19 2.3.3.4 Operator Logika Operator yang digunakan untuk menangani permasalahan yang berkaitan dengan operasi logical, pada operasi ini hasil yang akan diperoleh adalah true atau false, yaitu jika kondisi ditemukan maka bernilai benar dan apabila tidak ditemukan maka bernilai salah. Bentu operator logical yang dapat didukung oleh PHP adalah Tabel 2.5 Bentuk Operator logikal Operator Arti Nilai Kebenaran $a and $b And Benar apabila kedua nilai benar $a or $b Or Benar apabila salah satu atau keduanya bernilai benar $a && $b And Benar apabila kedua nilai benar $a || $b Or Benar apabila salah satu atau keduanya berniala benar $a xor $b Xor Benar apabila salah satu a atau b bernilai benar, tapi apabila keduanya benar maka bernialai salah Not $a Not Benar apabila a tidak benar ! $a not Benar apabila a tidak benar 2.3.3.5 Operator Pembanding Pada bentuk operator ini digunakan untuk melakukan perbandingan antara dua nilai atau lebih, hingga akan menghasilkan sebuah hasil yang telah dideklarasikan setelah operator pembanding tersebut. Bentuk bentuk operator pembanding yang didukung PHP adalah. Tabel 2.5 Bentuk Operator logikal Operator Arti Nilai Kebenaran $a == $b Sama dengan Benar bila a sama dengan b $a ===$b Identic/ persis Benar bila a sama persis dengan b 20 $a != $b Tidak sama Benar apabila a tidak sama dengan b dengan $a <> $b Tidak sama Benar apabila a tidak sama dengan b dengan $a !=== $b Tidak persis Benar apabila a tidak sama dengan b $a < $b Kurang dari Benar apabila a kurang dari b $a > $b Lebih dari Benar apabila a lebih dari b $a <= $b Kurang dari Benar apabila a kurang dari atau samadengan b atau sama dengan $a >= $b Lebih dari atau Benar apabila a lebih dari atau samadengan b sama dengan 2.4 MySQL MySQL merupakan database yang paling digemari dikalangan programmer wb,dengan alas an bahwa MySQL merupakan database yang sangat kuat dan cukup stabil untuk digunakan sebagai media penyimpanan data. Di dalam dunia internetMySQL dijadikan sebuah database yang paling banyak digunakan , selain bersifat share ware seperti MS Access, penggunaan MySQL ini biasanya dipadukan dengan menggunakan program aplikasi PHP, karena dengan menggunakan kedua program tersebut telah terbukti kehandalannyadalam menangani permintaan data MySQL database server tersedia untuk berbagai system operasi, disini akan membahas penggunaan MySQL di salah satu sistem operasi yaitui windows. MySQL data server for Windows tersedia dalam 2 format distribusi: 1. Format binary yang berisi program setup yang melakukan install sehingga kita dapat segera menjalankan server. 2. Format source code yang memakai VC++6.0 compiler. MySQL merupakan sebuah database relasional yang berbasis open source yang pada awalnya tersedia hanya pada unix / linux,namun pada saat ini tersedia pula pada operating 21 system windows. MySQL pertama kali dirintis oleh seorang programmer database bernama Michael Widenius. Selain database server,MySQL juga merupakan program yang dapat mengakses suatu database MySQL yang berposisi sebagai server, yang berarti Program kita berposisi sebagai Client .Jadi MySQL merupakan database yang dapat digunakan sebagai Client maupun server. 2.4.1 Kelebihan MySQL Database MySQL memiliki beberapa kelebihan dibandingkan database lain,diantaranya: a. MySQL merupakan Database Management System (DBMS) b.MySQL sebagai Relation Database Management System (RDBMS) atau disebut dengan database Relational c. MySQL merupakan sebuah Database server yang Free d.MySQL merupakan Database Client e. MySQL mampiu menerima query yang bertumpuk dsalam satu permintaan atau multi threading f. MySQL merupakan Database yang mampu menyimpan data berkapasitas yang sangat besar hingga berukuran GigaByte sekalipun. g.MySQL didukung oleh driver ODBC,yang artinya database MySQL dapat diakses menggunakan aplikasi apa sajatermasuk berupa visual seperti visual basic dan Delphi h.MySQL adalah database menggunakan ankripsi password, jadi database ini cukup aman karena memiliki password untuk mengaksesnya i. MySQL merupakan database yang multi user artinya database ini tidak hanya digunakan oleh satu pihak orang tapi dapat digunakan oleh banyak pengguna. j. MySQL mendukung field yang digunakan sebagai kunci primer dan kunci uniq(unique) k.MySQL memiliki kecepatan dalam pembuatan table maupunpeng-updatean table 2.4.2 Mengenal SQL (structured quary language) 22 SQL (structured Query language)adalah sebuah bahasa permintaan database yang bersetructur.bahasa SQL ini dibuat sebagai bahasa yang dapat merelasikan beberapa table dalam data base maupun merelasikan antar database. SQL dibagi menjadi tiga bentuk Query,yaitu: 2.4.2.1 DDL (Data Definition Language) DDL adalah sebuah metode query SQL yang berguna untuk mendifinisikan data pada sebuah Database,Query yang dimiliki DDl adalah: a. CREATE : digunakan untuk membuat Database dan Tabel b. Drop c. Alter :digunakan untuk menghapus Tabel Dan Database : digunakan untuk melakukan perubahan struktur table yang telah dibuat, baik menambah field(Add), Mengganti Nama field(Change) ataupun menamakannya kembali(Rename) dan menghapus Field(Drop). 2.4.2.2 DML (Data Manipulation Language) DML adalah sebuah metode Query yang dapat digunakan apabila DDL telah terjadi,sehingga fungsi dari query DML ini melakukan pemanipulasian database yang telah dibuat.Query yang dimiliki DMLadalah: a. INSERT : digunakan untuk memasukan data pada table database b. UPDATE : Digunakan untuk pengubahan terhadap data yang ada pada Tabel database c. DELETE : Digunakan untuk Penghapusan data pada table Database 2.4.2.3 DCL (Data Control Language) DCL adalah sebuah metode Query SQL yang digunakan untuk memberi hak otorisasi mengakses database, mengalokasikan space,Pendefinisian space,dan penmgauditan penggunaan database. 23 Query yang dimiliki DCL adalah: a. GRANT b. REVOKE : untuk mengizinkan user mengakses table dalam database : untuk membatalkan izin hak user,yang ditetapkan oleh perintah GRANT c. COMMIT : Menetapkan penyimpanan database d. ROLLBACK :Membatalkan penyimpanan database 2.4.3 Tipe data ( Data Types ) : a. Banyak jenis data : signed / unsigned integers 1, 2, 3, 4, dan 8 bytes long, FLOAT, DOUBLE, CHAR, VARCHAR, TEXT, BLOB, DATE, TIME, DATETIME, TIMESTAMP, YEAR, SET, ENUM, dan OpenGIS spatial types. b. Fixed-length and variable-length records 2.4.4 Stabilitas MySQL Kode yang asli pada awal 1980-an menyediakan code base yang stabil dan format tabel ISAM yang digunakan oleh storage engine yang asli tetap backward-compatible. Pada TcX, pendahulu MySQL AB, kode MySQL telah bekerja dalam project sejak pertengahan 1996 tanpa suatu masalah. Ketika MySQL database yang pada awalnya telah dilepaskan untuk umum, para pemakai baru yang dengan cepat mendapat beberapa potongan dari kode yang belum diuji. Masing-masing release baru sejak mempunyai lebih sedikit permasalahan portabilitas, meskipun masing-masing release baru juga telah mempunyai banyak fitur yang baru. Dalam setiap release MySQL server yang telah dapat dipakai, permasalahan terjadi hanya ketika para pemakai mencoba kode dari “grayzone”, yang secara alami para pemakai baru tidak mengetahui apa itu “grayzone”. ( MySQL Database Management System. Dari http://ghanoz2480.wordpress.com Diakses tanggal 2januari 2011 Jam 19.00 )