Basis Data di Matlab

Tahun 2000 merupakan tahun perkenalan saya dengan Matlab. Dosen pengajar pengenalan pengaturan (dulu namanya mekanisme servo dan kontrol) rencananya akan memberikan seminar khusus di kampus. Sayangnya ternyata acara itu karena satu lain hal di-cancel. Rencananya saya akan menggunakan software itu untuk tugas akhir saya dalam mensimulasikan sistem suspensi. Apa boleh buat, terpaksa belajar sendiri.

Setelah membuka-buka Matlab ternyata banyak fasilitas-fasilitas menarik yang bisa diexplore, apalagi waktu itu Matlab 6 sudah muncul. Versi ini jauh lebih menarik dibanding Matlab 5, versi sebelumnya. Dari kedokteran, sains, bahkan ekonomi pun bisa memanfaatkan Matlab, walaupun orang informatika waktu itu kurang menyukai karena “terlalu mudah” atau “hanya mengandalkan toolbox” dibanding dengan bahasa c++, visual basic, pascal (sekarang Delphi) yang lebih laris dipasaran dan banyak dipakai pengembang. Efeknya, buku-buku terbitan Matlab waktu itu masih amat langka, ditambah lagi waktu itu internet masih barang mahal dibanding sekarang. Tapi bagi pengembang metode (bukan terapan) Matlab sangat menarik karena dengan cepat bisa mengeksekusi metode-metode rumit buatannya, karena kelamaan jika terlalu berfokus ke coding. Salah satu kelemahan Matlab sehingga dijauhi pengembang waktu itu adalah sulit diterapkan ke sistem basis data (DBMS). Sempat membuka sampel penggunaan basis data ternyata basis data yang digunakan tersimpan dalam format “mat” khusus Matlab, tidak dengan Access, MySql, dan sejenisnya. Untuk menghubungkannya harus mengkonversi dari DBMS tersebut ke Excel atau “dat” file agar bisa dimanipulasi Matlab.

Dengan Matlab saya banyak menerima dana hibah penelitian dari DIKTI untuk mengutak-atik Soft Computing dengan metode-metode terbarunya baik penerapan atau memodifikasi metode tersebut. Dari Jaringan Syaraf Tiruan hingga Algoritma genetika sudah saya gunakan, hingga akhirnya saya dipaksa melibatkan DBMS karena data yang besar (big data) dengan ukuran dua giga byte ke atas. Apalagi jika data yang akan dimanipulasi real time yang harus berubah-ubah terus. Untungnya Matlab 7 sudah memberikan fasilitas menghubungkan Matlab dengan basis data, waktu itu saya menggunakan ruby on rail sebagai interface yang menampilkan hasil manipulasi genetic algorithms ke web lewat PostgreSQL

Karena banyak yang menanyakan cara menghubungkan Matlab dengan DBMS, plus pemrograman visualnya (GUI) akhirnya saya tulis ke dalam buku yang baru terbit Februari 2016 kemarin.

Entah sudah tersedia di toko-toko buku terdekat atau belum saat ini. Kebanyakan pembeli menggunakan situs online dari penerbit informatika, link-nya berikut ini. Ada beberapa contoh kasus seperti enkripsi sederhana terhadap database, pengolahan citra digital (digital image processing) dan clustering dengan Fuzzy C-Mean. Kali ini saya menambahkan dengan CD. DBMS yang saya gunakan adalah Microsoft Access sebagai perwakilan aplikasi desktop dan MySQL sebagai perwakilan aplikasi berbasis Web dengan ODBC sebagai jembatan penghubung dari Matlab ke DBMS lewat windows.

Untuk membuat buku yang sempurna mungkin membutuhkan waktu yang cukup panjang, sementara para mahasiswa yang sedang menyelesaikan tugas akhir/skripsi/tesis dikejar waktu, ada baiknya buku yang ringkas dan sesuai kebutuhan tersedia di pasaran. Semoga bermanfaat, Amiin.

Teknik Mengetik Sepuluh Jari dengan Keyboard Virtual

 

Ketika sedang semangat-semangatnya mengetik dengan tablet surface yang dilengkapi dengan keyboard yang dikenal dengan nama type cover, ada masalah dengan konektor akibat seringkali melakukan flip ketika sedang membaca sehingga tidak dapat digunakan. Untuk memperbaiki sepertinya sangat sulit dan beberapa tukang servis spesialis keyboard menolak. Akhirnya terpaksa saya menggunakan keyboard virtual bawaan surface dengan segala problematika tentunya.

Mengetik Sepuluh Jari

Ada baiknya diulas terlebih dahulu teknik dasar mengetik yang dikenal dengan nama teknik sepuluh jari. Teknik ini mengharuskan mengetik suatu huruf/angka di keyboard dengan jari tertentu, misalnya huruf a dengan jari kelingking, spasi dengan ibu jari, dan sebagainya dengan harapan proses mengetik menjadi jauh lebih celat dibanding mengetik dengan dua atau beberapa jari saja (sering disebut juga teknik sebelas jari). Bagaimana supaya posisi jari tidak melenceng dan tepat di sekitar lokasi huruf yang akan siap diketik? Jawabannya adalah dengan meletakan jari telunjuk di rumah jari yaitu huruf a,s,d,f,j,k,l, dan ; (di keyboard virtual saya ‘). Untuk memudahkan penempatannya, tiap keyboard biasanya memberikan titik atau garis di buruf ‘f’ dan ‘j’ yang dapat diraba dengan telunjuk kita.

Mengetik Buta

Mengetik buta adalah mengetik tingkat lanjut yang tidak lagi melihat tuts di keyboard karena jari sudah mengetahui posisinya tanpa melihat. Mengetahui posisi dilakukan dengan meletakan jari di rumah jari yang dipandu oleh tanda titik atau garis di huruf ‘f’ dan ‘j’. Dulu mengetik dengan teknik buta sangat dibutuhkan terutama di jasa pengetikan yang hanya bertugas menyalin dari tulisan tangan ke tulisan cetak lewat ketikan apa adanya. Ketika mengetik, mata hanya terfokus ke tulisan tangan atau sumber lain seperti text book sementara jari mengetik tanpa melihat kecuali saat tertentu misalnya ganti baris (di mesin tik manual jaman dulu ada bel yang menginformasikan pengetik bahwa ketikan sudah hampir di bagian akhir baris dan harus dipindah ke baris berikutnya dengan menarik tuas ke sebelah kiri).

Mengetik dengan Keyboard Virtual

