19 September 2013

Sinkronisasi Data SMSGatway (2)

Tulisan ini adalah lanjutan dari Sinkronisasi Data Smsgateway sebelumnya.

Tujuannya adalah membangun sistem agar publik dapat mengakses hasil perolehan suara, tanpa harus mengakses langsung ke server smsgateway.

Untuk membangun sistem seperti itu, skenario sinkronisasi data yang akan dilakukan adalah sbb:


  1. SMSGateway mengirimkan data perolehan suara secara periodik melalui form interface yang disediakan pada webserver. Cara yang paling mudah, data perolehan suara sebaiknya dalam bentuk array yang diserialize dan sudah diencryipt. Data tersebut dikirimkan menggunakan curl, sehingga dapat dijalankan dari terminal tanpa perlu adanya interaksi dengan operator.
  2. Setelah submit, data yang diterima didecrypt, diunserialize, kemudian disimpan dalam bentuk file/cache. Langkah nomor 1 dan 2 berulang terus secara periodik hingga operator memutuskan untuk stop. 
  3. Client melakukan request hasil perolehan data ke webserver.
  4. Setelah ada request, webserver membaca file/cache hasil yang dibentuk pada langkah ke-2.
  5. Data perolehan suara diproses oleh webserver untuk ditampilkan sebagai grafik.
  6. Grafik perolehan suara dikirimkan kepada client.
Enam langkah tersebut sangat mudah, tampilah hasil perolehan suara seperti berikut:


17 September 2013

Sinkronisasi Data SMSGateway

Kami membangun sebuah program berbasis web dan sms, yang kami beri nama Smsgateway untuk broadcast, polling, survey dan pilkada. Program kami kembangkan dengan script PHP dan dengan Smstools untuk menerima dan mengirim sms melalui modem.

Modul Pilkada adalah modul yang paling kompleks dan menantang sejak awal program dikembangkan. Selain untuk memproses data melalui format sms tertentu, fitur-fitur lainnya termasuk fungsi pemilihan sampel TPS yang akan dihitung dengan metode quick-count, memantau pemasukan data, input manual serta report hasil quick-count.

Modul Pilkada diuji coba pertama kali untuk menghitung quick-count pada Pilkada Karawang 2005. Hingga kini (September 2013), selanjutnya telah digunakan pada pilkada-pilkada berikut ini:
  • Pilkada Gubernur dan 19 Kabupaten/Kota di Nanggroe Aceh Darussalam 2006
  • Pilkada Kabupaten Bekasi 2007, 20012
  • Pilkada Kabupaten Purwakarta 2007
  • Pilkada Gubernur Jawa Barat 2008, 2013
  • Pilkada Walikota Bogor 2008, 2013
  • Pilkada Gubernur Riau 2013
Meski dibangun sejak tahun 2005, tetap saja selalu ada kekurangan yang terus kami tambahkan dan kembangkan. Yang terakhir yang kami tambahkan adalah sistem sinkronisasi data.

Maksudnya adalah data hasil report quick-count secara berkala dan otomatis dikirim ke suatu server website untuk ditampilkan, sehingga dapat diakses oleh publik. Sebelumnya, hasil quick-count diakses melalui query by sms, yang tentu saja memakan pulsa sms pada server Smsgateway untuk membalasnya.


Dengan pemisahan server ini, ada beberapa keuntungan yang kami dapatkan:
  • Beban server semakin ringan, karena akses protokol http ke server semakin berkurang.
  • Kemudahan administrasi. Untuk mengatur supaya server dibelakang router dapat diakses secara publik melalui http, membutuhkan kemampuan admin untuk mengakses control-panel router dan mengatur port forwarding. Padahal kta ketahui tidak semua pengguna pelangggan internet berbayar dapat mengatur routernya supaya komputernya dapat diakses oleh publik.
  • Resiko keamaan lebih kecil bila server terpisah dibandingkan menyatu membiarkan publik mengakses Smsgateway langsung.
  • Operator dapat memulai dan menghentikan sinkronisasi kapan saja dianggap bahwa angka perolehan dianggap sudah final. Sehingga ketika diadakan Press Release, angka sudah fix tidak berubah lagi. Padahal barangkali mungkin di server Smsgateway masih berproses.
Metode sinkronisasi data di atas, akan saya bahas pada tulisan berikutnya, menggunakan php script dan bash script.

03 September 2013

Mengaktifkan Modul Userdir di Ubuntu

Setelah selesai menginstall Ubuntu untuk web server, kita dapat mensetup agar setiap linux user dapat memiliki personal web sendiri. Dengan demikian setiap username --misalnya otong-- dapat membuat halaman website yang diletakkan di folder /home/otong/public_html/. Sehingga halaman website tersebut dapat diakses menggunakan web browser pada alamat url: http://localhost/~otong/index.html

Perhatikan, ada tanda tilde (~) di depan username untuk mengakses website yang dimiliki username tsb.

Cara yang demikian itu adalah dengan mengaktifkan modul apache 'userdir'. Karena secara default, modul userdir pada apache Ubuntu tidak aktif.

Untuk mengaktifkan modul userdir, berikut langkah yang harus dilakukan:

