Rabu, 30 Desember 2009

Mengirim SMS dengan SerialComm di .net

.net, paradigma pemrograman yang ditawarkan oleh microsoft dan banyak yang bilang merupakan tandingan JAVA, menyediakan banyak fitur2 dalam framework nya yang bisa dipakai secara mudah dan sederhana.
Disini kita mencoba mengirimkan sebuah sms melalui sebuah aplikasi sederhana dari .net melalui gprs modem. Di .net framework disediakan fasilitas serial comm untuk melakukan komunikasi data antara pc dan gprs modem. pada gprs modem, karena melawati comm, maka perintah2 yang dikirimkan harus diawali "AT", sehingga dikenal dengan AT Command. untuk command sendiri, biasanya bersifat spesifik untuk masing2 hardware, dan biasanya pihak manufaktur akan meluncurkan manual untuk memudahkan dalam pemrograman hardware lebih lanjut.
  • pertama, kita harus mendeklarasikan variabel serialcomm yang akan dipakai dalam pengiriman sms
private System.IO.Ports.SerialPort Comm1;
  • selanjutnya kita lakukan pengiriman perintah AT command untuk merubah mode command menjadi mode text, dengan menggunakan AT+CMGF=1, jika melakukan melalui hyperterminal, akan keluar OK jika perintah AT command sukses, tapi karena dilakukan dengan .net result nya tidak ada, kecuali kita membuat handler sendiri untuk mengetahui sukses dan tidaknya AT command.
Comm1.Write("AT+CMGF=1" + Convert.ToChar(13).ToString());
System.Threading.Thread.Sleep(100);
  • setelah itu, kita menggunakan AT+CMGS, untuk memberitahukan pada GPRS modem untuk mempersiapkan pengiriman sms ke no yang dituju.
Comm1.Write("AT+CMGS=\"" + MobNumber + "\"" + Convert.ToChar(13).ToString());

System.Threading.Thread.Sleep(100);
  • Lalu gunakan perintah Comm1.Write untuk menuliskan sms yang akan dikirimkan, pada akhir text sisipkan char(26), atau ctrl+ z kalau melalui hyper therminal.
Comm1.Write(MsgText + Convert.ToChar(26).ToString());

Disetiap AT command disisipkan perintah threading sleep(100), agar AT command berikutnya dikirimkan setelah 100 ms, respon dari GPRS modem butuh waktu dan tidak keluar error. Dibawah ini bentuk tampilan softwarenya.


Membaca ICCID

Dalam setiap simcard, ada satu tanda identifikasi khusus yang membedakan antar simcard, hal ini agar tidak terjadi dobel kartu, kalau hal ini terjadi, akan menyebabkan kekacauan dalam sistem billing GSM. selain menggunakan no telp, misalnya awal 0813 untuk simpati, 0856 untuk im3, ada identifikasi khusus yang unik yaitu ICCID, integrated circuit card ID, jika nomer nomer tadi bersifat nasional maka ICCID bersifat internasional dan permanent. No telpon mungkin bisa diganti, tapi ICCID akan tetap sama dan tidak bisa diganti.
Untuk membaca no ICCID, tiap vendor memiliki kunci khusus untuk membacanya, hal ini tentunya karena alasan keamanan. Dalam simcard, ICCID ini disimpan dalam file khusus yaitu file "2FE2", penamaan file dalam simcard menggunaan hexa.
Jadi untuk membaca no ICCID menggunakan apdu command berupa "A0A4000000022FE2", maka respond dari simcard akan berupa no ICCID berbentuk hexa, sehingga diperlukan konversi dari hexa ke decimal untuk mengetahui berapa no sebenarnya. Tapi sebelum melakukan command select file tersebut, diperlukan otorisasi dengan mengirimkan apdu command untuk otorisasi membaca file, kalo tidak akan keluar respon 9700 alias access denied atau akses ditolak.
untuk verifikasi membaca, apdu command nya "a0b20104" dan diikuti no verifikasi pembacaan ICCID, berupa 4 byte hexa.

Tune Up PC

