Review Buku: The Manga Guide to Microprocessors

The Manga Guide to Microprocessor sebenarnya bukan buku baru (terbit Agustus 2017), tapi karena Jonathan baru menyelesaikan buku ini jadi akan saya review. Dulu saya mendapatkan ebook buku ini dari salah satu sale di HumbleBundle bersama dengan beberapa buku lain. Seri “The Manga Guide to” ini ada banyak semuanya menjelaskan suatu topik dengan style komik jepang (Manga).

Buku yang menjelaskan mengenai microprocessor ini seharusnya belum cocok untuk usia Jonathan tapi karena dia sudah saya ajari bilangan biner dan gerbang logika (lewat game) jadi buku ini sebagian besar bisa dimengerti.

Buku ini mengajarkan dari mulai topik dasar bilangan biner, gerbang logika, sirkuit latch (flip flop), dan sedikit mengenai CPLD dan FPGA. Topik diteruskan dengan arsitektur komputer secara umum (Register, RAM, interrupt dsb). Assembly juga dibahas tapi hanya sekilas saja, dan terakhir ada pembahasan mengenai microcontroller.

Awalnya saya memberi buku ini adalah karena Jonathan ingin membuat kalkulator di Minecraft. Di Minecraft kita bisa membuat redstone circuit, yaitu mekanisme yang memakai blok tertentu. Kita bisa membuat banyak hal, termasuk juga gerbang logika (AND, OR, NOT, dsb).

Minecraft ini ternyata cukup berguna untuk menjelaskan konsep biner karena semua hal bisa terlihat (visual). Membuat gerbang logika tidak terlalu mudah, tapi masih lebih mudah daripada harus praktik menghubungkan beberapa transistor di dunia nyata.

Dari gerbang logika ini kita bisa membentuk sirkuit half adder, dari half adder kita bisa membuat full adder, dan dari sini kita bisa membuat kalkulator. Tentunya ada bagian lain yang perlu dibuat, ada encoder dari desimal ke binary (10 saklar dari 0 sampai 9 yang masing-masing mengoutputkan nilai biner tertentu), ada sirkuit komputasi, dan ada bagian yang akan melakukan encoding dari binary ke 7 segment. Sekarang ini kalkulator Jonathan belum selesai tapi dia sudah paham apa yang perlu dibuat.

Menurut saya buku ini sangat bagus sebagai suplemen untuk mata kuliah Aristektur Komputer. Minimal jika lulus kuliah aristektur komputer mestinya bisa mengerti isi buku ini. Orang awam yang ingin mengenal arsitektur komputer juga bisa membaca buku ini karena isinya mudah dimengerti dan tidak ada prerequisite untuk membaca buku ini.

Seri Game Professor Layton

Di posting ini saya ingin memperkenalkan seri game Professor Layton yang menurut saya sangat bagus untuk mengajarkan computational thinking. Seri game ini yang awalnya dirilis untuk Nintendo DS ini diinspirasi oleh seri buku puzzle karangan Professor Akira Tago (seri buku karangannya terjual jutaan copy di Jepang sejak 1966). Ada beberapa seri game ini, semuanya adalah puzzle petualangan. Kita bertualang sambil menyelesaikan berbagai puzzle yang ditemui sepanjang perjalanan.

Jenis Puzzle

Sebelum membahas lebih lanjut mengenai gamenya, seperti apa sih isi puzzle di game ini? Ada lebih dari 100 puzzle di setiap game, dan semuanya sangat bervariasi. Sebagian puzzle dikaitkan dengan cerita yang berjalan, sebagian lagi muncul sebagai “hidden puzzle”, dan sebagian lagi muncul karena mereka teringat sesuatu “melihat benda itu mengingatkanku pada puzzle berikut ini”.

Beberapa puzzle adalah puzzle klasik yang mungkin sudah diketahui banyak orang, tapi sedikit lebih menarik karena interaktif, misalnya bagaimana cara menyebrangkan berbagai binatang dengan konstrain tertentu

Puzzle lain memerlukan perhitungan matematika sederhana, seperti soal cerita di pelajaran matematika.

Bahkan ada Puzzle Knight’s Tour yang merupakan persoalan matematika yang menjadi latihan untuk implementasi algoritma. Tapi pembuatnya berbaik hati, tidak memakai ukuran board catur yang lengkap 8×8 (ada 3 puzzle sejenis ini, dimulai dari board 3×4, lalu 5×5, dan terakhir 6×6). 