Bagaimana dengan keyboard virtual? Apa saja kesulitan yang dijumpai ketika menggunakan keyboard jenis baru ini (muncul ketika smartphone merajalela penggunaannya)? Sebagian orang yang sudah menggunakannya pasti sudah mengetahuinya. Salah satu pemicu munculnya keyboard virtual adalah kepraktisan dimana gadget (waktu itu keyboard qwerty secara fisik dikuasai oleh blackberry) tidak perlu menyediakan hardware tambahan untuk keyboard. Ketika akan mengetik secara otomatis gadget akan memunculkan keyboard virtual yang disediakan oleh android, ios, atau windows mobile.

Untuk orang yang mengetik non sepuluh jari sepertinya tidak memiliki perbedaan yang berarti baik mengetik dengan keyboard virtal maupun keyboard sesungguhnya. Bahkan mereka merasa lebih nyaman karena jari tidak perlu menekan lebih keras (ketika menggunakan keyboard fisik ala blackberry awal mereka bilang jarinya bentol-bentol). Tetapi bagi pengetik sepuluh jari seperti saya, muncul masalah baik dari sisi kecepatan maupun akurasi. Karena kebetulan keyboard rusak maka mau tidak mau berusaha memikirkan cara bagaimana nyaman dengan keyboard virtual.

Pertama-tama kita perlu mengetahui bagaimana prinsip kerja teknik mengetik sepuluh jari bekerja. Seperti sudah dibahas di muka, pada teknik ini jari diletakan dalam kondisi istirahat dengan menempel di rumah jari dengan panduan tanda khusus di huruf ‘f’ dan ‘j’. Tentu saja hal ini tidak dapat dilakukan dengan keyboard virtual mengingat keyboard akan dianggap ditekan ketika jari menyentuh huruf atau angka. Pertama-tama saya mencoba dengan meletakan jari di atas rumah jari tanpa menempel, tetapi sering terjadi kesalahan terutama di posisi kelingking. Akhirnya saya menemukan cara yang cukup akurat yaitu merubah tanda rumah jari dari ‘f’dan ‘j’ menjadi ‘a’ dan ‘;’ dengan seluruh jari membentu formasi lengkungan agar mata dapat melihat seluruh keyboard tanpa meninggalkan rumah jari. Setelah saya cek, untuk kecepatan tidak terlalu signifikan pengurangannya, hanya butuh latihan beberapa saat. Justru tangan sedikit lebih santai karena tidak perlu menekan keras untuk mengetiknya (ada jenis cidera tertentu bagi pengetik akibat tekanan kecil tapi berulang di jari). Untungnya vendor smartphone atau tablet menyediakan getaran atau bunyi ketika keyboard virtual ditekan agar pengetik dapat memastikan bahwa tuts sudah tercetak ketika terdengar bunyi yang biasanya mirip suara ketikan.

Bagaimana dengan mengetik teknik buta? Inilah salab satu kendala tidak mungkin menggunakan keyboard virtual dengan teknik buta (kecuali Anda punya indera keenam). Salah satu caranya adalah vendor menyediakan keyboard virtual yang membutuhkan tekanan ketika mengetik (tidak hanya menyentuh) agar jari bisa diletakan di rumahnya dan harus menekan ketika berniat mengetik. Untuk sementara tidak apalah tidak bisa mengetik dengan teknik buta di keyboard virtual, toh saat ini mengetik dengan menyalin buku sudah jarang saya lakukan, karena kebanyakan mengarang langsung ketika mengetik. Mohon saran, siapa tahu ada rumus yang lebih oke dari teknik yang saya tulis di atas. Mengetik di keyboard virtual itu keren juga, apalagi langsung mengetik di layar tablet dengan sepuluh jari, dijamin orang pada ngelihat karena tentu saja kesannya lebih futuritis.

Problem Touch Windows di Surface RT yang tidak Merespon

Setelah mencari cara menyelesaikan problem touch windows surface di internet beberapa lama saya tidak berhasil menemukan jawaban, baik jawaban praktis maupun jawaban inti permasalahan mengapa ketika logo windows di surface ditekan, hanya muncul getaran saja, tidak ada respon untuk ‘‘wakeup” atau berubah ke menu utama windows 8.1.

Berbeda dengan surface pro yang memang benar-benar laptop, surface rt merupakan windows versi tablet yang berprosesor ARM yaitu prosesor khusus tablet dan HP dengan penggunaan daya yang rendah sehingga mampu menghemat baterai tablet/hp. Salah satu keunggulan RT dibanding pro menurut informasi dari youtube adalah kecepatannya wakeup dari kondisi sleep. Jadi jika saya mengetik dan melakukan aktivitas lainnya sekaligus, saya tidak perlu menunggu waktu lama jika ingin melanjutkan mengetik lagi, tinggal menyalakan tablet saja. Nah di sinilah repotnya, setelah beberapa kali update, ternyata logo windows surface tidak merespon (hanya bergetar) ketika ditekan untuk ‘membangunkannya’. Sebenarnya bisa dilakukan dengan menekan tombol power, tetapi muncul kekhawatiran kalau tombol terlalu sering ditekan lama-lama bisa error walaupun saya yakin windows merancang tombol power yang tahan lama. Tapi tentu saja lebih oke jika membangunkan surface dengan tombol touch screen – nya karena sentuhan tidak terlalu melelahkan secara fisik.

Ada beberapa saran yang berhasil ditemukan dari internet, namun hanya satu saran yang berhasil yaitu mereset windows ke kondisi awal (factory setting). Ternyata berjalan normal kembali touch screen windowsnya walaupun terkadang harus menekan beberapa kali. Kuat dugaan bahwa ketika tombol touchscreen windows ditekan, sepertinya windows membutuhkan cukup banyak proses sehingga membutuhkan waktu, kecuali jika kondisi sleepnya hanya sesaat (ketika baca ebook tiba2 sleep). Bahkan pernah ketika ditekan saya tunggu hampir 1 menit baru lock screennya muncul. Jadi ketika update windows, tablet sepertinya berat dan agak kesulitan ketika wakeup lewat touch screen, atau karena windows surface versi anyar letak logonya di kanan bukan di bawah seperti versi pertamaya?

