Beasiswa adalah Hak Kita

Beruntunglah rekan-rekan yang sudah mengambil beasiswa karena saat ini persaingan memperoleh beasiswa cukup berat. Apalagi andalan rekan-rekan dosen non-millenial seperti saya, yaitu BPPDN/BPPLN, sudah mulai kritis kondisinya dan terancam disuntik mati.

Tinggal kini beasiswa unggulan dosen Indonesia (BUDI) yang menjadi sasaran para dosen yang ingin menebus hutang “kuliah”, alias yang belum S3. BUDI, yang merupakan skema LPDP dari departemen keuangan sulit ditembus oleh dosen-dosen rata-rata di Indonesia, apalagi untuk Indonesia timur. Logika sederhananya adalah ketika BPPDN/LN saja tidak lulus, apalagi BUDIDN/LN. Namun jangan berkecil hati, seperti nasehat pewawancara saya dahulu, harus optimis dan jalankan prinsip “coba lagi saja”. Sederhana, tapi manjur, apalagi sambil berdoa. Apalagi jika usia masih di bawah 47 tahun (batas maksimal usia pelamar BUDI).

Apa salahnya melakukan beberapa aktivitas berikut jika Anda seorang dosen yang wajib melaksanakan Tri Darma perguruan tinggi.

1. Riset. Oiya, beberapa skema riset jika ditekuni memiliki anggaran yang melebihi biaya kuliah lho. Jadi selain Facebook, pantau terus situs penelitian ini. Nah, jika kita beruntung menerima hibah, baik besar atau kecil, di Sinta akan tercatat dan bisa “dilirik” oleh calon-calon advisor kita, khususnya yang ingin ambil S3 dalam negeri. Terlebih lagi bisa diakses oleh umum, misalnya riset saya.

2. Kecakapan berbahasa Inggris. Lihat situs resmi BUDI. Di sana mensyaratkan IELTS 6.5 yang merupakan skor yang cukup sulit bagi orang teknik seperti saya. Utk BPPLN, dulu 6.0 masih diperbolehkan. Oiya, saya ikut pelatihan gratis IELST + tes dari DIKTI di Jogja dulu, dapat Skor 6.0 dan dipakai untuk studi lanjut S3 (lihat post saya dahulu), alhamdulillah lancar.

3. Indeks Scopus. Untuk yang ini, kemampuan menulis mutlak diperlukan. Terkait dengan riset, banyak syarat-syarat h-index dan sebagai penulis pertama di paper yang terindeks scopus. Menjadi anggota peneliti tidak dilarang kok. Oiya, jangan sampai belum punya ID Scopus.

4. Sosialisasi. Aktif di forum-forum atau asosiasi profesi tidak ada salahnya. Banyak kenalan di forum yang akhirnya menjadi supervisor S3.

Mungkin itu sedikit gambaran kondisi beasiswa Ristekdikti/BRIN dan bagaimana dosen mengkondisikan dengan aturan-aturan yang ada agar “menarik” di mata pemberi beasiswa. Jangan khawatir, banyak juga lho yang bukan dari pemerintah. Bisa dari kampus tujuan, lembaga internasional, kedutaan negara asing, dan lain-lain. Sekian, semoga menginspirasi.

Membuat Grafik dengan Matplotlib Python

Kelanjutan dari postingan terdahulu tentang Jupyter Notebook Online lewat Collaboration, kali ini akan dicoba untuk pembuatan grafik lewat pustakan andalan Python dalam pembuatan grafik, yaitu Matplotlib. Buka kembali Collaboration, buat notebook baru untuk mengisi instruksi berikut ini lewat File – New Notebook.

  • import numpy as np
  • x=np.array([[1,2,3],[4,5,6]])
  • y=x*2
  • import matplotlib.pyplot as plt
  • plt.scatter(x[0,:],x[1,:])
  • plt.show()

Tiga baris pertama masih membahas matriks pada postingan yang lalu. Fasilitas Array diimpor lewat pustaka NumPy. Perhatikan teknik pembuatan Matriks tersebut. Instruksi keempat mulai memanggil pustaka Matplotlib, khususnya payplot. Nah, pemilihan absis dan ordinat menggunakan teknik manipulasi matriks pada python. Perlu diingat, notas elemen matriks Python berbeda dengan Matlab. Jika matlab dimulai dari satu, pada Python dimulai dari nol. Jadi pada python x[0,:] artinya matriks “x” baris ke nol seluruh kolom, setara dengan Matlab ‘x(1,:)’ baris satu seluruh kolom. Jalankan dengan menekan tombol “Run” di kiri instruksi.

Fungsi plt.scatter bermaksud memanggil pustaka matplotlib, khususnya jenis plot “scatter”. Parameter yang dibutuhkan adalah sumbu absis dan ordinat. Fungsi “plt.show()” akan menampilkan grafik scatter. Jika ingin informasi lebih jauh, bisa mengetik “help(plt)”.

Selamat mencoba, semoga bermanfaat.

 

Merubah Bahasa Inggris ke Indonesia Pada Windows 10

