Kalau pembantu harus punya 2, sebagai Ibu Rumahtangga harus bisa semua sendiri

Ini tulisan selingan, minggu kemarin ini Eyang datang dan jadi banyak ngobrol dengan Eyang selain sambil masak dan cucipiring, makanya jadi ga sempet nulis ataupun baca buku. Pekerjaan ibu rumahtangga itu kayaknya aja gak ngapa-ngapain, kayaknya aja ga stress ga mikirin klien atau deadline, tapi sebenernya kalau diliat lagi sejak pagi ada deadline buat bangun siapin makan 3 kali sehari, mikirin menu makan apa, mikirin hal-hal kecil yang sepertinya saking rutinnya jadi beban karena bosan.

Biasanya habis lebaran begini topik paling populer adalah mbak yang ga balik lagi, dan kebanyakan orang bakal sibuk nyari pengganti. Saya jadi teringat beberapa waktu lalu di grup ibu-ibu ada yang mencari seorang mbak untuk urus anak, bersihin rumah dan masak. Komentar yang masuk dari ibu-ibu lainnya adalah: kalau kayak gitu harus cari 2, kasian mbaknya kalau harus lakukan semua. Alasannya masuk akal, katanya supaya anaknya lebih terperhatikan sewaktu mbaknya kerjain bebersih dan urusan domestik lainnya.

Ngajakin Joshua baca buku supaya mamanya bisa cuci piring

Faktanya nyari pembantu 1 aja susah, lah ini disuruh cari 2. Terus komentar lainnya sih bilang ya bisa aja cari 1 doang tapi ibunya harus ikut bantuin juga. Saya tercenung dengan komentar yang ada, karena sebagai ibu yang ga pergi ngantor yang kenal banyak ibu tidak bekerja lainnya di kota ini, saya bisa liat sebagai Ibu kami harus bisa lakukan semuamya, sambil urus rumah, urus cucian, urus anak dan urus diri sendiri tentunya. Makanan ga terhidang dengan sendirinya, walaupun di sini bisa praktis bisa beli dengan harga yang ga terlalu mahal, tapi mikirin menu makan apa berikutnya kadang bikin pusing, apalagi kalau tiap orang punya selera berbeda. Untuk makan di luar lebih ga praktis lagi, karena anak-anak biasanya lebih terdistract buat liat sekeliling daripada makan di rumah jadi makan di rumah lebih jadi pilihan.

Kembali ke judul, lalu kalau pembantu harus punya lebih dari 1, karena ya mereka kan dibayar untuk melakukannya, ga manusiawi kalau mereka melakuan semuanya sendiri (apalagi sebagai pembantu yang ditinggal karena ibu bekerja), akan tetapi kalau Ibu yang tidak bekerja itu semua kewajiban dan tugas utama ibu jadi harus bisa lakukan semua sendiri. Saya pikir-pikir lagi, sebenernya pembantu itu membantu doang atau lakukan semua fungsi utama? waktu saya ngobrol sama Joe, komentar Joe nah itu pantesan ada yang bilang mending poligami daripada bayar pembantu 2 hahahahahaa. Ya bedalah pembantu dan ibu, si pembantu tentunya masih pengen melakukan hal-hal lain untuk dirinya sendiri. Walaupun pembantu menginap di rumah, menurut saya sebaiknya pembantu punya jam kerja juga, bukannya malah jadi 24 jam tinggal manggil mbaaaaak.

Idealnya, pembantu itu emang cuma membantu. Saya sendiri pakai pembantu yang datang hanya beberapa jam seminggu 3 kali. Saya dan Joe ga suka pake pembantu nginap, selain ga ada ruangan ekstra buat dia, saya merasa ga ada privacy kalau ada pembantu di rumah 24 jam. Saya memperkerjakan pembantu untuk membereskan rumah dan ngurusin cucian, karena pekerjaan itu bener2 time consuming dan butuh energi, pembantu saya mencuci pake mesin cuci, jadi dia tinggal menjemur dan menyetrika. Sambil nungu cucian kering ya dia beres-beres rumah dan ngepel dan sikat kamar mandi. Saya juga ga butuh pembantu 24 jam, karena Joe juga banyak membantu saya mengurus dan ajak main anak-anak di hari di mana pembantu ga ada/sore hari.

Dengan adanya pembantu, saya bisa fokus urusin anak dan mikirin menu masakan/makanan. Kalau lagi mentok ga kepikiran mau masak apa, ya udah beli tapi ya seringnya harus masak juga walaupun itu cuma nasi goreng atau sayur bening. Kalau hari sekolah saya mendampingi Jona homeschool sambil juga ajak main Joshua. Kadang-kadang pembantu saya bisa dititipin Joshua sekitar 1-2 jam kalau saya harus antar Jonathan kursus. Tapi biasanya Joshua sedang tidur siang pas saya tinggal, jadi sebenarnya dia ga perlu ajak Joshua main, cuma dititip biar bisa ditinggal di rumah aja.

Ngomong-ngomong, waktu lagi nulis ini saya dikasih tau Joe kalau hari ini 16 Juni adalah hari peringatan internasional buat pembantu (International Domestic Workers Day). Mungkin buat yang memperkerjakan pembantu 24 jam bisa kasih liburlah besok kalau udah kelewatan hari ini. Bisa juga mulai kasih jadwal supaya pembantu juga punya me time. Untuk para suami yang di rumah ga ada pembantu, jangan jadi alasan buat poligami ya, harusnya ikutan bantuin istri daripada harus bayar 2 pembantu. Pakai pembantu sewajarnya, karena pembantu itu sesuai namanya membantu, bukan melakukan semuanya sendiri. Pasangan suami istri juga merupakan penolong yang sepadan, artinya pekerjaan domestik bukan cuma tugas istri. Suami juga sangat dianjurkan menolong istri melakukan hal-hal bersama di rumah. Ah jadi kayak iklan layanan masyarakat ya hehehe.

Trik Reverse Engineering Kode Python

Entah kenapa akhir-akhir ini saya banyak melihat pertanyaan mengenai reverse engineering kode Python yang sudah di-obfuscate, baik di Facebook maupun Telegram. Sudah ada beberapa artikel dalam Bahasa Indonesia yang membahas ini misalnya Bermain dengan Python Bytecode dan  Reverse Engineering Python Bytecode. Kedua artikel itu sudah bagus, jadi saya sarankan untuk membaca kedua artikel itu untuk dasar reversing bytecode Python.

Artikel ini hanya ingin membahas trik untuk mempermudah revers engineering proteksi tertentu yang memakai marshal dan gagal didekompilasi.

Setelah membaca kedua artikel tersebut, beberapa hal yang penting diketahui adalah:

  1. Sebuah fungsi atau modul (file) python bisa didapatkan byte codenya (dengan marshal yang merupakan modul bawaan Python)
  2. Kita bisa mengeksekusi hasil marshal dengan exec marshal.loads(bytecode)
  3. File pyc sebenarnya hanyalah file marshal dengan header
  4. Bytecode bisa dilihat versi teksnya dengan dis (modul bawaan Python juga)
  5. Ada decompiler (uncompyle6) yang bisa mengembalikan (mendekompilasi) kode pyc  kembali menjadi kode Python, tapi ini tidak selalu berhasil

Beberapa proteksi yang dilakukan secara umum seperti ini:Kode python dicompile menjadi pyc, headernya dihapus, dan dijadikan string, jadinya:

exec marshal.loads(bytecode);

Seperti sudah dibahas di artikel lain, untuk mendekompilasi kita bisa mengambil bytecode, menuliskan ke file dan menambah header, lalu kita decompile dengan kode seperti ini:

bytecode = '....' #isi bytecode di sini

import imp
magic_number = imp.get_magic()

import struct, time
timestamp = struct.pack('i', int(time.time()))

with open('temp.pyc', 'wb') as f:
    f.write(magic_number)
    f.write(timestamp)
    f.write(bytecode)

Lalu kita coba decompile filenya (uncompyle6 temp.pyc). Tapi kadang dekompilasi ini gagal, contohnya adalah di artikel: Reverse Engineering Python Bytecode. Cara yang pasti berhasil adalah dengan membaca bytecodenya (seperti dijelaskan di artikel tersebut), walau kadang ini sulit jika kodenya rumit.