Memang banyak yang kecewa dengan surface rt karena tidak ada GSM dan tidak bisa diinstal aplikasi-aplikasi layaknya laptop (program exe seperti spss, matlab, dll). Tapi jika anda penulis atau penggemar internetan, surface rt memiliki keunggulan dibanding laptop atau surface pro karena wakeupnya yang cepat secepat anda menghidupkan hp ketika ingin menelpon dan tentu saja, baterainya yang tahan lama (kaget juga surface yang masih menyala dengan baterai masih ada ketika tiga hari tidak digunakan). Yang sedikit mengagumkan adalah kecepatan men-charge nya yang tidak sampai lima belas menit). Akhirnya saya males untuk mengupdate surface khawatir ada masalah. Sebelumnya juga ada masalah ketika update dimana windows memberikan sekuriti tambahan ke browser yang mengakibatkan saya tidak bisa akses ke internet kampus yang menggunakan proxy yang tidak tersertifikasi windows. Waktu itu saya melakukan reset windows dgn pilihan yg bukan reset factory setting (hanya update saja yang dibatalkan). Mohon saran di komentar bagi yang berpengalaman dengan windows surface.

Menulis Artikel Ilmiah … Edisi Galau

Setelah beberapa bulan melakukan riset kini saatnya menulis laporan dalam bentuk artikel ilmiah (research paper). Mungkin pembaca bertanya dalam hati “lalu?”. Ya itu, masalahnya, “Bagaimana?”. Masalah-masalah baru kemudian muncul yang sepertinya sama rumitnya dengan mengerjakan riset itu sendiri. Jika ada yang beranggapan artikel ilmiah itu hanya melaporkan hasil riset yang telah kita jalani, sepertinya kurang tepat karena pada saat riset kita berkomunikasi antara diri kita dengan problem, sementara pada penulisan artikel ilmiah, kita harus berkomunikasi dengan komunitas ilmiah. Video dari Cambridge di akhir postingan ini dapat jadi acuan bagaimana membuat artikel ilmiah yang tepat di era modern ini, era di mana pembaca menjadi perhatian utama mengingat ribuan artikel muncul setiap hari sehingga kebutuhan akan tulisan yang mudah dimengerti, singkat, dan sesuai kebutuhan pembaca sangat besar.

Tadinya karena kejar tayang saya membuat artikel ilmiah hanya berisi laporan apa saja yang saya lakukan di riset disertai dengan hasil dan kesimpulannya. Ternyata hasilnya kurang memuaskan dan banyak yang harus direvisi. Beberapa rekan menyarankan untuk menggunakan jasa proof reading guna pengecekan dari sisi bahasa (Inggris atau yang lain). Sayang, harganya lumayan selangit. Akhirnya saya coba sendiri dahulu, datang ke perpustakaan dan mencari buku-buku panduan penulisan karya ilmiah. Lumayan juga sedikit membantu, terutama dalam membuat komposisi paragraf yang berisi thesis statement, detail terhadap thesis statement, menyimpulkan, dan sebagainya. Tapi tentu saja itu hanya membantu dalam komposisi tulisan secara general. Untuk artikel ilmiah sepertinya perlu sumber lain.

Youtube sepertinya sarana yang baik, tetapi tentu saja sumber yang benar, karena banyak yang setelah saya lihat cuma bercanda saja. Kalau ingin sumber yang tepat, cari yang berasal dari perkuliahan di kampus-kampus ternama. Video di bawah ini sangat menarik karena disajikan oleh peneliti microsoft yang berpengalaman, dan tentu saja cocok dengan bidang saya yang IT. Penyampaiannya yang interaktif dengan para mahasiswa dan ide-ide nya yang masuk akal sepertinya sayang untuk dilewatkan. Hal-hal menarik dalam video ini adalah pertama penekanan pada introduction dengan statement yang menjelaskan menariknya problem yang akan kita selesaikan lewat contoh (example). Tujuannya adalah agar pembaca mudah mengerti dibandingkan dengan model lama ala texbook mata pelajaran matematika. Jika D adalah ini, X adalah ini, dan aksioma2 njlimet lainnya sepertinya akan membuat pembaca tidur, atau tampak o’on. Kedua, jangan melupakan etika, contohnya agar ide kita bagus dengan menjelek-jelekan ide orang lain. Jangan khawatir, penghargaan kita ke ide orang tidak akan mengurangi penghargaan orang terhadap ide kita. Ketiga, hargai pembaca jangan “ngerjain”. Ada penulis yang pembaca ke sini dan ke situ, trus dibilang, “terbukti ternyata jalan itu kurang tepat”. Tentu saja pembaca akan jengkel karena merasa diajak ngalor-ngidul. Langsung saja apa langkah tepat yang kita temukan sehingga diperoleh hasil yang memuaskan. Keempat, masalah bagian-bagian tertentu yang tidak perlu seperti “the rest of this paper …” yang berisi isi dari paper ini karena hampir pasti tidak akan dibaca (langsung dilewati). Juga ada yang unik dimana “related works” tidak disarankan di awal. Sepertinya ini masih kontroversi, coba lihat aja sendiri di video itu. Terakhir adalah jangan marah ketika dikritik pembaca karena kritik oleh pembaca itu adalah hadiah terindah dari orang yang telah meluangkan waktu membaca karya kita. Selamat menikmati … oiya, sayangnya bahasa Inggris.

how to write

Algoritma Genetika dengan Toolbox Matlab

Genetic Algorithms (GAs) digunakan untuk mencari nilai optimal (maksimum atau minimum) suatu fungsi. Fungsi itu dikenal dengan istilah fitness function, atau ada juga yang menyebutnya fungsi objektif. Sebelumnya optimasi dilakukan dengan cara matematis, kalau kita inget-inget lagi pelajaran SMA dengan menurunkan suatu persamaan dan disamadengankan dengan nol. Tetapi masalah muncul jika persamaan itu memiliki banyak nilai optimal, karena nilai optimal akan terjebak dalam lokal optimum. Contohnya adalah fungsi rastrigin dari Matlab yang memiliki banyak jebakan local minimum dan hanya ada satu global optimum (kayak tempat telor ya).

Ok, kita coba mengoptimasikan satu fungsi objektif dari penanya: y = 2*x(1)+3*x(2)+4*x(3)+4*x(4). Dengan constraint: 10<x(1)<20, 30<x(2)<40, 50<x(3)<60, 70<x(4)<80. Kayaknya susah. Sebelumnya, buat terlebih dahulu fungsinya di m-file. Praktisnya ketik saja edit fungsi jika kita mau membuat fungsi objektif itu bernama fungsi. Tekan “yes” jika ada pesan bahwa tidak ada m-file bernama “fungsi”. Berarti fungsi bernama fungsi itu tidak dimiliki oleh bahasa built-in bawan Matlab. Ketik fungsi y di atas di m-file editor yang baru saja terbuka.