Ada berbagai puzzle logika sejenis ini 

Ada juga yang sekedar menyusun potongan jigsaw puzzle

Dan masih banyak lagi, beberapa jenis yang lain misalnya:

Sebagian puzzle sifatnya pilihan ganda sehingga bisa ditebak (walau jumah rewardnya akan dikurangi jika tidak langsung menjawab benar). Sebagian lagi berupa input numerik yang lebih sulit ditebak, dan sebagian lain harus benar-benar dikerjakan.

Perhatikan bahwa ada tombol “Hints” di setiap puzzle jadi jika sudah frustrasi atau bingung, kita bisa meminta petunjuk. Kita akan menghabiskan 1 koin untuk tiap hint (koin ini bisa didapatkan secara gratis dalam game). Dan tentunya jika benar-benar stuck, kita bisa mencari jawabannya di Internet.

Tidak semua puzzle harus diselesaikan untuk bisa meneruskan cerita (jadi tidak perlu frustrasi karena tidak bisa menyelesaikan beberapa puzzle), tapi ada jumlah minimum yang perlu diselesaikan untuk melewati tempat tertentu. 

Puzzlenya juga bukan bersifat action, jadi tidak butuh ketangkasan menekan tombol atau berusaha menyelesaikan puzzle sebelum batas waktu tertentu.

Computational Thinking

Sebenarnya seri Professor Layton ini sudah agak lama (versi pertama bahasa Inggris tahun 2008), dan saya sempat berhenti bermain. Alasan kenapa baru posting sekarang, karena belum lama ini Jonathan melihat game yang saya mainkan terakhir di Nintendo DSi dan menyelesaikan Professor Layton and the Specter’s Call. Jonathan meminta saya meneruskan lagi main game ini, sementara Jonathan memainkan seri sebelumnya (Professor Layton and The Lost Future). Sekarang ini Risna juga sedang mulai memainkan game pertama, jadi game ini cocok untuk keluarga.

Ketika melihat puzzle-puzzlenya, ini mengingatkan saya pada berbagai soal latihan computational thinking yang saya lihat di website Bebras. Jadi mungkin game ini bisa berguna untuk memperkenalkan computation thinking. Meskipun game ini sangat terkenal (sampai 2018 terjual 17 juta unit), tapi tidak semua orang mengenal game ini.

Dibandingkan belajar aplikasi Coding, menurut saya puzzle-puzzle yang ada lebih fun. Dan jika ingin dihubungkan ke coding juga bisa. Saya sendiri menganggap beberapa puzzle sebagai tantangan coding dan saya menulis program kecil untuk menyelesaikan puzzle tertentu.

Seperti saya jelaskan di atas, kadang puzzle bisa ditebak tanpa berpikir (untuk kasus pilihan ganda) dan ini kurang bagus. Supaya optimal, anak perlu ditemani dan ditanya bagaimana dia menyelesaikan puzzle tersebut, bagaimana logikanya sampai ke kesimpulan jawaban tertentu.

Game ini tidak perlu waktu lama setiap kali main. Kita bisa menyelesaikan 1-2 puzzle, menyimpan game, dan diteruskan lagi di waktu lain. Jadi seorang anak bisa dicegah dari kecanduan karena bisa diminta berhenti kapanpun.  Gamenya terdiri dari beberapa chapter cerita, dan hanya ketika ada video maka kita tidak bisa menyimpan gamenya (setiap videonya kurang dari 5 menit, dan total seluruh videonya hanya beberapa puluh menit).

Memainkan game

Seri utama game ini dirancang dan diterbitkan kali pertama untuk Nintendo DS (4 game) dan 3DS (saat ini 2 game), tapi saat ini ada beberapa seri Professor Layton yang tersedia juga untuk Android dan iOS. Karena memang dari awal dirancang untuk Nintendo DS, menurut saya game ini lebih nyaman dimainkan di Nintendo DS/3DS. Selain seri utama, ada beberapa spin-off game Layton. Menurut saya sebaiknya mulai dari versi asli pertama jika ingin menikmati kontinuitas ceritanya.