Di sini saya akan menjelaskan trik untuk proteksi sejenis. Perhatikan bahwa di dalam bytecode file tersebut diakhiri dengan:

12     >> 39161 LOAD_NAME                0 (marshal)  #
          39164 LOAD_ATTR                8 (loads)    #
          39167 LOAD_NAME                2 (e)        #
          39170 CALL_FUNCTION            1            # marshal.loads(e)
          39173 LOAD_CONST               1 (None)     #
          39176 DUP_TOP                               #
          39177 EXEC_STMT                             # exec(marshal.loads(e))
          39178 LOAD_CONST               1 (None)     #
          39181 RETURN_VALUE                          #

Yang artinya, pasti ada kode dekripsi, dan terakhir memanggil: exec marshal.loads. Dalam kasus ini saya tidak peduli proses dekripsinya bagaimana. Tapi saya memperhatikan bahwa tidak ada fungsi berbahaya yang dipanggil selain marshal.loads.

Sekarang trik cara mendapatkan kodenya yang terdekrip tanpa harus membaca dan memahami bytecodenya: kita bisa memaksa agar tidak memanggil marshal, tapi marshax (saya ganti huruf terakhir), lalu membuat modul marshax yang akan menuliskan hasil dekripsi ke file.

Contohnya begini: saya simpan kode yang sudah di-marshal ke file temp, lalu saya baca, ganti teks marshal dengan marshax dan eksekusi. Karena sudah diubah, maka ini akan error karena modul marshax tidak ada,

import marshal

with open("temp", "rb") as f:
  c = marshal.loads(f.read().replace("marshal", "marshax"))
exec c

Tujuan kita adalah untuk menangkap kode yang sudah didekrip. Jadi untuk ini kita buat file marshax.py di direktori yang sama dengan isi:

def loads(x):
    with open("temp2", "w") as f:
        f.write(x)

Hasilnya, ketika exec c dipanggil, fungsi loads di marshax yang akan dipangil dan akan menuliskan kode yang sudah didekrip ke dalam file temp2.

Sekarang file temp2 bisa dicoba diberi header dan didecompile lagi. Jika dekompilasi gagal dan masih berakhir dengan marshal.loads lagi, ulangi langkah yang sama.

Demikian trik kecil dari saya. Semoga bisa membantu reverse engineering file Python lain. Teknik serupa (mengganti implementasi kode) juga bisa diterapkan di kasus lain. Semoga semakin banyak lagi yang menuliskan artikel reverse engineering dalam bahasa Indonesia, sehingga mudah saya link seperti di posting ini.

Membedah e-KTP

Posting ini sekedar membahas tentang kartu tanda penduduk elektronik (e-KTP). Sampai saat ini saya belum pulang ke Indonesia untuk mengurus e-KTP karena KTP lama masih berlaku. Waktu orang tua saya datang ke sini tahun lalu saya sudah sempat ngoprek e-KTP mereka sedikit, dan sekarang selagi mereka berkunjung saya teruskan dan tuliskan hasil eksplorasi saya.

Sebagian isi tulisan ini didapat dari reverse engineering, dan sebagian lagi dari berbagai informasi yang tersebar di Internet. Ada juga bagian yang merupakan spekulasi saya dari informasi yang ada.

Security sebuah smart card

Sebuah smart card adalah sebuah komputer kecil, di dalamnya ada CPU, RAM, dan juga storage. Smart card diakses menggunakan reader, secara umum ada dua jenis: contact (menggunakan konektor fisik seperti SIM card) dan contactless (tanpa konektor fisik seperti kartu e-Money berbagai bank saat ini). Dari sisi programming keduanya sama saja. Kartu smart card yang baru umumnya juga sudah tahan (immune) terhadap side channel attack (DPA/SPA/FI dsb).

Hal yang membuat smart card penting untuk security adalah kemampuan smart card untuk melakukan komputasi (menghitung, melakukan hasing, enkripsi, dekripsi, dsb), dan sangat sulit untuk melakukan ekstraksi data dari smart card. Bayangkan seperti disuruh mengekstrak data di sebuah komputer yang dicor dan dimasukkan ke lemari besi.

Dari segi security, kita bisa memandang smart card ini seperti komputer remote yang melakukan komputasi yang tidak kita ketahui, dan kita tidak bisa mengekstrak informasi jika tidak ada bug pada implementasinya. Bayangkan sebuah sevice php seperti ini

<?php echo hash_hmac (“sha256”, $_GET[“q”], “[email protected]!ku” );?>

Jika kita tidak memiliki akses ke source code program tersebut, maka kita bisa mencoba-coba berbagai input, dan dengan melihat outputnya kita tidak akan bisa mengetahui bahwa kita memakai key “[email protected]!ku”.

Untuk berkomunikasi dengan smart card, kita mengirimkan perintah dalam bentuk byte-byte (dinamakan PDU atau protocol data unit), dan dibalas oleh card dengan status dan byte-byte hasil. Sebenarnya ini tidak berbeda jauh dari komunikasi lain seperti HTTP: kita mengirimkan request, dan card akan mengirimkan status dan balasan. Bahkan smart card generasi baru memang memasukkan server HTTP di dalamnya.

Riset smart card di level protokol (bukan level serangan fisik) bisa dilakukan dengan biaya relatif rendah. Card reader jenis contact dengan konektor USB bisa didapatkan dengan dengan harga kurang dari 10 USD, dan versi contactless (NFC) dengan konektor USB harganya sekitar 30 USD (atau jika punya Raspberry Pi atau Arduino, harga modul NFC-nya saja bisa kurang dari 5 USD).

Perhatikan bahwa: sebuah smart card bisa diisi program. Programnya bisa melakukan apa saja, baik itu memenuhi standar tertentu, atau melakukan sesuatu yang sifatnya custom. Sebagai informasi, kebanyakan  (tapi tidak semua) card sekarang ini diprogram menggunakan Java (teknologi JavaCard). Eksperimen Java Card bisa dilakukan di PC tanpa kartu menggunakan JCardSim.

Smart card juga memiliki protokol standar untuk filesystem. Kita bisa memilih Master File/Dedicated File (MF/DF) yang merupakan struktur direktori, dan EF (Elementary File) yang merupakan file. Semua “nama” pada file hanyalah bilangan yang umumnya dituliskan dalam notasi heksa desimal. Sebuah MF/DF/EF bisa diproteksi dan hanya bisa diakses dalam kondisi tertentu saja (dalam kondisi lain statusnya access denied)

SAM (Secure Access Module/Secure Application Module)

Jika komputer biasa digunakan untuk melakukan komputasi kriptopgrafi untuk dimasukkan ke e-KTP maka programnya akan rawan sekali diubah dan keynya gampang dicuri. Untuk mengatasi hal ini digunakan smart card lain yang dinamakan SAM. Ini hanya merupakan nama peran/role untuk smart card. Sebuah smart card biasa bisa menjadi SAM. Jadi sebuah SAM juga bisa diberi program apa saja. SAM ini bisa berupa chip yang ditanam di hardware, atau berupa kartu biasa. Biasanya SAM ini akan menggunakan jenis kartu contact.

Sekarang masalah security berpindah ke SAM. Tentunya SAM ini berbahaya jika jatuh ke tangan yang salah, jadi ada mekanisme keamanan yang diterapkan pada SAM e-KTP. Mekanismenya cukup sederhana, sehingga jika cukup niat bisa diakali. Ketika Kartu SAM diberikan untuk dipakai dengan aplikasi di sebuah komputer, file konfigurasi diberikan. File konfigurasi ini dienkrip dengan “Machine ID” (yang bisa dengan mudah didapatkan oleh program apapun).

Dengan menggunaakan file konfigurasi yang di XOR dengan machine ID, didapatkan key untuk mengakses Kartu SAM. Kartu tidak bisa dengan mudah dipakai di komputer lain tanpa mengakali program dan/atau mengganti machine ID. Jika N kali salah memasukkan machine ID, maka kartu SAM akan terblokir, dan harus meminta kartu SAM baru.

