Mahkamah Konstitusi – Benteng Terakhir

Setelah kisruh yang berlarut-larut dengan diselingi demonstrasi yang sangat mengganggu akhirnya tanggal 21 Agustus 2014 Mahkamah Konstitusi (MK) mengumumkan keputusannya tentang kasus pilpres yang diajukan oleh kubu Prabowo-Hatta. Hasilnya sangat mengecewakan kubu pemohon dimana seluruh gugatannya ditolah oleh MK yang dipimpin oleh ex aktivis dari partai Bulan Bintang, Hamdan Zoelva. Untungnya pembacaan keputusan dilakukan malam hari setelah para demonstran yang melakukan aksi demo di sekitar gedung mahkamah konstitusi sudah pulang sehingga tidak terjadi aksi pengrusakan di sekitar gedung MK walaupun beberapa tempat, seperti patung kuda, rusak akibat banyaknya massa yang berdemonstrasi (untungnya kendaraan perang dunia kedua, UNIMOG berhasil disita karena akan menerobos pagar berduri).

Penasehat hukum kubu yang kalah melakukan protes karena hakim sama sekali tidak menyebut adanya kesalahan dalam pilpres kali ini. Padahal menurutnya sidang etik KPU, yang berlangsung sebelumnya, telah memecat dan menyatakan beberapa anggotanya telah melanggar etika. Tetapi sepertinya hakim masih menganggap pelanggaran etika tersebut belum sampai melanggar hukum (sama seperti sidang etik perwira pasca kerusuhan Mei 98 yang memutuskan Letjen Prabowo Subianto melanggar etika tetapi tidak melanggar hukum/tidak dihukum). Apa boleh buat, karena keputusan MK adalah keputusan terakhir dan mengikat, tidak boleh ada pihak lain yang keberatan terhadap keputusan itu.

Kubu Prabowo-Hatta, koalisi merah putih, segera mengadakan jumpa pers yang berisi penerimaan mereka terhadap keputusan MK walaupun berpendapat kurang tepat. Sayang tidak dihadiri oleh capres dan cawapresnya yang saat itu sedang mengunjungi para demonstran yang berada di rumah sakit terkena peluru karet, gas air mata, dan lain-lain. Sayangnya pula tidak ada kata-kata selamat terhadap presiden baru Indonesia, Joko Widodo dan wapres Jusuf Kalla.

Keesokan harinya di PRJ, Jokowi-JK mengadakan jumpa pers mengenai tugas-tugasnya yang berat setelah pelantikan nanti. Dimulai dari kasus kementrian yang harus dibenahi (dibuat ramping, sesuai idenya dahulu), hingga kasus subsidi BBM yang terlambat dihapus ketika presiden masih dipegang Susilo Bambang yudhoyono. Jusuf Kala mengatakan tidak menghapus subsidi BBM, hanya saja mengalihkan dari BBM ke rumah sakit, pendidikan, nelayan dan lainnya, dengan kata lain subsidi BBM menjadi subsidi rakyat. Selamat untuk presiden ketujuh Indonesia, Joko Widodo .. Salam tiga jari.

‘Password crypt authentication not supported’ Problem di ODBC postgreSQL

Berhubung aplikasi WebGIS menggunakan Ruby on Rail dengan database PostgreSQL mau tidak mau Matlab menggunakan dua metode koneksi ke database tersebut:

  1. Dengan JDBC
  2. Dengan ODBC

Berhubung error ketika menggunakan JDBC dimana ada pesan kesalahan pada driver, akhirnya saya memutuskan untuk menggunakan ODBC. Buka ODBC di Administrative Tools yang sesuai (32 bit atau 64 bit), dilanjutkan dengan membuat database-nya.

Ketika selesai dibuat, check apakah sudah terbaca di Matlab dengan instruksi di command window:

getdatasources

Jika datasource ODBC Anda berhasil dibuat, akan muncul namanya di antara tanda petik pada variabel ans. Jika tidak, maka Anda harus mengulangi langkah pembuatan ODBC tersebut. Lakukan pembuatan koneksi.

Perhatikan pesan kesalahan (Message) : Password crypt authentication not supported. Pesan ini terjadi karena Windows tidak menerapkan encrypt password. Hal ini terjadi karena ketika membuat ODBC saya memilih PostgreSQL saja (default). Harusnya saya memilih PostgreSQL dengan unicode:

Disable SSL Mode kemudian lakukan ‘Test‘ dengan menekan tombol Test dilanjutkan dengan ‘Save‘. Buat koneksi conn lagi ke PostgreSQL (lihat help untuk koneksi database dengan Matlab). Pastikan tidak ada pesan kesalahan, serta jika Anda ketik isconnection(conn) di command window jawabannya satu bukan nol.

Cek dengan mengambil data:

Tampak isi tabel Projects saya di Ruby on Rail.

