Metaheuristic Optimization – Advanced

Metaheuristic pengertiannya telah sedikit diulas pada postingan yang lalu. Di sini sedikit diulas metode-metode yang dapat dikatakan advanced. Namun di sini advanced tidak serta-merta untuk tingkat lanjut melainkan sekedar memberitahukan metode-metode terbaru berdasarkan artikel-artikel jurnal yang sudah diterbitkan.

Metode heuristik terkini dapat diklasifikasikan berdasarkan aliran algoritma pencariannya, antara lain:

  • Mengambil inspirasi dari sifat-sifat alami (nature)
  • Mengambil inspirasi dari sifat-sifat fisika

Sifat-sifat yang diambil dari hukum alam telah banyak diteliti di metaheuristik, tetapi yang terkini dapat dirinci sebagai berikut:

  • PSO, bersasarkan sekolompok binatang dalam mencari makan
  • Dolphin     Echolocation (DE), berdasarkan teknik sonar yang dimiliki oleh lumba-lumba
  • Big Bang-Big Crunch (BB-BC), berdasarkan teori evolusi alam
  • Cuckoo Search (CS), berdasarkan sifat burung
  • Imperialist Competitive Algorithm (ICA)

Sementara itu ada algoritma-algoritma yang diambil dari sifat fisika, antara lain:

  • Charged System Search (CSS) dan Magnetic Charged System Search (MCSS), berdasarkan hukum Coulomb dan Newton
  • Colliding Bodies Optimization (CBO), berdasarkan tumbukan satu dimensi partikel
  • Ray Optimization (RO), berdasarkan hukum refraksi cahaya (snell)

Demikian kira-kira metode advanced metaheuristic yang bisa dibaca dari literatur-literatur baik jurnal maupun buku. Sekian informasinya, mudah-mudahan bisa dijelaskan lebih detil pada postingan berikutnya.

Iklan

Membuat Kelas & Objek dengan JavaScript

JavaScript merupakan Script yang berjalan di browser yang memanfaatkan teknologi dari Java. Salah satunya adalah pemrograman berbasis objek (PBO). Objek berisi atribut seperti layaknya data atau record tabel, tetapi memiliki proses yang menyertai atribut-atributnya. Untuk memudahkan praktek membuat objek pada JavaScript sebaiknya menggunakan browser Mozilla karena memiliki fasilitas “developer”.

Jendela Developer

Untuk mengakses jendela developer pada mozilla dapat dilakukan dengan menekan Ctr-shif-K dan perhatikan akan muncul jendela di bagian bawah mozilla. JavaScript akan langsung dieksekusi Mozilla ketika sebuah script ditulis di jendela developer tersebut tanpa membutuhkan bantuan file HTML.

Membuat Kelas Objek

Objek-objek dengan karakteristik sejenis dapat dikumpulkan dalam satu kelas yang sama misalnya kelas dosen, kelas mahasiswa, kelas mata kuliah, dan lain-lain. Berikut ini kita coba membuat satu kelas dengan nama Person yang berisi atribut-atribut: first, last, age, gender, dan intersets dengan satu operasi menampilkan salam/greetings. Masukan script berikut di jendela developer pada mozilla. Lihat tutorial resminya.

function Person(first, last, age, gender, interests) {
this.name = {
‘first’: first,
‘last’ : last
};
this.age = age;
this.gender = gender;
this.interests = interests;
this.bio = function() {
alert(this.name.first + ‘ ‘ + this.name.last + ‘ is ‘ + this.age + ‘ years old. He likes ‘ + this.interests[0] + ‘ and ‘ + this.interests[1] + ‘.’);
};
this.greeting = function() {
alert(‘Hi! I\’m ‘ + this.name.first + ‘.’);
};
}

Note: Sepertinya kalau copas kode di atas, tanda petik single harus diketik ulang. Parameter “this” mengartikan suatu variabel milik pemilik objek yang bersangkutan, misalnya this.age berarti variabel “age” yang dimaksud berasal dari objek Person yang bersangkutan. Misal kita memasukan satu objek baru dari kelas Person tersebut.

var person1 = new Person(‘Bob’, ‘Smith’, 32, ‘male’, [‘music’, ‘skiing’]);

Kode di atas memasukan satu objek person1 dari kelas Person. Tampak nama depan, belakang, usia, jenis kelamin, dan hobinya. Bagaimana untuk melihat isi data beserta operasi yang mengiringi kelas Person? Ketik kode berikut ini di jendela developer mozilla.

person1[‘age’]
person1.interests[1]
person1.bio()

Instruksi di atas memunculkan “age”, “intersets” dan “bio”. Hasilnya akan memunculkan jendela berikut ini di mozilla.

Satu hal yang unik dari data objek di atas adalah operation yang muncul, dalam hal ini menambilkan jendela greeting di atas. Satu hal lain yang tidak dimiliki oleh data jenis relational adalah multivalue dalam hal ini contoh di atas memberikan hobi yang terdiri dari “music” dan “skiing” yang tentu saja dilarang dalam jenis data relational (jika ingin ditampilkan lebih dari dua hobi maka kode ada sedikit modifikasi di fungsi bio()). Sekian semoga bermanfaat.