Keamanan ini hanya sekedar menghindari SAM yang “tercecer” di jalan agar tidak bisa sembarang dipakai. Jika ada yang berniat mengambil kartu SAM dan tahu dipakai di komputer mana (atau device mana), maka keamanan ini tidak membantu. Jadi bisa saja seoarang operator meminjam kartu SAM, dibawa pulang dan dipakai di rumah.

Data Pada e-KTP

Data yang disimpan pada e-KTP pada MF/DF 7F0A. Untuk memilih MF/DF ini bisa digunakan PDU

00A40000027F0A

Beberapa data yang ada di kartu:

  1. Data kontrol kartu (Card Control, pada EF: 6FF0), terbuka tapi spesifikasinya tidak diketahui
  2. Foto (EF: 6FF2), data ini terbuka
  3. Data Demografik/Biodata (6FF1), datanya diproteksi
  4. Data sidik jari: Minutiae1 (6FF4) dan Minutiae2 (6FF5), datanya diproteksi
  5. Scan tanda tangan (6FF3), datanya diproteksi
  6. ECDSA Signature (6FF6), datanya diproteksi

Mengekstrak Foto dari e-KTP

Foto dapat diekstrak dari e-KTP karena memang tidak diproteksi. Cara membacanya cukup mudah, pertama pilih MF/DF dan EF foto, lalu baca 2 byte pertama

00A40000027F0A
00A40000026FF2
00B0000002

Pada 2 byte pertama terdapat panjang (ukuran) data JPEG yang perlu dibaca.  Perhatikan bahwa apapun perintahnya akan selalu ada 2 byte status kembalian (9000 artinya adalah OK, bisa dibandingkan dengan HTTP Code 200):

=> 00 a4 00 00 02 7f 0a
<= 90 00 
Response : 
=> 00 a4 00 00 02 6f f2
<= 90 00 
Response : 
=> 00 b0 00 00 02
<= 06 fe 90 00
Response : 06 fe

Dalam kasus ini panjang file adalah 0x6fe byte = 1790 byte.

Berikutnya data bisa dibaca dengan mengirimkan PDU berikut ini berulang sampai selesai terbaca. Misalnya kita membaca dari offset 2 sebanyak 16 byte, berikutnya dari offset 18 sebanyak 16 byte, dst.

00BB<Offset High><Offset Low><Size>

Jika kita memiliki offset: 0x1234, maka Offset High adalah 0x12 dan Offset Low 0x34.  Teorinya kita bisa membaca sampai 255 byte sekali baca, kenyataannya card readernya bisa error. Di aplikasi e-KTP digunakan 112 byte sekali baca tapi di salah satu card reader saya, saya perlu memakai ukuran 16 byte sekali baca supaya reliable.

Data yang didapatkan adalah file JPEG biasa dengan ukuran 96×96 piksel.


Autentikasi Kartu

Untuk membaca data yang diproteksi, diperlukan key yang berada di SAM. Langkah pertama adalah mutual authentication untuk mendapatkan session key. Berdasarkan hasil reverse engineering,  protokol ini sepertinya berdasarkan Doc 9303 ICAO (Machine Readable Travel Documents) terutama Part 11 (Security Mechanisms for MRTDs).

Di dalam dokumen di atas, diasumsikan mesin pembaca memiliki key dalam memori komputer. Dalam dokumen itu protokolnya seperti ini (hanya garis besar, lihat contoh Appendix D di dokumen 9303 Part 11). Masing-masing pihak (kartu dan app desktop) memiliki SEED yang menjadi dasar untuk pembuatan key:

  • To Card: 0084000008 (request challenge/random number)
  • From Card: 8 byte random
  • From App: Generate random X1 (8 byte) dan X2 (16 byte), lalu  hoitung P1 = 3DES(X1 + RandomFrom Card +X2) , P2 = MAC(P1), hasilnya P1 + P2 ukurannya 40 byte, kirimkan ini ke kartu
  • From Card: kartu melakukan perhitungan serupa dan mengembalikan 40 byte
  • App melakukan komputasi dan menghasilkan session key.

Sedangkan protokolnya e-KTP seperti ini:

  • To SAM: Reset 00FF000000
  • From SAM: OK
  • To CARD: Get Challenge: 0084000008
  • From Card: challenge (8 byte)
  • To SAM: GenerateMutualAuth 00F10000 + CardControl + UID (8) + Challenge (8)
  • From SAM: 40 byte
  • To Card: ExternalAuth: 0082000028 + response from SAM
  • From Card: 40 byte
  • To SAM: VerifyMutualAuth: 00F2000028 + Response From Card

Perbedaannya adalah ada data Card Control dan UID kartu yang dikirim ke SAM. Sepertinya Card Control ini berisi informasi untuk pembuatan SEED, tapi tanpa source code ini tidak bisa diketahui detailnya.

Akan sangat panjang untuk membuktikan bahwa ini aman, tapi pada dasarnya: jika kita tidak punya key enkripsinya, meskipun kita bisa mengubah apapun di sisi app, maka kita tidak bisa mencari tahu key-nya.

Secure Messaging

Berdasarkan pada session key yang didapat pada proses autentikasi, maka setiap PDU yang dikirim akan dienkrip  dulu sebelum dikirim ke kartu dan yang diterima akan didekrip dulu sebelum diproses. Deskripsi ini cukup panjang, tapi ada gambar di dokumen yang menjelaskan ini.

Karena session key tidak pernah di simpan di PC, tapi di SAM, maka secara praktis yang terjadi adalah:

  1. Aplikasi membuat PDU unprotected (misalnya select EF)
  2. Aplikasi mengirimkan PDU unprotected ke SAM
  3. SAM membalas dengan PDU versi Secure Messaging
  4. Aplikasi mengirimkan PDU terenkripsi ke kartu e-KTP
  5. Kartu e-KTP membalas dalam PDU yang terenkrip
  6. Aplikasi mengirimkan PDU terenkrip dari e-KTP ke SAM
  7. SAM akan mendekrip PDU dan hasilnya dibaca oleh aplikasi di PC

Jadi dalam proses ini, meskipun kita mengetahui data terenkripsi dan hasil dekripsinya, kita tetap tidak tahu key yang digunakan (session ini selalu random dalam setiap koneksi).

Emulasi SAM dan e-KTP

Untuk membuat aplikasi e-KTP tanpa memiliki SAM. kita bisa menggunakan SAM dan e-KTP buatan kita sendiri dengan key yang kita masukkan sendiri tentunya ini tidak akan jalan di e-KTP “beneran” sampai kita memiliki akses untuk SAM yang benar. Hal ini sudah pernah diimplementasikan oleh BPPT dalam paper PERANCANGAN EMULATOR KTP ELEKTRONIK BERBASIS JAVA CARD UNTUK MENDUKUNG PENGUJIAN FUNGSIONALITAS PEMBACA KTP ELEKTRONIK INDUSTRI NASIONAL.

Dalam paper ini disebutkan bahwa metode key derivation yang digunakan e-KTP sifatnya rahasia dan mereka mengimplementasikan sendiri algoritma yang sekedar bisa dipakai oleh kartu SAM dan kartu KTP mereka sendiri.

Amankah e-KTP

Aman tergantung dari sudut pandang mana: dari pembuatan KTP, dan dari pemilik/pengguna KTP. Keamanan e-KTP ada pada SAM-nya.  Ini berarti beberapa hal:

  • Kartu SAM harus dijaga ketat, karena jika bisa dipinjam, maka bisa digunakan membuat KTP Aspal
  • Semoga key generation-nya aman. Saya sudah pernah menemukan kode SAM yang aman, tapi cara membuat key yang random hanya mengandalkan fungsi random biasa (bukan secure random) dan menggunakan seed waktu saat ini.
  • Semoga key utama disimpan dengan baik oleh kemendagri

Saat ini data foto sama sekali tidak diproteksi, sehingga seseorang bisa mengambil foto dari dompet yang tertutup. Menurut standar security MRTD, seharusnya data yang bisa dibaca dienkrip dengan informasi yang tertera di kartu. Misalnya untuk paspor, dari nomor paspor, tanggal lahir, tanggal kadaluarsa. Informasi ini tertera di kartu, jadi seseorang yang berusaha membaca dokumen tidak bisa membaca jika memang tidak memegang kartunya. Dengan ini kita bisa memastikan apakah benar isi data elektronik sama dengan data yang dicetak.