Ketika membeli laptop, saat pertama kali dinyalakan, maka Windows langsung terpasang dengan beberapa setingan yang harus diselesaikan. Waktu itu dipilih bahasa tertentu, misalnya Bahasa Inggris (English). Karena pada laptop tersebut hanya Windows yang berlisensi, maka harus menginstal yang lainnya misalnya Ms Office. Kebetulan tidak tersedia di toko tersebut. Terpaksa ke toko lain yang menjual program. Ketika tiba di toko yang menjual MS Office, dan iseng minta diganti bahasa sistem operasinya, toko tersebut mengatakan jika Windows terlanjur disetting bahasa tertentu, maka tidak bisa dirubah, harus instal ulang Windows. Tentu saja aneh, tidak mungkin Windows sebodoh itu merancang OS. Akhirnya iseng-iseng googling, ketemu langkah-langkahnya di Youtube. Sederhana tetapi tetap saja ribet bagi orang yang sibuk. Berikut kira-kira ringkasan langkah-langkahnya di Windows 10.

1. Masuk ke menu “Settings”

2. Masuk ke menu “Accounts” yang ada di jendela “Settings”.

3. Setelah masuk ke “Accounts”, klik “Sync your settings”.

4. Cari “Language preferences” dan matikan (Off).

5. Mundur lagi dengan menekan simbol “Back” di pojok kiri atas. Masuk ke “Time & Language”.

6. Masuk ke “Language”. Atau “Region & Languages” untuk versi Windows 10 tertentu. Tekan “Add a prefered language” untuk menambahkan bahasa, misalnya Bahasa Indonesia.

7. Pilih Bahasa Indonesia, dilanjutkan dengan menekan tombol “Next”. Jangan lupa, ceklis “Set as my display language” jika belum tercentang. Tekan tombol “Install” di bagian bawah.

8. Karena kita mengeset “Bahasa Indonesia” sebagai display language maka Windows meminta kita “Sign Out”.

9. Sign out, atau Restart juga boleh. Nanti setelah login lagi maka bahasa langsung berubah menjadi bahasa Indonesia, tidak perlu menunggu seminggu seperti bikin e-KTP. Misalnya “Recycled bin” menjadi “keranjang sampah”, dan lain-lain. Sekian, semoga bermanfaat.

Jupyter Notebook Python Online via Collaboratory

Matlab saat ini masih digunakan oleh peneliti-peneliti sebagai alat bantu komputasi. Karena karakternya yang berbayar maka permasalahan lisensi menjadi masalah utama peneliti-peneliti Indonesia yang beranggaran terbatas. Walaupun Matlab sudah menyediakan versi online yang gratis, tetapi untuk fasilitas tertentu harus berlangganan. lihat postingan yg lalu tentang Matlab Android. Sementara itu, Google sangat gencar melakukan riset tentang metode-metode machine learning, misalnya TensorFlow yang terkenal, menggunakan bahasa Python.

Salah satu paket yang menurut saya cukup baik mengelola komputasi adalan Jupyter Notebook yang sudah terinstal lewat paket Anaconda. Bentuknya mirip Matlab yang sudah terintegrasi, hanya saja beberapa sintaks perlu deklarasi “import”. Belum selesai menggunakan Jupyter Notebook, kini versi online sudah tersedia dengan proses yang dilakukan oleh GPU milik Google. Sehingga ketika kita membuka browser lewat HP dan terhubung ke situs Jupyeter Notebook Collaboratory maka ketika memproses, seolah-oleh kita menggunakan super computer pinjaman Google. Bahkan mirip Word, Excell versi Google Drive, kita bisa mengerjakan coding bersama-sama secara online.

Sebagai ilustrasi, di bawah ini saya menggunakan Collaboratory ketika memanipulasi matriks 2×3 lewat fasilitas pengelola matriks terkenal Python bernama “NumPy”.

Kode di atas hanya mengilustrasikan Jupyter Notebook versi online yang dikenal dengan nama “Collaboratory” ketika mengkalkulasi matriks. Praktis karena bisa dilakukan di smartphone tanpa perlu instal Jupyter Notebook dan yang terpenting proses komputasi dilakukan di GPU Google. Untuk pengguna Matlab, sebagai perbandingan lihat instruksi Matlab di bawah ini. Silahkan pilih mana yang menurut Anda baik, kalau saya sih kedua-duanya. Selamat berkoding.

Relasi Antar Tabel dengan Fasilitas Designer Pada Phpmyadmin

Biasanya kita membuat tabel di MySql dengan kode SQL lewat fungsi CREATE TABLE dan seterusnya. Sementara untuk relasi antar tabel menggunakan fungsi ALTER TABLE dilanjutkan dengan FOREIGN KEY dan REFERENCES. Nah untuk versi-versi terbaru Phpmyadmin menyediakan fasilitas designer jika ingin melihat diagram tabel-tabel dalam satu basis data. Postingan ini mungkin bermanfaat bagi kita yang malas mengetik kode sql seperti saya.