Mereview Artikel Ilmiah

Mereview artikel baik yang akan diterbitkan di jurnal maupun seminar merupakan suatu keharusan bagi tiap peneliti. Dari sisi finansial sepertinya kalah jauh dengan mengajar, menjadi asesor kompetensi, dan kegiatan-kegiatan lain yang sering dilakukan oleh dosen. Tetapi dari sisi ilmu, manfaat yang diperoleh dari proses mereview artikel ilmiah sangatlah besar. Kita bisa mengetahui trend perkembangan ilmu terkini melebihi jurnal yang telah dipublikasi. Mengapa? Karena jurnal yang telah dipublikasi memakan waktu dari beberapa bulan hingga tahunan. Jadi jika membaca artikel yang sudah dipublikasi kita terlambat beberapa waktu, bahkan bisa beberapa tahun. Berbeda ketika mereview artikel dimana tulisan tersebut baru saja dibuat selepas peneliti melaksanakan penelitiannya. Postingan ini bisa juga dijadikan rujukan bagaimana naskah kita diterima (accepted) dengan cara melihat dari sudut pandang reviewer. Juga pos ini lanjutan dari postingan yang lalu.

Format Standar

Beberapa penyelenggara seminar menggunakan aplikasi review yang gratis, misalnya easychair. Kandidat lainnya adalah EDAS yang berbayar dengan paket tertentu yang amat menarik, seperti cek plagiarisme sekaligus mereview. Untuk jurnal menggunakan Open Journal System (OJS) yang saat ini sudah versi 3. Tetapi jurnal-jurnal ternama (ber-impak tinggi) biasanya memiliki sistem informasi review sendiri.

Biasanya isian yang harus diisi oleh reviewer adalah novelty, research method, research question, Finding & discussion, English Writing, Overall Evaluation, serta Reviewer’s Confidence. Yang terakhir menggambarkan seberapa ahli reviewer terhadap isi dari artikel yang direview. Terkadang memang editor menduga seorang reviewer pakar di bidang tersebut, tetapi ternyata setelah membaca, terkadang reviewer merasa tidak “PD” dengan materi yang dibacanya. Biasanya hal tersebut menjadi bahan pertimbangan reviewer untuk memutuskan diterima atau tidaknya suatu artikel ketika kondisi fivety-fivety. Untuk jurnal internasional bereputasi (impak dan nilai scimago yang tinggi) novelty merupakan penentu utama diterima atau tidaknya sebuah naskah yang diajukan. Tapi terkadang untuk jurnal-jurnal nasional apalagi lokal, ada sedikit kemudahan mengingat jika disyaratkan mengikuti standar internasional, banyak yang ditolak/reject yang mengakibatkan para dosen di tanah air lebih enggan menulis.

Alur Review

Ketika pelatihan menulis artikel ilmiah di kopertis 4 beberapa tahun yang lalu, seorang profesor dari ITB mengajari untuk menulis tidak runtut dari judul, abstract, pendahuluan, dan seterusnya hingga kesimpulan, melainkan hasil terlebih dahulu. Masuk akal, karena hal ini bisa membuat produksi tulisan menjadi lebih cepat. Tidak perlu berpusing-pusing mengerjakan hal yang bukan utama karya kita. Pendahuluan kebanyakan memang dari literatur review naskah lain, sementara judul dan abstrak menyesuaikan dengan hasil penelitian kita.

Nah, untuk mereview tentu saja tidak bisa langsung ke hasil, karena memang pe-review tidak tahu menahu hal apa yang akan disajikan tulisan tersebut. Reviewer hanya mengandalkan judul dan abstrak ketika ingin mengetahui/menebak isi naskah (brainstorming). Selain reviewer, editor juga bisa menebak suatu jurnal banyak disitasi ketika melihat judul dan abstrak. Jadi ketika judul dan abstrak, ok, maka jika naskah ditolak itu kemungkinan besar karena reviewer. Tentu saja jika editornya rajin, bisa ditolak terlebih dahulu apalagi yang memahami bidang ilmu naskah usulan tersebut. Oiya, novelty bisa langsung ditebak dari abstrak, karena abstrak yang baik merangkum secara padat isi artikel seluruhnya dari masalah, metode, hasil dan pembahasan, dan diakhiri dengan kesimpulan.

