KidBright32 dan KBX

Kalau United Kingdom punya Micro bit, maka Thailand punya KidBright32. KidBright32 dikembangkan oleh NECTEC (National Electronics and Computer Technology Center) organisasi pemerintah Thailand dan diproduksi oleh perusahaan lokal Thailand Gravitech). Usaha ini didukung perusahaan lain, misalnya perusahaan Maker Asia membuat extension berupa case dan peripheral tambahan yang diberi nama KBX (KidBright32 Extension).

Di posting sebelumnya saya sudah membahas Micro bit, di sini saya membahas KidBright32 dan ditutup dengan apakah mungkin Indonesia membuat board serupa.

KidBright32

KidBright32 menggunakan ESP32 sebagai prosessornya. ESP32 ini merupakan chip dari China yang pernah saya bahas di posting lain. Sedangkan Microbit memakai chip NRF52 dari Nordic Semiconductor, perusahaan Norwegia. NRF52 hanya memiliki fitur Bluetooth dan komunikasi radio proprietary, sedangkan ESP32 memiliki fitur Bluetooth dan WIFI. Harga KidBright32 sekitar 600 baht (19 USD), tidak beda dengan harga Micro Bit .

Seperti Micro bit, KidBright32 juga memiliki IDE Visual drag drop yang bernama KidBright IDE yang bisa dipakai di Linux/Windows/OSX. Berikut ini video yang dirilis oleh NECTEC untuk memperkenalkan KidBright (video bahasa Thai dengan subtitle bahasa Inggris).

Sebagian besar fitur KidBright32 ini sama dan bahkan lebih dari Micro Bit.. Memori lebih besar, bisa WIFI (bagus untuk belajar IOT), dan LED yang dipakai lebih besar (dua buah matris 8×8, jadi ada 128 led, sedangkan micro bit hanya 25).

Micro bit sudah cukup dikenal dan ada banyak aksesori tambahan, tapi KidBright32 juga tidak kalah. Berbagai sensor dan hardware tambahan sudah tersedia dan bisa dibeli di : https://www.kidbright.io/shop. Beberapa contoh sensor yang tersedia: proximity (kedekatan), detak jantung dan barometer.

KBX dan kbide

Sifat KidBright32 ini terbuka dan bisa dikembangkan lebih lanjut. Salah satu hasil pengembangannya adalah board KBX. Board ini memiliki case, LCD, Micro SD, USB host (supaya bisa memakai keyboard atau gamepad USB), dan juga tombol ekstra. Saya baru mengenal board ini ketika menemani Jonathan untuk ikut pelatihan gratis pemrograman hardware dasar di Chiang Mai Maker Club.

Selain membuat KBX, Maker Asia juga membuat kbide, versi lebih canggih dari KidBright IDE. Software kbide ini open source dan bisa berjalan di Windows, Mac, maupun Linux.

IDE-nya bukan sekedar meniru persis editor Micro Bit, banyak fungsi tambahan yang menurut saya lebih menarik. Berbagai fungsi tingkat lanjut di sediakan di mode visual, seperti:

  • Melakukan koneksi ke WIFI
  • Melakukan time synchronization dengan NTP
  • Menampilkan gambar (bahkan dari IDE-nya kita bisa mengakses kamera USB/kamera laptop, supaya kita bisa memfoto sesuatu untuk ditampilkan di device)
  • Mengucapkan kata-kata (terbatas, hanya yang ada di dalam kamus)
  • Memainkan nada (dengan editor yang bagus)
  • Memainkan MP3
  • Melakukan koneksi dengan protokol MQTT

Sebagai produk Thailand, salah satu kelebihannya adalah support terhadap bahasa Thai. Contoh paling sederhana adalah pada fungsi teks yang bisa menampilkan teks bahasa Thai dan disertakan juga berbagai font Thai.

Dengan hardware ekstra, harga KBX tentunya lebih mahal dari harga KidBright biasa, tepatnya harganya sekitar 60 USD (1990 THB). Dengan adanya koneksi Wifi dan sinkronisasi waktu dari NTP serta fitur buzzer, Jonathan bisa dengan cepat membuat Jam meja dengan alarm. Di malam hari jamnya diletakkan di samping tempat tidurnya.

Dari hasil mencoba-coba hardware dan softwarenya, saya merasa cukup kagum. Ini proyek yang serius, bukan sekedar meniru BBC Micro bit. Design hardwarenya bagus dan softwarenya juga dibuat dengan serius. Softwarenya masih terus dikembangkan (ini bisa dilihat di aktivitas github Maker Asia).

Bisakah Indonesia membuat hal serupa?

Membuat development board yang ditujukan untuk anak-anak butuh diperlukan pengembangan hardware dan software. Kenapa kita tidak mengimpor saja benda ini? ada beberapa alasan kenapa kita perlu membuat sendiri:

  • Harga barang jadi biasanya lebih mahal, apalagi jika ditambah dengan berbagai aksesorinya
  • Kita tetap perlu membuat dokumentasi dan manual dalam bahasa Indonesia dan juga menerjemahkan softwarenya dalam bahasa Indonesia (di Thailand masalah bahasa sangat penting, bahkan semua film didub dalam bahasa Thai)
  • Kita bisa menyesuaikan dengan kondisi Indonesia, misalnya menambahkan sensor yang berguna untuk otomasi pertanian atau mungkin memakai panel surya karena sinar matahari melimpah di Indonesia

Board populer pertama yang ditujukan untuk belajar pemrograman hardware adalah Arduino. Dulu Arduino bisa dirakit sendiri karena komponennya sedikit dan jenis komponennya through hole. Dengan teknologi through hole, komponen dimasukkan menembus lubang PCB dan disolder di sisi lain.

Memakai komponen dengan teknologi through-hole

Tapi sekarang jumlah komponen through hole semakin sedikit, dan kebanyakan komponen sekarang memakai teknologi surface mounted (SMT). Dalam teknologi SMT, komponen elektronik diletakkan di atas PCB dan diberi pasta solder, lalu dipanaskan. Untuk memanaskan ini bisa memakai oven (oven kue juga bisa, tapi sebaiknya khusus, jangan dipakai lagi untuk masak kue karena walau sudah bebas timbal, masih ada kemungkinan ada uap berbahaya) atau memakai hot air soldering station. Pada produksi masal, biasanya ini dilakukan secara otomatis dengan mesin.