Pertama-tama klik basis data yang ingin dibuat relasi antar tabelnya. Perhatikan di bagian paling kanan ada tombol “designer” yang disediakan oleh Phpmyadmin untuk mengelola tabel-tabel yang terlibat. Tekan tombol tersebut untuk membuat relasi antar tabelnya.

Misalnya tabel pinjam memiliki field NPM yang merupakan foreign key dari tabel siswa. Oleh karena itu perlu membuat relasi antara tabel pinjam dengan tabel siswa. Tekan simbol relasi pada icon di jendela designer.

Pilih NPM pada tabel siswa sebagai referenced key. Field ini merupakan primary key tabel siswa.

Berikutnya pilih foreign key pada tabel pinjam.

Pilih “on update” pilih “Cascade” agar ketika NPM berubah di tabel siswa, di tabel pinjam ikut berubah juga.

Jika sudah, tekan OK. Maka selesai sudah pembuatan relasi. Untuk melihat kode SQL lengkapnya bisa dengan mengekspor database tersebut. Caranya dengan menakan tombol “eksport”.

Setelah itu kita diminta menentukan lokasi penyimpanan. Jika dibuka kode SQL tampak ada kode untuk menambah relasi, lengkap dengan “on update cascade”. Selamat mencoba.

 

 

Mengetahui RULE Hasil Training ANFIS.

Berbeda dengan JST yang hasil trainingnya mirip “black box” yang tidak diketahui logikanya, pada Adaptive Neuro-Fuzzy Inference System (ANFIS) hasil trainingnya memiliki logika. Logika ini dikenal dengan istilah RULE. Postingan ini bermaksud menunjukan bagaimana melihat RULE hasil training. Masukan data training, misalnya data yang mirip Logika XoR.

Buka ANFIS editor dengan mengetik “anfisedit” pada command window. Masukan data latih tersebut. Gunakan “From: worksp”.

Rancang FIS yang akan dilatih dengan menekan “Generate FIS” di editor ANFIS.

Di sini di isian “Number of MFs” berisi “3 3” yang artinya tiga kelas input1 dan input2, misal “baik”, “cukup”, “kurang”, bisa juga diganti “2 2” jika hanya dua kategori, misal “baik” dan “buruk” saja. Tentu saja makin banyak kategori biasanya hasil lebih baik, apalagi jika datanya sedikit seperti kasus di contoh ini. Lanjutkan dengan menekan “Train Now”. Jika sudah perhatikan RULE yang terbentuk dengan menekan “Edit” – “Rule”.

In1mf1, dan seterusnya bisa diedit dengan bahasa yang kita mengerti, dengan cara masuk ke menu “edit” – “FIS Proerties”. Mirip caranya dengan mengedit fuzzy inference system (FIS). Berbeda dengan Jaringan Syaraf Tiruan (JST), ANFIS memiliki keunggulan dimana hasil training memiliki logika tertentu. Selanjutnya, uji dengan data sesungguhnya yaitu Logika XoR. Sebelumnya simpan ke “Workspace” misalnya dengan nama “xor”.

Testing dengan data sesungguhnya, yaitu logika XoR.

Jalankan dengan fungsi “evalfis” untuk menguji data “xorlogic” tersebut (kolom 1 dan 2) apakah sama dengan targetnya (kolom 3), yaitu beruturut-turut 0, 1, 1, 0.

Perhatikan “result” dengan jawaban logika xor yang asli, jika result dibulatkan (ketik “round(ans)”) akan menghasilkan jawaban sesungguhnya, alias akurat 100%. Selamat mencoba.

 

 

Merdeka Belajar

Pulang sekolah bagi pelajar kelas 3 sekolah dasar seperti saya waktu itu merupakan saat yang paling menggembirakan. Setelah seharian digembleng ilmu yang tidak kami mengerti maksud & manfaat real-nya, kini bisa bermain dengan teman-teman sepermainan yang berbeda-beda “spesialisasinya”. Ada yang jago main gundu, main layangan, hingga jago ngadu ayam. Kami selalu membagikan temuan masing-masing, bahwa jika angin sangat kencang maka teknik “uluran” lebih baik dibanding “tarikan” ketika mengadu layang-layang. Rekan yang lain membagikan informasi membedakan ayam bangkok dengan ayam kampung biasa dan bagaimana caranya supaya kondisi ayam tetap fit untuk diadu. Atau berilah cabai ke jangkrik agar lebih liar dan ganas ketika duel. Walau ada teman yang ngaco juga, kalau mau kuat lari coba minum air garam, kata rekan saya yang ikut klub lari. Ketika diminum, rasanya tidak enak banget hingga mau muntah, dan akhirnya saya maki-maki dia keesokan harinya.

Nah, salah satu teman saya adalah “bisnis-child”, alias dagang apa saja. Tentu saja hal-hal yang baru akan menarik minat anak kecil yang haus hal-hal yang baru. Apalagi kabarnya bisa menghasilkan uang kertas, jenis uang yang jarang dipegang pelajar sekolah dasar di era 80-an, era dimana tatap muka masih merajai.

