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 Videotron advertisement. 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

Saturday, November 16, 2019

Menjadi Logis [5]: Prinsip-prinsip Pemikiran Tidak Logis

Ini adalah ringkasan bab terakhir buku "Being Logical". Bab ke-5 ini berisi prinsip-prinsip pemikiran tidak logis. Ringkasan bab sebelumnya bisa dibaca di sini.

Penalaran yang tidak masuk akal (mis-reasoning), disebut kekeliruan (fallacy), dibagi menjadi dua:
  1. Kekeliruan formal: berkaitan dengan bentuk atau struktur dari argumen.
  2. Kekeliruan informal: selain kekeliruan formal.
Beberapa prinsip yang menyebabkan terjadinya kekeliruan logika adalah sebagai berikut.

1. Menolak anteseden
Prinsip yang digunakan seperti ini.
A ==> B
-A,
Maka, -B

Ini adalah kesimpulan yang salah. Contoh:
Jika Bagus berlari, maka Bagus berpindah tempat.
Bagus tidak berlari.
Maka,  Bagus tidak berpindah tempat.

Tentu saja kesimpulan tersebut salah.

2. Menyetujui konsekuensi
Prinsipnya seperti ini,

A ==> B
B,
Maka, A.

Ini juga salah. Contohnya.
Jika Bagus berlari, maka Bagus berpindah tempat.
Bagus berpindah tempat.
Maka, Bagus berlari.

Kesimpulan yang salah, karena untuk berpindah tempat tidak harus berlari.

3. Nilai tengah yang tidak terdistribusi
Dalam silogisme, kesimpulan selalu universal (terdistribusi) bila syarat-syaratnya terpenuhi, salah satunya: pernyataan tengah (premis yang tidak muncul pada kesimpulan) harus universal. Jika syaratnya tidak terpenuhi. Contohnya sebagai berikut:

Beberapa anggota klub motor adalah adalah mahasiswa.
Bagus adalah anggota klub motor.
Maka, Bagus adalah mahasiswa.

4. Equivocation
Kata ekuivokal adalah kata yang memiliki arti lebih dari satu (homonim).
Bagus suka tahu.
Banyak tahu itu tidak baik.
Maka, Bagus tidak baik.

Kesimpulan yang salah, karena yang dimaksud tahu pada premis mayor adalah makanan.

5. Mengulang pertanyaan
A: Apakan pinus itu?
B: Pohon yang memiliki biji pinus.
A: Apakah biji pinus itu?
B: Biji yang ada di pohon pinus

6. Asumsi yang salah

Wednesday, November 13, 2019

"Logika dan Percakapan"-nya Grice beserta Kritiknya

Herbert Paul Grice (13 March 1913 – 28 August 1988) merupakan filsuf bahasa Inggris yang banyak bekerja di bidang implikatur dan semantik. Tulisan ini membahas tulisannya tentang logika dan percakapan (logics and conversation) beserta kritik terhadap tulisan tersebut.

Logika dan Percakapan

"Berkata" berhubungan erat dengan apa yang diucapkan, tidak termasuk hal-hal lain yang ingin diutarakan pembicara diluar apa yang diucapkan (kecuali hanya apa yang dikatakannya). Berkata adalah ungkapan semantik (makna dari kata).

Hal ini berbeda dengan membayangkan, menyarankan, menyampaikan, mengindikasikan, dll. Hal-hal tersebut di luar apa yang dikatakan. Berimplikasi (implicating) adalah ungkapan pragmatik (kesesuaian antara apa yang dikatakan dengan apa yang dimaksudkan).

Grice mengusulkan teori implikatur, salah satu aspek kajian pragmatik yang perhatian utamanya adalah mempelajari ‘maksud suatu ucapan’ sesuai dengan konteksnya. Implikatur cakapan dipakai untuk menerangkan makna implisit dibalik “apa yang diucapkan atau dituliskan” sebagai “sesuatu yang diimplikasikan” (implicatum: what is implied)  [3].

Implikatur: Konvensi vs Cakapan

Implikatur, berdasarkan ragamnya, oleh Grice dibagi menjadi dua: implikatur konvensi dan implikatur cakapan. Perhatikan kalimat dalam bahasa Inggris berikut.

“He’s an Englishman, so he’s brave.”

Pada kalimat di atas, kata 'brave' merupakan implikasi dari 'Englishman', tanpa disebutkan secara langsung. Bandingkan dengan contoh.

“She is poor, but she is honest.”

Kata 'honest', pada kalimat diatas merupakan implikasi kebalikan dari kata 'poor'. Namun disini perlu kata 'but', untuk menerangkan pertentangan 'poor' dengan 'honest' untuk membawakan implicatum. Ini adalah contoh implikatur cakapan (conversational implicature) yang mana merupakan bagian dari semantik.