Contoh board dengan teknologi SMT, chip hanya “menempel” di atas PCB

Karena sulitnya merakit board modern, sebaiknya ini dilakukan oleh perusahaan khusus, sehingga anak-anak bisa langsung memakainya. Harga berbagai komponen (chip, resistor, dsb) sudah relatif murah, tapi kebanyakan masih perlu impor. Indonesia sudah mampu membuat PCB sendiri dan merakit komponennya.

Alternatif lainnya adalah kita menyusun berbagai modul, jadi tidak menyusun chip dan berbagai komponen pasif. Saat ini sudah ada banyak modul kecil dengan berbagai fungsionalitas (sensor udara, transmitter dan receiver infrared, LED, dsb) yang harganya murah (beberapa USD, bahkan ada yang hanya beberapa sen). Modul modul ini bisa disolder ke sebuah board besar.

Software untuk memprogram boardnya bisa dibuat dengan relatif mudah dengan menggunakan berbagai library yang sudah ada, atau melakukan forking terhadap IDE lain yang sifatnya open source. Bagian sulitnya adalah membuat hardware dan software yang bisa berjalan mulus. Hal lain yang penting adalah dokumentasinya.

Jadi sebenarnya bisa saja Indonesia membuat board serupa dengan BBC atau KidBright. Kesulitan pengembangan hardware dan softwarenya tidak terlalu tinggi. Pertanyaannya adalah: apakah kita memang sudah memfokuskan ke sana atau belum.

BBC micro:bit

BBC Micro Bit (kadang ditulis “micro:bit”) adalah hardware open source yang dibuat oleh BBC (British Broadcasting Corporation) untuk mengajarkan pelajaran komputer di United Kingdom. Board ini sudah dirilis tahun 2016 dan sudah saya beli tidak lama setelah diluncurkan. Baru sekarangsaya tulis karena Jonathan baru mulai tertarik belajar ini.

Case kittenbot dan micro:bit

Micro bit ini ditargetkan untuk umur 11 tahun ke atas (walau lebih muda juga bisa), jadi sebenarnya memang baru cocok untuk usia Jonathan yang sekarang 9 tahun. Micro bit ini ukurannya sekitar setengah kartu kredit, ada dua tombol (plus satu tombol reset), konektor micro USB, dan 25 LED. Ada accelerometer (bisa jadi input dengan gerakan) dan juga magnetometer (bisa menjadi kompas), ada juga sensor temperatur (tapi kurang akurat karena built in).

img
Sumber gambar: https://tech.microbit.org/hardware/

Micro bit juga bisa dihubungkan ke handphone dengan Bluetooth Low Energy (BLE). Dua micro bit juga bisa berkomunikasi dengan radio (yang ini protokolnya proprietary, berdasarkan Gazell dari Nordic). Micro bit bisa dihubungkan ke banyak hardware, tapi sebelumnya saya jelaskan dulu tentang sisi softwarenya.

Micro bit dalam case Kittenbot

Software dan pemrograman

Resminya Micro bit bisa diprogram dengan browser memakai editor blok atau menggunakan Micropython dengan mengunjungi https://microbit.org/code/ . Tapi benda ini juga bisa diprogram dengan C, C++, BASIC, ADA, Rust, Swift, Forth dan mungkin masih banyak lagi.

Editor blok resmi memiiliki simulator, sehingga kita bisa langsung mencoba bahkan tanpa perlu hardwarenya. Perhatikan gambar board micro bit di kiri, gambar tersebut interaktif, kita bisa menekan tombol A, tombol B, atau keduanya.

Editor block bisa menerjemahkan kode langsung ke JavaScript. Kita juga bisa menulis kode Javascript dan jika tidak terlalu kompleks akan bisa otomatis diterjemahkan jadi bentuk blok. Javascript yang terlalu rumit akan muncul sebagai blok teks. Berikut ini contoh terjemahan otomatis dari blok ke Javascript.

Memprogram dengan browser sangat mudah: tidak perlu instalasi apapun, cukup memakai browser Chrome terbaru (jadi perlu punya komputer/laptop, bisa Windows/Linux/Mac). Transfer program ke Micro bit juga langsung dari browser.

Khusus untuk Micro bit yang dibeli beberapa tahun lalu, firmwarenya perlu diupdate dulu agar bisa diprogram via web. Cara updatenya cukup mudah, cukup colok ke komputer dan micro bit akan terdeteksi sebagai USB disk, kita cukup drag drop firmware terbaru agar berikutnya Micro bit bisa diprogram via browser.

Browser tidak harus di PC, browser ponsel juga bisa dipakai. Untuk transfer kode dari ponsel ke Micro bit, disediakan juga companion app untuk iOS dan Android. Transfer kode dilakukan via bluetooth. Jika memakai PC, kabel USB juga merupakan sumber daya listrik bagi micro bit, jika memakai HP, kita butuh kabel USB atau batere.

Tanpa hardware tambahan

Tanpa hardware tambahan apapun, sudah ada beberapa program yang bisa kita buat dengan Micro bit, misalnya:

  • kompas
  • animasi LED
  • game sederhana (bisa memakai tombol dan atau accelerometer)

Jika kita memiliki dua Micro bit, keduanya bisa berkomunikasi dengan mudah, jadi bisa dibuat berbagai aplikasi misalnya:

  • Mengirimkan pesan (misalnya kode morse)
  • game multiplayer

Kurang ide? ada banyak contoh yang diberikan di website Micro bit

Hardware Tambahan

Micro bit bisa dihubungkan ke device lain dengan alligator clip, device sederhana misalnya: LED, tombol, sensor, dsb. Selain device sederhana, sudah ada beberapa kit yang dirancang agar gampang dihubungkan ke Micro bit, di antaranya:

  • Sensor cuaca
  • Mobil-mobilan
  • Robot

Jadi Micro bit berfungsi sebagai otak untuk benda-benda tersebut. Editor blok memiliki fitur Extensions, sehingga berbagai benda tersebut bisa diprogram tetap menggunakan editor blok yang resmi tanpa perlu instalasi software tambahan.