Udara cerah, dengan angin kencang yang mendinginkan udara siang yang panas membawa kami ke tempat teman yang sedang mengantri majalah, teka-teki silang, dan bacaan sejenisnya. Ternyata dia tidak membeli, melainkan membawa cukup banyak bacaan itu untuk dijual. Kami saling berpandangan, ketika rekan saya itu menawarkan ke si bos-nya agar kami ikut menjual. Tentu saja senang dengan tawaran tersebut. Salah satu hal yang membuat senang adalah kepercayaan yang diberikan. Berarti untuk menggerakan sesuatu butuh kepercayaan. Dengan modal kepercayaan tersebut, saya dan teman-teman yang memiliki spesialisasi masing-masing mulai menjalankan visi dan misi yang tidak perlu dirumuskan. Tawarkan bacaan tersebut ke sebanyak mungkin orang agar diharapkan beberapa yang tertarik membeli dengan harga minimal tertentu.

Masalah muncul ketika ada yang melaporkan kegiatan saya. Begitu tahu setelah sekolah ikut dagang majalah, dan sejenisnya, orang tua saya langsung melabrak. Mungkin ada rasa malu dan khawatir dibilang tidak mampu membiayai hidup keluarga, atau mungkin juga khawatir saya keluyuran lama dan tidak langsung belajar selepas sekolah, yang katanya agar pintar maka pelajaran yang baru dipelajari sebaiknya langsung diulang. Tentu saja membosankan sesuatu yang harus diulang-ulang bagi anak yang normal, apalagi mengingat hadiah “pentungan” dari guru yang baru saja kami terima ketika salah hitung, lupa, dan tidak mengerjakan PR. Padahal dengan mencoba berdagang, di situlah saya sadar betapa sulitnya mencari uang, menyimpan, menghitung, dan segala aspek bisnis lainnya.

Tetapi hebatnya pelajar-pelajar di jaman itu, tidak ada satu pun yang berani dan melawan guru, walaupun dilampiaskannya dengan melawan siswa-siswa lain dalam the real “MMA” battle, alias tawuran. Hanya saja sayangnya tidak ada kemerdekaan dalam belajar. Kemerdekaan yang saat ini menjadi jurus andalan mendikbud, Nadiem Makarim, untuk menyiapkan SDM yang bisa berbicara di kancah dunia. Kita lihat saja, semoga berhasil.

Optimalisasi Multiobjektif

Biasanya dalam optimalisasi, fungsi yang akan dicari nilai optimalnya hanya berjumlah satu. Fungsi tersebut dikenal dengan nama fungsi objektif (objective function) atau beberapa peneliti lebih senang dengan istilah fungsi kriteria (criteria function). Tetapi di lapangan kebanyakan fungsi objektif lebih dari satu, sehingga perlu penanganan untuk mengoptimalkan fungsi-fungsi tersebut, yang dikenal dengan istilah optimalisasi multiobjective (multiobjective optimization).

Salah satu teknik yang sering dan mudah digunakan adalah dengan pembobotan, atau dikenal dengan istilah aggregating function. Besar bobot di tiap-tiap fungsi objektif perlu diriset terlebih dahulu, atau dengan menanyakan kepada para pakar di bidangnya. MIsalnya kita memiliki dua fungsi:

Coba gunakan Matlab untuk melihat grafik dua fungsi objektif tersebut. Tampak adanya kontradiksi. Di sinilah peran penanganan multiobjektif.


x=-10:0.1:10;
y1=x.^2+6;
plot(x,y1,'r')
grid on
hold
%Current plot held
y2=-(x.^2)+12;
plot(x,y2,'b')

Tampak kedua fungsi bertolak belakang. Di sini misalnya kita sudah memiliki bobot masing-masing untuk fungsi 1 dan 2 berturut-turut 0.7 dan 0.3. Maka untuk optimalisasi kita butuh satu fungsi baru, yang nantinya digunakan sebagai fungsi objektif pada algoritma optimasi yang dipilih. Tambahkan 2 kode baru lanjutan dari yang di atas.


yobj=0.7*y1+0.3*y2;
plot(x,yobj,'k')

Nah kita tinggal mengoptimalkan fobj yang berwarna hitam tersebut dengan metode yang Anda sukai, misalnya algoritma genetika. Ketik optimtool(‘ga’). Nah, di sini perlu membuat m-file yang berisi fungsi objektif. Ketik sembarang nama, misalnya “fungsi” di command window isi coding berikut:

Masukan nama fungsi tersebut diawali dengan @ di bagian “fitness function”. Di bagian “Plot Function” ceklis pada best fitness dan best individualnya agar lebih interaktif ketika Matlab memprosesnya. Tekan “Start” jika dirasa sudah siap. Oiya, jangan lupa “Number of Variables” diisi, tentu saja satu variabel yang terlibat “x”.

Perhatikan di bagian hasil, diperoleh titik 0.001 sebagai titik optimal dengan fitness 7.8. Sekian, semoga bisa menginspirasi.

Mengunduh Peta Wilayah Indonesia

