Monday, June 22, 2020

Menghapus dan mengganti data NaN pada Numpy

Data NaN (Not a Number) sangat menjengkelkan; bisa dibilang sampah. Data ini, bisa dari pengukuran atau simulasi, tidak dipakai dalam pengolahan data dan perlu dihilangkan atau diganti. Ya, dua cara tersebut (menghapus atau mengganti data NaN) merupakan dua cara agar data yang terkontaminasi NaN bisa diproses. Oya, data NaN ini juga bisa merupakan data outlier, misal ketika mengukur suhu rentang 23-27 derajat celcius kita mendapatkan data pengukuran 127 celcius yang tentu saja tidak masuk akal. Bisa juga data NaN ini berupa nilai "0" karena kegagalan sensor pengukuran.

Menghapus Data NaN di Numpy

Misalkan kita memiliki 10 data pengukuran dari tiga sensor.  Pertama, kita mencari elemen NaN sebagai berikut.
In [1]: import numpy as np 
In [2]: a = np.array([[1, 2, 4], [1, 2, 1], [np.nan, 1, 2], [1, 2, np.nan], [2, 1, 1]])
In [3]: np.isnan(a).any()
Out[3]: True
In [4]: np.where(np.isnan(a))                                                                           
Out[4]: (array([2, 3]), array([0, 2]))

Dari output ipython tersebut kita mengetahui bahwa data NaN berada pada (2, 0) dan (3, 2). Ingat Python mengindeks dari 0. Untuk menghapus baris (row) yang berisi NaN, gunakan perintah berikut:

In [3]: b = a[~np.isnan(a).any(axis=1)] 

Algoritma menghapus NaN pada satu baris di atas dapat dijelaskan sbb:
1. Mencari indeks data NaN dengan np.isnan.
2. Mencari data jika ada NaN dengan np.any.
3. Mencari data jika ada NaN pada kolom (axis=1, karena yang kita hapus barisnya).
4. Membalik hasil pencarian pada (1-3) dengan ~, dengan kata lain, cari data yang bukan NaN.

Untuk lebih jelasnya, perhatikan setiap output perintah berikut:
In [57]: np.isnan(a)                                                                                     
Out[57]: 
array([[False, False, False],
       [False, False, False],
       [ True, False, False],
       [False, False,  True],
       [False, False, False]])
In [58]: np.isnan(a).any()                                                                               
Out[58]: True
In [59]: np.isnan(a).any(axis=1)                                                                         
Out[59]: array([False, False,  True,  True, False])
In [60]: ~np.isnan(a).any(axis=1)                                                                        
Out[60]: array([ True,  True, False, False,  True])

In [61]: a[~np.isnan(a).any(axis=1)]                                                                     
Out[61]: 
array([[1., 2., 4.],
       [1., 2., 1.],
       [2., 1., 1.]])
Baris untuk memfilter data NaN disebut fancy indexing. Inilah salah satu hal yang paling membedakan Numpy dengan List python. Dengan teknik ini kita bisa memfilter suatu array dengan array lainnya. Contohnya data dengan index NaN ini. Permasalahan menghapus data yang berisi NaN selesai.

Mengganti Data Nan di Numpy

Bagaimana jika kita tidak ingin menghapus dana NaN, tapi mengubahnya..? Misal, dalam pengukuran suhu, suhu yang tidak terbaca sensor kita anggap sebagai suhu 25 derajat celcius.
Berikut data dummy pengukuran tiga sensor suhu.

In [52]: a = np.random.uniform(23, 28, [10, 3])                                 

In [53]: a                                                                      
Out[53]: 
array([[27.78837233, 23.24395001, 23.57374599],
       [24.19978931, 23.25094801, 24.49294423],
       [26.73693715, 23.16475293, 25.96576384],
       [26.70315233, 24.85865614, 25.3510446 ],
       [25.31885087, 27.42903322, 25.26193883],
       [25.68032566, 27.06242615, 27.0408585 ],
       [26.64473586, 27.56036335, 24.49159284],
       [24.90196938, 26.00082306, 25.70781393],
       [26.58828295, 25.36263426, 27.6251521 ],
       [24.63801191, 24.23193679, 26.99034562]])

