Konversi ke PDF dari Word Beserta Bookmarks-nya

Portable Document Format (PDF) merupakan salah satu jenis file terkenal untuk membaca dokumen. File ini berisi dokumen yang identik dengan naskah cetak. Hampir kebanyakan platform dari desktop hingga mobile dapat membaca jenis file ini.

Microsoft Word (MS Word) merupakan text editor terkenal dari Microsoft. Salah satu fasilitas pada MS Word yang sangat membantu adalah Automatic Table of Contents (TOC). Dengan mengeset Heading tertentu, secara otomatis MS Word akan mengisi daftar isi di lokasi tertentu di bagian awal, termasuk juga daftar gambar dan tabel.

PDF reader kebanyakan memiliki fasilitas untuk me-link daftar isi dengan kontennya lewat fasilitas bookmark. Bookmark bisa diisi manual dengan create bookmark atau secara otomatis ketika konversi dari MS Word ke PDF. Postingan ini menunjukan bagaimana cara mengkonversi MS Word ke PDF disertai dengan bookmark.

Save As

Cara tercepat adalah dengan fasilitas Save As yang ada pada MS Word. Namun sedikit utak-atik karena tersembunyi.

Di bawah pilihan PDF (*.pdf) tekan More Options .. untuk membuka jendela lanjutan. Tekan Option untuk memilih Bookmark.

Pada checklist Create Bookmarks using dilanjutkan memilih heading.

Tekan Ok dilanjutkan dengan Save. Selesai sudah, silahkan coba akses PDF, misal dengan Foxit PDF Reader.

Lihat, bookmarks di kiri muncul secara otomatis. Fasilitas ini memudahkan membaca karena dapat langsung mengarah ke sub-bab tertentu dengan mengklik bookmarknya. Sekian semoga bermanfaat.

CNN Menggunakan Matlab

Convolutional Neural Network (CNN) merupakan model awal Deep Learning. Model ini menerapkan prinsip konvolusi dengan proses filtering bertahap sebelum diperkecil dengan teknik pooling. Manfaatnya untuk mengurangi resolusi citra input agar mudah diproses sistem.

2D_Convolution_Animation

Untuk mencoba CNN dengan MATLAB bisa menggunakan MATLAB online (lihat pos yang lalu). Salah satu kendala MATLAB adalah harga lisensi yang mahal. Namun untuk pemula ada baiknya karena MATLAB menyediakan sumber yang lengkap dalam fasilitas helpnya, misal link berikut. Dan sumber tersebut gratis. Jika sudah mengerti silahkan lanjut ke Python, C++ dan lain-lain yang open source.

Berikut video materi kuliah online tentang CNN. Semoga bermanfaat.

Making Standard Journal Plots using Matlab online

Making a plot in the journal needs special attention. If the plots are made badly, it will affect the results of our review. One way to make plots is with Excel, but the results are not good enough. Therefore, this post will try to share how to make a standard plot for publishing in a journal.

The following video shows how to plot with MATLAB either online if you don’t have a license, or with MATLAB desktop. The result is much better than plotting with excel.

Online Learning Using MATLAB

Today, it is undeniable that most machine learning researchers use Python, especially in industry. However, in research, due to its ease of use, MATLAB is still often used, especially those that are not too focused on coding.

One of the main problems of MATLAB users is, the license price is very expensive. Fortunately, registration to mathworks.com is still free and you can learn machine learning for free in the help and support section.

The data is already available in MATLAB, so it can be used as a reference/benchmarking. From a research perspective, MATLAB can be used as a fair ‘measurement’ and other researchers can also test it. So that the good or bad of a method does not depend on the machine or the quality of coding which may differ from one researcher to another.

The following video shows how to run Matlab online via mathworks.com. That’s all for this post, I hope it’s useful.

Cek Plagiarisme dengan Turnitin

Syarat wajib tiap naskah publikasi adalah bebas plagiarisme. Biasanya dibatasi prosentase kemiripannya. Banyak tools untuk cek plagiarisme, salah satunya adalah Turnitin. Tools ini merupakan standar kemendikbud, selain iThenticate. Untuk yang gratisan silahkan lihat post terdahulu.

Turnitin memiliki kemampuan mengecek naskah yang tidak dibuka di internet (blog, open access, dan sejenisnya) seperti repository skripsi, tesis, dan disertasi. Sehingga jika menggunakan cek plagiarisme gratisan tidak terdeteksi, dengan turnitin bisa terdeteksi.

