Particle Swarm Optimization (PSO) – dengan Octave

Tulisan ini merupakan lanjutan dari tulisan sebelumnya yang menggunakan Matlab sebagai medianya. Ketika membuka Octave pertama kali, ada dua pilihan yaitu mode Command Line Interface (CLI) atau Graphical User Interface (GUI). Kita pilih yang mudah saja yaitu GUI. Tampak tampilan yang mirip dengan matlab. Untuk yang ingin menginstallnya, baca postingan saya yang lalu.

Seperti pada Matlab, Octave juga membutuhkan direktori kerja dimana M-file yang telah kita buat berada. Di sini saya harus menempatkan dua file yaitu file algoritma PSO, simplepso.m dan fungsi2.m yang merupakan fungsi tujuan (objective function) yang akan dioptimalkan.

Tampak hasil optimasi untuk 4 iterasi dengan fungsi pause yang saya sisipkan untuk melihat perjalanan program tiap operasi. Di sini sedikit berbeda, ketika Octave menjumpai fungsi pause ternyata ada pesan agar kita menekan huruf f yang artinya forward (maju).

Grafik di atas merupakan hasil plot yang kecanggihannya ga jauh beda dengan Matlab. Harga Octave pun tidak terlalu mahal, hanya Rp. 0,- alias gratis, dibanding harga lisensi Matlab versi stand alonenya (individual price) sekitar Rp. 34 juta dengan harga 1 dollar yang saat ini melambung Rp. 13.000,-.

Particle Swarm Optimization (PSO)

PSO jika diterjemahkan berarti optimasi segerombolan partikel. Partikel di sini adalah makhluk hidup seperti burung, ikan, atau lebah yang sedang mencari makanan. Mengapa mengikuti prinsip pergerakan segerombolah makhluk-makhluk tersebut? Jawabannya sederhana, karena makhluk-makhluk tersebut berhasil menemukan makanannya. PSO pertama kali dicetuskan oleh kennedy dan Eberhart pada tahun 1995 yang membahas mengenai perilaku kerumunan makhluk hidup.

Menurut beberapa paper, misalnya Sathya, yang melakukan optimasi terhadap segmentasi gambar, PSO memiliki beberapa kelebihan di antaranya:

  • Mudah diimplementasikan dan hanya sedikit parameter yang dibutuhkan.
  • Tidak ada evolusi pada operatornya, misalnya mutasi dan crossover pada Genetic Algorithms (GAs).
  • Di GAs kromosom membagi informasi sehingga pergerakan mengikuti group-nya sendiri, berbeda dengan PSO yang berkelompak, dan menurut Sathya PSO lebih robust. Sepertinya saya kurang setuju dengan pendapat yang ini, apa boleh buat kita rujuk saja.
  • PSO lebih efisien karena membutuhkan sedikit komputasi.
  • Dibanding GAs dan metode heuristik lainnya, PSO lebih fleksibel dalam menjaga keseimbangan antara pencarian global dan lokal terhadap search space-nya.

Salah satu point menarik yang dibahas oleh kennedi et al. adalah masalah collision karena jika setiap partikel menganggap ada partikel lain yang lebih “optimum” tentu saja dia akan mengarah ke sana dan terjadi tuburukan/collision. Tetapi kenyataannya tidak ada tabrakan saat burung terbang, ikan berenang, lebah menari-nari dan sebagainya.

Untuk menerapkan algoritma PSO, di sini kita coba dengan menggunakan matlab atau octave. Kita coba terlebih dahulu dengan matlab. Sebagai referensi, Anda dapat mendownload materi budi santoso dari ITS di link berikut, kemudian coba jalankan kode yang ada di dalamnya. Di sana dijelaskan dua jenis PSO dengan dan tanpa inersia. Agar lebih mudah memahami alur instruksi programnya, di bawah instruksi yang akan saya selidiki biasanya saya sisipkan instruksi pause dan titik kemo di belakang kode yang dibuat saya hilangkan titik koma-nya agar muncul di layar command window. Saya coba jalankan dengan jumlah partikel 3 dan iterasi maksimum 4.

Variabel v,x,f yang menyatakan nilai awal kecepatan, swarm, dan nilai fitness-nya dimunculkan dalam variabel yang saya lingkari di atas. Untuk menampilkan nilai minimum minftot saya hapus titik komanya agar muncul di command window ketika berhenti sejenak di tiap iterasi karena instruksi pause yang saya sisipkan. Hasilnya tampak di bawah ini dimana fitness yang terbaik adalah pada swarm ketiga (34.8627) dengan swarm 105.9045. Ini tentu saja masih belum optimal karena masih iterasi pertama.

Setelah iterasi keempat dijalankan dengan menekan sembarang tombol untuk melanjutkan akibat instruksi pause tersebut diperoleh grafik dan hasil akhir. Kita coba dengan octave, di tulisan selanjutnya

Octave – Matlab Versi Gratis

Lanjutan postingan sebelumnya yang kurang memuaskan nih, kita coba selain scilab. Silahkan donlot dari situs resminya, biar aman dari virus, sesuaikan dengan sistem operasi yang anda miliki.

Ada yang versi installer, ada yang portable, untuk lebih lengkap saya coba versi intaller saja (sekitar ratusan Mb).

