Tentang rahmadya

I'm a simple man .. Lahir di Sleman Yogyakarta, 7 Juni 1976 TK : - (tidak ada TK di tj Priok waktu itu) SDN : Papanggo, Jakarta 83 - 89 SMPN : 129, Jakarta 89 - 92 SMAN : 8, Yogyakarta 92 - 95 Univ. : Fak. Teknik UGM, Yogyakarta 95 - 2001 Pasca. : Tek. Informatika STMIK Nusa Mandiri, Jakarta 2008 - 2010 Doctoral : Information Management Asian Institute of Technology, Thailand 2013 - 2018 Pekerjaan: Tek. Komputer AMIK BSI Jakarta : 2002 - 2005 IT Danamon Jakarta : 2005 - 2008 Tek. Informatika STMIK Nusa Mandiri Jakarta : 2005 - 2008 Univ. Darma Persada : 2008 - Skrg Fakultas Teknik Universitas Islam "45" Bekasi : 2008 - Skrg ( Homebase)

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”).

Mengkonversi Polygon Peta Pada ArcGIS ke Matriks di Matlab

Terkadang untuk melakukan manipulasi dengan Matlab membutuhkan konversi dari data berupa peta menjadi matriks. Jika sudah dalam bentuk matriks maka beragam metode dapat diterapkan untuk memanipulasi matriks peta tersebut seperti pengklusteran, klasifikasi, dan lain-lain. Postingan ini bermaksud mengkonversi citra polygon menjadi matriks di Matlab.

Mempersiapkan Poligon

Terlebih dahulu persiapkan peta poligon, misalnya lokasi sekolah di bekasi selatan. Karena fungsi polygon to raster di ArcGIS tidak berlaku untuk titik maka diperlukan proses “buffering” agar dihasilkan region sebuah titik. Cari fungsi “buffering” tersebut di kolom “search” pada ArcGIS anda.

Di sini dibuat lingkaran dengan jarak 50 meter dari pusat titik di tiap-tiap lokasi. Secara default tipenya adalah lingkaran. Jika sudah tekan “OK” di bagian bawah. Pastikan peta baru yang berisi lingkaran dengan jari-jari 50 meter yang berada di sekitar titik lokasi.

Konversi ke Raster

Untuk menjadikan poligon menjadi matriks diperlukan proses konversi dari poligon ke raster dengan fungsi “Polygon to Raster”.

Tekan “OK” dan tunggu sesaat hingga ArcGIS membuat rasternya seperti gambar berikut ini. Perhatikan yang tadinya lingkaran (round) sedikit berubah menjadi kotak-kotak.

Membentuk Matriks di Matlab

Terakhir kita menarik data yang telah dibuat oleh ArcGIS ke Matlab. Pertama-tama data perlu di- “Export” terlebih dahulu. Bentuknya terdiri dari beberapa layer dengan komponen utamanya berekstensi TIF yang mirip dengan JPG atau PNG.

Pastikan di folder target terdapat salah satu citra yang akan dibaca matriksnya lewat Matlab. Arahkan “Current Directory” pada lokasi yang sesuai agar bisa dibaca Matlab. Jalankan perintah ini untuk melihat “image”nya.

  • imshow(‘sekolah_PolygonToRaster11.tif’)

Jika kita lihat ukurannya masih sangat besar.

  • I=imread(‘sekolah_PolygonToRaster11.tif’);
  • size(I)
  • ans =
  • 474 248

Ada baiknya resolusi sedikit diturunkan agar diperoleh matriks yang mudah dimanipulasi. Gunakan fungsi “imresize” dengan sebelumnya mengkonversi gray menjadi biner.

  • I2=imresize(I,0.25);
  • size(I2)
  • ans =
  • 119 62

Tampak resolusinya berkurang seperempatnya. Konversi menjadi biner agar dihasilkan image yang tidak pecah-pecah seperti di atas. Untuk membahas masalah tersebut perlu postingan lain tentang pengolahan citra. Semoga bisa menginspirasi.

Red, Green, dan Blue (RGB) Pada Matlab