Selain memainkan di hardware Nintendo DS, kita juga bisa memakai emulator di PC (DesMume/NO$GBA), atau di ponsel (Drastic, NDS Emulator, dsb) atau memainkan versi porting di iOS. Saat ini baru game pertama yang dirilis untuk iOS, dan komentarnya adalah: kurang enak dimainkan tanpa stylus di iPhone (sebaiknya dimainkan di iPad).

Saat ini Nintendo merilis beberapa handheld console yang bisa memainkan game Nintendo DS: Nintendo DS Lite, Nintendo DSi, Nintendo 3DS, dan Nintendo 2DS. Masing-masing ada ukuran XL untuk yang ingin memakai layar lebih besar. Secara umum ada 2 jenis game: untuk DS (bisa dimainkan di semua console) dan untuk 3DS (bisa dimainkan di Nintendo 3DS atau 2DS).

Agar legal saya menyarankan untuk membeli game bekas (misalnya dari eBay), jika Anda bisa bahasa Jepang, maka versi Jepang biasanya lebih murah. Jika belum punya Nintendo DS, harga sebuah Console Nintendo DS bekas saat ini sekitar 10-20 USD saja, dan game-gamenya bekasnya bisa dibeli sekitar 10 usd per game (game kurang populer lebih murah dan yang populer lebih mahal dari itu).

Saya tidak menyarankan pembajakan, tapi sekedar memberi informasi saja: semua game di Nintendo DS mudah dicari bajakannya dan bisa dimainkan langsung di hardware dengan flash cart yang harganya murah.  Bahkan untuk Nintendo DSi tidak butuh flash cart, cukup modifikasi firmware. Saya sendiri memakai flashcart untuk membuat aplikasi homebrew sendiri.

Game Nintendo DS sifatnya region free, semua catridge dari semua wilayah bisa dipakai di console manapun. Tapi perlu diperhatikan bahwa Game Nintendo 3DS tidak region free, jadi ketika ingin membeli game khusus 3DS, pastikan regionnya sama dengan region console yang Anda beli.

Jika masih bingung dengan semua penjelasan itu, silakan ditanyakan ke temannya yang gamer dan suka produk Nintendo.

Saat ini saya baru menyelesaikan 3 game dalam seri utama Professor Layton. Berikut ini serinya (angka dalam kurung adalah tahun rilis versi bahasa Inggris): Professor Layton and the Curious Village (2008), Professor Layton and Pandora’s Box (2009), dan Professor Layton and the Lost Future (2010). Game yang sedang saya selesaikan adalah Professor Layton and the Spectre’s Call (2011). Rencana berikutnya saya akan membeli dan memainkan Professor Layton versi 3DS (Professor Layton and the Miracle Mask).

Mengajarkan Computational Thinking dan Coding Pada Anak-Anak

Saya tidak akan menjelaskan panjang lebar apa itu Computational Thinking. Sudah ada banyak materi online, bahkan kursus online dari Google juga ada. Computational Thinking adalah cara berpikir untuk menyelesaikan masalah yang diinspirasi dari cara orang menyelesaikan masalah di ilmu komputer. Computational thinking perlu dipakai untuk membuat program komputer, tapi juga bisa diaplikasikan ke berbagai bidang lain.

Computational thinking bisa dan perlu diajarkan pada orang di berbagai usia, tapi saya hanya akan berfokus pada anak-anak di posting ini.  Mungkin sebagian akan langsung berpikir: anak-anak kok diajari seperti itu, harusnya diajari seni, kreativitas, agama, sopan-santun, dsb. Pencetus istilah computational thinking pernah menyatakan ini:

I FEEL VERY DEEPLY COMMITTED TO THE IDEA that, although rationality isn’t everything, and passion and interests and faith of various sorts count as much–nevertheless, rationality is a force for the good, and the more people that are capable of rational, critical thinking–the better the world will be; the more that have access to knowledge about the rest of the world–the better the world will be.”

–Seymour Papert, Mathematician, Computer Scientist, Educator

Computational thinking menurut saya adalah life skill yang berguna untuk mempermudah hidup. Berbagai pendekatan menyelesaikan masalah dalam computational thinking bisa diaplikasikan dalam kehidupan sehari-hari. Misalnya bagaimana menyusun buku secara terurut, bermain sudoku, bermain catur, merencanakan perjalanan, menyusun jadwal. Bahkan membaca cerita detektif dan misteri akan lebih menyenangkan jika kita memiliki cara berpikir yang logis.