Komputer yang kita pakai, tidak selamanya akan menunjukkan performa yang maksimal, dalam jangka waktu tertentu akan mengalami penurunan kemampuan. Hal ini bisa terlihat dari beberapa hal antara pemrosesan suatu dokumen tertentu berlangsung lebih lama dari biasanya, booting dan shutdown berlangsung lambat.
Jika performa komputer mulai menurun, hal ini perlu dilakukan sendikit perhatian agar performanya naik seperti sebelumnya. Biasanya untuk mendongkrak performa yang menurun, dilakukan upgrade hardware, misalnya menambah memori, mengganti prosesor atau mengganti vga on board dengan vga card. Menambah memori akan sedikit mendorong peningkatan performa, apa lagi vga on board diganti dengan vga card, performa makin meningkat. Penambahan memori akan menambah kemampuan pc dalam melakukan penyimpanan proses yang terjadi di sistem operasi. Penggantian VGA on board akan mengurangi beban cpu dalam pemrosesan grafis. Semua proses yang berhubungan dengan grafis akan dilakukan di vga card.
Tapi dalam jangka panjang dipastikan performa akan menurun lagi, hal ini tidak terlepas dari perilaku sistem operasi itu sendiri, proses baca tulis dalam hardisk oleh sistem operasi dilakukan secara acak dan tidak terurut, selama ada space, OS akan menulis data disitu, tidak perduli dengan urutan data yang akan ditulis. Misalnya secara virtual dokumen akan kelihatan terurut di layar monitor, tetapi secara hardware, byte byte data yang tertulis terpencar dimana2, sehingga membutuhkan waktu bagi hd untuk melakukan read write data. Selain perilaku menulis byte dimana saja tanpa peduli urutan dalam file, OS membuat file temporer untuk operasi pemrosesan data, sehingga timbul file2 temporer yang makin menumpuk dan membebani sistem.
Ada beberapa langkah yang perlu dilakukan agar performa komputer menjadi baik, dalam hal ini komputer dengan os windows xp :
  1. Melakukan disk clean up untuk membersihkan file2 yang tidak diperlukan, bisa diakses dari menu properties pada masing2 drive.
  2. melakukan defragmentasi data di hardisk dengan melalui defragment, bisa diakses melalui menu properties pada drive di windows.
  3. mengurangi opsi opsi yang akan dijalankan waktu startup windows dengan mengedit opsi-opsi yang ada melalui msconfig.
  4. menggunakan tools dari luar untuk melakukan perawatan pc, misal nya tuneup utilities, advance system total care dari iobit

Sabtu, 26 Desember 2009

XML

XML singkatan dari extensible markup language, adalah suatu paradigma baru dalam markup language, yang bersifat multiplatform dan independent. XML pada mulanya dikenal pada pemrograman berbasis web, digunakan untuk mengatur tampilan dan layout halaman di web. Tidak hanya digunakan untuk mengatur tampilan, XML juga digunakan untuk representasi data di halaman web. XML bisa digabungkan dengan HTML dan menghasilkan desain kreasi web yang dulu waktu hanya menggunakan HTML hampir mustahil dilakukan.
XML sangat disarankan oleh W3C atau world wide web consorsium dalam melakukan representasi data. XML memiliki markup markup seperti halnya HTML, tetapi tentunya dengan cakupan yang lebih luas. XML tidak hanya berkutat diseputar web programing tapi sudah merambah ke ranah pemrograman yang lain. Java dan .Net platform sangat mendukung XML, dan menyediakan bermacam fitur yang bisa dipakai dalam pemrograman xml.
XML bisa merepresentasikan table berbasis text secara sederhana, hampir semua jenis data didukung oleh XML, antara lain string, bool, integer, double sampai byte[] yang biasanya dipakai untuk menyimpan data biner. Dengan menggunakan XML, portabilitas data antar platform dapat terpenuhi dengan mudah, cukup dengan mendeskripsikan struktur table, dipastikan bisa digunakan di semua platform. Selain itu, XML jg mendukung relasi antar table dalam xml, tentunya dalam skala yang terbatas dan sederhana, tapi sudah lebih dari cukup untuk database sederhana.
Di .net untuk membuat suatu xml yang mengandung suatu data tertentu cukup dengan menggunakan method savexml pada object dataset, begitu pula sebaliknya jika ingin mengambil data yang ada pada xml, bisa dilakukan dengan method loadxml. Tidak ada rutin yang ribet, cukup dengan sintax sederhana. Hal ini karena XML sudah termasuk dalam fitur .net.