Representasi warna yang dikenal antara lain: i) Red, Green, Blue (RGB), ii) Cyan, Magenta, Yellow, Black (CMYK), iii) Hue, Saturation, Brightness (HSB), dan iv) CIE-XYZ. Di sini yang paling mudah dan terkenal adalah RGB. Postingan ini bermaksud menjelaskan secara mudah model warna RGB ini.

Sejarah

Kita mengenal TV berwarna yang mengkombinasikan tiap piksel dengan gabungan komposisi warna Red, Green, dan Blue. Jika seluruh warna R, G, dan B nol atau padam, maka dihasilkan warna hitam. Sebaliknya jika seluruhnya menyala maksimal, diperoleh warna putih.

Membuat Warna

Perhatikan warna Turqoise di bawah ini. Warna ini merupakan kombinasi warna Red, Green, dan Blue berturut-turut 64, 224, dan 208. Bagaimana merepresentasikannya dalam Matlab?

Baik, kita mulai saja dengan membuka Matlab versi 2008 ke atas (mungkin sebelumnya bisa, asalkan ada fungsi “imshow” dan “cat” pada matriks).

Format RGB pada Matlab

Matlab menggunakan format matriks tiga dimensi, berbeda dengan gray atau biner yang menggunakan satu matriks saja. Oke, misalnya kita buat piksel yang membentuk huruf ‘c’.

  • c=[1 1 1;1 0 0;1 1 1];
  • imshow(c,’InitialMagnification’,’fit’)

Disini “InitialMagnification” artinya memperbesar huruf c tersebut agar bisa dilihat jelas. Coba saja tanpa fungsi itu, pasti hanya berupa titik kecil saja.

Nah, di sini kita diminta merubah huruf c format biner tersebut menjadi warna turquoise pada gambar di atas sebelumnya. Caranya adalah dengan merubah satu matriks ‘c’ tersebut menjadi komposisi tiga matriks R, G, dan B berupa perbandingan dari 0 hingga 255.

Warna Red, Green, Blue

Di sini warna merah adalah 64 dari 255. Tuliskan di command window instruksi berikut.

  • r=c*64/255
  • r =
  • 0.2510 0.2510 0.2510
  • 0.2510 0 0
  • 0.2510 0.2510 0.2510

Dengan cara yang sama buat juga Green dan Blue.

  • g=c*224/255;
  • b=c*224/208;

Jika komposisi R, G, dan B sudah dibuat, berikutnya adalah meng-concatenate tiga matriks tersebut (r, g, dan b) menjadi satu.

  • image=cat(3,r,g,b);
  • imshow(image,’InitialMagnification’,’fit’)

Pastikan diperoleh huruf ‘c’ dengan warna turquoise seperti di bawah. Jika Anda bisa memanipulasi satu piksel maka Anda pasti bisa memanipulasi beragam citra menjadi warna-warna tertentu. Sekian, semoga bermanfaat.

Evaluasi Diri Sebelum Lanjut Kuliah

Istilah evaluasi diri (kadang disingkat evaldi) ini terlihat keren, sering ditemui di akreditasi, padahal arti sederhananya adalah berkaca (kadang diucapkan oleh wanita yg sebal dgn jomblo yang mendekat tanpa babibu). Maksudnya melihat diri sendiri apa adanya, ga kurang ga lebih. Melakukan evaluasi diri walau terlihat sederhana tapi dapat menyelamatkan Anda.

Ambilah contoh rekan-rekan yang akan dan baru mulai S3. Terkadang diperlukan evaluasi diri untuk mengukur kesiapan kita menyelesaikan studi. Plan A, B, C dan seterusnya terkadang wajib dijalankan. Proposal yang terkadang mudah dilalui, ketika tidak melakukan evaluasi diri berakibat fatal, alias tidak rampung-rampung. Bagaimana cara mengevaluasi diri? Mudah-mudahan postingan ini bisa menggambarkannya.

Parkour

