Showing posts with label Solution. Show all posts
Showing posts with label Solution. Show all posts

Sunday, July 19, 2015

Cara Radikal Pemilihan Anggota DPR

Anggota DPR di Indonesia merupakan perwakilan rakyat, yang berperan sebagai badan legislatif di pemerintahan negara. Beberapa tugas penting DPR antara lain:

  • merancang undang-udang,
  • mengatur alokasi anggaran,
  • menyerap aspirasi rakyat, dll
Beberapa tahun terakhir ini, entah benar atau tidak, tersebar kabar di masyarakat bahwa DPR tidak menjalankan fungsinya dengan baik, berbagai gosip seperti korupsi, pemangkiran, tidak professional, beredar yang mungkin akan berdampak turunnya reputasi DPR. 

Selain itu, konon menjadi anggota DPR juga tidak mudah. Kabarnya uang yang sangat banyak dan koneksi yang sangat kuat, serta keberuntungan perlu dimiliki untuk akhirnya seseorang bisa menjadi anggota DPR. 

Terlepas dari benar atau tidaknya hal-hal tersebut, jika kita asumsikan benar, bagaimana kalau kita ubah cara pemilihan anggota DPR dengan cara yang sangat radikal. Mekanismenya seperti ini:
  1. tentukan kriteria orang-orang yang dianggap 'layak' jadi anggota DPR
  2. siapkan data, infrastruktur dan aplikasi yang 'open' untuk mengolah data memilih anggota DPR
  3. Algoritma pemilihannya adalah RANDOM
Akan dibahas lebih detail sebagai berikut.

Tentukan Kriteria

Langkah pertama yang sebenarnya paling sulit, yakni menentukan kriteria. Cara paling proper untuk menentukan kriteria mungkin dengan membentuk komite khusus, dan mungkin pertanyaan yang paling pas untuk menentukan suatu kritaria adalah
 "Jika setiap orang di Indonesia memiliki kriteria X, apakah Indonesia akan menjadi banga terbaik dunia?"
contoh beberapa kriteria yang mungkin:
  1. Bergelar S3 dari Top 100 Universities
  2. Tidak terlibat hutang,
  3. Taat pajak, dll
tentunya banyak kriteria lain yang bisa dipikirkan, dan perlu dipikirkan dengan matang-matang dan bijaksana. 

Orang yang lolos kriteria ini tidak boleh dibatasi jumlahnya, justru harus sebanyak-banyaknya, semakin banyak maka akan semakin baik.

Siapkan Data, Infrastruktur dan Aplikasi yang Open

Data mengenai siapa-siapa saja yang lolos kriteria, harus di-open agar bisa diverifikasi oleh semua orang. Dengan begini akan memimalisir hal-hal negatif seperti adanya 'titipan', data yang salah, atau orang-orang yang sebenarnya tidak lolos kriteria.

Aplikasi/Sistem untuk menjalankan mekanisme ini juga harus open source, sehingga bisa divalidasi apakah ada praktek kecurangan atau tidak. Begitu juga dengan infrastruktur-nya, sehingga pengawalan agar proses berjalan dengan baik dan benar tetap terjaga

Pemilihan dengan Random

Setelah dipastikan aman, maka lakukan pemilihan oleh aplikasi dengan mekanisme random. Siapapun yang akan keluar namanya, dia yang akan menjadi anggota DPR. That it.



Keuntungan dari mekanisme ini, siapa saja yang memiliki kriteria untuk membuat Indonesia menjadi bangsa terbaik di dunia memiliki kesempatan yang sama untuk menjadi DPR, institusi yang memiliki kekuatan untuk mengubah jalannya pemerintahan. 

Keuntungan lainnya, setiap orang akan berlomba-lomba untuk membuat dirinya memiliki kriteria tersebut. Contoh kriteria S3 Top 100 Universities, setiap orang akan berlomba-lomba untuk menyelesaikan masa studi-nya di Top 100 Universities saat itu. Atau misalnya taat pajak, setiap orang akan berusaha taat pajak agar memiliki kesempatan untuk menjadi anggota DPR. 

Kerugiannya? mungkin ada ya, tapi sebaiknya tidak perlu dibahas, kecuali apabila memang ide radikal ini benar-benar akan diimplementasikan. Semoga suatu saat akan kejadian, meski kemungkinannya sangat-sangat kecil.










Wednesday, December 14, 2011

Isu Scalability Gammu dan Solusinya

Sebenernya tidak ada isu scalability di gammu, hanya karena terdapat situasi dan kondisi di proyek yang Saya ikuti, baru isu scalability muncul.