Koneksi Matlab dengan Sistem Basis Data

Lama tidak ngeblog tidak enak juga. Banyak hal-hal yang bisa saya sharing ke orang lain yang siapa tahu membutuhkan informasi tertentu yang saya miliki. Terkadang sedih juga membaca komentar-komentar di tulisan saya yang mengatakan “sotoy”, jangan asal tulis, dan lain-lain, bahkan ada yang mengatakan saya asal “copas”. Tapi sesuai dengan prinsip situs saya “just a Little Kindness”, saya coba untuk memberi kebaikan walau hanya sedikit.

Saya dulu pernah membuat tulisan mengenai akses database dengan Visual Query Builder, dan banyak yang tidak puas dengan koneksi seperti itu. Lama saya tidak mencoba “ngoprek” hal itu karena belum merasa perlu karena akses dapat dilakukan dengan menggunakan excel atau notepad. Untuk data kecil sebenarnya tidak ada masalah, tetapi jika data yang berukuran besar, Excel tentu saja tidak sanggup menanganinya. Saya pernah mencoba mengkonversi file CSV ke dalam Access kemudian saya kembalikan lagi menjadi TXT untuk diolah Matlab dalam rangka Data Mining (waktu itu tugas Text Mining dari dosen saya). Tetapi tentu saja tidak efektif. Perlu dilakukan koneksi data langsung dari DBMS ke Matlab.

Berawal dari Hibah Penelitian dari Dikti (Hibah Bersaing) dimana tahun ketiga saya harus mengkoneksikan GIS desktop dengan Web GIS, mau tidak mau saya membutuhkan sistem basis data. Terpaksa saya harus mengkoneksikannya langsung. Cari paling mudah adalah lewat mekanisme Open Data Base Connectivity (ODBC) yang tersedia di Windows. ODBC ini memiliki keunggulan dalam hal fleksibilitas, dimana jika kita sudah merakit ODBC maka program yang telah dibuat dengan Matlab tidak tergantung dengan software DBMS yang telah ada karena koneksi antara program dengan database lewat ODBC, beda jika kita mengkoneksikan Matlab dengan Software DBMS langsung (Access, MysQL, Oracle, PostgreSQL, dll). Jika kita mengganti software DBMS, kita harus mengeset lagi program yang telah kita buat. Dengan DBMS, jika kita akan mengganti Software DBMS, tinggal menghubungkan Software DBMS dengan ODBC lagi, termasuk user dan password jika diperlukan.

Untuk membuat ODBC Anda dapat membaca literatur yang membahas tata caranya. Yang penting Anda ketahui adalah Windows yang Anda miliki, 64 Bit atau 32 Bit. Jika 32 bit sepertinya tidak ada masalah. Nah, masalah muncul jika windows yang digunakan versi 64 bit, karena ODBC yang digunakan harus mundur yang 32 bit karena software DBMS kebanyakan masih berversi 32 bit. Untuk windows 8 dengan searching di control panel, akan ditemukan dua pilihan, ODBC 32 bit atau ODBC 64 bit. Sedangkan jika Windows 7 64 bit, maka Anda harus masuk ke folder SysWOT di C: dan menjalankan file odbcad32.exe. Jika Anda memaksa menggunakan ODBC 64 bit padahal program yang Anda gunakan versi 32 bit, akan memunculkan pesan kesalahan saat melakukan koneksi Matlab dengan ODBC (mismatch .. bla bla).

Untuk menghubungkan Matlab dengan ODBC dapat Anda lakukan dengan langkah sebagai berikut. Misalkan Anda telah memiliki ODBC dari database Anda, misalnya bernama “lokasi” dengan user ID “user” dan password “123”, lakukan koneksi dengan instruksi:

Conn=database(‘lokasi’,’user’,’123)

Cukup sederhana. Cek koneksi dengan instruksi isconnection(Conn). Jika jawabannya 1 maka koneksi berjalan dengan baik, sebaliknya jika jawabannya nol, maka Anda harus mengecek error-nya. Ketik saja Conn.Message untuk melihat instruksi kesalahannya. Jika Database telah terisi, Anda dapat mengecek dengan instruksi sql “select”.

Results=fetch(conn,’select * from lokasi’)

Misalnya tabel yang ada di database kita lokasi. Anda akan menerima data dari database dengan nama Results yang siap Anda olah dengan Matlab. Bagaimana dengan input data ke database? Mudah saja, gunakan instruksi insert. Hanya saja sedikit rumit karena ada tata cara penulisan nama field yang ada di tabel. Misal ada dua field yaitu x dan y. Kemudian akan saya isi data dengan x=1 dan y=2, maka gunakan instruksi sebagai berikut:

Insert(Conn,’lokasi’,[{‘x’} {‘y’}],[1 2])