Parkour merupakan seni melompati rintangan yang berkembang di Perancis. Prinsip utamanya adalah melawan rasa takut tetapi tetap mengetahui kemampuan diri. Jika mampu melompati suatu rintangan A maka dia melompat, tetapi jika belum pernah dan dirasa tidak sanggup melompati rintangan B maka tidak boleh melompatinya, perlu latihan bertahap dulu. Nah, analogi dengan teknik ini, maka kita harus mampu mengukur kekuatan kita. Parkour bukanlah olah raga ekstrim, jadi begitu pula dengan kuliah S3 bukanlah kuliah ekstrim. Asalkan hasil evaluasi diri Anda menyatakan sanggup, maka jalanilah. Jika tidak/belum, persiapkanlah (bahasa, riset, proposal, keuangan, keluarga, dan lain-lain).

Hiena

Ada satu jenis binatang yang bukan merupakan hewan favorit, yaitu Hiena. Hewan pemakan daging ini hidup berkelompok di Afrika. Salah satu karakternya adalah kemampuannya mengevaluasi diri. Jika mereka perkirakan tidak sanggup menang, maka hewan ini akan lari, tetapi jika mereka yakin menang maka mereka siap bertarung. Bahkan singa pun mereka lawan jika sekelompok tersebut telah berhitung dan akan memenangi pertarungan. Untuk yang mengajukan proposal, ukurlah waktu, sumber daya, pembimbing, fasilitas lab dan hal-hal lain yang mampu mendukung penyelesaian disertasi. Jika tidak sebaiknya ganti proposal karena dikhawatirkan tidak selesai tepat waktu. Memang banyak yang membenci Hiena karena licik dan pengecut, tapi sikap cerdik dalam mengevaluasi diri perlu dicontoh. Bahkan para pakar menyimpulkan hewan ini sangat cerdas karena memiliki kemampuan berhitung.

 

Instal Matlab Mobile (Android)

Matlab pertama kali diciptakan untuk memanipulasi matriks dengan cepat dan praktis. Oleh karena itu diberi nama “Matlab” singkatan dari Matrix Laboratory. Kemampuan yang sesederhana kalkulator diimbangi dengan pemrograman yang berat membuat aplikasi ini banyak disukai oleh peneliti-peneliti yang bermain dengan komputasi. Tidak lengkap sepertinya saat ini jika ada aplikasi yang tidak ada versi androidnya. Matlab pun menyediakan aplikasi versi android yang dapat digunakan oleh peneliti dan mahasiswa dimanapun berada. Postingan ini sekedar membagikan info bagaimana instal aplikasi Matlab via android ini.

1. Mengunduh Aplikasi

Berhubung smartphone saya menggunakan sistem operasi android maka mau tidak mau menggunakan playstore untuk mengunduhnya.

Tekan tombol Install untuk memulai instal aplikasi Matlab android ini. Sepertinya tidak perlu dijelaskan lebih jauh, butuh beberapa menit untuk menginstalnya. Pastikan Matlab siap digunakan.

2. Sign Up

Langkah berikutnya adalah mendaftar akun di www.mathworks.com. Tahap ini didahului oleh instal upgrade aplikasi. Sangat dianjurkan jika Anda punya lisensi Matlab, tetapi jika tidak tentu saja tidak perlu upgrade.

Satu hal penting untuk dapat mendaftar akun di Matlab adalah email resmi, bukan gmail, yahoo, dan sejenisnya. Setelah memasuki regional, lanjutkan dengan aktivasi dengan cara mengklik link yang dikirimkan via email resmi tersebut.

3. Testing

Selamat, Anda telah berhasil menginstal Matlab mobile. Berikut ini saya coba memanipulasi matriks, menampilkan citra dan menjalankan salah satu fungsi, yaitu normalisasi Euclidean. Beberapa juga sudah saya coba membuat plot/grafik, dapat dilaksanakan juga. Selamat mencoba, semoga bermanfaat.

AppSheet – Aplikasi Android Untuk Mengelola Data Excel