Kita tambahkan 5 data NaN secara acak.
In [54]: a.ravel()[np.random.choice(a.size, 5, replace=False)] = np.nan         

In [55]: a                                                                      
Out[55]: 
array([[27.78837233,         nan,         nan],
       [24.19978931, 23.25094801, 24.49294423],
       [26.73693715, 23.16475293, 25.96576384],
       [26.70315233, 24.85865614, 25.3510446 ],
       [        nan, 27.42903322, 25.26193883],
       [25.68032566, 27.06242615, 27.0408585 ],
       [26.64473586, 27.56036335,         nan],
       [24.90196938, 26.00082306, 25.70781393],
       [26.58828295,         nan, 27.6251521 ],
       [24.63801191, 24.23193679, 26.99034562]])

Terlihat 5 data NaN pada baris 0, 4, 6, dan 8 (indeks mulai dari 0). Kita ganti data NaN tersebut dengan 25.0 derajat celcius. Perintah yang digunakan adalan np.nan_to_num(a, nan=25.0).

In [56]: np.nan_to_num(a, nan=25.0)                                             
Out[56]: 
array([[27.78837233, 25.        , 25.        ],
       [24.19978931, 23.25094801, 24.49294423],
       [26.73693715, 23.16475293, 25.96576384],
       [26.70315233, 24.85865614, 25.3510446 ],
       [25.        , 27.42903322, 25.26193883],
       [25.68032566, 27.06242615, 27.0408585 ],
       [26.64473586, 27.56036335, 25.        ],
       [24.90196938, 26.00082306, 25.70781393],
       [26.58828295, 25.        , 27.6251521 ],
       [24.63801191, 24.23193679, 26.99034562]])

Cukup sederhana, jika argumen nan=25.0 tidak ditambahkan, maka data NaN akan diganti dengan angka "0" (default). Jika ingin mengganti dengan angka lain, misal 25.5, tinggal mengganti nan=25.5. Selesai permasalahan mengganti data NaN pada Numpy array.
 
Untuk Pandas (dataframe) silahkan baca di sini.

Saturday, June 20, 2020

Konversi file svg ke pdf via terminal

Ekstensi pdf sangat fleksibel, baik digunakan secara independen maupun ketika di "embedd" ke dalam file lain, misalnya Latex. Gambar yang baik (resolusinya) kebanyakan bukan dalam format pdf, tapi (contohnya) SVG. Konversi yang cepat (dalam hitungan detik) dibutuhkan agar kita tidak perlu membuka program berbasis grafis (seperti InkScape atau Adobe Illustration) untuk konversi dari SVG ke PDF. Berikut solusinya.

# install program jika belum terinstall
$ sudo apt-get install librsvg2-bin
$ rsvg-convert -f pdf -o output.pdf input.svg

Cara ini menghemat waktu sekitar 10 menit dari cara konvensional (berbasis grafis). Selain itu, aplikasi berbasis grafis sering "mend-distract" kita untuk mengerjakan sesuatu yang lain di aplikasi tersebut.

Thursday, June 11, 2020

Benchmarking Intel-based Numpy packages

Intel has their own distribution (modified version) of Numpy, Scipy, and scikit-learn packages. They claim that these packages are optimized from those existing packages. To prove this claim, I made a little following benchmark. I used two similar machines MBP 2012 and Lenovo G580. Both have similar specs, i7-3520 processors, and 16GB RAM. The following code I used to benchmark.

Saturday, June 06, 2020

Outline: Logika bahasa ilmiah

Berikut adalah outline dari beberapa resume kuliah "Scientific Discussion" yang diajar oleh Prof. Preining pada 2019 di JAIST. Agar tidak menguap begitu saja, saya membuat outline (daftar isi/tulisan) yang pernah saya buat untuk merangkum isi kuliah tersebut. Dalam Bahasa Indonesia, "scientific discussion" lebih pas diterjemahkan sebagai "logika bahasa ilmiah" atau "logika diskusi ilmiah", karena isinya banyak berupa prinsip logika yang dipakai dalam diskusi ilmiah.