Sempat ada aplikasi POC reader e-KTP tapi sayangnya sudah dihapus dari Google Play (tapi masih bisa didownload dari sini). Aplikasi ini membaca data foto seperti saya jelaskan di atas. Sebenarnya agak berbahaya mempercayai data ini, karena mudah sekali membuat card yang jika dibaca dengan aplikasi tersebut akan keluar foto.

Semoga programmernya handal dan tidak membuat kesalahan implementasi. Saya agak khawatir membaca kode seperti ini di salah satu aplikasi yang saya dekompilasi.

Dari mana bisa tahu ini semua?

Pertama adalah mencari dulu aplikasi desktop e-ktp. Ini bisa dicari dengan query berikut di Google.

“index of” e-ktp inurl:.go.id/

Sekarang sepertinya sudah cukup sadar sehingga installernya lebih sulit dicari, tapi tahun lalu ini mudah sekali dicari. Programnya ditulis dalam .NET tanpa obfuscation sehingga mudah dibuka.

Berikutnya eksperimen diteruskan dengan e-KTP orang tua saya. Saya sudah mencoba beberapa attack yang umum, dan sepertinya semuanya aman.

Saat ini saya baru menemukan hal-hal kecil yang undocumented. Seperti halnya web server yang bisa dicari direktori tersembunyi dengan teknik “forced browsing”, kita bisa mengirimkan perintah berurutan ke smart card untuk mencari tahu perintah mana yang menghasilkan sesuatu tapi tidak terdokumentasi.

Demikian hasil oprekan e-KTP untuk saat ini. Mungkin di masa depan akan saya teruskan lagi. Saat ini belum ada ide serangan baru.

 

Wisata di Chiang Mai

Kadang-kadang, ada teman bertanya kalau mau ke Chiang Mai ada apa yang menarik untuk dikunjungi? Seperti biasa, begitu kita tinggal agak lama di suatu kota, kita udah nggak memikirkan lagi tempat wisata, karena semuanya itu ya bukan tempat wisata buat kita. Tapi kalau diganti pertanyaanya, misalnya suatu hari kami ga tingal di Chiang Mai lagi, kira-kira apa yang akan kami kunjungi kalau ke Chiang Mai? Tulisan ini juga buat jadi referensi kalau ada lagi yang nanya ke kami hehehe.

Jawabannya tergantung berapa lama rencana mengunjungi Chiang Mai, terus apakah kami datang tanpa anak atau dengan anak-anak. Kalau datang dengan anak-anak, tentunya yang dikunjungi tempat yang menarik untuk anak-anak juga. Tempat yang biasa mereka kunjungi sejak kecil. Beberapa yang bisa di list adalah:

  • Dalam kota Chiang Mai
  • kota sekitar Chiang Mai
Dalam kota Chiang Mai

Untuk dalam kota Chiang Mai, yang paling mudah tentunya Suan Buak Haad Park (nama di Google: Nong Buak Hard Public Park) di old city. Di park bisa kasih makan ikan dan pigeon, main-main di playground atau sekedar berlari-lari mengelilingi taman sambil mencoba beberapa alat olahraga yang ada. Kalau sudah capai bermain, nongkrong di coffee shop yang ada di park minum kopi dan nyemil hehe. Kalau lapar, bisa beli ayam bakar plus nasi ketan di pintu keluar park, atau kalau mau paket hemat ya bawa makanan dari luar dan tinggal sewa tikar aja piknik dan buat dessert bisa beli eskrim/es puter versi sini. Jonathan senang makan es krim pake ketan terus ditaburin kacang. Di sini sepertinya apa saja bisa dicampur dengan ketan hehehe.

Memberi makan burung di park

Jalan-jalan di park

Tujuan berikutnya ya tentunya mall. Dari beberapa mall yang ada di sini, Airport Plaza (CentralPlaza Chiang Mai Airport) merupakan mall yang paling sering kami kunjungi. Selain karena sekarang ini Jonathan ikut kelas Taekwondo di sana, mall ini adalah mall terdekat dari rumah (sekitar 5 menit kalau ga kena lampu merah). Di mall biasanya kami akan makan berbagai pilihan makanan Thai di food court atau restoran makanan Jepang OISHI (ini restoran milik orang Thailand), naik kereta api gratis, Joshua bisa main di soft area gratis dan mungkin kalau anak-anak sudah cukup besar bisa diajak nonton di bioskop :-).

Mainan gratis di mall
Food court

Selain park di old city, kami juga sekarang ini sering mengunjungi Royal Flora Ratchapreuk dan Night Safari. Mudah-mudahan kalaupun nanti datang jadi turis, saya masih bisa dapetin harga lokal (asal ga lupa aja bahasanya).

Untuk harga turis, harga Night Safari tergolong mahal, dan rugi rasanya kalau datang cuma sebentar. Saat ini rate yang dikenakan untuk turis itu sekitar 800 baht dewasa (harus cek lagi buat tau harga anak-anak). Sementara itu kalau kami dapat harga lokal seperti orang Thai, dewasa itu harganya ga lebih dari 250 baht. Saat ini kami masih bisa mendaftar jadi member, harga member 500 baht untuk selama 6 bulan dan bebas masuk setiap hari juga boleh kalau mau.

Di night safari ada banyak kegiatan yang kalau diikuti semua butuh waktu 5 jam di sana. Kita bisa jalan keliling di walking zone sekitar 1 jam, makan, kalau ada waktu ekstra naik tram keliling 1 jam, menonton beberapa tarian dan animal shows (tiger show 30 menit dan night predator show 30 menit). Diantara waktu tunggu show dan jadwal tram anak-anak bisa main di Playground. Karena cukup sering ke sana, kadang kami datang cuma untuk jalan keliling walking zone, main di playground dan makan saja.

Ratchapreuk
Ratchapreuk

Kami juga menjadi member untuk Royal Flora Ratchepreuk 400 baht per tahun. Kalau bukan member, sebagai orang Thai harus bayar 100 baht per datang, dan sebagai orang asing harus bayar 200 baht per orang (anak-anak biasanya harganya lebih murah). Di taman bunga ini selain bisa main pokemon (kami masih main pokemon), ada playground juga buat anak-anak main dan bisa untuk melemaskan kaki keliling park hehe.

Hidden Village

Salah satu tempat yang mungkin akan dikunjungi jika punya waktu ekstra di Chiang mai adalah Hidden Village. Tempat ini relatif baru, dan karena ga ada membership kami ga bisa terlalu sering ke sana. Di hidden village ini tiket masuk 100 baht/orang dan 50 baht untuk anak-anak. Di dalamnya ada restoran, playground, petting zoo dan animatronik Dinosaurus. Dengan bayar ekstra 20 – 40 baht ada lagi mainan seperti bouncy house dan softplay area di dalamnya.

Selain night safari, kami juga pergi ke zoo. Chiang Mai zoo cukup besar dan butuh seharian juga mengeksplornya termasuk bagian aquarium dan menonton animal show yang ada.

Kami juga sudah dua kali ke Poo Poo Paper park, tapi sudah dituliskan di posting yang ini. Sedikit tentang Chiang Mai Zoo pernah dituliskan di sini dan nanti mengenai Chiang Mai Night Safari dan royal flora Ratchepreuk akan ditulis di posting terpisah.

Luar kota (butuh drive lebih dari 30 menit)

Karena kami gak biasa nyetir jauh-jauh, maka perjalanan lebih dari 30 menit itu tergolong luar kota buat kami hehehe. Kami jarang pergi ke luar kota, jadi ya ga bisa kasih banyak saran juga untuk keluar kota. Tapi ada beberapa tempat yang sesekali kami kunjungi kalau lagi bosan dengan yang dalam kota.

Horizon Village

Dulu kami sering sekali ke Horizon Village. Tempat ini butuh drive sekitar 30 – 40 menit dari rumah. Biasanya butuh waktu seharian kalau ke sana. Di sana ada pilihan untuk makan buffet di hari Sabtu dan Minggu, bersepeda dan atau keliling taman. Taman di sini lebih rindang dibandingkan Ratchepreuk. Di taman horizon village ini juga ada mini zoo dan bisa kasih makan ikan atau burung unta. Dulu sebelum Jonathan 3 tahun, kami bisa ke tempat ini sebulan sekali, tapi belakangan karena Jonathan banyak kegiatan di hari weekend, kami jadi makin jarang ke sana (selain tempatnya juga makin mahal haha).