Benda yang sudah saya belikan untuk Jonathan adalah Ring bit car v2. Mobil ini cukup mudah disusun, walau agak susah membuat kedua rodanya supaya tepat lurus. Di bawah mobil ada 2 LED Neopixel yang bisa diprogram warnanya. Dengan menggunakan dua micro bit, mobilnya bisa dijadikan mobil remote control dengan satu micro bit lain sebagai controllernya. Kita juga bisa menempelkan spidol ke mobilnya supaya mobilnya bisa “menggambar”.

Perbandingan dengan board lain

Ketika membandingkan dengan board lain, kita harus memperhatikan tujuannya. Untuk tujuan mengajari anak-anak board ini sangat bagus. Untuk mengajari orang dewasa atau mahasiswa, board lain akan lebih bagus.

Harga Micro bit sekitar 250 ribu rupiah (sekitar 18 USD). Menurut saya ini tidak terlalu murah, tapi juga tidak terlalu mahal. Jika memikirkan alternatif lain, maka ada dua hal yang bisa dibandingkan:

  • Kemudahan development (termasuk juga ketersediaan library)
  • Kelengkapan hardware dan kitnya

Alternatif yang lebih murah biasanya perlu ditambah dengan banyak modul. Contoh: board Arduino UNO bisa didapat dengan sekitar 3.5 USD, ESP8266 harganya mulai 2.5 USD dan ESP32 mulai 4 USD. Tapi semua board tersebut belum ada accelerometer, magnetometer, output LED dan tombol.

Jika ingin berhemat, maka kita harus menghabiskan waktu untuk:

  • membeli modul (accelerometer + magnetometer + led) dan kabel, serta breadboard
  • menyambungkan modul
  • mencari library yang cocok untuk modul tersebut

Untuk anak-anak yang baru belajar, micro bit ini menurut saya sudah sangat bagus. Design hardware Micro bit ini open source, siapapun boleh membuat versinya sendiri. Jika ini cukup populer, maka ada kemungkinan akan ada clone yang lebih murah (seperti Arduino UNO yang banyak clone murahnya dari China).

Untuk Anda yang tidak punya PC/Laptop, mungkin Raspberry Pi lebih cocok karena sebenarnya itu merupakan komputer mini, jadi tidak butuh komputer kecuali saat instalasi. Tapi harganya Raspberry Pi lebih mahal, dan Anda perlu mempersiapkan keyboard, mouse, SD Card, dan juga layar monitor untuk dihubungkan ke Raspberry Pi.

Sebagai informasi, Raspberry juga punya versi murah yang namanya Raspberry Pi Zero (tanpa Wifi) dan Zero W (dengan Wifi). Teorinya ini harganya sangat murah (5 USD untuk Pi Zero, 10 USD untuk Pi Zero W), tapi kenyataannya ini sulit sekali dicari. Di banyak tempat hanya membolehkan kita membeli satu saja dengan harga 5 USD (jadi jika ditambah ongkos kirim, akhirnya jadi lebih mahal). Sedangkan di tempat lain, harganya dimarkup jadi sampai 20 USD.

Penutup

Micro bit ini menurut saya cukup menarik untuk mengajarkan pemrograman dasar. Dengan micro bit, programmer bisa melihat efek langsung di dunia nyata, bukan cuma di layar komputer. Harga Micro bit ini memang tidak terlalu murah, tapi alternatif lainnya juga harganya serupa atau lebih mahal.

Sebenarnya masih terbuka kesempatan membuat board yang lebih baik dan atau lebih murah. Minggu lalu saya sempat datang ke Chiang Mai Maker Club dan di sana ada pelatihan memakai board mereka, yang tidak lebih murah tapi lebih baik. Informasi mengenai board dari Thailand ini akan saya bahas di posting berikutnya.

Warna warni Mi Band 4

Bulan Maret 2019 saya mencoba dan menuliskan tentang Mi Band 3. Tadinya saya pikir saya tidak akan ganti jam lagi sampai mi bandnya rusak, tapi ternyata beberapa bulan lalu ada versi Mi Band 4 yang di release dengan beberapa fitur tambahan dari Mi Band 3, di antaranya layar berwarna dan bisa tracking untuk berenang dan dengan harga yang sama dengan harga release Mi Band 3 fiturnya juga lebih baik.

Setelah menunda-nunda dan tetap mau bertahan dengan mi band 3 saja, akhirnya jadi juga beli Mi Band 4 nya bulan September lalu karena Joe juga mau pakai Mi Band 3 nya. Setelah pemakaian beberapa bulan dengan Mi Band 4, baru deh ingat kalau belum nulis soal Mi Band 4 ini.

jadi juga beli tali warna warni

Dengan adanya display berwarna di Mi Band 4, kita bisa memilih berbagai tampilan wajah jam nya. Nah daripada cuma wajahnya yang berubah, saya akhirnya jadi juga beli tali jam warna warni nya. Tali jamnya juga gak mahal dan kebetulan kompatibel untuk Mi Band 3 dan Mi Band 4 ( jadi Joe juga bisa ganti-ganti warna tali kalau iseng). Karena ongkos kirimnya 30 baht dan harga talinya 9 baht, akhirnya kami beli 5 warna sekaligus (ongkos kirimnya sama saja kirim 1 dan 5).

Selain jadi iseng ganti-ganti warna tali dan display, kelebihan Mi Band 4 dari versi Mi Band 3 yang paling terasa itu di bagian batere tahan lebih lama beberapa hari. Klaimnya memang bisa untuk 20 hari, tapi karena saya mengaktifkan sleep tracking dan heart rate monitor, paling lama saya harus mencharge Mi Band ini sekitar 12 hari (rata-rata 10 hari kalau ingat sudah saya charge). Daya tahan batere berkurang kalau kita aktifkansleep monitoring dan heart rate monitornya.

seminggu batere masih di atas 50 persen

Heart rate detection bisa di set setiap menit sampai per 30 menit. Semakin kecil interval pengecekan, semakin cepat batere berkurang. Saya sekarang set jarak pengecekan heart rate setiap 5 menit.