Materi kuliah tersebut sangat cocok untuk membangun alur berpikir dalam berbahasa ilmiah, baik tulisan maupun lisan (lebih dikhususkan pada tulisan, namun bisa diaplikasikan secara lisan/ucapan, less formal). Klik setiap baris item outline di bawah ini untuk membaca artikel dengan judul tersebut.

  1. Menjadi logis: Menyiapkan akal untuk logika
  2. Menjadi logis: Prinsip dasar logika
  3. Argumen: Bahasa logika [1]
  4. Argumen: Bahasa logika [2]
  5. Sumber pemikiran tidak logis
  6. Prinsip-prinsip pemikiran tidak logis
  7. Logika dan percakapan-nya Grice (implikatur) beserta kritiknya
  8. Panduan berpikir kritis
Tulisan-tulisan tersebut cukup menarik karena sejatinya bukan tulisan saya. Namun, ulasan dari buku-buku dan makalah yang benar-benar berbobot. Beruntung saya pernah mendapatkan kuliah tersebut. 

Jika ada tulisan baru saya dengan tema yang sama/mirip, akan saya tambahkan dalam outline di atas.

Monday, May 18, 2020

Pentingnya bersih-bersih setiap hari...

Pada suatu ketika, di sela-sela belajar bahasa Jepang (kursus gratis man-to-man diadakan oleh volunteer), guru saya bertanya, "Bagus-san, kamu bersih-bersih tiap berapa hari sekali?" Saya menjawabnya, "Seminggu sekali, sensei." Sensei saya menimpali "Are, Takebi-sensei, mainichi souji shimasu". Itu si Takebi-sensei bersih-bersih rumahnya tiap hari. Takebi-sensei yang berada di belakang saya mengangguk dan menimpali, "hai, mainichi souji shimasu." Orang jepang suka yang bersih dan suka bersih-bersih. Bahkan saya curiga, pekerjaan mereka cuma bersih-bersih.

Mari berhenti sejenak dari membaca tulisan ini dan melihat dua video pendek berikut yang dibuat oleh vlogger amatir Jepang.



Saturday, May 09, 2020

Ketidaksinkronan telinga dan mata: Efek McGurk

Efek McGurk adalah salah satu contoh nyata pemrosesan multimodal manusia (human multimodal perception). Sederhananya, jika apa yang diperdengarkan berbeda dengan apa yang diperlihatkan, maka otak kita akan menerimanya dengan berbeda juga.

Yang diperdengarkan (audio): BA-BA-BA
Yang diperlihatkan (visual): GA-GA-GA
Yang terdengar: DA-DA-DA

Ini adalah sebuah ilusi. Sistem multimodal persepsi manusia tidak bekerja sendiri-sendiri (misal penglihatan sendiri, pendengaran sendiri), namun bekerja bersama-sama untuk menghasilkan persepsi (dalam hal ini persepsi pendengaran). Ketika sensor bekerja secara simultan (mata dan telinga) maka informasi dari keduanya akan diproses oleh otak dan hasilnya, terjadilah ilusi, apa yang terdengar (DA) bukan sebenarnya (BA). Video di bawah ini menjelaskan dengan singkat dan padat tentang efek McGurk.




Efek McGurk pada Audio-Textual

Adakah efek McGurk pada Audio-textual? Saya meyakininya ada, namun belum ada bukti empiris hal itu terjadi. Sederhana saja, jika pada audio-visual fenomena tersebut ada, kenapa tidak pada audio-textual? Misal Si A mengatakan "Dia marah", namun si B mendengar "Dia ramah". Alhasil, si B kemudian menimpali "Ah enggak, dia enggak ramah sama sekali." Pernah kan kita dalam situasi seperti ini? Fenomena ini asyik kalau dibuat eksperimennya. Semoga kelak saya (atau orang lain) bisa melakukannya.

Penutup

Efek McGurk mengajarkan kepada kita: Apa yang kita dengar dan kita lihat belum tentu benar!.

Wednesday, May 06, 2020

10 tips for writing a truly terrible journal article