Seperti biasa, khusus pemula klik saja next terus dan pilih yang default. Tunggu sampai proses instalasi selesai. Lisensinya berbasis GNU, apa itu GNU? Sebenarnya GNU itu kalo dibalik UNG dan kalo dibaca mirip UNIX kan? Sebenarnya UNIX itu rencananya open source, tetapi ditelikung sama vendor jadi berbayar, akhirnya rombongan penggemar open source “beraksi” dengan mengembangkan sejenis UNIX dengan nama UNG yang open source, hingga terciptalah Linux .. katanya. Eh selesai .. instalnya.

Coba dijalankan saja. Test dengan fungsi-fungsi dasarnya, apakah sama dengan matlab? Ternyata tampilan prosesnya agak jadul juga (muncul console window beberapa detik). Tampilannya, mirip-mirip juga sih dengan Scilab dan Matlab.

Ok, fungsi matrix dasar berfungsi dan sama dengan Scilab. Bagaimana dengan programmingnya? Pertanyaan yang sama dengan pembahasan Scilab diawal tulisan. Buka/Open direktori kerja .. kok agak lama ya prosesnya. Sebelumnya saya membuat program dengan bahasa Matlab sebagai berikut:

function y=latih(x)

y=x*2

end

Disimpan dengan nama “latih.m”, oke kita coba jalankan dengan Octave.

>> latih(3)

y = 6

ans = 6

Wow .. dapat dijalankan. Sepertinya octave lebih menarik dari Scilab. Bagaimana untuk program lainnya? Kita coba saja fungsi M-file yang ada di matlab, misalnya fungsi norm yang menghitung normal euclidean (jarak) antara satu object dengan lainnya. Yah .. ternyata fungsi norm ada juga di octave.

Ok, berhubung ada yang bertanya mengenai Fuzzy C-Means (FCM) akan kita coba menjalankan fungsi FCM Matlab di octave .. Hmmm mudah-mudahan berhasil. Mula-Mula kita harus latihan dulu membaca listing code matlab. Fungsi fcm di matlab kelihatannya sederhana tetapi dia memanggil banyak sekali fungsi-fungsi yaitu:

Copy saja seluruh file itu di direktori kerja Anda. Sebenarnya ketika kita menjalankan fungsi fcm di octave, dia akan memberikan pesan error di line tertentu, telusuri saja maka Anda akan menemukan fungsi lainnya yaitu distfcm, initfcm, dst. Ok .. jalankan sesuai instruksi pada help fcm.

  • data = rand(100,2);
  • [center,U,obj_fcn] = fcm(data,2);

Ketemu dah pusat clusternya:

  • >> center
  • center =
  • 0.59526 0.66670
  • 0.35972 0.27357

Octave

Mantap .. FCM dapat berjalan di octave .. Bagaimana dengan Jaringan Syaraf Tiruan? Fuzzy? Coba saja, ga dilarang kok .. Selamat mencoba dan menikmati software Octave yang open source dan gratis dengan bahasa Matlab.

Scilab – Matlab Versi Gratis

Matlab yang merupakan perkembangan lebih lanjut dari bahasa komputasi Fortran mulai banyak diminati oleh peneliti karena kemudahannya. Akan tetapi karena harga lisensinya yang mahal, membuat beberapa penggemar open source merakit bahasa yang memiliki struktur bahasa yang serupa dengan matlab, salah satunya adalah Scilab.

Selain Scilab, dijumpai juga Octave yang telah banyak dimanfaatkan khalayak untuk melakukan perhitungan dengan biaya nol, alias gratis. Cara pembuatan matrix dan pengoperasian fungsi aritmatika juga tidak jauh berbeda.

Tampilannya mirip matlab tetapi sederhana, tanpa adanya toolbox-toolbox. Bagaimana untuk programmingnya? Ternyata ribet juga, karena sintax yang beda banget sama matlab. File extensi untuk programmingnya pun *.sci berbeda dengan matlab yang *.m. Okelah, coba yang lain.

Memahami Function Matlab

Kalo kita searching internet, bidang informatika ternyata banyak cabangnya dari yang cenderung ke hardware hingga yang cenderung ke software. Jika kita menjumpai seseorang dengan gelar S.Kom kita tidak bisa memastikan yang bersangkutan bisa mengutak-atik jaringan, merancang software, atau bidang-bidang spesifik lainnya. Apalagi jika gelarnya M.Kom atau Ph.D lebih spesifik lagi bidangnya.

Beberapa peneliti ingin mengetahui atau membandingkan dua jenis metode, tentu saja dengan alat ukur yang adil, dimana tidak membandingkan dua metode dengan dua bahasa yang berbeda. Oiya, beberapa literatur membedakan metode dengan algoritma, walaupun ada juga yang menganggapnya sama. Untuk memperbaiki kinerja suatu metode, beberapa peneliti menggunakan bahasa yang mudah, yaitu Matlab. Bahasa ini sulit dibeli oleh individu, dan biasanya institusi yang membelinya karena mahal. Belum lagi kontroversi dari sisi pendidikan dimana Matlab dituduh tidak melatih siswa untuk sungguh-sungguh belajar programming. Banyak pertanyaan-pertanyaan muncul mengenai kode bahasa matlab yang kebanyakan dalam bentuk function dan toolbox.

Berbeda dengan toolbox lain seperti WEKA, SPSS, dan sejenisnya yang melakukan proses data mining dengan menyembunyikan source code, Matlab sebenarnya menunjukan kode yang digunakannya. Jadi jika kita diminta menelusuri algoritmnya, tinggal buka saja M-file yang digunakan. Misalnya kita akan mengkluster dengan Fuzzy C-Means (FCM), secara sederhana kita dapat mencari kluster secara langsung baik lewat GUI atau function. Coba buka kode yang ada dengan mengetik edit fcm di command window. Jika muncul pesan, klik saja Yes.