Ketersediaan data spasial wilayah Indonesia saat ini tidak perlu dikhawatirkan lagi karena kita sudah memiliki website khusus wilayah Indonesia, dengan kebijakan satu peta. Berbeda dengan ketika saya riset saat kuliah, dulu agak kerepotan untuk mengunduh shapefile peta wilayah di Indonesia. Jika ada, terkadang berbayar, kecuali Anda mujur memperoleh unduhan gratis dari orang yang men-share peta-nya.

Geospasial Untuk Negeri

Situs ini merupakan situs resmi milik pemerintah untuk mengunduh informasi mengenai seluruh wilayah Indonesia. Untuk mengunduhnya Anda perlu mendaftar (register) terlebih dahulu. Prosesnya tidak terlalu lama, hanya sedikit mengetik informasi kita di form yang disediakan. Ada tiga langkah yang diperlukan, antara lain:

Buat “username” disertai dengan password. Sertakan email valid yang fungsinya untuk konfirmasi. Email yang diisikan tidak harus email resmi, boleh gmail, yahoo, dan email gratisan lainnya. Jika sudah, klik “lanjut” di pojok kanan bawah, untuk masuk ke “step 2”.

Langkah kedua berisi informasi mengenai pekerjaan kita. Isi saja apa adanya, dilanjutkan dengan menekan tombol “Lanjut” jika sudah selesai.

Jika telah mengisi form ini, di bagian kanan bawah akan muncul tombol “Selesai” yang artinya kita telah selesai mengisi seluruh form yang ada. Selanjutnya buka email Anda dan pastikan ada email dari application.support@big.go.id. Tekan tombol “Verifikasi Email”.

Selanjutnya Anda sudah bisa login ke situs geospasial Indonesia. Silahkan masuk ke wilayah yang ingin Anda unduh, misalnya kabupaten Bekasi.

Untuk mengunduh suatu wilayah, cukup arahkan mouse ke lokasi tersebut. Secara otomatis nanti wilayah tersebut akan menyala. Oiya, sebelumnya masuk terlebih dahulu ke nemu “Dowload” – “Peta per Wilayah”.

Setelah itu pastikan muncul peta Indonesia. Arahkan menggunakan mouse ke wilayah yang ingin diunduh. Untuk zoom in/out gunakan schrol pada mouse Anda. Silahkan login terlebih dahulu sebagai syarat untuk mengunduh.

Pilih 25k ketika ada form yang muncul di dekat wilayah tersebut. Jika sudah diklik maka Anda akan siap mengunduh file rar wilayah tersebut.

Tekan simbol unduh di dekat wilayah tersebut. Simpan di tempat yang Anda inginkan dan pastikan hasil download bisa diekstrak. Saya cukup tercengang karena bukan hanya peta wilayah yang tersedia, peta tematik lainnya seperti niaga, industri, danau, sungan, bahkan kabel listrik pun tersedia .. cek cek cek. Gambar di bawah setelah dibuka dengan ArcGIS disertai modifikasi pada label tertentu di peta. Kenapa tidak dari dulu dibuatnya ya, padahal waktu kuliah dulu nyari-nyari informasi tersebut.

 

Menambah Artikel di ORCID