Kadang-kadang punya device dengan banyak fitur, tidak selalu semua fiturnya kita aktifkan. Fitur yang paling sering saya gunakan dari mi band 4 ini antara lain:

  • memperhatikan apakah target jumlah langkah per hari sudah tercapai atau belum
  • memperhatikan pola tidur (berapa jam tidur, berapa jam tidur lelapnya)
  • memperhatikan denyut jantung rata-rata harian dan ketika tidur
  • notifikasi kalau ada panggilan masuk (karena hp saya selalu silent)
  • notifikasi message dari Joe (yang lain notifikasinya saya matikan hahaha)
  • notifikasi alarm dan calendar

Saya tahu ada banyak jenis smart band beredar sekarang ini dan masing-masing punya fitur andalannya. Saya pilih Mi Band 4 ini karena harganya tidak lebih dari 1500 baht dan fiturnya cukup untuk saya. Fitur olahraga belum pernah saya pakai. Rencananya mau kembali berolahraga sebelum 2019 berakhir hehehehe.

Mempermudah Ganti HP Android

Jaman dulu, kalau kita ganti HP, biasanya kita perlu memindahkan daftar kontak kita secara manual. Setelah HP semakin pintar, ganti HP bisa lebih mudah apalagi bila kita sudah membiasakan diri membackup berbagai data kita. Kebiasaan membuat salinan data ini merupakan kebiasaan yang baik, apalagi kalau kita mempunyai koneksi internet yang cukup cepat.

Saya sering mendapat cerita teman yang HP nya error lalu harus di reset dan semua daftar kontak hilang. Kisah lainnya teman yang pakai iphone/ipad dan mengijinkan anaknya menggunakan gadgetnya sering tanpa sengaja foto-foto di HP terhapus karena anaknya berusaha masuk dengan paksa dan otomatis menghapus data padahal belum pernah di backup. Atau aplikasi chat WA yang lupa di backup waktu ganti HP ataupun hang dan harus reinstal paksa dan mengakibatkan percakapan sebelumnya hilang.

Jaman sekarang ini, hal-hal itu sudah bisa dihindari kalau kita sinkronisasi data kita atau back up di berbagai layanan yang ada di internet, termasuk nantinya mempermudah ketika kita ganti HP. Apalagi kalau kita punya internet koneksi 24 jam, tentunya bisa kita set sinkronisasi data dilakukan ketika kita tidur misalnya.

Ada yang bilang simpan data di Internet tidak aman dan rawan kebocoran privasi. Untuk ini, ya semuanya ada plus minusnya ya, tentunya kita perlu mengamankan semua account yang kita punya. Kalau saya, karena semua foto dan notes saya gak ada konten yang sensitif, kalau cuma ketauan jadwal tiap minggu ngapain aja sih masih gak apa-apa hehehee.

Beberapa hal yang perlu diingat sebelum ganti HP Android adalah:

  • salin kontak lokal semua ke google contacts, dengan cara ini waktu kita ganti HP, kita tidak perlu mencatat ulang nomor-nomor kontak kita
  • kalau terbiasa mencatat jadwal di HP, sinkronisasi ke google Calendar. Waktu ganti HP, otomatis jadwalnya kebawa juga.
  • backup foto ke Google Photos setiap kali HP terhubung WiFi dan atau terhubung WiFi dan dicharge. Dengan cara ini kita juga bisa mengosongkan storage lokal kita ketika foto sudah di backup. Kalau mau punya backup dengan ukuran asli, bisa juga dilakukan dengan kabel data ketika terhubung ke komputer/laptop.
  • backup percakapan WhatsApp ke google drive setiap harinya. Kalau saya, saya set proses backup setiap jam 2 malam, dengan asumsi jam segitu saya lagi tidur. Kalau di backup ketika kita aktif menggunakan HP, pastinya HP akan terasa lambat sekali.
  • percakapan Telegram, semua data otomatis tersimpan di server, jadi tidak perlu di backup.
  • percakapan LINE tidak saya back up karena jarang pakai.
  • biasakan gunakan layanan yang ada loginnya dan ada fasilitas sinkronisasi data ke server, misalnya untuk notes saya gunakan color notes, ketika pindah HP, semua notes saya otomatis terbawa.
  • untuk tulisan yang lebih panjang, saya sudah terbiasa menggunakan google docs, google spreadsheet dengan menyimpan salinan lokalnya untuk mempercepat akses ketika tidak terhubung ke internet, dan nantinya akan disinkronisasi ketika terhubung ke internet.
  • untuk FB, kalau dirasa penting kita bisa juga mendownload semua data kita sesekali. Tapi saat ini saya tidak banyak mengupdate FB dan tidak merasa ada yang penting untuk dibackup, mungkin nanti dibackup kalau ada niat deaktivasi
  • berbagai aplikasi saya login menggunakan FB atau google dan datanya tersimpan di server, kalau lupa password, selalu bisa reset password hehehe
  • untuk keamanan FB dan Google account, saya pakai pengaman tambahan (google authenticator), nah untuk pengecekan pengaman tambahan ini saya perlu pindahkan secara khusus (ini saya minta tolong Joe hehehe)
  • berbagai file lain yang bukan foto dan tidak masuk kategori manapun bisa juga disimpan di dropbox

Dengan mempunyai salinan terhadap semua data kita, seandainya HP saya hilangpun (aduh jangan sampai deh), data saya semua tetap bisa dikembalikan ke HP yang baru. Mungkin akan ada yang bilang: aduh harus langganan berapa banyak tuh untuk simpan data doang. Coba aja hitung-hitung lagi, lebih penting mana kehilangan data atau langganan yang kalau dirata-ratakan perharinya gak seberapa.

Berikut ini proses menyalin data dari HP android lama ke yang baru. Ketika nyalakan HP, setelah setting bahasa dan region akan sampai ke bagian ini

copy apps dan data ketika HP baru beli di nyalakan

Selanjutnya ikuti saja langkah-langkahnya

Saya pilih yang pertama: A backup from and android phone.

Dari gambar, kalau kita tidak ingin menyalin data dari HP lama, kita bisa juga memilih “Don’t Copy”.

akan ada petunjuk membuka google app di hp lama
kita akan di minta untuk memberi perintah”set up my device”

Di HP lama, kita bisa gunakan perintah suara atau ketikkan di google search box “set up my device”, nantinya HP baru akan otomatis mengenali melalui koneksi dengan jaringan Bluetooth dan WiFi.

tekan next di hp lama dan baru
kita akan diminta mengecek apakah bentuknya sama dan klik next di hp lama