Untuk bisa membaca kode tersebut, sedikit diperlukan “usaha”. Apalagi jika belum pernah sekalipun belajar bahasa pemrograman. Jika tidak pernah, maka yang disalahkan adalah institusi tempat mahasiswa belajar informatika, karena salah satu dasar seluruh jenis kurikulum informatika (TI, SI, SK, ILKOM) pasti belajar dasar-dasar pemrograman. Di tulisan yang lalu, saya menyinggung fungsi objective FCM. Nah dimanakah letak fungsi objective itu di function matlab?

Jika Anda teliti ternyata fungsi fcm memanggil fungsi stepfcm, maka buka lagi fungsi tersebut dengan mengetik edit stepfcm. Di situ dengan jelas fungsi yang dalam bentuk matematisnya adalah sigma.

Ternyata ada juga fungsi distfcm, ok. Buka saja dan pelajari lagi. Dan untungnya kita tidak terlalu pusing-pusing menerjemahkan karena ada baris komentar yang diawali dengan simbol % yang fungsinya menjelaskan satu line code.

Jika Anda ingin membuat dalam bahasa pemrograman open source, bisa menerapkannya di octave, scilab, dan sejenisnya yang dapat diunduh gratis dari internet. Ok, semoga bermanfaat.

Prediksi dengan Matlab

Prediksi adalah memperikiran hasil yang akan datang berdasarkan kondisi terkini. Biasanya dipergunakan untuk memperkirakan kejadian di waktu yang akan datang, misalnya harga saham, bencana, dan sebagainya. Terkadang kita memprediksi dari rentetan beberapa data seperti harga saham, komposisi kimia dan sebagainya. Untuk matlab terbaru sudah tersedia fasilitas GUI, tetapi versi yang lama dapat menggunakan toolbox neural network fitting tool.

Sebagai contoh time series dari 12 data, kita akan melatih NNs dengan data tersebit dimana dua kolom pertama sebagai data training dan satu kolom terakhir sebagai target (t+1). Buka GUI NNs Fitting Tool lewat jendela start atau dengan mengetik nftool di command window.

Sebelumnya masukan terlebih dahulu data dan targetnya di workspace karena akan kita gunakan nanti. Klik Next dilanjutkan dengan memasukan data dan target. Pastikan tombol Next muncul, jika tidak arahkan option button di rows.

Tambahkan Hidden Neuron seoptimal mungkin, di sini saya menggunakan nilai default yang tidak terlalu banyak, 20. Teruskan hingga proses pelatihan dan jangan lupa menyimpan hasilnya.

Terus saja menekan Next hingga proses pelatihan selesai. Jangan lupa menyimpan hasil pelatihan, misalnya net1. Setelah itu ujilah dengan menjalankan hasil pelatihan NNs tersebut. Untuk menguji hasil training, simulasikan saja net1 dengan data pelatihan.

Sepertinya ada empat data yang error dari 12 data yang dilatih. Perbaiki dengan menambah hidden neuron dan jumlah data untuk pelatihan. Untuk memprediksi, masukan dua data berurutan untuk mengetahui data prediksinya, misalnya [18980 18990] yang akan menghasilkan.

Cek, apakah benar perkiraan ketiga 19032? Waulahu a’lam, namanya saja prediksi.

Mapping Toolbox Matlab (Membuka Shape file ArcView)

Pada Matlab yang telah kita install tersedia file contoh untuk memanipulasi peta yang terletak di folder \toolbox\map\mapdemos\. Buka mapviewer, untuk jelasnya lihat tulisan saya sebelumnya.

A. Mengimpor Raster Data

Raster data adalah data yang berupa pixel (berwarna atau hitam putih), atau gampangnya data gambar. Klik fileImport from file yang dilanjutkan dengan memilih file boston.tif yang berada di folder tersebut di atas. Tampak peta boston pada jendela mapview. Cukup mudah dan praktis bahkan dibanding membuka lewat arcview itu sendiri.

Untuk mengetahui skalanya, mudah saja, isi Map units dengan pilihan US Survey Feet, maka skala akan muncul dengan sendirinya. Yang menarik, skala ini akan otomatis berubah ketika kita melakukan proses zooming pada mapview dengan cara schrolling mouse kita.

B. Mengimpor Data Vektor

Data vektor adalah data yang berupa titik, garis, atau poligon yang dibuat secara matematis (lewat arcview, autocad, corel draw, dll). Untuk contoh kasus yang tersedia datanya di matlab adalah jalan-jalan yang ada di boston.

boston_roads = shaperead(‘boston_roads.shp’);

Perintah di atas membaca shapefile yang berisi koordinat jalan di boston. Hasilnya adalah data yang oleh mapviewer dikenal dengan nama ‘geographic data structure’. Terlebih dahulu konversi dari meter menjadi US survey feet. Gunakan fungsi unitsratio. Karena yang harus dikonversi adalah seluruh jalan di boston dari meter ke feet maka perlu iterasi untuk seluruh elemen boston_roads.

  • surveyFeetPerMeter = unitsratio(‘survey feet’,’meter’);
  • for k=1:numel(boston_roads)
  • boston_roads(k).X=surveyFeetPerMeter * boston_roads(k).X;
  • boston_roads(k).Y=surveyFeetPerMeter * boston_roads(k).Y;
  • end