Prinsip Kooperatif

Monday, November 11, 2019

Menjadi Logis [4]; Sumber pemikiran tidak logis

Ini adalah kelanjutan tulisan sebelumnya, sebuah ringkasan dari buku "Being Logical", Bab ke-4: the source of illogical thinking.

Kesalahan dalam penalaran bisa karena ketidaksengajaan (kecelakaan), atau akibat dari ketidakhatian. Beberapa perilaku dan pandangan berikut perlu dihindari karena bisa mengakibatkan pemikiran yang tidak logis.

1. Skeptis
Sikap skeptis (meragukan) perlu, namun selalu skeptis akan menuntun pada kekeliruan. Contoh skeptis yang diperlukan: Jika datanya meragukan, kita boleh meragukan kesimpulannya. Namun jika kita selalu meragukan argumen orang lain (misal yang tidak kita sukai), akan menjadikan hal tersebut non-logis.

2. Agnostik evasif
Agnostik tidak hanya dalam beragama, tetapi juga dalam berpikir. Orang yang atheis secara tegas tidak mengakui adanya tuhan. Orang agnostik "tidak tahu", apakah tuhan itu ada atau tidak (Setelah mereka meninggal mereka baru tahu, namun itu (menurut saya) sudah telat). Pemikiran yang agnostik mengelak adanya tuhan, namun juga menampik ketidakadaan tuhan, mereka hanya "mengabaikan" sebagai sesuatu yang benar. Bentuk pengabaian ini merupakan akibat kemalasan (untuk mencari tahu).

3. Sinis dan optimis naif
Sikap sinis adalah memberikan penilaian negatif tanpa bukti yang cukup. Sikap naif optimis sebaliknya memberikan penilaian positif tanpa bukti yang cukup. Keduanya tidak logis dan bentuk dari prasangka (prejudice). Prasangka tidak logis karena memberikan kesimpulan sebelum fakta/bukti/premisnya kuat.

Friday, November 08, 2019

Ergonomic touch typing - finger placement revised

Introduction

If you work with a computer, having a typing skill is a must. You may slow at typing and you think that is not a problem. That is right. But by having precision and fast typing, we can increase our work productivity. It means we use less time to finish the same amount of workload than unproductive work. This article is my sharing of using appropriate finger placement to increase the accuracy and speed of my typing. Please note, accuracy is come first before speed. That is my ultimate goal. As a metric, I used accuracy (%) and word per minute (wpm) to measure my typing accuracy and speed. I evaluate this performance in a month using the keybr.com tool.

Rationale

Every people has a different length and size of fingers. Making a standard layout for finger placement on a computer keyboard (touch typing) may work for some people, but also may not work for other people. For example, the following two images are photographs of my fingers. As you can see, my middle fingers longer than any other fingers with a significant factor; 1 cm from ring finger and 1.5 cm from the index finger.
Fig 1. My fingers on MBP 2012 keyboard
Here the more details.

Thursday, October 31, 2019

Menjadi Logis [3]: Argumen: Bahasa Logika [2]

Tulisan ini adalah kelanjutan tulisan sebelumnya: Menjadi Logis [3]: Argumen: Bahasa Logika [1]. Karena isi dari Bab 3 buku "Being Logical" cukup panjang, saya pecah ringkasannya menjadi dua artikel, agar mudah dibaca dan dipahami.

Saya mulai penomoran itemnya dari 11, melanjutkan tulisan sebelumnya 1-10.
11. Kebenaran Premis
Dalam argumen silogisme ada kesesuaian antara konten dan struktur. Konten akan benar jika premisnya benar. Jika premisnya salah, maka secara konsisten kesimpulannya menjadi salah. Contohnya adalah berikut.

Setiap anjing memiliki tiga kepala.
Corolla adalah anjing.
Corolla memiliki tiga kepala.

Meski secara struktur benar, namun karena premisnya salah, kesimpulannya menjadi salah. Dapat dikatakan, jika inputnya sampah, maka outputnya juga sampah (garbage in, garbage out).

12. Relevansi Premis
Meski premis harus benar, namun itu saja tidak cukup. Kebenaran premis harus relevan dan menjangkau kesimpulan. Contohnya adalah berikut.

Pak XXX merupakan purnawirawan jenderal TNI AD.
Beliau sekarang seorang wirausahawan yang sukses.
Karenanya, beliau seharusnya terpilih menjadi presiden.

Pada pernyataan diatas, premisnya benar (kalimat satu dan dua), namun kurang relevan dengan kesimpulan yang diambil (kalimat 3). Bandingkan dengan argumen berikut.

