Install Bluestacks di Windows 11

Bluestacks adalah aplikasi yang menjalankan handphone di laptop/PC. Aplikasi ini sangat membantu mahasiswa yang mengerjakan tugas akhir pemrograman mobile. Selain itu, karena gratis, mahasiswa tidak perlu membayar biaya lisensi. Cara menginstall pun mudah, tinggal klik saja.

Proses Instalasi

Masuk ke situs resminya: https://www.bluestacks.com/id/index.html lalu unduh aplikasi Bluestacks versi 5 atau 10 yang tersedia. Berikut ini versi 10 atau ditulis versi X.

Setelah file exe diunduh, jalankan program tersebut untuk langsung mengunduh file installer sebesar kira-kira ratusan Mb.

Setelah mengecek dan ekstrak file instaler yang telah diunduh, Bluestacks melanjutkan proses instalasi. Tunggu sampai selesai.

Memulai Aplikasi di Handphone

Pastikan Bluestacks X telah selesai diinstal. Silahkan jalankan aplikasi android anda di Laptop. Selamat mencoba. Berikut tampilan aplikasi matlab mobile lewat Bluestacks X atau Bluestacks versi 10. Untuk mulai menggunakan aplikasi tersebut sama dengan memulai HP baru yang tentu saja kita sudah mengerti karena hampir semua orang punya HP. Dimulai dari login gmail dan seterusnya. Berikut ini contoh aplikasi Matlab yang dijalankan di Bluestacks X. Sekian, semoga bermanfaat.

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.

Publish MS Word 365 ke WordPress

Publish dari word ke wordpress biasanya sudah ada fasilitasnya. Namun untuk MS Word 365 tidak ada menu publishnya. Untungnya Office 365 menyediakan template untuk publish ke wordpress.com lewat template yang diunduh di link resminya: https://templates.office.com/en-us/blog-post-tm02843595

Tekan tombol Download di kanan bawah untuk mengunduh file dotx, standar template microsoft word. Simpan di lokasi yang sering digunakan, misalnya documents.

Kalau sudah seperti tampilan di atas, tata caranya mirip dengan publish word pada non versi 365. Silahkan tekan Manage Accounts untuk mendaftarkan akun wordpress agar bisa secara otomatis publish ke www.wordpress.com. Contohnya adalah postingan ini menggunakan template dotx office 365.

Oiya, sebelumnya save as file template karena akan digunakan untuk postingan yang lain. Atau jangan disimpan ketika sudah selesai mengetik di template. Ok, selamat mencoba.

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.

Menginstal Matlab Mobile yang Gratis

Matlab merupakan aplikasi yang banyak dimanfaatkan oleh peneliti. Salah satu bidang yang dapat memanfaatkan aplikasi tersebut adalah matematika. Matlab yang kepanjangannya MATrix LABoratory merupakan software berbayar. Namun untuk aplikasi mobile, ternyata untuk matematika tidak berbayar, tinggal menginstall lewat Playstore android di HP kita.

Jalankan aplikasi yang sudah diinstal. Persiapkan email, karena nanti jika tidak punya akun Anda harus register/create account.

Kalau di web, situs resmi Matlab adalah www.mathworks.com yang berisi informasi mengenai produk Matlab.

 

Silahkan tekan Create one! Jika belum punya account. Selanjutnya jika sudah membuat account baru, Anda bisa login dan memanfaatkan fasilitas Matlab mobile.

 

Jangan khawatir jika Anda diminta Upgrade, tekan saja Continue untuk menggunakan versi mobile. Biasanya untuk fungsi-fungsi dasar matematika tidak memerlukan upgrade. Berikut contoh perhitungan integral.

Simbol @ merupakan simbol fungsi. Contoh di atas jika ingin melihat hasil eksekusi integral dari nol hingga satu. Nah, jika Anda diminta mengintegralkan sebuah persamaan bagaimana?

Contoh di atas kita ingin mengintegralkan sebuah fungsi y = exp(5*x). Oiya, untuk perkalian jangan lupa bintang (*) ya. Pertama-tama Anda harus mendefinisikan x sebagai variabel dengan fungsi syms. Dengan fungsi int diperoleh integral exp(5*x)/5 sementara dengan fungsi diff diperoleh turunannya yakni 5*exp(*5*x). 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.