Hot spring

Tempat wisata yang menarik juga untuk dikunjungi dan ga jauh dari Chiang Mai itu Hotspring San Kampheng. Butuh nyetir sekitar 45 menit – 1 jam dari kota. Kami baru beberapa kali ke sana, sebenarnya seru juga rendaman air panas, atau bisa juga makan telur rebus yang di rendam di air belerang. Kalau misalnya datang pas musim panas, ya kayaknya ga disarankan.

Tempat ini menyenangkan dikunjungi di musim dingin tentunya. Tak jauh dari tempat ini ada cave yang katanya sih cukup menarik untuk dikunjungi, tapi kami belum kunjungi karena ga mau ambil resiko ngejar-ngejar Joshua dalam gelap hahaha. Kalau mau menginap, di sana juga ada pondokan yang bisa di sewa atau area untuk camping, tapi kami belum coba sampai sekarang.

Doi Suthep

Gimana dengan Doi Suthep? Hmm walaupun ada yang bilang belum sah sampai ke Chiang Mai kalau belum ke Doi Suthep, tapi rasanya ga ada yang istimewa dengan Doi Suthep, setidaknya buat kami begitu. Kami pertama kali ke sana setelah beberapa tahun di Chiang Mai. Total selama 11 tahun di kota ini , kami baru 2 kali ke sana (bahkan kami lebih sering ke Doi Inthanon daripada Doi Suthep). Kenapa Doi Inthanon? Ya di Doi Inthanon itu udaranya lebih adem, dan juga naturenya lebih indah.

Butuh waktu 1 jam nyetir menanjak ke Doi Suthep. Di sana bisa melihat ke arah kota Chiang Mai dan foto-foto doang hehehe. Kalau ke doi Suthep, biasanya akan mampir juga ke Doi Pui, di sana bisa melihat kehidupan masyarakat tradisional dan ada taman bunga nya yang juga cukup indah. Di bulan Januari, di dekat Doi Suthep bisa melihat hutan yang penuh dengan bunga sakura. Tapi karena jalannya ke sana sempit dan bunga sakura cuma mekar dalam waktu 2 minggu saja, biasanya weekend jalanan ke sana akan macet, dan yaaa setelah pernah sekali ke sana, kami belum ke sana lagi hehehee.

Doi Inthanon

Doi Inthanon. Titik tertinggi di Thailand

Doi Inthanon, butuh sekitar 2 jam perjalanan (1 jam perjalanan menanjak). Kami suka ke sana karna udaranya adem. Pemandangannya juga jauh lebih indah dibanding Doi Suthep. Ada banyak pilihan di Doi Inthanon ini, untuk yang suka trekking juga ada beberapa pilihan jalur trekking di sana (tapi kami belum pernah). Selain ada temple, taman bunga, di sana juga ada air terjun. Kalau ke Doi Inthanon, butuh waktu seharian untuk bisa mengeksplore/menikmati alam di sana.

Queen Sirikit Botanic Garden

Buat pecinta tanaman dan nature, sekitar 1 jam naik mobil dari Chiang Mai juga ada taman bunga Queen Sirikit Botanic Garden. Kami baru sekali ke sana dan udah beberapa tahun lalu, jadi ga bisa kasih banyak update selain di tempat itu luas dan banyak jenis tanaman dan bunga yang indah. Sekarang ini di sana ada canopy sky walk yang cukup panjang. Waktu kami ke sana canopy sky walk ini belum ada, mungkin ini bisa jadi alasan untuk ke sana lagi.

Kalau punya waktu ekstra, bisa juga ke Golden triangle. Tempat ini merupakan perbatasan antara Thailand, Myanmar dan Laos. Butuh perjalanan sekitar 3 jam dari Chiang mai. Di perjalanan menuju lokasi bisa berhenti di hotspring. Kami baru sekali ke sana ikutan tour sebelum ada Joshua.

Sebenarnya pengen lagi ke sana ajak Joshua, tapi dipikir-pikir temple yang menjadi tempat wisata di sana kurang cocok untuk dilihat oleh anak-anak. Untuk yang tidak bawa anak dan suka melihat arsitektur temple yang unik, tempat ini bisa jadi pilihan dan sekalian siapa tau pengen dapat cap mengunjungi negara Laos dan Myanmar sekalian.

Ada beberapa tempat sekitar sini yang belum juga kami eksplore. Entah apakah kami akan eksplore suatu saat setelah kami ga di sini lagi atau entahlah. Kami belum pernah ke Doi Angkhan, padahal katanya tempat ini cukup dekat dari Chiang Mai dan indah, tapi sejauh ini belum tertarik untuk ke sana. Mungkin kalau sudah ga di Chiang Mai baru deh pengen ke sana dan ke mari jadi turis hehehe. Beberapa tempat yang jadi tujuan wisata juga waterfall. Tapi karena saya selau bayangkan air terjun sipiso-piso, saya ga pernah senang dengan waterfall di sini hehhe.

Jadi kembali ke pertanyaan: kalau ke Chiang Mai, sebaiknya ke mana dong? Kalau ga punya banyak waktu mending wisata memperhatikan kehidupan orang lokal. Pergi massage, wisata kuliner dengan harga lokal, pergi ke pasar tradisional biar ditanya: where are you come from, dan ketika kita jawab Indonesia mereka akan bilang ooh Filipin atau Malay sambil bilang same nunjuk ke wajah mereka yang artinya: wajah kita sama mirip orang Thai. Kalau punya waktu banyak, ya bisa deh mengunjungi semua tempat yang disebutkan di atas.

So, dari tulisan ini, kira-kira kalian bakal tertarik ga datang ke Chiang Mai jadi turis? Kalau kata saya, jangan jadi turis deh, rugi. Mending tinggal aja di sini, hidup nyaman pasti betah deh (kecuali buat yang sangat strict dengan makanan harus label halal, ini bisa jadi hidupnya berasa repot). Tapi walaupun demikian, banyak juga kok restoran halal di Chiang Mai. Buktinya beberapa teman orang Indonesia di Chiang Mai yang muslim juga bisa betah berlama-lama tinggal menetap di Chiang Mai.

Di posting lain akan dibahas mengenai event-event khusus di Chiang Mai (festival bunga, Songkran dsb), supaya tahu kalau mau datang sebaiknya bulan apa.

Memulai Homeschooling

Setelah memutuskan mau homeschooling, kami gak langsung terjun bebas. Homeschooling ini menuntut orangtua untuk belajar lagi, karena kami gak punya pengalaman mengajar anak kecil. Belajar seluk beluk dunia homeschooling terutama memutuskan mau seperti apa style homeschooling kami.

Mulai dari mana?

Kami mulai dengan banyak mencari informasi yang terkait dengan homeschooling dari berbagai sumber, diantaranya:

  • bertanya ke teman-teman yang sudah lebih dulu menghomeschool anaknya
  • cari informasi di internet
  • gabung dengan komunitas homeschooler online dan offline

Sebagai orangtua harus rajin mencari berbagai hal yang sesuai dengan kondisi keluarga dan gaya belajar anak. Orangtua juga harus memiliki komitmen untuk memberikan pendidikan yang terbaik untuk anak. Setelah mendapatkan informasi yang dibutuhkan, sebagai orangtua harus menentukan/memutuskan mau seperti apa homeschoolingnya.

Saya akui saya pusing dengan berbagai istilah yang ditemukan mengenai homeschool. Ada banyak sekali metode dan pendekatan untuk melakukan homeschooling, ada yang melakukannya secara tradisional seperti memindahkan sekolah ke rumah (jam sekolah tertentu dan jadwal hari sekolah dan libur yang sudah ditentukan di awal tahun ajaran), ada yang memilih untuk membebaskan anak dari beban kurikulum dan hanya mengajarkan apa yang menjadi minat anaknya (unschooling), ada yang ikut kelas online bayar maupun gratis, ada yang mempelajari secara mendalam topik tertentu dengan unit studies. Ada yang mengikuti metode Charlotte Mason, Classical Conversation atau Montessori. Dan banyak istilah lainnya yang selanjutnya bisa di baca di wikipedia mengenai homeschooling.