Mengapa ini perlu dilakukan? Karena jika satuan tidak sama tentu saja boston_roads tidak akan matching dengan gambar/image boston. Coba sendiri sampai menghasilkan peta sebagai berikut:

 

 

Mapping Toolbox Matlab

Sesuai dengan namanya, mapping berarti berhubungan dengan peta. Salah satu aspek penting dari peta adalah spatial data, yaitu data yang berhubungan dengan lokasi/koordinat. Untuk mengelola data non spasial, selama ini matlab sanggup mengatasinya, namun bagaimana dengan data spatial? Sebenarnya ada satu lagi jenis data yang agak rumit yaitu spatio-temporal, dimana selain berkaitan dengan koordinat, juga dengan waktu (time). Tetapi untuk time, tidak terlalu masalah, hanya saja spatial yang menjadi pokok permasalahan kita saat ini.

Untuk membuka mapping toolbox dapat diakses dengan menekan starttoolboxesMapping dan pilih toolbox untuk mengelola file map yang biasanya diimpor dari ArcGIS. Atau kalau mau lebih cepat ketik mapview di command window.

Untuk mempelajari toolbox ini lebih dalam ada baiknya Anda membaca menu help dari Matlab. Kalau ingin lebih nyaman bacanya bisa download versi pdf dari help tersebut, tentu saja setelah terkoneksi ke internet. Di bagian bawah klik saja Mapping Toolbox User’s Guide di akhir help.

Maka Anda akan mendownload dari situs mathworks tentang mapping toolbox yang besarnya puluhan Mb. Berikut saya coba untuk mengimport shapefile dari ArcView. Shapefile adalah file dari ESRI tentang data spatial suatu region. Klik dari menu Import from file dan cari shapefile yang Anda miliki.

Gambar di atas adalah peta wilayah Sakhon Nakhon di provinsi Khong Kaen Thailand. Koordinat serta peta wilayah dengan batas-batasnya terlihat dengan jelas. Bahkan layer ikut terimpor ke dalam Matlab, tinggal kita mengolah lebih lanjut dengan toolbox lain di Matlab seperti Algoritma Genetik, Neural Netwok dan lain-lain sesuai dengan kebutuhan. Lanjut ke Import Raster dan Vector Data.

Bersahabat dengan Sigma

Bagi orang-orang ilmu komputer simbol sigma (∑) sudah menjadi santapan sehari-hari. Mau dihindari, tapi selalu ketemu. Apa boleh buat, terpaksa ditelan bulat-bulat. Simbol ini sebenarnya mempersingkat bahasa kita yang artinya “jumlah”. Tetapi kebiasaan pengajar di Indonesia yang suka melihat mahasiswanya pusing, malah menakut-nakuti. Perhatikan fungsi objektif yang harus diselesaikan oleh Fuzzy-CMeans clustering, dibikin gampang ya gampang, dibikin susah ya susah aja:

(1)

Misalnya tukang ojek kerja dari hari senin sampai kamis (i=[1;4];), dengan penghasilan pada hari senin, selasa, rabu, kamis, berturut-turut 50, 70, 80, 100 ribu. Kalau dibuat tabelnya di matlab:

Misalnya ada rumusan seperti ini:

(2)

Dimana Y= total setoran, i= hari ke-i, dan xi = setoran hari ke-i. Kan sama saja dengan pernyataan “setoran lue dari hari senin sampai hari kemis berape?”. Tukang ojek-nya terus buka Matlab:

Ketemu hasilnya 300 ribu. Tentu saja bukan hanya untuk tukang ojek, bisa juga untuk dosen yang nyambi sana nyambi sini. Dari SD kita memang sudah dikenalkan dengan tabel dan saat kuliah sudah terbiasa dengan yang namanya Excel (spreed sheet) untuk mengolah data. Tetapi untuk ilmu komputer yang terkadang excelnya aja tidak bisa mengimport data yang saking besarnya, pemahaman tentang penyakit sigma menjadi wajib. Coba saja download dan import ke excel yg ukurannya di atas 1 Gb data di www.kaggle.com.

(3)

Apalagi nih? Misalnya, karena motornya ditarik akibat beberapa bulan jadi buronan dealer, si tukang ojek jualan di kampung oncom tiga jenis gorengan, oncom, misro, combro. Supaya gampang nulisnya j1, j2, j3. Seperti biasa dia dagang empat hari, senin sampai kamis dan lagi-lagi supaya gampang i1,..,i4. Tiap hari dicatet keuntungan tiap gorengan per hari (dalam ribuan):

Mungkin karena nama kampungnya kampung “oncom”, makanya oncom lebih laris. Kemudian di hari kamis pas mau tutup, satpol pp menghampiri dan minta 10% untuk pajak. Jadi harus dihitung dulu penghasilannya dari hari senin, kembali dia buka Matlab:

Ketemu hasilnya, total = 99 ribu. Kasih dah ke satpol PP pajak 10% = 5 ribu …. karena ngakunya cuma dapet 50 ribu. Sekian dulu tulisan hiburan akibat baca2 jurnal yg ada rumusan kayak begini:

Objective Function

Sumber Data untuk Riset Komputasi