Mungkin banyak yang bertanya, apa maksud judul di atas? Apa hubungannya Excel dengan android? Tentu saja di sini Excel yang digunakan bukan Excel di laptop melainkan menggunakan cloud application bawaan Google, yaitu AppSheet. Sambil membaca postingan ini, ada baiknya anda menginstall aplikasi sebesar 13-an Mb tersebut di playstore. Oiya, karena berbasis Google, tentu saja lebih optimal menggunakan browser Google Chrome dibanding lainnya (Mozilla, Safari, IE, dll).

1. Siapkan file Excel

Untuk membuat aplikasi yang membaca secara interaktif data sheet, terlebih dahulu siapkan datanya, yaitu data yang dibuat di Microsoft Excel. Misalnya daftar nilai mahasiswa berikut ini:

2. Upload ke Google Drive

Berikutnya kita buka Google Drive. Cara termudah adalah dengan masuk ke akun email dilanjutkan dengan menekan tombol empat titik dilanjutkan dengan menekan simbol Drive.

Upload file excel tersebut lewat menu File – Open dan lanjutkan dengan mengupload file excel yang akan dibuat ke appview.

Buka via Google Sheet file tersebut, sehingga memunculkan sheet yang mirip Microsoft Excel. Perhatikan di sini Google Sheet berbeda dengan sekedar view sheet. Tampilah Google Sheet dapat dilihat di bawah ini.

Sepertinya butuh koneksi internet yang cepat untuk membuka Google Sheet ini. Jadi, harap bersabar.

3. Mengeset AppSheet

AppSheet merupakan Add on yang disediakan oleh Google Chrome. Oleh karena itu di browser harus ditambahkan terlebih dahulu. Add on ini gratis

Jika Add on sudah ditambahkan maka pada Google Sheet akan muncul Add on serta koneksi ke AppSheet Anda.

Kemudian kita tinggal masuk ke AppSheet dengan terlebih dulu menambahkan Add on yang ada.

Cari AppSheet dan klik ketika ditemukan. Lanjutkan dengan menginstal appview di Chrome Anda.

Jika sudah berhasil terinstal, di menu Add on akan muncul AppSheet. Jalankan dengan menekan di menu “launch”.

Di sebelah kanan akan muncul smartphone yang akan dihubungkan dengan data sheet kita. Tekan Go untuk melanjutkan proses pembuatan.

Pastikan data sudah bisa diakses via AppSheet dengan melihat di bagian kanan Chrome, tampak nama-nama yang ada di data sheet Anda.

4. Deploy Aplikasi

Terakhir tentu saja kita harus bisa mengeshare aplikasi agar bisa dijalankan via ponsel kita. Terlebih dahulu kita masuk ke Setting dan Properties di AppSheet.

Jika sudah dirasa OK, tinggal men-share aplikasi tersebut.

5. Testing

Berikutnya buka AppSheet di handphone Anda. Ketika diminta login via Google maka akan muncul satu aplikasi yang telah Anda buat. Ketika dibuka maka Anda bisa melihat dan mengedit aplikasi Excel yang sudah berupa Android App tersebut.

Ketika dishare, maka yang akan melihat otomatis diminta menginstal aplikasi AppSheet, instruksinya seperti ini. Sekian semoga berfaedah.

NOTE: untuk excel yang lebih dari satu sheet, ada instruksi untuk menambahkan sheet lainnya, karena secara default AppSheet hanya menampilkan satu sheet saja.

Imresize Citra dengan Matlab

Imresize merupakan fungsi dalam Matlab untuk memperkecil ukuran citra. Misal sebuah citra berukuran 100 x 100 dapat diperkecil menjadi 10 x 10. Gunanya adalah menurunkan resolusi agar dapat lebih cepat diproses. Perhatikan citra berikut (nama file “Huruf A.png”):

Citra bertipe JPG atau PNG harus dibaca di konsol Matlab. Gunakan fungsi imread untuk mengkonversi JPG menjadi matriks gambar.

  • x=imread(‘Huruf A.png’);
  • x2=rgb2gray(x);

Fungsi rgb2gray bermaksud merubah citra berwarna (red, green, dan blue) menjadi hitam putih. Berikutnya kita coba mereduksi matriksnya dengan fungsi imresize berikut ini:

  • x3=imresize(x2,.05)