Kok Cuma gitu? Ya iyalah, coba tes dengan x1, x2, x3, dan x4 berturut-turut 1,2,3, dan 4 di command window dengan mengetik y=fungsi([1 2 3 4]). Jawabannya harus 36 dan tidak ada pesan error. Oiya, ini harus benar, karena jika sampai sini tidak berhasil mengikuti ya dijamin ga bakal bisa terus ke algoritma genetik, tapi kalo hanya ingin membaca saja ya rapopo.

Seperti biasa, cara termudah mengoperasikan Matlab adalah dengan menggunakan toolbox yang tersedia. Untuk GAs, karena masuk dalam kategori optimization toolbox, gunakan fungsi optimtool di command window.

Setelah memilih jenis optimasinya (GAs), isi nama fungsi didahului @, jumlah variabel (4 variabel) dan perhatikan teknik mengisi bound yang sesuai persoalan. Di bagian kanan masih ada sebenarnya, tapi ga wajib. Centang pada isian plotting pada best fitness dan best individual sehingga ketika tombol “Start” ditekan, proses optimasi akan disertai pergerakan grafik yang interaktif. Oiya, tolong dicek benar atau tidak kalau itu nilai minimum. He he .. kayaknya ga perlu pake GAs saya juga bisa nebak, ya pasti batas bawah lah jawabannya (10, 30, 50, dan 70) soalnya fungsi kuadrat (membesar terus). Coba ganti fungsi yang lain.

Progress Meeting …

Bagi pembaca yang pernah mengenyam pendidikan doctoral pasti mengenal istilah progress meeting. Atau mungkin dengan istilah yang berbeda dengan aturan yang berbeda pula. Untuk level sarjana atau master biasanya karena jangka waktu riset yang hanya setahun terkadang tidak dilakukan progress meeting. Kalaupun ada tergantung kebijaksanaan dari dosen pembimbing yang bersangkutan. Sementara jenjang doktoral karena fokus utamanya adalah riset maka perlu adanya progress meeting yang fungsinya memantau perkembangan risetnya. Terkadang menjadi penentu apakah mahasiswa yang bersangkutan boleh meneruskan risetnya, ganti judul, ganti objektive atau sialnya dikeluarkan alias drop out. Biasanya pertemuan ini dilakukan menjelang akhir-akhir semester, bahkan jika supervisor, chair, atau advisor mau, ada yang dijadwalkan pertemuan tidak resmi tiap minggu atau tiap bulan sekali untuk memantau perkembangan riset mahasiswa yang bersangkutan.

Berbeda dengan level di bawahnya, program doktoral sangat tergantung dari advisor. Sulit sekali ganti advisor kecuali dalam keadaan darurat dimana si advisor secara keilmuan tidak bisa membimbing lagi. Jika hanya karena si advisor pindah kampus, maka mahasiswa doktoral yang bersangkutan tetap menjadi siswa didiknya. Cara komunikasinya bisa dengan email, chatting, atau video conference jika lokasi kerjanya jauh dari tempat mahasiswa tersebut. Bagi Anda yang mendapat jadwal pertemuan rutin, mungkin agak kewalahan karena selalu dipaksa ada kemajuan tiap pertemuan tetapi biasanya lulus dengan lancar. Sementara saya yang hanya satu kali pertemuan progress jika terlena akibatnya fatal, minimal kalang kabut menjelang progress meeting yang jadwalnya sekehendak hati supervisor/advisor. Pemerintah melalui direktorat pendidikan tinggi (DIKTI) yang sekarang pisah dengan pendidikan dasar dan menengah dan gabung dengan riset dan teknologi (RISTEK) menjadi kementrian RISTEK DIKTI menyadari hal ini, maka ketika menyeleksi calon penerima beasiswa akan memantau hubungan calon penerima beasiswa dengan calon supervisor/advisor. Email baik dari calon sepervisor ke calon mahasiswanya atau sebaliknya diminta untuk dilampirkan sebagai berkas syarat penerimaan beasiswa. Walaupun topik disertasi bisa berubah dalam perjalanannya, topik saat akan mengajukan beasiswa menjadi bahan pertimbangan. Ada baiknya topik memang menguntungkan pemberi beasiswa, jika DIKTI ya topiknya atau study area-nya di Indonesia.

Anda akan tersiksa ketika mengambil topik yang tidak disukai mengingat riset level doktoral sangat panjang dan beragam jenisnya. Ada yang tipenya objektif 1, objektif 2, dan seterusnya dengan antara objektif satu dengan lainnya bisa menghasilkan satu tulisan di jurnal, tetapi ada juga yang tidak bisa dibuat satu jurnal langsung karena antara satu objektif dengan objektif lainnya saling berkait, dan ini yang menjadi masalah ketika ada syarat kelulusan publikasi jurnal. Akan kewalahan jika selesai objektif terakhir tetapi jurnal selalu gagal diterima. Kalaupun diterima terkadang proses hingga publish cukup panjang. Untungnya terkadang kampus sudah meluluskan asalkan paper sudah diterima walaupun belum diterbitkan. Tetapi jika Anda suka dengan riset Anda, walaupun sulit dan cenat-cenut, Anda akan berusaha dengan segala daya dan upaya untuk menemukan jawabannya. Saya sendiri banyak memperoleh jawaban dari permasalahan yang muncul tidak di meja belajar. Terkadang ketika nongkrong di warung kopi, bangun tidur, ketika beribadah (ini yang menjengkelkan), atau ketika sedang bertapa di WC.

Apa sajakah biang keladi lamanya lulus seorang mahasiswa doktoral? Sebelum saya berangkat studi lanjut saya dikaruniai ngobrol dengan tokoh-tokoh di bidangnya (oiya bidang saya IT “pindahan”). Seorang doktor dari UI mengatakan kepada saya bahwa, dia berusaha membuat mahasiswa doktoralnya lulus, tetapi karena jarang bimbingan dan sibuk kerja, banyak juga yang putus ditengah jalan, alias “muntaber”, mundur tanpa berita. Sementara pa Onno Purbo, ketika makan bareng di kampus unisma selepas seminar mengatakan jika ingin lancar sidang doktoral (defense), buat saja publikasi sebanyak-banyaknya, nanti di presentasinya sebutkan saja “sudah dipublikasi di jurnal .. ini” ketika membahas topik tertentu. Tetapi kenyataannya karena mungkin itu levelnya dia, syarat satu publikasi saja susah apalagi sampai lima begitu.

Setelah progress ? ya santai temporer .. alias liburan semester

Update: 6 Des 2015