Kecerdasan Emosional Sang Penyelamat

Memang enak memiliki IQ yang tinggi seperti Prof. Habibie atau A. Einstein. Ada problem, dalam waktu sekejap dapat diselesaikan. Apalagi bagi pelajar dan mahasiswa. Tugas yang berat tidak terasa, hanya dalam sekejap selesai sudah, dan bisa lanjut nonton, jalan-jalan, atau mainan HP.

Itu yang saya rasakan ketika SMA dulu, terkadang iri dengan mereka yang ‘di atas rata-rata’, tanpa susah payah dalam memahami sesuatu. Nah, bagaimana menyikapi kecerdasaan yang rata-rata seperti saya contohnya?

Di atas langit ada langit. Itulah pepatah kuno yang kadang bisa membuat kita ‘pede’ ketika menghadapi orang ‘super’ di sekolah. Kalau saya kalah oleh yang lain, pasti ada saja saya yang menang dari yang lain. Tiap manusia ada kelemahan dan juga kelebihan. Beruntunglah jika diberi kesabaran, ketabahan, dan aspek kecerdasan emosi lainnya.

Mengapa tipe kecerdasan emosional tersebut penting? Sebagai contoh, jika mereka mampu memecahkan problem 1 jam, dan anda 3 jam atau bahkan seharian, tidak apa-apa, toh selesai juga. Nah, jika ada problem yang oleh orang-orang ‘super’ itu bisa dikerjakan dalam 3 jam tapi ketika jam ke-dua mereka menyerah, toh tidak ada gunanya kecerdasan yang padahal 1 jam lagi beres. Bahkan kalah oleh orang yang rata-rata yang beres dikerjakan dalam satu atau dua hari misalnya.

Bahkan ketika kelas 1 SMA karena pusingnya dengan mata pelajaran kimia, saya sempat utak-atik sampai pagi, padahal harus ke sekolah esoknya. Benar saja, si ibu guru menegur saya “ikut ronda ya?”. Toh, ujung-ujungnya hasilnya di atas mereka yang kecerdasannya di atas rata-rata.

Masa SMA yg singkat tapi paling berkesan

Bagaimana dengan studi doktoral? Nah, di sini kecerdasan emosional menentukan mengingat hampir semua problem mahasiswa doktoral itu tidak ada/belum ada yang menyelesaikan. Pembimbing pun kebanyakan tidak/belum menyelesaikan. Mereka hanya bisa memberi saran saja. Sangat penting untuk menjaga ‘ritme’ agar tetap fokus, menjalin komunikasi yang baik dengan promotor, termasuk juga hubungan dengan keluarga. Banyak mahasiswa yang bermasalah keluarganya ketika kuliah karena kurang menjaga hubungan dengan suami/istri, anak, dan kerabat lainnya.

Jangan bermimpi ketika mengambil doktoral anda melihat jawaban jelas di ujung. Ganti judul, tema, ganti metode, sudah hal yang lumrah ketika penelitian berjalan. Jika tidak tahan dan kurang sabar, pasti akan stress. Banyak rekan saya yang meninggal ketika pandemi karena kemungkinan besar sistem imun di tubuhnya menurun karena tuntutan riset doktoral. Sabar, mampu menunda kesenangan, dan tidak takut keluar dari zona nyaman mutlak diperlukan. Jika tidak mau berubah mana mungkin bisa berubah dari master menjadi doktor.

Kondisi ekstrem lain adalah walau otak kita tidak mampu terkadang, pihak-pihak, rekan sejawat, dan teman ngobrol/ngopi terkadang bisa membantu. Banyak mahasiswa doktoral yang lulus dengan bantuan orang lain, tentu saja sebagian, entah itu membantu mengolah data, penarikan sample, pembuatan program, model dan lain-lain. Hal itu lumrah dilakukan, yang penting konsep utama si mahasiswa mengerti. Nah, di sini saya sering melihat rekan-rekan yang awalnya biasa-biasa saja ternyata lulus dengan cepat, sementara yang ‘melejit’ di awal ternyata terbengkalai di akhir karena kurang ‘tahan’ atau tidak sabar.