Perhatikan x3 merudiksi x2 sebesar 5 persen. Jika dilihat gambarnya dengan fungsi imshow akan muncul citra yang sudah tereduksi ukurannya.

  • Imshow(x3,’InitialMagnification’,’fit’)

Citra hasil imresize dari sulit dimanipulasi. Misal dibagi dgn 255 tiap elemennya menjadi 1.

Tampak citra yang masih berbentuk gray. Untuk diolah dengan jaringan syaraf tiruan perlu dikonversi menjadi biner 1 dan 0 atau +1 dan -1. Untuk gambar yg normal bisa dengan im2bw, tetapi hasilnya akan 1 semua. Cari paling sederhana adalah membuat kode untuk merubah 255 menjadi -1 dan yang bukan 255 menjadi 1.

  • [row kol]=size(x3)
  • for i=1:row
  • for j=1:row
  • if x3(i,j)==max(max(x))
  • x3(i,j)=-1;
  • else
  • x3(i,j)=1;
  • end
  • end
  • end

Hasilnya matrix nol dan 1 yang harus dikalikan dengan 255 terlebih dahulu sebelum dimanipulasi dengan fungsi im2bw.

  • x4=x3*255;
  • x5=im2bw(x4);
  • x6=x5*2-1;
  • imshow(x6,’InitialMagnification’,’fit’)

Hasilnya adalah tampak pada gambar di bawah, berupa matriks hasil reduksi dari yang sebelah kanan. Dari ukuran matriks 190×193 menjadi matriks 10×10 yang lebih mudah dimanipulasi.

 

 

 

 

Associative Memory Jaringan Syaraf Tiruan dengan Matlab

Jaringan Syaraf Tiruan (JST) ditemukan oleh ilmuawan ilmu komputer dengan maksud menciptakan sistem yang menyerupai otak manusia. Salah satu kemampuan otak manusia adalah mengingat sesuatu. Perhatikan piramida taksonomi bloom di bawah ini.

Tingkat paling rendah dari otak kita adalah mengingat, dilanjutkan pemahaman, dan seterusnya hingga membuat (creating). Postingan berikut ini memperlihatkan kemampuan JST dalam mengingat suatu citra, misalnya huruf dan angka.

Kasus. Berikut ini contoh kasus untuk membuat JST yang mampu mengingat dan memahami. Jika diberikan masukan angka 7 maka JST diharapkan mengeluarkan huruf “t”. Dengan kata lain JST selain mengingat juga memahami prinsip asosiasi, jika “7” maka “t”.

Anda diminta untuk:

  • 1. Membuat JST
  • 2. Menentukan parameter-parameter JST
  • 3. Menguji JST

Penyelesaian. Untuk mudahnya, gunakan Matlab dalam perhitungannya. Masuk ke jendela command window.

1. Model JST yang tepat untuk menyelesaikan masalah ini adalah “Symmetric Hard Limit Associator” dengan metode pembelajaran Hebbian.

Di sini P merupakan input yang akan dilatih (angka “7”) sementara A merupakan keluarannya. Untuk melatihnya di sini angka “t” merupakan target pelatihannya. Pertama-tama siapkan dua matriks baris P dan T yang masing-masing menunjukan angka “7” dan huruf “t”.

  • >> P=[1 1 1 1;0 0 0 1;0 0 1 0;0 1 0 0]
  • P =
  • 1 1 1 1
  • 0 0 0 1
  • 0 0 1 0
  • 0 1 0 0

Pastikan P menunjukan angka “7”. Selanjutnya mengubah 0 menjadi -1. Sebenarnya bisa saja langsung dari pembuatan matris P di atas, tetapi mengetik -1 membutuhkan dua proses, lebih lama dari mengetik angka 0. Jadi dengan instruksi berikut Matriks P menjadi -1 seluruh angka nol-nya.

  • >> P=P*2-1
  • P =
  • 1 1 1 1
  • -1 -1 -1 1
  • -1 -1 1 -1
  • -1 1 -1 -1

