TUGAS AKHIR Rancangan Aplikasi Portal SMS pada Jaringan GSM ke SDS pada Jaringan TETRA Diajukan Guna Melengkapi Sebagian Syarat Dalam mencapai gelar Sarjana Strata Satu (S1)
Disusun Oleh : Nama NIM Jurusan Peminatan
: Eko Wahyudi : 4140411-043 : Teknik Elektro : Telekomunikasi
PROGRAM STUDI TEKNIK ELEKTRO FAKULTAS TEKNOLOGI INDUSTRI UNIVERSITAS MERCU BUANA JAKARTA 2009
LEMBAR PERNYATAAN
Yang bertanda tangan di bawah ini,
Nama N.P.M Jurusan Fakultas Judul Skripsi :
: : : :
Eko Wahyudi 4140411-043 Teknik Elektronika Teknik Industri Rancangan Aplikasi Portal SMS pada Jaringan GSM ke SDS pada Jaringan TETRA
Dengan ini menyatakan bahwa hasil penulisan Skripsi yang telah saya buat ini merupakan hasil karya sendiri dan benar keasliannya. Apabila ternyata di kemudian hari penulisan Skripsi ini merupakan hasil plagiat atau penjiplakan terhadap karya orang lain, maka saya bersedia mempertanggungjawabkan
sekaligus
bersedia
menerima
sanksi
berdasarkan aturan tata tertib di Universitas Mercu Buana.
Demikian, pernyataan ini saya buat dalam keadaan sadar dan tidak dipaksakan.
Penulis,
Materai Rp.6000
Eko Wahyudi
ii
LEMBAR PENGESAHAN
Rancangan Aplikasi Portal SMS pada Jaringan GSM ke SDS pada Jaringan TETRA
Disusun Oleh : Nama NIM Program Studi Peminatan
: Eko Wahyudi : 4140411-043 : Teknik Elektro : Telekomunikasi
Mengetahui, Pembimbing
Koordinator TA
(
)
(
)
Mengetahui, Ketua Program Studi Teknik Elektro
(
)
iii
ABSTRAKS
Rancangan Aplikasi Portal SMS pada Jaringan GSM ke SDS pada Jaringan TETRA Penulisan Tugas Akhir ini bertujuan adalah terciptanya sebuah portal pesan singkat antara SDS dan SMS. Hal ini dikarenakan belum adanya portal yang dapat menjembatani antara pengiriman pesan singkat pada jaringan GSM (SMS) ke pesan singkat pada jaringan TETRA (SDS). Dalam penulisan tugas akhir ini, penulis menggunakan metode literature yang ditunjang dengan penggunaan jaringan GSM dan TETRA yang sudah tersedia. Dengan menggunakan terminal TETRA dan telepon selular (GSM) yang dapat berkomunikasi data melalui sebuah komputer yang didalamnya terdapat program yang dibuat dari Visual Basic maka diharapkan pesan singkat dapat diolah dan dikirimkan ke jaringan TETRA dan GSM.. Saat penerimaan pesan dari GSM (SMS), maka pesan ini akan diterima oleh telepon selular dan dikirimkan ke komputer untuk disimpan pada database. Dengan memanfaatkan timer yang tersedia pada Visal Basic, maka database akan dicek secara berkala untuk melihat apakah ada data yang belum terkirim ke jaringan TETRA. Jika ada yang belum terkirim, maka pesan ini akan dirubah ke format pengiriman SDS untuk selanjutnya dikirimkan ke Jaringan TETRA . Hal ini akan diakhiri dengan pemberian tanda pada database yang menunjukkan bahwa pesan sudah dikirimkan. Saat penerimaan pesan dari TETRA (SDS), maka pesan ini akan diterima oleh terminal TETRA dan dikirimkan ke komputer. Format SDS harus dirubah ke dalam bentuk text untuk kemudian disimpan pada database. Dengan memanfaatkan timer yang tersedia pada Visal Basic, maka database akan dicek secara berkala untuk melihat apakah ada data yang belum terkirim ke jaringan GSM. Jika ada yang belum terkirim, maka pesan ini akan dikirim dalam bentuk GSM format text untuk selanjutnya dikirimkan ke Jaringan GSM. Hal ini akan diakhiri dengan pemberian tanda pada database yang menunjukkan bahwa pesan sudah dikirimkan. Dengan demikian dapat disimpulkan bahwa telah tercipta sebuah Aplikasi Portal SMS pada Jaringan GSM ke SDS pada Jaringan TETRA.
Kata kunci : SMS, SDS, TETRA, GSM
iv
Kata Pengantar Puji syukur ke hadirat Allah SWT. atas segala limpahan rahmat dan karuniaNya, sehingga penulis mendapatkan kekuatan untuk dapat menyelesaikan Tugas Akhir ini sesuai dengan waktu yang telah ditentukan. Tugas Akhir dengan judul: “Rancangan Aplikasi Portal SMS pada Jaringan GSM ke SDS pada Jaringan TETRA”. diajukan guna memenuhi salah satu syarat lulus pendidikan program Strata-1, Teknik Elektronikas Fakultas Teknik Industri Universitas Mercubuana Jakarta. Tujuan dari penyusunan Tugas Akhir ini adalah terciptanya sebuah portal pesan singkat antara SDS dan SMS. Hal ini dikarenakan belum adanya portal yang dapat menjembatani antara pengiriman pesan singkat pada jaringan GSM (SMS) ke pesan singkat pada jaringan TETRA (SDS). Ucapan terima kasih, Penulis sampaikan kepada semua pihak yang telah membantu selesainya Tugas Akhir ini. Semoga Tugas Akhir ini bermanfaat bagi yang memerlukannya yaitu para pengguna jaringan Tetra yang berada di Indonesia, khususnya bagi yang menggunakan infrastruktur buatan Rohde & Schwarz dan terminal Sepura, yang ingin meningkatkan kegunaan dari SDS.
Jakarta, 11 Agustus 2009
Penulis.
v
LEMBAR PENGESAHAN
Rancangan Aplikasi Portal SMS Pada Jaringan GSM Ke SDS Pada Jaringan TETRA
Disusun Oleh : NAMA NIM Program Studi Peminatan
: Eko Wahyudi : 4140411-043 : Teknik Elektro : Telekomunikasi
Mengetahui, Pembimbing
Koordinator TA
( Dr. Ing Mudrik Alaydrus )
( Yudhi Gunardhi, ST. MT )
iii
DAFTAR ISI Halaman Judul.......................................................................................................... i Lembar Pernyataan.................................................................................................. ii Lembar Pengesahaan.............................................................................................. iii Abstraksi ................................................................................................................ iv Kata Pengantar ........................................................................................................ v Daftar Isi ................................................................................................................ vi BAB I
PENDAHULUAN............................................................................. 1
1.1
LATAR BELAKANG MASALAH .................................................................. 1
1.2
RUMUSAN MASALAH ............................................................................... 2
1.3
BATASAN MASALAH ................................................................................ 2
1.4
TUJUAN PENULISAN ................................................................................. 2
1.5
METODE PENELITIAN ............................................................................... 2
1.6
SISTEMATIKA PENULISAN ........................................................................ 3
BAB II 2.1
LANDASAN TEORI........................................................................ 4 AT COMMAND UNTUK GSM ................................................................... 4
2.1.1
+CMGF ............................................................................................... 5
2.1.2
+CMGS ............................................................................................... 5
2.1.3
+CNMI ................................................................................................ 6
2.1.4
+CMTI ................................................................................................ 6
2.1.5
+CMGR ............................................................................................... 7
2.1.6
+CMGD .............................................................................................. 8
2.2
AT COMMAND UNTUK TETRA ............................................................... 8
2.2.1
+CMGS ............................................................................................... 9
2.2.2
+CTSDSR ........................................................................................... 9
2.2.3
SDS User Data .................................................................................... 9
2.3
KOMUNIKASI SERIAL ............................................................................. 10
2.4
PEMROGRAMAN VISUAL BASIC 6 ........................................................... 11
2.4.1
Mscomm............................................................................................ 11
vi
vii
BAB III
KONSEP RANCANGAN .............................................................. 12
3.1
KONDISI SAAT INI .................................................................................. 12
3.2
KONDISI YANG DIINGINKAN .................................................................. 14
3.2.1
Penerimaan SMS ............................................................................... 15
3.2.2
Penerimaan SDS ............................................................................... 16
3.2.3
Pengiriman SMS ............................................................................... 17
3.2.4
Pengiriman SDS ................................................................................ 18
BAB IV
PEMBAHASAN MASALAH ....................................................... 20
4.1
INISIALISASI APLIKASI ........................................................................... 20
4.1.1
Pengaturan Kecepatan Serial............................................................. 20
4.1.2
Pengaturan Format Pengiriman Data SMS ....................................... 21
4.2
PENERIMAAN SMS ................................................................................. 21
4.3
PENERIMAAN SDS ................................................................................. 23
4.4
PENGIRIMAN SDS .................................................................................. 24
4.5
PENGIRIMAN SMS.................................................................................. 24
4.6
CONTOH PROSES ................................................................................... 25
4.6.1
Contoh Pengiriman SMS ke SDS .................................................... 25
4.6.2
Contoh Pengiriman SDS ke SMS .................................................... 26
BAB V
KESIMPULAN DAN SARAN ..................................................... 27
5.1
KESIMPULAN .......................................................................................... 27
5.2
SARAN.................................................................................................... 27
DAFTAR PUSTAKA ......................................................................................... 28 LAMPIRAN 1: LISTING PROGRAM ............................................................ 29 LAMPIRAN 2: TAMPILAN PROGRAM ....................................................... 37
BAB I PENDAHULUAN
1.1
Latar Belakang Masalah Jaringan (Global System for Mobile communication) GSM adalah suatu
jaringan yang disiapkan untuk komunikasi umum. Pada sistem komunikasi GSM terdapat komunikasi data yang berupa pengiriman pesan singkat atau Short Message Service (SMS). Pesan singkat ini dapat juga kita baca melalui komputer yang terhubung ke perangkat GSM. (Teresterial Trunked Radio) TETRA merupakan jaringan komunikasi radio trunking professional yang biasa digunakan untuk public safety. TETRA selain menyediakan komunikasi voice, sistem ini juga menyediakan fungsi komunikasi data. Komunikasi suara yang disediakan oleh TETRA adalah panggilan pribadi (full dan half duplex), panggilan group, panggilan darurat (emergency call). Terminal TETRA juga masih dapat digunakan untuk berkomunikasi walaupun basestation tidak tersedia. Sistem panggilan ini dikenal dengan nama panggilan langsung (Direct Mode). Salah satu komunikasi data yang dapat dipakai adalah Short Data Message (SDS). SDS adalah pesan data yang mirip dengan SMS pada GSM. Setiap pesan yang diterima oleh sistem ini akan diteruskan sesuai kebutuhannya. Data dari SDS harus mempunyai header no GSM yang merupakan tujuan dari pengiriman pesan tersebut, sehingga pesan dari SDS bisa terkirim ke GSM.Begitu juga pesan dari GSM (SMS) harus mepunyai header no TETRA sehingga bisa pesan bisa sampai ke jaringan TETRA. Sebagai jaringan pribadi, infrastruktur TETRA mempunyai portal untuk interkoneksi ke jaringan public seperti PSTN, analog radio dan internet. Selain itu beberapa pemilik jaringan TETRA juga menghendaki untuk dapat menyampaikan sms melalui terminal TETRA, begitu juga sebaliknya.
1
2
Untuk itu penulis mencoba membangun suatu system yang dapat berfungsi untuk merubah data dari SDS ke SMS dengan menggunakan sebuah terminal TETRA, sebuah telepon selular atau modem GSM dan sebuah personal komputer. Dengan terciptanya system ini diharapkan pemilik jaringan TETRA dapat mengirimkan pesan singkat SDS ke SMS atau bahkan dapat menerima pesan SMS melalui SDS.
1.2
Rumusan Masalah Dari latar belakang diatas dapat dirumuskan beberapa masalah, antara lain
adalah: a. Bisakah jaringan TETRA dan GSM dapat berkomunikasi? b. Bagaimanakah cara menghubungkan komunikasi dari jarigan GSM ke jaringan TETRA? c. Bagaimanakah cara untuk mengirimkan pesan singkat dari GSM ke jaringan TETRA begitu sebaliknya? d. bagaimanakah rancangan aplikasi portal SMS pada jaringan GSM ke SDS pada jaringan TETRA
1.3
Batasan Masalah Dalam penulisan tugas akhir ini penulis akan membatasi masalah menjadi
bagaimanakah rancangan aplikasi portal SMS pada jaringan GSM ke SDS pada jaringan TETRA.
1.4
Tujuan Penulisan Tujuan dari penulisan tugas akhir ini adalah terciptanya sebuah portal
pesan singkat antara SDS dan SMS.
1.5
Metode Penelitian Dalam penulisan tugas akhir ini, penulis menggunakan metode literature
yang ditunjang dengan penggunaan jaringan GSM dan TETRA yang sudah tersedia.
3
1.6
Sistematika Penulisan Tugas akhir ini menggunakan sistematika penulisan sebagai berikut:
BAB I
PENDAHULUAN 1.1 Latar Belakang Penulisan 1.2 Rumusan Masalah 1.3 Batasan Masalah 1.4 Tujuan Penulisan 1.5 Metode Penelitian 1.6 Sistematika Penulisan
BAB II
LANDASAN TEORI 2.1 AT-command untuk GSM 2.2 AT-command untuk TETRA 2.3 Pemrograman Visual Basic 2.4 Komunikasi Serial
BAB III
KONSEP RANCANGAN 3.1 Kondisi Saat Ini 3.2 Kondisi Yang Diinginkan
BAB IV
PEMBAHASAN MASALAH 4.1 Penerimaan SMS 4.2 Pengiriman SDS 4.3 Penerimaan SDS 4.4 Pengiriman SMS
BAB V
KESIMPULAN DAN SARAN 5.1 Kesimpulan 5.2 Saran
BAB II LANDASAN TEORI
2.1
Perbedaan TETRA/PMR (Private Mobile Radio) dan GSM TETRA memiliki kemiripan dengan GSM dalam beberapa hal, tetapi Tetra
juga mempunyai perbedaan. Hal ini dikarenakan desain dari sistem ini memang berbada. Perbedaan tersebut antara lain adalah panggilan group pada sistem TETRA, adanya dispathcer dalam sistem TETRA. TETRA memnggunakan sistem operasi desentralisasi yang berarti semua panggilan tidak dikontrol oleh central. TETRA juga mempunyai setup panggilan yang cepat dibandingkan dengan GSM karena TETRA mempunyai fasilitas Press to Talk. Tujuan panggilan juga berbeda, jika pada GSM banyak panggilan tertuju ke jaringan lain, tetapi pada TETRA lebih banyak panggilan di jaringannya sendiri. Kapasitas jaringan GSM diharapkan mempunyai jumlah pengguna yang tinggi untuk mendapatkan keuntungan yang tinggi pula. Tetapi pada TETRA jumlah pengguna relatif lebih sedikit dibandingkan dengan GSM dan panggilan yang dilakukan biasanya lebih pendek.
2.2
AT Command Untuk GSM Untuk mengirim dan menerima SMS dari telepon selular ke komputer
diperlukan perintah yang disebut dengan AT-command. Perintah tersebut akan dikirimkan dari komputer ke telepon selular melalui komunikasi serial (COM port). Beberapa perintah yang akan digunakan penulisan tugas akhir ini antara lain adalah +CMGF, +CMGS, +CNMI, +CMTI, +CMGR dan +CMGD.
4
5
2.2.1
+CMGF Perintah ini dipakai untuk menentukan format mode dari masukan dan
keluaran dari pesan yang akan digunakan. Rincian pesan ini dapat dilihat pada Tabel 2.1 AT+CMGF
Tabel 2.1 AT+CMGF[1] Nilai dari <mode> mengindikasikan format dari pesan yang akan digunakan. Mode 0 digunakan untuk mode PDU sedangkan 1 untuk mode teks. Untuk
mempermudah
dalam
pembuatan
aplikasi
maka
penulis
memutuskan untuk menggunakan format teks. Sehingga saat inisialisasi telepon selular, aplikasi akan mengirimkan perintah AT+CMGF=1.
2.2.2
+CMGS Perintah ini dipakai untuk mengirimkan pesan sms ke jaringan GSM
melalui terminal yang terhubung dengan komputer.
Tabel 2.2 +CMGS[2]
6
Tabel 2.2 +CMGS diatas adalah cara pengiriman perintah pengiriman SMS ke jaringan GSM. Dikarenakan aplikasi ini menggunakan format teks, maka perintah yang akan digunakan adalah AT+CMGS CMGS=
,teks is entered . Dibawah ini adalah keterangan dari parameter yang digunakan pada perintah ini:
nomor tujuan dari pengiriman pesan
tipe dari nomor tujuan 129=nomor telephony tanpa ada informasi penomoran 145=nomor internasional untuk telephony
2.2.3
+CNMI Perintah ini untuk mendefinisikan prosedur dalam indikasi dari
penerimaan pesan baru dari jaringan ke komputer. Format penulisannya lebih jelasnya terdapat pada Tabel 2.3 +CNMI
Tabel 2.3 +CNMI [1] 2.2.4
+CMTI +CMTI merupakan indikasi jika ada sms yang masuk. Indikator ini akan
bekerja jika sudah ada peintah yang mengatur sebelumnya yaitu +CNMI.Format penulisannya terlihat pada Tabel 2.4 +CMTI
7
Tabel 2.4 +CMTI[1] <mem> akan menunjukan posisi dari memori yang digunakan untuk menyimpan pesan singkat SMS. Sedangkan merupakan angka yang menunjukkan indeks penyimpanan pada memori <mem>
2.2.5
+CMGR Informasi yang diberikan +CMTI akan digunakan untuk membaca pesan
yang diterima dengan mengirimkan perintah +CMGR. Format yang digunakan terlihat
pada
Tabel
2.5
+CMGR.
Perintah
untuk
membaca
adalah
AT+CMGR=. merupakan angka yang menunjukkan indeks dari penyimpanan di memori.
8
Tabel 2.5 +CMGR[1] 2.2.6
+CMGD Perintah ini digunakan untuk menghapus pesan singkat yang tersimpan di
memori telepon selular untuk mengatasi penuhnya memory telepon selular. Perintah ini masih mengacu pada indeks pesan yang telah diterima dan dibaca. Format penulisannya adalah AT+CMGD=.
2.3
AT Command Untuk TETRA AT command untuk TETRA sebenarnya tidak banyak berbeda dengan AT
command untuk GSM. Perintah untuk pengiriman pesan adalah menggunakan perintah AT+CMGS, pada GSM kita bisa memilih format pengiriman pesan yaitu mode teks atau PDU walaupun hal ini harus didukung oleh tipe dari telepon selular itu sendiri. Tetapi pada TETRA, format yang dipakai hanya PDU. Kelebihan terminal TETRA yang diproduksi oleh SEPURA, adalah pengaturan penerimaan pesan. Pesan tersebut dapat diatur untuk dibaca di terminal atau langsung dapat dikirimkan ke peripheral equipment interface (PEI).
9
Jika pesan ini dikirimkan langsung ke PEI, maka tidak dibutuhkan lagi perintah untuk membaca secara manual maupun menghapus secara manual. Pada jaringan TETRA pesan singkat ini disebut dengan SDS (Short Data Service). Dalam TETRA SDS dibedakan menjadi 4 type yaitu SDS tipe 1 (16 bits), SDS tipe 2 (32 bits), SDS tipe 3 (64 bits) dan SDS tipe 4 (0-2047 bits).
2.3.1
+CMGS Perintah +CMGS digunakan untuk mengirimkan SDS ke jaringan. Format
penulisnnya adalah sebagai berikut: +CMGS= , user data/<ESC>[4] Perintah diatas akan mengirimkan user data ke terminal TETRA melalui PEI. Tipe SDS. dapat dikirimkan nomor terminal ataupun ke nomor grup yang dikehendaki. Jika dikirimkan ke grup, berarti semua terminalterminal yang sedang aktif di group tersebut akan menerima pesan ini.
2.3.2
+CTSDSR Pada saat terminal TETRA menerima pesan singkat SDS, maka pada PEI
akan menerima data yang diawalai dengan +CTSDSR. Sedangkan format yang diterima pada PEI adalah sebagai berikut: +CTSDSR: , [], [], , , user data.[4]
2.3.3
SDS User Data Pada AT command TETRA, user data merupakan gabungan antara
panjang parameter dan user data itu sendiri. Panjang parameter diletakkan sebelum , sedangkan user data itu sendiri diletakkan setelahnya. Dalam pengiriman user data selalu diakiri dengan , sedangkan untuk membatalkan pengiriman harus diakhiri dengan <ESC>. Pembatalan pengiriman biasanya dilakukan jika terjadi kesalahan pengetikan.
10
Panjang parameter ditentukan dalam besaran bits yang disesuaikan dengan decimal ACII dan tidak termasuk , dan . User data sendiri direpresentasikan sebagai karakter hexa ASCII. Setiap karakter Hexa diwakili oleh 4 bit. Jika jumlah dari bits dibagi dengan 4, jika ada sisa bits, maka bits tersebut akan dilengkapi dengan 0. Misalkan datanya adalah 1010 0101 1011 1 maka panjang datanya adalah 13 dan user datanya adalah A5B8. sehingga data yang akan dikirimkan adalah 13A5B8.
2.4
Komunikasi Serial Komunikasi serial adalah sistem komunikasi yang efisien, karena
membutuhkan jalur data yang lebih sedikit dibandingkan dengan komunikasi parallel. Komunikasi serial COM pada komputer biasanya menggunakan konektor DB 9 (9 pin). Tabel 2.6 Signal pada komunikasi serial memperlihatkan signal-signal yang digunakan dalam komunikasi serial RS232 yang menggunakan 9 pin konektor dan biasanya menggunakan konektor tipe DB-9.
Tabel 2.6 Signal pada komunikasi serial[3]
11
2.5
Pemrograman Visual Basic 6
2.5.1
Mscomm MSComm merupakan suatu komponen kontrol yang diseiakan untuk
komunikasi serial antara aplikasi untuk mengirimkan dan menerima data melalui port serial. Meskipun MSComm mempunyaibeberapa properti penting, tetapi hanya beberapa yang umumnya digunakan. Properti tersebut antara lain CommPort, Setting, PortOpen, Input dan Output. CommPort digunakan untuk mengatur dan mengetahui port komunikasi yang digunakan. Setting digunakan untuk mengatur dan mengetahui kecepatan data, parity, data bits dan stop bits. Sedangkan PortOpen digunakan untuk membuka dan menutup port komunikasi yang digunakan. Properti Input digunakan untuk membaca dan mengambil karakter yang tersimpan di buffer penerima. Sedangkan Output digunakan untuk mengirimkan data melalui buffer pengirim untuk selanjutnya dikirimkan ke port serial.
BAB III KONSEP RANCANGAN AT command diperkenalkan oleh sebuah perusahaan yang disebut Hayes yang semula memproduksi smartmodem 1200 dan smartphone 2400 yang merupakan era baru dari modem yang distandarisasi sampai hari ini. Perintah AT command yang berarti attention dipakai untuk mengontrol modem yang terhubung ke computer. AT command ini juga diadopsi untuk mengontrol modem GSM dan juga mangatur feature SMS yang terdapat pada GSM. 3.1
Kondisi Saat Ini Jaringan Komunikasi TETRA di Indonesia belum ada yang bisa
menghubungkan komunikasi data pesan pendek ke jaringan lainnya seperti GSM/UMTS dan CDMA. Walaupun demikian TETRA tetap dapat berkomunikasi suara ke jaringan lainnya. Portal yang biasa disediakan untuk komunikasi suara adalah PRI atau BRI disesuaikan dengan kebutuhan yang dikehendaki. Gambar 3.1 Interkoneksi Jaringan TETRA menjelaskan interkoneksi jaringan TETRA ke jaringan lainnya antara lain PABX, PSTN dan juga ke jaringan TETRA lainnya.
12
13
Public Data Network
Internet
2B+D
LAN/WAN
ISDN ISI
SER 6 STOCKHOL M F AB B OK C
PEI
PSTN PABX Conventional Base Stations
Command & Control Systems
Trunking Network Conventional PMR Networks
Network Management Customer Care & Billing Systems
Gambar 3.1 Interkoneksi Jaringan TETRA
Perangkat TETRA dikembangkan oleh beberapa vendor seperti Rohde & Schwarz, EADS, Motorola, Sepura, Teltronic dan lainnya. Peralatan TETRA pertama kali di Indonesia adalah buatan Rohde & Schwarz untuk basestationnya, sedangkan untuk terminalnya adalah buatan Sepura. Dari beberapa pengguna terminal TETRA, mereka mengharapkan untuk dapat mengirimkan atau menerima pesan pendek melalui terminal TETRA ke telepon selular. Karena saat ini komunikasi yang dapat dihubungkan oleh jaringan GSM dan TETRA terbatas pada komunikasi suara atau voice, seperti tergambar pada Gambar 3.2 Kondisi saat ini. Hal ini diperlukan karena jaringan TETRA masih terbatas. Kelebihan sistem komunikasi TETRA dalam pengiriman pesan adalah pengiriman pesan ke seluruh anggota group dengan sekali proses pengiriman.
14
Voice
GSM Pesan Singkat
X
Gambar 3.2 Kondisi saat ini
3.2
Kondisi Yang Diinginkan Dikarenakan belum adanya penghubung antara TETRA dan GSM untuk
komunikasi
pesan
singkat,
maka
diperlukan
sebuah
interface
untuk
menghubungkannya. Dengan menggunakan komputer, pesan singkat pada telepon selular dapat dibaca melalui port serial. Pesan juga dapat dikirimkan langsung dari komputer tanpa menyentuh tombol keypad pada telepon selular. Hal tersebut juga dapat kita lakukan terhadap terminal TETRA.
Penerimaan SMS
Pengiriman SDS
Penerimaan SDS Pengiriman SMS
Gambar 3.3 Interkoneksi Peralatan
Pesan singkat SMS yang diterima oleh telepon selular akan disimpan di komputer dan kemudian dikirimkan ke terminal TETRA sebagai sebuah SDS dan
15
dipancarkan ke jaringan TETRA. Sedangkan pesan singkat SDS yang diterima di terminal TETRA akan disimpan dikomputer yang selanjutnya akan diteruskan ke telepon selular untuk dikirimkan ke jaringan GSM sebagai SMS. Sehingga antara jaringan TETRA dan GSM dapat berkomunikasi dalam bentuk voice dan pesan singkat. Hal ini tergambar dalam Gambar 3.4 Kondisi yang diinginkan di bawah ini.
Voice
GSM Pesan Singkat Gambar 3.4 Kondisi yang diinginkan Untuk mengirimkan pesan ke jaringan lainnya adalah dengan cara mengirimkan pesan ke nomer telepon selular atau ke nomer terminal TETRA. Pesan tersebut harus dimulai dengan nomor tujuan di jaringan lainnya diikuti huruf # kemudian pesan yang akan dikirimkan. Alur logika yang digunakan dibagi dalam empat bagian yaitu penerimaan SMS, penerimaan SDS, pengiriman SMS dan pengiriman SDS.
3.2.1
Penerimaan SMS Agar lebih mudah dalam pemprosesan data, maka format penerimaan data
dari telepon selular ke komputer harus diatur ke format teks. Selain itu telepon selular juga diatur agar jika menerima pesan singkat SMS, akan mengirimkan informasi ke komputer. Jika SMS diterima, maka SMS akan dibaca dan diambil kata pertama sebagai nomor tujuan pada jaringan TETRA, sedangkan teks selanjutnya merupakan pesan yang akan diteruskan. Pesan tersebut akan disimpan di database
16
penerimaan SMS untuk diproses lebih lanjut yaitu dikirimkan ke jaringan TETRA. Alur logika tersebut dapat digambarkan seperti pada gambar dibawah ini
Gambar 3.5 Alur logika Penerimaan SMS 3.2.2
Penerimaan SDS Terminal TETRA saat menerima pesan singkat SDS bisa ditampilkan di
terminal itu sendiri atau dikirim ke saluran data yang terhubungkan ke komputer. Supaya data dapat terbaca di komputer maka terminal TETRA akan di atur agar mengirimkan SDS ke komputer. Hal ini dilakukan saat pemrograman terminal dilakukan. Alur logika penerimaan dapat digambarkan seperti pada Gambar 3.6 Alur logika Penerimaan SDS. Komputer akan merespon jika menerima SDS pada port serial. Data yang diterima masih berbentuk PDU (Packet Data Unit) yaitu data yang berbentuk
17
hexadecimal.
Data
tersebut
harus
dirubah
kedalam
bentuk
teks
agar
pemrosesannya lebih mudah. Setelah berbentuk teks, maka SDS akan dibaca dan diambil kata pertama sebagai nomor tujuan pada jaringan GSM, sedangkan teks selanjutnya merupakan pesan yang akan diteruskan. Pesan tersebut akan disimpan di database penerimaan SDS untuk diproses lebih lanjut yaitu dikirimkan ke jaringan GSM.
Gambar 3.6 Alur logika Penerimaan SDS 3.2.3
Pengiriman SMS Setiap SDS yang diterima telah tersimpan di database SDS. Dengan
menggunakan timer, maka database ini akan dicek apakah ada pesan yang belum dikirim ke jaringan GSM sebagai SMS. Jika masih ada pesan yang belum terkirim, maka pesan tersbut akan dikirimkan ke jaringan GSM dan diberi tanda telah terkirim.
18
Jika pesan sudah terkirim semua, timer akan selalu melakukan pengecekan ke database sampai ada pesan baru yang masuk untuk dikirimkan sebagai SMS. Alur logika yang digunakan digambarkan pada Gambar 3.7 Alur logika Pengiriman SMS
Gambar 3.7 Alur logika Pengiriman SMS 3.2.4
Pengiriman SDS Sama halnya dengan pengiriman SMS. Pada pengiriman SDS juga
mengandalkan sebuah timer untuk memeriksa database penerimaan SMS ada pesan yang belum dikirim ke jaringan TETRA sebagai SDS. Jika masih ada pesan yang belum terkirim, maka pesan tersebut akan dikirimkan ke jaringan TETRA dan diberi tanda telah terkirim. Perbedaannya terletak pada format teks yang digunakan. Pada pengiriman SDS, pesan yang berbentuk teks akan dirubah lebih dahulu dalam bentuk PDU karena terminal TETRA yang digunakan belum mendukung format pengiriman text. Alur logikanya digambarkan dalam Gambar 3.8 Alur logika Pengiriman SDS
19
Gambar 3.8 Alur logika Pengiriman SDS
BAB IV PEMBAHASAN MASALAH 4.1
Inisialisasi Aplikasi Sebelum aplikasi ini dapat berjalan, pertama kali yang dilakukan adalah
inisialisasi aplikasi yaitu pengaturan kecepatan data serial, format data serial, pegaturan data telepon selular dan pengaturan telepon selular agar dapat memberikan informasi ke jalur serial jika menerima SMS.
4.1.1
Pengaturan Kecepatan Serial Aplikasi yang dibangun dalam Tugas Akhir ini menggunakan dua buah
port komunikasi padaa komputer. Port pertama digunakan untuk berkomunikasi dengan telepon selular dan port satunya digunakan untuk berkomunikasi dengan terminal TETRA. Pada port yang digunakan untuk berkomunikasi dengan telepon selular, diatur kecepatannya ke 19200 bps (bit per second). Sedangkan format pengirimannya adalah n,8,1 (tanpa parity cek, 8 bit per character dan 1 stop). Didalam bahasa pemrograman ditulis sebagai berikut: With MSComm1 .CommPort = 8
'comm port 8
.Settings = "19200,n,8,1" .PortOpen = True
'aktifkan port
End With Sedangkan port komunikasi yang digunakan untuk berkomunikasi dengan terminal TETRA diatur kecepatannya ke 38400 bps karena kecepatan ini adalah kececpatan standard yang digunakan dalam pemrograman terminal TETRA. Adapun format pengirimannya sama dengan format pengiriman pada port yang digunakan untuk berkomunikasi dengan telepon selular. Didalam bahasa pemrograman ditulis sebagai berikut: With MSComm2 .CommPort = 1
'comm port 1
20
21
.Settings = "38400,n,8,1" .PortOpen = True
'aktifkan port
End With Kedua set perintah tersebut telah mengaktifkan port komunikasi komputer untuk dapat berkomunikasi pada telepon selular dan terminal TETRA.
4.1.2
Pengaturan Format Pengiriman Data SMS Setelah port komunikasi dapat digunakan, maka langkah selanjutnya dalah
mengatur telepon selular agar menggunakan merubah format data dari PDU (Packet Data User) yang berbentuk hexadecimal ke dalam bentuk teks agar lebih mudah untuk diolah. Perintah ini dikirimkan melalui MSCOMM1 (port yang digunakan untuk berkomunikasi dengan telepon selular). Bentuk perintahnya dalam Visual Basic 6 adalah: MSComm1.Output = "at+cmgf=1;+cnmi=2,1,0,0,0" & vbCrLf +CMGF=1 digunakan untuk menggunakan format text dalam komunikasi dengan telepon selular. +CNMI=2,1,0,0,0 memerintahkan kepada telepon selular untuk memberitahukan melalui MSCOMM1 jika ada SMS masuk.
4.2
Penerimaan SMS Saat terjadi penerimaan SMS, telepon selular akan mengirimkan data
informasi ke MSCOMM1 yang didahului dengan +CMTI. Didalam informasi ini terkandung index dari lokasi SMS tersimpan di telepon selular. Format dari informasi +CMTI adalah sebagai berikut: +CMTI: <mem>, <mem> akan menunjukkan angka 2 sesuai dengan perintah +CNMI yang berarti SMS akan disimpan di telepon selular. merupakan informasi dari letak SMS ini disimpan di telepon selular. akan digunakan untuk membaca dan selanjutnya menghapus isi SMS dari telepon selular setelah diolah di komputer.
22
Jika informasi +CMTI diterima oleh aplikasi Visual Basic 6, maka aplikasi akan mengirimkan perintah untuk membaca isi SMS tersebut sesuai dengan indexnya dan untuk selanjutnya disimpan di database penerimaan SMS. Perintah untuk membacanya adalah: +CMGR= ini disamakan dengan index yang diterima pada informasi +CMTI. Setelah dibaca, SMS akan segera dihapus sehingga tidak memenuhi memori pada telepon. Perintah menghapus juga mengacu pada index yang berasal dari informasi CMTI. Untuk menghapus perintah yang digunakan adalah +CMGD=. Sehingga penulisan perintah di Microsoft Visual Basic 6 adalah sebagai berikut: posisi = Split(bufferSMS, ",") ‘bufferSMS adalah data i/p dari MSComm1.Output = "AT+CMGR=" & posisi(1) & ";AT+CMGD=" &_ posisi(1) & vbCrLf
Perintah diatas terdapat konstanta posisi merupakan dari posisi SMS disimpan di pesawat telepon selular. Dari perintah +CMGR akan didapatkan informasi dari SMS yang diterima. Format penerimaan dari pesan ini dipisahkan oleh tanda koma. Penerimaannya adalah sebagai berikut: +CMGR: <stat>,[,,,,,[],<sca>,,] Dari beberapa parameter yang ada diatas, yang dipergunakan didalam system adalah yang berarti alamat pengirim, yang berarti panjang dan yang merupakan isi dari pesan SMS ini. Isi pesan akan diambil satu kata pertama yang merupakan nomor tujuan dalam penerusan pesan ke jaringan TETRA. Sedangkan kata-kata selanjutnya merupakan pesan yang akan tampil di terminal TETRA. Data tersebut akan disimpan ke dalam tabel SMS yang berada didalam database “SMS2SDS.mdb“. Data ini nantinya akan digunakan untuk pengiriman SDS.
23
4.3
Penerimaan SDS Terminal TETRA yang terhubung ke komputer akan mengirimkan pesan
SDS yang diterima langsung ke komputer melalui kabel data serial. Data tersebut berbentuk PDU (Packet Data Unit) yang harus diartikan dahulu untuk dapat dibaca. Jika computer menerima data dari terminal TETRA yang dimulai dengan informasi +CTSDSR, maka data tersebut akan diolah untuk dijadikan text dan selanjutnya dibaca untuk dilanjutkan ke jaringan GSM. Format informasinya adalah sebagai berikut: +CTSDSR: , [], [], , , user data Dari data yang didapat, yang akan digunakan adalah yang merupakan yang nomor dari pengirim pesan, yaitu panjang pesan dan user data. nomor pengirim sudah berbentuk nomor desimal sehingga bisa langsung disimpan di database. Panjang pesan berbentuk hexadecimal sehingga perlu dirubah ke bentuk decimal dan kemudian digunakan untuk referensi dalam merubah user data ke dalam text. Untuk mendapatkan text tersebut dari bentuk hexadecimal, maka bahasa pemrogramannya adalah sebagai berikut: Private Function Hex2text(PDU As String) Dim i As Integer Dim hasil As String For i = 1 To Len(PDU) - 8 Step 2 hasil = hasil & Chr("&h" & Mid(PDU, i + 8, 2)) Next i Hex2text = hasil End Function
User data berbentuk hexadecimal yang merupakan kode ASCII dari karakter atau huruf. Dengan merubah hexadecimal ke ASCII maka akan terbentuk suatu kalimat yang merupakan pesan dari jaringan TETRA (SDS) yang siap dikirimkan ke jaringan GSM. Isi pesan akan diambil satu kata pertama yang merupakan tujuan dari pengiriman pesan di jaringan GSM.
24
Nomor pengirim, nomor tujuan, dan isi pesan akan disimpan didalam database yang selanjutnya akan digunakan untuk mengirim SMS. Database tersebut terletak pada file “SDS2SMS.mdb” di dalam tabel SDS. 4.4
Pengiriman SDS Pengiriman SDS menggunakan database SDS2SMS.mdb tabel
SDS.
Pengiriman ini berbasis waktu (timer) selama 100 ms sehingga setiap 100 ms, aplikasi akan membaca database. Dalam pembacaan ini jika ada database yang belum dikirim, maka database tersebut akan dikirimkan. Perintah ini akan terus berulang sampai database keterakhir/EOF (End of File). Listing lengkap timernya diberi nama tmrkrmSDS. Private Sub tmrkirimSDS_Timer() If Adosms.Recordset.EOF = False Then With Adosms.Recordset .MoveFirst .Fields("Status") = True cnn.Open KoneksiData msql = "update sms set status=true where index = " & .Fields("index") cnn.Execute (msql) cnn.Close tmrAdoRefresh.Enabled = True Call KirimSDS(.Fields("tujuan"), "sms(" & .Fields("Pengirim") & "):" & .Fields("isi")) End With Else StatusBar1.Panels(2).Text = "EOF" End If End Sub
Pengiriman akan terdelay jika pada database banyak pesan singkat yang belum terkirim karena proses pengiriman yang dilakukan menggunakan timer dalam pengecekannya.
4.5
Pengiriman SMS Pengiriman SMS mempunyai cara yang sama dengan cara pengiriman
SDS. Aplikasi ini bekerja dengan acuan database SDS2SMS.mdb tabel SMS. Pengiriman ini berbasis waktu (timer) selama 100 ms sehingga setiap 100 ms, aplikasi akan membaca database. Dalam pembacaan ini jika ada database yang
25
belum dikirim, maka database tersebut akan dikirimkan. Perintah ini akan terus berulang sampai database keterakhir/EOF (End of File). Listing lengkap timernya diberi nama tmrkrmSMS adalah sebagai berikut:
Private Sub tmrkirimSMS_Timer() If Adosds.Recordset.EOF = False Then With Adosds.Recordset .MoveFirst .Fields("Status") = True cnn.Open KoneksiData 'membuka data base yang tertulis pada variable msql = "update sds set status=true where " & _ "index = " & .Fields("index") cnn.Execute (msql) cnn.Close tmrAdoRefresh.Enabled = True MSComm1.Output = "at+cmgs=" & Chr(34) & .Fields("tujuan") & _ Chr(34) & vbCrLf & _ "sds(" & .Fields("pengirim") & "):" & .Fields("isi") & Chr(26) End With End If End Sub
Pengiriman akan terdelay jika pada database banyak pesan singkat yang belum terkirim karena proses pengiriman yang dilakukan menggunakan timer dalam pengecekannya. 4.6
Contoh Proses
4.6.1
Contoh Pengiriman SMS ke SDS Untuk mengirimkan SMS ke SDS maka format penulisannnya adalah
sebagai berikut: <no tujuan pada TETRA><spasi> lalu dikirimkan ke nomor telepon selular yang digunakan sebagai gateway. Maka di terminal TETRA akan muncul pesan denga format sms<no telepon selular><spasi> Contohnya adalah sebagai berikut: 00201 Telah dikirimkan SMS melalui SDS. Dan akan diterima di terminal TETRA sms +6281514355460 Telah dikirimkan SMS melalui SDS
26
4.6.2
Contoh Pengiriman SDS ke SMS Pengiriman pesan singkat dari SDS ke SMS hampir sama dengan cara
pengiriman SMS ke SDS. Format yang digunanakan adalah sebagai berikut: <no tujuan pada GSM><spasi> lalu dikirimkan ke nomor terminal TETRA yang digunakan sebagai gateway. Maka di telepon selular akan muncul pesan dengan format sds<no terminal TETRA><spasi> Jika dari terminal TETRA dikirimkan sebuah pesan dengan isi: 081514355460 Telah dikirimkan SDS melalui SMS. Maka pada Telepone selular akan menerima pesan singkat sds 200 Telah dikirimkan SDS melalui SMS
BAB V KESIMPULAN DAN SARAN 5.1
Kesimpulan Dengan menggunakan sebuah komputer yang didalamnya terinstall sebuah
aplikasi yang dibuat dari bahasa pemrograman Visual Basic 6 dan komputer tersebut terhubung ke terminal TETRA dan telepon selular dapat tercipta sebuah portal pesan singkat antara SDS dan SMS. Tetapi jika pesan yang diterima sangat banyak, maka pesan yang dikirim akan mengalami keterlambatan pengiriman dikarenakan aplikasinya masih menggunakan timer untuk mengirimkan pesan.
5.2
Saran Aplikasi
yang
dibuat
pada
tugas
akhir
ini
tentunya
harus
diimplementasikan pada jaringan TETRA yang sudah ada untuk mengetahui kekurangan-kekurangannya. Sehingga dari kekurangan tersebut aplikasi ini dapat ditingkatkan kinerjanya sesuai dengan keinginan dari pengguna TETRA.
27
DAFTAR PUSTAKA 1. AT_Command_Set_For_Nokia_GSM_And_WCDMA_Products_v1_2_en.pdf. 2005. http://forum.nokia.com: Forum Nokia 2. John Dunlop, Demeddie Girma, dan James Irvine. 2000. Digital Mobile Communications and the TETRA System. England: John Wiley & Sons, LTD. 3. Craig Peacock. 1998. Interfacing the Serial / RS232 Port V5.0. http://www.senet.com.au/~cpeacock 4. Final draft ETSI EN 300 392-5 V1.2.1 (2003-07), 2003. European Telecommunications Standards Institute
28
Lampiran 1: Listing Program Option Explicit Dim bufferSMS As String, bufferSDS As String Dim rs As New ADODB.Recordset 'Deklarasi penyimpanan data ke dalam database Dim cnn As New ADODB.Connection 'Deklarasi koneksi dengan database Dim msql, KoneksiData As String Dim x As Integer Private Sub Command1_Click() MSComm1.Output = "at+cmgr=902" & vbCrLf Text1.Text = Text1.Text & vbCrLf & ">>" & "at+cmgr=902" & vbCrLf End Sub Private Sub Form_Load() Dim koneksi As String With MSComm1 .CommPort = 7 'comm port 1 .Settings = "9600,n,8,1" .PortOpen = True 'aktifkan port End With 'With MSComm2 ' .CommPort = 1 ' .Settings = "38400,n,8,1" ' .PortOpen = True 'End With 'MSComm2.PortOpen = True koneksi = "driver={Microsoft Access Driver (*.mdb)};" & _ "Dbq=SDSnSMS.mdb;" & "DefaultDir=" & App.Path & ";" & _ "Uid=Admin;Pwd=;" KoneksiData = koneksi init_hp Adosms.ConnectionString = koneksi Adosds.ConnectionString = koneksi Adosms.Refresh End Sub Private Sub Form_Unload(Cancel As Integer) MSComm1.PortOpen = False MSComm2.PortOpen = False End End Sub
29
30
'################################################################# ################ '### SMS Routine ### '################################################################# ################ Private Sub init_hp() MSComm1.Output = "at+cmgf=1;+cnmi=2,1,0,0,0" & vbCrLf Text1.Text = Text1.Text & vbCrLf & ">>" & "at+cmgf=1;+cnmi=2,1,0,0,0" & vbCrLf End Sub Private Sub MSComm1_OnComm() 'mscomm untuk sms Select Case MSComm1.CommEvent Case comEvReceive If MSComm1.InBufferCount Then bufferSMS = bufferSMS & CStr(MSComm1.Input) End If Case comEvEOF ' An EOF character was found in the input stream. StatusBar1.Panels(1).Text = "EOF character received!" End Select TerimaSMS End Sub Private Sub TerimaSMS() StatusBar1.Panels(1).Text = "SMS-> " & bufferSMS Shape1.FillColor = &HC000& tmrFilterSMS.Enabled = True End Sub Private Sub FilterSMS() Dim posisi() As String Dim smsIn As String If Not UCase(Mid(bufferSMS, 1, 2)) = "AT" Then Select Case UCase(Mid(bufferSMS, 3, 5)) Case "+CMTI" posisi = Split(bufferSMS, ",") MSComm1.Output = "AT+CMGR=" & posisi(1) & ";AT+CMGD=" & posisi(1) & vbCrLf Text1.Text = Text1.Text & vbCrLf & ">>" & "AT+CMGR=" & posisi(1) & ";AT+CMGD=" & posisi(1) & vbCrLf Case "+CMGR" smsIn = splitSMS(CStr(bufferSMS)) Call SimpanSMS(smsIn) Case "+CMGS"
31
'membuat report setelah dikirm 'report = Split(bufferSMS, vbCrLf) Case Else txtComHpIn.Text = txtComHpIn.Text & vbCrLf & ">" & "Tidak masuk filter:" & bufferSMS End Select Else 'untuk testing dari command button txtComHpIn.Text = txtComHpIn.Text & vbCrLf & ">" & bufferSMS If UCase(Mid(bufferSMS, 15, 5)) = "+CMGR" Then smsIn = splitSMS(CStr(bufferSMS)) Call SimpanSMS(smsIn) End If End If txtComHpIn.SelLength = Len(txtComHpIn.Text) End Sub Private Sub SimpanSMS(ByVal isisms As String) Dim rincian, Isi_sms As String Dim tujuan() As String rincian = Split(isisms, "()") tujuan = Split(rincian(1), " ") Isi_sms = Right(rincian(1), (Len(rincian(1)) - Len(tujuan(0)) - 1)) txtComHpIn.Text = txtComHpIn.Text & vbCrLf & ">" & _ "Pengirim :" & rincian(0) & vbCrLf & _ "Tujuan : " & tujuan(0) & vbCrLf & _ "Isi SMS :" & Isi_sms & vbCrLf & _ "Tanggal :" & rincian(2) & vbCrLf & _ "Jam :" & rincian(3) cnn.Open KoneksiData
'membuka data base yang tertulis pada variable
msql = "insert into sms(tanggal,jam,pengirim,tujuan,isi) " & _ "values('" & rincian(2) & "','" & rincian(3) & "','" & rincian(0) & "','" & _ tujuan(0) & "','" & Isi_sms & "')" cnn.Execute (msql) tmrAdoRefresh.Enabled = True cnn.Close End Sub Private Function splitSMS(cmgr As String) Dim rawdata, isisms, headersms, pengirim, tanggal, jam As String rawdata = Split(cmgr, vbCrLf) isisms = rawdata(2) headersms = Split(rawdata(1), ",")
32
pengirim = Mid(headersms(1), 2, (Len(headersms(1)) - 2)) tanggal = Mid(headersms(3), 2, (Len(headersms(3)) - 1)) jam = Mid(headersms(4), 1, (Len(headersms(4)) - 4)) splitSMS = pengirim & "()" & isisms & "()" & tanggal & "()" & jam End Function
Private Sub tmrAdoRefresh_Timer() StatusBar1.Panels(2).Text = Adosms.Recordset.RecordCount - 1 Adosms.Refresh DataGrid1.Refresh StatusBar1.Panels(3).Text = Adosds.Recordset.RecordCount - 1 Adosds.Refresh DataGrid2.Refresh tmrAdoRefresh.Enabled = False tmrAdoRefresh.Enabled = False End Sub Private Sub tmrFilterSMS_Timer() FilterSMS Text1.Text = Text1.Text & vbCrLf & "<<" & bufferSMS & vbCrLf bufferSMS = "" Shape1.FillColor = &HC0& tmrFilterSMS.Enabled = False End Sub Private Sub tmrkirimSMS_Timer() If Adosds.Recordset.EOF = False Then With Adosds.Recordset .MoveFirst .Fields("Status") = True cnn.Open KoneksiData 'membuka data base yang tertulis pada variable msql = "update sds set status=true where " & _ "index = " & .Fields("index") cnn.Execute (msql) cnn.Close tmrAdoRefresh.Enabled = True MSComm1.Output = "at+cmgs=" & Chr(34) & .Fields("tujuan") & Chr(34) & vbCrLf & _ "sds(" & .Fields("pengirim") & "):" & .Fields("isi") & Chr(26) End With
33
Else StatusBar1.Panels(2).Text = "EOF" End If End Sub
'################################################################# ################ '### SDS Routine ### '################################################################# ################ Private Sub MSComm2_OnComm() 'mscomm untuk sds Select Case MSComm2.CommEvent Case comEvReceive If MSComm2.InBufferCount Then bufferSDS = bufferSDS & CStr(MSComm2.Input) Debug.Print "comEvReceive - " & bufferSDS 'StrConv(BufferSDS, vbUnicode) 'menampilkan data yang diterima pada jendela debug End If End Select terimaSDS End Sub Private Sub terimaSDS() StatusBar1.Panels(1).Text = "SDS-> " & bufferSMS txtComSDSIn = bufferSDS Shape2.FillColor = &HC000& tmrFilterSDS.Enabled = True End Sub Private Sub filterSDS() Dim SDSin As String Dim status() As String If Not UCase(Mid(bufferSDS, 1, 2)) = "AT" Then Select Case UCase(Mid(bufferSDS, 3, 5)) Case "+CTSD" Select Case Mid(bufferSDS, 12, 2) Case 12 SDSin = splitSDS(CStr(bufferSDS)) Call SimpanSDS(SDSin) Case 13 status = Split(bufferSDS, Chr(&HD) & Chr(&HA)) Text3.Text = Text3.Text & vbCrLf & ">" & "Status Message : " & status(2)
34
End Select Case "+CMGS" 'membuat report setelah dikirm 'report = Split(buffersds, vbCrLf) Case Else Text3.Text = Text3.Text & vbCrLf & ">" & "Tidak masuk filter:" & bufferSDS End Select Else Text3.Text = Text3.Text & vbCrLf & ">" & bufferSDS If UCase(Mid(bufferSDS, 15, 5)) = "+CMGR" Then SDSin = splitSDS(CStr(bufferSDS)) Call SimpanSDS(SDSin) End If End If Text3.SelLength = Len(Text3.Text) End Sub Private Sub SimpanSDS(ByVal IsiSDS As String) Dim rincian, tujuan, Isi_sds As String Dim pengirim As String rincian = Split(IsiSDS, "()") tujuan = Split(rincian(1), " ") txtComHpIn.Text = tujuan(0) Isi_sds = Right(rincian(1), (Len(rincian(1)) - Len(tujuan(0)) - 1)) pengirim = Right(rincian(0), 8) Text3.Text = Text3.Text & vbCrLf & ">" & IsiSDS & vbCrLf & _ "Pengirim :" & pengirim & vbCrLf & _ "Tujuan : " & tujuan(0) & vbCrLf & _ "Isi SDS :" & Isi_sds & vbCrLf & _ "Tanggal :" & rincian(2) & vbCrLf & _ "Jam :" & rincian(3) & vbCrLf & _ rincian(0) Text3.SelLength = Len(Text3.Text) cnn.Open KoneksiData
'membuka data base yang tertulis pada variable
msql = "insert into sds(tanggal,jam,pengirim,tujuan,isi) " & _ "values('" & rincian(2) & "','" & rincian(3) & "','" & pengirim & "','" & _ tujuan(0) & "','" & Isi_sds & "')" cnn.Execute (msql) tmrAdoRefresh.Enabled = True cnn.Close
35
Text1.Text = Text1.Text & vbCrLf & ">>" & "at+cmgs=" & Chr(34) & tujuan(0) & Chr(34) & vbCrLf & _ "sds(" & Right(rincian(3), 8) & "):" & Isi_sds & Chr(26) & vbCrLf End Sub Private Function splitSDS(PDU As String) Dim sds() As String, sds1() As String sds = Split(PDU, Chr(&HD) & Chr(&HA)) sds1 = Split(sds(1), ",") splitSDS = sds1(1) & "()" & Hex2text(CStr(sds(2))) & "()" & _ Format(Date, "dd/mm/yy") & "()" & Format(Time, "hh:mm:ss")
txtComSDSIn.Text = "Pengirim :" & sds1(1) & vbCrLf & _ "Penerima :" & sds1(3) & vbCrLf & _ "Pesan :" & Hex2text(CStr(sds(2))) End Function Private Function KirimSDS(tujuan As String, IsiSDS As String) Dim userdata As String userdata = "82000000" & Text2Hex(IsiSDS) '+CMGS= , user data/<ESC> MSComm2.Output = "AT+CMGS=" & tujuan & "," & Len(userdata) * 4 & vbCrLf & _ "82000000" & Text2Hex(IsiSDS) & Chr(26) End Function Private Function Hex2text(PDU As String) Dim i As Integer Dim hasil As String For i = 1 To Len(PDU) - 8 Step 2 hasil = hasil & Chr("&h" & Mid(PDU, i + 8, 2)) Next i Hex2text = hasil End Function Private Function Text2Hex(textSDS As String) Dim i As Integer Dim hasil As String For i = 1 To Len(textSDS) hasil = hasil & Hex(Asc(Mid(textSDS, i, 1))) Next i Text2Hex = hasil End Function
36
Private Sub tmrkirimSDS_Timer() If Adosms.Recordset.EOF = False Then With Adosms.Recordset .MoveFirst .Fields("Status") = True cnn.Open KoneksiData 'membuka data base yang tertulis pada variable msql = "update sms set status=true where " & _ "index = " & .Fields("index") cnn.Execute (msql) cnn.Close tmrAdoRefresh.Enabled = True Call KirimSDS(.Fields("tujuan"), "sms(" & .Fields("Pengirim") & "):" & .Fields("isi")) End With Else StatusBar1.Panels(2).Text = "EOF" End If End Sub Private Sub tmrFilterSDS_Timer() filterSDS Text3.Text = Text3.Text & vbCrLf & "<<" & bufferSDS bufferSDS = "" Shape2.FillColor = &HC0& tmrFilterSDS.Enabled = False End Sub
37
Lampiran 2: Tampilan Program