Kadang ide berasal dari rekan di tempat ngobrol

Tentu saja tiap orang banyak kelemahan yang harus di atasi, seperti saya misalnya. Ada dua rekan saya dari negara lain yang mengatakan saya malas, lambat, dan sejenisnya. Tapi memang rata-rata orang Indonesia santai, mungkin sudah bawaan budaya kita, apalagi saya yang orang Jogja. Ketika sadar hal itu, maka saya mengambil sikap untuk lambat tapi terus menerus, hingga kagetnya ternyata lulus duluan (bersamaan dengan satu rekan saya yang lain). So, jangan berkecil hati.

Ucapan selamat dari pak atase kebudayaan Indonesia saat wisuda

JavaScript Untuk Matematika

JavaScript merupakan Bahasa pemrograman yang sangat terkenal karena banyak digunakan dalam aplikasi web. Nah, ternyata bahasa ini dapat digunakans sebagai sarana belajar matematika, khusunya anak-anak ilmu komputer.

Tahun 1962, Kenneth Iverson mempublikasi tulisan ‘A Programming language’ dengan bahasa APL waktu itu. Menurut beliau, belajar pemrograman tidak hanya bisa memrogram, melainkan memahami juga analisa matematika di dalamnya.

It is the central thesis of this book that the descriptive and analytic power of an adequate programming language amply repays the considerable effort required for its mastery

Tahun 1977, Ian Stewart dan David Tall dalam bukunya ‘The Foundation of Mathematics’ mewarning agar pembelajaran tidak terlampau formal karena siswa pemula akan kesulitan memahami realitas yang ada.

A purely formal approach, even with a smattering of informality, is psychologically inappropriate for the beginner, because it fails to take account of the realities of the learning process.

Buka Mozilla dan masuk ke mode developer dengan menekan Ctrl-Shift-K. Setelah muncul jendela baru di bagian bawah Mozilla, coba copy-paste contoh kode JavaScript. Ketika pertama kali dilakukan, akan ada warning untuk mengingatkan pengguna bahwa karena berupa kode, ada kemungkinan dapat mengganggu sistem karena virus, spyware, dan sejenisnya.

Kalau di baca warning di atas, kita diminta mengetik ‘allow pasting’ di bawah agar bisa copy-paste. Setelah ini coba masukan kode berikut (lihat ebook hal 55):

function BankAccount(n, b)
{
this.number = n;
this.balance = b;
}
// end of BankAccount definition
// make a bank account
var b1 = new BankAccount(38, 20.12);
// display its number
console.log(b1.number); // 38
// make another
var b2 = new BankAccount(39, 132.51);
console.log(b2.balance); // 132.51

Ini contoh sebuah fungsi bernama ‘BankAccount’ dengan parameter masukan ‘n’ nomor rekening dan ‘b’ saldo.

Maka akan dihasilkan berturut-turut 38 dan 132.5. Selamat mencoba.

Thanks to My Student

Every scientist should do a research. This activity is part of three main tasks of lecturer in Indonesia, called ‘Tri Darma’ beside other activities, i.e., the teaching and social service activity. There is a requirement in Indonesia that every research should be published in a journal or conference. This outcome is called ‘luaran’. Of course, there are many levels of publisher based on the quality of the journal/conference. In journal we have quartile in Scopus (Q1 to Q4) as well as impact factor in web of science (WoS). The minimum requirement is the publication in a national journal.

To do the research, a scientist need a lot of collaboration to another scientist that usually a lecturer or student. The ethic should be considered, for example, a student thesis in publication should be arranged where the student as first author. The lecturer if he/she want as the first author, he should do his/her own research or writing a review paper about his/her student research. If the lecturer find the improvement by compiling the results from previous student’s work he/she can publish a paper where he/she become a first author.

Publishing a paper is a hard work that need a lot of resources. Therefore, everyone should appreciate to another scientist result. And I respect to all my students that has successfully published our research. Thank you very much.

Kekalahan