Pak YYY adalah wirausahawan sukses.
Beliau terpilih menjadi walikota ZZZ dan gubernur AAA selama dua periode.
Melihat kecakapannya memimpin kota dan provinsi, maka beliau layak menjadi presiden.

Argumen kedua ini lebih logis karena ada relevansi antara premis dan kesimpulan.

13. Pernyataan Fakta, Pernyataan Nilai
Pernyataan bisa berupa fakta atau berupa nilai. Contohnya berikut,

Musisi adalah mereka yang piawai memainkan alat musik.
Bagus adalah musisi.
Kesimpulan: Bagus piawai memainkan alat musik.

Bandingkan dengan pernyataan berupa nilai berikut.

Musisi adalah manusia yang sangat unggul.
Bagus adalah musisi.
Kesimpulan: Bagus adalah manusia yang sangat unggul.

Kata unggul sebagai nilai pada argumen di atas samar (vague). Premis dengan pernyataan nilai tidak bisa digunakan secara presisi seperti pernyataan nilai. Untuk mengetes validitas pernyataan nilai, premis tersebut diuji dengan fakta lainnya yang ada, bila cocok maka bisa diterima.

Tuesday, October 29, 2019

Menjadi Logis [3]: Argumen: Bahasa Logika [1]

Tulisan berikut merupakan review Bab ke-3 buku "Being Logical". Review dari bab sebelumnya ada di sini dan di sini. Bab 3 berisi tentang argumen: bahasa logika. Ekspresi konkrit dari penalaran logika adalah argumen. Untuk membuat argumen yang kuat dan efektif, beberapa hal-hal berikut perlu diperhatikan.

1. Membangun Argumen
Perpindahan ke satu ide dari ide yang lain yang telah diketahui kebenarannya, dan menjadikan ide kedua menjadi benar, merupakan inti argumen. Argumen terdiri atas pernyataan-pernyataan, dan pernyataan-pernyataan itulah yang menyampaikan ide dimana perpindahan inferensial (bersifat dapat disimpulkan) terkonsentrasi.

Argumen tersusun atas dua: pernyataan premis dan pernyataan simpulan. Premis adalah pernyataan pendukung. Pernyataan ini merupakan awal argumen dimana kebenaran pernyataan tersebut sudah diketahui. Simpulan adalah pernyataan yang didukung. Premis bisa bermacam-macam, namun simpulan yang baik seharusnya hanya berisi satu hal. Contoh argumen sederhana yang terdiri atas satu pernyataan premis dan satu simpulan.
Karena tidak cocok dengan kepala kantor cabang di Surabaya, Pak Budi dipindahkan ke kantor cabang di Bandung.
Kalimat pertama merupakan premis; alasan, yang dianggap benar. Kalimat kedua adalah simpulan yang menjadi benar karena premisnya benar. Premis adalah dasar dari argumen, dan cakupannya harus bisa mampu menjangkau apa yang disimpulkan.

2. Perpindahan dari universal ke partikular
Perpindahan dari pernyataan universal bisa dilakukan ke pernyataan partikular. Perhatikan contoh berikut.
(i) Semua anjing adalah karnivora. (ii) Beberapa anjing adalah karnivora. 
Karena pernyataan universal (i) adalah benar, maka pernyataan partikular (ii) juga benar. Logika dari prinsip ini cukup sederhana, jika semua anggota dari satu kelas adalah benar, maka sebagiannya juga benar.

3. Perpindahan dari partikular ke universal
Berbeda dengan kaidah sebelumnya, kita tidak bisa secara asa menggeneralisasi dari pernyataan partikular ke pernyataan universal. Perhatikan contoh berikut.
(i) Beberapa wanita adalah ibu. (ii) Semua wanita adalah ibu. 
Pernyataan partikular (i) tentu saja benar, namun tidak dengan pernyataan universal (ii). Untuk berpindah dari pernyataan partikular ke universal dibutuhkan premis yang kuat dan runtut. Perhatikan contoh berikut.
Setiap orang China yang saya temui di sana bermata sipit. Penduduk Lanzhou 99% bermata sipit berdasarkan data sensus tahun 2010. Di beberapa propinsi lain, persentase penduduk bermata sipit juga mendekati 100%. Bisa disimpulkan, sebelum terjadinya perkawinan antar ras, semua penduduk China bermata sipit.

Sunday, October 27, 2019

Menjadi logis [2]: Prinsip Dasar Logika

Ini adalah kelanjutan tulisan kemarin, Menjadi Logis [1]: Menyiapkan Akal untuk Logika. Setelah kita membiasakan hal-hal untuk menerima logika, langkah selanjutnya adalah mengasimilasikan prinsip-prinsip dasar logika agar menjadi kebiasaan kita. Berikut prinsip-prinsip dasar logika tersebut.

