Rabu, 03 Februari 2010

windows mobile programming

Tempo hari saya sedang melihat-lihat fasilitas yang ada di visual studio 2005, cukup lengkap fasilitas yang disediakan, mulai dari programing desktop, mobile dan web. Untuk programing desktop sudah umum dipakai, dan yang sedikit agak membuat curious adalah programing mobile, yaitu mobile device untuk windows mobile dan smartphone. Dulu anggapan saya, membuat program di mobile device pastu susah nya minta ampun, tapi setelah membaca sedikit review di msdn, kok sepertinya mudah sekali ya.
Akhirnya saya mencoba sendiri membuat device mobile melalui visual studio 2005. Visual studio 2005 sudah menyediakan fitur untuk pemrograman device mobile, cukup dengan memilih device solutions, semua GUI pemrograman langsung dibuatkan oleh Visual Studio.
Saat melihat properties dan method yang ada, sepertinya mirip dengan di destop application tapi sedikit dikurangi beberapa fiturnya. Jika di desktop menggunakan .Net Framework maka di mobile device menggunakan .Net Compact Framework. Tidak ada perubahan dalam style programing.
Untuk debug dan deploy, visual studio 2005 menyediakan opsi yang sangat mudah, dalam bentuk simulator atau ke device langsung. Saya menggunakan O2 Xphone, dan tidak ada halangan yang berarti saat dilakukan debug langsung dari visual studio dan o2 Xphone, cenderung interaktif. Saya mencoba untuk membuat aplikasi via web untuk memasukkan data transaksi kedalam tabel, dan ternyata sangat mudah sekali dilakukan, sama persis dengan pemrograman berbasis web.

Sabtu, 02 Januari 2010

Aplikasi Identifikasi Peserta Munas ke 8 Partai GOLKAR

Jika sebelumnya memuat aplikasi identifikasi menggunakan simcard, saat munas golkar, aplikasi identifikasi yang dipakai pada tim sukses JK-Wiranto, dirubah menggunakan contactless Mifare.
Hal baru lagi buat saya, walau secara umum memiliki karakteristik yang mirip dengan simcard, memakai APDU untuk komunikasi rewrite data.
Bedanya di mifare, kalau simcard berupa transparent file-file seperti di hardisk, di mifare berupa blok blok sebesar 48 byte, kalau tidak salah, jadi setiap blok hanya bisa menampung data sebanyak 48 byte. Disini saya menggunakan mifare 1K, jadi 1K berisi sekitar 21 an blok yang bisa di write.
Jika di simcard menggunakan APDU untuk melakukan select file dan baca tulis cukup satu kali verifikasi read data dengan "a0b2", selama kartu masih menempel di card reader maka verifikasi akan terus valid jika awalnya valid. Dengan mifare, setiap hendak membaca blok data,selalu melakukan verifikasi baca tulis, jika tidak, dipastikan error.
Dalam tempo waktu 2 mingguan, software ini selesai dibuat ulang, yang lama waktu melakukan perubahan metode pembacaan verifikasi dengan simcard diganti dengan contactless.
Saat melakukan counting pemilihan ketua umum yang baru, software ini dipakai untuk verifikasi anggota, dan alhamdulillah tidak ada masalah.


Gambar software verikasi pemilih pada munas partai golkar

Aplikasi Identifikasi Anggota Tim Sukses JK-Wiranto

Kemarin waktu rame-ramenya kampanye pilpres, saya diminta membuat software identifikasi anggota tim sukses nasional yang akan bertemu dengan pak Jusuf Kalla, jadi semua orang yang akan bertemu dengan Pak JK harus melewati software identifikasi untuk mengetahui apakah orang tersebut bisa bertemu pak JK pada saat ini.
Software ini dibuat dengan menggunakan VB.NET, dan memakai simcard sebagai media identifikasinya. Semua orang yang akan bertamu ke kediaman pak JK harus menggunakan id card khusus yang mengandung simcard, untuk selanjutnya melakukan verifikasi. Software ini dibuat untuk mencegah adanya tamu-tamu yang tidak diinginkan, walau kadang dengan leluasa keluar masuk karena kedekatan dengan keluarga JK.
Software ini memiliki 2 buah modul, yaitu modul management id card dan modul verifikasi.
Modul management berisi data2 yang ditulis di simcard, status id card, dan verifikasi kunjungan pemakai ID Card. Dalam modul ini berupa entrian data2 yang diperlukan dan pembuatan laporan siapa saja yang berkunjung hari itu, selain itu software ini jg bisa membuat ID card dan mencetaknya di printer id card, dan tentu saja penulisan data ke dalam id card dilakukan melalui software ini. Data-data antara lain pemegang kartu, kartu2 yang sudah di terbitkan dan data2 penunjang lain di manipulasi melalui modul ini.
Modul verifikasi berupa tampilan untuk melakukan verifikasi pemegang kartu dan berfungsi sebagai buku tamu jika ada tamu yang ingin berkunjung tidak memiliki kartu. Software ini bersifat semi online, semua data di download secara manual dari server dalam interval tertentu melalui modem gprs. Data yang dikirimkan berupa xml, sehingga mudah dalam hal pengiriman dan ekstraksi data. Modul ini hanya memiliki satu buah tampilan yang bisa berfungsi sebagai verifikasi dan buku tamu. Verifikasi digunakan saat akan ada rapat atau pertemuan di kediaman, dan buku tamu untuk kunjungan tamu biasa diluar jadwal rapat atau pertemuan, baik kunjungan oleh pemegang id card atau pihak yang tidak memegang kartu. Selain mencatat data pribadi pihak luar yang tidak memiliki id card, wajah pengunjung juga di rekam melalui kamera digital.
Software ini diletakkan di kediaman wapres di jalan diponegoro selama pilpres berlangsung, sebenarnya software ini akan mengikuti kemanapun pak JK pergi, karena kondisi dan situasi yang tidak memungkin kan, akhirnya software ini hanya diletakkan di kediaman pak JK.

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.