Data merupakan komponen penting dalam suatu riset. Sumbernya bisa secara langsung (data primer), bisa juga berasal dari sumber lain (data sekunder). Untuk menguji akurasi dari metode yang kita temukan mau tidak mau harus diuji dengan data real. Dengan berkembangnya internet, saat ini banyak lembaga-lembaga riset yang menyediakan data secara cuma-cuma. Tentu saja khusus riset tentang metode perbaikan dari metode yang ada karena jika risetnya tertuju pada lokasi tertentu maka mau tidak mau kita mengambil data dari lokasi tersebut.

Salah satu situs yang dapat dijadikan sumber data adalah https://archive.ics.uci.edu/ml/datasets.html yang berfokus pada machine learning dan intelligent system yaitu teknik-teknik yang dipakai dalam proses data mining dan decision support system. Situs ini berisi data-data yang sudah digunakan sejak tahun 1987 oleh David Aha ketika masih menjadi mahasiswa di UC Irvin.

Situs lainnya ada yang unik karena selain menyediakan data juga sebagai tempat kontes akurasi dalam menangani “big data” dengan hadiah yang lumayan besar. Dapat di akses di http://www.kaggle.com/ dengan terlebih dahulu sign up jika Anda belum memiliki akun. Karena bekerja dengan format big data maka pastikan akses internet Anda cepat karena data yang di download besarnya terkadang dalam gigabyte.

Selain mendownload dan mengikuti kontes/lomba kita dapat juga menguji hasil olah data yang telah kita lakukan dengan mengupload data hasil oleh sesuai format yang diminta (biasanya csv) dan langsung mengetahui rankingnya walaupun kontes sudah tidak dilombakan lagi dan pemenangnya sudah diperoleh.

Doctoral Research

Alhamdulillah setelah mengambil beberapa kredit mata kuliah tibalah saatnya melakukan riset disertasi. Sebelum melakukan riset, mahasiswa doktoral biasanya mengikuti beberapa kredit perkuliahan terlebih dahulu. Besarnya bervariasi, dari yang satu tahun, dua tahun, bahkan lebih. Tetapi ada juga universitas yang tidak memerlukan perkuliahan, melainkan langsung riset walaupun jarang dijumpai (biasanya kampus di Jepang). Ada juga kampus yang melakukan riset dan kuliah secara bersamaan. Di Indonesia sendiri hampir semua kampus yang membuka program doktor terlebih dahulu mengikuti perkuliahan. Di AIT tempat saya kuliah, karena kurikulumnya mengadopsi MIT mau tidak mau harus mengikuti perkuliahan ketat. Jika IPK masih di bawah 3,5 (untuk 18 sks) terpaksa harus mengulang hingga tercapai IPK minimumnya. Jika tiga semester tidak terpenuhi mahasiswa itu terpaksa drop out.

Berbeda dengan riset sebelumnya (sarjana dan magister) disertasi mengharuskan peneliti memberikan kontribusi terhadap pengetahuan yang menjadi bidang penelitiannya. Seberapa besar kontribusinya? Hal ini tergantung dari institusi di mana mahasiswa S3 itu berada. Kebanyakan, mahasiswa doktoral hanya berfokus kepada bagian kecil saja dari kontribusi ilmu yang ada. Yang jelas melaksanakan riset disertasi tidak seperti ingin memperoleh hadiah nobel. Untuk menemukan sedikit konstribusi itu saja membutuhkan waktu bertahun-tahun. Apalagi adanya aturan untuk lulus, riset harus sudah diterima untuk dipublish di jurnal internasional dengan impact factor tertentu yang mengikuti aturan kampus. Padahal waktu dari submit hingga diterima terkadang sampai beberapa bulan dan itupun harus beberapa kali korespondensi untuk perbaikan naskah.

Problem Statement

Menemukan permasalahan merupakan syarat untuk melakukan riset. Mudah diucapkan tetapi sulit dilaksanakan. Mengapa demikian? Dalam kehidupan sehari-hari tidak semua permasalahan harus kita selesaikan sendiri, terkadang jawabannya sudah tersedia dari pengalaman orang-orang yang pernah menyelesaikannya sehingga tidak perlu berupaya lagi mencari sendiri jawabannya. Begitu pula dengan riset terkadang permasalahan sudah ada jawabannya baik dari buku maupun paper jurnal yang telah beredar. Bahkan menemukan jawaban sendiri murni pun sudah sulit, terkadang kita hanya memperbaiki jawaban yang telah ditemukan oleh peneliti lain dari sisi kecepatan, efisiensi, dan improvement lainnya. Oleh karena itu peneliti harus kuat dari studi literatur.

Studi Literatur

Kampus yang baik biasanya menyediakan akses gratis terhadap jurnal-jurnal internasional agar memudahkan mahasiswanya mencari “state-of-the-art” (novelty) dari bidang risetnya. Agak sulit karena jurnal terbitan saat ini pun sebenarnya hasil riset setidaknya setahun yang lalu. Masalahnya adalah kita harus mengumpulkan sebanyak mungkin riset-riset yang mendukung bidang yang akan kita teliti. Oleh karena itu perlu mengetahui beberapa trik yang banyak disarankan oleh rekan-rekan peneliti antara lain:

1. Mencari Jurnal Review