Satu kata yang menjadi judul postingan ini sangat dihindari oleh kita. Namun sesungguhnya tanpa ada kata tersebut tidak ada lawan kata lainnya, yaitu kemenangan. Postingan ini sedikit membahas kondisi timnas Indonesia yang di leg 1 kalah 4 – 0 dari Thailand, setelah di awal-awal menunjukan kinerja yang menjanjikan, yaitu mengalahkan Malaysia dan imbang dengan Vietnam.

Thailand bagi saya tidak asing karena hampir 5 tahun tugas belajar di negeri gajah putih itu. Negeri kerajaan itu sangat berbeda dengan negara-negara asia tenggara lainnya. Perpaduan antara modernisasi dengan adat istiadat ternyata bisa melahirkan budaya kuat bagi rakyatnya.

Negara penganut Budha tersebut sangat menghormati biksu dan rajanya. Percaya dengan karma dimana perbuatan akan dibalas setimpal menyebabkan rakyatnya berfikir dua kali untuk berbuat jahat. Bahkan ketika kita menepuk nyamuk dengan amarah di depan mereka, tatapan mereka langsung terlihat kecewa, terutama di daerah pinggiran kota. Ketika berburu durian di pasar Thailand malam hari, tampak para pedagang lebih suka tidur dengan kelambu dari pada membakar obat nyamuk atau menyemprot pembasmi serangga.

Di bandara sering berjumpa dengan rombongan remaja Thailand yang menyambut para pemain yang mewakili negaranya, entah pertandingan apa. Tampak wajah sumringah para pemain ketika disambut. Saya yakin di dunia maya pun perlakuannya akan seperti itu. Para pemain yang mewakili negaranya, juga mewakili raja akan berjuang mati-matian. Ketika pulang pun akan disambut tidak perduli menang atau kalah.

Di berbagai bidang negara tersebut sebenarnya memiliki bibit yang tidak beda dengan negara kita. Namun keseriusanlah yang membedakan. Bayangkan saja, negara yang memiliki riwayat tanah yang kurang subur memiliki hasil bumi yang terkenal hasil utak-atiknya. Sampai-sampai istilah ‘bangkok’ menggambarkan buah yang super besar seperti jambu bangkok, pepaya bangkok, ayam bangkok dan lain-lain.

Untuk memulainya ada baiknya kita serius dalam segala hal. Bahkan sebagai suporter pun harus serius. Jangan sampai hanya mengagumi dikala menang saja. Saat terpuruk pun suporter harus sesuai dengan maknanya yaitu ‘pendukung’, bukan sebaliknya ‘pembully’.

Riset yang dilakukan Microsof mungkin ada benarnya, nitizen kita kerap kebablasan dalam memberikan komentar. Sanjungan setinggi langit bisa berbalik menjadi caci maki sejadi-jadinya. Bahkan media masa pun latah dan melihat peluang karakter pembully nitizen sehingga membuat konten ibarat menyiram api dengan minyak.

Tidak ada ruginya menghormati seseorang, apalagi bangsa sendiri. Semoga bangsa kita berjaya seperti era keemasan dulu. Yuk, kita dukung timnas sepakbola dan cabang olah raga lainnya. Udahan dulu ya, mau nonton final leg2 piala AFF . Semoga menginspirasi dan selamat tahun baru 2022.

Santai, Tapi Pertahankan Minat & Fokus

Berbeda dengan S2 yang tingkat kelulusannya di dalam negeri hampir 100%, S3 ternyata tidak semudah itu. Banyak rekan-rekan saya yang berguguran (bahkan dalam makna sebenarnya). Postingan ini sedikit memberi gambaran bagi Anda yang ingin melanjutkan ke jenjang terakhir keakademikan.

Melihat rekan-rekan banyak menjumpai hambatan ketika S3, seorang rekan saya bertanya. Pertanyaannya sederhana tapi ‘to the point’, yaitu ‘sanggupkah saya melanjutkan s3?’. Jawaban yang sulit.

Banyak webinar-webinar dan doctoral bootcamp yang membahas kiat-kiat studi lanjut. Berbeda dengan S2 yang hanya berkutat dengan adanya dana baik beasiswa maupun biaya sendiri, jenjang S3 mengharuskan calon mahasiswa memahami benar alur perjalanan seorang mahasiswa doktoral. Namun karena panjangnya alur tersebut, pada postingan ini akan berfokus pada mental.