This post is a summary of tutorial video on research academy at Elsevier:
https://researcheracademy.elsevier.com/writing-research/writing-skills/10-tips-writing-truly-terrible-journal-article.
Visit the link for a more complete explanation. This writing is just a short version of what I heard.

Bear in mind, the following 10 sure-fire ways guarantee your paper won’t be accepted (NOT THE OPPOSITE). So, to make your paper to be accepted, DO THE OPPOSITE WAYS. You already have been warned.

The 10 tips (minute 13:31)

1. Refuse to read the previous literature published in your field.

Every scientific paper should add knowledge to the field. In other words, it should contain novelty. Failure to read previously reported findings means a rejection for you.

2. Take the lazy route and plagiarize (including your previous own article)

Don't make a double submission because of laziness waiting review. Don't plagiarize others including your own. If you submit an article from conference to journal (with a major change of contributions), cite and state your previous works. Plagiarism is a crime no matter how small it is.

3. Omit key article components.

Scientific article follows strict rules and components. One of the well-known is IMRaD model (Intro, Method, Results, and Discussion; conclusions is optional).

4. Disrespect previous publications.

Example of disrespecting previous publications: plagiarism, repeating paper without adding novel contribution, not citing previous papers, etc.

Saturday, May 02, 2020

Mengedit video dan audio untuk keperluan konferensi virtual

Di musim pandemi seperti sekararang ini, banyak seminar/konferensi dialihkan menjadi online/virtual. Tulisan ini akan membahas teknik presentasi online/virtual berbasis perangkat lunak  gratis, khususnya yang berjalan di sistem operasi berbasis Linux.

Perangkat yang dibutuhkan/digunakan antara lain: Beamer atau Impress atau Google Slide, SimpleScreenRecorder atau OBS Studio, ffmpeg dan audacity. Jadi setidaknya kita menggunakan empat perangkat, misal Beamer > OBS > ffmpeg > Audacity, atau, Impress > SimpleScreenRecorder > ffmpeg > Audacity. Diagram alir dari langkah-langkah yang dilakukan dapat digambarkan pada gambar di bawah ini.


Diagram alir proses peremakan presentasi virtual
Di akhir tulisan, saya akan demokan dua hasil perekaman dengan teknik yang saya jelaskan di artikel ini.

Thursday, April 23, 2020

Dos and Don'ts in Academic Presentation


Before reading this article it is suggested to read the previous article on 201 presentation skills (in Bahasa, right-click in Chrome and click translate, to make it in English).

This article is a resume/summary of the book "Conferencing and Presentation" by Michael Guest, particularly on Part IV (chapter 12-16). The book itself is free and can be downloaded from the Springer  Nature website. The following dos and don'ts focus on a practical manner from opening to closing. Before entering this structure, however, formulae to formulaic academic phrases serve is listed as building blocks of academic discourse. These formulae including,
  1. Occupy a mid-point between ‘general English’ and specialist terminology;
  2. Contain constituents that are flexible (i.e., excluded vs. ruled out, possibilities vs. results);
  3. Have cross-disciplinary academic application;
  4. Are utilized in both written and spoken modes;
  5. Hold long-term (intrinsic) value for academics/professionals;
  6. Mark entry or membership into the academic discourse community.
Having those formulaic phrases, Let's start the practical implementation of those phrases in the academic presentation.

1. Opening
Don'ts:
  • My name is X, and my presentation is entitled Y. (this and next three are too slight)
  • Hello everyone.
  • My topic today is X. (This and below are too much casual)
  • Today I’m going to present about X.
  • I’ll present on X, OK?
  • OK, so, I’ve just changed the title to show... X.
  • I’m gonna talk about something that is very hot ‘n sexy...

Monday, April 06, 2020

Berpindah ke vscode (dari gEdit)

Hidup itu harus dinamis, tidak harus saklek pada satu hal (tool/perangkat). Ketika ada perangkat lain yang lebih mudah, meskipun awalnya saya membencinya, maka kita harus berpindah ketika ternyata perangkat tersebut memberikan kemudahan dan kecepatan dari perangkat lama.