Ternyata harus utak-atik paper dulu sebelum balik. Siapa tahu bisa publish.

Update: 23 Maret 2016

Alhamdulillah baru saja submit ke jurnal internasional, semoga diterima/accepted, amiin…

Update: 10 Februari 2017

Setelah sekali ditolak (lihat update sebelumnya), akhirnya naskah tulisan saya diterima dan sudah dipublish di Jurnal internasiona. Tinggal lanjut menyelesaikan laporan disertasi, semoga lancar.

Fungsi Erase sebagai Reverse Clip di ArcMap

Clip sesuai dengan maknanya adalah memotong. Jadi suatu polygon dapat kita potong menurut bentuk tertentu. Hasil akhirnya adalah polygon yang hanya berada di wilayah yang dijadikan pemotong tersebut. Untuk jelasnya dapat Anda lihat di link resminya ini untuk kasus reverse clip. Apa itu reverse clip? Mudah saja, artinya kebalikan clip jadi pemotongnya malah tidak terdapat polygon atau data dari yang dipotong.

Dalam ArcGIS, fungsi yang digunakan adalah fungsi Erase. Untuk berlatih, misalnya kita sudah memiliki region, katakanlah lokasi yang diperbolehkan untuk membangun seperti gambar berikut ini.

Kemudian ternyata ada aturan bahwa ruang terbuka hijau (RTH) tidak boleh didirikan bangunan untuk menjaga kondisi agar layak dihuni. Polygon dihatas harus dikurangi dengan polygon RTH tersebut.

Seperti biasa search fungsi “erase” untuk memunculkan jendela erase. Pilih shape file yang akan diclip serta shapefile clippernya. Jangan lupa arahkan lokasi shapefile baru hasil erase tersebut. Jika sudah tekan OK dan tunggu hingga proses erase selesai.

Jika berhasil Anda akan memperoleh shapefile baru yang telah dikurangi oleh clipper. Bagi Anda yang akan mengekspor shapefile ke Matlab ada baiknya anda masuk ke Environment dan men-disable z dan m agar dihasilkan polygon 2D karena terkadang Matlab hanya mau polygon saja (bukan polygonZ).

Menghitung Luas Area Polygon di Arcmap 10

Terkeadang kita diminta berapa luas wilayah yang cocok untuk menanam padi, ruang terbuka hijau, dan sebagainya. Apalagi bagi Anda yang berkecimpung dalam dunia perencanaan wilayah. Berikut ini contoh ruang terbuka hijau di kota bekasi yang akan dihitung luas areanya.

Pertama-tama adalah membuka tabel dengan cara klik kanan pada map di table of content. Buat satu field baru untuk menampung area di tiap-tiap polygon karena pada contoh di atas ruang terbuka terdiri dari banyak polygon.

Setelah menambahkan field baru beserta format datanya sorot semua dan klik kanan untuk melakukan kalkulasi geometri. Oiya, pilih format data dengan presisi beberapa digit di belakang koma, karena luas kebanyakan berformat desimal.

Saya menggunakan unit kilometer persegi yang jika salah memilih format angka, banyak yang berupa angka nol. Dengan memilih double saya bisa memperoleh beberapa digit di belakang koma, tentu saja sesuaikan dengan kebutuhan, karena sangat berhubungan dengan resource. Berikutnya kita akan menghitung total area seluruh polygon tersebut. Sorot Id dan pilih Summarize setelah klik kanan.

Total area dapat anda lihat dengan cara yang sama tapi dengan menekan Statistics … yang akan memunculkan data-data seperti di bawah ini.

Perhatikan, Anda telah berhasil mendapatkan jumlah sebesar 35,28 km persegi. Tentu saja Anda harus memastikan projection sudah benar. Luas kota bekasi adalah sekitar 210,49 km persegi (atau 21.049 hektar), jadi prosentasi ruang terbuka kota tercinta ini adalah 16.76 persen, harus dipertahankan syukur-syukur bisa ditambah hingga 20 – 30 %. selamat mencoba.

Can’t delete DBF field from ArcMap 10 table view window

Ketika utak-atik tabel, terutama saat ingin mendelete, ternyata tidak ada pilihan “delete”. Bingung juga, yang membuat saya bingung adalah kenapa dulu bisa sekarang tidak bisa? Maklum problem “orang tua”. Akhirnya iseng-iseng buka google dengan kata kunci “cannot delete table arcgis” (siapa tahu dapat jawaban yang memang biasanya sih ketemu jawabannya). Ternyata ketika saya buka situs khusus ArcGIS, aneh juga banyak yang bilang itu “bug”. Yang “gila”nya lagi banyak yang menyarankan untuk mengekspor shapefile ke shapefile yang baru, tentu saja merepotkan bagi saya.

Tadinya saya percaya, tetapi saya bertanya dalam hati, kenapa kemarin bisa sekarang tidak bisa, tentu saja tidak ada yang error di aplikasi. Setelah saya ulang lagi cara saya menginput data, ternyata ketemu solusi masalah di atas. Langkah pertama adalah mengklik kanan peta yang akan anda utak-atik tabelnya.

Pilih Edit FeaturesStart Editing. Klik “Continue” ketika muncul jendela baru. Solusi yang sederhana, walaupun sempat merepotkan. Jadi, jangan terlalu percaya dengan google, dan coba selesaikan terlebih dahulu sendiri, anggap aja olah raga asah otak, he he.

 

Mengetahui Data Network JST hasil Training

Postingan yang lalu sudah dibahas bagaimana mengelola Mat-file agar file hasil learning JST bisa dibuka kembali. Ketika dibuka dengan fungsi load pertama kali saya mencoba ternyata hanya variable hasil training yang muncul, misalnya variabel jst. Padahal kita ingin mengetahui bobot, bias, jumlah input, output dan neuronnya. Untuk mengetahui bagaimana melakukan training JST dapat Anda lihat postingan di menu JST. Sebenarnya kita sudah mengetahui jumlah neuron, bias dan bobot ketika kita melakukan proses pembelajaran, tetapi jika lupa mencatatnya maka kita dapat mengetahui paramater-parameter JST lewat langkah berikut ini.

Di sini kita mencoba menjawab pertanyaan berapa bobot, bias, dan jumlah neuron suatu JST? Seperti biasa buka Matlab dan masuk ke command window.

load training

Di sini saya memanggil file mat bernama “training” yang telah saya simpan sebelumnya dengan fungsi write. Perhatikan di jendela workspace, tampak muncul variabel baru bernama jst. Variabel itulah yang akan kita cari jawabannya. Caranya sederhana, ketik saja nama variabelnya