Setelah menyadari kalau keunikan homeschooling adalah tidak ada yang saklek di sana. Kita selalu bisa sesuaikan menurut kebutuhan anak dan kita tidak harus mengikuti metode atau kurikulum tertentu saja. Sebagai orangtua, kita bisa memilih dan membuat sendiri kurikulum dan materi yang ingin diajarkan ke anak. Orangtua dan anak yang menentukan apakah belajar secara terstruktur atau tidak ada struktur sama sekali. Ada yang memilih untuk belajar tanpa struktur, tapi ada juga yang memilih tetap terstruktur dan tentunya bisa di gabungkan juga semi terstuktur. Sekarang ini bahkan ada beberapa lembaga penyedia jasa homeschooling yang menerima murid secara offline seminggu hanya beberapa hari.

Pertanyaan yang paling sering jadi pertimbangan juga: nanti ijasah anak bagaimana? Untuk sekarang ini , ijasah bisa didapatkan dengan mengikuti ujian persamaan, tergantung di mana kita berada dan kemana tujuan kita. Ada banyak layanan online untuk mengetahui apakah anak kita layak untuk disebut di kelas tertentu. Di negara tertentu ujian tahunan ini merupakan kewajiban homeschooler, tapi akhirnya semua kembali lagi menjadi keputusan orangtua. Keunikan homeschooling adalah, kita tidak terikat dengan kelas anak, karena bisa saja anak usia 8 tahun mempelajari materi yang advanced kalau memang dia sudah mampu dan mengerti.

Beberapa penyedia jasa kurikulum juga menyediakan konsultasi untuk homeschooler untuk menjawab pertanyaan yang mungkin saja orang tua kurang mengerti, atau mereka juga mengadakan kelas tutorial online dan sampai memberikan diploma yang terakreditasi yang nantinya bisa jadi modal untuk memasuki perguruan tinggi. Kami sendiri belum memikirkan sejauh ini, apakah kami hanya akan sementara homeschooling atau akan terus homeschooling sampai anak siap memasuki perguruan tinggi. Sudah banyak orang yang menghomeschool anaknya dan kemudian anaknya masuk perguruan tinggi tanpa ijasah dari sekolah, tapi cukup dengan ujian penerimaan di perguruan tinggi tersebut dan dari bukti yang disiapkan orangtua kalau dia sudah mempelajari hal-hal dasar yang dibutuhkan.

Memilih kurikulum

Sebelum menentukan kurikulum, kita harus tau model belajar anak kita seperti apa dan apa yang menjadi target kita. Ada yang mengasah kemampuan anak di bidang art saja karena melihat anaknya sangat tertarik dengan art, ada juga yang memberikan semuanya dan minat anaknya baru akan kelihatan belakangan.  Ada anak yang suka mempelajari sesuatu secara mendalam dan tidak bosan untuk mengerjakan topik tersebut berulang-ulang (mastery), dan ada juga anak yang lebih suka dikenalkan konsep baru setiap harinya, kerjakan sedikit soal latihan untuk konsep baru dan sisanya mereview konsep yang sudah diajarkan sebelumnya (spiral).

Kurikulum yang kami pilih CLE (Christian Light Education) merupakan kurikulum dengan pendekatan spiral yang sudah cukup lengkap dan menyediakan layanan homeschool plus yang memberikan diploma untuk pesertanya. Tentunya orangtua yang harus aktif mengirimkan hasil kuis dan test tiap bulannya dan laporan mengenai jumlah hari sekolahnya, lalu akan diverifikasi oleh CLE dan mereka akan mengeluarkan diploma.

Untuk sekarang ini kami belum mendaftarkan program homeschool plus karena kami belum merasa membutuhkan diploma untuk Jonathan. Jonathan bisa mengerjakan buku latihannya dengan mandiri dan dia bisa bertanya kepada kami kalau ada konsep baru yang dia tidak mengerti.

Pelajaran yang kami beli dari CLE untuk kelas 2 ini adalah: Math, Language Art, Reading, Social Studies, Science dan Bible. Dalam 1 tahun ajaran ada 10 buku latihan yang harus dikerjakan dan masing-masing berisi 13 unit latihan, 2 kali kuis  dan 1 test. Jonathan mengerjakan 1 unit sehari untuk setiap pelajaran. Biasanya setiap minggu ke-1 dan ke-2 akan ada kuis di hari Jumat, dan minggu ke-3 ada review dan Test. Kalau rata-rata 1 buku dikerjakan dalam 1 bulan, dibutuhkan waktu kira-kira 10 bulan untuk menyelesaikan 1 tahun ajaran. Karena kami kemarin mulainya akhir Oktober, saya pikir kami akan ketinggalan banyak dari tahun ajaran sekolah umumnya. Ternyata sekarang ini kami sudah di buku terakhir dan sudah menjelang Test buku terakhir.

Mengatur Jadwal Sekolah

Homeschool yang kami lakukan cukup fleksibel. Tapi untuk membiasakan diri punya jadwal yang teratur setiap harinya, kami tentukan kalau jam mengerjakan pelajaran cukup pagi hari sebelum makan siang. Lalu setelah jam makan siang, Jonathan bisa tidur siang, baca buku atau kegiatan les art, bahasa Thai, piano atau Taekwondo.

Setiap hari Jonathan harus mengerjakan 1 unit dari 3 sampai 4 pelajaran. Kalau ada kegiatan dipagi hari, kadang-kadang dikerjakan siang dan sore hari. Kami juga membuat jadwal libur, biasanya mengikuti jadwal Joe libur kantor atau kalau ada yang datang berkunjung ke Chiang Mai. Selama beberapa bulan ini, tidak setiap hari sekolah itu mulus. Kadang-kadang faktor cuaca dan kesehatan juga mempengaruhi mood Jonathan dalam mengerjakan soal latihannya.

Kalau saya ditanya sejauh apa saya merencanakan jadwal pelajaran Jonathan? saya biasanya merencanakan setiap sabtu/minggu untuk pelajaran 1 minggu ke depan. Buku Teaching Guide sangat membantu dalam mempersiapkan bahan dan juga memeriksa hasil pekerjaan Jonathan. Ada orangtua yang mempersiapkan jadwal langsung untuk sepanjang tahun ajaran. Saya awalnya coba untuk menjadwalkan beberapa bulan sekaligus, tapi biasanya selalu ada yang meleset jadi saya mencoba untuk lebih fleksibel supaya ga jadi stress.

Homeschool preschool?

Selama Jonathan belajar, Joshua biasanya akan mengganggu dan pengen ikut-ikutan. Sebenarnya ada banyak sekali materi homeschool untuk anak usia prasekolah, tapi saat ini saya belum berencana memberikan materi pelajaran terstruktur untuk Joshua. Biarkan saja dulu dia puas bermain, kalaupun dia tertarik dengan alphabet, angka, perkalian dan penjumlahan, saya anggap itu semua for fun saja. Sekarang ini Joshua sudah bisa mengeja semua kata yang dia liat, bahkan dia seperti sudah bisa ingat bacaan dari beberapa kata, tapi saya dan Joe belum berencana memberikan pelajaran khusus membaca untuk dia.

Tantangan dalam homeschool

Tantangan sekolah di rumah biasanya adalah bagaimana bisa konsisten dalam mengatur jadwal sekolah. Bagaimana supaya anak tetap termotivasi untuk mengerjakan tugas sekolahnya. Bagaimana supaya anak tetap punya teman bermain dan ga merasa kesepian di rumah. Bagaimana supaya anak menyukai belajar dan ga merasa terpaksa dalam mengerjakan pelajarannya. Kami pemula dalam homeschool ini, tapi seiring berjalan waktu, semua tantangan pasti ada jalan keluarnya. Nanti di postingan berikut saya akan tuliskan bagaimana contoh hari-hari sekolah kami.

AlphaSmart Dana

