Cover ARI

advertisement
BAB II
LANDASAN TEORI
2.1
Detektor asap (Smoke Detector)
Detektor asap merupakan sebuah produk yang dirancang untuk sebuah
bangunan (rumah atau gedung), yang bekerja untuk mendeteksi kumpulankumpulan asap. . Agar manusia dapat mengetahui lebih cepat jika terjadi suatu
kebakaran, sehingga dapat meminimalisir kerugian-kerugian yang diakibatkan
dari kebakaran tersebut.
Detektor asap ini mempunyai beberapa sifat, diantaranya adalah:
1. Sangat sensitif terhadap asap.
2. Jika supply yang masuk salah polaritas, tidak akan rusak.
3. Dapat dihubungkan lebih dari satu detektor asap secara bersama-sama.
Pada gambar 2.1 menunjukkan salah satu bentuk dari beberapa jenis
detektor asap, yaitu Ionization Smoke Detector HC-202D.
Gambar 2.1 Ionization Smoke Detector HC-202D
7
88
Detektor asap yang digunakan dalam alat yang dibuat adalah jenis detektor
yang banyak dijual dipasaran, yaitu Ionization Smoke Detector (model : HC202D). Spesifikasi dari detektor asap tersebut adalah seperti tabel 2.1.
Tabel 2.1. Spesifikasi Smoke Detector
Model
Ionization Smoke Detector HC-202D
Tegangan nominal
12 volt (DC)
Batasan tegangan masukan
8 volt s/d 10 volt (DC)
Suhu normal ruangan
-15˚C s/d 50˚C
Ukuran
103 mm x 47 mm
Berat
140 gram
Detektor seperti ini cocok untuk instalasi di tempat-tempat seperti pintu
masuk tangga rumah, koridor, aula/ruangan lift, ruang dalam rumah, dan lain lain.
Skema rangkaian dalam pemasangan lebih dari satu detektor asap ditunjukkan
pada gambar 2.2 yang terhubung pada adaptor.
Gambar 2.2 Pemasangan Kawat Dengan LED
98
2.2
Mikrokontroler AVR
Mikrokontroler AVR ( Alf and Vegard’s Risc processor) standar memiliki
arsitektur 8 bit, dimana semua instruksi dikemas dalam kode 16 bit, dan sebagian
besar instruksi dieksekusi dalam 1 (satu) siklus clock. AVR berteknologi RISC
(Reduced Instruction Set Computing), sedangkan seri MCS 51 berteknologi CISC
(Complex Instruction Set Compunting). AVR dapat dikelompokkan menjadi
empat kelas,yaitu keluarga ATtiny, ATSOSxx, ATMega dan AT86RFxx. Pada
dasarnya, yang membedakan masing-masing kelas adalah memori, peripheral, dan
fungsinya.
Dalam pemilihan jenis mikrokontroler yang akan digunakan, pertimbangan
yang dipakai adalah sebagai berikut:
1.
Harga mikrokontroler.
2.
Ukuran memori mikrokontroler.
3.
Fitur-fitur yang diperlukan (ADC, timer, komunikasi USART dll).
4.
Kecepatan eksekusi instruksi.
5.
Dukungan software yang dapat digunakan.
6.
Kemudahan dalam pemrograman.
2.2.1 Fitur Mikrokontroler ATMega8535
Pada perancangan Sistem pelaporan otomatis ini digunakan AVR keluarga
ATMega yaitu ATMega8535. Mikrokontroler ATMega8535 memiliki fitur yang
cukup komplit dan memenuhi keseluruhan fitur yang diperlukan.
Fitur-fitur yang dimiliki oleh ATMega 8535 adalah sebagai berikut :
A.
Saluran I/O sebanyak 32 buah , yaitu Port A, Port B, Port C dan Port D,
yang masing-masing terdiri dari 8 pin.
B.
ADC (Analog to Digital Converter) 10 bit sebanyak 8 chanel.
C.
130 instruksi andal yang umumnya hanya membutuhkan 1 siklus clock.
D.
Dua buah timer/counter 8 bit, satu buah timer counter 16 bit.
E.
Internal SRAM sebesar 512 Byte dan 512 Byte internal EEPROM
F.
Memori Flash sebesar 8 KB, yang memiliki fasilitas In-System
Programming.
108
G.
Unit interupsi internal dan eksternal.
H.
Programming lock, fasilitas untuk mengamankan kode program.
I.
EEPROM sebesar 512 byte yang dapat deprogram saat operasi.
J.
Antarmuka komparator analog.
K.
4 Channel PWM.
L.
32x8 bit general purpose register.
M.
Hampir mencapai 16 MIPS pada Kristal 16 MHz.
N.
Port USART programmable, TWI dan I2C untuk komunikasi serial.
2.2.2 Konfigurasi PIN ATMega8535
IC Mikrokontroler ATMega 8535, merupaka sebuah IC yang memiliki 40
pin/kaki dan memiliki fungsi-fungsi yang berbeda-beda. Konfigurasi pin
ATMega8535 terlihat pada gambar 2.3.
Gambar 2.3 Konfigurasi pin ATMega8535
Gambar 2.3 ATMega 8535
118
Secara fungsional pin-pin ATMega8535 adalah sebagai berikut :
A.
VCC merupakan pin masukan poritif dari catu daya. Setiap peralatan
elektronika digital memerlukan sumber tegangan yang umumnya sebesar
5V.
B.
GND sebagai pin ground.
C.
Port A ( PA0 – PA7 ) merupakan pin I/O dua arah dan dapat difungsikan
juga sebagai pin masukkan ADC 8 chanel.
D.
Port B ( PB0 – PB7 ) merupakan pin I/O dua arah dan dapat difungsikan
secara individu sebagai berikut:
1.
PB7: SCK (SPI Bus Serial Clock)
2.
PB6: MISO (Master Input Slave Output)
3.
PB5: MOSI (Master Output Slave Input)
4.
PB4: SS (Select Input)
5.
PB3: AIN1 (Analog Comparator Negatif Input)
OC0 (Output Compare Timer/Counter 0)
6.
PB2: AIN0 (Analog Comparator Positif Input)
INT2 (External Interrupt 2 Input)
7.
PB1: T1 (Timer/Counter 1 External Counter Input)
8.
PB0: T0 (Timer/Counter 0 External Counter Input)
XCK (USART External Clock Input/Output)
E.
Port C (PC0 – PC7) merupakan pin I/O dua arah dan 4 bit diantaranya bisa
difungsikan secara khusus, yaitu :
1.
PD7: OC2 (Output Compare Timer/Counter 2)
2.
PD6: ICPI (Timer/Counter 1 Input Capture)
3.
PD5: OC1A (Output Compare A Timer/Counter 1)
4.
PD4: OC1B (Output Compare B Timer/Counter 1)
5.
PD3: INT1 (External Interrupt 1 Input)
6.
PD2: INT0 (External Interrupt 0 Input)
7.
PD1: TXD (USART Transmit)
8.
PD0: RXD (USART Receive)
128
F.
Port D (PD0 – PD7) merupakan pin I/O dua arah, juga dapat difungsikan
secara individu sebagai berikut:
1.
PC7: TOSC2 (Timer Oscilator 2)
2.
PC6: TOSC1 (Timer Oscilator 1)
3.
PC1: SDA (Serial Data Input/Output, I2C)
4.
PC0: SCL (Serial Clock)
G.
Reset merupakan pin yang digunakan untuk mereset mikrokontroler.
H.
XTAL 1 dan XTAL 2 sebagai pin masukkan clock eksternal. Suatu
mikrokontroler membutuhkan sumber detak agar dapat mengeksekusi
instruksi yang ada di memori.
I.
AREF sebagai pin masukkan tegangan referensi.
J.
AVCC merupakan catu daya yang digunakan untuk masukkan analog ADC
yang terhubung ke Port A.
2.2.3 Arsitektur ATMega8535
Mikrokontroler ATMega memiliki arsitektur Harvard, yaitu memisahkan
memori untuk kode program dan memori untuk data, sehingga dapat
memaksimalkan unjuk kerja dan paralelisme.
Program
32 General Purpose
Memory
Working registers
Program
ALU
Internal peripheral
Counter
SRAM
Gambar 2.4 Blok arsitektur mikrokontroler AVR
138
ALU (Arithmetic Logic Unit ) adalah prosessor yang bertugas mengekseskusi
kode program yang dirujuk oleh program counter.
Program memori adalah memori Flash PEROM yang bertugas menyimpan
program yang kita buat dalam bentuk kode-kode program yang telah di-compile
berupa bilangan heksa atau biner.
Program Counter (PC) adalah komponen yang berstugas menunjukkan ke ALU
alamat program yang harus diterjemahkan kode programnya dan dieksekusi.
32 General Purpose Working Register (GPR)
adalah register kerja yang
mempunyai ruangan 8 bit yang bertugas sebagai tempat ALU mengeksekusi
kode-kode program,setiap instruksi dalam ALU melibatkan GPR.
Static Random Access Memory (SRAM) adalah memori yang bertugas
menyimpan data sementara sama seperti RAM pada umumnya, mempunyai
alamat dan ruangan data.
Internal Peripheral adalah peralatan internal yang ada dalam mikrokontroler
seperti saluran I/O, interupsi eksternal, timer/counter, USART dan lain-lain.
Berbeda dengan keluarga MCS 51, AVR ATMega mempunyai osilator internal
yang terbuat dari osilator RC yang frekuensi defaultnya 1 MHz, untuk
mengubahnya maka harus dilakukan pengaturan fuse bit CKSEL dalam perangkat
lunak downloader-nya.
Tabel 2.2 CKSEL pada downloader
Fuse bit CKSEL
0001
0010
0011
0100
Nominal frekuensi
1
2
4
8
2.2.4 USART
Universal Synchronous Asynchronous Receiver and Transmitter (USART)
merupakan salah satu mode komunikasi serial yang didukung oleh mikrokontroler
ATMega8535 selain TWI dan I2C. USART memungkinkan proses pengiriman
dan penerimaan data secara sinkron maupun asinkron, sehingga pasti kompatibel
14 8
dengan UART. Pengaturan mode komunikasi baik secara sinkron maupun
asinkron pada ATMega8535 adalah sama, perbedaannya hanya pada sumber
clock-nya saja.
Untuk mengatur mode komunikasi secara serial, dilakukan pada registerregister UDR, UCSRA, UCSRB, UCSRC, UBRRH dan UBRRL.
A. USART Data Register (UDR)
Digunakan sebagai buffer untuk menyimpan data baik yang akan dikirimkan
(TXB) maupun yang diterima(RXB).
B. USART Control and Status Register A (UCSRA)
USSRA Terdiri dari 8 bit, yaitu:
C.
1.
Bit 7 (RXC) digunakan untuk mengetahui proses penerimaan data.
2.
Bit 6 (TXC) digunakan untuk mengetahui proses pengiriman data.
3.
Bit 5 (UDRE) untuk mengetahui status isi register UDR.
4.
Bit 4 (Framing Error) untuk mengetahui adanya frame error.
5.
Bir 3 (Data OveRun) untuk mengetahui kondisi data overrun.
6.
Bit 2 (Parity Error) untuk mengetahui terjadinya parity error.
7.
Bit 1 (U2X) untuk membuat kecepatan transfer jadi 2 kali lipat.
8.
Bit 0 (MPCM) digunakan pada mode komunikasi multi-prosesor.
USART Control and Status Register B (UCSRB)
USSRB Terdiri dari 8 bit, yaitu:
1.
Bit 7 (RXCIE) digunakan untuk mengaktifkan interupsi Receive
Complete Interupt.
2.
Bit 6 (TXCIE) digunakan untuk mengaktifkan interupsi Transmit
Complete Interrupt.
3.
Bit 5 (UDRIE) untuk mengaktifkan interupsi UDR Empty Interrupt.
4.
Bit 4 (RXEN) untuk mengaktifkan USART Receiver.
5.
Bit 3 (TXEN) untuk mengaktifkan USART Transmitter.
6.
Bit 2 (UCSZ2) ,bersama dengan UCSZ1 dan UCSZ0 pada register
UCSRC menentukan ukuran data dalam satu frame.
15 8
7.
Bit 1 (RX8) , RX8 adalah bit ke 9 dari data/karakter yang diterima jika
menggunakan ukuran 9 bit.
8.
Bit 0 (TX8), TX8 adalah bit ke 9 dari data/karakter yang dikirim jika
menggunakan ukuran 9 bit.
D.
USART Control and Status Register C (UCSRC)
USSRC Terdiri dari 8 bit, yaitu:
1.
Bit 7 (URSEL) ,UCSRC dan UBBRH menempati lokasi register yang
sama, bit URSEL bertugas menentukan register mana yang akan
menempati.
2.
Bit 6 (UMSEL) digunakan untuk menentukan mode komunikasi
USART.
3.
Bit 5 dan 4 (UMP1&0) untuk menentukan mode paritas.
4.
Bit 3 (USBS) untuk menentukan jumlah stop bit dalam setiap frame.
5.
Bit 2 dan 1 (UCSZ1 dan 0) bersama UCSZ2 di UCSRB menentukan
ukuran data yang dipakai dalam komunikasi.
6.
Bit 0 (UCPOL) untuk mengatur mode transisi clock pada pengambilan
data yang diterima dan pengubahan data uang dikirimkan.
E. USART Baud Rate Register (UBRRH-UBRRL)
Merupakan register 16 bit terdiri dari 1 bit URSEL, 3 bit tidak terpakai, 4 bit
UBRRH dan 8 bit UBRRL.
2.2.5 Analog to Digital Converter (ADC)
Mikrokontroler ATMega8535 memiliki fasilitas Analog to Digital
Converter built in dalam chipnya. Dengan adanya ADC internal ini, kita tidak
direpotkan dengan kompleksitas hardware saat membutuhkan pengubahan sinyal
dari analog ke digital. ADC ATMega8535 memiliki resolusi ADC 10 bit dengan 8
chanel input yang bekerja dengan teknik successive approximation. Rangkaian
internal ADC ini memiliki catu daya tersendiri yaitu pin AVCC.Untuk mengatur
mode dan cara kerja ADC dilakukan melalui register ADMUX, ADCSRA,
ADCL, ADCH, SFIOR.
A.
ADC Multiplexer Selection Register (ADMUX)
168
ADMUX terdiri dari 8 bit, yaitu:
1.
Bit 7 dan 6 (REFS1 dan REFS0) digunakan untuk menentukan
tegangan referensi dari ADC.seperti terlihat dari tabel berikut:
Tabel 2.3 Tegangan Referensi ADC
2.
No.
REFS1
REFS0
Tegangan Referensi
1
2
3
4
0
0
1
1
0
1
0
1
Pin AREF
Pin AVCC, pin AREF diberi
Tidak digunakan
Internal 2.56 V,pin AREF diberi
Bit 5 (ADLAR) digunakan untuk mengatur format penyimpanan data
ADC pada register ADCH dan ADCL.
3.
B.
Bit 0 s.d 3 digunakan untuk menentukan pin masukan analog ADC.
ADC Control dan Status Register A (ADCSRA)
ADCSRA terdiri dari 8 bit,yaitu:
1.
Bit 7 (ADEN) digunakan untuk mengaktifkan fasilitas ADC.
2.
Bit 6 (ADSC) digunakan untuk memulai konversi.
3.
Bit 5 (ADATE) digunakan untuk mengaktifkan pemicu proses
konversi ADC sesuai bit ADTS pada register SFIOR.
4.
Bit 4 (ADIF), bit ini akan bernilai ‘1’ bila proses konversi ADC
selesai.
5.
Bit 3 (ADIE) digunakan untuk mengaktifkan interupsi ADC.
6.
Bit 0 s.d 2 (ADPS) digunakan untuk menentukan faktor pembagi
frekuensi Kristal dan hasilnya digunakan untuk frekuensi clock ADC.
C.
ADC Data Register (ADCH-ADCL)
Register ini digunakan untuk mengyimpan data 10 bit hasil konversi ADC.
Disamping 3 register diatas, untuk keperluan pemakaian ADC perlu dilakukan
setting pada register SFIOR bit 5 sampai bit 7 (ADTS0 s.d ADTS2).
17
8
2.3
Komunikasi Serial
Komunikasi serial adalah salah satu metode komunikasi data di mana hanya
satu bit data yang dikirimkan melalui seuntai kabel pada suatu waktu tertentu.
Pada komputer pribadi, komunikasi serial digunakan misalnya pada standar
komunikasi yang menghubungkan periferal eksternal seperti modem, printer
dengan komputer. Pada PC umumnya memiliki dua jenis konektor, yaitu konektor
dengan 9 pin (DB9) dan konektor dengan 25 pin (DB25).
Gambar 2.5 Konfigurasi pin pada DB9
Tabel 2.4 Nama-nama pin DB 9
No. pin
1
2
3
4
5
6
7
8
9
Nama
DCD
RxD
TxD
DTR
GND
DSR
RST
CTS
RI
Arah
In
In
Out
Out
In
Out
In
In
Keterangan
Data Carrier Detect/Receiver Line Signal
Receiver Data
Transmitter Data
Data Terminal Ready
Data Set Ready
Request To Send
Clear To Send
Ring Indicator
Dalam proses transfer data secara serial, RS232 memerlukan sebuah DCE
(Data Component Equipment) dan DTE (Data Terminal Equiment) pada masingmasing terminal. Pengiriman data dilakukan bit per bit. Kecepatan transfer data
dikenal dengan istilah baudrate. Pada komunikasi serial, pada dasarnya yang
dikirimkan adalah tegangan yang kemudian dibaca dalam bit. Untuk bit dengan
logika 1, maka level tegangannya adalah -3 V sampai dengan -25 V, sedangkan
1818
8
untuk bit dengan logika 0, level tegangannya adalah 3 V sampai dengan 25 V.
Komunikasi serial ada dua macam, yaitu :
1.
Synchronous
Merupakan tipe komunikasi dimana hanya ada satu pihak pengirim atau
penerima) yang menghasilkan clock dan mengirimkan clock tersebut bersamasama dengan data.
2.
Asynchronous
komunikasi dimana kedua pihak (pengirim dan penerima) masing-masing
menghasilkan clock, namun hanya data yang ditransmisikan (tanpa clock). Agar
data yang dikirim sama dengan data yang diterima, maka kedua frekuensi clock
harus sama dan harus terdapat sinkronisasi. Setelah adanya sinkronisasi, pengirim
akan mengirimkan datanya sesuai dengan frekuensi clock pengirim dan penerima
akan membaca data sesuai dengan frekuensi clock penerima.
2.4
Short Message service (SMS)
Dalam sistem SMS, mekanisme utama yang dilakukan dalam sistem adalah
melakukan pengiriman short message dari satu terminal ke terminal yang lain. Hal
ini dapat dilakukan berkat adanya sebuah entitas dalam sistem SMS yang bernama
Short Message Service Center (SMSC). SMSC merupakan sebuah perangkat yang
melakukan tugas store and forward trafic short message seperti yang ditunjukan
pada gambar berikut :
Gambar 2.6 Mekanisme pengiriman SMS
19
8
Ada empat komponen utama yang memungkinkan terjadinya pengiriman
dan penerimaan pesan SMS, yaitu :
A.
Base Transceiver Station (BTS)
BTS adalah stasiun seluler yang menjembatani hubungan perangkat telepon
selular dengan Mobile Switching Center (MSC) dan akhirnya dengan perangkat
telepon selular lain berupa suara dan data.
B.
Mobile Switching Center (MSC)
MSC merupakan perangkat yang melakukan fungsi pengendalian dan
pengaturan jaringan selular. Secara otomatis, MSC melakukan koordinasi dan
mengendalikan setup panggilan dan rute antar telepon selular di suatu area yang
telah ditentukan.
C.
Short Message Service Center (SMSC)
SMSC bertindak sebagai penyimpan dan penyampai pesan pendek (SMS).
D.
Gateway Mobile Switching Center (GMSC)
GMSC adalah MSC yang memiliki kemampuan menerima pesan singkat
dari SMSC. SMSC berkomunikasi dengan jaringan TCP/IP melalui GMSC.
Pengiriman pesan SMS secara store and forward yaitu pengirim SMS
memasukkan pesan SMS dan nomor tujuan dan kemudian mengirimkannya
(store) ke server SMS (SMS Center) yang kemudian bertanggung jawab
mengirimkan pesan SMS tersebut (forward) ke nomor telepon tujuan. Didalamnya
termasuk penentuan atau pencarian rute tujuan akhir dari short message dari
berbagai sumber seperti Voice Mail System (VMS), Web-based messaging, E-mail
Integration, External Short Messaging Entities (ESME), dan lain-lain.
20
8
2.5
2.5.1
Bahasa Pemograman
Bahasa C
Penggunaan sebuah sistem mikrokontroler AVR mengunakan
sebuah software yang digunakan untuk menulis program, kompilasi,
simulasi dan download program ke IC mikrokontroler AVR. Software
yang digunakan adalah CodeVision AVR dalam bahasa C, Codevision
memilki IDE (integrated Development Environment) yang lengkap, di
mana penulisan program, compile, linkdan download program ke chip
AVR dapat dilakukan oleh CodeVision, selain itu CodeVision juga
memiliki fasilitasterminal, yaitu digunakan untuk melakukan komunikasi
serial dengan mikrokontroler yang sudah deprogram. Proses download ke
Ic mikrokontroler dapat menggunakan sistem download secara ISP(InSystem Programming).
2.5.2
Header
Di dalam fungsi header berisi include file (.hex), yaitu library
(pustaka) yang akan digunakan dalam pemograman. File-file ini
mempunyai cirri yaitu namanya diakhiri dengan ekstensi .h. Misalnya
pada program #include <stdio.h> menyatakan pada kompiler agar
membaca file bernama stdio.h saat pelaksanaan kompilasi. Bentuk umum
#include:
Contoh:
#include <delay.h>
#include <delay.h>
#include <stdio.h>
Prepocessor (#): Digunakan untuk memasukkan (include) text dari
file lain, mendefinisikan macro yang dapat mengurangi beban kerja
pemograman dan meningkatkan legibility source code (mudah dibaca).
Bentuk dari (#include <nama file>) memberikan penjelasan pencarian file
21
8
dilakukan pada direktori khusus (direktori file). Bentuk lain dari header
(#include “nama file”)
mengisyaratkan bahwa pencarian file terlebih
dahulu dilakukan pada direktori aktif tempat sumber program dan bila
tidak ditemukan pencarian akan dilanjutkan pada direktori lainnya yang
sesuai dengan perintah pada sistem operasi.
2.5.3
Tipe Data
Umumnya data yang digunakan didalam bahasa pemograman
komputer dibedakan menjadi data nilai numerik dan nilai karakter. Tujuan
data menjadi efisien dan efektif digunakan bahasa-bahasa pemograman
komputer yang membedakan data kedalam beberapa tipe. Dalam bahasa C
tersedia lima tipe data dasar, yaitu tipe data interger (nilai numeric bulat
yang dideklarasikan dengan int), floatingpoint (nilai numerik pecahan
ketetapan tunggal yang dideklarasikan dengan float), double-precision
(nilai numerik pecahan ketetapan ganda yang dideklarasikan dengan
double).
22
8
Tabel 2.5 Tipe-tipe data dasar
Tipe
Ukuran (Bit)
Range
Bit
1
0,1
Char
8
-128 to 127
Unsigned Char
8
0 to 255
Signed Char
8
-128 to 127
Int
16
-32768 to 32767
Short int
16
-32768 to 32767
Unsigned int
16
0 to 65535
Signed int
16
-32768 to 32767
Long int
32
-2147483648 to 2147483647
Unsigned long int
32
0 to 4294967295
Signed long int
32
-2147483648 to 2147483647
Float
32
±1.175e-38 to ±3.402e38
double
32
±1.175e-38 to ±3.402e38
Karakter (dideklarasikan dengan char), dan kosong (dideklarasikan dengan
void). Int,float, double dan char dapat dikombinasikan dengan pengubah
(modifier) signed, unsigned, long dan short. Hasil dari kombinasi tipe data ini
dapat dilihat pada tabel.
23
8
2.5.4
SMS PDU
PDU Sebagai Bahasa SMS dan Bagian – Bagiannya :
Data yang mengalir ke atau dari SMS-Center harus berbentuk PDU
(Protocol Data Unit). PDU berisi bilangan-bilangan heksadesimal yang
mencerminkan bahasa I/O. PDU terdiri atas beberapa Header. Header untuk kirim
SMS ke SMS-Center berbeda dengan SMS yang diterima dari SMS-Center.
Maksud dari bilangan heksadesimal adalah bilangan yang terdiri atas
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.
PDU untuk mengirim SMS terdiri atas :
1. Nomor SMS-Center
Header pertama ini terbagi atas tiga subheader, yaitu :
•
Jumlah pasangan heksadesimal SMS-Center dalam bilangan heksa. Daftar
SMS Center yang ada di Indonesia diperlihatkan dalam tabel dibawah ini.
•
National/International Code
•
Untuk National, kode subheader-nya yaitu 81
•
Untuk International, kode subheader-nya yaitu 91
•
No SMS-Centernya sendiri, dalam pasangan heksa dibalikbalik. Jika
tertinggal satu angka heksa yang tidak memiliki pasangan, angka tersebut
akan dipasangkan dengan huruf F didepannya.
24
8
Tabel 2. 6 Nomor SMS-Center Operator Seluler Di Indonesia
No Operator Seluller SMS-Center
Kode PDU
1
Telkomsel
62811000000
07912618010000F
2
Satelindo
62816125
059126181652
3
Exelcom
6218445009
07912618485400F
4
Indosat-M3
62855000000
07912658050000F
5
Starone
62811000000
079126180100
2. Tipe SMS
•
Untuk SEND tipe SMS = 1. Jadi bilangan heksanya adalah 01
3. Nomor Referensi SMS
•
Nomor referensi ini dibiarkan dulu 0, jadi bilangan heksanya adalah
00. Nanti akan diberikan sebuah nomor referensi otomatis oleh
ponsel/alat SMS-gateway.
4. Nomor Ponsel Penerima
•
Sama seperti cara menulis PDU Header untuk SMS – Center, header
ini juga terbagi atas tiga bagian, sebagai berikut :
•
• Jumlah bilangan desimal nomor ponsel yang dituju dalam bilangan
heksa.
•
• National/International Code.
•
-
Untuk Nasional, kode subheader-nya 81
•
-
Untuk Internasional, kode subheader-nya 91
•
• Nomor ponsel yang dituju, dalam pasangan heksa dibalik-balik.
25
8
Jika tertinggal satu angka heksa yang tidak memilikipasangan, angka tersebut
dipasangkan dengan huruf F didepannya.
Contoh :
Untuk nomor ponsel yang dituju = 628x32x7333x dapat ditulis dengan cara
sebagai berikut :
628132x7333x diubah menjadi :
1. 0C : ada 12 angka
2. 91
3. 26-18-23-7x-33-x3
Digabung menjadi : 0C9126x8237x33x3 (x ialah samaran nomer)
Bentuk SMS, antara lain :
•
00 : dikirim sebagai SMS
•
01 : dikirim sebagai telex
•
02 : dikirim sebagai fax
Dalam hal ini, untuk mengirim dalam bentuk SMS tentu saja dipakai 00
5. Skema Encoding Data I/O
Ada dua skema, yaitu :
1. Skema 7 bit : ditandai dengan angka 00
2. Skema 8 bit : ditandai dengan angka lebih besar dari 0
Kebanyakan ponsel/SMS Gateway yang ada dipasaran sekarang menggunakan
skema 7 bit sehingga digunakan 00.
26
8
6. Jangka Waktu Sebelum SMS Expired
Agar SMS pasti terkirim sampai ke ponsel penerima, sebaiknya tidak diberi
batasan waktu validnya.
Isi SMS
Header ini terdiri atas dua subheader, yaitu :
a. Panjang isi (jumlah huruf dari isi)
Misalnya untuk kata “hello” : ada 5 huruf : 05
b. Isi SMS berupa pasangan bilangan heksa
Untuk ponsel/SMS Gateway berskema encoding 7 bit, jika mengetikan
suatu huruf dari keypad-nya, berarti kita telah membuat 7 angka I/O
berturutan.Ada dua langkah untuk mengkonversikan isi SMS, yaitu :
1. Mengubahnya menjadi kode 7 bit.
2. Langkah kedua: mengubah kode 7 bit menjadi 8 bit yang diwakili oleh
pasangan heksa.
Oleh karena total 7 bit x 5 huruf = 35 bit, sedangkan yang kita perlukan
adalah 8 bit x 5 huruf = 40 bit, maka diperlukan 5 bit dummy yang diisi dengan
bilangan 0. Setiap 8 bit mewakili suatu pasangan heksa. Tiap 4 bit. mewakili satu
angka heksa, tentu saja karena secara logika 24 = 16. Dengan demikian kata
“hello” hasil konversinya menjadi E8329BFD06
Ke delapan header diatas digabungkan agar membentuk suatu format PDU
yang siap dikirim. Misal untuk mengirimkan kata hello ke ponsel nomor
6285882707228 lewat SMS-Center Exelcom, tanpa membatasi jangka waktu
valid, maka header PDU lengkapnya:
27
8
07912618485400F901000C9126x8237x33x3000005E8329BFD06
2.5.5
Pernyataan Bahasa C
2.5.5.1 Percabangan
Perintah
if
dan
if…else….dilakukan
untuk
melakukan
operasi
percabangan bersyarat. Pernyataan if mempunyai bentuk umum :
if (kondisi) {
//pernyataan
};
Contoh:
if (a<0x08){
PORTC=0x50;
};
Dalam contoh ini PORTC akan dikirim data 0x50 jika nilai a lebih kecil
0x08. Bentuk ini menyatakan , Jika kondisi yang diseleksi adalah benar (bernilai
logika = 1), maka pernyataan yang mengikutinya akan diproses. Sebaliknya, jika
kondisi yang diseleksi adalah tidak benar (bernilai logika = 0), maka pernyataan
yang mengikutinya tidak akan diproses. Mengenai kodisi harus ditulis diantara
tanda kurung, sedangkan pernyataan dapat berupa sebuah pernyataan tunggal,
pernyataan majemuk atau pernyataan kosong. Sedangkan Pernyataan if-else
memiliki bentuk :
if (kondisi) {
//pernyataan a
}
28
8
else {
//pernyataan b
};
Artinya adalah pernyataan a akan dijalankan jika kondisi terpenuhi dan
pernyataan b akan dijalankan jika kondisi tidak terpenuhi. dijalankan. Masingmasing pernyataan-a dan pernyataan-b dapat berupa sebuah pernyataan tunggal,
pernyataan majemuk ataupun pernyataan kosong.
Perintah percabangan if….else..dapat digantikan dengan perintah switch.
Dalam pernyataan switch, sebuah variabel secara berurutan diuji oleh beberapa
konstanta bilangan bulat atau konstanta karakter. Sintaks perintah switch dapat
ditulis sebagai berikut:
Switch(variabel)
{
case konstanta_1: statement; break;
case konstanta_2: statement; break;
case konstanta_3: statement; break;
default:
statement;
}
2.5.5.2 Looping (Pengulangan)
Looping adalah perulangan satu atau beberapa perintah sampai mencapai
keadaan tertentu. Ada tiga perintah looping, yaitu: for …., dan do..while….
sintaks loop for dapat dituliskan sebagai berikut:
29
8
for (untuk pengulangan yang melakukan proses increment)
for(nama_variabel=nilai_awal;syarat_loop;nama_variabel++)
}
statement_yang_diulang; } // untuk pengulangan yang melakukan proses
decrement.
syarat_loop adalah pernyataan yang menyatakan syarat berhentinya
pengulangan; biasanya berkaitan dengan variabel kontrol, nama_variabel++ dan
nama_variabel--, menyatakan proses increment dan proses decrement pada
variabel kontrol. Sedangkan perintah while dapat melakukan looping apabila
persyaratannya benar. Sintaks perintah while dapat dituliskan sebagai berikut:
nama_variabel=nilai_awal;
while(syarat_loop)
{
Statement_yang_akan_diulang:
Nama_variabel++;
}
Perintah while terlebih dahulu melakukan pengujian persyaratan sebelum
melakukan looping. Perulangan yang belum diketahui berapa kali akan diulangi
maka dapat menggunakan while atau do while.Pada pernyatan while, pemeriksaan
terhadap loop dilakukan di bagian awal (sebelum tubuh loop). Pernyataan while
akan diulangi terus menerus selama kondisi bernilai benar, jika kondisinya salah
maka perulangan dianggap selesai.
nama_variabel=nilai_awal;
while(syarat_loop)
30
8
{
Statement_yang_akan_diulang:
Nama_variabel++;
}
While(syarat_loop)
Download