Turnitin bisa juga untuk mengecek naskah kerjaan siswa yang dikumpulkan. Bisa jadi tidak terdeteksi karena tidak ditemukan via internet, padahal naskah tersebut plagiat dari rekannya yang dikumpulkan bersamaan. Berikut bagaimana melakukan proses cek plagiarisme dengan Turnitin, tentu saja Anda harus punya akun turnitin.

Mengimpor data Crossref, Scopus, dan BASE ke ORCID

ORCID id saat ini menjadi standar id peneliti di seluruh dunia. Beberapa jurnal ternama sudah memasukan id ini pada informasi artikel yang dipublish. ORCID sendiri dapat menjadi CV kita yang berisi info diri, pekerjaan, hingga artikel yang telah kita publikasikan.

Salah satu kemudahan yang diberikan oleh ORCID adalah tersambungnya dengan database index lain yang ada seperti crossref, scopus, dan base. Caranya mudah karena dari ORCID terhubung langsung ke para pengindeks tersebut.

Tentu saja untuk mengisi ORCID perlu ketelitian disamping kejujuran. Saat mengimpor terkadanga ada yang bukan milik kita. Selain itu untuk pengindeks BASE perlu dicek apakah ada duplikasi atau tidak. Video berikut bisa menjadi rujukan bagaimana cara mengimpor artikel kita dari pengindek ternama.

Dokumentasi dengan MkDocs

Dalam mata kuliah Interaksi Manusia dan Komputer (Human Computer Interraction) ada satu bab tentang dokumentasi help. Salah satu dokumentasi penting adalah dokumentasi online yang menjelaskan suatu aplikasi yang dibuat. Kalau jaman dulu mungkin berupa berkas readme atau file pdf tata cara penggunaan. Namun saat dunia online seperti saat ini, mau tidak mau kemampuan mendokumentasi online mutlak diperlukan. Sayang kan kalau harus bayar ke orang untuk publish onlinenya. Server online pun banyak yang gratis kalo hanya untuk dokumen, misalnya yang terkenal Github.io (lihat post yg lalu).

Banyak aplikasi untuk membuat dokumentasi online misalnya document360, nuclino, Github, MarkdownPad, ProProfs, Read the Docs, Doxygen, dan lain-lain. Nah, postingan ini akan membahas MkDocs, sebuah alat membuat dokumentasi online berbasis Python.

MkDocs memiliki keunggulan, yakni cepat dan gratis. Salah satu problem utama adalah untuk yang belum pernah menggunakan Python, karena harus belajar sedikit. Kalau sudah pernah dengan mudah dapat menjalankannya. Alur untuk pembuatan dokumentasi online dengan MkDocs adalah:

  • Instal MkDocs
  • Mengunduh Template
  • Mengedit mkdocs.yml dengan editor
  • Mengedit index.md dengan editor
  • Menjalankan server lokal MkDocs
  • Mendeploy hasil edit
  • Mempublish online

Lumayan panjang, tapi tidak membutuhkan sumber daya yang besar. Semua dapat dibuka dengan cepat. Sedikit butuh kreativitas ketika mengedit mkdocs.yml dan index.md. Karena ketika kita menjalankan server MkDocs kita langsung melihat perubahannya, jadi mirip mengkustomasi wordpress misalnya.

Ada sedikit rancu bagi pengguna awal, di sini mkdocs server (dengan mengetik mkdocs serve) hanya berfungsi melihat hasil editan saja, kalau ingin publish misal di XAMPP perlu mendeploy lewat fungsi mkdocs gh-deploy yang akan menghasilkan folder yang siap diupload di folder docs.

Untuk jelasnya lihat video berikut ini. Sekian, semoga bermanfaat.

Transfer Learning with Matlab

Transfer learning is a term that is often encountered by deep learning practitioners. For those who do not understand, the following explanation may be useful.

In accordance with the ‘word’, transfer learning means using past learning to use new domains or cases. The benefit is that we don’t learn from scratch again. The easiest way is to freeze the pretrained model termed pretrained, and replaces the last layer of the old number of classes with the new model class.

The following video uses Matlab 2021a to demonstrate how transfer learning works, along with techniques for freezing and augmenting data with rotation and translation. The benefit of augmentation is to increase the amount of training data by changing ‘slightly’ from the initial training data.

Final Submit to AIP Publishing

There are many journals and conferences indexed by Scopus, one of which is AIP Publishing based in the United States. Although Indonesia is currently pushing for researchers to publish in local journals, the Scopus index still has a significant weight in the SINTA ranking (Indonesian Index). So, the Scopus indexed conferences are still being hunted.