1. Prinsip-prinsip utama
Sains adalah kumpulan pengetahuan terstruktur yang dibangun dari prinsip-prinsip utama. Logika, sebagai sains, juga demikian, dibangun atas prinsip-prinsip utama. Ada empat prinsip utama logika sebagai berikut:
  1. Prinsip identitas: sesuatu adalah apa adanya.
  2. Prinsip pengecualian nilai tengah: antara ada dan tidak ada tidak ada nilai tengah.
  3. Prinsip alasan yang cukup: ada alasan yang cukup untuk semuanya.
  4. Prinsip kontradiksi: tidak mungkin sesuatu menjadi dan tidak menjadi pada satu waktu.
2. Daerah abu-abu, daerah yang dibuat abu-abu
Daerah abu-abu adalah daerah dimana kebenaran tidak secara jelas dapat didirikan/diasaskan. Dalam hidup, banyak daerah abu-abu, namun jangan terlalu banyak menggunakannya. Abu-abu, sebagai warna, ada karena perbedaannya sebagai alternatif warna putih dan hitam. Jika dalam hidup kita berada pada situasi dimana tidak ada alternatif yang jelas, secara objektif, bukan berarti tidak ada alternatif yang jelas. Tidak adanya alternatif bukan karena tidak ada, namun karena kita tidak bisa melihatnya. Daerah yang dibuat abu-abut ada karena kita tidak bisa melihat daerah abu-abu (sebenarnya) disebabkan ketidakpastian kita atau kurangnya pengalaman.

Sebagai contoh, anda berada suatu masalah, menentukan benar atau salah. Anda tidak memiliki pengalaman kalau masalah tersebut benar, namun anda punya pengalaman kalau masalah itu salah. Prinsipnya: negatif hanya dapat dikenali sebagai negatif, "secara tidak pasti", karena positif telah diketahui. Disini ada kemungkinan kepastian. Jika pasti itu mungkin, maka kepastian itu mungkin terjadi, meski tidak pasti.

Menjadi logis [1]: Menyiapkan akal untuk logika

Ini adalah resume buku "Being Logical: A guide to good thinking", sekaligus referensi utama kuliah "E413: Scietific Discussion 2" di JAIST. Tulisan ini adalah resume Bab 1 buku tersebut. Judul babnya adalah: Preparing for the Mind.

Ada tiga materi utama kuliah ini:
1. Logika dan penalaran
2. Argumentasi
3. Diskusi ilmiah (lisan dan tulisan)

Untuk menjadi logis kita perlu menyiapkan sikap, pandangan dan prosedur praktis agar logika bisa masuk, diterima maupun keluar dari akal kita. Hal-hal tersebut, dibahas dalam Bab 1 buku "Being Logical", adalah sebagai berikut.

1. Memberi atensi
Menjadi atensif adalah mutlak diperlukan untuk menerima logika. Banyak kesalahpahaman karena kita tidak menaruh perhatian terhadap apa yang kita dengarkan. Mendengar (hear) saja tidak cukup, harus mendengar secara seksama (listen). Fokus kita bisa dilatih. Dengan melatih fokus kita pada hal-hal kecil, kita akan terhindar dari permasalahan besar.

2. Mendapatkan fakta secara langsung
Fakta bisa didapatkan secara langsung untuk objek riil (benda, tempat, dll), dan tidak langsung untuk suatu kejadian. Contoh: anda mendengar bahwa ada diskon di Matahari. Anda datang ke Matahari dan ternyata memang ada diskon. Bagaimana jika kita tidak bisa mendatanginya langsung. Contoh: Presiden Jokowi menang pemilu 2019. Dengan mendatangi website KPU, kita bisa mengkonfirmasi bahwa fakta itu benar adanya. Jika kita tidak bisa membuktikannya langsung (dengan mendatangi), maka kita perlu mengeceknya secara tidak langsung, dengan perangkat lain, misalnya website pada contoh di atas.

3. Ide dan objek dari ide
Ide dan objek dari ide berbeda. Suatu ide harus dapat direpresentasikan menjadi objek. Contoh kita punya ide mempercepat suatu proses komputasi dengan mem-by pass prosesnya. Ide tersebut direpresentasikan dalam bahasa pemrograman (objek dari ide). Cara terbaik untuk mengklarifikasi ide (apakah berjalan atau tidak) adalah dengan melihat objeknya, berhasil atau tidak.

4. Memperhatikan asal ide
Kita pada dasarnya yakin bahwa ide dari akal kita. Murni dari akal kita? Tidak. Lingkungan berpengaruh. Ide kita muncul karena lingkungan, tempat, waktu dan latar belakang lainnya. Jika gagal menghubungkan ide kita dengan asalnya (ide) secara sistematis, maka ide tersebut menjadi unreliable, tidak terpercaya.