Minggu, 20 Desember 2009

Simcard

Simcard, setiap kali mendengar kata ini, dibenak saya pasti menuju bayangan ke kartu perdana milik telkomsel, xl atau indosat yang di jual bebas di toko-toko HP. Simcard sendiri digunakan sebagai salah satu bagian dari HP untuk melakukan komunikasi dengan jaringan selular yang ada. Tanpa adanya simcard, sebuah HP secanggih apapun fiturnya, serasa tidak berarti, karena fungsi dasar Hp itu sendiri untuk komunikasi. Simcard merupakan modul tersendiri dan terpisah dari HP, bisa dikatakan merupakan CPU yang berdiri sendiri. Didalam simcard terdapat OS, yang berfungsi dalam menjembatani komunikasi antara simcard dengan HP atau media lainnya. Selain OS, terdapat pula aplikasi-aplikasi kecil yang menunjang operasional sebuah simcard.
Simcard memiliki struktur file yang hampir sama dengan komputer biasa, ada OS, ada Folder dan ada File. Secara umum penulisannya menggunakan APDU, Aplication Protocol Data Unit dan menggunakan standard GSM. Jadi APDU yang berlaku pada satu macam simcard akan berlaku pula pada simcard yang lain.
Data-data yang tersimpan pada simcard berupa hexa, jadi apapun yang akan ditulis akan dikonversi dulu dalam bentuk hexa. Begitupula data yang dibaca dari dalam simcard. Operasi baca - tulis simcard memiliki 2 macam otorisasi, PIN untuk membaca data dan PIN untuk menulis data. Untuk membaca hanya memerlukan PIN baca, untuk menulis membutuh kan PIN baca dan PIN tulis. Kedua PIN tersebut terdefinisi saat melakukan perso data. Perso sendiri adalah proses yang hampir sama dengan format pada Hardisk. Penulisan OS, pembuatan Folder dan File yang diperlukan oleh Simcard untuk berkomunikasi dengan HP atau device lainnya.

Selasa, 24 November 2009

Smart Card untuk Sertifikat Nilai

[Tulisan ini berbeda dengan tulisan-tulisan bertemakan multipurpose smart card. Di sini, smart card hanya digunakan sebagai media sertifikat pendidikan, dan karena fungsinya tersebut, tidak disarankan untuk diintegrasikan dengan suatu multipurpose smart card.]

Sertifikat nilai UAN dari DepDikNas atau STTB dari sekolah, saat ini masih menggunakan bahan dasar kertas, dan bahkan ada yang datanya ditulis secara manual dengan tangan. Hal ini menyebabkan sertifikat tersebut rentan rusak secara fisik dan mudah dipalsukan atau diubah isinya, karena tidak ada perlindungan keautentikan sama sekali selain cap dan tandatangan pejabat yang berwenang, yang tentunya mudah juga untuk dipalsukan. Padahal, informasi yang ada pada sertifikat tersebut sangat penting, karena seringkali menjadi bagian dari persyaratan melanjutkan ke tingkat pendidikan yang lebih tinggi, mendapatkan beasiswa, atau juga mungkin untuk mendapatkan pekerjaan.

Oleh karena itu, bagaimana kalau smart card digunakan dalam pembuatan sertifikat tersebut. Foto & resume data/nilai dapat dicetak di bagian luar (seperti KTP atau SIM), sedangkan detailnya disimpan terenkripsi di dalam smart card.