AlphaSmart Dana adalah device Palm OS lama dengan form factor keyboard yang sudah tidak diproduksi lagi. Device ini dulu cukup populer di banyak sekolah di amerika, terutama digunakan untuk anak-anak yang kesulitan menulis dengan pulpen/pensil. Device ini saat ini masih populer di kalangan penulis karena beberapa hal: keyboardnya enak dipakai untuk mengetik, minim gangguan (karena tidak bisa mengakses internet), relatif ringan (sekitar 1 kg), memakai 3 Batere AA biasa (atau yang rechargable) dan tahan beberapa puluh jam sebelum perlu mengganti batere lagi. Ada dua versi Dana, Wireless dan non wireless, yang akan dibahas di sini adalah versi wireless yang kami punya.

Stiker biru kecil di tengah Dana itu ditempelkan supaya gampang membedakan dari Dana yang lain.

Untuk mentransfer data ke komputer, ada beberapa opsi. Opsi pertama adalah menggunakan mode keyboard, dengan ini seolah-olah alphasmart akan “mengetik ulang” isi file ke editor apapun yang terbuka di layar komputer. Dengan cara ini AlphaSmart Dana bisa terkoneksi ke device apa saja yang menerima input dari USB keyboard (termasuk juga tablet atau ponsel, asalkan bisa memberikan cukup daya). Kabel yang digunakan adalah kabel USB printer standar. Opsi kedua adalah dengan menggunakan jaringan WIFI (sayangnya yang disupport hanya WEP). Opsi terakhir adalah dengan menggunakan SD Card

Karena menggunakan sistem operasi Palm OS, maka berbagai aplikasi Palm OS lama bisa diinstall di device ini dan tentunya kita bisa membuat sendiri aplikasi baru yang dibutuhkan. Contoh aplikasi yang bisa diinstall misalnya: Bible Reader (terpakai oleh Jonathan), Kamus, dan Timer. Sayangnya ukuran device ini tidak standar, jadi banyak aplikasi hanya akan muncul kecil di tengah layar. Beberapa aplikasi bisa diakali menggunakan RsrcEdit agar bisa menggunakan layar yang besar, tapi beberapa perlu dicompile ulang (jika sourcenya tersedia).

Beberapa tahun lalu saya sebenarnya sudah tertarik membeli device ini, harganya relatif murah (sekitar 20-50 USD, tergantung sellernya di eBay), tapi yang tidak murah adalah ongkos kirimnya, sehingga harga totalnya lebih dari 120 USD.

Tahun ini saya berusaha seminimal mungkin membeli gadget ataupun komponen elektronik untuk dioprek. Ketika mendekati ulang tahun saya, saya berpikir untuk membeli satu device untuk hadiah diri sendiri. Tadinya terpikir membeli console Nintendo Switch (apalagi baru ada kabar ini mulai bisa dihack) atau Nintendo 3DS (yang harganya sudah tidak terlalu mahal). Tapi kalau dipikir-pikir saya jarang sekali bermain game, jadi saya urungkan niat membeli console game.

Begini layar Dana di emulator Palm OS. Aslinya tidak sejernih ini.

Saat ini AlphaSmart seri Dana sudah mulai sulit dicari di eBay. Kebanyakan yang ada adalah AlphaSmart Neo, yang merupakan versi sebelumnya. Alphasmart Neo tidak memiliki sistem operasi dan bisa bertahan puluhan hingga ratusan hari dengan beberapa batere AA. Kelemahan Neo bagi saya adalah sulit dioprek (karena tanpa OS)

Ketika saya melihat ada yang menjual Dana di-eBay, tapi harga plus ongkos kirimnya 110 USD, saya kembali mengurungkan niat. Tapi kmemudian muncul listing lain: 7 Alphasmart Dana versi Wireless berikut ongkos kirim total semuanya menjadi 228 USD. Sebenarnya saya nggak butuh 7 benda ini, tapi jika dirata-ratakan harganya hanya 32.5 USD. Saya cukup yakin bisa menjual ulang benda ini dengan harga 33 USD per item (dan sudah terjual 2). Selain itu saya juga ingin mencobakan benda ini ke Jonathan.

7 Dana. Semuanya sudah ada dialokasikan, belum dikirimkan.

Ketika sampai, saya langsung coba semuanya dan semua berjalan normal. Tapi sayangnya hanya 3 yang memiliki stylus. Untuk memilih menu, kita bisa memakai jari, dan stylus apa saja bisa dipakai di benda ini, selain itu sebenarnya jarang sekali stylus ini dipakai karena semua  fungsi bisa diakses dari keyboard.

Layar Dana adalah seperti pada PDA Palm lama, jadi bagi sebagian orang mungkin akan sulit membaca layar ini. Bagi saya sih baik-baik saja. Layar Dana ada backlightnya sehingga bisa dipakai dalam gelap. Layarnya juga cukup jelas terbaca di bawah matahari langsung. Bagi sebagian orang kontrasnya kurang bagus dan sudut pandangnya kurang bagus. Benda ini juga tidak memiliki keyboard backlight, jadi harus memakai touch typing ketika mengetik dalam gelap. Sebuah lampu USB bisa dipasang di atas benda ini tapi akan boros batere.

Dengan menggunakan alphasmart saya dipaksa untuk tidak mengecek internet, dan juga tidak terganggu dengan berbagai notifikasi. Sejauh ini saya jadi lebih banyak menulis artikel blog (seperti artikel ini yang ditulis di AlphaSmart lalu ditransfer ke komputer).

SD Card

Dana mendukung dua SD Card. Agak aneh memang karena device modern biasanya hanya mendukung 1 kartu saja. Aplikasi bisa diletakkan di SD Card, jadi kita bisa menyimpan aplikasi di SD card pertama sementara SD Card kedua untuk data. SD Card yang didukung hanya yang ukurannya maksimum 1GB. Card ukuran ini sudah sulit dicari tapi masih bisa didapatkan secara online.

Secara umum penyimpanan internal Dana tergolong besar untuk Palm OS, biasanya PalmOS hitam putih hanya sampai 8 MB memorinya, tapi Dana sampai 16 Mb. Seperti Palm OS, memori Dana sifatnya volatile, artinya akan segera hilang isinya jika batere dicabut (tapi ada kapasitor yang bisa menyimpan data beberapa menit sementara kita mengganti baterenya). Jadi jangan sampai batere Dana benar-benar habis, karena semua isinya akan hilang.

Sebagai catatan: jika 1 kata rata-rata 10 huruf (kata dalam bahasa Indonesia cukup panjang), dan kita menulis 1000 kata per hari, maka hanya butuh 10kB, dan setahun hanya butuh 3650 kB atau 3.65 MB (jangan protes dengan konversi x1000 bukan x1024 saya memakai decimal prefix bukan binary prefix). Jadi tanpa SD Card pun kapasitas Dana sudah cukup besar. Sebuah SD Card 16 MB akan cukup besar untuk kebutuhan sebagian besar orang.

Battery Hack

Aslinya Dana bisa memakai 3 batere AA biasa (non rechargable), atau battery pack yan rechageable. Keduanya memakai slot yang sama, jadi tidak bisa kita memakai keduanya sekaligus. Bedanya antara batere biasa dan rechargeable pack hanyalah pada konektornya. Konektor batere biasa tidak akan menerima arus charging ketika Dana dicolok ke adaptor atau ke komputer, sedangkan konektor satu lagi akan menerima charging.

Hack paling sederha adalah: mengganti agar kabel charging bisa dipakai di slot batere biasa. Alternatif lainnya adalah membongkar battery pack lama dan menggunakan kabel itu tanpa menyolder kabel. Cara ini yang saya lakukan. Sekarang tiap beberapa hari saya bisa menhubungkan Dana ke komputer sambil charging.

Begini baterry pack aslinya. Saya kupas untuk diambil kabelnya saja.
Batere rechargeable saya pasang dengan konektor yang dilepas dari battery pack lama.

Sinkronisasi dengan PC

Saat ini software sinkronisasi Palm OS masih bisa digunakan di Windows 10, termasuk juga yang 64 bit. Sayangnya Dana tidak bisa disinkronisasi dengan Linux. Dulu saya pernah memakai Palm dengan USB dan sudah tahu berbagai triknya di Linux, tapi sayangnya module kernel visor tidak mengenali benda ini. Saya sudah berusaha compile ulang modul kernelnya dengan memodifikasi Vendor/Product ID agar dikenali, tapi ternyata protokolnya berbeda dan Dana akan crash ketika saya paksa.