Paper ini berisi artikel tentang riset terkini bidang tertentu. Walaupun penulisnya tidak meneliti langsung tapi paper-nya banyak disunting orang karena banyak pembaca yang membutuhkan permasalahan apa saja yang sudah diselesaikan oleh periset-periset serta problem apa saja yang menjadi trend dan banyak diteliti saat ini. Papernya berisi rujukan ke paper-paper lain yang dapat kita jadikan rujukan. Memang meneliti yang enak adalah meneliti yang orang lain jarang yang meneliti, tetapi nanti muncul permasalahan saat akan mempublishnya. Beberapa jurnal internasional cenderung menerima naskah yang “menjual” yang artinya yang sedang trend saat ini. Logis saja menurut saya karena makin banyak yang mendownload / membaca makin naik peringkatnya. Peringkat biasanya berdasarkan berapa orang yang menjadikan paper dalam jurnal itu sebagai rujukan (impact factor).

2. Buku Kumpulan Jurnal

Buku ini berisi kumpulan paper-paper yang berfokus ke bidang riset tertentu. Sebenarnya ini mirip no.1 hanya saja di sini pembaca tidak perlu mencari paper rujukan karena buku tersebut sudah melampirkan paper rujukan pada buku tersebut. Biasanya bab I atau bab pendahuluan berisi satu paper jenis review yang membahas peneliti-peneliti yang menyelesaikan permasalahan tertentu disertai trend risetnya dan kita tidak perlu “berkeringat” mendownload jurnal yang akhirnya sia-sia karena tidak sesuai dengan riset kita. Kelemahannya adalah biasanya buku kumpulan jurnal terlambat hampir di atas lima tahun dan dikhawatirkan permasalahan kita sudah terjawab oleh paper yang lebih baru. Tetapi karena bentuknya yang berformat buku, pembaca lebih mudah mengikuti karena tulisan sedikit diberi tambahan (teori dasar, trik-trik) agar mudah dipahami (tentu saja agar bukunya laku terjual).

Untuk bidang-bidang tertentu seperti mechantronik, robotika, dan bidang terapan lainnya, terkadang agak sulit menemukan metode/teori baru. Biasanya paper yang ada adalah menerapkan teori terhadap kasus khusus yang belum pernah/jarang ditemui, misalnya robot kaki empat yang bisa menuruni tangga cocoknya dengan teknik “A”, dan sebagainya. Dan jurnal yang menerima biasanya meminta peneliti memberikan bukti rekaman agar yakin bahwa memang terbukti bisa diselesaikan dengan alat yang dirancang dengan teknik “A”.

Demikian tulisan singkat ini, siapa tahu bisa membantu, dan jujur saja saya juga baru sampai pada tahap ini. Kalau ada “jurus” lain silahkan berbagi ya.

Free & Open Solutions for Geoinformatics-Asia conference

Dari tanggal 2 sampai tanggal 5 Desember di kampus AIT diadakan conference tentang software open source Geoinformatic. Berhubung ada kesibukan di imigrasi, saya sendiri tidak bisa menghadirinya. Acara dihadiri oleh berbagai kalangan yang berpengalaman di bidang software open source GIS. Ketika makan di kedai yang deket acara seminar tersebut, saya menjumpai rekan-rekan dari Indonesia yang ikut serta seminar. Salah satunya dari komunitas openstreet yang menyediakan layanan “crowd sourching” agar seluruh jalan terpetakan dan dapat digunakan secara bersama-sama dengan gratis.

Untuk mengetahui apa itu FOSS4G-ASIA, ada dapat mengakses situsnya langsung di sini. Saya sempat sedikit berdiskusi dengan tamu dari negeri sendiri mengenai open source yang ternyata menyediakan lengkap dari polygon, hingga kode-kode yang untuk software berbayar seperti Arcview, ArcGIS, tidak diperlihatkan. Hmm .. boleh dicoba nih QGIS yang web-based.

Salah satu pemateri

Memulai Quantum GIS Desktop (QGIS) Versi 2.6

Untuk memulai software ini ada baiknya kita sedikit membaca teori tentang Geographic Information System (GIS) yang banyak beredar di internet. Dimulai dari jenis data yang diolah oleh GIS (raster atau vektor), istilah-istilah yang digunakan seperti landuse, aspect, geospatial, dan sebagainya, harus benar-benar dipahami, minimal yang akan kita olah di GIS. Misalnya saya akan membuat informasi mengenai land use di daerah tertentu (misalnya pathumtani, Thailand). Untuk mengetahui bagaimana cara menginstall software GIS gratis ini dapat dilihat di post sebelumnya.

Figure 1 Mengeset Proyeksi

Langkah pertama adalah Anda masuk ke properties dan mengeset projection yang sesuai, di tempat kami adalah WGS84 UTM ZONE47N. Setelah itu coba mengenali icon-icon yang bertebaran di sekitar jendela QGIS. Setelah itu cari data yang Anda inginkan, bisa lewat internet, bisa juga dari instansi-instansi terkait. Di sini saya memiliki data wilayah, landuse, dan jalan, semuanya berupa shapefile (ekstensi *.shp).

Figure 2 Proyeksi yang Sesuai Wilayah

Berikutnya buat tiga layer yang berisi peta wilayah, landuse, dan jalan raya. Ekstensi yang dibuka adalah shapefile (shp). Tambahkan label untuk menunjukan nama suatu lokasi, jalan, atau pemanfaatan wilayah sesuai dengan data yang dimiliki.

Figure 3 Memilih Simbol yg Ditampilkan