Untuk mengetahui seberapa kuat penelitian tersebut, bagian pendahuluan akan menjadi fokus utama reviewer. Flow/aliran suatu tulisan menjadi sangat penting. Kita memang telah menyediakan referensi-referensi yang banyak dan tepat, tetapi kebingungan dalam meramunya menjadi satu tulisan yang runtun. Terkadang penulis hanya menampilkan referensi-referensi seperti ‘daftar belanja’ yang membosankan. Bahkan ada yang membuat bullet/numbering yang terlarang dalam suatu artikel pada jurnal/conference. Referensi-referensi tersebut harus bisa diramu secara runtut dari yang dasar hingga mengarah ke pertanyaan penelitian (research question) sekaligaus menjawab mengapa riset ini penting dilakukan. Kegagalan dalam pendahuluan berakibat reviewer tidak menangkap kebaruan dan pertanyaan riset yang dibuat. Repotnya kalau reviewer, yang biasanya “late night rider”, jengkel karena literatur review yang melompat-lompat tanpa arah, terkesan sekedar menambah referensi saja.

Padahal suatu artikel jika dilihat polanya sangat sederhana, dan begitu-begitu saja. Dimulai dari pendahuluan yang membahas masalah yang ada saat ini di dunia di bidang tertentu, hingga perlu dilakukan penelitian dengan metode-metode baru/perbaikan metode yang lama yang diuji di wilayah/kasus tertentu. Setelah diuji memiliki hasil yang lebih baik dari metode lain sebelumnya sehingga disimpulkan sangat dianjurkan untuk diterapkan/dikembangkan oleh peneliti lain, dan jika judul dan abstrak sesuai dengan isi dan data dan alat ujinya “ok”, maka naskah diterima dan jika ada sedikit kesalahan, perlu direvisi beberapa ronde.

Jurnal Lokal/bukan Internasional

Jika jurnal internasional sudah baku, jurnal lokal agak sedikit kendor syaratnya. Biasanya cek plagiasi menjadi fokus utama, mengingat plagiarisme masih menjadi musuh utama artikel ilmiah di Indonesia. Mungkin karena jurnal lokal merupakan hasil karya mahasiswa yang hampir kebanyakan menggunakan jurus yang menurut mereka ampuh: “copas”.

Masalah lain adalah tidak adanya kebaruan. Memang kebanyakan karena merupakan hasil skripsi/tesis, biasanya tidak ada metode baru/ modifikasi yang ditawarkan. Hanya menggunakan metode yang ada saja atau sekedar membandingkan dengan yang lain. Jadi mau tidak mau fokus jurnal lokal adalah penyebaran hasil karya saja dengan harapan pembaca, yang biasanya mahasiswa menjadikan artikel tersebut rujukan untuk membuat aplikasi/menggunakan metode skripsi/tesisnya, yang jika diajukan ke jurnal internasional bereputasi terkadang langsung “mental” di tangan editor (belum sampai ke reviewer) selain tentu saja karena masalah bahasa Inggrisnya. Sekian, lain kali kita lanjut membicarakan salah satu darma perguruan tinggi ini, semoga bermanfaat.

Membangkitkan Bilangan Random Berinterval Pada Matlab

Terkadang kita diminta membangkitkan bilangan random, misalnya pecahan dari nol sampai 10 dengan interval 0.5. Fungsi bawaan matlab yang tersedia adalah rand(), sehingga jika maksimal angka 10 maka cukup dengan mengalikan rand()*10 akan diperoleh angka sembarang dari nol hingga 10.

  • rand()*10
  • ans =
  • 2.6297

Jika ingin berinterval tiap 0.5 maka secara logika harusnya 2.5 karena lebih dekat ke 2.5 dibanding 2.0 atau 3.0. Langkah termudah adalah dengan menggunakan bantuan if-else. Jalankan instruksi berikut di command window maka akan diperoleh 2.5.

  • angka=2.6297;
  • steps=0.5;
  • baseangka=floor(angka);
  • pecahan=angka-floor(angka);
  • upper=abs(steps-pecahan);
  • buttom=abs(0-pecahan);
  • if upper<buttom
  • newangka=baseangka+steps
  • else
  • newangka=baseangka
  • end

Kebetulan basis angkanya integer dimana untuk contoh di atas angka 2. Bagaimana jika intervalnya tiap 0.05? Jika angka 2.6297 maka tentu saja basisnya menjadi 2.6 (bukan angka 2 lagi). Logika sederhananya adalah dengan metode di atas, hanya saja basis angka dikalikan 10 (agar koma bergeser ke satu digit di kanan koma), tetapi jangan lupa untuk membagi lagi dengan 10 di akhir prosesnya.

  • angka=2.6297;
  • angka=angka*10;
  • steps=0.5;
  • baseangka=floor(angka);
  • pecahan=angka-floor(angka);
  • upper=abs(steps-pecahan);
  • buttom=abs(0-pecahan);
  • if upper<buttom
  • newangka=(baseangka+steps)/10
  • else
  • newangka=baseangka/10
  • end

Hasilnya:

  • newangka =
  • 2.6500

Kombinasikan dengan fungsi rand(), misalnya membangkitkan 5 bilangan random berinterval 0.05:

  • initial=[];
  • for i=1:5
  • angka=rand()*10;
  • angka=angka*10;
  • steps=0.5;
  • baseangka=floor(angka);
  • pecahan=angka-floor(angka);
  • upper=abs(steps-pecahan);
  • buttom=abs(0-pecahan);
  • if upper<buttom
  • newangka=(baseangka+steps)/10;
  • else
  • newangka=baseangka/10;
  • end
  • angka=[initial;newangka];
  • initial=angka;
  • end