Many beginners are a bit confused when following the publishing process, besides the language, the style of the process of each conference is different. Sometimes changes occur, for example, IEEE which requires a signature scan before publishing, now it is no longer necessary. Well, for AIP publishing, the following video provides the procedure for filling out the final form before publishing. So, hopefully, it can be useful.

Calculating the Number of Parameters of the Deep Learning Model

Deep learning (DL) is a development of the Neural Network where the number of layers is much more. In the past, neural networks were not able to handle many layers, now due to the development of methods and hardware, models with a large number of layers (even hundreds) can be done.

To improve DL performance, it is sometimes necessary to analyze the design model. In addition to accuracy, sometimes models with high performance in terms of speed are needed. To find out the performance, it is sometimes necessary to analyze floating point operations, namely the computation of computational complexity in DL. Check out the following video.

Currently, FLOPs are no longer relevant for the current hardware conditions that work in parallel. The calculation of processing time can be an alternative which of course will differ from one machine to another, but for comparison it does not matter (as long as running on the same machine). Another method is to calculate the number of parameters of a model. A large number of parameters certainly affects performance, so a system with a small number of parameters with an accuracy that is not much different is a topic that is now being studied a lot, especially those that can work for small computers or mobile phones. Here’s how to find out the number of parameters in Matlab. For Python the TensorFlow library automatically calculates the number.

Membuat Grafik untuk Jurnal

Grafik merupakan salah satu alat bantu menjelaskan dalam sebuah jurnal. Ada pribahasa “satu gambar lebih baik dari 1000 kata”. Tentu saja jika gambarnya ok dan mudah dimengerti. Oiya, grafik dalam jurnal masuk dalam kategori gambar (Figure). Oleh karena itu perlu membuat grafik sejelas mungkin.

Banyak mahasiswa menggunakan Excel untuk membuat grafik, padahal hasilnya kurang ok untuk jurnal, apalagi jurnal internasional. Salah satu aplikasi yang dapat digunakan untuk membuat grafik yang cukup baik adalah Matlab. Misalnya link berikut menunjukan jurnal Elsevier yang membolehkan submission berupa Matlab viewer.

Selain itu Matlab figure bisa juga terkoneksi ke Visio untuk memberi kustomisasi lebih lanjut, seting warna, ukuran dan jenis garis, dan lain-lain. Untuk lebih jelasnya silahkan lihat video berikut ini. Selamat mencoba.

Menghitung Mean Intersection over Union (mIoU)

Pada postingan yang lalu telah dibahas cara menghitung matriks konfusi. Matriks ini dapat digunakan untuk menghitung akurasi. Saat ini perhitungan akurasi dengan Mean Intersection over union (miou) banyak dipakai mengingat metode ini memberikan perhitungan yang ketat. Hal ini sangat memudahkan analisa dimana % akurasi model saat ini yang sudah sangat akurat (90% lebih).

Dengan perhitungan yang ketat diharapkan model usulan dapat dengan mudah membandingkan antara satu metode dengan metode lainnya. Prinsip dasarnya adalah mIoU membandingkan intersection prediksi dan ground truth (aktual) dengan union (gabungan) prediksi dan ground truth.

Secara logis, IoU lebih kecil dari % acurasi karena bagian penyebut hanya melihat sisi prediksi saja, yakni Area of Overlap/area of Prediction. Secara matematis persamaan berikut menunjukan IoU dengan tambahan False Negative (FN) yang merupakan sisi ground truth yang salah tebak.

Jika pada postingan yg lalu akurasi dapat langsung dihitung dengan menjumlahkan diagonal matriks konfusi sebelum dibagi total area, mean IoU dihitung dengan cara mererate seluruh IoU tiap-tiap kelas/segmen. Misal kasus berikut:

Matriks konfusi di atas menunjukan baris sebagai prediksi dan kolom sebagai nilai aktual/groundtruth. Misal, kita ingin menghitung IoU kelas ke-3 (yang berwarna kuning di atas). Dari rumus 8 di atas True Positive (TP) sebesar 62.413. Berikutnya menghitung False Positive (FP) dan False Negative (FN).

