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