Selanjutkan jadikan matriks P ini menjadi matriks kolom dengan memanfaatkan fungsi “reshape” Matlab.

  • >> P=reshape(transpose(P),[16,1])

Matriks P menjadi matriks kolom yang berukuran 16×1. Lakukan hal yang sama untuk matriks target nya (huruf “t”).

  • >> T=[0 1 0 0;1 1 1 1;0 1 0 0;0 1 1 1];
  • >> T=T*2-1;

T=reshape(transpose(T),[16,1])

2. Parameter-parameter JST antara lain bobot yang dihitung dengan persamaan: W = TPT dengan superscript T artinya “transpose”.

  • >> W=T*transpose(P)
  • >> size(W)

Perhatikan bobot W yang berisi matriks W yang berukuran 16×16.

3. Untuk mengujinya, masukan saja matriks P dan kalikan dengan W. Pastikan hasilnya adalah matriks T.

  • >> A = hardlims(W*P);
  • >> matriksA=reshape(A,[4 4])
  • >> matriksA=transpose(matriksA)
  • matriksA =
  • -1 1 -1 -1
  • 1 1 1 1
  • -1 1 -1 -1
  • -1 1 1 1

Gunakan fungsi “imshow” untuk melihat matriksA apakah sama dengan target T.

  • >> imshow(matriksA,’InitialMagnification’,’fit’)

Tampak huruf t yang diperoleh (di sini angka 1 ditunjukan dengan warna putih, sementara angka -1 dengan warna hitam). Selamat, Anda telah berhasil membuat JST yang bisa mengingat dan memahami suatu pola (huruf dan angka).

Mengirim Variabel ke Kelas Lain di Java

Bahasa Java memiliki istilah-istilah rumit terutama ditujukan untuk pemrograman berorientasi objek. Konsep objek dengan prinsip enkapsulasi (information hiding) memerlukan perlakuan khusus dalam membuat programnya. Contoh-contoh kode yang beredar di internet, terutama yang menggunakan basis data relational terkadang tidak menerapkan prinsip enkapsulasi ini. Untuk mempraktekannya ada baiknya dimulai dari yang dasar dulu yaitu konstruktor.

Konstruktor

Sebuah kelas merupakan cetakan (template) suatu objek tertentu. Misal seorang siswa memiliki atribut tertentu seperti kode dan nama serta metode/operasi seperti membaca data, memasukan data siswa baru, menghapus data siswa, dan sejenisnya. Jika sebuah objek baru terbentuk maka data baru harus mengikuti pola kelas Siswa tersebut yang terdiri dari atribut dan metode/operasi.

Pada Netbeans, kelas Siswa dapat dilihat di jendela navigator. Tampak atribut di bawah dan lingkaran yang menyatakan metode. Belah ketupat menyatakan metode yang masuk kategori konstruktor, yang berfungsi membuat satu objek baru.

Konstruktor Siswa(String k, String n) berfungsi membuat satu objek dengan atribut k dan n yang kemudian dikonversi menjadi variabel lokal (this.kodesiswa dan this.nama).

  • public Siswa(String k, String n){
  • this.kodesiswa=k;
  • this.nama=n;
  • }

Ketika kelas lain meminta menjalankan satu metode/operasi maka diperlukan objek baru yang dibentuk dari konstruktor. Misalkan menggunakan kelas Main yang biasanya secara default muncul di tiap project.

Getter & Setter

Objek “mhs” baru dibentuk lewat konstruktor Siswa yang menangkap kode “009” dan nama”Dr. Rahmadya Trias H.”. Ditangkap lewat mekanisme setter & getter. Ketika diketik “mhs.” Pastikan muncul operasi-operasi yang tersedia, jika tidak maka konstruktor bermasalah. Misal kita pilih metode “greetings()” yang sebelumnya di kelas Siswa telah diisi, misalnya sbb:

  • public void greetings(){
  • System.out.println(“Hai, salam kenal, saya ” +this.nama);
  • }