Kalau ada beberapa HP android di dekat kita, ketika kita memberi perintah suara, bisa saja HP lain menangkap perintah kita. Untuk meyakinkan kita gak salah menyalin HP, maka kita harus memberi perintah lanjut/next di HP lama yang memang kita ingin salin datanya ke HP baru.

masukkan login akun google kita

Di HP yang baru tentunya kita akan diminta untuk login menggunakan google account kita. Lalu proses menyalin aplikasi dan data dari HP lama pun dimulai.

proses menyalin data di mulai ke Hp baru
kita bisa memilih apa saja yang ingin kita salin

Proses menyalin data ini bisa dipilih, tapi karena saya ingin memindahkan semuanya, maka saya pilih semua. Dengan memilih ini bahkan sejarah telepon keluar masuk juga akan pindah. Calendar, contacts dan photo tentunya juga nantinya tidak perlu diinput ulang. Setting wifi yang sudah pernah kita simpan passwordnya juga akan otomatis terbawa.

Kalau proses ini selesai, apakah HP baru kita sudah 100 persen sama dengan HP baru? sayangnya belum, masih ada tahapan berikut yang harus dilakukan, antara lain:

  • login ulang aplikasi seperti FB, Dropbox, Telegram, Amazon, Apple Music, Grab, Coursera, Duo Lingo, Memrise dan aplikasi lainnya. Beberapa aplikasi yang login menggunakan akun google otomatis sudah bisa langsung di pakai.
  • Memindahkan WhatsApp: backup ke google drive di HP lama, lalu buka dan restore di HP baru. Hapus aplikasi WA di HP lama supaya tidak konflik lagi.
  • Memindahkan file-file di folder “download” secara manual kalau memang masih ada yang penting. Untuk hal ini bisa juga diakali menggunakan dropbox (tapi sekarang ini saya tidak menggunakan dropbox tapi simpan di chat telegram).
  • untuk aplikasi banking dan yang butuh security lebih, Joe pernah menuliskannya di sini.

Biasanya, setelah yakin aplikasi yang dipindahkan berjalan baik di HP baru, saya akan hapus aplikasinya di HP lama. Setelah 1 bulan memakai HP baru dan tidak pernah merasa butuh sesuatu dari HP lama, baru deh saya bolehkan Joe factory reset atau terserah mau dioprek apalagi hehehe. Biasanya HP lama akan dipakai Joe untuk keperluan pentest atau ya untuk cadangan kalau ada HP yang butuh di service.

Walaupun sudah dipermudah begini, saya masih merasa malas proses ganti HP. Prosesnya hanya beberapa jam, tapi ya harus dikerjakan juga untuk pemakaian beberapa tahun ke depan. Ok, semoga lain kali ganti HP jangan sampai kehilangan data penting ya.

Pinjaman Online Ilegal dan Data Anda

Beberapa waktu yang lalu sempat ada berita tentang pinjaman online (ilegal) yang servernya terbuka dan ternyata di dalamnya ada banyak data lain, termasuk data dari provider seperti Telkomsel, XL, Go-Jek dsb. Saya tidak akan membahas mengenai kasus ini secara spesifik karena informasinya sudah diserahkan ke kominfo dan OJK via Xynexis dan saat ini sedang diproses.

Saya hanya ingin membahas: dari mana pinjaman online ini mendapatkan berbagai data pribadi. Data yang saya maksud contohnya data telkomsel ( berapa sisa saldo, kapan terakhir kali mengisi), gojek ( data perjalanan yang pernah dilakukan), dan berbagai layanan lain.

Jawabannya sangat sederhana: dari user itu sendiri secara sukarela. Loh kok ada yang mau memberikan data secara sukarela? karena ada rewardnya. Dalam kasus pinjaman online: jika user bersedia login ke layanan tertentu, maka limit pinjamannya akan dinaikkan.

Perlu diketahui ada beberapa perusahaan (setahu saya semuanya dari China) yang menyediakan SDK (software development kit) untuk memudahkan mendapatkan data dari user Jadi sebuah perusahaan pinjaman tidak perlu repot-repot mempelajari bagaimana protokol Go-jek atau Telkomsel, cukup install SDK tersebut maka aplikasi bisa menerima data dari pengguna.

Contoh penggunaan SDK

Sumber data yang bisa diminta sangat banyak, ini contohnya dari satu perusahaan saja bisa menyediakan ini semua. Masih ada juga beberapa perusahaan yang menyediakan sumber data lain, misalnya BPJS.

Tentunya pihak ketiga tersebut juga bisa menyimpan data untuk tiap orang yang datanya diambil. Jadi jangan kaget kalau data yang tidak pernah diinput di satu aplikasi bisa didapatkan oleh aplikasi lain.

Dengan data ekstra ini para pemberi pinjaman online akan bisa melakukan banyak hal, misalnya:

  • melakukan profiling apakah seseorang punya risiko tinggi untuk kabur
  • mengetahui semua alamat pengiriman belanja online
  • memberi tahu debt collector untuk menunggu Anda di tempat yang biasa Anda datangi dengan Gojek

Penutup

Saya menyarankan: jangan pakai jasa peminjaman online. Alasan utamanya: bunganya sangat tinggi. Untuk yang ilegal, ada banyak masalah:

  • Mereka kadang menggunakan cara kasar untuk penagihan
  • Data pribadi Anda bisa bocor ke mana-mana (dengan sengaja oleh mereka)
  • Mereka tidak menginvestasikan uang untuk keamanan server, jadi data Anda bisa tersebar ke mana-mana karena server mereka dijebol orang lain (atau bahkan kadang terbuka di Internet)
  • Anda juga membocorkan data orang lain (data orang-orang di phonebook Anda)

Kalau bisa sih, jangan miskin supaya tidak butuh pinjaman, tapi tentunya ini sulit.

Sumber dari Video: Lessons from the longest study on human development | Helen Pearson

Server rumah dengan IP publik

Sebagian orang ingin menghosting sendiri berbagai hal di rumah (atau kantor kecil), baik itu web, email, maupun layanan lain. Biasanya koneksi ISP tidak akan memberikan IP publik yang statik tanpa membayar ekstra (biasanya mahal), jadi biasanya banyak trik digunakan supaya server rumah bisa diakses dari luar.