Saat ini ada inisiatif internasional yang bernama Bebras yang memperkenalkan computational thinking kepada pelajar mulai sekitar kelas 3 SD sampai usia SMU. Berbeda dengan olimpiade informatika atau coding challenge yang perlu memprogram, dan olimpiade matematika yang sangat teoretis, tantangan Bebras berada di antara keduanya.

Walaupun saya tidak meminta Jonathan jadi programmer, tapi karena dia melihat saya tiap hari berada di depan komputer, ngoprek segala macam hardware, termasuk membuatkan dia berbagi mainan, dia jadi curious. Jadi pelajaran yang saya berikan pada Jonathan lebih banyak untuk menjawab keingintahuannya. Hal penting bagi saya saat ini adalah: saya tidak ingin memaksakan kemampuan Jonathan dan membebaninya dengan hal yang kompetitif.

Saya memakai layar di kiri, sambil membuka file PDF di layar kanan untuk diketik ulang oleh Jonathan di laptop kecil.

Topik seperti matematika dianggap sulit, tapi sebenarnya bisa dijelaskan pada anak-anak dengan banyak pengalaman sehari-hari. Hal-hal kecil seperti menghitung benda yang kita miliki, menghitung kembalian, dan menghitung waktu bisa diajarkan. Misalnya kita bisa bertanya seperti ini “kira-kira butuh 10 menit untuk pergi ke sana, jadi kita perlu berangkat jam berapa?”. Lanjutkan membaca “Mengajarkan Computational Thinking dan Coding Pada Anak-Anak”

Mengajarkan Basis Bilangan

Salah satu dari materi di pelajaran Language Arts adalah memahami dictionary order (lexicographical order) . Materi ini sangat mudah dimengerti, bahwa AAA muncul sebelum AAB. Beberapa latihan dalam materi ini adalah mempraktikkan mencari kata di kamus dan mengurutkan kata berdasarkan urutan kamus.

Seperti biasa, kadang Jonathan belajar di samping saya yang sedang bekerja di depan komputer. Jadi saya mencoba menguji Jonathan dengan soal sederhana, seperti, jika kita cuma punya 4 huruf dan kita urutkan berdasarkan urutan kamus, maka setelah AAAA, AAAB, AAAC adalah? jawabannya tentunya adalah AAAD. Nah setelah AAAZ berikutnya apa? saya membantu jawab dengan AABA, berikutnya Jonathan sudah tahu bahwa setelah AAZZ berikutnya adalah ABAA. Saya menggunakan Microsoft Word dengan font yang saya perbesar untuk bisa dengan cepat menjelaskan hal seperti ini.

Saya jelaskan juga bahwa sebenarnya cara kita berhitung dalam basis 10 juga seperti itu. Setelah digit terakhir (paling kanan) menjadi 9, maka berikutnya menjadi 0, dan kita menambahkan ke digit sebelumnya. Tadi ada 26 simbol untuk A-Z sedangkan untuk bilangan desimal ada 10 bilangan (0-9). Bagaimana jika kita cuma punya 0 dan 1 (biner). Saya mulai dengan 0000, apa berikutnya? gampang sekali dipahami bahwa ini menjadi 0001. Jonathan perlu berpikir sedikit untuk mengingat bahwa digit “2” tidak ada, jadi 1 kembali menjadi 0, dan digit berikutnya dinaikkan, hasilnya 0010. Berikutnya lagi kita tambah satu lagi menjadi 0011.

Sekarang saya memberi label desimal di sebelah kiri urutannya:

0 0000
1 0001
2 0010
3 0011

Dengan melihat tabel ini bisa dilihat bahwa 3 desimal sama dengan 0011 dalam biner. Saya bisa saja menjelaskan lebih lanjut mengenai cara singkat konversi dari biner ke desimal, tapi karena saya hanya menyisipkan materi di language arts maka tidak saya teruskan.

Sebenarnya masalah berhitung biner ini sudah pernah dibaca Jonathan, salah satunya dari buku Lift-The-Flap Computers and Coding.

Seperti kebanyakan buku, yang diajarkan biasanya lebih ke cara cepat konversi biner ke desimal, dan bukan mengapa cara berhitungnya seperti itu. Lanjutkan membaca “Mengajarkan Basis Bilangan”