Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 6

ALGORITMA + PROGRAM SMS

Setting port "115200,N,8,1"


Buka port
Terima
ATEI (mengetahui kesiapan device)
Looping sampai karakter buffer$ input mengandung ok, jika error kirim ATE1 lagi
Delay(1)
AT+CMGL=0
(membaca unread message)
Looping sampai karakter buffer1$ input mengandung ok, jika error kirim AT+CMGL=0 lagi
Buffer1$ displit berdasar Chr$(13)
Jika jumlah array split < 5 maka tidak ada pesan pada unread message
Jika jumlah array split >= 5 maka ada pesan pada unread message
AT+CMGL=1
(membaca read message)
Looping sampai karakter buffer1$ input mengandung ok, jika error kirim AT+CMGL=0 lagi
Buffer1$ displit berdasar Chr$(13)

>>ATEI
>>
>>OK
>>
>>
>> AT+CMGL=0
>>
>>OK
>>

>>AT+CMGL=1
>>
>>+CMGL: 1,1,,25
>>07912618485400F9240D91261807236345F400005001501182350005C8309BFD06 hello
>>+CMGL: 2,1,,28
>>07912618485400F9240D91261807236345F400005001501103110009417818B40E8BC372 apa kabar
>>
>>OK
>>

Jumlah arraynya= 8
Jum = (8 4) /2 = 2 (menentukan jumlah pesan)
Terima = terima + Jum
no(i) = splits(i * 2) (mengambil array ke 2,4,6,8,)
pdu(i) = splits(i * 2 + 1) (mengambil array ke 3,5,7,9,)
no(1) di split berdasar " "
diambil array pertama, menjadikan no(1) =1,1,,25

no(1)=+CMGL: 1,1,,25
pdu(1)=07912618485400F9240D91261807236345F400005001501182350005C8309BFD06
no(2)=+CMGL: 2,1,,28
pdu(2)=07912618485400F9240D91261807236345F400005001501103110009417818B40E8BC372

no(2) di split berdasar " "


diambil array pertama, menjadikan no(2) =2,1,,28
no(1) di split berdasar ","
diambil array ke o menjadikan no(1) =1
no(2) di split berdasar ","
diambil array ke o menjadikan no(2) =2
Delete SMS yang barusan dibaca oleh komputer
AT+CMGD=1
(menghapus sms ke-1 yang baru dibaca komputer)
Looping sampai OK
AT+CMGD=2
(menghapus sms ke-2 yang baru dibaca komputer)
Looping sampai OK
intPdu(1, 0) = 5 + 2 * hex2lng(Mid(pdu(i), 2, 2)) '1 + pj + smsc + 04
= 5 + 2 * hex2lng(Mid(07912618485400F9240D91261807236345F400005001501182350005C8309BFD06, 2, 2))
= 5 + 2 * hex2lng(07)
=5+2*7
= 19
intPdu(1, 1) = 4 + hex2lng(Mid(pdu(1), intPdu(1, 0) + 1, 2)) 'pj + 91/81 + dari
= 4 + hex2lng(Mid(07912618485400F9240D91261807236345F400005001501182350005C8309BFD06 , 19 + 1, 2))
= 4 + hex2lng(Mid(07912618485400F9240D91261807236345F400005001501182350005C8309BFD06 , 20, 2))
= 4 + hex2lng(0d)
= 4 + 13
= 17
jika intPdu(i, 1) Mod 2 = 1 maka intPdu(i, 1) = intPdu(i, 1) + 1 ===> ganjil jadi genap
intPdu(1, 1) = 18
tmpdu(1, 0) = Mid(pdu(1), intPdu(1, 0) + 3, intPdu(1, 1) - 2) '91/81 + dari
= Mid(07912618485400F9240D91261807236345F400005001501182350005C8309BFD06, 19 + 3, 18 - 2)
= Mid(07912618485400F9240D91261807236345F400005001501182350005C8309BFD06, 21, 16)
= 91261807236345F4
tmpdu(1, 1) = Mid(pdu(1), intPdu(1, 0) + intPdu(1, 1) + 5, 12) 'waktu
= Mid(07912618485400F9240D91261807236345F400005001501182350005C8309BFD06, 19 + 18 + 5, 12)
= Mid(07912618485400F9240D91261807236345F400005001501182350005C8309BFD06, 42, 12)
= 500150118235
intPdu(1, 2) = hex2lng(Mid(pdu(1), intPdu(1, 0) + intPdu(1, 1) + 19, 2)) 'pj isi

= hex2lng(Mid(07912618485400F9240D91261807236345F400005001501182350005C8309BFD06, 19 + 18 + 19, 2))


= hex2lng(Mid(07912618485400F9240D91261807236345F400005001501182350005C8309BFD06, 56, 2))
= hex2lng(05)
=5
tmpdu(1, 2) = Mid(pdu(1), intPdu(1, 0) + intPdu(1, 1) + 21, Len(pdu(1)) - intPdu(1, 0) - intPdu(1, 1) - 20)
= Mid(07912618485400F9240D91261807236345F400005001501182350005C8309BFD06, 19 + 18 + 21,
Len(07912618485400F9240D91261807236345F400005001501182350005C8309BFD06) - 19 - 18 - 20)3
= Mid(07912618485400F9240D91261807236345F400005001501182350005C8309BFD06,58,67 - 19 - 18 - 20)
= Mid(07912618485400F9240D91261807236345F400005001501182350005C8309BFD06,58,10)
= C8309BFD065
intPdu(1, 2) = hex2lng(Mid(pdu(i), intPdu(i, 0) + intPdu(i, 1) + 19, 2))
jika Len(tmpdu(1, 2)) < intPdu(1, 2) * 2 maka tmpdu(1, 2) = tmpdu(1, 2) & String$((intPdu(1, 2) * 2 - Len(tmpdu(1, 2))), "0")
Len(C8309BFD06) < 5 * 2
10 < 10 maka syarat tidak terpenuhi
no urut = no(i)
no pengirim = balikinNo(tmpdu(i, 0))
tanggal jam = str2dt(balikinDt(tmpdu(i, 1)))
isi sms = balikinIsi(tmpdu(i, 2))5