Karena bukan psikolog, tulisan ini sekedar pengalaman pribadi. Benar atau tidaknya tergantung kondisi, bisa jadi sedikit berbeda dengan kondisi pembaca sekalian.

Biasa Saja

Pertama-tama yang perlu diperhatikan adalah ketika mengambil suatu pelatihan, pendidikan, upgrading, atau apapun sebutannya adalah adanya kebanggaan. Boleh saja, tetapi jangan terlalu lama, kembalilah berpijak ke bumi.

Ibarat dunia selfi yang cenderung foto makanan dulu sebelum dimakan, mulailah dengan langsung saja makan. Membaca atau mengetik, langsung saja lakukan. Dulu, guru Biologi saya pernah menyindir siswanya yang tidak paham2 dengan menyuruhnya ‘langsung membaca’ dan jangan menganggap membaca atau mengerjakan tugas dengan ritual yang perlu persiapan panjang seperti yasinan, atau malah membakar kemenyan, mandi kembang, dan sejenisnya.

Jangan Baper

Di sini baper artinya ‘bawa perasaan’ yang bukan hanya dari sisi negatif (sakit hati, emosi, tersinggung, dan lain-lain) melainkan juga yang positif (tertarik, semangat, dan berapi-api). Maklum, namanya ‘mainan’ baru cenderung melupakan yang lain yang bahkan lebih penting. Banyak teman-teman yang punya karakter ‘hangat-hangat tahi ayam’, alias semangat di awal saja. Melihat metode baru, software terkini, dan hal-hal wah lainnya terkadang latah. Skill yang kita miliki bertahun-tahun jangan sampai dilupakan, ingat ada prinsip 10000 jam untuk menjadi ahli. Bisa jadi kita melihat kita kurang ahli, padahal sesungguhnya menurut pandangan orang kita ahli. Mungkin ada kebosanan dan ingin hal-hal baru, padahal banyak hal-hal yang bisa kita kembangkan dari keahlian yang sudah dimiliki, dari pada mencari hal-hal baru dan mulai dari nol lagi, hanya karena Anda sangat bersemangat.

Steady State

Dalam dunia fisika ada istilah steady state atau kondisi tunak. Biasanya dialami oleh mahasiswa S3 ketika sudah proposal dan masa kondisi transient terlewati. Waktu yang lama dengan progress yang sepertinya tidak secepat kondisi transient (kuliah + membuat proposal) terkadang membuat kita lupa, tahu-tahu waktu sudah mendekati limit. Saya ingat rekan saya berkata disertasinya tidak ada manfaat dan kontribusi bagi lingkungan. Ya, namanya novelty terkadang terasa tidak ada manfaatnya, seperti De Morgan yang menemukan teori-teori logikanya tetapi oleh rekan-rekan jamannya dianggap ilmu yang tak berguna, bahkan dikira orang ‘sinting’. Ternyata ketika komputer ada, baru sadar logika-nya dapat diterapkan.

Oiya, banyak kerjaan-kerjaan mahasiswa S3 yang harus dikerjakan, bahkan tanpa kita yakin berhasil atau tidak. Namanya saja mencari kembali (research), kalau dalam pencarian tidak ketemu ya sabar saja. Ada juga kerjaan remeh temeh yang terpaksa dikerjakan walau tidak menarik. Nah, ini dia yang penting, ketika Anda santai mengerjakan sesuatu yang ‘garing’, ‘membosankan’, ‘ga keren’, atau istilah lain yang menggambarkan hal-hal yang membuat enggan melakoni, artinya Anda sudah siap menjadi mahasiswa doktoral. Banyak yang gagal karena enggan melepas kaki yang masih di dermaga (jabatan, tunjangan, proyek, dll) sementara kaki lain sudah di perahu (studi lanjut). Yuk .. lanjuuuut.

Membuka File MS Word yg Lupa Disimpan

Terkadang ketika menutup word kita lupa menyimpan, padahal berisi naskah penting. Biasanya terjadi ketika banyak membuka file draft yang sementara. Ketika meng-close terkadang sengaja kita tidak menyimpan, padahal mungkin ada satu file penting yang ikut tidak disimpan karena terburu-buru menutup aplikasi.