Hasilnya adalah rentetan bilangan random sebanyak lima buah dengan interval 0.05 di bawah ini (hasil berubah-ubah karena random). Semoga bermanfaat.

  • angka =
  • 5.2500
  • 4.1500
  • 6.5500
  • 6.2500
  • 2.9000

Metaheuristic Optimization

Optimalisasi (optimization) merupakan usaha menemukan hasil maksimal (maximization) atau minimal (minimization), tergantung dari kasus yang ingin dioptimalkan. Besar atau kecilnya hasil optimalisasi berdasarkan hitungan sebuah fungsi yang dikenal dengan nama fungsi objective (terkadang untuk bidang RS-GIS lebih disukai fungsi kriteria – criteria function). Secara algoritmik fungsi objektif dikenal dengan istilah fitness function. Selain itu ada batasan-batasan (constraint) tertentu dalam mencapai harga optimal dari objective tersebut.

Deterministik atau Stochastic

Untuk mencapai nilai minimal/maximal fungsi objective beragam metode sudah dikembangkan. Secara garis besar metode-metode yang ada dibagi menjadi deterministic dan stochastic. Deterministic merupakan metode lama dengan bantuan gradient, khusus untuk fungsi-fungsi kontinyu. Di sekolah dulu kita pernah menghitung nilai minimal sebuah fungsi dengan menurunkan dan menyamakannya dengan nol (dikenal dengan metode Newton). Metode stochastic muncul ketika yang akan dioptimalisasi bukan fungsi kontinyu, tidak konvergen, tidak bisa diturunkan dan aspek-aspek analitis lainnya. Beberapa literatur-literatur terkini menyebut metode stochastic dengan sebutan baru yang dikenal dengan nama metaheuristic. Pertama kali istilah ini diperkenalkan oleh Fred Glover di tahun 1986. Dalam proses pencarian, ada dua aspek yang ingin dikejar, diversifikasi (focus ke global optimal secepatnya, dikenal dengan istilah exploration), dan aspek lokalitas untuk mencari yang benar-benar optimal di suatu wilayah tertentu (dikenal dengan sebutan exploitation). Dua aspek tersebut (exploration dan exploitation) harus dikompromikan untuk menghasilkan metode heuristik yang tepat.

Metaheuristic

Metaheuristic merupakan gabungan kata Meta dan Heuristic. Heuristic artinya mencari jawaban dengan cara trial & error sementara meta berarti melampaui atau tingkat yang lebih dari. Jadi metaheuristic tidak hanya mencari jawaban dengan coba-coba saja melainkan dengan bantuan atau arahan dari faktor-faktor lain. Faktor-faktor itulah yang membuat banyaknya variasi dari metaheuristic ini. Algoritma-algoritma metaheuristic yang banyak dikenal dan diterapkan antara lain:

1. Simulated Annealing

Metode ini meniru proses pendinginan baja yang dicor. Fungsi yang digunakan adalah fungsi eksponensial:

dengan kB konstanta Boltzmann dan T adalah suhu (kelvin). E merupakan energi yang perubahannya setara dengan perubahan fungsi objektif:

Dengan gamma konstanta yang biasanya berharga 1 untuk penyederhanaan.

2. Genetic Algorithm

Algoritma genetika diperkenalkan oleh John Holland di tahun 60-an. Metode ini meniru sifat alami evolusi dimana yang adaptif adalah yang optimal. Setelah fungsi objektif ditentukan, maka serentetan algoritma bekerja mencari nilai optimal fungsi tersebut. Keunikan metode ini adalah mengkombinasikan antar nilai sementara yang diperoleh dengan kawin silang (crossover) dan mutasi. Awalnya nilai-nilai tersebut harus di-encode menjadi biner agar beberapa bitnya bisa disalingtukarkan dengan nilai lainnya dan juga untuk mutasi. Namun saat ini banyak dikembangkan metode tanpa mengkonversi bilangan tersebut menjadi biner. Pemilihannya pun (selection) berdasarkan bentuk peluang (roulette wheel) dimana nilai yang memiliki harga fitness besar akan memiliki peluang yang besar pula.

3. Differential Evolution

Differential Evolution (DE) merupakan metode pengembangan dari algoritma genetika yang diperkenalkan oleh R. Storn dan K. Price di tahun 96-97. Jika pada algoritma genetika kromosom dalam bentuk biner, DE menggunakan vektor sebagai kromosom.

Mutasi, crossover, dan selection sedikit lebih rumit dari algoritma genetika. Secara detail silahkan buka makalah aslinya.

4. Ant Colony Optimization

Metode ini meniru prinsip semut dalam usaha mencari makanan. Semut menggunakan senyawa kimia bernama pheromone ketika berjalan. Jalur yang banyak dilalui semut akan memiliki konsentrasi pheromone yang lebih banyak. Penurunan fungsi konsentarasi pheronome adalah berikut ini.