Sebagai catatan sebelum menggunakan trik yang ada di sini: pertimbangkan memakai VPS atau dedicated server. Membuat server di rumah punya banyak kelemahan jika ANda tidak mengerti apa yang Anda lakukan:

  • Koneksi internet dan pasokan listirk di rumah biasanya kurang reliable dibanding data center
  • Jika salah konfigurasi, hacker bisa lebih mudah masuk ke jaringan rumah
  • Mengkonfigurasi semuanya sendiri cukup melelahkan/membuang banyak waktu

Dynamic DNS

Beberapa layanan tertentu seperti web cukup memakai dynamic DNS dan tidak perlu server eksternal tambahan. Artinya sebuah nama domain selalu diupdate IP-nya dengan IP terbaru saat ini. Untuk mengupdate ini bisa digunakan berbagai layanan Dynamic DNS dan server di rumah perlu diinstall software untuk mengupdate pemetaan nama ke IP.

Gambarannya kira-kira seperti ini:

Masalah dengan pendekatan ini adalah: akan ada jeda ketika ada update nama ke IP. Jeda ini karena DNS server akan mengcache informasi IP. TTL terkecil yang bisa diset biasanya 30 detik dan berbagai layanan DNS biasanya mengeset waktu minimumnya 1 menit. Jadi ketika ada pergantian IP, sekitar 1 menit kemudian kita baru bisa mengakses nama tersebut dengan IP baru.

Masalah lainnya adalah: layanan tertentu tidak akan berjalan dengan baik menggunakan pendekatan ini:

  • ISP kadang memblok port tertentu (saat ini ISP saya di sini memblok incoming connection ke port 80 dan 443), tidak bisa menjalankan web server di rumah dengan port standar
  • Andaikan tidak diblok, beberapa layanan seperti email tidak suka dengan IP dinamik (kadang IP masuk ke daftar spam list)

SSH Forwarding

Solusi ini dan berikutnya akan butuh sebuah server VPS. Kalau butuh VPS, kenapa tidak dihosting di VPS saja sekalian? ada beberapa alasan mengapa kita ingin hosting di rumah dengan menggunakan IP VPS:

  • Mungkin VPS-nya kurang powerful (VPS termurah hanya sekitar 5 USD, tapi disk dan RAM-nya kurang besar)
  • Kita ingin data tetap ada di rumah/kantor karena berbagai alasan. Alasannya bisa mengenai privasi, mengenai kemudahan update data/program, dsb.

Jika keperluannya hanya sederhana, SSH Forwarding bisa dilakukan. Saya pernah menjelaskan teknik ini di artikel saya yang lain mengenai SSH. Ini merupakan cara sederhana karena:

  • Tidak perlu setup sesuatu yang kompleks di server (cukup akses SSH yang biasanya memang sudah aktif), hanya perlu mensetup konfigurasi agar Remote Port Forwarding diijinkan
  • Tidak perlu setup sesuatu di client, cukup perlu SSH Client saja.

Satu VPS juga bisa dikoneksikan dengan beberapa server rumah. Mungkin server yang satu untuk web server, dan server yang lain untuk keperluan backup atau email. Atau bisa juga beberapa domain ditangani oleh satu VPS dan diforwarde (dengan apache/nginx atau yang lain) sesuai dengan domainnya.

Intinya adalah: dari server di rumah, kita melakukan SSH ke VPS. Koneksi ke port tertentu ke VPS akan diforward ke server di rumah. Kelemahan SSH forwarding adalah: dari sisi server di rumah semua incoming IP dianggap dari localhost.

Contohnya: pengunjung web dari Belanda, akan melakukan koneksi VPS server tersebut (misalnya di Singapura) lalu koneksinya di forward ke server rumah (misalnya di Indonesia). Di web server di Indonesia, terlihat koneksinya dilakukan dari IP localhost. Jaid bukan dari Belanda ataupun dari Singapura.

Masalah lain SSH adalah: koneksinya bisa putus. Di Linux program autossh bisa dipakai untuk menjaga agar koneksi tetap hidup. Di Windows kita bisa memakai SSH Client dari BitVise yang bisa melakukan auto reconnect.

VPN + DNAT

Ada banyak solusi VPN yang bisa dipakai. Salah satunya yang pernah saya bahas adalah dengan tinc. Bahkan VPN dengan SSH juga bisa dilakukan (dengan menggunakan tunnel device). Dengan VPN, sebuah VPS akan memiliki 2 network interface, satu yang menghadap publik, dan satu yang menghadap ke client VPN (dalam hal ini server di rumah).

Dengan menggunakan DNAT kita bisa mengarahkan agar paket yang diterima di server akan diforward ke client VPN. Perhatikan bahwa ada banyak cara melakukan forwarding ini. tergantung setting firewall dan cara forwardingnya, maka ada dua kemungkinan:

  • Source IP koneksi bisa berasal dari IP VPN server publik (biasanya bukan ini yang diharapkan)
  • Source IP koneksi bisa dari client yang melakukan koneksi ke VPS

Saat ini ada banyak jenis firewall, tergantung OS yang dipakai (iptables, nftables, ipfw, dsb), jadi saya tidak akan membahas detail settingnya, tapi hanya beberapa hal saja yang penting diperhatikan ketika mensetup ini:

  • Pastikan IP forwarding diaktifkan di VPS
  • Pastikan bahwa firewall rule paket dari IP publik berhasil diterima dan diteruskan ke VPN (bisa dicek dengan menggunakan tcpdump -i INTERFACEVPN)
  • Di sisi server rumah: pastikan koneksi yang datang memiliki source address yang benar
  • Ketika server rumah membalas paket yang datang, pastikan koneksi harus lewat VPN lagi (jangan salah membalas langsung lewat IP rumah)

Penutup

Artikel ini tidak membahas detail tiap perintah dan setting yang diperlukan untuk mengimplementasikan masing-masing solusi. Silakan dicari lagi detailnya dengan berbagai kata kunci yang dipelajari di sini (misalnya: Dynamic DNS, Remote Port Forwarding, DNAT dsb). Artikel ini sekedar memberikan pemahaman saja, bukan tutorial.