Microsoft Word menyediakan fasilitas tersebut, langkahnya adalah sebagai berikut. Masuk ke Menu File. Lalu pilih Manage Document di bagian bawah.

Tekan Icon Manage Document lalu pilih Recover Unsave Document. Di sana tampak file-file Anda yang tidak disimpan.

Biasanya kalau baru masih tersimpan di sana dengan ekstensi *.asd, entah mengapa nama ekstensi-nya ASD mungkin singkatan dari ASal Ditutup .. hehe. Klik saja dan Anda akan berhasil menyelamatkan ketikan penting yang lupa ditutup (padahal itu absen kelas ngajar online). Sekian, semoga bermanfaat.

Big Data dengan Matlab

Tahun 2014 saya masih menjadi mahasiswa doktoral Information Management. Ada satu mata kuliah: Decision Support Technologies yang berisi bagaimana sistem informasi membantu pengambil keputusan, salah satunya dengan pemanfaatan Big Data.

Waktu itu saya satu grup dengan mhs dari Thailand dan Uzbekistan. Tugasnya cukup menarik, yaitu menggunakan data dari Kagel yang berisi jutaan record penulis artikel ilmiah yang masih kasar (raw). Targetnya adalah mengumpulkan penulis yang berserakan menjadi rapih, dimana tidak ada redundansi penulis. Terkadang ada nama penulis yang terbalik susunannya, tanpa nama tengah, dan lain-lain. Selain itu perlu deteksi untuk afiliasi dan bidang ilmunya. Yang tersulit adalah terkadang nama belakang perempuan yang mengikuti nama suami.

Kendala utamanya adalah data yang berukuran besar baik dari sisi kapasitas maupun jumlah record. Ketika dibuka dengan Excel, tidak seluruhnya terambil karena ada batas record Microsoft Excel yakni sebanyak 1,048,576 record dan 16,384 kolom. Terpaksa menggunakan sistem basis data, yang termudah adalah Microsoft Access. Waktu itu fasilitas Big Data pada Matlab masih minim, terpaksa ketika menjalankan pemrosesan paralel, secara bersamaan dibuka 3 Matlab sekaligus (lihat postingan saya tahun 2014 yang lalu).

Tipe Data Tall

Sekitar tahun 2016-an Matlab memperkenalkan tipe data Tall dalam menangani data berukuran besar. Prinsipnya adalah proses upload ke memory yang tidak langsung. Sebab kalau ketika impor data dengan cara langsung maka akibatnya memory akan habis, biasanya muncul pesan ‘out of memory‘. Oleh karena itu Matlab membolehkan mengupload dengan cara ‘mencicil’. Tentu saja untuk memperoleh hasil proses yang lengkap dengan bantuan fungsi gather.

Seperti biasa, cara mudah mempelajari Matlab adalah lewat fasilitas help-nya yang lengkap, maklum software ‘berbayar’. Lisensinya saat ini sekitar 34 jutaan, kalau hanya setahun sekitar 13 juta dan kurang dari 1 juta untuk pelajar. Pertama-tama ketik saja di Command Window: help tall. Pastikan muncul, jika tidak muncul, berarti Matlab Anda belum support fungsi Big Data tersebut. Walau mahal, tetapi Anda bisa mencoba sebulan secara gratis. Ok, jalankan saja help yang muncul.

Dengan fungsi datastore, pertama-tama sampel Big Data disiapkan. Di sini masih menggunakan Comma Separated Value (CSV). Perhatikan hasil proses fungsi tall yang berupa matriks berukuran Mx4. Nah, disini istilah M muncul yang berarti ‘beberapa’, karena yang ditarik belum seluruhnya.

Tampak paralel pool sudah terbentuk, dengan 4 worker. Di sini dibatasi 30 menit, jika idle/tidak digunakan akan di-shutdown. Terakhir, fungsi gather dibutuhkan untuk merekapitulasi hasil olah.

Tampak informasi pooling yang merupakan ciri khas pemrosesan paralel telah selesai dilakukan. Sekian, semoga informasi ini bermanfaat.

KMeans Clustering dengan Python