jst

Maka Anda akan disuguhkan oleh data-data yang tersimpan dalam variabel “jst”. Data-data itu tersusun dalam format bertitik. Perhatikan informasi bias dan bobot di bagian bawah.

  • >> bobot=jst.IW
  • bobot =
  • [9×4 double]

Maksud dari “jst.IW” adalah kita memanggil informasi bobot yang ada dalam variabel “jst” yang kemudian disimpan dalam variabel bernama “bobot”. Namun muncul masalah dimana bobot hanya menampilkan file bertipe structure. Tipe file ini sering digunakan oleh pengguna Matlab yang berkecimpung dengan database.

  • >> cell2mat(bobot)
  • ans =
  • 0.6300 0.9296 0.5837 -0.2078
  • 0.8001 -0.6945 0.9106 0.2863
  • -0.7114 0.9695 0.3352 -0.5743
  • 0.8743 0.9537 -0.8952 0.5222
  • 0.3212 0.0178 0.7384 -0.8089
  • -0.8575 0.5574 0.8318 -0.5720
  • -0.4038 -0.6834 0.3856 -0.8205
  • 0.1292 -0.1272 0.5403 -0.7231
  • 0.8403 0.7692 0.4331 0.4783

Sebenarnya jumlah bobot sudah terjawab, tetapi jika ingin mengetahui bobot tiap neuron berdasarkan masukan (ada 4 input) maka gunakan konversi dari cell ke mat (fungsi cell2mat). Begitu juga untuk biasnya:

  • >> bias=jst.b
  • bias =
  • [9×1 double]
  • [ -0.5114]
  • >> cell2mat(bias)
  • ans =
  • 0.3908
  • -0.3910
  • 0.9763
  • -0.8269
  • 0.0012
  • -0.3521
  • 0.6170
  • 0.6681
  • -0.7900
  • -0.5114

 

 

 

Mengelola Mat-File

Salah satu ketangguhan Matlab adalah kemampuannya menangani vektor dan matriks. Matriks yang telah diolah oleh matlab disimpan sementara di workspace yang biasanya terletak di pojok kanan atas. Jika Matlab ditutup, maka data di workspace akan hilang. Agar tidak hilang, maka data tersebut harus disimpan dalam bentuk file di komputer kita, salah satu caranya adalah dengan instruksi save. Untuk yang sudah mahir mungkin menyimpan hasil dengan mengkoneksikan Matlab ke database dan mengirim atau menerima data secara langsung dari database itu.

Menyimpan Mat-File

Sebagai contoh di workspace saya terdapat lima variabel hasil utak-atik jaringan syaraf tiruan untuk memprediksi. Misalnya kita diminta menyimpan hasil training jst (saya beri nama jst) tersebut ke dalam suatu file. Pada command window dapat Anda ketik:

  • save (‘training.mat’,’jst’)

Di sini file yang akan dibentuk saya beri nama “training.mat”. di sebelah kananya variabel yang akan tersimpan dalam file training.mat tersebut. Sebenarnya bisa juga dengan mengetik save training yang fungsinya menyimpan juga tapi kelima variabel akant tersimpan juga.

Memanggil Mat-File

Apakah variabel jst dapat dipanggil lagi walaupun Matlab sudah ditutup? Tentu saja bisa. Untuk latihan coba hapus variabel workspace dengan instruksi clear. Arahkan current directory di lokasi file mat dan ketik:

  • load training

Maka di workspace akan muncul variabel baru bernama jst yang telah disimpan sebelumnya. Jadi variabel jst itu bersembunyi di dalam file training.mat yang akan muncul jika dipanggil lewat instruksi load. Selamat mencoba.

 

 

 

 

Prediksi dengan Jaringan Syaraf Tiruan (Intervention Indicators)

Postingan ini merupakan kelanjutan dari diskusi kita tentang prediksi dengan jaringan syaraf tiruan, dasar-dasar, dan latihan awal time series tanpa variabel intervention. Berikutnya mulai masuk ke latihan ke terapannya dengan data real, dalam hal ini penggunaan lahan (landuse). Mengingat banyak pertanyaan mengenai kenapa hasil proyeksi tidak bisa membesar dan diduga hanya berada di harga antara maximum dan minimum saat pembelajaran jaringan syaraf tiruan, atau banyak hasil proyeksi yang stagnan di harga tertentu dengan besar yang sama. Berikut ini adalah data landuse untuk latihan, dengan intervention indikatornya proyeksi populasi (lihat situs bekasi ini sebagai contoh proyeksi di chart bagian bawah situs).

Tugas kita adalah mengisi kolom tanda tanya “?” hingga tahun 2030 dengan data yang tersedia hanya dari tahun 2003. Berikut langkah-langkah yang harus dibuat.

Menyiapkan data training

Cara paling gampang adalah melakukan training tiap landuse type dilanjutkan dengan meramu JST yang akan dilatih. Di sini kita bisa menentukan dua atau tiga masukan JST, sebaiknya jumlah masukan dan jumlah data sebanyak mungkin. Perhatikan jika kita membuat jumlah masukan sebanyak empat (th 2003, 2006, 2009, dan 2012) dengan target pelatihan 2015 maka datanya tentu saja hanya satu. Tetapi jika menggunakan tiga masukan, datanya ada dua set, yaitu set pertama (data: 2003, 2006, dan 2009, target: 2012) dan set kedua (data: 2006, 2009, dan 2012, target: 2015). Anda juga bisa membuat tiga set data pelatihan untuk jumlah masukan dua, tetapi tentu saja time series lebih banyak series-nya lebih baik, maka kita pilih jumlah masukan tiga tahun dan ditambah satu masukan dari proyeksi ke tahun yang akan diramal. Jadi total masukannya empat, tiga time series dan satu variabel intervensi.

Jadi data untuk misalnya tipe lahan commercial ada dua data yang kemudian dilatih membentuk satu network, katakanlah network1. Tipe lahan kedua dengan data medical dilatih dan menghasilkan network2 dan seterusnya hingga network6. Keenam network itu kemudian digunakan untuk memprediksi jumlah lahan hingga tahun 2030. Berikutnya kita mulai membuat JST-nya.

Meramu JST

Toolbox Matlab yang tersedia adalah nntool dan nftool. Semuanya saya coba ada kelemahan dan kelebihannya. Nntool sepertinya lebih fleksibel karena dapat merubah jenis transfer function (logsig, tansig, dan purelin) sementara nftool hanya dibatasi hanya satu hidden layer dengan dua transfer function berturut-turut logsig dan purelin. Di sinilah masalah sering terjadi jika kita tidak melakukan setingan ini. Jika kita memilih transfer function logsig logsig, maka kita akan memperoleh harga hanya maximum satu.