Keuntungan yang didapat :

  1. Pencetakan & pengisian data dilakukan secara elektronik di Card Center lembaga resmi pemerintah. Lembaga ini satu-satunya yang mengetahui key maupun prosedur autentikasi untuk pengubahan data. Ini menutup peluang untuk melakukan manipulasi data ijazah.

  2. Secara fisik, sertifikat berbentuk smart card ini akan lebih kuat, mudah disimpan maupun dibawa.

  3. Karena pengisian dilakukan secara elektronik, bisa diintegrasikan dengan proses yang lain. Misalnya, dalam pembuatan sertifikat UAN, diintegrasikan dengan alat pemeriksa jawaban ujian, sehingga dapat mengurangi resiko kesalahan penulisan data.

  4. Pembacaan dan penyalinan data dapat dilakukan dengan smart card reader yang disediakan di sekolah atau lembaga-lembaga yang memerlukannya. Mudah, murah & akurat. Proses penyalinan data dan verifikasi nilai, misalnya pada seleksi penerimaan siswa baru yang berdasarkan nilai UAN, akan menjadi lebih cepat dan lebih sedikit peluang terjadinya kesalahan.

  5. Tidak diperlukan lagi legalisir ijazah, karena cukup dengan membawa foto copy smart card, kemudian datanya dicocokkan dengan yang tersimpan dalam smart card itu sendiri.

Tulisan ini saya kopi paste dari : http://www.creativesolutionsaward.com/ideaview.php?id=1341, tentunya dengan rekomendasi dari sang penulis, dan sang penulis adalah teman saya sendiri. Dia punya ide tentang sertifikat nilai dengan menggunakan smartcard, tidak jauh dari background dia sebagai seorang developer smartcard, spesialisasi di os development untuk smartcard. Mungkin secara praktisnya hal ini bisa mengurangi pemakaian kertas ijazah, ngk secara signifikan mungkin awalnya. Dan mungkin hal ini bisa menimbulkan efek domino ke bidang2 yang lain. Cukup dengan smartcard semua bisa terakomodasi.

Rabu, 28 Oktober 2009

Listing program algoritma enkripsi XOR

Private Function ascii2hex(ByVal ascii As String)
Dim intStrLen As Integer
Dim i As Integer
Dim strHex As String

ascii = Trim(ascii)
intStrLen = Len(ascii)
For i = 1 To intStrLen
strHex = strHex & " " & Hex(Asc(Mid(ascii, i, 1)))
Next
ascii2hex = strHex
End Function

Public Function hex2ascii(sText As String) As String
On Error Resume Next
Dim sBuff() As String, A As Long
Dim hasil As String
sBuff() = Split(sText, Space$(1))
For A = 0 To UBound(sBuff)
hasil = hasil & Chr$("&h" & sBuff(A))
Next A
hex2ascii = hasil
End Function

Public Function Hex2Binary(ByVal Data As String) As String
Dim Binary As String
Dim Pos As Integer

Hex2Binary = ""
For Pos = 1 To Len(Data)
Select Case Mid(Data, Pos, 1)
Case "0": Binary = "0000"
Case "1": Binary = "0001"
Case "2": Binary = "0010"
Case "3": Binary = "0011"
Case "4": Binary = "0100"
Case "5": Binary = "0101"
Case "6": Binary = "0110"
Case "7": Binary = "0111"
Case "8": Binary = "1000"
Case "9": Binary = "1001"
Case "A": Binary = "1010"
Case "B": Binary = "1011"
Case "C": Binary = "1100"
Case "D": Binary = "1101"
Case "E": Binary = "1110"
Case "F": Binary = "1111"
End Select
Hex2Binary = Hex2Binary & Binary
Next
End Function

Public Function Bin2Hex(ByVal Data As String) As String
Dim Hex As String
Dim Pos As Integer

Data = Right("00000000" & Data, 8)

Bin2Hex = ""
For Pos = 1 To 2
Select Case Mid(Data, Len(Data) + 1 - 4 * Pos, 4)
Case "0000": Hex = "0"
Case "0001": Hex = "1"
Case "0010": Hex = "2"
Case "0011": Hex = "3"
Case "0100": Hex = "4"
Case "0101": Hex = "5"
Case "0110": Hex = "6"
Case "0111": Hex = "7"
Case "1000": Hex = "8"
Case "1001": Hex = "9"
Case "1010": Hex = "A"
Case "1011": Hex = "B"
Case "1100": Hex = "C"
Case "1101": Hex = "D"
Case "1110": Hex = "E"
Case "1111": Hex = "F"
End Select
Bin2Hex = Hex & Bin2Hex
Next
End Function