Jika ada jalur yang memiliki konsentrasi pheromone melebihi jalur yang lain maka jalur ini dikatakan favorit dan umpan balik positif berlaku di sini dan lama kelamaan berlaku kondisi “self-organized”.

5. Bee Algorithms

Sesuai dengan namanya, algoritma ini mengikuti pergerakan lebah dalam mencari sumber materi pembuatan madu. Mirip dengan semut, tawon juga mengeluarkan pheromone yang disertai dengan tarian “waggle dance”. Bee algorithm dikembangkan oleh Moritz and Southwick 1992, Craig A Tovey, Xin-She Yang, dan lain-lain.

Turunan algoritma ini cukup banyak, antara lain: honeybee algorithm, artificial bee colony, bee algorithm, virtual bee algorithm, dan honyebee mating algorithm. Banyak dikembangkan untuk optimasi posisi tertentu dalam suatu jaringan (misal server).

6. Particle Swarm Optimization

Particle Swarm Optimization (PSO) meniru pergerakan sekelompok binatang (ikan, burung, dll) dalam mencari makanan. Berbeda dengan algoritma genetika yang berganti individu (punah, baru, dan mutasi), PSO menjaga jumlah kelompok individu dan hanya perubahan posisi saja. Algoritma ini dikembangkan oleh Kennedy dan Eberhart (lihat pos yang lalu).

PSO memiliki dua nilai sebagai patokan pergerakan kerumunan: local optima dan global optima. Local optima merupakan nilai terbaik tiap individu di masa lampau (biasanya hanya sebelumnya saja) sementara global optima adalah nilai terbaik di kerumunan tersebut. Bobot antara keduanya menggambarkan karakter PSO apakah selfish atau sosialis. Selain itu langkah pergerakan menentukan karakter PSO apakah lebih tinggi daya jelajah atau lebih sempit tetapi berkualitas.

7. Tabu Search

Tabu search dikembangkan oleh Fred Glover di tahun 1970 (tapi baru dipublikasikan dalam bentuk buku di tahun 1997-an). Berbeda dengan PSO yang menggunakan data lampau satu atau dua iterasi sebelumnya, tabu search merekam seluruh data yang lampau. Manfaatnya adalah mengurangi jumlah komputasi karena data yang lama sudah ada dan tidak perlu dihitung ulang. Algoritma ini masih banyak peluang untuk dikembangkan dengan cara hybrid dengan metode lain.

8. Harmony Search

Ide dari algoritma ini adalah musik. Metode ini diperkenalkan oleh Z.W. Geem di tahun 2001. Prinsipnya adalah di tiap iterasi ada tiga jenis pencarian antara lain berdasarkan: daftar irama yang sudah terkenal dimainkan, mirim dengan yang ada dengan beberapa penekanan (pitching), dan merancang komposisi yang benar-benar baru. Pitch adjustment mengikuti pendekatan Markov Chain:

dengan b merupakan bandwidth yang mengontrol pitch adjustmant.

9. Firefly Algorithm

Metode ini dikembangkan oleh Xin-She Yang pada tahun 2008 dengan mendasari prinsip kerjanya dengan seekor kunang-kunang. Fakta unik kunang-kunang antara lain:

  • Kunang-kunang tidak memiliki jenis kelamin, interaksi dengan kunang-kunang lain tidak berdasarkan jenis kelamin.
  • Ketertarikan berdasarkan kecerahan dari cahaya. Kunang-kunang yang lebih bercahaya, lebih menarik kunang-kunang lain yang kurang bercahaya.

Kecerahan berdasarkan lanskap dari fungsi objektif-nya:

dengan beta merupakan tingkat kecerahan. Pergerakan kunang-kunang i mengikuti ketertarikan dengan kunang-kunang lain, j ditentukan dengan persamaan:

10 Advanced Method

Beberapa metode masuk kategori terkini dan sangat advanced, misalnya Cuckoo Search (CS) yang akan dibahas di lain waktu bersama-sama metode-metode terkini lainnya. Diyakini metode-metode terbaru tersebut lebih baik dari yang saat ini banyak digunakan (algoritma genetika, dan PSO). Sekian, semoga bisa membantu bagi yang tertarik dengan metode-metode optimasi metaheuristik.

Systematic Literature Review (SLR)

Studi literatur sudah lama saya dengar, tetapi baru kali ini ada istilah systematic literature review (SLR) yang banyak muncul di artikel-artikel jurnal terkini. Studi literatur sistematik ini bermaksud untuk merinci dan menyimpulkan teknologi yang saat ini digunakan dengan manfaat dan batasan yang dimilikinya. Selain itu metode ini bisa juga untuk memperoleh research gap serta wilayah penelitian baru yang menarik untuk diteliti. Framework dan background bisa pula diketahui dengan SLR untuk memposisikan riset baru.