Tentu saja jika meramal proyeksi ke depan yang membesar terus, akan mengalami kesulitan jika tidak disertai variabel intervention. Pemilihan transfer function juga bisa berdasarkan dengan trend dan bentuk data pelatihan, jika membesar terus atau mengecil terus sebaiknya menggunakan pureline, alias garis lurus. Di sini maksudnya bukan bentuk prediksinya garis lurus, tapi bentuk keluaran dari transfer function di tiap-tiap neuron.

Jika anda yang suka ngoding, ada baiknya membuat kode sendiri untuk pelatihan JST karena saya sendiri malas menggunakan nntool karena harus menggunakan mouse untuk input data dan target dilanjutkan dengan membuat network baru, training dan seterusnya. Tetapi dengan script kita bisa langsung memanggil data dan melakukan training secara otomatis tanpa memainkan mouse, alias sekali jalan.

Selanjutnya lakukan training network1 hingga network6 baik dengan script maupun dengan toolbox. Tentu saja jangan lupa lakukan testing dengan data pelatihan, pastikan akurat, karena jika testing dengan data pelatihan saja sudah salah maka tentu saja dengan data sesungguhnya jadi meragukan. Jika diminta menguji dengan cross validation, maka Anda harus membuat pengelompokan data2 dimana data yang digunakan untuk training tidak boleh digunakan untuk testing (supaya adil maksudnya).

Proyeksi (Simulation)

Langkah terakhir adalah melakukan proyeksi, atau istilah JST – nya simulasi. Fungsi yang digunakan adalah fungsi “sim“. Proyeksi bisa dilakukan satu persatu, misal 2009, 2012,2015 kemudian menghasilkan ramalan di 2018, dilanjutkan dengan bergeser ke kanan satu-satu. Lihat situs ini jika ingin detilnya.

Istilahnya adalah “window” untuk tiap set training. Satu window itu untuk satu set data training yang ketika training digabung menjadi satu. Untuk testing juga dengan window, dimana hasil proyeksi digunakan lagi untuk proyeksi tahun-tahun berikutnya, atau Anda bisa menggunakan script untuk menggenerate tahun 2018 hingga 2030. Seperti ini kira-kira hasilnya. Oiya, perlu diketahui data ini adalah normal euclidean dari data sebenarnya. Untuk mengetahui data sebenarnya tinggal mengalikan data tersebut dengan normal euclidean data aslinya.

Tentu saja nomor 6 di tahun 2030 tidak bisa digunakan karena tidak ada lahan yang minus. Di sini nol mungkin wajar dimana sudah tidak ada lagi pemukiman padat. Benarkah?

 

 

 

 

 

Prediksi dengan Jaringan Syaraf Tiruan pada Matlab (Latihan Awal)

Ketika kita belajar statistik di bangku sekolah, pasti pernah diajarkan regresi, baik sederhana maupun yang agak lanjut misalnya regresi berganda (kecuali kalo jurusannya tata boga barangkali tidak diajarkan). Saat ini metode regresi banyak berkembang dengan menggabungkannya dengan metode soft computing. Jika dengan Support Vector Machine (SVM) namanya menjadi Support Vector Regression (SVR), kalau dengan Neural Network atau yang dalam bahasa Indonesianya jaringan syaraf tiruan menjadi Neural Network Regression. Di sini kita akan berlatih yang mudah dahulu yaitu neural network regression.

Seperti telah dibahas di postingan sebelumnya, pada prediksi dengan JST terkadang diperlukan data yang mempengaruhi pergerakan ramalan yang dikenal dengan istilah variabel intervention. Tapi tentu saja jangan sampai variabel ini sangat berpengaruh karena bisa berakibat bukan peramalan, melainkan prediksi seperti biasa. Langsung aja praktek, misalnya kita memiliki data temporal, misalnya 5 tahun dengan masing-masing 1,2,3,4, dan 5 (kan supaya gampang prakteknya). Variabel interventionnya misalnya berturut-turut 1000, 2000, 3000, 4000, 5000, 6000, 7000 dan seterusnya, biasanya kalo di realnya prediksi populasi penduduk, inflasi, dan sejenisnya yang ikut menentukan peramalan lima tahun itu. Siapkan datanya di Matlab. Untuk membersihkan layar ketik clc, dan untuk membersihkan variabel di workspace ketik clear (pasti ada yang belum tahu 🙂 ).

Saya lebih suka mengetiknya dengan gaya di atas, yaitu pada saat memasukan variabel pelatihan (data). Jadi JST akan kita beri dua data pelatihan (tentu saja untuk real Anda gunakan lebih dari dua data) yaitu 1,2,3 yang telah meramalkan 4 dan 2,3,4 yang telah meramalkan 5. Jadi jika kita ingin memprediksi tahun ke enam ya tinggal memasukan data 3,4,5 yang harapannya akan menghasilkan hasil ramalan, entah 5, 6 atau berapa, sesuai hasil training dua data sebelumnya. Anda bisa saja membuat tiga data pelatihan [1,2], [2,3],[3,4] tetapi ya kurang bagus kalo untuk peramalan Cuma dua series. Gimana intervention-nya? Intervention itu data input tambahan, jadi misalnya tadinya 1,2,3 karena ada data intervention menjadi 1,2,3, 4000 dan 2,3,4, 5000. Dari mana asal 4000 dan 5000, ya dari data untuk memprediksi berturut-turut tahun ke 4 dan ke-5 (mudah-mudahan nggak bingung). Ok, yg gampang dulu, ketik nntool dilanjutkan dengan mengimport variabel-variabel pelatihan ke toolbox tersebut. Ikutin prosedur-prosedur seperti postingan sebelumnya. Ketika memasukan dan mengeluarkan data sama dengan klasifikasi, tetapi untuk meramu JST, waspadalah .. waspadalah, sedikit berbeda.

Logis sedikit lah, kalo kita lihat trend datanya kan 1,2,3,4, dst, berarti linear kan? Pilihlah wakilmu yang dapat dipercaya, PURELIN alias si “pure linear”. Tapi kalau plot data yg akan diramal meliuk-liuk ya pilih tangen sigmoid aja (sorry kalo bikin pusing).