Langkah 1. Aktifkan modul userdir dengan mengetikkan perintah sbb pada terminal

$ sudo a2enmod userdir

a2enmod adalah perintah untuk meng-enable-kan modul apache, sedangkan
a2dismod perintah untuk men-disable-kan modul apache.

Pada dasarnya mengaktifkan suatu modul pada apache adalah membuat symlink modul yang dimaksud yang ada pada folder /etc/apache2/mods-available ke folder /etc/apache2/mods-enabled. Kita dapat saja membuat secara manual tanpa bantuan e2enmod.

Langkah 2. Sunting konfigurasi modul php agar php apache dapat menghandle script php yang diletakkan di /home/username/public_html. File konfigurasi yang dimaksud terletak di folder /etc/apache2/mods-available.

$ sudo vim /etc/apache/mods-available/php5.conf

vim adalah editor untuk file berbasis teks. Bila anda tidak terbiasa menggunakan vim, dapat juga menggunakan nano.

Pada Ubuntu 12.04 LTS isi file php5.conf default adalah sebagai berikut:

<IfModule mod_php5.c>
    <FilesMatch "\.ph(p3?|tml)$">
    SetHandler application/x-httpd-php
    </FilesMatch>
    <FilesMatch "\.phps$">
    SetHandler application/x-httpd-php-source
    </FilesMatch>
    # To re-enable php in user directories comment the following lines
    # (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
    # prevents .htaccess files from disabling it.
    <IfModule mod_userdir.c>
        <Directory /home/*/public_html>
            php_admin_value engine Off
        </Directory>
    </IfModule>
</IfModule>


Berikan remark (tanda #) pada awal setiap baris yang ditunjukan mulai baris <ifModule mod_userdir.c> sampai </IfModule> berikutnya, seperti ditunjukkan pada gambar berikut:



Langkah 3. Restart service apache dengan  memberi perintah sbb:

$ sudo service apache2 restart


Selesai sudah!

Sekarang bila username meletakkan suatu file --index.php misalnya-- pada folder /home/username/public_html/, maka file tersebut dapat diakses menggunakan web browser pada alamat url http://localhost/~username/index.php

Semoga bermanfaat!

01 September 2013

Mesin Virtual

Yang saya maksud mesin virtual adalah mesin bohongan, mesin berbasis software yang seolah-olah ada di dalam komputer kita. Namanya juga mesin virtual, semua spesifikasi hardware nya juga bohongan, alias diemulasikan.

Untuk apa saya punya mesin virtual?

Bagi saya mesin virtual itu sangat berguna dalam pekerjaan sehari-hari. Dengan adanya mesin virtual, saya bisa melakukan hal-hal sbb:

1. Menjalankan aplikasi berbasis Windows di Linux

Linux adalah dunia saya. Saya sudah menggunakannya sejak tahun 1997, sejak Linux masih berbasis text. Sulit sekali menerapkan Linux supaya berbais GUI saat itu. Kalaupun bisa, paling banter cuma dapat resolusi rendah 800x600. Kecuali kalau sedang beruntung karena kartu video-nya sudah disupport.


Jika saya mendapat tugas kantor mengolah data dengan aplikasi berbasis windows,
masa sih saya tolak dengan mengatakan 'Komputer saya tidak sanggup!' Emang..

Dulu saya menggunakan dual-boot, artinya saat booting saya bisa memilih mau menjalankan sistem operasi apa, Linux atau Windows misalnya. Sekarang tidak lagi. Cukup sediakan mesin virtual dengan sistem operasi Windows di dalam Linux. Kemudian instal aplikasi yang dibutuhkan, lalu siap bekerja seperti biasa.

 2. Sebaliknya, menjalankan Linux dari dalam Windows

Server di kantor saya sudah terpasang sistem operasi Windows Server dan MSSql Server dari sananya. Pamali dan beresiko kalau saya format ulang dan digunakan sebagai server Linux. Untungya ada mesin virtual. Saya bisa pasang Linux disana untuk develop aplikasi berbasis web. Juga saya bisa bikin mesin virtual satu lagi untuk Windows XP yang terhubung ke mesin presensi sidik jari. Daripada install aplikasi yang beresiko di mesin utama, lebih baik install aplikasi di mesin virtual. Kalau bermasalah tidak akan menyebar ke mesin utama.

3. Sebagai sandbox

Mesin virtual dapat digunakan sebagai sandbox, sebagai tempat untuk develop aplikasi dan uji coba software. Tidak usah takut virus menyerang, toh bila bermasalah tinggal hapus dan bikin lagi.
 
4. Bernostalgia dengan program-program berbasis MS-DOS

Program-program berbasis MS-DOS yang dulu terkenal era tahun 80-an, ternyata masih bisa dijalankan pada komputer jaman sekarang lho. Tentu dengan perantara mesin virtual. Ingat WordStar, Lotus 1-2-3, PrintShop dll? Bahkan game-gamenya masih asyik untuk dimainkan. Hmm, bila sudah tidak punya copy-nya, masih bisa cari untuk didownload dengan kata kunci abandoned software.



 Bagaimana, apa sekarang anda tertarik dengan mesin virtual?