Kali ini saya berbicara tentang "editor", perangkat lunak yang digunakan untuk mengetik. Contoh editor sederhana adalah notepad di Windows. Di Linux, sejak pertama kali menggunakannya secara intensif tahun 2009 sampai sekarang, editor bawaan dari Gnome, yakni gEdit, adalah editor default saya, selain vim. Dua hal utama yang saya gunakan dengan editor: (1) mengkoding Python, dan (2) membuat manuskrip dengan Latex. Hal-hal lainnya adalah menulis dengan markdown, txt, dan format-format lainnya. Jadi, editor yang saya gunakan paling tidak harus mendukung Python dan Latex, dan gEdit sudah mendukung keduanya dengan beberapa kekurangan (code completion, snippets, dll).

Setelah mencoba beberapa editor lain: Atom, Sublime text, Spyder, PyCharm, dan vscode, akhirnya saya memutuskan vscode sebagai editor saya untuk seterusnya. Tulisan ini mengupas kenapa saya berpindah dari gEdit ke vscode.


Saturday, March 28, 2020

New article every weekend?

Time is short, writing is hard, and papers are long.
-Write it Up, p. 3

Writing is hard, everyone agrees on this statement. But, what about statement "Everyone can write"? Most people will disagree with that statement. Yes, while all students in higher education (undergraduate and above) must submit their thesis to obtain their degree, not all of them being a writer after it. Writing is important in all aspects of life. It is a basic skill to survive in the modern era. Without it, someone will suffer to explain their idea, their thinking. Yes, writing is thinking (another thinking is speaking), As quoted by a page in a book below, writing is a way to communicate our thinking to others. The better we communicate our idea, our thinking, the easier it will be accepted by people.

Writing is thinking, from a book: The craft of research

Why Writing?

Wednesday, March 25, 2020

Apa bedanya training, validasi, development dan test set ?

Dalam sebuah seminar/konferensi ilmiah, saya bertanya kepada pemateri: Kenapa data yang dipakai untuk validasi dan test sama? Menurut beliau, istilah validasi dan test dalam machine learning sama. Menurut saya ini salah. Data validasi tidak boleh dipakai untuk test (karena tentu saja, hasilnya akan lebih bagus). Data validasi sama dengan data development, keduanya, validation dan development, merupakan istilah yang sama untuk "tuning model" dari hasil training.

Partisi data Training, Validasi, dan Test (sumber gambar: disini)

Merujuk pada StackOverflow:

Wednesday, February 26, 2020

Menghitung rataan dengan mengabaikan nilai nol di Python Numpy

Ada kalanya kita ingin menghitung nilai rata-rata dari suatu data, namun kita ingin mengabaikan (skip) jika
ada nilai 0 (atau kosong, atau NaN, Not a Number) dalam data tersebut. Screencast di bawah ini menjelaskan tentang hal tersebut.

Monday, February 17, 2020

多様性の尊重

みなさん、こんにちは。 私はバグスと申します。北陸先端科学技術大学院大学の留学生です。
今日は「多様性の尊重」についてお話ししたいと思います。 まず、多様性って何ですか? 
多様性というのは、性別、年齢、人種、障害の有無、性的嗜好、宗教などの違いを言います。
英語ではDiversityです。世界中に、多様性を持った人々が住んでいます。

今から人間の多様性について3つのポイントをお話ししたいと思います。
1つめは、多様性というのは、自然で必然的なことです。そして避けられないことです。
まず、言葉の多様性について考えてみましょう!
日本人は皆、同じ言葉を話しているように思いますが、方言というものがありますよね。
例えば北海道と沖縄の言葉は違います.
金沢で生まれて長い間住んでいる人は、金沢弁を話すと思います。
そして東京の人は東京弁で話します。あとは、関西弁、九州弁、東北弁とか・・・
石川県内容でも加賀と能登では違います。
私が石川県に来て、気がついた方言は、言葉の最後を長くのばしたり、“じ”を使うことです。
例えば「それで」を「それでぇ~」とか「けれども」を「けどぉ~」。
「すごいね」を「すごいじ~」・・・こんな感じです。