Jika tidak ada pesan kesalahan sintax di Matlab, cek apakah data sudah masuk di database Anda. Selamat mencoba.

Hasil Pilpres 2014

Setelah hampir sebulan terjadi pertarungan sengit antara kubu pendukung calon nomor satu Prabowo Subianto dengan calon nomor dua Joko Widodo akhirnya pada tanggal 22 Juli 2014 KPU mengumumkan pemenang pilpres kali ini. Sebelum diumumkan, secara mengejutkan calon presiden Prabowo mengumumkan bahwa dia mengundurkan diri dari pilpres karena kecewa dengan kinerja KPU yang menurutnya tidak adil dan tidak demokratis. Namun KPU tetap pada pendiriannya untuk menyelesaikan perhitungan suara yang kurang dua provinsi lagi, yaitu papua dan sumatera utara walaupun saksi dari pasangan nomor urut satu meninggalkan ruangan KPU atas instruksi capres Prabowo Subianto.

Setelah seluruh provinsi dihitung dan dimenangkan oleh pasangan Joko Widodo – Jusuf kalla, untuk mengumumkan secara resmi presiden terpilih, rapat pleno diskors hingga pukul delapan malam. Kubu Prabowo bermarkas di Polonia, sementara kubu Jokowi mengadakan acara buka bersama sambil menunggu pengumuman KPU di Kebagusan, rumah kediaman Megawati Sukarnoputri.

Terlambat sekitar 30 menit, akhirnya KPU mengumumkan pemenang pilpres dengan terlebih dahulu membacakan hasil perhitungan suara di 33 provinsi. Hasilnya adalah Jokowi unggul sekitar 8 juta (53%) suara dari kubu prabowo (47 %). Kubu Prabowo diberi waktu tiga hari untuk mengajukan banding ke Mahkamah Konstitusi (MK) jika keberatan dengan hasil perhitungan suara KPU.

Setelah era pemerintahan yang tersentralisasi di jaman Sukarno dan Suharto, serta era transisi di jaman Habibie, Gus Dur, dan Megawati, akhirnya munculah era di mana sosok rakyat biasa bisa menjadi presiden setelah dua periode dikuasai oleh mantan militer (presiden SBY). Kali ini rakyat sudah meninggalkan bayang-bayang masa lalu di mana pemimpin harus memiliki keahlian di atas rata-rata atau keturunan dari pemimpin masa lalu dan bersifat sebagai “orang tua” rakyat biasa dan saat ini bisa membedakan antara “the king” dengan “presiden”. Bahkan ada ungkapan saat ini tetangga sebelah rumah bisa saja menjadi presiden, asalkan dipercaya oleh rakyat. Selamat untuk presiden RI yang baru Ir. Joko Widodo, eks Gubernur Jakartaf, Walikota Solo, pengusaha mebel .. dan alumni Universitas Gadjah Mada .. Kampus tercintaku.

Memanggil Web GIS di Browser Dari Matlab

Ketika membuat program yang berisi peta geografis terkadang kita ingin menampilkan koordinat bukan di tampilan koordinat lokal Sistem Informasi Geografis (SIG) kita melainkan di koordinat global pada Web GIS, contohnya google maps.

Langkah pertama, Matlab memerlukan url yang akan dijadikan target situs yang akan dibuka. Misalnya kita mempunyai lokasi dikoordinat -6.2478456,106.983, maka kita definisikan dengan suatu variabel misalnya bernama url. Ketik pada command window:

url = ‘https://www.google.com/maps/@-6.2478456,106.983,20z’

Dengan instruksi web, Matlab akan membuka browser bawaannya dan menampilkan alamat situs url. Browser secara default menggunakan browser bawaan Matlab yang menurut saya kurang baik dibanding Mozilla, Google Chrome, Internet Explorer dan sejenisnya. Tambahkan option ‘-browser’. Agar kita membuka lewat browser default kita, misalnya saya menggunakan Mozilla Firefox.

web(url,’-browser’)

Ketika dijalankan maka browser akan membuka alamat tersebut dan mengakses peta lokasi sesuai dengan alamat situs url.

Training JST

Melakukan training dengan JST sedikit berbeda dengan ANFIS. Pada ANFIS, input dan target disatukan sementara untuk JST kita harus memisahkan menjadi dua matriks. Buka toolbox JST dengan mengetik pada command window.

>>nntool

Siapkan terlebih dulu data trainingnya yaitu data input dan data target. Misalnya kita sudah menulis data input dan data target dengan notepad berturut-turut dengan nama ‘input.dat’ dan ‘target.dat’, maka kita tinggam memanggil data tersebut untuk dikonversi menjadi variable ‘*.mat’ yang dikenali oleh toolbox nntool matlab.