Sunday, September 22, 2019

Banyak Tahu itu Tidak Baik

Pada suatu jamuan makan malam (sekitar akhir 2017) setelah konferensi, saya bercakap-cakap dengan orang Jepang. Beliau bertanya tentang riset saya, dan saya menceritakannya. Saya balik bertanya, untuk bidang "ini", dimana yang terbaik di Jepangnya ya? Sambil menyebutkan nama-nama sensei (professor) yang saya ketahui di bidang tersebut. Dia menjawabnya, sambil menimpali: "Kamu banyak tahu ya...".

Di situlah tersadar, banyak tahu itu tidak baik. Orang Jepang, hanya mengurusi yang menjadi urusannya. Mereka hanya mengetahui apa yang digelutinya. Saya perhatikan teman-teman saya orang Jepang, tidak ada satupun yang mentweet tentang politik, pun urusan lainnya. Bisa jadi, nama menteri nya sendiri pun mereka tidak hafal. Bahkan saya pernah bercakap dengan orang Jepang yang nama kaisarnya sendiripun dia tidak ingat.

Kemudian saya mencari (googling) dengan kata kunci: "Know everything is bad", dan menemukan artikel cukup bagus di link ini:
http://davidsearson.com/2015/11/14/why-knowing-everything-is-a-bad-idea/

Di situ dijelaskan juga, banyak tahu itu merupakan ide yang buruk. Kenapa ide yang buruk? Karena tidak ada artinya, tidak ada maknanya (untuk masa depan). Contoh kasus saya diatas, kalaupun saya tahu nama-nama professor di bidang saya tersebut, apa untungnya buat saya? Untuk mencari tempat postdoc? untuk mencari kerjaan/lowongan? Kalau dicari-cari, pembenaran selalu ada. Dalam link artikel bahasa inggris tersebut, sebenarnya bukan pengetahuan yang lebih penting, tapi hikmah (untuk merencanakan masa depan). Jadi urutannya adalah,

Dari diagram alir diatas, yang kita butuhkan adalah tapis, atau filter. Kita menapis banyak (big) data menjadi pengetahuan, dan menggunakannya untuk merencanakan masa depan menjadi hikmah. Jadi kalau ada kebingungan ketika mengambil sebuah keputusan karena banyaknya pilihan atau informasi, sesungguhnya bukan kebanyakan informasi yang salah, tapi kegagalan filter kita untuk menyaring informasi tersebut.

Bukan karena kebanyakan informasi, tapi karena kegagalan filter.


Implementasi

Lalu bagaimana mengimplementasikan "filter" untuk menapis banyaknya informasi/pengetahuan disekitar kita?
Tombol "unfollow", "unsubscribe", "I don't like this (ads)", adalah beberapa yang saya sukai. Bayangkan kalau kita follow/subscribe 1000 akun (youtube, twitter, fb, dll), dan setiap akun memposting 1 tweet/video/status dalam setiap hari, maka dalam sehari kita menerima 1000 posting, diluar iklan. Jika satu jam dari tiap akun tersebut memposting/share video/status/twitter baru, maka kita akan menerima informasi sejumlah:

24000

Setiap jamnya, diluar iklan.

Aturan saya dalam memfollow/subscribe akun cukup sederhana: "Follow/Subscribe" yang bermanfaat, lainnya: abaikan. Sekalipun itu akun orang terkenal, orang berpengaruh ataupun pejabat. Masa depan, kita tentukan sendiri, dari informasi yang kita dapatkan, dan kita filter.

Terakhir, less is more, dan diam itu emas (tapi sedikit orang yang bisa melakukannya). Sedikit tahu akan menjadikan kita ahli dan pro di bidang kita masing-masing.

Sunday, September 15, 2019

Memahami size/shape Numpy array

Numpy mirip dengan Matlab, jika kita menguasai betuk matrik yang kita proses, maka akan mudah memahami proses komputasinya.

Langsung saja, perhatikan gambar berikut.


Sehingga, bentuk matriks dapat dibagi sebagai berikut:

  1. 1D array, contohnya matrik berbentuk (3), (3, ), (4,).
  2. 2D array, contohnya matrik berbentuk (3, 1), (2,3), (3,3).
  3. 3D array, contohnya matrik berbentuk (3, 1, 1), (3, 2, 3), (4,3,2).
  4. ND array, contohnya matrik berukuran (n, 4, 3, 2), (n, n, 4, 3, 2).