Tentu saja kita harus memahami attribute yang ada di tabel. Biasanya instansi yang memiliki data tersebut menyediakan juga data dictionary yang menjelaskan maksud istilah-istilah tersebut. Jika sudah, coba anda buat versi siap cetak (berupa file pdf atau image). Lakukan langkah export seperti pada Arcview, dengan penambahan berupa judul, legend, skala, dan sebagainya. Berikut hasil export-nya, sorry, agak terburu-buru buatnya. Selamat mencoba.

Figure 4 Hasil Layout Keluaran (PDF)

Installing QGIS 2.6

Kita sudah lama mengenal Arcview, Arcgis, Arcinfo, dan sejenisnya yang merupakan produk dari ESRI. Software untuk mengolah data spatial itu merupakan software berbayar yang cukup ampuh dan sudah banyak digunakan baik oleh instansi pemerintah maupun swasta. Tapi dengan perkembangan kebutuhan yang pesat, pengguna menginginkan aplikasi yang cocok untuk kasus-kasus tertentu, untuk bidang yang lebih spesifik. Karena software berbayar tidak menyediakan source code maka agak kesulitan jika ingin membuat aplikasi khusus karena harus membuat code program terlebih dahulu. Beberapa pengembang menyadari hal ini dan membuatkan beberapa aplikasi untuk mengelola GIS dengan source code yang bebas digunakan dengan syarat tertentu (open source). Salah satu aplikasi yang terkenal adalah Quantum GIS atau sering disingkat QGIS.

Buka situs resmi Quantum GIS (QGIS) dan download versi terbarunya, jangan lupa sesuaikan pula dengan sistem operasi yang anda miliki, termasik 32bit atau 64 bit. Ketika selesai mendownload, anda diminta memilih desktop atau webgis.

Untuk tahap awal, install versi desktopnya dulu. Setelah itu Anda diminta dimana lokasi downloadnya. Pilih salah satu hingga tombol next muncul.

Terakhir kita diminta memilih paket mana saja yang akan kita install, perhatikan ada juga pilihan GRASS GIS. Paket ini sangat membantu jika Anda mempelajari remote sensing.

Klik “next” terus ketika diminta, dan beberapa kali kita diminta accept term dan kondisi, baca jika Anda sedang belajar bahasa Inggris.

Salah satu keunggulan software open adalah tersedianya sarana pembantu (help) yang biasanya sudah termasuk ketika kita menginstallnya. O iya, tanggal 2 Desember 2014 akan diadakan pertemuan dari pengembang-pengembang software GIS open di kampus AIT.

Cara kerja serta konsep-konsep yang ada di Arcview mirip dengan Qgis, mungkin beberapa istilah sedikit berbeda seperti Extensions pada Arcview, pada Qgis istilahnya Plugin.

Berikutnya adalah mempelajari cara kerja software ini agar dapat membantu kita menyelesaikan kasus-kasus yang berhubungan dengan spatial data. Jika pada tulisan yang dahulu pada digitalization kita menggunakan image dari foto, google, dan sejenisnya, hasilnya mungkin kurang tajam. Gunakan Open Street Map (OSM) yang dapat diakses dari situs ini.

Engkau Masih Tetap Guruku ..

Ketika SMP dulu guru saya sering bercanda kalau profesi pengajar itu pasti doanya baik. Semua guru katanya pasti bedoa agar anak didiknya pandai. Apakah semua profesi seperti itu? Ternyata katanya bisa saja tidak. Dokter misalnya, bisa saja doanya semoga banyak orang yang sakit. Saya cuma bisa senyum-senyum saja, toh kami sekelas hanya menganggapnya lelucon dan selingan ketika dia mengajar. Ada lagi yang mengatakan bahwa pengajar itu jika yang diajarkan tepat, mendapat dua pahala, tetapi jika kurang tepat akan mendapat satu pahala, jadi jangan takut mengajar, walaupun saya sempat dibilang “sotoy” di komentar, yang saya tanya temen2 artinya itu sok tahu. Yah .. ga papa lah.

Pahala yang mengalir terus

Saya sering mendengar hadits yang mengatakan bahwa ketika seorang wafat, putuslah amal perbuatannya kecuali tiga hal: ilmu yang bermanfaat, amal jariyah dan anak yang sholeh/sholehah. Jadi status pahala pengajar itu akan mengalir terus walaupun yang mengajarkan sudah wafat, tentu saja ada kata “bermanfaat”, walaupun terkadang kita menganggap sepele dan tidak bermanfaat oleh kelompok lain ternyata sangat bermanfaat.

Tidak selalu kita belajar dari guru tentang ilmunya

Dari pengalaman saya sekolah dan kuliah, hingga saat ini sebagian ilmu yang diajarkannya tidak secara langsung saya manfaatkan. Bahkan sampai oleh rekan saya yang “keluar” dari profesi mengajar mengatakan ilmu itu tidak ada gunanya. Saya sedih sekali mendengarnya, apalagi keluar dari mulut teman yang pernah sama-sama mengajar. Tetapi benarkah demikian? Di salah satu grup facebook bahkan diupload gambar lucu yang berisi tulisan rumus-rumus integral kalkulus yang rumit-rumit, kemudia di bawahnya muncul tulisan: “jujur saja .. apakah yang kita pelajari kita gunakan saat ini?”. (source gbr 1).

Repotnya adalah negara kita menyukai segala sesuatu yang instan. Kurang menghargai proses, apalagi prosesnya panjang tak terlihat ujungnya. Kita gemar sekali protes dan mempertanyakan segala sesuatunya. Ada bagusnya menurut saya, tapi lebih baik lagi cari jawabannya sendiri, searching di internet, baca sejarah negara-negara yang maju, dan sebagainya. Guru itu paling capek dan sebel  menjawab pertanyaan mengapa materi ini diajarkannya. Dengarkanlah keindahannya sampai selesai, jangan kau intrupsi orkestra indah yang sedang berjalan ini.