Private Function CekBitWise(ByVal binary1 As String, ByVal binary2 As String) As String
Dim hasil As String
If binary1 = "0" And binary2 = "0" Then
hasil = "0"
End If
If binary1 = "1" And binary2 = "0" Then
hasil = "1"
End If
If binary1 = "0" And binary2 = "1" Then
hasil = "1"
End If
If binary1 = "1" And binary2 = "1" Then
hasil = "0"
End If
CekBitWise = hasil
End Function

Private Sub cmdDecode_Click()
Dim tmp1 As String
Dim key As String
Dim tmpBitwise As String
Dim kata As String
Dim hasil As String

key = ascii2hex(Me.txtKey.Text)
key = Hex2Binary(key)
kata = Me.txtEncoded.Text
For i = 1 To Len(kata)
tmp1 = ascii2hex(Mid(kata, i, 1))
tmp1 = Hex2Binary(tmp1)

Dim sBuff() As String
For A = 1 To 8
tmpBitwise = tmpBitwise + CekBitWise(Mid(key, A, 1), Mid(tmp1, A, 1))
Next
hasil = hasil + hex2ascii(Bin2Hex(tmpBitwise))

Next

Me.txtDecoded.Text = hasil
End Sub

Private Sub cmdEncode_Click()
Dim tmp1 As String
Dim key As String
Dim tmpBitwise As String
Dim kata As String
Dim hasil As String

key = ascii2hex(Me.txtKey.Text)
key = Hex2Binary(key)
kata = Me.txtKata.Text
For i = 1 To Len(kata)
tmp1 = ascii2hex(Mid(kata, i, 1))
tmp1 = Hex2Binary(tmp1)

Dim sBuff() As String
For A = 1 To 8
tmpBitwise = tmpBitwise + CekBitWise(Mid(key, A, 1), Mid(tmp1, A, 1))
Next
hasil = hasil + hex2ascii(Bin2Hex(tmpBitwise))

Next

Me.txtEncoded.Text = hasil
End Sub

Selasa, 29 September 2009

Telematika

Dalam benak saya, setiap kali saya mendengar istilah Telematika ini, angan-angan saya langsung menuju pada salah satu publik figur yang lumayan terkenal dengan teori "perbokepannya". Kata-kata "metadata" selalu menjadi senjata nya dalam mengenalisa suatu hasil karya digital. Entah karya tersebut berbentuk video atau foto.
Banyak skandal-skandal sex yang cukup menggegerkan di bongkar oleh sang ahli telematika, walaupun tidak sedikit yang meragukan kepakarannya dalam hal telematika.
Ada beberapa pendapat tentang telematika itu sendiri. Menurut yang saya baca di wikipedia, Telematika berasal dari dua kata, Telekomunikasi dan Informatika.
Telekomunikasi sendiri berarti suatu cara untuk melakukan komunikasi secara jarak jauh, baik berupa pengiriman data yang berupa data digital atau analog. Menurut susunan nya telekomunikasi merupakan akronim dari tele dan komunikasi. Tele ada penyampaian dalam jarak tertentu sedangkan komunikasi adalah pertukaran data dan informasi. Ada 4 komponen yang menyusun telekomunikasi, pengirim, data/informasi yang dikirim, media perantara dan penerima.
Informatika, banyak orang yang beranggapan kalau informatika ada hubungannya dengan matematika, karena adanya kandungan unsur "matika". Tetapi sebenarnya kedua bidang ini berbeda jauh. Matematika mempelajari tentang pemodelan suatu kasus dalam notasi2 khusus sedangkan informatika sendiri merupakan suatu ilmu yang mentransformasikan data/informasi dalam bentuk simbul2 yang digunakan dalam komputer (wikipedia).
Jadi secara umum bisa disimpulkan kalau telematika adalah suatu bidang keilmuan yang berhubungan dengan pengiriman, penyimpanan dan penerimaan suatu informasi dengan menggunakan media tertentu dalam hal ini komputer.