Beberapa perintah penting:
- nparray.ndim: untuk mengetahui banyaknya dimensi dari variabel nparray (1D, 2D, dll).
- npraray.shape: untuk mengetahui bentuk/shape dari variabel nparray (misal (2,3)).
- nparray.size : untuk mengetahui total elemen matriks.
- len(nparray): untuk mengetahui panjang (baris/axis0) dari nparray, sama dengan nparray.shape[0].


Perhatikan screen cast berikut untuk implementasinya dengan Python.

Friday, September 13, 2019

Menghapus data NaN pada Pandas DataFrame

Pada data yang kita gunakan, umumnya ada data yang tidak ada, alias kosong, alias null, atau None, atau umum ditandai dengan NaN pada Python.

Untuk menghapus data NaN, beserta baris pada data nan tersebut perintah dasarnya adalah,

df.dropna()

dimana "df" adalah pandas dataframe. By default, perintah di atas akan menghapus baris yang mana ada data NaN. Jadi yang dihapus adalah barisnya, axis=0. Untuk menghapus kolom yang berisi Nan, gunakan argumen `axis=1`.

df.dropna(axis=1)

Jika kita syaratkan, baris yang dihapus adalah baris yang semuanya berisi nan, tambahkan argumen "how='all'". Sehingga perintahnya menjadi

df.dropna(axis=0, how='all')  # untuk menghapus baris jika semua adalanya nan
df.dropna(axis=1, how='all')   # untuk menghapus kolom jika semua isinya adalah nan

Jadi by default, perintah df.dropna() sama dengan df.dropna(axis=0, how='any').
Silakan lihat screencast di bawah ini untuk prakteknya.

Monday, September 09, 2019

Beberapa shortcut penting Byobu

Saya menggunakan "ssh" untuk mengakses desktop, dimana hampir semua proses komputasi saya lakukan di PC tersebut, bukan di laptop. Keuntungannya, selama saya bisa konek ke jaringan kampus (apato, perpus, dll) saya tetap bisa mengakses desktop, menjalankan simulasi, merubah variabel, dll. Jika berada diluar kampus, saya menggunakan TeamViewer. Untuk memudahkan menggunakan terminal dengan ssh, saya menggunakan perangkat "byobu", sebuah utilitas yang dibuat untuk menjembatani tmux atau screen, perangkat lain untuk memudahkan menggunakan terminal di Linux yang "membisakan" penggunaan terminal dalam beberapa sesi, beberapa jendela, dan menutupnya tanpa harus menghentikan proses yang sedang berjalan (ini penting ketika mengeksekusi perintah di terminal).

Berikut beberapa shortcut penting ketika menggunakan byobu via ssh:

  1. Ctrl A, D : keluar dari ssh tanpa menghentikan proses (=F6)
  2. F2: membuat jendela baru
  3. Alt + Panah Kanan/Kiri: berpindah jendela
  4. Ctrl + F6: keluar dari jendela, split
  5. Fn + F7: enable scroll
  6. Ctrl + C: keluar (dari enable scroll)
  7. Alt + F6: menghentikan ssh dari komputer lain kecuali yang dipakai
  8. F9: menampilkan help (gunakan tab untuk berpindah menu, =Shift+F1)
  9. ketik 'exit': keluar dari sesi

Beberapa shortcut lainnya seperti "Shift+F2" (membagi jendela secara horizontal), "Ctrl + F2" (membagi jendela secara vertikal), tidak saya masukkan karena saya jarang membagi jendela terminal menjadi beberapa bagian (kecuali terpaksa). Selain shortcut di atas saya menggunakan perintah berikut:

byobu-enable: membisakan byobu disetiap koneksi ssh
byobu-disable-prompt: agar prompt lebih singkat (set di bashrc)

Berikut screenshot byobu saya ketika mengetik tulisan ini.


n.b: 
- Byobu tidak terinstall by default pada Ubuntu maupun OS lainnya, untuk menginstall byobu pada turunan debian, gunakan `sudo apt-get install byobu`.

Friday, August 23, 2019

Ketika Laptop Tersiram Air

Seminggu yang lalu laptop saya tersiram air (putih). Awalnya saya menganggap sepele, namun ternyata sangat serius. Efek paling parah: laptop mati total. Efek paling tidak membahayakan: laptop anda bisa berjalan seperti semula. Nah, pertanyaannya: Apa langkah-langkah yang harus segera diambil ketika laptop tersiram air? Berikut tindakan preventif untuk mencegah kerusakan fatal ketika laptop tersiram air.

Daleman laptop saya, MBP 2012, yang tersiram air, masih ada sisa-sisa tetesan air di dalamnya.

1. Segera matikan, cabut kabel power, tahan (hold) power button.
Meski ada air diatas keyboard dan mungkin menghalangi anda untuk mematikan komputer, tetap matikan laptop secara paksa. Cabut kabel charger, tahan tombol power. Semua komputer/laptop bisa dimatikan dengan cara ini.