Salah satu pertanyaan yang paling tidak saya sukai adalah mengenai jaringan komputer. Untuk bisa menjawab suatu pertanyaan, biasanya saya perlu bertanya banyak hal mengenai konfigurasi jaringan saat ini, software yang dipakai dsb. Menanyakan hal semacam ini butuh waktu yang biasanya sangat lama. Setelah itu ada masalah: versi kernel, versi software dsb. Belum lagi jika ada masalah ISP memblokir sesuatu. Semuanya ini bisa dicari sendiri di Internet.

Semoga informasi ini berguna, dan sekali lagi mohon jangan bertanya detail cara melakukan setup semuanya. Silakan digoogling sendiri detailnya.

VPN dengan Tinc

Saat ini ada banyak sekali solusi VPN yang tersedia dengan segala kelebihan dan keterbatasannya. Beberapa contoh solusi yang populer dan gratis adalah OpenVPN, strongSwan, WireGuard, berbagai implementasi PPTP, tinc, dan VPN via SSH. Posting ini akan membahas mengenai tinc yang memiliki fitur mesh networking.

Beberapa perbedaan dari berbagai solusi VPN ini adalah:

  • Support platformnya. Contoh: saat ini wireguard tidak memiliki client di Windows, jadi kalau Anda memakai Windows, ini jelas tidak akan dipertimbangkan.
  • Kemudahan instalasinya (contoh: VPN melalui SSH cukup rumit setupnya, terutama di Windows)
  • Kecepatannya (ini biasanya hanya jika Anda memakai link dengan kecepatan tinggi) dan CPU usagenya (jika memiliki komputer dengan spesifikasi rendah)
  • Keamanannya, walau secara praktis serangan terhadap berbagai protokol VPN ini jarang/sulit dilakukan kecuali pada protokol kuno seperti PPTP.

Selain berbagai perbedaan teknis, pertimbangan lain memilih VPN adalah: apakah protokol VPN tertentu atau port tertentu diblok oleh ISP. Contohnya di ISP saya saat ini VPN dengan PPTP diblok, jadi harus menggunakan yang lain.

Karena ada begitu banyak software VPN, maka saya tidak akan membandingkan semuanya dan hanya akan membahas tinc saja di posting ini. Pengetahuan di atas sekedar untuk memberitahu bahwa tinc mungkin bukan solusi terbaik di berbagai skenario.

Seperti saya singgung di atas Kelebihan tinc adalah kemampuannya membuat mesh network. Mungkin ada yang bertanya-tanya: maksudnya mesh networking seperti apa sih? Maksudnya adalah sebuah node bisa terkoneksi ke node lain tanpa melalui hierarki tertentu dan sifatnya dinamik.

Semua VPN bisa kita gunakan untuk membuat konfigurasi seperti ini: ada server dan banyak client.

Dengan tinc kita bisa membuat konfigurasi seperti gambar berikut.

Garis yang saya gambarkan ini sekedar menunjukkan bahwa ada setting agar suatu node melakukan koneksi ke node tertentu. Dalam praktiknya: setelah kita mengkonfigurasi ini, kita bisa melakukan koneksi dari satu node ke node manapun.

Contoh konfigurasi di atas kira-kira seperti ini:

  • Ada 2 VPS (Node 1 dan Node 4) dengan IP Publik
  • Node 2 dan 3 diset bisa melakukan koneksi ke node 1 (IP node i ini publik jadi mudah setting ini)
  • Node 5 dan 6 diset bisa melakukan koneksi ke node 4
  • Node 7 (mungkin ini sebuah virtual machine di Node 6) diset untuk melakukan koneksi melalui Node 6

Tentunya konfigurasi jaringannya bisa seperti apa saja: intinya sebuah node bisa dikoneksikan ke satu atau lebih node lain (contohnya bisa saja dibuat setting bahwa Node 2 bisa terkoneksi langsung ke Node 3).

Setelah setting ini selesai, koneksi dari node manapun ke manapun bisa dilakukan seolah-olah semuanya ada di jaringan yang sama. Jadi node 7 ke node 2 bisa langsung dilakukan.

Bagaimana jika kita ingin menambah node baru? misalnya ingin menambah VM di node 6, sehingga ada Node 8 yang terkoneksi ke node 5, apakah kita perlu susah payah mengubah semua konfigurasi? Jawabannya: tidak, kita cukup menambahkan di node 6 bahwa ada node bernama Node 8 dengan public key tertentu, dan di Node 8 perlu diberi public key Node 6 supaya bisa tahu bahwa Node 6 ini adalah node yang valid.

Kehebatan tinc adalah jika kita menambahkan Node 8 yang terkoneksi ke Node 6, maka Node 7 dan 8 bisa berkomunikasi langsung di jaringan lokal, tidak melalui VPS. Bahkan bisa juga kita mengkonfigurasi agar Node 2 dan 3 juga melakukan koneksi ke dua VPN bukan cuma 1 (ke Node 1 dan Node 4). Jika Node 1 down, otomatis route lain akan diambil (lewat Node 4).

Atau jika masih sulit dibayangkan. Anggap saja semua node tersebut seolah terhubung ke sebuah switch virtual (atau hub, tergantung modenya di konfigurasi tinc). Karena terhubung ke switch maka semua seolah berada di jaringan yang sama.

Konfigurasi di Linux

Untuk menkonfigurasi sebuah node, yang perlu dilakukan:

  • membuat sebuah direktori dengan nama jaringan yang kita inginkan
  • membuat file tinc.conf di direktori itu
  • membuat private dan public key untuk host kita
  • mengcopy public key host lain yang ingin kita hubungi
  • mengkonfigurasi interface jaringan

Bagian terakhir (konfigurasi interface jaringan) ini yang berbeda di tiap OS. Kita bisa memakai skrip atau mensetup manual.

Tentunya sebelum mulai, kita perlu menginstall tinc. Gunakan software package manager yang sesuai untuk OS masing-masing atau gunakan installer untuk Windows. Di ubuntu/debian:

apt-get install tinc

Saya contohkan jaringan kecil pertama, dengan node1 ada di eksternal (punya IP publik), sedangkan yang lain IP-nya private. Saya beri nama jaringan ini: jaringanku. Bayangkan saja nama jaringan ini seperti nama sebuah switch dalam ilustrasi sebelumnya.

Untuk contoh ini host eksternal saya beri nama “serverku” dan host internal “komputerku“. Sekarang kita konfigurasi serverku:

Buat direktori baru:

sudo mkdir -p /etc/tinc/jaringanku/hosts

Buat file tinc.conf (pathnya: /etc/tinc/jaringaku/tinc.conf). Isinya:

Name = serverku
AddressFamily = ipv4
Interface = tun0

Buat file /etc/tinc/jaringanku/hosts/serverku dengan isi:

Address = alamat_ip_publik_serverku
Subnet = 10.0.0.1/32

Artinya IP server ini dalam jaringaku adalah 10.0.0.1, tentunya ini bisa diganti dengan IP private manapun. Saya sendiri sudah memakai IP 192.168 di jaringan rumah saya, jadi saya memakai 10.x.x.x untuk tinc.

Lalu buat private/public key untuk server ini, tekan saja enter untuk berbagai pertanyaan defaultnya

 tincd -n jaringanku -K4096

Sekarang kita butuh skrip untuk mengeset IP ketika jaringan up dan menghapus IP ketika jaringan down.

Buat: /etc/tinc/jaringanku/tinc-up dengan isi:

#!/bin/sh
ifconfig $INTERFACE 10.0.0.1 netmask 255.255.255.0

Catatan: sebenarnya cara yang lebih modern adalah menggunakan perintah “ip addr add”. Tapi cara ini masih kurang cross platform (tidak jalan di BSD dsb). Jadi saya masih lebih suka memakai ifconfig.

Dan /etc/tinc/jaringanku/tinc-up

#!/bin/sh
ifconfig $INTERFACE down

Jangan lupa diset modenya agar bisa dieksekusi:

sudo chmod +x /etc/tinc/jaringanku/tinc-*

Sekarang untuk komputerku (yang ipnya private) langkahnya sangat mirip. Hanya saja di sini ada konfigurasi agar koneksi dilakukan dari host ini ke server publik (tidak bisa sebaliknya karena server publik tidak bisa melakukan koneksi ke jaringan internal).

sudo mkdir -p /etc/tinc/jaringanku/hosts

Isi tinc.conf disesuaikan: namanya dan ada ConnectTo

Name = komputerku
AddressFamily = ipv4
Interface = tun0
ConnectTo = serverku

Sekarang buat file /etc/tinc/jaringanku/hosts/komputerku dengan isi:

Subnet = 10.0.0.2/32

Cukup itu saja, kita akan memberi alamat 10.0.0.2 ke komputerku. Buat juga key untuk node ini

 tincd -n jaringanku -K4096

Isi /etc/tinc/jaringanku/tinc-down sama dengan serverku, tapi isi tinc-up sedikit berbeda (IP-nya disesuaikan)

#!/bin/sh
ifconfig $INTERFACE 10.0.0.2 netmask 255.255.255.0

Nah sekarang langkah penting: setiap kali 2 node terhubung langsung, kedua node tersebut perlu tahu key satu sama lain. Jadi intinya:

  • Copy isi /etc/tinc/jaringaku/hosts/serverku di server ke
    /etc/tinc/jaringaku/hosts/serverku di komputerku
  • Copy isi /etc/tinc/jaringaku/hosts/komputerku ke
    /etc/tinc/jaringaku/hosts/komputerku di server

Jadi misalnya kita mau menambah laptop (misalnya namanya: laptopku yang akan dipakai jalan-jalan dengan IP yang berbeda-beda), settingnya sama dengan komputerku. Kita cukup perlu copy key laptopku ke serverku dan isi key serverku ke laptop dan dari laptop kita bisa konek ke komputerku.

Dalam kasus itu kita tidak perlu mengcopy key komputerku ke laptop, walau boleh saja kalau mau. Misalnya supaya gampang, semua isi file hosts dicopy ke sebuah hosting atau dropbox dan tiap kali setup komputer baru, semua file-file di copy ke /etc/tinc/jaringaku/hosts/. Isinya hanya public key yang tidak rahasia, yang rahasia adalah private keynya.

Nah sekarang saatnya testing. Di server dan komputer jalankan:

 tincd -D -d4 -n jaringanku

Jika semua beres, dari server kita bisa ping ke 10.0.0.2 (ke komputer) dan dari komputer kita bisa ping ke 10.0.0.1 (ke server). Jika semua lancar, kita bisa men-kill tincd dan membuatnya permanen. Supaya permanen, di sistem yang memakai systemd kita bisa menggunakan ini:

systemctl enable [email protected]
systemctl start [email protected]

Setting di Windows

Sebenarnya konfigurasinya sama saja dengan Linux. Yang berbeda adalah instalasinya dan lokasi direktorinya. Supaya tidak terlalu panjang artikelnya, silakan lihatpetunjuk instalasi di : https://www.tinc-vpn.org/examples/windows-install/

Lokasi direktori konfigurasi ada di: C:\Program Files (x86)\tinc (pada Windows 64 bit) atau C:\Program Files\tinc (Windows 32 bit). Buat direktori: “jaringanku” di dalam direktori tersebut (butuh hak admin, seperti halnya di Linux butuh root).

Untuk konfigurasi IP: kita tidak memakai skrip up dan down, IP di setting manual melalui GUI. Cara testingnya sama:

 tincd -D -d4 -n jaringanku

Dan jika sudah OK, untuk membuat permanen (diinstall sebagai service).

 tincd -n jaringanku

Jika ingin merestart, mendisable, atau menghapus service ini, maka bisa dilakukan melalui GUI Services di Windows. Atau jika menguasai PowerShell ini juga bisa dilakukan via PowerShell

Berikutnya

Setting tinc yang saya jelaskan hanya supaya kedua host terkoneksi dengan ip internal. Setelah itu kita bisa mensetup banyak hal lain, tapi tidak akan dibahas di sini. Contohnya yang bisa disetting:

  • Jika kita ingin membagi koneksi internet server ke client (supaya client bisa browsing web dengan IP server seperti koneksi VPN pada umumnya) kita bisa memakai IP masquarading atau menginstall proxy server di server.
  • Jika kita ingin server di rumah kita diakses dari luar, kita bisa memakai DNAT (atau SSH remote port forwarding).

Sebagai penutup: mengetahui berbagai teknologi VPN bisa sangat berguna dan bisa dipakai untuk menyelesaikan masalah sesuai kebutuhan kita.