Namun kalau saya renungkan, hampir selalu saya meniru apa yang diajarkan guru kita terlepas dari materi/bahan ajar. Ketika guru matematika SMP saya mengecek jawaban secara bersama-sama, saya kagum ketika dia menghitung jawabnnya tanpa coret-coretan, alias di luar kepala. Bagaimana guru bahasa Indonesia SMA saya melakukan komposisi kalimat yang singkat, padat, dan mengena di satu kasus, dan melakukan komposisi yang indah penuh warna-warni di kasus yang lain. Atau ketika guru Fisika saya menjelaskan rumus reaksi nuklir yang rumit menjadi sangat sederhana. Bahkan di bangku kuliah, ada satu mata kuliah yang selalu mendapat nilai buruk, tetapi saya mengagumi cerita dia, bagaimana ketika dia bepergian dengan kereta dia melihat struktur sasis kereta, suspensi, sambungan, dan sebagainya dan ini mengajarkan kepada saya untuk selalu terus berfikir di mana saja.

Ikatan guru murid tak pernah putus

Di jaman internet dengan dibanjiri fasilitas social media membuat informasi sangat cepat bahkan tetap terjaga walau orang yang pernah bersama kita sudah jarang bertemu lagi. Tentu saja ada buruknya, tetapi kita ambil saja sisi positifnya. Terkadang ada rasa puas ketika melihat anak didik kita setelah lulus sukses menjalani karirnya. Dan sedih pula jika terjadi hal sebaliknya. Ketika saya mengajar menggambar dengan komputer, saya sempet bertanya dalam hati mengapa ada seorang siswa yang ikut belajar walaupun tidak terdaftar di absensi. Walaupun bisa saja saya mengusirnya, tetapi saya biarkan (hanya beberapa sesi ikutnya). Saya termasuk pengajar yang terlihat dari luar “cuek”, “masa bodoh”, apakah siswa itu mengerti atau tidak, tentu saja itu luarnya saja, he he. Tidak lama kemudian, rekan dosen yang lain ketika senggang mengatakan bahwa ada seorang siswa bimbingan tugas akhirnya yang ikut mata kuliah gambar saya, waktu itu memang saya mengajarkan menggambar meja dan bangku tiga dimensi ketika ada siswa tersebut. Ternyata siswa tersebut baru saja diterima bekerja sebagai drafter. Ketika ditest, kebetulan soalnya menggambar meja tiga dimensi, tentu saja dia bisa mengerjakan dan langsung bekerja di sana.

Jadi jangan liat dari luarnya saja, terkadang ada guru yang “sengaja” memperlihatkan kalau dia tidak menyukai/tidak puas dengan kita, padahal di dalam hatinya berbeda. Ketika SMA dulu, selepas pengumuman UMPTN pasti anak kelas III akan datang ke sekolah sekedar bersalam-salaman dengan guru-guru. Ada seorang guru yang ingin saya temui, ternyata sangat sulit dan sepertinya “ngumpet”. Akhirnya saya menduga dia tidak ingin pahalanya berkurang dengan munculnya ego bahwa saya bisa sukses karena didikannya.

Waktu kuliah, saya sempat bersungut-sungut ketika ditegur oleh dosen saya. Oiya, adakah dari pembaca yang “biasa-biasa” saja ketika diusir? Saya merasa dosen tersebut sama sekali tidak memperhatikan mahasiswanya dan terkesan cuek. Dan sialnya lagi .. eitt, saya harus stop di sini. Hingga lulus tidak ada kesan apapun terhadapnya. Waktu itu memang sedang krisis moneter, jadi saya kesulitan mencari pekerjaan. Karena kehabisan stok legalisir ijazah, berangkatlah saya ke Yogya dan numpang di kos-kosan sahabat baik saya yang belum lulus. Ketika ngopi sambil memandangi gunung merapi, dia mengatakan “eh .. tau nggak Pa “X” menanyakan ke saya, gimana? Si rahmadya udah kerja apa belum?”, teman saya mengatakan “katanya belum pa”, sambil menjelaskan ekspresi sedih dosen tersebut sambil mengusap kepalanya. Saya langsung terdiam ketika mendengarnya, mungkin teman saya melihat saya terdiam karena sedih belum bekerja, padahal saya terdiam karena kaget, dosen yang selama ini saya anggap “tidak perduli” ternyata diam-diam memperhatikan siswanya walaupun sudah lulus. Seandainya teman saya tidak menceritakan hal itu mungkin sampai sekarang saya masih menganggap dosen saya itu dosen yang “tidak perduli”.

Figure 2 Fakultas Teknik UGM (Source: klik di sini)

Update: 15 Oktober 2015

Tahun 2013 saya kedatangan temen satu angkatan t.mesin, waktu itu ngobrol sampai malam di AIT Thailand, termasuk ngobrolin dosen pembimbing saya dulu. Tahun 2014 ternyata beliau dipanggil Allah, Innalillahi wainailaihi roojiun, saya baru tahu ketika teman saya satu angkatan tersebut main lagi ke kampus tempat saya belajar (2015) .. Semoga diterima di sisi-Nya, spiritmu tetap hidup di jiwa muridmu ini