Jika dijalankan akan menjalankan metode “greetings()” dengan parameter yang dikirim “009” dan “Dr. Rahmadya Trias H.” untuk digunakan mengoperasikan tulisan (di sini yang digunakan hanya this.nama saja).

Merubah Foto Menjadi Citra Negatif dan Sebaliknya

Untuk yang pernah hidup di era 80-an, pasti mengenal foto yang dicetak dari negatif foto atau dikenal dengan nama klise. Nah, jika foto sudah jamuran atau rusak, bisa mereproduksi foto tersebut jika masih memiliki klise-nya. Gunakan scanner untuk memindai klise tersebut.

Fungsi untuk merubah citra menjadi negatif dan sebaliknya pada Matlab adalah imcomplement atau dengan persamaan 255-1-i, dengan “i” adalah imread dari citra berformat jpg, jpeg, atau png. Misal gambar berikut ini (silahkan unduh di sini).

Gunakan kode sederhana pada command window. Misal citra yang diunduh diberi nama “sample.jpg”.

  • a=imread(‘sample.jpg’);
  • b=255-1-a;
  • imshow(b)

Tampak hasil foto real dari negatif fotonya. Jika ingin menyimpan citra menjadi file gambar gunakan fungsi imwrite.

  • Imwrite(b,’hasil.jpg’)

Maka muncul satu file bernama “hasil.jpg” yang merupakan hasil pemrosesan citra file “sample.jpg” yang lalu.

Silahkan buat GUI supaya lebih mudah digunakan.

Cukup dengan kode berikut di tombol “Ambil File”, gambar yang siap cetak diberinama “konversi.jpg”:

  • x=uigetfile(‘*.jpg’);
  • a=imread(x);
  • b=imcomplement(a);
  • axes(handles.axes1);
  • imshow(a)
  • axes(handles.axes2);
  • imshow(b)
  • imwrite(b,’konversi.jpg’);

Prosedur Pengecekan Jurnal Internasional Bereputasi

Studi Kasus: Seorang dosen telah mempublikasikan tulisannya di sebuah jurnal internasional “TELKOMNIKA” dengan judul “Land-use Growth Simulation and Optimization for Achieving a Sustainable Urban Form”. Langkah verifikasinya:

1. Verifikasi bukti sudah publish di jurnal TELKOMNIKA yang berupa link di OJS/web site resmi jurnal tersebut. Misalnya untuk kasus ini Vol 16 No. 5. Cek nama dan afiliasi apakah sesuai dengan pengusul.

2. Verifikasi terpublikasi di pengindeks bereputasi. Buka http://scopus.com. Tekan SEARCH. Pilih TITLE dan masukan nama jurnalnya: TELKOMNIKA, lalu tekan Find Sources.

Pastikan muncul jurnalnya di kolom hasil pencarian. Jika tidak ada berarti tidak terindeks. Namun untuk menghindari salah ketik nama jurnal, ada baiknya pencarian menggunakan ISSN.

NOTE: ISSN ada dua, biasanya yang terdata di Scopus hanya satu (P-ISSN). Atau kalau mau aman masukan saja baik e-ISSN maupun p-ISSN. Untuk contoh TELKOMNIKA, yang terindeks adalah yang p-ISSN. Hasilnya sbb:

3. Untuk mengetahui kualitas jurnal (kuartil) bisa menggunakan SCIMAGO. Masuk ke link: http://scimagojr.com. Masukan nama jurnalnya: TELKOMNIKA.

Tekan simbol Searching lalu pastikan muncul namanya.

Tekan nama jurnal yang sesuai untuk melihat h-index dan Quartile nya. Terkadang ada beberapa nama yang mirip, pastikan sesuai dengan melihat ISSN-nya.

Untuk melihat Quartile, arahkan mouse di tahun terakhir, maka akan muncul indikator Q berapa jurnal tersebut, misalnya untuk kasus ini masuk kategori Q2.