Pada suatu proyek, terdapat kebutuhan dari client untuk membuatkan sistem yang melakukan pengiriman data dari lapangan ke website pusat, dengan teknologi pengiriman data yang diminta adalah SMS. Digunakanlah GSM modem yang menerima SMS yang disandingkan dengan Gammu. No prob.

Kemudian ada permintaan untuk dibuatkan semacam aplikasi sederhana untuk melakukan pengiriman data ini, agar memudahkan orang yang akan mengirimkan data, karena selain datanya memiliki format yang sulit dihafal manusia biasa, data yang dikirim juga panjang, bisa sampai 4-5 x 160 karakter untuk sekali pengiriman data. Dibuatlah aplikasi sederhana dengan menggunakan J2ME yang menampilkan semacam form pengisian data dan mengirimkan SMS isi datanya ke pusat. No prob.

The problem is, ketika banyak orang yang melakukan pengiriman data sekaligus, dimana setiap pengiriman data terdiri dari 4-5 x 160 karakter, terjadilah deadlock.

Detailnya begini. Karena GSM modem yang dipakai tidak punya fitur inbox, maka seluruh SMS yang diterima tersimpan di simcard. Katakan 20 orang melakukan pengiriman data sekaligus, masing-masing data terdiri dari 4*160 karakter, yang berarti GSM modem akan menerima 4 SMS, dimana masing-masing merepresentasikan bagiannya. Setelah beberapa saat, bagian pertama dan bagian kedua sampai ke simcard, sehingga isi inbox simcard sudah sampai 40 SMS. Ini merupakan jumlah maksimal SMS yang bisa disimpan di simcard yang kami digunakan. Karena penuh, maka bagian ketiga dan keempat dari SMS tidak bisa masuk. Sayangnya, Gammu baru akan menghapus inbox simcard ketika seluruh bagian sudah ada di inbox. Disatu sisi bagian ketiga dan keempat tidak bisa masuk karena inbox penuh, disisi lain isi inbox tidak dihapus karena menunggu semua bagian tersedia. Deadlock.

Memang Gammu memiliki setting timeout, yaitu untuk menghapus SMS yang tidak lengkap setelah beberapa saat. Namun jalan ini tidak diambil karena tidak ada jaminan SMS yang sudah dihapus akan dikirim lagi baik oleh operator maupun orang yang mengirimkan data.

Untungnya, pengirim data tidak menuliskan datanya dengan cara menuliskan SMS biasa, namun dengan mengisi form pada aplikasi J2ME. Inilah yang menjadi titik solusi dari permasalahan.

Kami mengubah cara aplikasi tersebut mengirimkan SMS. Alih-alih mengirimkan 1 kali SMS panjang yang akhirnya dipecah menjadi 5 SMS oleh entah siapa, aplikasi memecah-mecah sendiri 1 SMS panjang menjadi 5 SMS dan mengirimkannya satu per satu. Pada setiap SMS disiapkan ID unik untuk menyatakan bahwa 5 SMS yang dikirim ini merupakan satu kesatuan.

Dengan begini, ketika satu SMS diterima GSM modem, SMS langsung dihapus dari inbox simcard oleh Gammu dan diletakkan ke tabel database. Dari tabel itulah, diambil SMS-SMS tersebut dan dirangkai lagi menjadi satu kesatuan data sesuai dengan ID-nya. Akibatnya inbox simcard akan selalu kosong dan tidak ada lagi SMS yang ditolak karena inbox penuh.

Tentu saja solusi ini tidak cocok untuk semua keadaan, solusi ini hanya cocok jika:

  • SMS yang dikirim sangat panjang, lebih dari 160 karakter
  • pengiriman SMS melalui aplikasi buatan, bukan bawaan HP
  • GSM modem yang digunakan tidak memiliki fitur inbox didalamnya
  • GSM modem yang digunakan hanya satu untuk seluruh tujuan pengiriman data
  • Mengambil asumsi bahwa pengirim data hanya akan mengirimkan suatu data sekali untuk selamanya
Dengan constraint bahwa data yang dikirim harus diproses dalam waktu 24 jam, solusi ini sampai sekarang masih cukup untuk 100 pengirim data sekaligus pada waktu yang bersamaan, dimana masing-masing data terdiri dari 4-5 SMS. Mungkin akan tahan sampai 1000 pengirim data sekaligus. Lebih dari itu, mungkin perlu ditambah GSM modem baru. 

Jika anda mengalami situasi dan kondisi yang mirip dengan ini namun menggunakan solusi yang berbeda, I would love to hear it. Atau jika ingin mengaplikasikan solusi ini, feel free to contact me at my email. Semoga bermanfaat.