2つめは、人間の多様性は避けることができないので、どうすればみんなと上手くやって
いけるのでしょうか? 大切なことは、多様性を尊重することだと思います。
あらゆるバックグラウンドを持つ人々と協力しながらやっていくべきです。
すべての人々に尊厳と敬意をもって接するべきです。男性、女性の区別なく平等に接するべきです。
そして、いろいろな意見や考えを尊重し、自分の中にある偏見や行いを見つめ直す必要があります。

3つめは、なぜ、多様性ってあるのでしょうか? なぜ、1種類の人間だけではないのでしょうか?
例えば、全部、日本人だったらどうでしょうか? それじゃ、問題がありますよね。
そしてもし、すべての人が男性だったら、どうやって次の世代に続けていけるのでしょうか?
だから、男性と女性、年配と若者、日本人と外国人がいるのです。多様性があるから、
お互いを知り、学ぶことができるのだと思います。
みんなが違うから国が発展するのではないでしょうか?
一人一人の長所を生かさないと発展できません。多様性に学ぶべきことがたくさんあります。

最後に、なぜ、神様は私たちに多様性を与えたのでしょうか?
神様は私たちがお互いを知ることができるように多様性をつくり、そこから私たちは学び、
助け合うためだと思います。私たちは外見で判断されるのではなく、行動と心で判断されるべきなのです。
私はお互いの多様性を尊重しあって、皆が生き生きと気持ちよく生きていけたら、と思います。
以上です。本日はありがとうございました。


---
*) この書き込みは石川県でスピーチコンテストを用です。

Tuesday, January 14, 2020

Manuscript preparation workflow


Here is my manuscript preparation workflow:

1. Spellcheck
I use gEdit for my (latex) writing, it has built-in spellcheck (install via `sudo apt install aspell-en`, if
it doesn't appear like below).
gEdit spell check

2. Grammar check
For free, I use textidote. For the paid version, I used Grammarly (also available for free with limited capability). Read this link on how to use textidote (in Indonesian language, right click > translate to English if you use Google Chrome). Another tool is proselint.
https://bagustris.blogspot.com/2019/06/mengecek-grammar-dan-spellchek-bahasa.html

3. Common error detector

Thursday, January 09, 2020

Winter vacation: Kumamoto dan Saga-ken

Ishikawa-ken, penghujung tahun 2019

Senin adalah awal pekan, awal memulai pekerjaan. Namun tidak dengan senin itu. Senin itu adalah awal liburan. Bergegas dia meninggalkan apatonya, mengejar bis untuk ke stasiun. Bus shuttle berangkat jam 8:55, dan lima menit sebelum bis itu berangkat, dia sudah berada di dalamnya. Dari Nomi, kota tempat kampusnya berada, menuju Komatsu, stasiun dimana dia memulai perjalanan, ditempuh selama 30 menit dengan shuttle kampus tersebut. Hari ini adalah hari terakhir shutle beroperasi sebelum liburan tahun baru. Shuttle akan beroperasi lagi tanggal tiga Januari, tepat dimana dia pulang dari liburan. Untuk sekedar liburanpun dia mengatur jadwalnya sedemikan rupa sehingga transportasi dapat diperolehnya senyaman mungkin.

Jadwal shuttle selama winter 2019/2020

Di Komatsu, dia sampai jam 9:30. Masih ada waktu 45 menit sebelum kereta pertama tujuan Fukui berangkat. Dia pun membeli tiket juhacchi kippu (18kippu), tiket free-pass khusus kereta api JR yang berlaku selama lima hari, se-jepang, asalkan masih kereta JR, maksimal tipe kereta api ekspress, bukan tipe atasnya (limited express, shinkansen). Setelah mengantongi tiket, dia pun berkeliling, memperhatikan lalu lalang orang-orang di stasiun Komatsu. Banyak orang menjemput saudaranya, atau temannya. Tahun baru serasa lebaran di Indonesia.


Dari Komatsu dia mengambil kereta tujuan Fukui. Dari Fukui berpindah ke Tsuruga. Masing-masing sekitar satu jam. Dari Tsuruga dia bisa lebih lama di kereta, sekitar 2.5 jam, ganti kereta di Himeji menuju Aioi, ganti kereta di sana menuju Okayama, tujuan terakhirnya hari itu. Nahas, dia ketinggalan melewatkan kereta di Aioi. Akhirnya dia memutuskan untuk tetap di kereta sampai tujuan akhir, Banshu-Ako. Dari sana dia berpindah ke kereta menuju Okayama. Jadwal kedatangannya di Okayama mundur sejam dari yang diperkirakan. Seharusnya jam 17.02, kenyataanya dia sampai di Okayama jam 18.30

Rute dari Himeji ke Okayama via Banshu-Ako. Harusnya perjalanan bisa lebih singkat jika berhendi di Aioi, kemudian oper kereta tujuan Okayama.

Friday, December 27, 2019

Membuka (terjemah) Quran di Terminal

Hari ini saya iseng mencari-cari aplikasi yang bisa menampilkan Al-Quran di command line alias terminal. Apa manfaatnya? (1) Ketika disebutkan surat dan ayatnya, misal 7:37, kita segera tahu arti ayat tersebut (dalam bahasa inggris); (2) Ketika membaca Quran (yang tidak ada terjemahannya), kita juga bisa langsung tahu artinya. Ternyata ada aplikasi ini Github. Langsung cus saya coba. Berikut tutorial singkatnya.

Friday, December 13, 2019

Tes Signifkansi (Paired t-test) dengan LibreOffice Calc

Tes Signifikansi

Tes signifikansi digunakan untuk menilai apakah dua hal (benar-benar) berbeda. Menggunakan logika penalaran (logical reasoning), kita tidak bisa menilai dua hal secara subyektif. Misal, A dan B itu berbeda, karena tidak sama persis. Tidak demikian. Kita harus berbicara berdasarkan data. Nah bagaimana menunjukkan kalau A dan B itu berbeda dengan data? Tes signifikansi-lah salah satu caranya.

Perlu dicatat, sebelum saya lanjutkan tulisan ini, banyak kritik atas penggunaan tes signifikansi. Salah satunya adalah tulisan ini. Sebagai solusinya, penulis artikel tersebut menyarankan penggunaan confidence level. Saya tidak akan membahas hal tersebut (meskipun saya setuju). Prinsip saya, mempelajari apa yang sedang digunakan (meski dianggap salah atau tidak layak), tetap bermanfaat sehingga kita tahu kekurangannya.

Paired t-test

Ada beberapa macam t-test: paired,  two samples with equal variance, dan two samples with unequal variance. Kali ini saya akan membahas paired t-test, karena itu yang saya pakai. Pair t-test digunakan untuk mengecek dua proses (misal sebelum dan sesudah improvement),  Asumsi yang dipakai adalah bahwa bahwa perbedaan rataannya 0.  Paired t-test baik dipakai jika:

  • Proses/metode yang berbeda pada subyek yang sama
  • Tidak ada data outlier

One-tail vs Two-tail dan p-value

Analisis One-tail vs Two-tail dilihat dari kurva distribusinya. Perhatikan gambar di bawah ini. Jika memakai two-tail (ini yang akan dipakai) kita memakai dua sisi-nya. Jika memakai satu-sisi maka hanya dipakai setengah sisinya. Memakai two-tail, dengan confidence level 95% maka significance leevel-nya adalah 5% atau 0.05. Inilah batas nilai p-value (asserting p-value=0.05). Jika nilai p-value di bawah nilai batas tersebut, maka null hypothesis kita tolak dan alternatif hypothesis kita terima (artinya: perbedaan yang kita dapatkan signifikan).


Monday, December 02, 2019

Panduan Berpikir Kritis

Tulisan ini merupakan ringkasan dari sebuah buku: Asking the Right Questions, A guide to critical thinking, yang ditulis oleh M. Neil Browne dan Stuart M. Keeley dari Bowling Green State University. Buku tersebut cukup sukses dan banyak dipakai, dari S1 hingga S3; terbukti dari cetakannya yang memasuki edisi ke-11. Meski telah memasuki edisi ke-11, ringkasan ini saya buat berdasarkan edisi ke-7 karena strukturnya lebih runtut dan mudah dipahami.

Berpikir kritis, menurut definisi buku tersebut, adalah mengacu pada tiga dimensi seperti pada gambar di bawah ini. Ketiganya harus terpenuhi, dan untuk memenuhinya "menanyakan pertanyaan yang tepat" adalah kuncinya.


Manfaat Berpikir Kritis
Berpikir kritis bermanfaat untuk meningkatkan kemampuan menulis dan berbicara karena akan menuntun anda ketika:
  1. Bereaksi kritis atas tulisan, baik di buku, website, jurnal maupun makalah.
  2. Menilai kualitas dari sebuah pemaparan (kuliah, presentasi, dll)
  3. Membentuk argumen
  4. Membuat essai
  5. Berpartisipasi pada diskusi (kelas, dll)

Prinsip Berpikir Kritis

Prinsip yang dimaksudkan disini adalah nilai, standar acuan. Lebih lengkapnya:
Values are unstated ideas that people see as worthwhile.
They provide standards of conduct by which we measure the quality of human behavior.
Dari definisi diatas, maka prinsip-prinsip berpikir kritis adalah sebagai berikut:
  1. Merdeka. Pemikiran anda tidak dikekang oleh siapapun dan apapun.
  2. Keingintahuan. Untuk 'mendulang emas' dalam hidup, anda harus mendengar dan membaca.
  3. Legowo. Bisa menerima perbedaan dan mengakui jika tidak tahu.
  4. Respek. Menghormati (pendapat) orang lain.

The right questions: Pertanyaan yang tepat

Menanyakan pertanyaan yang tepat adalah isi bab-bab dalam buku ini. Berikut adalah pertanyaan yang seharusnya mampu dijawab dan ditanyakan pada saat yang tepat oleh seorang pemikir kritis.

Thursday, November 28, 2019

A (Muslim) Trip to Lanzhou, China

This trip was a conference trip, APSIPA 2019. This year APSIPA conference was held in Lanzhou City, Gansu Province, China.

Departure

I depart from Kansai Airport. Because the flight is in the morning, at 9 am, I stay one night in Kansai AP (first cabin hotel) before departure. A prayer room is available on the 3rd floor. The halal ざ-udon on the second floor is what I always visited when departing from Kansai. For subuh prayer, I can do it in my bed. Although it is very small, we can use it to stand face to qibla. Another choice is to do it in a private area of the bathroom. One of the bathrooms in First Cabin Kansai has a large space (about 3 x 1.5 m outside shower room).

Transit in Beijing (BCIA, Beijing Capital Int'l Airport)

China is complicated (compared to Japan). The security is very strict. You need to be scanned in a dedicated base. No laptop, tablet, phone, coin, liquid more than 100 ml, should be inside the bag. Separate it. Prohibited items such as a knife, cutter, liquid more than 100 ml, should be moved into the suitcase, not as in cabin baggage.

Prepare the arrival statement card (yellow) in advance before entering the immigration post. The staff (police) also asked about my last boarding pass. Once they passed me to enter China, I can look for space to pray (Dhuhur and Ashr) inside the terminal (T3).

There is no dedicated prayer room in T3. I used the most quite waiting space (near a gate) to pray, behind digital signage advertisements. Some peoples see me when I pray. I think it is no problem. Once finished, I go for waiting the time in a space near my gate.

There is free wifi in BCIA (Beijing Capital Intl Airport). To use it, you must scan your passport in a machine to get id and password. Lanzhou airport also provides free wifi. Note that all Google services are blocked in China. A vpn is required beforehand to use Google service.
 

Stay in AirBnB rented room

I rent a room via AirBnB. It is cheaper than a hotel, just JPY 16000 for 5 days with a similar facility to the hotel. However, although that apartment is very close to the venue, it needs a digital key to enter. Luckily, a friend from Thailand arrives earlier. We call him via free wifi in Crown Plaza Hotel to pick up.

First Walking Course

On the second day, I take a walking course along the Yellow River. I used two different bridges to go and back to my hotel. This is my first impression of real life in China. They have such facilities as the futsal field, parks, and pavement along the river. However, urban areas still lack proper facilities. Some road is not asphalted yet. The image below is my first walking course path in the Lanzhou area. The distance of my walk is 4.3 km.

First walking course path