NOTE: Karena SCIMAGOJR membutuhkan interval waktu tertentu untuk masuk ke sistem pe-rangkingannya, terkadang jurnal yang baru terindeks Scopus belum terekap SCIMAGO. Namun jurnal tersebut karena sudah terindeks Scopus sudah masuk kategori terindeks oleh pengindeks bereputasi.

Mungkin bermanfaat untuk pengurus LPPM ketika ada yang mengajukan insentif. Teknik ini biasa digunakan oleh reviewer luaran tambahan Ristek-Dikti (sekarang Dirjen SumberDaya IPTEKS dan DIKTI).

 

Menghadapi Era Milenial Bagi Pengajar

Banyak rekan-rekan seumuran saya yang terkaget-kaget dan tergopoh-gopoh di era milenial ini. Era yang sering disebut industri 4.0. Jangankan guru yang kaget melihat siswanya banyak yang lebih tahu dari dia, dosen pun mengalami hal yang sama. Tinggal searching di google, siswa sudah tahu apapun yang diinginkannya. Postingan ini sedikit memberi pertahanan agar para pengajar tidak dilibas oleh era ini.

Melatih Ingatan

Tidak dapat dipungkiri, dengan adanya google kita jadi malas untuk mengingat-ingat. Toh, ada di google jawabannya. Tapi secepat-cepatnya Anda searching, tetap jauh lebih cepat jika Anda mengetahui dari ingatan Anda. Sebenarnya era generasi X dan sebelumnya memiliki keunggulan dalam hal ingatan (maklum belum ada google, jadi harus buka buku atau nanya-nanya). Tidak ada salahnya mengingat-ingat informasi yang pernah kita miliki. Oiya, era industri 4.0 bercirikan bahwa pengajar bukan seperti pemberi informasi melainkan fasilitator, motivator, dan model bagi siswa. Kita tentu lebih mengagumi seseorang yang ketika ditanya langsung menjawab dibandingkan buka contekan dulu, atau searching di Google. Jika kita langsung menjawab kemungkinan besar siswa kagum, dan jika siswa mengagumi gurunya makan mereka akan lebih mudah diajari dan dimotivasi.

Gunakan Metode Iterasi

Bagi orang IT, dikenal metode pengembangan sistem (SDLC) waterfall. Metode ini mengalir terus dari analisa, disain, coding, testing, dan implementasi. Dikatakan waterfall karena mengalir turun ke bawah bak air terjun. Ketika membaca atau mempelajari ilmu baru jangan gunakan metode jadul tersebut, melainkan pilih metode yang terjamin keberhasilannya, yaitu iterasi.

Metode yang biasanya digunakan oleh pengembang program berorientasi objek ini memastikan ketika melaksanakan atau mengerjakan sesuatu, seluruh tahapan (analisa, disain, coding, testing dan implementasi) dilakukan. Bagaimana praktisnya? Sederhana sebenarnya, ketika kita membaca satu tulisan, misalnya postingan ini. Dimulai dari paragraf pertama Anda wajib menjalankan seluruh metode belajar yang dikuasai (biasanya mencari topik utama, menguji apa yg diserap, dan mengulang jika kurang paham). Ketika Anda membaca sampai sini, jika Anda lupa mencari topik bacaan tiap paragraf, dan tidak mengetes apa informasi yang baru diterima, jangan-jangan setelah selesai membaca postingan ini tidak ada yang masuk di otak. Di jaman yang cepat ini membaca ulang sangat memboroskan waktu Anda, jadi pastikan sekali gebuk (maksudnya baca) langsung mengerti. Sebenarnya sifat alami otak itu iterasi. Pernahkan Anda menonton film di bioskop berkali-kali? Tentu saja tidak. Hal ini karena ketika menonton, di kepala kita tidak hanya mengikuti cerita melainkan muncul seluruh metode belajar dari memahami, menyimpulkan, menguji hasil pengamatan, dan seterusnya. Ada dua kemungkinan Anda menonton kembali: menyukai film tersebut, atau ketiduran ketika menonton yang pertama atau melakukan aktivitas-aktivitas lain yang ga jelas. Jika ada tambahan bisa ditambahkan di komentar. Sekian, semoga bisa membantu.