Nilai yang disorot warna hijau di atas merupakan FP dimana memprediksi kelas ke-3 tetapi hasilnya kelas yang lain. Sementara nilai yang disorot warna merah menunjukan nilai FN dimana ‘memprediksi yang bukan kelas ke-3 tetapi secara aktual (kolom) adalah kelas ke-3. Koding Matlab adalah sebagai berikut untuk kelas ke-3.

  • iou_3=matriks(3,3)/(sum(matriks(3,1:end))+sum(matriks(1:end,3))-matriks(3,3))

Bisa saja Anda menggunakan teknik yang lain misalnya menjumlahkan satu persatu tiap elemen, tapi lebih panjang sebagai berikut. Tapi yang penting logikanya mengerti.

  • iou_3=matriks(3,3)/( matriks(3,3)+ matriks(3,1)+ matriks(3,2)+ matriks(3,3)+ matriks(3,4)+ matriks(3,5)+ matriks(3,6)+ matriks(1,3)+ matriks(2,3)+ matriks(4,3)+ matriks(5,3)+ matriks(6,3)

Untuk menghitung rata-rata IoU, atau disingkat mIoU, caranya adalah menghitung IoU seluruh kelas, lalu merata-ratakannya seperti rumus 9. Diperoleh miou = 0.6391. Selamat mencoba.

Matriks Konfusi (Confusion Matrix)

Mengetahui performa model yang dirancang merupakan kewajiban bagi perancang model. Fungsinya adalah menjamin kualitas model usulan sebelum diimplementasikan. Apalagi jika model yang dirancang merupakan mesin pemelajaran (machine learning) yang memang mengandalkan data latih dan data uji dalam proses pemodelannya.

Salah satu metode yang biasanya digunakan dalam menghitung performa sebuah model adalah matriks konfusi. Prinsipnya sangat sederhana yaitu membandingkan hasil prediksi dengan data aktual. Data aktual untuk beberapa bidang, misalnya segmentasi semantik, sering disebut ground truth.

Menghitung Matriks Konfusi

Prinsip kerja menghitung matriks konfusi adalah dengan membandingkan ‘head-to-head’ hasil prediksi dengan ground truth. Pertama-tama adalah mengkonversi matriks menjadi vektor. Biasanya untuk data citra yang berupa piksel 2D, sehingga harus dikonversi menjadi vektor baris/kolom.

  • prd=reshape(prediksi,1,[]);
  • gt=reshape(groundtruth,1,[]);
  • matriks=confusionmat(prd,gt)

Perhatikan fungsi confusionmat adalah fungsi membuat matriks konfusi dimana parameter pertama, prd akan menjadi baris pada matriks konfusi, sementara parameter kedua, gt, akan menjadi kolom.

Angka-angka di atas merupakan jumlah elemen, misalnya baris kedua kolom kedua (192965) artinya ada sebanyak 192.965 elemen dimana prediksi kelas ke-2 yang sama dengan aktualnya (kelas ke-2 juga). Secara gampangnya, diagonal pada matriks konfusi merepresentasikan dengan jumlah yang tepat.

Menghitung Akurasi

Karena diagonal merepresentasikan jumlah prediksi yang tepat, maka prosentase akurasi merupakan jumlah yang tepat (elemen diagonal) dibagi dengan seluruh data. Secara sederhana program menghitung matriks konfusi di atas dilanjutkan dengan:

  • [baris,kolom]=size(matriks);
  • total=0;
  • for i=1:baris
  • total=matriks(i,i)+total;
  • end
  • akurasi=total/(sum(matriks,’all’))

Jika dijalankan akan menghasilkan akurasi dari matriks konfusi tersebut. Untuk Matlab, menghitung akurasi dapat dilankukan langsung dengan fungsi classperf dari matriks yang akan dibandingkan.

Perhatikan ‘CorrectRate’ gambar di atas yang menunjukan akurasi sebesar 0,8966 atau 89,66%. Untuk melihat hasil akurasi dengan cara mengetik akurasi.CorrectRate pada command window. Bagaimana dengan perhitungan jenis lainnya? Akan kita bahas pada postingan berikutnya, yaitu Mean Intersection over Union (mIoU) yang saat ini menjadi standar perhitungan akurasi, khususnya segmentasi semantik.

Running JApplet Pada Browser

JApplet merupakan fasilitas java yang dapat berjalan pada web lewat browser (chrome, mozilla, safari, dll). Berbeda dengan PHP yang terletak di sisi server (server side), applet berjalan di sisi klien (client side). Versi terbaru dari Applet adalah JApplet yang mempermudah programmer merakit GUI pada Netbeans.

Karena sifatnya yang berjalan di sisi klien, beberapa browser menganggap Applet berbahaya dan tidak lagi disarankan, seperti flash yang lebih dulu dihentikan operasinya. Apalagi dengan bahasa Java yang powerful, jika Applet itu dibuat oleh pihak yang tidak bertanggung jawab, akan merugikan pengguna karena sifatnya yang ‘mengunduh’ dan ‘eksekusi’ di komputer klien. Namun, Chrome masih melihat manfaat Applet sehingga memasukan ekstensinya agar bisa menjalankan browser: https://chrome.google.com/webstore/detail/cheerpj-applet-runner/bbmolahhldcbngedljfadjlognfaaein/related.

Namun Applet tidak bisa dijalankan tanpa menggunakan server, oleh karena itu terlebih dahulu harus menginstall server, misalnya Apache pada XAMPP.

Build Applet pada Netbeans setelah selesai dirakit dan dites. Sisipkan dengan kode berikut di bagian body.

<applet code=TicTacToe.class

archive=”TicTacToe.jar”

width=120 height=120>

</applet>

Misalnya kelas yang akan diakses ‘TicTacToe.class’ dengan JAR hasil build ‘TicTacToe.jar’. Ekstensi ‘class’ merupakan hasil build (atau clean and build). Jalankan aplikasi via browser dengan mengakses alamat web, dan jalankan extension chrome utk applet. Tunggu beberapa saat dan pastikan aplikasi berjalan dengan baik.

Silahkan lihat video youtube ini untuk lebih jelasnya, selamat mencoba.

The Simple Feynman

Seperti anak-anak yang lain, saya sempat khawatir dengan ujian akhir SMA (dulu namanya EBTANAS) dan saringan masuk PTN (dulu namanya UMPTN). Wajar, pengetahuan dari SD – SMA harus dikuasai sebanyak mungkin agar bisa menjawab soal-soal yang ditanyakan. Nah, momok terberat adalah fisika yang memang lingkup pertanyaan sangat liar. Dengan sedikit modifikasi narasi, terkadang siswa yg jago menghafal rumus pun kewalahan. Lalu bagaimana dong?

Di akhir orde lama, ada seorang fisikawan yang menerima hadiah nobel, bernama Richard Feynman. Dengan memperkenalkan sebuah fenomena fisik yang tadinya rumit menjadi serderhana lewat diagram Feynman. Ternyata selain konten dari temuannya, malah metode belajarnya yang banyak diikuti oleh para ilmuwan hingga saat ini.

Ternyata prinsip dasarnya adalah sederhana, yaitu menjelaskan dengan tepat. Ini merupakan skill dasar bagi seorang pengajar, entah itu guru maupun dosen. Contohnya, kita pernah membaca ayat suci, biasanya sulit dimengerti walaupun sudah baca artinya. Kalau pun mengerti, tidak lama lupa lagi. Bandingkan dengan kalau mendengar dari KH Zainuddin MZ, dengan penjelasan dan ilustrasi-ilustrasi yang kadang ‘mengocok perut’, sampai sekarang masih terngiang-ngiang. Yang paling ekstrem adalah Gus Dur dengan istilah-istilah simple-nya.

Saya pernah heran mengapa ketika kuliah tidak faham-faham satu bagian tertentu pelajaran, tetapi ketika lulus dan mengajar barulah mengerti. Hal ini karena ketika belajar saya harus bisa mengajarkan kembali. Di situlah peran ilmunya Feynman, bagaimana menjelaskan ke orang lain. Ketika kuliah dulu, memang sering saya jumpai dosen yang senang lihat siswanya pusing. Nah, karena pernah merasakan pusingnya masa kuliah, saya merasakan pentingnya memberikan penjelasan ke siswa dengan mudah.

Walau di era multimedia penjelasan dengan animasi, video dan suara dapat mempermudah pemahaman, tetapi tetap saja bahasa merupakan hal utama dalam menjelaskan satu konsep. Cara paling mudah belajar menjelaskan adalah menggunakan kalimat sendiri terhadap satu konsep tanpa menghapal buta. Mirip ketika menulis artikel ilmiah yang harus mem-parafase kalimat agar tidak terkena plagiarisme karena mirip dengan sumber lain.

Silahkan buat sesederhana mungkin, tetapi seperti kata Einstein, jangan menjadi terpotong yang hasilnya jadi tidak lengkap. So, fokus ke penjelasan se jelas-jelasnya yang bahkan ketika Anda jelaskan satu konsep, anak SD pun faham.