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