Pada postingan yang lalu telah dibahas klasterisasi dengan KMeans menggunakan bahasa Matlab. Kali ini kita coba menggunakan bahasa Python dengan GUI Jupyter notebook pada Google (Google Colab).

Sebelumnya kita siapkan terlebih dahulu file data sebagai berikut. Kemudian buka Google Colab untuk mengklasterisasi file tersebut. Sebagai referensi, silahkan kunjungi situs ini. Saat ini kita dengan mudah memperoleh contoh kode program dengan metode tertentu lewat google dengan kata kunci: colab <metode>.

Mengimpor Library

Library utama adalah Sklearn dengan alat bantu Pandas untuk pengelolaan ekspor dan impor file serta matplotlib untuk pembuatan grafik.

  • from sklearn.cluster import KMeans
  • import pandas as pd
  • from sklearn.preprocessing import MinMaxScaler
  • from matplotlib import pyplot as plt

Perhatikan di sini KMeans harus ditulis dengan K dan M berhuruf besar, begitu pula kelas-kelas yang lain seperti MinMaxScaler

Menarik Data

Perhatikan data harus diletakan di bagian file agar bisa ditarik lewat instruksi di bawah ini. Jika tidak maka akan muncul pesan error dimana data ‘beasiswa.csv’ tidak ada.

Selain itu tambahkan instruksi untuk mengeplot data. Tentu saja ini khusus data yang kurang dari 3 dimensi. Jika lebih maka cukup instruksi di atas saj.

  • plt.scatter(df[‘IPK’],df[‘Tingkat Kemiskinan (TM)’])
  • plt.xlabel(‘IPK’)
  • plt.ylabel(‘Tingkat Miskin’)

Prediksi

Ini merupakan langkah utama yang memanfaatkan pustaka ‘KMeans’ dari Sklearn.

  • km=KMeans(n_clusters=2)
  • y_predicted=km.fit_predict(df[[‘IPK’,‘Tingkat Kemiskinan (TM)’]])
  • y_predicted

Nah, hal terpenting adalah tidak hanya menghitung y_predicted saja melainkan melabel kembali datanya. Percuma saja jika kita tidak mampu memetakan kembali siapa saja yang masuk kategori klaster ‘0’ dan ‘1’.

  • df[‘klaster’]=y_predicted
  • print(df)

Finishing

Di sini langkah terpenting lainnya adalah kembali memvisualisasikan dalam bentuk grafik dan menyimpan hasilnya dalam format CSV.

  • df1=df[df.klaster==0]
  • df2=df[df.klaster==1]
  • plt.scatter(df1[‘IPK’],df1[‘Tingkat Kemiskinan (TM)’],color=‘red’)
  • plt.scatter(df2[‘IPK’],df2[‘Tingkat Kemiskinan (TM)’],color=‘black’)
  • plt.scatter(km.cluster_centers_[:,0],km.cluster_centers_[:,1],color=‘purple’,marker=‘*’,label=‘center’)
  • plt.xlabel=‘IPK’
  • plt.ylabel=‘Tingkat Miskin’
  • plt.legend()

Hasilnya adalah grafik dengan pola warna yang berbeda tiap klaster-nya.

Salah satu kelebihan Pandas adalah dalam ekspor dan impor data. Dalam hal ini kita akan menyimpan hasil klasterisasi dengan nama ‘klasterisasi.csv’. Lihat panduan lengkapnya di sini.

  • df.to_csv(‘klasterisasi.csv’)

Silahkan file hasil sempan diunduh karena Google Colab hanya menyimpan file tersebut sementara, kecuali kalau Anda menggunakan Google Drive (lihat caranya). Untuk mengujinya kita buat satu sel baru dan coba panggil kembali file ‘klasterisasi.csv’ yang baru terbentuk itu. df=pd.read_csv(‘klasterisasi.csv’)

  • df.head()

 

Note: ada field yang belum dinamai (Unnamed), bantu ya di kolom komentar caranya. Oiya, MinMaxScaler digunakan untuk jika data ‘jomplang’ misalnya satu dimensi, IPK dari 0 sampai 4 sementara misalnya penghasilan jutaan, tentu saja KMeans ‘pusing’. Oleh karena itu perlu dilakukan proses preprocessing. Sekian, semoga bermanfaat.