Lanjutkan dengan create hingga export hasil training (defaultnya bernama network1). Bereskah? Uji dahulu kalau begitu. Oiya ketika memprediksi data tahun ke 7, gunakan data hasil prediksi tahun ke 6, ya, di sini saya menggunakan 6.0000 karena kebetulan hasil prediksi data tahun ke 6 itu segitu, biasanya sih ga pas segitu, misal 5.889, gunakan angka itu untuk memprediksi tahun ke-7, bukannya 6.

Ok, selamat mencoba. Pencari ilmu itu harus haus, udah minum, pengen minum lagi, coba sendiri dengan menambahkan variabel intervention, dan juga data contoh yang tidak linear kayak di atas. Jika ingin pake bahasa vb, c#, java, silahkan buka m-file di matlab, pelajari dan coding ulang dengan bahasa yg menurut Anda the best, atau sesuaikan dengan permintaan jika ingin laku, informatics serves everything.

Ekspor KML dari Google Earth Pro ke SHP ESRI (ArcView/ArcGIS)

Salah satu kelebihan Google adalah aplikasi yang bersifat gratis, walaupun versi Pro pada Google Earth. Silahkan install dan kenali fasilitas dan kemudahan-kemudahan yang diberikan. Di sini sedikit dibahas bagaimana berinteraksi antara ArcGIS dengan Google Earth.

Untuk memasukan data shapefile dari arcGIS ke google earth, sepertinya tidak ada masalah, tinggal masuk ke menu File – Import. Agak sedikit ribet ketika mengekspor dari Google Earth ke ArcGIS, biasanya jika kita selesai menggambar polygon, atau memodifikasi points dari google earth untuk kemudian dianalisa di ArcGIS. Caranya mudah saja, di sini misalnya kita telah memodifikasi titik-titik komersial di suatu kota, misalnya Bekasi. Arahkan mouse ke data tersebut dan pilih Save Place As. Tidak ada pilihan shp, tapi tidak apa-apa, pilih saja KML atau KMZ, misalnya kita pilih KMZ.

Jika sudah diberi nama arahkan ke folder tujuan file kmz tersebut. Setelah itu buka arcGIS anda, oiya beri nama sementara dulu karena nanti harus sedikit modifikasi agar diperoleh data yang clean.

Pada ArcGIS terdapat fasilitas mengkonversi KMZ menjadi layer, letaknya dapat dicari di menu “Search“. Pilih KMZ to Layer. Jangan khawatir jika yang ditemukan KML to layer, karena sama saja.

Klik tool tersebut dilanjutkan dengan mencari letak file kmz yang telah kita ekspor dari google earth pro. Jangan lupa letak folder hasil konversi.

Klik OK maka Anda telah berhasil mengkonversi dari KMZ menjadi shapefile untuk diolah di arcView atau ArcGIS. Masalahnya adalah dari sisi tampilan kurang bagus, oleh karena itu saya sedikit memanipulasi dengan clipping agar dihasilkan points sesuai dengan keinginan.

Sepertinya kurang sedap dipandang mata. Buka menu Geoprocessing dan pilih Clip setelah sebelumnya menyortir data hasil konversi. Klik kanan pilih tabel.

Dari tabel sorot bagian yang diperlukan saja, biasanya Id atau atribut lainnya yang diperlukan saja. Gunakan cara yang sama ketika mengisi nama saat konversi kmz ke shp yang telah dijelaskan di muka. Hasilnya seperti di bawah ini.

Parallel Processing dengan Matlab

Selain kelebihan Matlab dalam penanganan matriks dan vektor, Matlab juga dapat menangani pemrosesan paralel. Berikut ini contoh sederhana pemanggilan dan penutupan engine dalam Matlab. Salah satu aspek penting dalam proses ini adalah kemampuan kita membuat aplikasi dengan kohesi sebesar mungkin dan kopling sekecil mungkin atau tanpa kopling sama sekali (kaya motor matic aja 🙂 ). Buat matriks 4 baris misal seperti ini:

  • x =
  • 1 2 3 4
  • 5 6 7 8
  • 9 10 11 12

Namanya latihan ya sederhana dulu saja, yang penting prinsipnya. Misal kita akan menjumlahkan tiap baris dan setelah itu dijumlahkan total hasil penjumlahan tiap baris itu. Tentu saja Anda dapat menggunakan satu mesin, dengan operasi matriks sederhana.

Anggaplah tiap menjumlahkan baris membutuhkan waktu satu jam, maka Anda sudah menghabiskan tiga jam sebelum ditotal. Tetapi jika tiap baris Anda jumlahkan dengan mesin terpisah, maka Anda akan menghemat dua jam jika menggunakan tiga mesin secara bersamaan ketika menghitung jumlah tiap barisnya. Sebenarnya saya juga masih “mencari” cara yang praktis untuk menghitung skor riset saya yang membutuhkan satu jam tiap tipe, padahal ada 10 tipe (waw). Simpan variabel x tersebut dengan instruksi save. Berikut fungsi untuk tiap engine (ganti angka 1 dengan 2 dan 3 untuk engine yang lain).

  • function y=rows1(x)
  • load x
  • x1=x(1,:);
  • y1=sum(x1)
  • save y1 ‘y1’
  • exit
  • end

Saya punya tiga m-file untuk menghitung jumlah tiap baris yaitu rows1, rows2 dan rows3 yang nanti dieksekusi oleh tiap engine. Perintah terakhir adalah mematikan engine jika sudah selesai (exit). Kemudian saya butuh satu m-file utama yang memanggil tiga engine dan menyuruhnya melakukan komputasi, diakhiri dengan mengumpulkan hasilnya lalu menjumlahkan totalnya.

  • load x
  • for i=1:3
  • i=num2str(i)
  • rows=[‘!matlab’ ‘ ‘ ‘-r’ ‘ ‘ ‘rows’ i ‘ ‘ ‘&’]
  • eval(rows)
  • end

Akan muncul tiga engine baru yang secara terpisah melakukan kalkulasi penjumlahan untuk masing-masing baris. Sementara perintah delete di akhir bermanfaat untuk menghapus file temporary tersebut. Lihat hasilnya:

  • load y1
  • load y2
  • load y3

Masih ada masalah berikutnya yaitu instruksi yang menandakan bahwa slave (rows1, rows2, dan rows3) sudah selesai. Sekali lagi tentu saja teknik ini digunakan jika menjumlahkan tiap baris membutuhkan waktu yang sangat lama jika perhitungan baris berikutnya dilakukan jika yang sebelumnya sudah selesai. Bagiku ini sungguh bermanfaat, lihat sumber ini. Pernah saya terapkan juga di pencarian beberapa nama yang sama di text mining pada data yang besar.