Kirim
ATE1 (ENTER)=== HASILNYA ATE1
OK
DELAY(1)
AT+CMGL=0 (ENTER) ==== HASILNYA AT+CMGL=0
OK
MEMBACA UNREAD SMS
DI SPLIT BERDASAR ENTER
JIKA JUMLAH ARRAY SPLIT < 5 MAKA KOSONG
JIKA JUMLAH ARRAY >=5 MAKA ADA ISINYA

AT+CMGL=1
+CMGL: 1,1,,25
07912618485400F9240D91261807236345F400005001501182350005C8309BFD06
' hellooo
+CMGL: 2,1,,28
07912618485400F9240D91261807236345F400005001501103110009417818B40E8BC372 . apa kabar
OK
arraynya = 8
jum = (8-4)/2 = 2
terima = terima + jum ==>2
no(1)=+CMGL: 1,1,,25
pdu(1)=07912618485400F9240D91261807236345F400005001501182350005C8309BFD06
no(2)=+CMGL: 2,1,,28

pdu(2)=07912618485400F9240D91261807236345F400005001501103110009417818B40E8BC372
no(1) di split berdasar " "
diambil array pertama dijadikan no(1) =1,1,,25
no(2) di split berdasar " "
diambil array pertama dijadikan no(2) =2,1,,28
no(1) di split berdasar ","
diambil array ke o dijadikan no(1) =1
no(2) di split berdasar ","
diambil array ke o dijadikan no(2) =2
delete sms yang sudah dibaca
AT+CMGD=1 (enter)
looping sampai ok
AT+CMGD=2 (enter)
looping sampai ok
intPdu(1, 0) = 5 + 2 * hex2lng(Mid(pdu(i), 2, 2)) '1 + pj + smsc + 04
= 5 + 2 * hex2lng(Mid(07912618485400F9240D91261807236345F400005001501182350005C8309BFD06, 2, 2))
= 5 + 2 * hex2lng(07)
=5+2*7
= 19
intPdu(1, 1) = 4 + hex2lng(Mid(pdu(1), intPdu(1, 0) + 1, 2)) 'pj + 91/81 + dari
= 4 + hex2lng(Mid(07912618485400F9240D91261807236345F400005001501182350005C8309BFD06 , 19 + 1, 2))
= 4 + hex2lng(Mid(07912618485400F9240D91261807236345F400005001501182350005C8309BFD06 , 20, 2))
= 4 + hex2lng(0d)
= 4 + 13
= 17
jika intPdu(i, 1) Mod 2 = 1 maka intPdu(i, 1) = intPdu(i, 1) + 1 ===> ganjil jadi genap
intPdu(1, 1) = 18
tmpdu(1, 0) = Mid(pdu(1), intPdu(1, 0) + 3, intPdu(1, 1) - 2) '91/81 + dari
= Mid(07912618485400F9240D91261807236345F400005001501182350005C8309BFD06, 19 + 3, 18 - 2)
= Mid(07912618485400F9240D91261807236345F400005001501182350005C8309BFD06, 21, 16)

= 91261807236345F4
tmpdu(1, 1) = Mid(pdu(1), intPdu(1, 0) + intPdu(1, 1) + 5, 12) 'waktu
= Mid(07912618485400F9240D91261807236345F400005001501182350005C8309BFD06, 19 + 18 + 5, 12)
= Mid(07912618485400F9240D91261807236345F400005001501182350005C8309BFD06, 42, 12)
= 500150118235
intPdu(1, 2) = hex2lng(Mid(pdu(1), intPdu(1, 0) + intPdu(1, 1) + 19, 2)) 'pj isi
= hex2lng(Mid(07912618485400F9240D91261807236345F400005001501182350005C8309BFD06, 19 + 18 + 19, 2))
= hex2lng(Mid(07912618485400F9240D91261807236345F400005001501182350005C8309BFD06, 56, 2))
= hex2lng(05)
=5
tmpdu(1, 2) = Mid(pdu(1), intPdu(1, 0) + intPdu(1, 1) + 21, Len(pdu(1)) - intPdu(1, 0) - intPdu(1, 1) - 20)
= Mid(07912618485400F9240D91261807236345F400005001501182350005C8309BFD06, 19 + 18 + 21,
Len(07912618485400F9240D91261807236345F400005001501182350005C8309BFD06) - 19 - 18 - 20)
= Mid(07912618485400F9240D91261807236345F400005001501182350005C8309BFD06,58,67 - 19 - 18 - 20)
= Mid(07912618485400F9240D91261807236345F400005001501182350005C8309BFD06,58,10)
= C8309BFD06

intPdu(1, 2) = hex2lng(Mid(pdu(i), intPdu(i, 0) + intPdu(i, 1) + 19, 2))


jika Len(tmpdu(1, 2)) < intPdu(1, 2) * 2 maka
Len(C8309BFD06) < 5 * 2
10 < 10 maka tmpdu(1, 2) = tmpdu(1, 2) & String$((intPdu(1, 2) * 2 - Len(tmpdu(1, 2))), "0")
no urut = no(i)
no pengirim = balikinNo(tmpdu(i, 0))
tanggal jam = str2dt(balikinDt(tmpdu(i, 1)))
isi sms = balikinIsi(tmpdu(i, 2))

You might also like