Perhatikan, formatnya sedikit berbeda dengan ANFIS, pada JST masukan dinyatakan dengan baris, misalnya baris pertama itu input pertama, baris kedua input kedua, dan seterusnya. Sementara target mengikuti inputnya, jadi target kolom pertama input adalah kolom pertama pada vector target. Dari contoh data di atas, input 3.2760, 32.3, 7, dan 0.0020 memiliki target 34.5.

Kembali ke NNTOOL, klik import untuk memasukan data input dan target ke toolbox JST. Jangan lupa hubungkan input dengan input dan target dengan target seperti gambar berikut.

Lakukan hal yang sama juga dengan target, dilanjutkan dengan klik ‘import‘. Berikutnya meramu JST yang akan kita buat untuk mentraining data input dan target yang telah kita siapkan. Klik New untuk membuat JST yang akan di-training. Beri nama, input, dan outputnya sesuai dengan data yang kita import sebelumnya.

Setelah di klik Create maka Anda telah berhasil membuat JST. Pastikan pada NNTOOL Anda terdapat data input, target, dan jst. Setelah itu kita siap melakukan training dengan mengklik ganda jst yang baru saja kita buat.

Pilih train dan masukan input dan target yang sesuai, lanjutkan dengan mengklik Train Network untuk memulai proses training. Tunggu beberapa saat karena Matlab sedang mentraining JST yang ada buat tersebut.

Berikutnya adalah kita coba mengecek apakah hasil training sudah sesuai atau tidak. Untuk mengetahui kualitas training, masukan aja data input ke jst yang telah Anda training, apakah sesuai dengan target atau tidak. Sebelumnya simpan terlebih dahulu jst yang telah Anda latih tersebut. Caranya dengan kembali ke jendela NNTOOL dengan mengklik Export dilanjutkan dengan memilih mana yang akan disimpan. Pastikan jst anda pilih.

Setelah mengklik Save maka Anda telah berhasil melatih jst Anda. Pastikan jst yang Anda save terletak pada directory kerja Anda. Berikut cara menguji hasil training Anda.

Perhatikan yang dilingkari adalah hasil training yang tidak cocok dengan target (ada error). JST bias memprediksi output jika input berbeda dengan data training, misalnya data berikut ini.

Algoritma Genetika di Matlab 2008 lebih baik dari Matlab 2013