Akses WIFI

Saya sudah mensetup access point dari Raspberry Pi untuk bisa menyimpan dan membuka dokumen dari jaringan. AlphaSmart hanya mendukung WEP dengan enkripsi 40 atau 128 bit. Share yang bisa diakses adalah SMB versi 1. Di Raspberry Pi saya setup Dropbox Uploader sehingga file yang saya simpan di folder akan diupload ke Dropbox. Tutorialnya sudah saya tulis di blog saya yang lain.

Meskipun teorinya bisa dipakai untuk browsing web sederhana, tapi berbagai software yang ada sudah terlalu tua dan berbagai web yang ada sudah  terlalu kompleks. Jadi akses WIFI ini hanya saya gunakan untuk mengirimkan dokumen supaya terarsip di Dropbox.

Dana terkoneksi ke jaringan

Sebagai catatan: jangan mengubah akses poin di rumah menjadi WEP, karena mudah sekali dicrack. Dengan RPI dan USB Dongle, range WIFI hanya dekat saja (paling menembus 1 kamar). Share untuk dana juga sebaiknya tidak dicampur dengan file lain karena dua alasan: supaya Dana tidak hang atau bingung jika ada terlalu banyak file, dan juga agar file lain aman andaikan ada yang berhasil masuk melalui access point yang ditujukan untuk Dana.

Penutup

Sejauh ini saya cocok memakai AlphaSmart Dana, dan sudah menulis banyak posting blog sejak menggunakan benda ini serta cukup banyak mengoprek benda ini. Bagi Risna menulis di AlphaSmart kurang nyaman karena kurang bisa melihat dengan jelas teks di layar dan kurang nyaman untuk editing. Jonathan baru suka bereksperimen memakai Dana, tapi belum suka banyak mengetik.

 

Mengajak Jonathan Membaca

Sejak bisa membaca, Jonathan senang membaca berbagai buku. Buku yang dia paling senang model buku Usborne yang ada lift the flapnya. Berikutnya dia mulai suka membaca komik. Kami berusaha mengenalkan dia untuk membaca buku tanpa gambar (chapter book), awalnya dia bilang kurang suka dan ceritanya ga menarik.

Bulan Januari 2018, saya berusaha melatih Jonathan untuk membaca buku setiap hari 1 selama 10 menit, saya ikuti kegiatan challenge Read Aloud yang ada di internet tentunya dengan memberi reward buku yang dia pilih sendiri.  Walaupun  dia sudah bisa baca, waktu membacakan bersuara, kadang-kadang dia belum bisa berhenti ketika ada titik ataupun tanda baca lainnya. Dia cenderung membaca seperti kereta api yang tidak ada jeda walau ada titik koma. Semua diterobos aja gak berhenti sampai ganti halaman. Tentunya jadi tidak enak mendengarkannya dan saya harus mendampingi membacanya.

Buku yang saya berikan untuk dia baca selama sebulan Januari beraneka ragam. Kadang saya suruh dia membaca dongeng sebelum tidur yang cuma beberapa halaman, buku lift the flap, komik dan saya mulai kasih chapter book yang isinya berupa kumpulan cerita lepas dan membacanya tidak lebih dari 10 menit.

Seperti umumnya anak-anak, Jonathan ga suka dan bersungut-sungut ketika saya suruh baca. Tapi lama kelamaan, tanpa sepengetahuan saya, dia sering membaca tak bersuara sendiri  tanpa disuruh. Akhirnya saya menyerah memaksa dia membaca bersuara dan membiarkan saja dia memilih apa yang dia mau baca (lebih baik dia membaca daripada main game atau nonton TV doang). Untuk mengecek apakah Jonathan mengerti yang dia baca, kami ajak dia ngobrol dan menanyakan siapa tokohnya, bagian mana ceritanya yang dia suka atau tidak suka, siapa tokohnya dan apa peristiwa yang terjadi dalam buku yang dia baca.

Awalnya saya memberikan buku yang banyak direkomendasikan homeschoolers dengan kategori living books. Dia bilang bukunya tidak menarik dan mungkin dia belum mendapatkan klik dalam membaca buku. Kami juga berusaha memberi reward untuk memotivasi Jonathan membaca. Katanya Jonathan pengen punya uang buat dikumpulin dan nantinya dibelikan sesuatu, jadi kami setuju, kalau dia baca 1 chapter book akan kami berikan 10 baht. Kalau bukunya lebih tebal lebih dari 100 halaman nantiya bisa dikasih lebih.

Setelah mencoba memberikan berbagai chapter book dengan hasil yang ga terlalu signifikan (kadang dibaca kadang nggak), suatu hari Joe memberikan buku cerita yang mengajarkan pemrograman BASIC terbitan lama, seri Micro Adventure. Dalam buku ini, disertakan juga beberapa listing program BASIC yang bisa dicoba disalin dan dijalankan di komputer. Ternyata buku ini merupakan buku yang memberi klik untuk Jonathan menyukai membaca chapter book.

Sejak awal April atau Mei, dia sudah membaca 7 dari 10 serial Micro Adventure. Selain serial ini, dia juga membaca berbagai buku lainnya termasuk belakangan ini dia baca buku Harry Potter 1 dan 2 dalam hitungan beberapa hari saja. Untuk beberapa buku kami beri reward boleh menonton film dari buku itu. Sejauh ini Jonathan sudah menonton: Captain Underpants, Charlie and The Chocolate Factory dan Harry Potter pertama.

Saya mencoba catch up dengan Jonathan membaca buku-bukunya, tapi sejauh ini saya masih ketinggalan banyak hehehe. Jonathan sering bertanya “what is your favorite part in this book?” setelah selesai membaca buku yang dia tahu kami sudah baca (misalnya Harry Potter). Kecepatan membaca dia melesat seperti tak terbendung dan sekarang dia bahkan mulai membaca buku-buku kategori living books yang dulu dia bilang ga suka.

Berikut ini daftar buku yang dia baca dalam sebulan ini sebagai catatan buat kami:

 Micro Adventure Series:
  1. Space Attack: Micro Adventure Number One by Eileen Buckholtz and Ruth Glick (1984; Scholastic, Inc.; ISBN 0-590-33165-5)
  2. Jungle Quest: Micro Adventure Number Two by Megan Stine and H. William Stine (1984; Scholastic, Inc.; ISBN 0-590-33166-3)
  3. Million Dollar Gamble: Micro Adventure Number Three by Chassie L. West (1984; ISBN 0-590-33167-1)
  4. Time Trap (Micro Adventure, No 4) by Jean Favors (1984; Scholastic, Inc.; ISBN 0-590-33168-X)
  5. Mindbenders (Micro Adventure, Vol. 5) by Ruth Glick and Eileen Buckholtz (1984; Scholastic, Inc.; ISBN 0-590-33169-8)
  6. Robot Race (Micro Adventure, Vol. 6) by David Anthony Kraft (1984; Scholastic, Inc.; ISBN 0-590-33170-1)
Captain Underpants novels:
  1. The Adventures of Captain Underpants (1997)
  2. Captain Underpants and the Attack of the Talking Toilets (1999)
  3. Captain Underpants and the Invasion of the Incredibly Naughty Cafeteria Ladies from Outer Space (and the Subsequent Assault of the Equally Evil Lunchroom Zombie Nerds) (1999)
Roald Dahl novels:
  1. Charlie and the Chocolate Factory (1964)
  2. The Magic Finger (1966)
  3. Fantastic Mr Fox (1968)
  4. Charlie and the Great Glass Elevator (1972)
  5. George’s Marvellous Medicine (1981)
  6. Matilda (1988)
Harry Potter novels:
  1. The Philosopher’s Stone (1997)
  2. The Chamber of Secrets (1998)

Dan yang terakhir dia menyelesaikan 12 buku dalam winnie the pooh library box set

Banyak juga buku yang dia baca dalam sebulan ini, semoga ke depannya Jonathan tetap semangat membaca dan dengan rajin membaca dia bisa belajar lebih banyak hal lagi.