SLR memiliki tiga langkah/tahapan yaitu Planning, Conducting dan Reporting. Sebenarnya langkah ini pernah saya jalankan, hanya saja tidak sistematis, ada yang Planning dan Conducting saja tanpa Reporting, misalnya. SLR sendiri diperkenalkan oleh Barbara Kitchenham, silahkan unduh di sini. Awalnya SLR (atau disingkat juga SLRs) merupakan pengembangan dari Evidence-Based Software Engineering (EBSE) yang masuk ranah rekayasa perangkat lunak.

Planning

Pada fase ini identifikasi terhadap apa yang dibutuhkan dalam melakukan studi literatur harus sudah fix. Berbeda dengan membaca novel yang kita sendiri tidak tahu isinya dan butuh “surprise” ketika membacanya. Membaca artikel ilmiah kita harus tahu terlebih dahulu isinya sebelum membaca, mengetahui di sini adalah gambaran umumnya saja dulu. Yang kedua pada fase ini adalah menentukan pertanyaan penelitian (research question) yang menjadi dasar dalam melakukan studi literatur.

Conducting

Fase ini adalah proses pencarian terhadap sumber-sumber literatur. Terdiri dari: identifikasi penelitian, memilih riset-riset yang utama, meng-asses kualitas suatu literatur, mengekstrak data-data dan terus memonitor, dan mensintesis data. Biasanya LSR menggunakan media “searching” yang sudah tersedia di beberapa pengindeks (Scopus, SAGE, IEEE Explore, Wiley Online, Science Direct, dan lain-lain. Biasanya penggunaan String sangat membantu (dengan logika OR dan AND), misal: ((“technology-organization-environment” OR “TOE” ) AND (“framework” OR “conceptual framework” OR “structure”)).

Reporting

Fase ini menghasilkan bahan-bahan literatur yang sudah tersistematis dengan baik. Biasanya dari ratusan artikel diolah menjadi puluhan dan akhirnya belasan yang siap dibaca dan dianalisa. Biasanya ada tiga tahapan yaitu Database Search dari pengindeks-pengindeks yang tersedia di internet (baik gratis/berbayar) yang memperoleh data sebanyak ratusan. Berikutnya Abstract, Title, and Keyword review yang mensortirnya menjadi puluhan saja. Terakhir adalah Full Review sebanyak kira-kira belasan. Tentu saja jumlah tidak harus seperti contoh di atas.

Demikian ulasan singkat metode LSR dalam studi litertur, semoga bermanfaat. Selamat membaca artikel ilmiah.

Jangan Kau Halangi Dia yang Ingin Studi Lanjut

Studi lanjut, khususnya jenjang doktoral saat ini merupakan hal yang mendesak, khususnya bidang-bidang yang dibutuhkan di era “internet of things” (IoT) ini. Berbeda dengan S2 yang kesannya “terpaksa”, untuk S3 sepertinya banyak hal yang menghalangi dosen melanjutkan ke S3. Mungkin postingan ini sharing sedikit mengenai plus-minus kebijakan yang banyak diterapkan di beberapa institusi di tanah air.

Urut Kancing

Ini adalah istilah antri berdasarkan aspek tertentu seperti senioritas, kebutuhan suatu jurusan akan adanya tenaga pengajar, dan lain-lain. Perhatikan saja suatu antrian, misalnya di “customer service” sebuah bank, ketika ada satu antrian yang lama maka antrian berikutnya akan terhambat. Banyak hal yang membuat lamanya antrian, khususnya jika dipilih yang senior terlebih dahulu. Seperti banyak terjadi, para senior cenderung mencari kampus yang dekat dengan tempat kerja. Masalah meninggalkan keluarga, keuangan (ingin tetap mengajar), dan sejenisnya merupakan hal-hal yang biasa menjadi batu hambatan. Sementara beberapa dosen middle dan terkadang juga junior sudah siap baik dari sisi akademik maupun hal-hal lain (apalagi yang belum berkeluarga). Jadi, pimpinan harus mengamati ketika suatu jurusan tidak ada yang berangkat, kemungkinan ada hambatan dari ijin senior terhadap yuniornya.

Masa Mengabdi

Ada hal lain yang membuat beberapa dosen tidak ingin melanjutkan. Beberapa kampus menerapkan aturan setelah menyelesaikan studi S2 diharuskan balik ke kampus untuk mengamalkan ilmunya terlebih dahulu. Lamanya bahkan ada yang mengikuti aturan ikatan dinas (5 hingga 7 tahun). Akibatnya ketika masa mengabdinya selesai, walaupun diminta oleh institusi melanjutkan kuliah, mereka cenderung enggan karena berbagai hal. Hal yang utama adalah terputusnya riset ketika S2 dulu karena lama-nya menunggu, ditambah lagi aktivitasnya tidak mengarah ke riset dan cenderung administratif. Padahal riset harus diikuti baik dari riset sendiri maupun membaca jurnal-jurnal internasional yang ketika lulus aksesnya biasanya distop sementara kebanyakan kampus kecil di tanah air tidak berlangganan, walaupun bisa saja dengan cara minta tolong rekan lain yang memiliki akses ke jurnal untuk diunduhkan (atau situs bajakan). Ada sedikit cerita rekan saya dari Jawa Timur yang selesai S2, balik ke kampus setahun mengabdi. Tapi selama setahun itu sudah intensif bimbingan dosen pembimbingnya ketika master untuk S3 walau belum terdaftar. Minimal konsultasi masalah tema riset S3. Nah, ketika setahun terlewati lalu mendaftar di kampus tersebut (tentu saja diterima karena sudah komunikasi dengan calon promotor) risetnya cepat sekali, bahkan lulus 2 tahun 9 bulan. Jadi untuk yang master jangan terlalu lama, khawatir akan malas lagi untuk studi lanjut.

Perang Doktor

“Lihat ijasah S2-nya!”, kata si mba staf di kopertis 4 (sekarang namanya lldikti4) ketika mengajukan ijin lanjut S3 dulu. Saya heran dan bertanya mengapa kok langsung di “skak” dengan pertanyaan itu? Ternyata ada instruksi jika S3 tidak linear harus ditolak pengajuan ijin beasiswanya. Ternyata ada maksudnya.

Kuliah S3 bukanlah waktu yang singkat. Jika selesai dan ternyata tidak sesuai dengan linearitas keilmuwan akan mubazir. Ada teman yang mengambil S3 yang berbeda jauh dengan S2 dan risetnya. Alhasil agak kesulitan naik pangkat mengingat harus ada linearitas S3 dengan riset-riset terdahulu yang jauh berbeda dengan S2-nya. Bagaimana jika sudah S3 dan linear dengan riset-risetnya? Berikutnya adalah perang doktor. Di sini perang yang dimaksud adalah persaingan dari sisi Tri Darma. Pengajaran dan pengabdian sepertinya tidak begitu bersaing, nah yang penelitian lah yang bersaing. Untuk meningkatkan kinerja kampus, pimpinan universitas (yang serius memperhatikan tri-darma) akan memacu dosen-dosennya untuk mempublikasikan artikel ilmiah. Nah, doktor tanpa publikasi tentu saja akan kalah “perang” dengan yang banyak publikasinya. Sebagai juri/wasit-nya biasanya menggunakan indeks-indeks yang terpercaya seperti Scopus dan di Indonesia ada Sinta (dengan kata lain Ristek-Dikti jurinya). Silahkan salahkan kedua pengindeks tersebut, itu hak Anda. Tapi perlu diingat, tanpa ada juri/wasit bagaimana mungkin pertandingan dilaksanakan.

Apakah Riset Seperti Sinterklas?

Lihat apa yang kita gunakan saat ini yang membantu aktivitas kita, misalnya komputer. Alat ini tidak diciptakan setahun atau beberapa tahun yang lalu. Sejak arsitekturnya yang dikenalkan oleh John Von Neumann, baru penggunaannya tampak nyata setelah Alan Turing memperkenalkan metode komputasi untuk membongkar mesin enkripsi buatan Jerman di perang dunia II. Atau contoh lain kendaraan, misalnya mobil. Alat transportasi ini menerapkan siklus otto buatan Nikolaus Otto (bensin) maupun atau Diesel oleh Rudolf Diesel (solar) yang ketika teknik itu diriset, dunia masih menyiksa binatang untuk kendaraan. Untungnya jaman itu jumlah “penyinyir” sedikit. Bisa dibayangkan si otto yang asyik riset dinyinyirin: “apa manfaatnya siklus itu bagi kami para petani?” dan diharapkan harus berkontribusi langsung, jika tidak, tidak akan didanai.

Pendidikan tinggi di Indonesia menganut tridarma yang terdiri dari pengajaran, penelitian, dan pengabdian. Ketiganya saling terkait, walaupun dalam prakteknya tidak tampak hubungannya. Yang satu asyik mengutak-atik jaringan wireless dari GPRS, 2G, 3G, 4G, hingga 5G, yang satu lagi mengembangkan teknologi mobile, serta lainnya Big Data. Ketika digabungkan jadilah aplikasi Grab, Gojek, dan sejenisnya yang ternyata merubah peta bisnis para era disrupsi ini.

Problem yang saat ini muncul terkait dengan publikasi yang wajib dilaksanakan oleh seorang dosen. Banyak kampus yang berlomba-lomba publikasinya dengan bantuan pengindeks internasional, Scopus. Kekhawatirannya agak beralasan mengingat hasil risetnya yang tidak berdampak langsung saat ini. Tetapi apakah memang harus berdampak langsung? Masih ingatkah hasil publikasi tentang dampak tsunami gunung merapi yang sudah diriset beberapa tahun sebelum kejadian di Banten dua bulan lalu? Tidak berdampak langsung sih … bagi yang enggan membaca.

Jangan lupa, penelitian berbeda dengan pengabdian. Walaupun bisa saja penelitian dan pengabdian yang berjalan seiringan. Tetapi beberapa riset dasar agak sulit jika langsung diterapkan ke masyarakat tanpa adanya campur tangan penelitian lain. Tapi bisa kan? Ya kalau dibilang bisa ya tentu saja bisa. Seperti aplikasi NELPIN untuk membantu para nelayan mencari ikan. Bagaimana dengan Scopus? Ternyata aplikasi tersebut dipublikasikan pada jurnal internasional dan terindeks Scopus. Toh bisa juga riset dan pengabdian berjalan berirama, dan tentu tidak saling memaksakan penelitian yang harus mengabdi secara langsung. Oiya, silahkan baca artikel jurnal internasional tersebut.

Apakah hanya fokus ke publikasi itu buruk? Untuk menjawabnya silahkan baca buku “University Inc.” dimana kampus cenderung mengembangkan riset berdasarkan pesanan industri. Bahkan sudah menyasar ke profesor-profesor agar riset sesuai dengan permintaan industri (obat-obatan, keteknikan, dan lain-lain). Untuk menghindari hal itu, memaksa agar hasil riset dipublikasi agar terbaca oleh khalayak ramai menurut saya sangat bermanfaat. Terkadang ada yang jago menemukan tetapi kurang luwes dan lincah memanfaatkannya, atau memang membutuhkan peneliti bidang lain yang telah membaca hasil publikasinya. Tebarkanlah hasil riset sebanyak-banyaknya, biasanya ada beberapa yang bisa dimanfaatkan oleh peneliti lain, bukannya membatasi hanya pada penelitian yang bermanfaat saat ini saja, karena belum tentu yang tidak bermanfaat saat ini tidak bermanfaat di masa yang akan datang. Sayang kan jika tidak dipublikasi dan tersimpan di gudang padahal belum tentu tidak bermanfaat nanti. Ingat, De Morgan dan George Boole yang dibilang “kurang kerjaan” di jamannya ketika utak-atik logika tatkala komputer belum ada. Yuk, perbanyak publikasi … kalau bermanfaat kan katanya pahala mengalir terus walau yang bersangkutan wafat.

Database Objek

Ketika pertama kali database diperkenalkan di tahun 70-an, bentuknya adalah relasional dan dikenal dengan istilah Relational Database Management System (RDBMS). Bentuk ini adalah bentuk terkenal yang sampai sekarang menjadi andalan aplikasi-aplikasi terkini. Basis data ini menyimpan atribut-atribut suatu data yang statis misalnya nomor ID, nama, alamat, dan lain-lain. Sementara proses yang terjadi, yang biasanya berupa Create, Read, Update dan Delete (CRUD) dilakukan oleh aplikasi (program) yang mengakses basis data tersebut (di luar basis data).

Object Oriented

Perkembangan perangkat keras yang pesat membuat aplikasi pada bidang-bidang lain seperti rekayasa, multimedia, sistem informasi geografis, dan sejenisnya, berkembang pula. Beberapa aplikasi membutuhkan secara independen suatu data berubah ketika diberikan instruksi ke data tersebut. Dengan kata lain suatu data memiliki kemampuan memproses. Data dengan proses tersebut dikenal dengan istilah objek. Ketika ingin mengedit data suatu objek, maka program tinggal mengirim pesan ke objek tersebut agar salah satu datanya dirubah dengan mengaktifkan proses update pada objek tersebut. Masalahnya adalah vendor-vendor basis data sudah terlanjur mengembangkan RDBMS dengan sangat baik.

Object Relational Database Management System

Dengan memanfaatkan canggihnya sistem RDBMS, beberapa pengembang menawarkan konsep Object Relational Database Management System (ORDBMS), khususnya untuk penerapannya dalam basis data. Karena kelemahan RDBMS tidak memiliki penyimpanan berupa proses/method maka basis data tetap tersimpan dalam bentuk relasional tetapi menambahkan satu object yang berfungsi menangani proses-proses tertentu pada objek yang tersimpan dalam RDBMS. Ketika ingin mengedit suatu objek, maka satu objek yang bertugas meng-update diperintahkan mengedit objek tersebut di dalam sistem basis data.

Object Definition Language (ODL)

Dalam literatur RDBMS, sudah ada standar pengolahan basis data yang dikenal dengan nama Structure Query Language (SQL). Sementara itu komunitas Object Data Management Group (ODMB) mencoba membuat standar yang mirip SQL dengan nama Object Definition Language (ODL). Salah satu hasil dari ODL ini adalah suatu bahasa deklarasi mirip SQL untuk objek yaitu Language Integrated Query (LINQ). Silahkan baca-baca buku referensi berikut yang lumayan OK untuk penjelasan awal ODL.

Untuk mempraktekan basis data objek ada baiknya mencoba langsung dengan basis data yang memang dikhususkan untuk basis data objek, yaitu db4o dengan dua pilihan (java dan c#). Silahkan unduh manual-nya di sini. Ada hal-hal unik yang tidak dimiliki dalam literatur RDBMS yang menarik untuk dicoba, dan menarik juga untuk dibuatkan bukunya.