Setelah pada tulisan yang lalu saya membuktikan Neural Network di Matlab 2007 lebih baik dari Matlab 2008 (https://rahmadya.com/2013/06/27/matlab-2007-lebih-baik-dari-pada-matlab-2008/), kini terjadi lagi di Matlab 2008 dengan Matlab 2013, dimana untuk algoritma genetika, hasil matlab versi lama lebih baik dari matlab versi baru. Saya masih bingung apa penyebabnya.

Kejadiannya waktu itu rekan saya mengajak diskusi tentang optimasi kontroller orde satu dan orde dua dengan menggunakan algoritma genetika. Fungsi tujuan sudah dibuat, dengan variabel yang dibentuk adalah variabel laplace s, yang merupakan hal baru selama saya menggunakan algoritma genetika. Biasanya saya menggunakan variabel biasa, seperti waktu, jarak, dan sejenisnya. Untuk contoh lain penerapan GA bisa dilihat kasus pada GIS seperti tulisan saya sebelumnya (https://rahmadya.com/2013/11/12/algoritma-genetik-dengan-toolbox-matlab/).

Saya coba menggunakan matlab versi 2013 dengan toolbox algoritma genetikanya. Dengan memasukkan fungsi tujuan, konstrain, serta variabel lainnya seperti maksimum generation = 100, stall generation = 100, mutation function = gaussian, initial population range = [0;100], cross over function, intermediate dengan ratio = 0.8, serta mencentang output berupa best fitness dan best individual.

Setelah memasukan nama fitness function, jumlah variabel, bound (batas atas dan batas bawah) saya mulai menjalankan dengan menekan tombol “start”. Diperoleh hasil fitness terbaik sebesar 1.942 dengan x1 = 109.6 dan x2 = 3.92, seperti tampak pada gambar di bawah ini.

Dari hasil riset terdahulu yang kami baca ternyata hasil terbaiknya 1.838, mengapa bisa memperoleh nilai lebih buruk? Padahal dugaan saya, riset dilakukan pada tahun 2008, kemungkinan besar dia menggunakan matlab 2008 juga. Akhirnya karena penasaran, kami menggunakan matlab 2008b sesuai dengan perkiraan saya bahwa dia menggunakan matlab 2008 saat melakukan benchmarking.

Dengan memasukan variabel, fungsi tujuan, konstrain, dan parameter-parameter lain yang sama dengan matlab versi 2013 dan merujuk penelitian tahun 2008 tersebut, secara mengejutkan diperoleh hasil yang lebih baik seperti tampak pada gambar di bawah ini.

Tampak diperoleh hasil fitness value yang lebih baik (lebih kecil/minimum) sebesar 1.837 dengan x1 = 135.07 dan x2 = 4.65 yang sedikit lebih baik dari hasil penelitian sebelumnya. Akhirnya kejadian seperti kasus neural network sebelumnya terulang kembali. Sebagai tambahan, toolbox GA bisa digenerate menjadi script dengan menekan menu FileGenerate M-File – dilanjutkan dengan memberi nama. Maka akan dihasilkan script sebagai berikut.

 

Student Visa dan Masalah Pelik Lainnya

Untuk yang tertarik memperoleh beasiswa studi lanjut bisa menghubungi link khusus dosen dan staf administrasi di: http://beasiswa.dikti.go.id/web/ sedangkan untuk yang tidak punya nidn, bukan dosen, atau instansi lain bisa mencoba di sini: http://www.lpdp.depkeu.go.id/ atau bisa lewat beasiswa-beasiswa lainnya (kedubes-kedubes, kampus tujuan, USAID, dll) walaupun menurut sebagian besar info, kedua beasiswa itu (terutama biaya hidup) lebih besar dari beasiswa-beasiswa lainnya. Departemen agama untuk dosen-dosen UIN/IAIN ternyata ada juga dan sejak tulisan ini dibuat baru dua gelombang. Persyaratan berskala internasional seperti passport dan lain-lain, termasuk bahasa internasional sesuai tujuan (Inggris, Prancis, Jepang, Arab) mutlak diperlukan. Salah satu yang penting adalah Visa Pelajar yang diterbitkan oleh negara tempat kampus tujuan belajar calon penerima beasiswa.

a. Mengurus Student Visa

Pelajari atau bertanya kepada teman-teman yang sudah berangkat sepertinya menjadi keharusan, karena jika hanya browsing di internet, kasusnya mungkin berbeda, misalnya saya yang memilih Thailand sebagai negara tujuan akan berbeda dengan Jepang, Amerika Serikat, dan negara lainnya. Jepang, misalnya mengharuskan kita memiliki sejenis orang tua asuh, atau orang yang siap sebagai penanggung jawab kita di sana. Taiwan, lebih rumit lagi, karena tidak ada kedutaan besar taiwan di Indonesia, jadi harus lewat kantor dagangnya (di Jakarta, alamat lengkapnya bisa dicari di internet).

Untuk Thailand, butuh waktu kurang dari seminggu untuk membuat visa pelajar, dengan melampirkan paspor dan surat tanda diterima (LOA) dari kampus tujuan. Biaya, standar, sekitar hampir satu juta dan jangan lupa, beli dollar terlebih dahulu, karena tidak menerima uang rupiah, atau bisa juga beli ke satpam seperti yang saya lakukan, tetapi resikonya kursnya berbeda.

b. Keberangkatan

Siapkan segala hal yang diperlukan untuk berangkat seperti no booking, passpor dan berkas lainnya. Timbang dulu bawaan Anda karena excess baggage mahal banget, teman saya sampai biayanya seharga satu tiket. Dan jangan lupa ketika kita diminta menulis data saat di pesawat, isi dengan benar.

Jadi supaya ga perlu bongkar-bongkar tas yang udah masuk di kabin, siapkan alat tulis sendiri jika malas meminjam ke teman sebelah (kadang teman sebelah juga ga pegang alat tulis). Dulu saya kira itu hanya untuk perjalanan saja, ternyata itu melekat di passpor kita (biasanya disteples) dan tidak boleh hilang. Bagaimana jika hilang? Menurut informasi bagian imigrasi di kampus saya belajar, harus ke kantor polisi terdekat untuk laporan barang hilang.

Masalah yang perlu diperhatikan adalah Student Visa kita hanya berlaku sementara 90 hari sebelum bisa diperpanjang jadi satu tahun. Dan jika sudah satu tahun, kita tetap wajib lapor diri tiap maksimal 90 hari yang dihitung dari kedatangan kita di kantor imigrasi bandara, bukan dari awal kedatangan. Kebetulan saya tiap dua bulan pulang, jadi tidak perlu lapor diri karena otomatis tidak pernah mencapai batas maksimal. Nah teman saya yang tidak pernah pulang, ternyata ketahuan hampir lewat dua bulan dari 90 hari itu dan terancam dengan denda 2000 baht di imigrasi, atau jika ketahuan di bandara bisa kena 5000 baht, angka yang kalau dirupiahkan sekitar hampir 2 juta.

c. Lapor diri ke Kedutaan Besar RI

Ketika sampai di negara tujuan, jangan lupa langsung ke kedutaan besar RI di sana (minimal beberapa bulan) kecuali kalo tidak perlu kiriman dari DIKTI atau pemberi beasiswa yang berasal dari lingkungan depertement di Indonesia. Jangan heran kalau kita tidak disambut hangat oleh staff di sana karena memang staff diharuskan sedikit galak, penuh curiga, dan lain-lain, walau menurut tebakan saya di hati mereka gembira ada orang sebangsa yang berada di negara tersebut. Untuk yang Bankok bisa lihat tulisan saya sebelumnya: https://rahmadya.com/2013/10/02/lapor-diri-di-kedutaan-besar-republik-indonesia-kbri-bangkok/

Terakhir, berusahalah mempelajari bahasa tempat tujuan, karena saya sering ditantang oleh imigrasi di bandara dengan bahasa Thai, dan sepertinya mereka kecewa waktu saya tidak bisa jawab. O iya, banyak orang Indonesia yang setelah lulus menjadi pengajar di kampus Thailand dan beberapa sudah siap menjadi warga negara Thailand. Sebaiknya kita pulang dan membangun negara kita yang walau bagaimanapun keadaannya tetap tanah air kita.

Habis Update Connectify LAN dan Wireless LAN Error ..

Bermula dari update windows yang terpending, muncul masalah di connectify. Connectify adalah salah satu software yang fungsinya mirip tethering pada android yaitu sharing koneksi internet. Koneksi internet yang hanya bisa dilakukan lewat kabel, dengan software ini laprop kita dapat berfungsi sebagai hotspot. Tadinya mungkin connectify error karena harus update, ternyata ketika software tersebut saya update, malah koneksi jaringan saya error. Sempat terfikir apakah harware lan card error, ternyata setelah saya booting dengan ubuntu, jaringan ok, berarti hardware tidak bermasalah.

Untuk mengetahui dimana errornya, lakukan langkah sederhana dengan mengklik kanan computer dan pilih property. Tampak spesifikasi windows Anda, jumlah RAM, tipe 64 atau 32 bit, dan lain-lain. Di bagian kanan atas ada “device manager” yang berfungsi untuk mengetahui hardware yang ada pada komputer kita, termasuk hardware yang error tadi.

Network adapter saya, tadinya muncul tanda “!” seru yang berarti ada masalah. Saya sempat pinjam laptop teman untuk mendownload driver laptop saya (Thosiba Satellite M840). Setelah itu saya coba install dengan driver tersebut, tetapi gagal. Jika saya klik kanan pada network dan pilih “detect new hardwware” laptop mampu mendeteksi network card saya tetapi ketika install driver otomatis, muncul pesan kesalahan.

  1. Langkah Klasik, Restore System

Langkah andalan saya adalah restore system, dan biasanya berhasil, begitu saran dari mbah google. Tetapi sayangnya restore point saya tidak ada yang berhasil, padahal tiap kali restore membutuhkan waktu yang cukup lama sekitar 15 menit. Giliran selesai, ada pesan restore gagal.

  1. Langkah Modern, Driver Cleaning

Semalaman saya surfing di internet untuk mengobati masalah ini. Beberapa menyarankan driver cleaner, misalnya CCcleaner, Wintools.net, System Ninja, dan sejenisnya, tetapi frustasi juga karena mereka hanya memasarkan produk mereka, sementara driver tidak kunjung benar. Bahkan dari youtube ada yang kasusnya seperti saya, tetapi sampai selesai dia hanya menunjukkan errornya saja tidak ada penyelesaiannya, begitu pula ketika saya baca komentarnya hanya berisi saran2 sederhana seperti restore dan install ulang windows.

  1. Langkah Sesuai Teori, Safe Mode

Akhirnya, sesuai dengan basic dari sistem operasi pada window, dikenal istilah safe mode, dimana windows beroperasi dengan driver minimal. Langkah masuk ke save mode adalah dengan menekan F8 ketika selesai booting komputer/laptop Anda. Piliah Safe Mode. Tentu saja saat menjalankan ini, masih ada sanksi di otak saya, berhasil atau tidak. Tetapi logika saya mengatakan bahwa sebenarnya Windows mampu mendetek lan card, hanya saja ketika menginstall driver, seperti ada yang menghalangi (mungkin karena connectify atau update windows yang terpending, belum jelas juga).

Setelah masuk ke “Device Manager”, saya terkejut juga ketika merefresh dengan klik “Scan for hardware Changes” ternyata LAN berhasil terdeteksi. Tinggal dag dig dug .. setelah keluar dari safe mode dan ke mode normal, apakah terdeteksi juga. Dan ternyata , Alhamdulillah .. OK.

Akhirnya langkah pamungkas yaitu install ulang windows tidak perlu dijalankan. Semoga bermanfaat.

Tidak Bisa Receive File via Bluetooth di Windows 7

Ganti OS terkadang kita harus bisa beradaptasi dengan sistem yang baru. Salah satu yang terpenting adalah aspek komunikasi data dengan lingkungan sekitarnya baik kabel, device, maupun yang tanpa kabel, salah satunya adalah bluetooth. Komunikasi dengan bluetooth walaupun tidak secanggih wifi terkadang tetap wajib jika ingin berhubungan dengan perangkat lain seperti handphone, tablet, dan lain-lain.

Entah mengapa walaupun bluetooth sudah aktif, tetap saja ketika tablet atau ponsel mengirimkan data ke laptop lewat bluetooth selalu muncul gagal terkirim “sent failed”. Tetapi jika kirim data bisa, lewat klik kanan dan pilih send to bluetooth. Jawabannya ternyata sederhana, pada menu bluetooth di windows kita harus mengetik “receive file” terlebih dahulu sebelum alat lain mengirimkan file lewat mekanisme bluetooth.

Klik receive a File sebelum anda mengirimkan file kemudian muncul jendela baru dimana Windows siap menerima file. Lokasi penyimpanan dapat juga disetting sesuai dengan keinginan kita.

Mudah bukan, semoga sedikit bermanfaat.

Teknik Text Mining dengan Matlab

Hari ini adalah hari penghakiman untuk tugas project mata kuliah Decision Support Technology (DST). Kasus yang kami pilih adalah menentukan dari puluhan juta record berisi pengarang dan tulisannya dan kita diminta mencari nama-nama yang seharusnya digabung berdasarkan field-field yang ada yaitu affiliation, konference, judul, dan kata kunci.

Kami sekelompok sepakat menggunakan tools Java dengan postgresql, sementara saya tetap setia menggunakan Matlab dengan Microsoft Access sebagai sistem basis datanya. Rekan saya yang berasal dari Thailand dan Uzbekistan cukup mahir dalam memainkan Java. Untuk tahap pertama mereka sudah berhasil melakukan cleaning data. Pengarang yang namanya sama jika affiliation-nya sama maka dikategorikan dalam satu pengarang yang sama.

Saya bertugas mensuplai data similarity dari pengarang-pengarang itu. Teknik pertama dengan mencari nama yang sama persih, menghasilkan akurasi 60%. Jika nama sama dan dicek affiliation-nya mirip, akurasi meningkat menjadi 70%. Berikutnya teknik-teknik lain digunakan mulai dari nama singkatan dan nama belakang, misalnya rahmadya trias handayanto, dicari apakah ada yang mirip r. t. handayanto? Diperoleh akurasi 80%. Rekan saya menganjurkan teknik switching nama pertama dengan nama terakhir, jadi dicari rahmadya handayanto dengan handayanto rahmadya, apakah ditemukan? Namun akurasinya hanya naik 1 persen menjadi 81%.

Selepas kuliah ISDM, saya berkumpul kembali dan saya menunjukkan bahwa saya menemukan nama-nama yang sama dengan menanggalkan nama tengah. Jadi misalnya rahmadya trias handayanto, akan saya cari dengan r. handayanto, apakah ada atau tidak. Mereka langsung mengecek satu sample data yang saya berikan, dan mereka terkejut ternyata ada beberapa nama yang tidak ditulis nama tengahnya dan memiliki affiliasi yang sama. Dan kami terkejut ketika akurasi naik 3 persen jadi 84%.

Sebenarnya masih banyak cara lain, seperti yang disarankan oleh Dr. Paul, dosen kami, misalnya missing word, spelling of word (france and germany), serta nama cina yang bermarga di depan. Untuk melihat contoh bagaimana Matlab mendeteksi dapat dilihat di youtube ini:

Looking for a Similar Name in Text Mining with Matlab

Some names has first name, middle name, and last name. The last name is a family name, except some country like Chine. Many literatures for simplicity only show the last name with abbreviation to the first and middle ones. For example Rahmadya Trias Handayanto will be written as R. T. Handayanto or Handayanto, R. T. (see e.g in IEEE: http://ieeexplore.ieee.org/search/searchresult.jsp?newsearch=true&queryText=handayanto) so we want to predict that R. T. Handayanto is similar to Rahmadya Trias Handayanto. For experiment try to type in Matlab:

As usual, I use ‘{‘ instead of ‘(‘ because I made a cell type that fit the record on database. We want to collect other name that has similar to it like r. t. handayanto. For collecting the last name you can see my other post using regular expression: https://rahmadya.com/2014/04/18/how-to-search-last-name-using-matlab/. Therefore, we just add the first and middle, or only the last name if only a single name.

The logic is we find first the index of space that indicate the first or middle name with last name. After we count the total number of name we represent only first character with point for first name and middle name. I use if-else to detect whether the name only has one name (last name).

Try using a command window to convert the name become short name. You see that now rahmadya trias handayanto became r. t. handayanto that will compare to other that similar to it using format character (see the bottom line).

For example, we have 10 data:

You can see that Ahmed Abdul-hamid and A. Abdul-hamid that has similar name, but A. Cain may be different from A. J. Cain.

The result state that there is two names with similarity of last name and abbreviation of firs name that id=3 and id=10. With function lower we change all author name into lower case in order to easily compare. Of course, to get this code we have to understand how to manipulate matrices in Matlab.

 

How to Search Last Name using Matlab

It is a hard day, because I always sleep over the mid night. Ok, it’s about text mining. We want search from the data that has a particular family name, for example, may name, rahmadya trias handayanto. Ok, because our data usually cell type (for database), use this kind of data type:

name={‘rahmadya trias handayanto’}

We use symbol { for creating a cell type that we always find in table format. The logic for searching my lastname is by finding the last space. Try using the regular expression.

index=regexp(name,’ ‘)

Don’t forget to type space between ‘ because we want to search the index of space for name. Type celldisp(index) to see the content of index, because it is cell type. Many people have more than two names, with middle name. So we have to choose the biggest index using function max.

bigindex=max(index{1})

We have to convert the name into character if we want to present the last name using char function.

charname=char(name);

key=charname(bigindex+1:end)

We use ‘+1’ because we don’t include space to our last name. You can see the instruction below, it is very easy.

Parallel Processing on Matlab

Untuk memproses 2000-an record terhadap 2 juta record jika dijalankan dengan satu proses akan memakan waktu cukup lama karena karakternya yang serial. Untuk menjalankan proses yang parallel secara bersama maka kita dapat menjalankan lebih dari satu matlab dalam satu computer. Biasanya ini dilakukan jika kita ingin memproses data berukuran besar (big data).

First, you have to change current directory of your first matlab. If we want to create with two machines, you can open your Matlab again form start menu or from your shortcut wall. For example I want to use three Matlab for computing my algorithm at the same time for faster result.

Second, things that we have to consider is the location of the result, if you have the similar name to the output, you have to separate current directory because of the conflict of output (the last output will replace the previous one).

Last, you have to count the power of your machine. I use i5 processor, and sometimes I use four processing. The picture below show my Matlab that process 3 text processing of 2 thousand of author to other 2 million author.

Parallel Processing dengan Matlab

Melanjutkan tulisan yang lalu (https://rahmadya.com/2014/04/04/mengimpor-big-data-ke-matlab/) tentang import big data ke Matlab, saya akan sharring suka dukanya mengolah big data dengan Matlab. Setelah berhasil meramu kode untuk mencari data dan mengumpulkannya dalam satu tabel untuk data kecil, ketika diterapkan ke data besar muncul masalah besar juga. Mencari 2 juta nama yang memiliki kemiripan harus saya hentikan karena 14 jam baru selesai pengarang ke 16442 yang sedang dibandingkan ke pengarang ke 1.352.700. Tobat.

Algoritmanya sederhana, misalnya kita punya 4 nama A,B,C dan D. Akan kita cek apakah di antara 4 nama itu ada sama nama belakangnya. Alurnya adalah A dibandingkan dengan B, C, dan D. Berikutnya B dibandingkan dengan C, dan D. Terakhir C dibandingkan dengan D. Jika prosesnya memakan waktu sehari maka dapat saja kita pecah jadi misalnya dua proses. Proses pertama membandingkan A,B dengan B,C, D dan proses kedua membandingkan C,D dengan B,C,D. Maka waktu prosesnya diperkirakan jadi setengah hari. Jika dibagi menjadi empat proses, jauh lebih cepat lagi. Setelah diperoleh hasil, perlu satu kode untuk menggabungkan tabel-tabel hasil pencarian yang terpisah tersebut.

Apakah memerlukan komputer yang berbeda? Ternyata tidak, Matlab dapat dijalankan lebih dari satu jendela. Coba Anda buka Matlab Anda, kemudian Anda buka lagi Matlabnya, maka Anda telah menjalankan dua mesin Matlab. Hanya saja Anda harus membedakan variabel pada proses 1 dengan proses 2 karena akan bentrok nantinya, minimal membedakan current directory jika Anda malas merubah listing programnya. Oke, kita buat data baru ujicoba:

Berikutnya jalankan kode untuk mencari nama yang sama seperti tulisan yang lalu dengan bantuan fungsi strfind Matlab (https://rahmadya.com/2014/04/07/mencari-kata-dalam-text-dengan-matlab/). Misal saya memecah menjadi 2 maka dari total 20 nama, maka proses pertama i=1 sampai 10, proses kedua i=11 sampai 20.

Perhatikan untuk proses 1 diperoleh hasil yang banyak karena memang data cenderung terbagi dua karena sementara proses 2 hanya diperoleh satu yang sam yang kebetulan sudah diperoleh juga di proses 1. Seandainya data memang terbagi dua, maka proses 2 tidak menemukan kesamaan.