2. Angin-anginkan dengan posisi terbalik.
Saya mempraktekkan hal tersebut kurang lebih 8 jam sejak laptop saya tersiram air. Letakkan laptop pada posisi "tenda pramuka", dan pasang kipas di bawahnya menghadap ke atas.
Posisi laptop ketika diangin-anginkan, tambahkan kipas angin di bawah laptop tsb (sumber gambar: Wikihow, CC)

3. Buka casing laptop, bersihkan.
Setelah 8 jam saya angin-anginkan, saya coba buka penutup belakang laptop saya. Hasilnya: ada banyak tetesan air di motherboard dan beberapa komponen lainnya. Saya bersihkan sisa-sisa air tersebut, kemudian saya pasang lagi.
Daleman MBP setelah saya lepas motherboard, HDD, CD drive, dll. Tampak: keyboard.

4. Cabut battery, dan komponen-komponen lainnya.
Karena laptop saya memiliki battery di dalam (MBP 2012), untuk mencabut battery saya harus membuka casingnya.

5. Diamkan, angin-anginkan lagi, semakin lama semakin baik.
Ini adalah langkah dimana saya tidak sabar. Ketika selesai saya bersihkan, laptop saya nyalakan. Awalnya saya senang. Kemudian saya matikan, dan tidak bisa nyala lagi! saya coba buka lagi, lepas battery dan nyalakan lagi. Bisa! Namun satu komponen rusak total: Keyboard. Kemungkinan terjadi konslet pada komponen tersebut saat saya menyalakan ulang pertama kalinya sejak tersiram air, karena masih ada sisa-sisa air.  Idealnya, waktu minimum untuk untuk menunggu sebelum kembali menyalakan laptop (menurut saya) adalah 24 jam.

Ini adalah pengalaman saya kesekian kalinya "menyiram" laptop, seingat saya tiga kali. Dan pada ketiganya saya sama-sama harus kehilangan keyboard. Komponen yang relatif lebih murah daripada komponen lainnya. Saya beli keyboard MBP 2012 (model A1278) di AliExpress seharga 350 ribu. Sebelumnya, hal yang sama terjadi pada Lenovo G580 dan e-Machine D725 saya, keduanya harga keyboardnya lebih murah. Pada kasus lain, beberapa komponen seperti battery dan motherboard harus diganti karena tersiram air (konslet).

Untuk langkah lebih lengkap, bisa merujuk ke WikiHow.

Saturday, August 17, 2019

Blogger sebagai media sosial

Saya jenuh dengan media sosial. Setelah Google menutup Google Plusnya, otomatis hanya Twitter media sosial yang banyak saya gunakan. Masalahnya, twitter tidak searchable secara mudah. Padahal banyak yang saya share di media itu saya tujukan untuk saya sendiri. Tentunya kemudahan mencari apa yg saya share, like, dan komen adalah syarat mutlak. Selain Twitter, saya pernah menggunakan Facebook, wordpress dan Tumblr.

Blogger sebagai media sosial

Saya punya ide untuk menggunakan blogger atau blogspot sebagai media sosial saya. Alasannya sederhana, media itulah yang lebih dulu saya kenal dan banyak tulisan saya yang dapat dicari dengan mudah disitu. Setidaknya ada dua manfaat penting dengan menggunakan blog sebagai media sosial. Berikut deskripsi singkatnya.


Membiasakan menulis

Sejak awal tahun ini saya berniat menulis minimal satu artikel di blog saya ini. Nyatanya, bulan saya saya tidak menulis satu artikel pun. Menulis itu memang tidak mudah, tapi juga tidak susah. Perlu membiasakan diri untuk melakukannya. Untuk membiasakan menulis perlu media, dan blog saya pikir merupakan media yang paling efektif. Bandingkan dengan Twitter yang dibatasi 14 karakter atau Facebook yang menakutkan untuk dibilang riya'. Untuk menulispun, bukan "membiasakan menulis", juga tidak mudah. Ada penghalang besar yang harus dirobohkan agar bisa menulis, baca selengkapnya di sini: Merobohkan penghalan dalam "menulis". Orang yang tidak biasa menulis akan terlihat dari tulisannya yang amburadul, susah dibaca dan dimengerti. Sebaliknya, orang yang biasa menulis biasanya tulisannya terstruktur dan mudah difahami.

Sunday, June 30, 2019

Mengecek grammar dan spellchek bahasa inggris file Latex lewat Terminal

Judul tulisan ini panjang, tapi isinya tidak sepanjang judulnya.