Orcid (https://orcid.org) merupakan situs identifikasi peneliti yang berisi nomor dan identitas lainnya. Salah satunya adalah artikel-artikel yang telah dipublikasi. Masuk terlebih dahulu ke situs ORCID dan jika belum punya akun, silahkan register terlebih dahulu.

Setelah masuk akan muncul informasi seperti pekerjaan, pendidikan, dan publikasi. Link dapat dishare agar orang lain bisa melihat CV kita lengkap. Misalnya link ORCID saya ini.

A. Menambahkan Secara Manual

Di bagian atas artikel-artikel, dapat diklik beberapa metode penambahan publikasi, seperti DOI, BIBTEX, dan salah satunya adalah “add manually”. Biasanya jurnal-jurnal lokal ber-ISSN belum memiliki DOI jadi harus dimasukan secara manual.

Masukan informasi mengenai tulisan yang akan didaftarkan ke ORCID Anda. Isian yang ada tanda bintangnya wajib ada. Jika sudah tekan “add to list” di bagian bawah.

Pastikan isian baru muncul di daftar publikasi.

B. Dengan DOI

Jurnal internasional atau jurnal nasional terakreditasi, dari Sinta 1 sampai 6 pasti memiliki DOI. Karena wajib memiliki DOI, misalnya jurnal yang saya kelolo ini (Jurnal Piksel). Persiapkan DOI yang akan Anda daftarkan ke daftar publikasi ORCID Anda, misalnya dari Scopus saya, ada tulisan yang belum dimasukan dengan DOI: 10.30534/ijatcse/2019/4381.52019.

Kembali masuk ke daftar list artikel di ORCID, tekan add lewat DOI. Masukan DOI ketika diminta.

Setelah diklik “retrieve work details” informasi mengenai judul, nama jurnal, akan muncul. Tekan “add to list” ketika sudah yakin informasi-informasi lainnya.

Jika ingin mengintegrasikan ORCID ID ke Scopus silahkan lihat tautan berikut. Sekian semoga bermanfaat.

Mengaktifkan Spatial Analysis untuk Mengatasi ERROR 010096: There is No Spatial Analysist License

Terkadang ketika memanipulasi data spasial, khususnya Euclidean Distance, muncul pesan kesalahan seperti di bawah ini.

Untuk mengatasinya mudah saja. Buka “Extension” pada jendela “Customize”.

Buka kembali salah satu toolbox “Spatial Analyst”, misalnya Euclidean Distance. Pastikan toolbox sudah bisa dijalankan. Sebenarnya maksud ArcGIS mendisable spatial analysis agar tidak terlalu memberatkan penggunaan ArcGIS jika tidak sedang menggunakan Spatial Analysis. Semoga bermanfaat.

Mempersiapkan Data dan Training Model ANFIS, JST dan SVM

Dalam machine learning dikenal beberapa jenis data antara lain: data training dan data testing. Terkadang data training dipisah menjadi data training dan target. Dalam prakteknya, data training menggunakan sebagaian prosentase dengan sisanya dijadikan data tasting untuk pengujian model.

Excel dapat digunakan untuk mempersiapkan data training walaupun memiliki beberapa keterbatasan dalam mengelola “big data”. Untuk data yang tidak terlalu besar, aplikasi bawaan ms office ini cukup dapat diandalkan.

Walaupun cross validation banyak diterapkan saat ini, tetapi dengan 80% data training dan sisanya untuk testing (20%) sudah cukup untuk mengukur akurasi model yang dirancang. Sebagai contoh data training berikut dapat digunakan, dengan data latihnya. Berikut langkah proses mempersiapkan data training dan data testing.

1. ANFIS

Untuk ANFIS data training dan target digabung menjadi satu. Formatnya karena sudah sesuai dengan format pentabelan di Excel maka cukup menyiapkan data training saja. Gunakan dua kode ini untuk mengimport data dengan Matlab.

  • load(‘data.dat’);
  • load(‘testing.dat’);

Untuk ANFIS, fungsi “anfisedit” disediakan Matlab untuk melatih ANFIS lewat data yang ada. Karena isian sudah dalam bentuk DAT maka sebenarnya dua kode di atas hanya digunakan nanti untuk testing dan training lewat model lainnya seperti JST, SVM, dll.

Pastikan training data muncul dengan tiga kelas sesuai dengan data (kelas 1, 2 dan 3). Berikutnya “Generate FIS” diklik untuk meramu FIS yang masih kosong.

Angka 3 di atas berarti ada 3 komponen MF di tiap input. Jumlah angka yang muncul menandakan jumlah masukan, di sini ada empat input yang merupakan variabel penentu output. Tipe MF ada banyak, di sini akan digunakan “trimf” yang paling sederhana (linear). Gunakan saja defaultnya (3 komponen di tiap inputan), yang merepresentasikan kondisi “low”, “medium”, dan “high”. Output gunakan saja konstan. ANFIS hanya tersedia di jenis fuzzy “Sugeno”. Tekan “Struktur” di sisi kanan untuk melihat sekilas Network yang siap dilatih.

Berikutnya masuk ke panel “Train FIS” untuk melatih Network. Ada dua pilihan pembelajaran: hybrid dan backpropagation. Gunakan saja “hybrid”. Berikut merupakan hasil training dengan 3 epoch (mirip iterasi).

Error tampak di layar utama (sekitar 0.1445). Simpan hasil pelatihan lewat “File” – “Export” – Pilih file.

Setelah nama fuzzy diisi (berekstensi *.fis) maka model siap diuji dengan data testing yang sudah ada. Misalnya diberi nama “anfisiris.fis”. Untuk testing gunakan kode berikut ini:

  • anfisiris=readfis(‘anfisiris.fis’);
  • prediksi=evalfis(testing(:,1:4);
  • tes=testing(:,1:4)
  • hasil=evalfis(tes,anfisiris)

Terakhir adalah menghitung akurasi dengan cara prosentase MAPE (Mean Average Percentage Error)-nya:

Jika dibandingkan maka akan tampak beberapa yang error, misalnya di sini ada satu yang error, jadi nilai MAPE-nya= 1/39 *100 = 2,56 %. Atau akurasinya = 100-2,56 = 97,44%. Sedangkan jika ingin mengetahui prediksi mana saja yang tidak akurat dapat menggunakan matriks confusion.

  • target=testing(:,5);
  • target=transpose(target);
  • prediksi=transpose(round(hasil));
  • c=confusionmat(target,prediksi)
  • c =
  • 13 0 0
  • 0 13 0
  • 0 1 12

Cara membaca matriks confusion adalah sebagai berikut. Kolom merupakan prediksi sementara baris adalah aktualnya (dalam hal ini sama dengan target (testing di kolom kelima). Fungsi “round” ditambahkan pada hasil untuk mencari kelas prediksi terdekat, misalnya 2.7 dikategorikan kelas “3”. Diagonal pada matriks confusion menyatakan akurasi. Perhatikan di baris kedua kolom ketiga, di sini harusnya 13 tetapi berisi 12 karena ada satu prediksi 3 (baris ketiga) tetapi kenyataannya 2 (kolom kedua).

2. Neural Networks (Jaringan Syaraf Tiruan)

JST perlu memisahkan data training dengan target (labelnya). Selain itu, formatnya juga berbeda dengan data pada ANFIS, dimana variabel berdasarkan baris. Untuk itu perlu modifikasi data yang ada berdasarkan “data.dat” dan “testing.dat”. Berikut ini kode untuk data training dan targetnya.

  • load(‘data.dat’);
  • load(‘testing.dat’);
  • datalatih=data(:,1:4);
  • datalatih=transpose(datalatih);
  • target=data(:,5);
  • target=transpose(target);

Coba cek dengan fungsi “size”, pastikan jumlah baris merepresentasikan jumlah variabel, sementara jumlah kolom merepresentasikan jumlah data. Berikutnya buat JST kosong dan latih.

  • network=newff(datalatih,target,[81 81]);
  • network=train(network,datalatih,target);

Perlu disiapkan data untuk testing.

  • tesdata=testing(:,1:4);
  • tesdata=transpose(tesdata);
  • targettes=testing(:,5);
  • targettes=transpose(targettes);

Selanjutnya menggunakan fungsi “sim” untuk memprediksi.

  • hasil=sim(network,tesdata);
  • aktual=targettes;
  • prediksi=round(hasil);
  • c=confusionmat(aktual,prediksi);
  • c =
  • 13 0 0 0
  • 0 11 2 0
  • 0 4 6 3
  • 0 0 0 0

Dari matriks confusion di atas dapat diketahui precision-nya (atau dikenal juga dengan nama MAPE). Caranya adalah membandingkan total yang benar (angka di sisi diagonal) dengan total data testing.

  • 13+11+6
  • ans =
  • 30
  • ans/39
  • ans =
  • 0.7692

Akurasi yang dihasilkan (MAPE) adalah 76.92%.

3. Support Vector Machine (SVM)

SVM hanya memisahkan dua kelas yang berbeda. Jika ada lebih dari dua kelas, maka perlu modifikasi dengan menggunakan lebih dari satu garis pemisah. Salah satu tekniknya adalah membuat pohon keputusan. Misalnya ada tiga kelas (kelas 1, kelas 2 dan kelas 3) maka perlu dibuat tiga garis pemisah, misalnya kita beri nama svm1, svm2 dan svm3.

  • svm1, pemisah antara kelas 1 dan kelas 2
  • svm 2, pemisah antara kelas 1 dan kelas 3, dan
  • svm 3, pemisah antara kelas 2 dan kelas 3

 

(source: link)

Selanjutnya, dibuat logika if-else untuk mengarahkan garis pemisah yang sesuai (atau dengan teknik lain yang sesuai). Berikut ini salah satu contohnya:

  • test1=svmclassify(svm1,datatesting)
  • if test1==1
  • test2=svmclassify(svm2,datatesting)
  • if test2==1
  • class=’1′
  • else
  • class=’3′
  • end
  • else
  • test3=svmclassify(svm3,datatesting)
  • if test3==2
  • class=’2′
  • else
  • class=’3′
  • end
  • end

Untuk membuat garis pemisah, Matlab menyediakan fungsi “svmtrain”. Jika ingin membuat garis pemisah antara kelas 1 dan kelas 2 (svm1) diperlukan data latih yang memiliki kelas 1 dan kelas 2 (tanpa menyertakan kelas 3) disertai dengan group-nya (dalam JST dikenal dengan istilah target).

  • svm1=svmtrain(train,group)

Di sini “train” merupakan data gabungan kelas 1 dan kelas 2, begitu pula “group” merupakan kelas yang sesuai dengan “train”. Gunakan excel untuk memilah-milah antara kelas 1 dengan kelas lainnya untuk membuat svm2, dan svm3.

 

Tip dan Trik Klasifikasi Lahan di IDRISI

IDRISI (diambil dari kata Al-Idrisi, ahli geografi timur tengah yang juga keturunan Nabi Muhammad SAW) merupakan aplikasi untuk pemodelan land use/cover. Citra satelit yang terdiri dari 7 band frekuensi harus diklasifikasi menjadi beberapa kategori lahan. Standar klasifikasi biasanya menggunakan referensi dari Anderson et al, (link).

Untuk Unsupervised Classification dapat dengan mudah menggunakan fungsi “ISOCLUST” pada IDRISI asalkan memiliki beberapa Band frekuensi citra satelit hasil unduhan dari USGS. Nah, satu tugas yang menjengkelkan adalah mengklasifikasi ulang citra hasil kluster menjadi klasifikasi yang kita inginkan, apakah pemukiman, jalan, cropland, vegetation, dan lain-lain. Yang merepotkan adalah IDRISI menggunakan format “range” untuk menentukan warna hasil unsupervised classification. Postingan ini sedikit sharing cara mudah untuk klasifikasi ulang (reclassify) bahkan untuk yang buta warna sekalipun.

Perhatikan hasil ISOCLUST (Iteratif Self-Orginizing cluster analysis) di atas. Bagaimana kita tahu warna yang menunjukan air, pemukiman, jalan, dan lain sebagainya? Cara terbaik masih menggunakan citra komposit yang menghasilkan citra yang cocok menunjukan air, pemukiman, jalan, dan seterusnya. Namun yang termudah adalah dengan menekan satu persatu kota warna dan melihat kira-kira warna itu menunjukan apa. Misalnya warna ke-empat dari atas diklik, maka menunjukan citra di bawah ini yang dapat dipastikan itu adalah pemukiman/bangunan.

Bagaimana cara membuat tabel konversi dari sepuluh warna di atas menjadi beberapa kelas penting saja? Caranya adalah dengan pertama-tama menyalin warna di atas. Berikutnya konversi urutan dari atas menjadi kelasnya.

Walaupun di bagian tabel: 4 2 3 dan 4 3 4 bisa digabung menjadi 4 2 4 tetapi dengan redundancy di atas dapat mengurangi error. Perhatikan kolom bagian tengah tabel tetap rapi tersusun angka 1 sampai 10 sesuai dengan hasil klasifikasi ISOCLUST. Hasilnya seperti di bawah ini, semoga bermanfaat.

Competitive Network dan Contoh Implementasinya

Tipe network ini menghasilkan keluaran yang terbesar sebagai pemenang. Misal ada tiga input sebesar 1,2, dan 3, maka pemenangnya adalah input ketiga (sebesar 3). Berikut notasi standar competitive network.

Fungsi competitive network pada matlab adalah “compet”. Buka command window pada Matlab dan coba fungsi “compet”. Untuk lebih jelasnya silahkan buka help dengan mengetik “help compet” di command window.

  • a=[1;2;3];
  • compet(a)
  • ans =
  • 0
  • 0
  • 1
  • compet(-a)
  • ans =
  • 1
  • 0
  • 0

Perhatikan kode di atas. Jika ingin menemukan nilai tertinggi gunakan fungsi compet(a) sementara jika ingin mencari terendah, gunakan compet(-a). Biasanya mencari nilai terendah digunakan dalam menentukan mana yang paling mirip (similar) antara beberapa hasil output. Tentu saja ada sedikit modifikasi kode untuk memberitahu hasil minimum suatu inputan.

Misal kita beri nama tiga input tersebut berturut-turut “nilai A”, “nilai B” dan “nilai C”. Maka sistem diminta menampilkan nilai mana yang terkecil? Lanjutkan dengan kode berikut ini.

  • input1=[“nilai A”;”nilai B”;”nilai C”];
  • hasil=compet(-a);
  • [ind,result]=find(hasil);
  • minimum=input1(ind)
  • minimum =
  • “nilai A”

Lebih simple dibandingkan dengan menggunakan “if-else” berikut ini yang jauh lebih panjang jumlah baris programnya, apalagi yang akan dibandingkan sangat banyak.

  • if (a(1)<a(2)) && (a(1)<a(3))
  • minimum=’Nilai A’
  • else
  • if a(2)<a(3)
  • minimum=’Nilai B’
  • else
  • minimum=’Nilai C’
  • end
  • end
  • minimum =
  • ‘Nilai A’

Membuat Mask (Bingkai) Pada Citra & Manfaatnya

Postingan ini bermaksud menginformasikan problem ketika pencocokan pola citra kurang berhasil akibat pola yang tidak memiliki bingkai. Ketika dengan Autoassociative Memory diminta memprediksi angka satu berikut (lihat yang berwarna putih).

Prediksi di sebelah kanan memang tepat angka satu, tetapi terpotong di bagian atas dan bawahnya. Kita coba untuk menambahkan bingkai pada citra yang akan dilatih dan diterka.

Menambahkan Nol di Sekitar Matriks

Misal angka nol di bawah akan dibuatkan bingkainya. Langkah pertama adalah mengetahui ukuran matriks angka nol tersebut.

Gunakan fungsi size di Matlab. Setelah itu dengan fungsi “zeros” buat matriks berukuran dua digit lebih banyak dari ukuran sebelumnya. Misalnya matriks di atas memiliki ukuran baris x kolom sebesar 5 x 3 maka buatlah matriks nol dengan ukuran 7 x 5.

  • imshow(nol,’InitialMagnification’,’fit’)
  • nolmask=zeros(7,5);
  • nolmask(2:6,2:4)=nol;
  • imshow(nolmask,’InitialMagnification’,’fit’)

Perhatikan angka nol (yang berwarna putih) telah memiliki bingkai (warna hitam di sekelilingnya). Berikutnya kita coba melatih jaringan syaraf tiruan (JST) yang sebelumnya tanpa bingkai. Diuji dengan angka satu udah ok: hasil: “satu” (sebelah kiri) dan yang sebelah kanan nol dengan sedikit error berhasil mendeteksi (hasil deteksi: “nol”).