Sebagai seorang mahasiswa, saya dituntut untuk mempubikasikan makalah (karya tulis) saya pada sebuah seminar, atau konferensi bahasa kerennya. Publikasi tersebut merupakan syarat wajib. Agar bisa lulus setidaknya saya harus publikasi pada dua konferensi dan dua jurnal, itu harapan (dan mungkin juga syarat) dari profesor saya di sini. Karena level bahasa Inggris saya masih pada tahap belajar, dan terlalu mahal untuk melanggan Grammarly Pro, saya menggunakan tools gratis untuk mengecek grammar tulisan saya. Perkakas tersebut namanya textidote, bisa diunduh di sini.

Perkakas yang dibutuhkan (saya gunakan):
  • Textidote
  • Gedit (dengan embedded terminal)
Berikut tampilan screenshot gedit saya sebelum mengeksekusi textidote pada sebuah fail latex.

Gedit dengan embedded terminal, textidote siap mengeksekusi (check grammar dan spell check) file latex di atasnya.

Instalasi


Thursday, June 20, 2019

Tentang layer TimeDistributed pada Keras...

TimeDistributed merupakan salah satu (wrapper) layer pada keras yang berfungsi untuk membagi weight pada slice temporal pada data 3D. Susah difahami? Perhatikan contoh berikut.

Saya punya data X. Ukurannya (32, 10, 16), seperti contoh pada dokumentasi Keras.

x = np.random.random(size=(32, 10, 16)

Artinya, saya punya 32 data (sample). Setiap sample berisi data (10, 16): 10 baris dan 16 kolom. Ketika saya mengaplikasikan suatu layer (katakanlah, dan paling umum: Dense). Agar bobot dari satu layer tersebut merata pada setiap elemen maka perlu kita gunakan timedistributed layer ini.

Perhatikan contoh berikut,
model0 = Sequential()
model0.add(Dense(8, input_shape=(10, 16)))
model0.summary()
Hasilnya adalah sebagai berikut,
---
Model: "sequential_6"
_________________________________________________________________
Layer (type)    Output Shape    Param # 
=================================================================
time_distributed_1 (TimeDist (None, 10, 8)    136 
=================================================================
Total params: 136
Trainable params: 136
Non-trainable params: 0
Bedakan dengan ini,
model1 = Sequential()
model1.add(Dense(8, input_shape=(10, 16)))
model1.summary()
Hasilnya,
---
Model: "sequential_5"
_________________________________________________________________
Layer (type)  Shape  Param # 
=================================================================
dense_3 (Dense)    (None, 10, 8)    136 
=================================================================
Total params: 136
Trainable params: 136
Apa perbedaannya? Tidak ada. Saya juga bingung. Mari kita cari contoh lain, dari machinelearningmastery.

Wednesday, June 19, 2019

Implementasi Pengenalan Emosi dari Sinyal Wicara Berbasis Deep Learning dengan Keras


Tulisan ini agak panjang, membahas implementasi pengenalan emosi dari sinyal wicara dengan teknik deep learning. Perkakas yang akan kita pakai adalah Keras. Kode python yang dipakai sebenarnya bukan dari saya, namun saya modifikasi dari [1] dan [2]. Baiklah, mari kita mulai.

Ide

Ide dasar penelitian di bidang speech emotion recognition (pengenalan emosi dari sinyal wicara) adalah bahwa sinyal wicara mengandung informasi emosi dari pembicara. Contoh sederhana, suara orang marah akan sangat berbeda dengan suara orang sedih dan senang. Dengan mengenali (pola) suara orang marah, senang, sedih, dll, kita akan bisa mengenali emosi seseorang dari suaranya.  Berikut ilustrasi pengenalan emosi dari penelepon.
Pengenalan emosi penelepon secara otomatis oleh Artificial Intelligence (AI)
Sumber:https://medium.com/@alitech_2017/voice-based-emotion-recognition-framework-for-films-and-tv-programs-2a6abbb77242


Diagram Alir Sistem

Secara umum, sistem pengenalan emosi dari sinyal wicara terdiri dari dua blok utama (selain input dan output):
  1. Ekstraksi Fitur
  2. Klasifikasi
Kode yang kita buat pun juga disimpan dalam dua blok tersebut: save_feature.py dan ser_ravdess.py. Input system adalah speech dataset, dalam hal ini kita pakai dataset RAVDESS [3]. Output yang kita ingin kita capai adalah kategori emosi secara diskrit (01 = neutral, 02 = calm, 03 = happy, 04 = sad, 05 = angry, 06 = fearful, 07 = disgust, 08 = surprised).

Diagram blok pengenalan emosi dari sinyal wicara

Dataset

Latest posts

Related Posts Plugin for WordPress, Blogger...
Related Posts Plugin for WordPress, Blogger...